@mwater/visualization 5.1.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ColorComponent.d.ts +10 -11
- package/lib/ColorComponent.js +78 -29
- package/lib/ColorSchemeFactory.d.ts +13 -2
- package/lib/ColorSchemeFactory.js +7 -5
- package/lib/CustomColorsContext.d.ts +6 -0
- package/lib/CustomColorsContext.js +6 -0
- package/lib/FiltersDesignerComponent.d.ts +1 -4
- package/lib/FiltersDesignerComponent.js +2 -3
- package/lib/GlobalFilter.d.ts +13 -0
- package/lib/GlobalFilter.js +2 -0
- package/lib/LocaleContextInjector.d.ts +5 -11
- package/lib/LocaleContextInjector.js +4 -12
- package/lib/MWaterAddRelatedFormComponent.js +3 -3
- package/lib/MWaterAddRelatedIndicatorComponent.d.ts +1 -4
- package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
- package/lib/MWaterCompleteTableSelectComponent.d.ts +7 -25
- package/lib/MWaterCompleteTableSelectComponent.js +36 -36
- package/lib/MWaterContextComponent.d.ts +19 -9
- package/lib/MWaterContextComponent.js +38 -22
- package/lib/MWaterCustomTablesetListComponent.js +9 -3
- package/lib/MWaterGlobalFiltersComponent.d.ts +6 -5
- package/lib/MWaterGlobalFiltersComponent.js +4 -4
- package/lib/MWaterLoaderComponent.d.ts +15 -3
- package/lib/MWaterLoaderComponent.js +11 -2
- package/lib/MWaterTableSelectComponent.d.ts +1 -4
- package/lib/MWaterTableSelectComponent.js +10 -12
- package/lib/UIComponents.d.ts +2 -2
- package/lib/UIComponents.js +4 -12
- package/lib/axes/Axis.d.ts +20 -25
- package/lib/axes/AxisBuilder.d.ts +7 -4
- package/lib/axes/AxisBuilder.js +12 -8
- package/lib/axes/AxisComponent.d.ts +6 -9
- package/lib/axes/AxisComponent.js +1 -2
- package/lib/axes/ColorPaletteCollectionComponent.d.ts +5 -12
- package/lib/axes/ColorPaletteCollectionComponent.js +67 -36
- package/lib/dashboards/DashboardComponent.d.ts +4 -17
- package/lib/dashboards/DashboardComponent.js +20 -67
- package/lib/dashboards/DashboardDesign.d.ts +5 -20
- package/lib/dashboards/DashboardUpgrader.js +36 -1
- package/lib/dashboards/DashboardViewComponent.d.ts +5 -34
- package/lib/dashboards/DashboardViewComponent.js +112 -136
- package/lib/dashboards/FontStyleEditor.d.ts +8 -0
- package/lib/dashboards/FontStyleEditor.js +130 -0
- package/lib/dashboards/LayoutOptionsComponent.d.ts +0 -1
- package/lib/dashboards/LayoutOptionsComponent.js +209 -39
- package/lib/dashboards/ServerDashboardDataSource.d.ts +1 -2
- package/lib/dashboards/ServerDashboardDataSource.js +52 -33
- package/lib/dashboards/SettingsModalComponent.d.ts +4 -15
- package/lib/dashboards/SettingsModalComponent.js +24 -38
- package/lib/dashboards/WidgetComponent.d.ts +3 -3
- package/lib/dashboards/WidgetComponent.js +3 -6
- package/lib/dashboards/WidgetDataSourcePrioritizer.d.ts +20 -0
- package/lib/dashboards/WidgetDataSourcePrioritizer.js +72 -0
- package/lib/dashboards/layoutOptions.d.ts +83 -0
- package/lib/dashboards/layoutOptions.js +436 -10
- package/lib/datagrids/DatagridComponent.d.ts +2 -9
- package/lib/datagrids/DatagridDataSource.d.ts +3 -3
- package/lib/datagrids/DatagridDataSource.js +0 -14
- package/lib/datagrids/DatagridDesign.d.ts +7 -6
- package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -93
- package/lib/datagrids/DatagridDesignerComponent.js +8 -6
- package/lib/datagrids/DatagridViewComponent.js +1 -1
- package/lib/datagrids/FindReplaceModalComponent.d.ts +4 -20
- package/lib/datagrids/FindReplaceModalComponent.js +27 -13
- package/lib/datagrids/ServerDatagridDataSource.d.ts +8 -7
- package/lib/datagrids/ServerDatagridDataSource.js +88 -36
- package/lib/demo.js +4 -4
- package/lib/index.css +5 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +0 -1
- package/lib/layouts/LayoutManager.d.ts +33 -29
- package/lib/layouts/LayoutManager.js +2 -8
- package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +26 -56
- package/lib/layouts/blocks/BlocksDisplayComponent.js +122 -205
- package/lib/layouts/blocks/BlocksLayoutManager.d.ts +6 -22
- package/lib/layouts/blocks/BlocksLayoutManager.js +5 -14
- package/lib/layouts/blocks/HorizontalBlockComponent.d.ts +5 -4
- package/lib/layouts/blocks/HorizontalBlockComponent.js +5 -5
- package/lib/layouts/grid/GridLayoutManager.d.ts +2 -1
- package/lib/mWaterLoader.d.ts +2 -0
- package/lib/mWaterLoader.js +2 -1
- package/lib/maps/AddLayerComponent.d.ts +6 -8
- package/lib/maps/AddLayerComponent.js +6 -6
- package/lib/maps/BingLayer.js +10 -20
- package/lib/maps/BufferLayer.js +5 -2
- package/lib/maps/ChoroplethLayer.js +2 -1
- package/lib/maps/ClusterLayer.js +3 -1
- package/lib/maps/DirectMapDataSource.d.ts +5 -2
- package/lib/maps/DirectMapDataSource.js +2 -1
- package/lib/maps/EditPopupComponent.js +2 -1
- package/lib/maps/GridLayer.js +5 -3
- package/lib/maps/GridLayerDesigner.js +0 -1
- package/lib/maps/LayerSwitcherComponent.js +1 -1
- package/lib/maps/MapComponent.d.ts +3 -11
- package/lib/maps/MapComponent.js +3 -3
- package/lib/maps/MapDesign.d.ts +2 -13
- package/lib/maps/MapFiltersDesignerComponent.d.ts +0 -4
- package/lib/maps/MapFiltersDesignerComponent.js +4 -5
- package/lib/maps/MarkersLayer.js +30 -25
- package/lib/maps/RasterMapViewComponent.d.ts +3 -13
- package/lib/maps/RasterMapViewComponent.js +3 -3
- package/lib/maps/RegionSelectComponent.d.ts +2 -1
- package/lib/maps/ServerMapDataSource.d.ts +3 -4
- package/lib/maps/ServerMapDataSource.js +5 -5
- package/lib/maps/VectorMapViewComponent.js +2 -1
- package/lib/maps/mapSymbols.js +2 -0
- package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/lib/maps/vectorMaps.d.ts +1 -0
- package/lib/maps/vectorMaps.js +70 -56
- package/lib/quickfilter/QuickfilterCompiler.d.ts +1 -1
- package/lib/quickfilter/QuickfiltersComponent.d.ts +1 -4
- package/lib/quickfilter/QuickfiltersComponent.js +3 -3
- package/lib/richtext/DropdownPaletteItem.d.ts +32 -0
- package/lib/richtext/DropdownPaletteItem.js +82 -0
- package/lib/richtext/FontColorPaletteItem.d.ts +1 -5
- package/lib/richtext/FontColorPaletteItem.js +32 -27
- package/lib/richtext/ItemsHtmlConverter.js +12 -3
- package/lib/richtext/RichTextComponent.d.ts +26 -52
- package/lib/richtext/RichTextComponent.js +166 -128
- package/lib/valueFormatter.js +6 -1
- package/lib/wellknown.d.ts +5 -0
- package/lib/wellknown.js +288 -0
- package/lib/widgets/DropdownWidgetComponent.d.ts +8 -25
- package/lib/widgets/DropdownWidgetComponent.js +48 -25
- package/lib/widgets/IFrameWidgetComponent.d.ts +3 -11
- package/lib/widgets/ImageWidgetComponent.d.ts +8 -27
- package/lib/widgets/MapWidget.d.ts +4 -7
- package/lib/widgets/MapWidget.js +2 -1
- package/lib/widgets/MarkdownWidget.d.ts +2 -7
- package/lib/widgets/TOCWidget.d.ts +2 -9
- package/lib/widgets/TOCWidget.js +2 -1
- package/lib/widgets/Widget.d.ts +2 -0
- package/lib/widgets/WidgetDataSource.d.ts +3 -1
- package/lib/widgets/charts/Chart.d.ts +0 -1
- package/lib/widgets/charts/ChartViewComponent.d.ts +4 -0
- package/lib/widgets/charts/ChartViewComponent.js +11 -3
- package/lib/widgets/charts/ChartWidget.d.ts +1 -74
- package/lib/widgets/charts/ChartWidget.js +4 -183
- package/lib/widgets/charts/ChartWidgetComponent.d.ts +51 -0
- package/lib/widgets/charts/ChartWidgetComponent.js +167 -0
- package/lib/widgets/charts/calendar/CalendarChartViewComponent.d.ts +1 -4
- package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +4 -4
- package/lib/widgets/charts/imagemosaic/ImagePopupComponent.d.ts +2 -7
- package/lib/widgets/charts/layered/LayeredChart.d.ts +5 -10
- package/lib/widgets/charts/layered/LayeredChart.js +6 -7
- package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +4 -2
- package/lib/widgets/charts/layered/LayeredChartCompiler.js +46 -32
- package/lib/widgets/charts/layered/LayeredChartDesign.d.ts +4 -0
- package/lib/widgets/charts/layered/LayeredChartDesignerComponent.d.ts +5 -31
- package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +21 -3
- package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.d.ts +1 -7
- package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +2 -1
- package/lib/widgets/charts/layered/LayeredChartViewComponent.d.ts +1 -4
- package/lib/widgets/charts/layered/LayeredChartViewComponent.js +89 -38
- package/lib/widgets/charts/pivot/IntersectionDesignerComponent.d.ts +5 -105
- package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +122 -166
- package/lib/widgets/charts/pivot/PivotChart.d.ts +6 -0
- package/lib/widgets/charts/pivot/PivotChart.js +47 -17
- package/lib/widgets/charts/pivot/PivotChartDesign.d.ts +11 -0
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +11 -7
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +1 -1
- package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.d.ts +2 -2
- package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.js +20 -36
- package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +0 -1
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +23 -2
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +215 -181
- package/lib/widgets/charts/pivot/PivotChartUtils.d.ts +2 -2
- package/lib/widgets/charts/pivot/PivotChartViewComponent.d.ts +9 -47
- package/lib/widgets/charts/pivot/PivotChartViewComponent.js +20 -60
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +55 -58
- package/lib/widgets/charts/table/TableChart.js +8 -4
- package/lib/widgets/charts/table/TableChartDesignerComponent.js +3 -3
- package/lib/widgets/charts/table/TableChartViewComponent.js +30 -16
- package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -13
- package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -13
- package/lib/widgets/text/TextComponent.d.ts +5 -12
- package/lib/widgets/text/TextComponent.js +19 -39
- package/lib/widgets/text/TextWidget.d.ts +2 -1
- package/lib/widgets/text/TextWidget.js +5 -1
- package/lib/widgets/text/TextWidgetComponent.d.ts +15 -3
- package/lib/widgets/text/TextWidgetComponent.js +76 -19
- package/lib/widgets/text/TextWidgetDesign.d.ts +16 -2
- package/lib/widgets/text/TextWidgetDesign.js +6 -0
- package/package.json +4 -4
- package/src/ColorComponent.tsx +177 -0
- package/src/ColorSchemeFactory.ts +12 -6
- package/src/CustomColorsContext.tsx +8 -0
- package/src/FiltersDesignerComponent.ts +3 -4
- package/src/GlobalFilter.ts +17 -0
- package/src/LocaleContextInjector.tsx +14 -13
- package/src/MWaterAddRelatedFormComponent.ts +3 -3
- package/src/MWaterAddRelatedIndicatorComponent.ts +6 -6
- package/src/MWaterCompleteTableSelectComponent.tsx +36 -36
- package/src/MWaterContextComponent.tsx +42 -33
- package/src/MWaterCustomTablesetListComponent.tsx +21 -3
- package/src/MWaterGlobalFiltersComponent.ts +8 -8
- package/src/MWaterLoaderComponent.ts +14 -4
- package/src/MWaterTableSelectComponent.tsx +11 -12
- package/src/{UIComponents.ts → UIComponents.tsx} +7 -15
- package/src/axes/Axis.ts +24 -25
- package/src/axes/AxisBuilder.ts +16 -13
- package/src/axes/AxisComponent.ts +3 -4
- package/src/axes/{ColorPaletteCollectionComponent.ts → ColorPaletteCollectionComponent.tsx} +87 -61
- package/src/dashboards/DashboardComponent.tsx +73 -147
- package/src/dashboards/DashboardDesign.ts +5 -25
- package/src/dashboards/DashboardUpgrader.ts +41 -1
- package/src/dashboards/DashboardViewComponent.tsx +313 -0
- package/src/dashboards/FontStyleEditor.tsx +166 -0
- package/src/dashboards/LayoutOptionsComponent.tsx +377 -71
- package/src/dashboards/ServerDashboardDataSource.ts +52 -33
- package/src/dashboards/SettingsModalComponent.tsx +170 -0
- package/src/dashboards/WidgetComponent.tsx +6 -12
- package/src/dashboards/WidgetDataSourcePrioritizer.ts +82 -0
- package/src/dashboards/layoutOptions.tsx +581 -0
- package/src/datagrids/DatagridDataSource.ts +6 -12
- package/src/datagrids/DatagridDesign.ts +8 -3
- package/src/datagrids/DatagridDesignerComponent.tsx +22 -18
- package/src/datagrids/DatagridViewComponent.ts +3 -3
- package/src/datagrids/ExprCellComponent.ts +0 -1
- package/src/datagrids/FindReplaceModalComponent.ts +39 -22
- package/src/datagrids/ServerDatagridDataSource.ts +107 -45
- package/src/demo.ts +4 -4
- package/src/index.css +5 -0
- package/src/index.ts +2 -1
- package/src/layouts/LayoutManager.ts +44 -42
- package/src/layouts/blocks/BlocksDisplayComponent.tsx +498 -0
- package/src/layouts/blocks/BlocksLayoutManager.ts +6 -15
- package/src/layouts/blocks/HorizontalBlockComponent.ts +9 -8
- package/src/mWaterLoader.ts +4 -1
- package/src/maps/AddLayerComponent.ts +9 -9
- package/src/maps/BingLayer.ts +16 -26
- package/src/maps/BufferLayer.ts +5 -2
- package/src/maps/ChoroplethLayer.ts +2 -1
- package/src/maps/ClusterLayer.ts +3 -1
- package/src/maps/DirectMapDataSource.ts +12 -3
- package/src/maps/EditPopupComponent.ts +2 -1
- package/src/maps/GridLayer.ts +5 -3
- package/src/maps/GridLayerDesigner.tsx +0 -1
- package/src/maps/LayerSwitcherComponent.tsx +1 -1
- package/src/maps/MapComponent.ts +3 -3
- package/src/maps/MapDesign.ts +2 -17
- package/src/maps/{MapFiltersDesignerComponent.ts → MapFiltersDesignerComponent.tsx} +25 -25
- package/src/maps/MarkersLayer.ts +38 -41
- package/src/maps/RasterMapViewComponent.ts +3 -3
- package/src/maps/ServerMapDataSource.ts +8 -8
- package/src/maps/VectorMapViewComponent.tsx +2 -2
- package/src/maps/mapSymbols.ts +2 -0
- package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/src/maps/vectorMaps.tsx +88 -74
- package/src/quickfilter/QuickfilterCompiler.ts +1 -1
- package/src/quickfilter/QuickfiltersComponent.ts +3 -3
- package/src/richtext/DropdownPaletteItem.tsx +144 -0
- package/src/richtext/FontColorPaletteItem.tsx +160 -0
- package/src/richtext/ItemsHtmlConverter.ts +15 -5
- package/src/richtext/RichTextComponent.tsx +274 -232
- package/src/valueFormatter.ts +5 -1
- package/src/wellknown.ts +286 -0
- package/src/widgets/DropdownWidgetComponent.tsx +75 -0
- package/src/widgets/MapWidget.ts +5 -2
- package/src/widgets/TOCWidget.ts +2 -1
- package/src/widgets/Widget.ts +3 -0
- package/src/widgets/WidgetDataSource.ts +3 -1
- package/src/widgets/charts/Chart.ts +1 -1
- package/src/widgets/charts/ChartViewComponent.ts +16 -3
- package/src/widgets/charts/ChartWidget.ts +3 -275
- package/src/widgets/charts/ChartWidgetComponent.tsx +281 -0
- package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +4 -4
- package/src/widgets/charts/layered/LayeredChart.ts +4 -6
- package/src/widgets/charts/layered/LayeredChartCompiler.ts +80 -63
- package/src/widgets/charts/layered/LayeredChartDesign.ts +7 -1
- package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +43 -10
- package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +6 -6
- package/src/widgets/charts/layered/LayeredChartViewComponent.ts +140 -88
- package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +305 -221
- package/src/widgets/charts/pivot/PivotChart.ts +56 -18
- package/src/widgets/charts/pivot/PivotChartDesign.ts +12 -0
- package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +4 -3
- package/src/widgets/charts/pivot/PivotChartLayoutBuilder.ts +39 -76
- package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +0 -1
- package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +230 -189
- package/src/widgets/charts/pivot/PivotChartUtils.ts +4 -4
- package/src/widgets/charts/pivot/{PivotChartViewComponent.ts → PivotChartViewComponent.tsx} +86 -89
- package/src/widgets/charts/table/TableChart.ts +8 -4
- package/src/widgets/charts/table/TableChartDesignerComponent.ts +4 -4
- package/src/widgets/charts/table/TableChartViewComponent.ts +32 -19
- package/src/widgets/text/TextComponent.tsx +47 -49
- package/src/widgets/text/TextWidget.ts +8 -3
- package/src/widgets/text/TextWidgetComponent.tsx +249 -0
- package/src/widgets/text/TextWidgetDesign.ts +26 -2
- package/src/ColorComponent.ts +0 -117
- package/src/dashboards/DashboardViewComponent.ts +0 -304
- package/src/dashboards/SettingsModalComponent.ts +0 -169
- package/src/dashboards/layoutOptions.ts +0 -40
- package/src/layout-styles.css +0 -263
- package/src/layouts/blocks/BlocksDisplayComponent.ts +0 -461
- package/src/layouts/grid/GridLayoutComponent.ts +0 -67
- package/src/layouts/grid/GridLayoutManager.ts +0 -185
- package/src/layouts/grid/LegoLayoutEngine.ts +0 -142
- package/src/layouts/grid/PaletteItemComponent.ts +0 -28
- package/src/layouts/grid/README.md +0 -14
- package/src/layouts/grid/WidgetContainerComponent.ts +0 -420
- package/src/richtext/FontColorPaletteItem.ts +0 -172
- package/src/richtext/FontSizePaletteItem.ts +0 -110
- package/src/widgets/DropdownWidgetComponent.ts +0 -78
- package/src/widgets/text/TextWidgetComponent.ts +0 -120
|
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const lodash_1 = __importDefault(require("lodash"));
|
|
30
30
|
const jquery_1 = __importDefault(require("jquery"));
|
|
31
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
32
31
|
const react_1 = __importDefault(require("react"));
|
|
33
32
|
const R = react_1.default.createElement;
|
|
34
33
|
const querystring_1 = __importDefault(require("querystring"));
|
|
@@ -40,6 +39,7 @@ const ModalPopupComponent_1 = __importDefault(require("@mwater/react-library/lib
|
|
|
40
39
|
const MWaterCustomTablesetListComponent_1 = require("./MWaterCustomTablesetListComponent");
|
|
41
40
|
const MWaterMetricsTableListComponent_1 = require("./MWaterMetricsTableListComponent");
|
|
42
41
|
const MWaterAssetSystemsListComponent_1 = require("./MWaterAssetSystemsListComponent");
|
|
42
|
+
const contexts_1 = require("@mwater/expressions-ui/lib/contexts");
|
|
43
43
|
const sitesOrder = {
|
|
44
44
|
"entities.water_point": 1,
|
|
45
45
|
"entities.sanitation_facility": 2,
|
|
@@ -59,7 +59,7 @@ const assetEntities = [
|
|
|
59
59
|
];
|
|
60
60
|
// Allows selection of a table. Is the complete list mode of tables
|
|
61
61
|
class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
62
|
-
static
|
|
62
|
+
static contextType = contexts_1.LocaleContext;
|
|
63
63
|
constructor(props) {
|
|
64
64
|
super(props);
|
|
65
65
|
this.state = {
|
|
@@ -98,8 +98,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
98
98
|
items: lodash_1.default.compact(lodash_1.default.map(types, (tableId) => {
|
|
99
99
|
table = this.props.schema.getTable(tableId);
|
|
100
100
|
return {
|
|
101
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
102
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
101
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
102
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
103
103
|
onClick: this.props.onChange.bind(null, table.id)
|
|
104
104
|
};
|
|
105
105
|
}))
|
|
@@ -147,8 +147,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
147
147
|
return R(uiComponents.OptionListComponent, {
|
|
148
148
|
items: lodash_1.default.map(sweetSenseTables, (table) => {
|
|
149
149
|
return {
|
|
150
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
151
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
150
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
151
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
152
152
|
onClick: this.props.onChange.bind(null, table.id)
|
|
153
153
|
};
|
|
154
154
|
})
|
|
@@ -164,7 +164,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
164
164
|
extraTables: this.props.extraTables,
|
|
165
165
|
onExtraTableAdd: this.handleExtraTableAdd,
|
|
166
166
|
onExtraTableRemove: this.handleExtraTableRemove,
|
|
167
|
-
locale: this.context
|
|
167
|
+
locale: this.context
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
170
|
renderMetrics() {
|
|
@@ -177,7 +177,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
177
177
|
extraTables: this.props.extraTables,
|
|
178
178
|
onExtraTableAdd: this.handleExtraTableAdd,
|
|
179
179
|
onExtraTableRemove: this.handleExtraTableRemove,
|
|
180
|
-
locale: this.context
|
|
180
|
+
locale: this.context
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
renderAssets() {
|
|
@@ -188,8 +188,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
188
188
|
continue;
|
|
189
189
|
}
|
|
190
190
|
items.push({
|
|
191
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
192
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
191
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
192
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
193
193
|
onClick: this.props.onChange.bind(null, table.id)
|
|
194
194
|
});
|
|
195
195
|
}
|
|
@@ -211,7 +211,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
211
211
|
extraTables: this.props.extraTables,
|
|
212
212
|
onExtraTableAdd: this.handleExtraTableAdd,
|
|
213
213
|
onExtraTableRemove: this.handleExtraTableRemove,
|
|
214
|
-
locale: this.context
|
|
214
|
+
locale: this.context
|
|
215
215
|
});
|
|
216
216
|
}
|
|
217
217
|
renderOther() {
|
|
@@ -258,8 +258,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
258
258
|
return R(uiComponents.OptionListComponent, {
|
|
259
259
|
items: lodash_1.default.map(otherTables, (table) => {
|
|
260
260
|
return {
|
|
261
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
262
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
261
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
262
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
263
263
|
onClick: this.props.onChange.bind(null, table.id)
|
|
264
264
|
};
|
|
265
265
|
})
|
|
@@ -308,7 +308,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
|
|
|
308
308
|
exports.default = MWaterCompleteTableSelectComponent;
|
|
309
309
|
// Searchable list of forms
|
|
310
310
|
class FormsListComponent extends react_1.default.Component {
|
|
311
|
-
static
|
|
311
|
+
static contextType = contexts_1.LocaleContext;
|
|
312
312
|
constructor(props) {
|
|
313
313
|
super(props);
|
|
314
314
|
this.state = {
|
|
@@ -341,14 +341,14 @@ class FormsListComponent extends react_1.default.Component {
|
|
|
341
341
|
// TODO use name instead of design.name
|
|
342
342
|
this.setState({
|
|
343
343
|
forms: lodash_1.default.map(forms, (form) => {
|
|
344
|
-
let desc = expressions_1.ExprUtils.localizeString(form.design.description,
|
|
344
|
+
let desc = expressions_1.ExprUtils.localizeString(form.design.description, null) || "";
|
|
345
345
|
if (desc) {
|
|
346
346
|
desc += " - ";
|
|
347
347
|
}
|
|
348
348
|
desc += `Modified ${(0, moment_1.default)(form.modified?.on, moment_1.default.ISO_8601).format("ll")}`;
|
|
349
349
|
return {
|
|
350
350
|
id: form._id,
|
|
351
|
-
name: expressions_1.ExprUtils.localizeString(form.design.name,
|
|
351
|
+
name: expressions_1.ExprUtils.localizeString(form.design.name, null),
|
|
352
352
|
desc
|
|
353
353
|
};
|
|
354
354
|
})
|
|
@@ -358,7 +358,7 @@ class FormsListComponent extends react_1.default.Component {
|
|
|
358
358
|
});
|
|
359
359
|
}
|
|
360
360
|
handleTableRemove = (table) => {
|
|
361
|
-
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
361
|
+
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
|
|
362
362
|
return this.props.onExtraTableRemove(table.id);
|
|
363
363
|
}
|
|
364
364
|
};
|
|
@@ -391,8 +391,8 @@ class FormsListComponent extends react_1.default.Component {
|
|
|
391
391
|
? R(uiComponents.OptionListComponent, {
|
|
392
392
|
items: lodash_1.default.map(tables, (table) => {
|
|
393
393
|
return {
|
|
394
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
395
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
394
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
395
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
396
396
|
onClick: this.props.onChange.bind(null, table.id),
|
|
397
397
|
onRemove: this.handleTableRemove.bind(null, table)
|
|
398
398
|
};
|
|
@@ -423,7 +423,7 @@ class FormsListComponent extends react_1.default.Component {
|
|
|
423
423
|
}
|
|
424
424
|
// Searchable list of indicators
|
|
425
425
|
class IndicatorsListComponent extends react_1.default.Component {
|
|
426
|
-
static
|
|
426
|
+
static contextType = contexts_1.LocaleContext;
|
|
427
427
|
addIndicatorConfirmPopup;
|
|
428
428
|
constructor(props) {
|
|
429
429
|
super(props);
|
|
@@ -445,13 +445,13 @@ class IndicatorsListComponent extends react_1.default.Component {
|
|
|
445
445
|
indicators = lodash_1.default.sortByOrder(indicators, [
|
|
446
446
|
(indicator) => ((this.props.extraTables || []).includes("indicator_values:" + indicator._id) ? 0 : 1),
|
|
447
447
|
(indicator) => (indicator.design.recommended ? 0 : 1),
|
|
448
|
-
(indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, this.context
|
|
448
|
+
(indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, this.context)
|
|
449
449
|
], ["asc", "asc", "asc"]);
|
|
450
450
|
return this.setState({
|
|
451
451
|
indicators: lodash_1.default.map(indicators, (indicator) => ({
|
|
452
452
|
id: indicator._id,
|
|
453
|
-
name: expressions_1.ExprUtils.localizeString(indicator.design.name, this.context
|
|
454
|
-
desc: expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context
|
|
453
|
+
name: expressions_1.ExprUtils.localizeString(indicator.design.name, this.context),
|
|
454
|
+
desc: expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context)
|
|
455
455
|
}))
|
|
456
456
|
});
|
|
457
457
|
}).fail((xhr) => {
|
|
@@ -459,7 +459,7 @@ class IndicatorsListComponent extends react_1.default.Component {
|
|
|
459
459
|
});
|
|
460
460
|
}
|
|
461
461
|
handleTableRemove = (table) => {
|
|
462
|
-
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
462
|
+
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
|
|
463
463
|
return this.props.onExtraTableRemove(table.id);
|
|
464
464
|
}
|
|
465
465
|
};
|
|
@@ -506,8 +506,8 @@ class IndicatorsListComponent extends react_1.default.Component {
|
|
|
506
506
|
? R(uiComponents.OptionListComponent, {
|
|
507
507
|
items: lodash_1.default.map(tables, (table) => {
|
|
508
508
|
return {
|
|
509
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
510
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
509
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
510
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
511
511
|
onClick: this.handleSelect.bind(null, table.id),
|
|
512
512
|
onRemove: this.handleTableRemove.bind(null, table)
|
|
513
513
|
};
|
|
@@ -537,7 +537,7 @@ class IndicatorsListComponent extends react_1.default.Component {
|
|
|
537
537
|
}
|
|
538
538
|
}
|
|
539
539
|
class AddIndicatorConfirmPopupComponent extends react_1.default.Component {
|
|
540
|
-
static
|
|
540
|
+
static contextType = contexts_1.LocaleContext;
|
|
541
541
|
constructor(props) {
|
|
542
542
|
super(props);
|
|
543
543
|
this.state = {
|
|
@@ -559,8 +559,8 @@ class AddIndicatorConfirmPopupComponent extends react_1.default.Component {
|
|
|
559
559
|
below, then find the indicator values in the 'Related Indicators' section. Or click on 'Use Raw Indicator' if you
|
|
560
560
|
are certain that you want to use the raw indicator table`), R(uiComponents.OptionListComponent, {
|
|
561
561
|
items: lodash_1.default.map(entityColumns, (entityColumn) => ({
|
|
562
|
-
name: expressions_1.ExprUtils.localizeString(entityColumn.name, this.context
|
|
563
|
-
desc: expressions_1.ExprUtils.localizeString(entityColumn.desc, this.context
|
|
562
|
+
name: expressions_1.ExprUtils.localizeString(entityColumn.name, this.context),
|
|
563
|
+
desc: expressions_1.ExprUtils.localizeString(entityColumn.desc, this.context),
|
|
564
564
|
onClick: () => {
|
|
565
565
|
// Select table
|
|
566
566
|
this.props.onChange(entityColumn.join.toTable);
|
|
@@ -582,7 +582,7 @@ are certain that you want to use the raw indicator table`), R(uiComponents.Optio
|
|
|
582
582
|
}
|
|
583
583
|
// Searchable list of issue types
|
|
584
584
|
class IssuesListComponent extends react_1.default.Component {
|
|
585
|
-
static
|
|
585
|
+
static contextType = contexts_1.LocaleContext;
|
|
586
586
|
constructor(props) {
|
|
587
587
|
super(props);
|
|
588
588
|
this.state = {
|
|
@@ -601,13 +601,13 @@ class IssuesListComponent extends react_1.default.Component {
|
|
|
601
601
|
issueTypes = lodash_1.default.sortByOrder(issueTypes, [
|
|
602
602
|
(issueType) => ((this.props.extraTables || []).includes("issues:" + issueType._id) ? 0 : 1),
|
|
603
603
|
(issueType) => (issueType.created.by === this.props.user ? 0 : 1),
|
|
604
|
-
(issueType) => expressions_1.ExprUtils.localizeString(issueType.name, this.context
|
|
604
|
+
(issueType) => expressions_1.ExprUtils.localizeString(issueType.name, this.context)
|
|
605
605
|
], ["asc", "asc", "asc"]);
|
|
606
606
|
return this.setState({
|
|
607
607
|
issueTypes: lodash_1.default.map(issueTypes, (issueType) => ({
|
|
608
608
|
id: issueType._id,
|
|
609
|
-
name: expressions_1.ExprUtils.localizeString(issueType.name, this.context
|
|
610
|
-
desc: expressions_1.ExprUtils.localizeString(issueType.desc, this.context
|
|
609
|
+
name: expressions_1.ExprUtils.localizeString(issueType.name, this.context),
|
|
610
|
+
desc: expressions_1.ExprUtils.localizeString(issueType.desc, this.context)
|
|
611
611
|
}))
|
|
612
612
|
});
|
|
613
613
|
}).fail((xhr) => {
|
|
@@ -615,7 +615,7 @@ class IssuesListComponent extends react_1.default.Component {
|
|
|
615
615
|
});
|
|
616
616
|
}
|
|
617
617
|
handleTableRemove = (table) => {
|
|
618
|
-
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
618
|
+
if (confirm(`Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
|
|
619
619
|
return this.props.onExtraTableRemove(table.id);
|
|
620
620
|
}
|
|
621
621
|
};
|
|
@@ -648,8 +648,8 @@ class IssuesListComponent extends react_1.default.Component {
|
|
|
648
648
|
? R(uiComponents.OptionListComponent, {
|
|
649
649
|
items: lodash_1.default.map(tables, (table) => {
|
|
650
650
|
return {
|
|
651
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
652
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
651
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
652
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
653
653
|
onClick: this.props.onChange.bind(null, table.id),
|
|
654
654
|
onRemove: this.handleTableRemove.bind(null, table)
|
|
655
655
|
};
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
import PropTypes from "prop-types";
|
|
2
1
|
import React from "react";
|
|
3
|
-
import { Schema, Section } from "@mwater/expressions";
|
|
2
|
+
import { DataSource, Schema, Section } from "@mwater/expressions";
|
|
4
3
|
import { CustomTableSelectComponentFactoryOptions, DecorateScalarExprTreeSectionChildrenOptions } from "@mwater/expressions-ui";
|
|
4
|
+
import { GlobalFilter } from "./GlobalFilter";
|
|
5
|
+
import { AddLayerComponentProps } from "./maps/AddLayerComponent";
|
|
6
|
+
export interface GlobalFiltersElementFactoryProps {
|
|
7
|
+
schema: Schema;
|
|
8
|
+
dataSource: DataSource;
|
|
9
|
+
filterableTables: string[];
|
|
10
|
+
globalFilters?: GlobalFilter[];
|
|
11
|
+
onChange: (globalFilters: GlobalFilter[]) => void;
|
|
12
|
+
/** If true, return null element if not applicable to filterableTables */
|
|
13
|
+
nullIfIrrelevant?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type GlobalFiltersElementFactory = (props: GlobalFiltersElementFactoryProps) => React.ReactElement | null;
|
|
16
|
+
export declare const GlobalFiltersElementFactoryContext: React.Context<GlobalFiltersElementFactory | null>;
|
|
17
|
+
export type AddLayerElementFactory = (props: AddLayerComponentProps) => React.ReactElement | null;
|
|
18
|
+
export declare const AddLayerElementFactoryContext: React.Context<AddLayerElementFactory | undefined>;
|
|
5
19
|
/**
|
|
6
20
|
* Creates several contexts to allow selecting of a table in an mWater-friendly way
|
|
7
21
|
* and several other context items
|
|
@@ -9,7 +23,7 @@ import { CustomTableSelectComponentFactoryOptions, DecorateScalarExprTreeSection
|
|
|
9
23
|
export default class MWaterContextComponent extends React.Component<{
|
|
10
24
|
apiUrl: string;
|
|
11
25
|
client?: string;
|
|
12
|
-
/**
|
|
26
|
+
/** user id of logged in user */
|
|
13
27
|
user?: string;
|
|
14
28
|
schema: Schema;
|
|
15
29
|
/** Extra tables to load in schema. Forms are not loaded by default as they are too many */
|
|
@@ -17,14 +31,10 @@ export default class MWaterContextComponent extends React.Component<{
|
|
|
17
31
|
/** Called when extra tables are changed and schema will be reloaded */
|
|
18
32
|
onExtraTablesChange?: (extraTables: string[]) => void;
|
|
19
33
|
/** Override default add layer component. See AddLayerComponent for details */
|
|
20
|
-
addLayerElementFactory?:
|
|
34
|
+
addLayerElementFactory?: AddLayerElementFactory;
|
|
21
35
|
}> {
|
|
22
|
-
static childContextTypes: {
|
|
23
|
-
addLayerElementFactory: PropTypes.Requireable<(...args: any[]) => any>;
|
|
24
|
-
globalFiltersElementFactory: PropTypes.Requireable<(...args: any[]) => any>;
|
|
25
|
-
};
|
|
26
36
|
createTableSelectElementFactory: (options: CustomTableSelectComponentFactoryOptions) => React.JSX.Element;
|
|
27
|
-
|
|
37
|
+
createGlobalFiltersElementFactory: (props: GlobalFiltersElementFactoryProps) => React.JSX.Element | null;
|
|
28
38
|
isScalarExprTreeSectionMatch: (options: {
|
|
29
39
|
tableId: string;
|
|
30
40
|
section: Section;
|
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
29
|
+
exports.AddLayerElementFactoryContext = exports.GlobalFiltersElementFactoryContext = void 0;
|
|
7
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const react_1 =
|
|
31
|
+
const react_1 = __importStar(require("react"));
|
|
9
32
|
const R = react_1.default.createElement;
|
|
10
33
|
const MWaterTableSelectComponent_1 = __importDefault(require("./MWaterTableSelectComponent"));
|
|
11
34
|
const MWaterAddRelatedFormComponent_1 = __importDefault(require("./MWaterAddRelatedFormComponent"));
|
|
@@ -13,32 +36,22 @@ const MWaterAddRelatedIndicatorComponent_1 = __importDefault(require("./MWaterAd
|
|
|
13
36
|
const MWaterGlobalFiltersComponent_1 = __importDefault(require("./MWaterGlobalFiltersComponent"));
|
|
14
37
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
15
38
|
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
39
|
+
exports.GlobalFiltersElementFactoryContext = (0, react_1.createContext)(null);
|
|
40
|
+
exports.AddLayerElementFactoryContext = (0, react_1.createContext)(undefined);
|
|
16
41
|
/**
|
|
17
42
|
* Creates several contexts to allow selecting of a table in an mWater-friendly way
|
|
18
43
|
* and several other context items
|
|
19
44
|
*/
|
|
20
45
|
class MWaterContextComponent extends react_1.default.Component {
|
|
21
|
-
static childContextTypes = {
|
|
22
|
-
addLayerElementFactory: prop_types_1.default.func,
|
|
23
|
-
globalFiltersElementFactory: prop_types_1.default.func, // Call with props { schema, dataSource, filterableTables, globalFilters, onChange, nullIfIrrelevant }.
|
|
24
|
-
// Displays a component to edit global filters. nullIfIrrelevant causes null element if not applicable to filterableTables
|
|
25
|
-
};
|
|
26
46
|
createTableSelectElementFactory = (options) => {
|
|
27
47
|
return (react_1.default.createElement(MWaterTableSelectComponent_1.default, { apiUrl: this.props.apiUrl, client: this.props.client, schema: options.schema, user: this.props.user, table: options.value ?? undefined, onChange: options.onChange, extraTables: this.props.extraTables, onExtraTablesChange: this.props.onExtraTablesChange, filter: options.filter, onFilterChange: options.onFilterChange }));
|
|
28
48
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
context.addLayerElementFactory = this.props.addLayerElementFactory;
|
|
49
|
+
createGlobalFiltersElementFactory = (props) => {
|
|
50
|
+
if (props.nullIfIrrelevant && !lodash_1.default.any(props.filterableTables, (t) => t.match(/^entities./))) {
|
|
51
|
+
return null;
|
|
33
52
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
return react_1.default.createElement(MWaterGlobalFiltersComponent_1.default, props);
|
|
39
|
-
};
|
|
40
|
-
return context;
|
|
41
|
-
}
|
|
53
|
+
return react_1.default.createElement(MWaterGlobalFiltersComponent_1.default, { ...props });
|
|
54
|
+
};
|
|
42
55
|
isScalarExprTreeSectionMatch = (options) => {
|
|
43
56
|
if (options.tableId.match(/^entities\./) && options.section.id === "!indicators") {
|
|
44
57
|
return true;
|
|
@@ -84,9 +97,12 @@ class MWaterContextComponent extends react_1.default.Component {
|
|
|
84
97
|
};
|
|
85
98
|
render() {
|
|
86
99
|
return react_1.default.createElement(expressions_ui_1.CustomTableSelectComponentFactoryContext.Provider, { value: this.createTableSelectElementFactory },
|
|
87
|
-
react_1.default.createElement(
|
|
88
|
-
react_1.default.createElement(expressions_ui_2.
|
|
89
|
-
react_1.default.createElement(
|
|
100
|
+
react_1.default.createElement(exports.GlobalFiltersElementFactoryContext.Provider, { value: this.createGlobalFiltersElementFactory },
|
|
101
|
+
react_1.default.createElement(expressions_ui_2.IsScalarExprTreeSectionMatchContext.Provider, { value: this.isScalarExprTreeSectionMatch },
|
|
102
|
+
react_1.default.createElement(expressions_ui_2.IsScalarExprTreeSectionInitiallyOpenContext.Provider, { value: this.isScalarExprTreeSectionInitiallyOpen },
|
|
103
|
+
react_1.default.createElement(expressions_ui_1.DecorateScalarExprTreeSectionChildrenContext.Provider, { value: this.decorateScalarExprTreeSectionChildren },
|
|
104
|
+
react_1.default.createElement(exports.AddLayerElementFactoryContext.Provider, { value: this.props.addLayerElementFactory }, this.props.children))))),
|
|
105
|
+
" ");
|
|
90
106
|
}
|
|
91
107
|
}
|
|
92
108
|
exports.default = MWaterContextComponent;
|
|
@@ -15,13 +15,16 @@ const MWaterCustomTablesetListComponent = (props) => {
|
|
|
15
15
|
const [tablesets, setTablesets] = (0, react_1.useState)();
|
|
16
16
|
const [search, setSearch] = (0, react_1.useState)("");
|
|
17
17
|
const [extraTableNeeded, setExtraTableNeeded] = (0, react_1.useState)();
|
|
18
|
+
const [showSystem, setShowSystem] = (0, react_1.useState)(false);
|
|
18
19
|
// Get list of all tablesets
|
|
19
20
|
(0, react_1.useEffect)(() => {
|
|
20
21
|
fetch(`${props.apiUrl}custom_tablesets?client=${props.client || ""}`)
|
|
21
22
|
.then((response) => response.json())
|
|
22
|
-
.then((
|
|
23
|
+
.then((tablesets) => {
|
|
24
|
+
// Filter out non-normal
|
|
25
|
+
tablesets = tablesets.filter((ts) => ts.type === "normal");
|
|
23
26
|
// Put included ones first
|
|
24
|
-
setTablesets(lodash_1.default.sortByAll(
|
|
27
|
+
setTablesets(lodash_1.default.sortByAll(tablesets, [
|
|
25
28
|
(ts) => (props.extraTables.some((t) => (t || "").startsWith(`custom.${ts.code}.`)) ? 0 : 1),
|
|
26
29
|
(ts) => expressions_1.ExprUtils.localizeString(ts.design.name, props.locale)
|
|
27
30
|
]));
|
|
@@ -80,8 +83,11 @@ const MWaterCustomTablesetListComponent = (props) => {
|
|
|
80
83
|
react_2.default.createElement("h4", { className: "text-muted" }, name),
|
|
81
84
|
react_2.default.createElement(UIComponents_1.OptionListComponent, { items: items })));
|
|
82
85
|
};
|
|
86
|
+
const visibleTablesets = tablesets.filter((ts) => (showSystem || !ts.design.system) && !ts.design.deprecated);
|
|
83
87
|
return (react_2.default.createElement("div", null,
|
|
84
88
|
react_2.default.createElement(bootstrap_1.TextInput, { value: search, onChange: setSearch, placeholder: "Search..." }),
|
|
85
|
-
|
|
89
|
+
visibleTablesets.map((ts) => renderTableset(ts)),
|
|
90
|
+
react_2.default.createElement("div", null,
|
|
91
|
+
react_2.default.createElement("button", { className: "btn btn-link btn-sm", onClick: () => setShowSystem(!showSystem) }, showSystem ? "Hide system tables" : "Show system tables"))));
|
|
86
92
|
};
|
|
87
93
|
exports.MWaterCustomTablesetListComponent = MWaterCustomTablesetListComponent;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DataSource, Schema } from "@mwater/expressions";
|
|
3
|
+
import { GlobalFilter } from "./GlobalFilter";
|
|
3
4
|
export interface MWaterGlobalFiltersComponentProps {
|
|
4
5
|
/** Schema of the database */
|
|
5
6
|
schema: Schema;
|
|
6
7
|
/** Data source to use to get values */
|
|
7
8
|
dataSource: DataSource;
|
|
8
|
-
filterableTables:
|
|
9
|
-
globalFilters?:
|
|
10
|
-
onChange:
|
|
9
|
+
filterableTables: string[];
|
|
10
|
+
globalFilters?: GlobalFilter[];
|
|
11
|
+
onChange: (globalFilters: GlobalFilter[]) => void;
|
|
11
12
|
}
|
|
12
13
|
export default class MWaterGlobalFiltersComponent extends React.Component<MWaterGlobalFiltersComponentProps> {
|
|
13
|
-
handleRegionsChange: (regions: any) =>
|
|
14
|
-
handleManagedByChange: (managedBy: any) =>
|
|
14
|
+
handleRegionsChange: (regions: any) => void;
|
|
15
|
+
handleManagedByChange: (managedBy: any) => void;
|
|
15
16
|
render(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
16
17
|
}
|
|
@@ -45,7 +45,7 @@ class MWaterGlobalFiltersComponent extends react_1.default.Component {
|
|
|
45
45
|
exprs: [{ type: "literal", valueType: "id[]", idTable: "admin_regions", value: regions }]
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
this.props.onChange(globalFilters);
|
|
49
49
|
};
|
|
50
50
|
handleManagedByChange = (managedBy) => {
|
|
51
51
|
// Remove existing filter
|
|
@@ -59,12 +59,12 @@ class MWaterGlobalFiltersComponent extends react_1.default.Component {
|
|
|
59
59
|
exprs: [{ type: "literal", valueType: "id", idTable: "subjects", value: "group:" + managedBy }]
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
this.props.onChange(globalFilters);
|
|
63
63
|
};
|
|
64
64
|
render() {
|
|
65
65
|
// Find managed by
|
|
66
66
|
let adminRegions, managedBy;
|
|
67
|
-
const managedByEntry = lodash_1.default.find(this.props.globalFilters, (gf) => gf.op === "within" && gf.columnId === "_managed_by");
|
|
67
|
+
const managedByEntry = lodash_1.default.find(this.props.globalFilters || [], (gf) => gf.op === "within" && gf.columnId === "_managed_by");
|
|
68
68
|
if (managedByEntry) {
|
|
69
69
|
managedBy = managedByEntry.exprs[0].value.split(":")[1];
|
|
70
70
|
}
|
|
@@ -72,7 +72,7 @@ class MWaterGlobalFiltersComponent extends react_1.default.Component {
|
|
|
72
72
|
managedBy = null;
|
|
73
73
|
}
|
|
74
74
|
// Find admin region
|
|
75
|
-
const adminRegionEntry = lodash_1.default.find(this.props.globalFilters, (gf) => gf.op === "within any" && gf.columnId === "admin_region");
|
|
75
|
+
const adminRegionEntry = lodash_1.default.find(this.props.globalFilters || [], (gf) => gf.op === "within any" && gf.columnId === "admin_region");
|
|
76
76
|
if (adminRegionEntry) {
|
|
77
77
|
adminRegions = adminRegionEntry.exprs[0].value;
|
|
78
78
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { ReactElement } from "react";
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
2
|
import { DataSource, Schema } from "@mwater/expressions";
|
|
3
3
|
import AsyncLoadComponent from "@mwater/react-library/lib/AsyncLoadComponent";
|
|
4
|
+
import LoadingComponent from "@mwater/react-library/lib/LoadingComponent";
|
|
5
|
+
import MWaterContextComponent, { AddLayerElementFactory } from "./MWaterContextComponent";
|
|
4
6
|
/**
|
|
5
7
|
* Loads an mWater schema from the server and creates child with schema and dataSource
|
|
6
8
|
* Also creates context to allow selecting of a table in an mWater-friendly way
|
|
@@ -21,13 +23,15 @@ export default class MWaterLoaderComponent extends AsyncLoadComponent<{
|
|
|
21
23
|
/** Locales of the schema to load. Default is all. */
|
|
22
24
|
locales?: string[];
|
|
23
25
|
/** Override default add layer component. See AddLayerComponent for details */
|
|
24
|
-
addLayerElementFactory?:
|
|
26
|
+
addLayerElementFactory?: AddLayerElementFactory;
|
|
25
27
|
children: (error: any, config?: {
|
|
26
28
|
schema: Schema;
|
|
27
29
|
dataSource: DataSource;
|
|
28
30
|
}) => ReactElement<any>;
|
|
29
31
|
/** Custom error formatter that returns React node or string, gets passed the error response from server */
|
|
30
32
|
errorFormatter?: (data: any, defaultError: string) => string;
|
|
33
|
+
/** Origin of usage. e.g. "dashboards:43445364..." */
|
|
34
|
+
origin?: string;
|
|
31
35
|
}, {
|
|
32
36
|
error: any;
|
|
33
37
|
schema: Schema | null;
|
|
@@ -38,5 +42,13 @@ export default class MWaterLoaderComponent extends AsyncLoadComponent<{
|
|
|
38
42
|
constructor(props: any);
|
|
39
43
|
isLoadNeeded(newProps: any, oldProps: any): boolean;
|
|
40
44
|
load(props: any, prevProps: any, callback: any): void;
|
|
41
|
-
render(): any
|
|
45
|
+
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.CElement<import("@mwater/react-library/lib/LoadingComponent").LoadingComponentProps, LoadingComponent> | React.CElement<{
|
|
46
|
+
apiUrl: string;
|
|
47
|
+
client?: string | undefined;
|
|
48
|
+
user?: string | undefined;
|
|
49
|
+
schema: Schema;
|
|
50
|
+
extraTables?: string[] | undefined;
|
|
51
|
+
onExtraTablesChange?: ((extraTables: string[]) => void) | undefined;
|
|
52
|
+
addLayerElementFactory?: AddLayerElementFactory | undefined;
|
|
53
|
+
}, MWaterContextComponent>;
|
|
42
54
|
}
|
|
@@ -40,12 +40,21 @@ class MWaterLoaderComponent extends AsyncLoadComponent_1.default {
|
|
|
40
40
|
share: props.share,
|
|
41
41
|
asUser: props.asUser,
|
|
42
42
|
extraTables: props.extraTables,
|
|
43
|
-
locales: props.locales
|
|
43
|
+
locales: props.locales,
|
|
44
|
+
origin: props.origin
|
|
44
45
|
}, (error, config) => {
|
|
45
46
|
if (error) {
|
|
46
47
|
const defaultError = `Cannot load one of the forms that this depends on. Perhaps the administrator has not shared the form with you? Details: ${error.message}`;
|
|
47
48
|
if (this.props.errorFormatter) {
|
|
48
|
-
|
|
49
|
+
try {
|
|
50
|
+
const parsedError = JSON.parse(error.message);
|
|
51
|
+
if (parsedError) {
|
|
52
|
+
return callback({ error: this.props.errorFormatter(parsedError, defaultError) });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
// Ignore
|
|
57
|
+
}
|
|
49
58
|
}
|
|
50
59
|
return callback({ error: defaultError });
|
|
51
60
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import PropTypes from "prop-types";
|
|
2
1
|
import React from "react";
|
|
3
2
|
import { Schema } from "@mwater/expressions";
|
|
4
3
|
export interface MWaterTableSelectComponentProps {
|
|
@@ -22,9 +21,7 @@ interface MWaterTableSelectComponentState {
|
|
|
22
21
|
pendingExtraTable: any;
|
|
23
22
|
}
|
|
24
23
|
export default class MWaterTableSelectComponent extends React.Component<MWaterTableSelectComponentProps, MWaterTableSelectComponentState> {
|
|
25
|
-
static
|
|
26
|
-
locale: PropTypes.Requireable<string>;
|
|
27
|
-
};
|
|
24
|
+
static contextType: React.Context<string>;
|
|
28
25
|
toggleEdit: any;
|
|
29
26
|
constructor(props: any);
|
|
30
27
|
componentWillReceiveProps(nextProps: any): any;
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const lodash_1 = __importDefault(require("lodash"));
|
|
7
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
8
7
|
const react_1 = __importDefault(require("react"));
|
|
9
8
|
const R = react_1.default.createElement;
|
|
10
9
|
const UIComponents_1 = require("./UIComponents");
|
|
@@ -15,9 +14,7 @@ const MWaterCompleteTableSelectComponent_1 = __importDefault(require("./MWaterCo
|
|
|
15
14
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
16
15
|
// Allows selection of a mwater-visualization table. Loads forms as well and calls event if modified
|
|
17
16
|
class MWaterTableSelectComponent extends react_1.default.Component {
|
|
18
|
-
static
|
|
19
|
-
locale: prop_types_1.default.string, // e.g. "en"
|
|
20
|
-
};
|
|
17
|
+
static contextType = expressions_ui_1.LocaleContext;
|
|
21
18
|
toggleEdit;
|
|
22
19
|
constructor(props) {
|
|
23
20
|
super(props);
|
|
@@ -96,9 +93,12 @@ class MWaterTableSelectComponent extends react_1.default.Component {
|
|
|
96
93
|
},
|
|
97
94
|
forceOpen: !this.props.table,
|
|
98
95
|
label: this.props.table
|
|
99
|
-
? expressions_1.ExprUtils.localizeString(this.props.schema.getTable(this.props.table)?.name, this.context
|
|
96
|
+
? expressions_1.ExprUtils.localizeString(this.props.schema.getTable(this.props.table)?.name, this.context)
|
|
100
97
|
: "",
|
|
101
|
-
editor
|
|
98
|
+
editor,
|
|
99
|
+
onRemove: () => {
|
|
100
|
+
this.props.onChange(null);
|
|
101
|
+
}
|
|
102
102
|
}),
|
|
103
103
|
// Make sure table still exists
|
|
104
104
|
this.props.table &&
|
|
@@ -117,9 +117,7 @@ class MWaterTableSelectComponent extends react_1.default.Component {
|
|
|
117
117
|
exports.default = MWaterTableSelectComponent;
|
|
118
118
|
// Is the table select component when in edit mode. Toggles between complete list and simplified list
|
|
119
119
|
class EditModeTableSelectComponent extends react_1.default.Component {
|
|
120
|
-
static
|
|
121
|
-
locale: prop_types_1.default.string, // e.g. "en"
|
|
122
|
-
};
|
|
120
|
+
static contextType = expressions_ui_1.LocaleContext;
|
|
123
121
|
constructor(props) {
|
|
124
122
|
super(props);
|
|
125
123
|
this.state = {
|
|
@@ -158,7 +156,7 @@ class EditModeTableSelectComponent extends react_1.default.Component {
|
|
|
158
156
|
}
|
|
159
157
|
}
|
|
160
158
|
// Sort by name
|
|
161
|
-
tables = lodash_1.default.sortBy(tables, (tableId) => expressions_1.ExprUtils.localizeString(this.props.schema.getTable(tableId).name, this.context
|
|
159
|
+
tables = lodash_1.default.sortBy(tables, (tableId) => expressions_1.ExprUtils.localizeString(this.props.schema.getTable(tableId).name, this.context));
|
|
162
160
|
return tables;
|
|
163
161
|
}
|
|
164
162
|
handleCompleteChange = (tableId) => {
|
|
@@ -174,8 +172,8 @@ class EditModeTableSelectComponent extends react_1.default.Component {
|
|
|
174
172
|
react_1.default.createElement(UIComponents_1.OptionListComponent, { items: this.getTableShortlist(activeTables).map((tableId) => {
|
|
175
173
|
const table = this.props.schema.getTable(tableId);
|
|
176
174
|
return {
|
|
177
|
-
name: expressions_1.ExprUtils.localizeString(table.name, this.context
|
|
178
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context
|
|
175
|
+
name: expressions_1.ExprUtils.localizeString(table.name, this.context),
|
|
176
|
+
desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
|
|
179
177
|
onClick: () => this.props.onChange(table.id)
|
|
180
178
|
};
|
|
181
179
|
}) }),
|