@mwater/visualization 5.3.1 → 5.4.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 +1 -1
- package/lib/ColorComponent.js +2 -2
- package/lib/CustomColorsContext.d.ts +1 -1
- package/lib/DateRangeComponent.js +10 -10
- package/lib/LocaleContextInjector.js +2 -2
- package/lib/MWaterAddRelatedFormComponent.js +8 -8
- package/lib/MWaterAddRelatedIndicatorComponent.d.ts +0 -1
- package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
- package/lib/MWaterAssetSystemsListComponent.d.ts +3 -3
- package/lib/MWaterAssetSystemsListComponent.js +4 -3
- package/lib/MWaterCompleteTableSelectComponent.d.ts +33 -34
- package/lib/MWaterCompleteTableSelectComponent.js +39 -38
- package/lib/MWaterCustomTablesetListComponent.d.ts +3 -3
- package/lib/MWaterCustomTablesetListComponent.js +5 -4
- package/lib/MWaterGlobalFiltersComponent.js +4 -4
- package/lib/MWaterLoaderComponent.d.ts +5 -5
- package/lib/MWaterLoaderComponent.js +1 -1
- package/lib/MWaterMetricsTableListComponent.d.ts +3 -3
- package/lib/MWaterMetricsTableListComponent.js +4 -3
- package/lib/MWaterResponsesFilterComponent.js +4 -4
- package/lib/MWaterTableSelectComponent.d.ts +1 -1
- package/lib/MWaterTableSelectComponent.js +5 -5
- package/lib/PopoverComponent.d.ts +4 -4
- package/lib/UIComponents.d.ts +5 -2
- package/lib/axes/AxisBuilder.js +42 -43
- package/lib/axes/AxisColorEditorComponent.d.ts +4 -4
- package/lib/axes/AxisColorEditorComponent.js +25 -60
- package/lib/axes/AxisComponent.d.ts +2 -3
- package/lib/axes/AxisComponent.js +20 -20
- package/lib/axes/BinsComponent.js +6 -6
- package/lib/axes/CategoryMapComponent.d.ts +2 -1
- package/lib/axes/CategoryMapComponent.js +7 -5
- package/lib/axes/ColorPaletteCollectionComponent.js +9 -9
- package/lib/axes/RangesComponent.js +12 -12
- package/lib/compressJson.js +1 -1
- package/lib/dashboards/DashboardComponent.d.ts +2 -0
- package/lib/dashboards/DashboardComponent.js +15 -8
- package/lib/dashboards/DashboardUtils.js +2 -3
- package/lib/dashboards/DashboardViewComponent.js +4 -4
- package/lib/dashboards/FontStyleEditor.js +8 -8
- package/lib/dashboards/LayoutOptionsComponent.js +102 -75
- package/lib/dashboards/SettingsModalComponent.d.ts +3 -4
- package/lib/dashboards/SettingsModalComponent.js +54 -40
- package/lib/dashboards/WidgetComponent.d.ts +0 -1
- package/lib/dashboards/WidgetComponent.js +1 -2
- package/lib/dashboards/layoutOptions.js +11 -7
- package/lib/datagrids/DatagridComponent.d.ts +1 -8
- package/lib/datagrids/DatagridComponent.js +14 -13
- package/lib/datagrids/DatagridDesignerComponent.js +18 -18
- package/lib/datagrids/DatagridQueryBuilder.d.ts +4 -4
- package/lib/datagrids/DatagridUtils.js +2 -2
- package/lib/datagrids/DatagridViewComponent.js +4 -4
- package/lib/datagrids/ExprCellComponent.js +1 -1
- package/lib/datagrids/FindReplaceModalComponent.js +17 -17
- package/lib/datagrids/OrderBysDesignerComponent.js +2 -2
- package/lib/languages.js +2 -2
- package/lib/layouts/DecoratedBlockComponent.js +2 -2
- package/lib/layouts/blocks/BlocksDisplayComponent.js +13 -13
- package/lib/layouts/blocks/BlocksLayoutManager.d.ts +2 -1
- package/lib/layouts/blocks/ClipboardPaletteItemComponent.js +3 -3
- package/lib/layouts/blocks/HorizontalBlockComponent.js +3 -3
- package/lib/layouts/blocks/blockUtils.js +4 -5
- package/lib/mWaterLoader.js +1 -1
- package/lib/maps/AddLayerComponent.js +13 -13
- package/lib/maps/AdminScopeAndDetailLevelComponent.js +5 -5
- package/lib/maps/BaseLayerDesignerComponent.js +2 -2
- package/lib/maps/BufferLayer.js +7 -7
- package/lib/maps/BufferLayerDesignerComponent.js +8 -8
- package/lib/maps/ChoroplethLayer.js +6 -6
- package/lib/maps/ChoroplethLayerDesigner.js +16 -16
- package/lib/maps/ClusterLayer.js +3 -3
- package/lib/maps/ClusterLayerDesignerComponent.js +5 -5
- package/lib/maps/DetailLevelSelectComponent.d.ts +11 -1
- package/lib/maps/DetailLevelSelectComponent.js +3 -3
- package/lib/maps/DirectMapDataSource.js +1 -2
- package/lib/maps/EditHoverOver.js +7 -5
- package/lib/maps/EditPopupComponent.js +2 -2
- package/lib/maps/GridLayer.js +5 -5
- package/lib/maps/GridLayerDesigner.js +15 -15
- package/lib/maps/LayerSwitcherComponent.js +1 -2
- package/lib/maps/LeafletMapComponent.d.ts +1 -1
- package/lib/maps/LeafletMapComponent.js +1 -1
- package/lib/maps/LegendComponent.js +1 -1
- package/lib/maps/MWaterServerLayer.d.ts +0 -1
- package/lib/maps/MWaterServerLayer.js +1 -1
- package/lib/maps/MapComponent.js +8 -8
- package/lib/maps/MapControlComponent.js +1 -1
- package/lib/maps/MapDesignerComponent.js +16 -16
- package/lib/maps/MapFiltersDesignerComponent.js +2 -2
- package/lib/maps/MapLayerViewDesignerComponent.js +8 -8
- package/lib/maps/MapUtils.js +6 -7
- package/lib/maps/MapViewComponent.js +1 -2
- package/lib/maps/MarkerSymbolSelectComponent.js +3 -3
- package/lib/maps/MarkersLayer.js +6 -7
- package/lib/maps/MarkersLayerDesignerComponent.js +22 -22
- package/lib/maps/PopupFilterJoinsEditComponent.js +4 -4
- package/lib/maps/PopupFilterJoinsUtils.js +2 -3
- package/lib/maps/RasterMapViewComponent.d.ts +3 -3
- package/lib/maps/RasterMapViewComponent.js +4 -4
- package/lib/maps/RegionSelectComponent.d.ts +1 -3
- package/lib/maps/RegionSelectComponent.js +1 -2
- package/lib/maps/ScopeAndDetailLevelComponent.js +3 -3
- package/lib/maps/TileUrlLayer.d.ts +1 -1
- package/lib/maps/TileUrlLayer.js +3 -3
- package/lib/maps/VectorMapViewComponent.js +6 -7
- package/lib/maps/ZoomLevelsComponent.js +5 -5
- package/lib/maps/mapSymbols.d.ts +1 -1
- package/lib/maps/mapSymbols.js +51 -50
- package/lib/maps/mapboxUtils.js +2 -3
- package/lib/maps/maps.d.ts +0 -1
- package/lib/maps/vectorMaps.js +14 -15
- package/lib/memoizedDebounce.js +1 -2
- package/lib/quickfilter/DateExprComponent.d.ts +4 -0
- package/lib/quickfilter/DateExprComponent.js +17 -16
- package/lib/quickfilter/IdArrayQuickfilterComponent.js +1 -1
- package/lib/quickfilter/QuickfilterUtils.js +1 -2
- package/lib/quickfilter/QuickfiltersComponent.d.ts +23 -2
- package/lib/quickfilter/QuickfiltersComponent.js +2 -2
- package/lib/quickfilter/QuickfiltersDesignComponent.js +8 -8
- package/lib/quickfilter/TextLiteralComponent.d.ts +35 -2
- package/lib/quickfilter/TextLiteralComponent.js +6 -6
- package/lib/richtext/DropdownPaletteItem.js +1 -1
- package/lib/richtext/ExprItemsHtmlConverter.js +8 -10
- package/lib/richtext/FontColorPaletteItem.js +7 -7
- package/lib/richtext/ItemsHtmlConverter.js +0 -1
- package/lib/richtext/RichTextComponent.d.ts +1 -0
- package/lib/richtext/RichTextComponent.js +33 -29
- package/lib/valueFormatter.js +18 -19
- package/lib/wellknown.js +2 -3
- package/lib/widgets/IFrameWidgetComponent.d.ts +9 -1
- package/lib/widgets/IFrameWidgetComponent.js +3 -3
- package/lib/widgets/ImageUploaderComponent.js +5 -5
- package/lib/widgets/ImageWidget.js +2 -2
- package/lib/widgets/ImageWidgetComponent.d.ts +9 -1
- package/lib/widgets/ImageWidgetComponent.js +20 -20
- package/lib/widgets/ImagelistCarouselComponent.js +1 -1
- package/lib/widgets/MapWidget.js +2 -2
- package/lib/widgets/MarkdownWidget.d.ts +1 -1
- package/lib/widgets/MarkdownWidget.js +1 -1
- package/lib/widgets/TOCWidget.js +11 -12
- package/lib/widgets/WidgetScopesViewComponent.js +1 -1
- package/lib/widgets/charts/Chart.js +1 -1
- package/lib/widgets/charts/ChartViewComponent.js +9 -9
- package/lib/widgets/charts/ChartWidgetComponent.js +4 -4
- package/lib/widgets/charts/calendar/CalendarChart.js +4 -4
- package/lib/widgets/charts/calendar/CalendarChartDesignerComponent.js +7 -7
- package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +3 -3
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +18 -5
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +3 -4
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.js +5 -5
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.d.ts +5 -19
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.js +66 -70
- package/lib/widgets/charts/imagemosaic/ImagePopupComponent.js +1 -1
- package/lib/widgets/charts/layered/LayeredChart.d.ts +1 -1
- package/lib/widgets/charts/layered/LayeredChart.js +9 -9
- package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +8 -8
- package/lib/widgets/charts/layered/LayeredChartCompiler.js +15 -15
- package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +33 -33
- package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +16 -16
- package/lib/widgets/charts/layered/LayeredChartUtils.js +1 -2
- package/lib/widgets/charts/layered/LayeredChartViewComponent.js +4 -4
- package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +18 -17
- package/lib/widgets/charts/pivot/PivotChart.d.ts +1 -1
- package/lib/widgets/charts/pivot/PivotChart.js +12 -4
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +5 -5
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +10 -10
- package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +5 -5
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +1 -1
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +5 -6
- package/lib/widgets/charts/pivot/PivotChartUtils.js +11 -12
- package/lib/widgets/charts/pivot/PivotChartViewComponent.js +9 -9
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +30 -30
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +28 -26
- package/lib/widgets/charts/table/OrderingsComponent.js +2 -2
- package/lib/widgets/charts/table/TableChart.js +3 -3
- package/lib/widgets/charts/table/TableChartDesignerComponent.js +17 -17
- package/lib/widgets/charts/table/TableChartViewComponent.js +3 -3
- package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -3
- package/lib/widgets/text/ExprInsertModalComponent.js +2 -14
- package/lib/widgets/text/ExprItemEditorComponent.js +4 -4
- package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -3
- package/lib/widgets/text/ExprUpdateModalComponent.js +3 -15
- package/lib/widgets/text/TextComponent.js +3 -3
- package/lib/widgets/text/TextWidget.d.ts +1 -1
- package/lib/widgets/text/TextWidgetComponent.js +11 -11
- package/lib/widgets/text/TextWidgetDesign.d.ts +2 -1
- package/lib/widgets/text/TextWidgetDesign.js +1 -2
- package/package.json +3 -3
- package/src/ColorComponent.tsx +2 -2
- package/src/DateRangeComponent.ts +10 -10
- package/src/LocaleContextInjector.tsx +1 -1
- package/src/MWaterAddRelatedFormComponent.ts +7 -7
- package/src/MWaterAddRelatedIndicatorComponent.ts +5 -5
- package/src/MWaterAssetSystemsListComponent.tsx +3 -3
- package/src/MWaterCompleteTableSelectComponent.tsx +36 -35
- package/src/MWaterCustomTablesetListComponent.tsx +4 -4
- package/src/MWaterGlobalFiltersComponent.ts +4 -4
- package/src/MWaterLoaderComponent.ts +1 -1
- package/src/MWaterMetricsTableListComponent.tsx +3 -3
- package/src/MWaterResponsesFilterComponent.ts +6 -6
- package/src/MWaterTableSelectComponent.tsx +6 -7
- package/src/axes/AxisBuilder.ts +42 -44
- package/src/axes/AxisColorEditorComponent.tsx +178 -0
- package/src/axes/AxisComponent.ts +20 -20
- package/src/axes/BinsComponent.tsx +6 -6
- package/src/axes/CategoryMapComponent.ts +10 -10
- package/src/axes/ColorPaletteCollectionComponent.tsx +3 -3
- package/src/axes/RangesComponent.ts +14 -14
- package/src/dashboards/DashboardComponent.tsx +21 -9
- package/src/dashboards/DashboardViewComponent.tsx +3 -3
- package/src/dashboards/FontStyleEditor.tsx +8 -8
- package/src/dashboards/LayoutOptionsComponent.tsx +74 -74
- package/src/dashboards/SettingsModalComponent.tsx +134 -107
- package/src/dashboards/layoutOptions.tsx +5 -1
- package/src/datagrids/DatagridComponent.ts +65 -62
- package/src/datagrids/DatagridDesignerComponent.tsx +17 -17
- package/src/datagrids/DatagridUtils.ts +2 -2
- package/src/datagrids/DatagridViewComponent.ts +3 -3
- package/src/datagrids/ExprCellComponent.ts +1 -1
- package/src/datagrids/FindReplaceModalComponent.ts +13 -13
- package/src/datagrids/OrderBysDesignerComponent.tsx +2 -2
- package/src/globals.d.ts +7 -1
- package/src/languages.ts +2 -2
- package/src/layouts/blocks/BlocksDisplayComponent.tsx +13 -13
- package/src/layouts/blocks/BlocksLayoutManager.ts +3 -2
- package/src/layouts/blocks/ClipboardPaletteItemComponent.ts +3 -3
- package/src/maps/AddLayerComponent.ts +13 -13
- package/src/maps/AdminScopeAndDetailLevelComponent.ts +5 -5
- package/src/maps/BaseLayerDesignerComponent.ts +8 -8
- package/src/maps/BufferLayer.ts +5 -5
- package/src/maps/BufferLayerDesignerComponent.ts +8 -8
- package/src/maps/ChoroplethLayer.ts +3 -3
- package/src/maps/ChoroplethLayerDesigner.tsx +16 -16
- package/src/maps/ClusterLayer.ts +3 -3
- package/src/maps/ClusterLayerDesignerComponent.ts +5 -5
- package/src/maps/DetailLevelSelectComponent.ts +3 -3
- package/src/maps/EditHoverOver.tsx +5 -5
- package/src/maps/EditPopupComponent.ts +2 -2
- package/src/maps/GridLayer.ts +5 -5
- package/src/maps/GridLayerDesigner.tsx +15 -16
- package/src/maps/MWaterServerLayer.ts +1 -1
- package/src/maps/MapComponent.ts +6 -6
- package/src/maps/MapControlComponent.ts +1 -1
- package/src/maps/MapDesignerComponent.tsx +20 -20
- package/src/maps/MapFiltersDesignerComponent.tsx +3 -3
- package/src/maps/MapLayerViewDesignerComponent.ts +9 -9
- package/src/maps/MarkerSymbolSelectComponent.ts +4 -5
- package/src/maps/MarkersLayerDesignerComponent.ts +22 -22
- package/src/maps/PopupFilterJoinsEditComponent.ts +4 -4
- package/src/maps/RasterMapViewComponent.ts +2 -2
- package/src/maps/RegionSelectComponent.ts +1 -2
- package/src/maps/ScopeAndDetailLevelComponent.ts +3 -3
- package/src/maps/TileUrlLayer.tsx +3 -3
- package/src/maps/VectorMapViewComponent.tsx +5 -5
- package/src/maps/ZoomLevelsComponent.ts +6 -6
- package/src/maps/mapSymbols.ts +49 -49
- package/src/maps/vectorMaps.tsx +2 -2
- package/src/quickfilter/DateExprComponent.ts +19 -18
- package/src/quickfilter/IdArrayQuickfilterComponent.ts +1 -1
- package/src/quickfilter/QuickfiltersComponent.ts +1 -1
- package/src/quickfilter/QuickfiltersDesignComponent.tsx +9 -9
- package/src/quickfilter/TextLiteralComponent.ts +4 -4
- package/src/richtext/DropdownPaletteItem.tsx +1 -1
- package/src/richtext/ExprItemsHtmlConverter.ts +8 -10
- package/src/richtext/ItemsHtmlConverter.ts +0 -1
- package/src/richtext/RichTextComponent.tsx +31 -31
- package/src/valueFormatter.ts +14 -14
- package/src/widgets/IFrameWidgetComponent.ts +3 -3
- package/src/widgets/ImageUploaderComponent.tsx +5 -5
- package/src/widgets/ImageWidget.ts +2 -2
- package/src/widgets/ImageWidgetComponent.ts +26 -26
- package/src/widgets/ImagelistCarouselComponent.ts +2 -2
- package/src/widgets/MapWidget.ts +1 -1
- package/src/widgets/MarkdownWidget.ts +1 -1
- package/src/widgets/TOCWidget.ts +13 -14
- package/src/widgets/WidgetScopesViewComponent.ts +1 -1
- package/src/widgets/charts/Chart.ts +1 -1
- package/src/widgets/charts/ChartViewComponent.ts +4 -4
- package/src/widgets/charts/ChartWidgetComponent.tsx +3 -3
- package/src/widgets/charts/calendar/CalendarChart.ts +4 -4
- package/src/widgets/charts/calendar/CalendarChartDesignerComponent.ts +7 -7
- package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +2 -2
- package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +25 -8
- package/src/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.ts +5 -5
- package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.tsx +128 -0
- package/src/widgets/charts/layered/LayeredChart.ts +9 -9
- package/src/widgets/charts/layered/LayeredChartCompiler.ts +45 -45
- package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +39 -39
- package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +18 -19
- package/src/widgets/charts/layered/LayeredChartViewComponent.ts +1 -1
- package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +22 -23
- package/src/widgets/charts/pivot/PivotChart.ts +15 -5
- package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +12 -12
- package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +5 -5
- package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +7 -8
- package/src/widgets/charts/pivot/PivotChartViewComponent.tsx +6 -6
- package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +30 -30
- package/src/widgets/charts/table/OrderingsComponent.tsx +2 -2
- package/src/widgets/charts/table/TableChart.ts +3 -3
- package/src/widgets/charts/table/TableChartDesignerComponent.ts +16 -16
- package/src/widgets/charts/table/TableChartViewComponent.ts +2 -2
- package/src/widgets/text/{ExprInsertModalComponent.ts → ExprInsertModalComponent.tsx} +18 -20
- package/src/widgets/text/ExprItemEditorComponent.tsx +4 -4
- package/src/widgets/text/{ExprUpdateModalComponent.ts → ExprUpdateModalComponent.tsx} +18 -20
- package/src/widgets/text/TextComponent.tsx +2 -2
- package/src/widgets/text/TextWidgetComponent.tsx +10 -10
- package/src/widgets/text/TextWidgetDesign.ts +3 -1
- package/src/axes/AxisColorEditorComponent.ts +0 -210
- package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.ts +0 -117
package/lib/mWaterLoader.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = mWaterLoader;
|
|
6
7
|
const jquery_1 = __importDefault(require("jquery"));
|
|
7
8
|
const expressions_1 = require("@mwater/expressions");
|
|
8
9
|
const MWaterDataSource_1 = __importDefault(require("@mwater/expressions/lib/MWaterDataSource"));
|
|
@@ -53,4 +54,3 @@ function mWaterLoader(options, callback) {
|
|
|
53
54
|
return callback(new Error(xhr.responseText));
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
|
-
exports.default = mWaterLoader;
|
|
@@ -41,43 +41,43 @@ class AddLayerComponent extends react_1.default.Component {
|
|
|
41
41
|
}
|
|
42
42
|
const newLayers = [
|
|
43
43
|
{
|
|
44
|
-
label:
|
|
45
|
-
name:
|
|
44
|
+
label: T `Marker Layer`,
|
|
45
|
+
name: T `Untitled Layer`,
|
|
46
46
|
type: "Markers",
|
|
47
47
|
design: {}
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
label:
|
|
51
|
-
name:
|
|
50
|
+
label: T `Radius (circles) Layer`,
|
|
51
|
+
name: T `Untitled Layer`,
|
|
52
52
|
type: "Buffer",
|
|
53
53
|
design: {}
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
label:
|
|
57
|
-
name:
|
|
56
|
+
label: T `Choropleth Layer`,
|
|
57
|
+
name: T `Untitled Layer`,
|
|
58
58
|
type: "AdminChoropleth",
|
|
59
59
|
design: {}
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
|
-
label:
|
|
63
|
-
name:
|
|
62
|
+
label: T `Cluster Layer`,
|
|
63
|
+
name: T `Untitled Layer`,
|
|
64
64
|
type: "Cluster",
|
|
65
65
|
design: {}
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
label:
|
|
69
|
-
name:
|
|
68
|
+
label: T `Grid Layer`,
|
|
69
|
+
name: T `Untitled Layer`,
|
|
70
70
|
type: "Grid",
|
|
71
71
|
design: {}
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
|
-
label:
|
|
75
|
-
name:
|
|
74
|
+
label: T `Custom Tile Url (advanced)`,
|
|
75
|
+
name: T `Untitled Layer`,
|
|
76
76
|
type: "TileUrl",
|
|
77
77
|
design: {}
|
|
78
78
|
}
|
|
79
79
|
];
|
|
80
|
-
return R("div", { style: { margin: 5 }, key: "addLayer", className: "btn-group" }, R("button", { type: "button", "data-bs-toggle": "dropdown", className: "btn btn-primary dropdown-toggle" }, R("span", { className: "fas fa-plus" }),
|
|
80
|
+
return R("div", { style: { margin: 5 }, key: "addLayer", className: "btn-group" }, R("button", { type: "button", "data-bs-toggle": "dropdown", className: "btn btn-primary dropdown-toggle" }, R("span", { className: "fas fa-plus" }), ` ${T `Add Layer`}`), R("ul", { className: "dropdown-menu" }, lodash_1.default.map(newLayers, (layer, i) => {
|
|
81
81
|
return R("li", { key: "" + i }, R("a", { className: "dropdown-item", onClick: this.handleAddLayer.bind(null, layer) }, layer.label || layer.name));
|
|
82
82
|
})));
|
|
83
83
|
}
|
|
@@ -25,17 +25,17 @@ class AdminScopeAndDetailLevelComponent extends react_1.default.Component {
|
|
|
25
25
|
};
|
|
26
26
|
render() {
|
|
27
27
|
const basicDetailLevelOptions = [
|
|
28
|
-
{ value: 0, label:
|
|
29
|
-
{ value: 1, label:
|
|
28
|
+
{ value: 0, label: T `Countries` },
|
|
29
|
+
{ value: 1, label: T `Level 1 (State/Province/District)` }
|
|
30
30
|
];
|
|
31
|
-
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
31
|
+
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Region to Map`), R(RegionSelectComponent_1.default, {
|
|
32
32
|
region: this.props.scope,
|
|
33
33
|
onChange: this.handleScopeChange,
|
|
34
34
|
schema: this.props.schema,
|
|
35
35
|
dataSource: this.props.dataSource
|
|
36
36
|
})), (() => {
|
|
37
37
|
if (this.props.scope != null && this.props.detailLevel != null) {
|
|
38
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
38
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Detail Level`), R(DetailLevelSelectComponent_1.default, {
|
|
39
39
|
scope: this.props.scope,
|
|
40
40
|
scopeLevel: this.props.scopeLevel,
|
|
41
41
|
detailLevel: this.props.detailLevel,
|
|
@@ -46,7 +46,7 @@ class AdminScopeAndDetailLevelComponent extends react_1.default.Component {
|
|
|
46
46
|
}
|
|
47
47
|
else if (this.props.scope == null && this.props.detailLevel != null) {
|
|
48
48
|
// Case of whole world. Allow selecting country or admin level 1
|
|
49
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
49
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Detail Level`), R(react_select_1.default, {
|
|
50
50
|
value: lodash_1.default.findWhere(basicDetailLevelOptions, { value: this.props.detailLevel }) || null,
|
|
51
51
|
options: basicDetailLevelOptions,
|
|
52
52
|
onChange: (opt) => this.handleDetailLevelChange(opt.value)
|
|
@@ -41,7 +41,7 @@ class BaseLayerDesignerComponent extends react_1.default.Component {
|
|
|
41
41
|
else {
|
|
42
42
|
opacity = 1;
|
|
43
43
|
}
|
|
44
|
-
return R("div", { className: "mb-3", style: { paddingTop: 10 } }, R("label", { className: "text-muted" }, R("span", null, `Opacity: ${Math.round(opacity * 100)}%`)), R("div", { style: { padding: "10px" } }, react_1.default.createElement(rc_slider_1.default, {
|
|
44
|
+
return R("div", { className: "mb-3", style: { paddingTop: 10 } }, R("label", { className: "text-muted" }, R("span", null, T `Opacity: ${Math.round(opacity * 100)}%`)), R("div", { style: { padding: "10px" } }, react_1.default.createElement(rc_slider_1.default, {
|
|
45
45
|
min: 0,
|
|
46
46
|
max: 100,
|
|
47
47
|
step: 1,
|
|
@@ -51,7 +51,7 @@ class BaseLayerDesignerComponent extends react_1.default.Component {
|
|
|
51
51
|
})));
|
|
52
52
|
}
|
|
53
53
|
render() {
|
|
54
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
54
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Background Map`), R("div", { style: { marginLeft: 10 } }, R("div", null, this.renderBaseLayer("cartodb_positron", T `Light`), this.renderBaseLayer("cartodb_dark_matter", T `Dark`), this.renderBaseLayer("bing_road", T `Roads`), this.renderBaseLayer("bing_aerial", T `Satellite`), this.renderBaseLayer("blank", T `Blank`), " ", R(PopoverHelpComponent_1.default, { placement: "bottom" }, T `Blank map backgrounds work best with chloropleth map layers`)), this.renderOpacityControl()));
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
exports.default = BaseLayerDesignerComponent;
|
package/lib/maps/BufferLayer.js
CHANGED
|
@@ -257,7 +257,7 @@ class BufferLayer extends Layer_1.default {
|
|
|
257
257
|
type: "select",
|
|
258
258
|
expr: { type: "field", tableAlias: "main", column: schema.getTable(design.table).primaryKey },
|
|
259
259
|
alias: "id"
|
|
260
|
-
},
|
|
260
|
+
}, // main primary key as id
|
|
261
261
|
{
|
|
262
262
|
type: "select",
|
|
263
263
|
expr: { type: "op", op: "ST_AsMVTGeom", exprs: [bufferExpr, envelopeExpr] },
|
|
@@ -399,7 +399,7 @@ class BufferLayer extends Layer_1.default {
|
|
|
399
399
|
type: "select",
|
|
400
400
|
expr: { type: "field", tableAlias: "main", column: schema.getTable(design.table).primaryKey },
|
|
401
401
|
alias: "id"
|
|
402
|
-
},
|
|
402
|
+
}, // main primary key as id
|
|
403
403
|
{ type: "select", expr: geometryExpr, alias: "the_geom_webmercator" },
|
|
404
404
|
{ type: "select", expr: widthExpr, alias: "width" } // Width of circles
|
|
405
405
|
];
|
|
@@ -592,7 +592,7 @@ marker-fill: ` +
|
|
|
592
592
|
// Scope to item
|
|
593
593
|
if (ids.length > 0) {
|
|
594
594
|
results.scope = {
|
|
595
|
-
name: `Selected ${ids.length} Circle(s)`,
|
|
595
|
+
name: T `Selected ${ids.length} Circle(s)`,
|
|
596
596
|
filter,
|
|
597
597
|
filterExpr,
|
|
598
598
|
data: ids
|
|
@@ -788,13 +788,13 @@ marker-fill: ` +
|
|
|
788
788
|
const axisBuilder = new AxisBuilder_1.default({ schema });
|
|
789
789
|
const exprValidator = new expressions_1.ExprValidator(schema);
|
|
790
790
|
if (!design.table) {
|
|
791
|
-
return
|
|
791
|
+
return T `Missing table`;
|
|
792
792
|
}
|
|
793
793
|
if (design.radius == null) {
|
|
794
|
-
return
|
|
794
|
+
return T `Missing radius`;
|
|
795
795
|
}
|
|
796
796
|
if (!design.axes || !design.axes.geometry) {
|
|
797
|
-
return
|
|
797
|
+
return T `Missing axes`;
|
|
798
798
|
}
|
|
799
799
|
let error = axisBuilder.validateAxis({ axis: design.axes.geometry });
|
|
800
800
|
if (error) {
|
|
@@ -802,7 +802,7 @@ marker-fill: ` +
|
|
|
802
802
|
}
|
|
803
803
|
// Check type of axis (prevents blank axes)
|
|
804
804
|
if (axisBuilder.getAxisType(design.axes.geometry) != "geometry") {
|
|
805
|
-
return
|
|
805
|
+
return T `Geometry axis required`;
|
|
806
806
|
}
|
|
807
807
|
error = axisBuilder.validateAxis({ axis: design.axes.color });
|
|
808
808
|
if (error) {
|
|
@@ -77,7 +77,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
77
77
|
this.props.onDesignChange({ ...this.props.design, unionShapes });
|
|
78
78
|
};
|
|
79
79
|
renderTable() {
|
|
80
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ",
|
|
80
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", T `Data Source`), R("div", { style: { marginLeft: 10 } }, R(expressions_ui_2.TableSelectComponent, {
|
|
81
81
|
schema: this.props.schema,
|
|
82
82
|
value: this.props.design.table,
|
|
83
83
|
onChange: this.handleTableChange,
|
|
@@ -89,7 +89,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
89
89
|
if (!this.props.design.table) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
|
-
const title = R("span", null, R("span", { className: "fas fa-map-marker-alt" }), " Circle Centers
|
|
92
|
+
const title = R("span", null, R("span", { className: "fas fa-map-marker-alt" }), " ", T `Circle Centers`);
|
|
93
93
|
const filters = lodash_1.default.clone(this.props.filters) || [];
|
|
94
94
|
if (this.props.design.filter != null) {
|
|
95
95
|
const exprCompiler = new expressions_1.ExprCompiler(this.props.schema);
|
|
@@ -110,7 +110,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
110
110
|
})));
|
|
111
111
|
}
|
|
112
112
|
renderRadius() {
|
|
113
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
113
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Radius (meters)`), ": ", react_1.default.createElement(NumberInputComponent_1.default, {
|
|
114
114
|
value: this.props.design.radius,
|
|
115
115
|
onChange: this.handleRadiusChange
|
|
116
116
|
}));
|
|
@@ -123,7 +123,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
123
123
|
return R("div", { className: "mb-3" }, react_1.default.createElement(bootstrap_1.Checkbox, {
|
|
124
124
|
value: this.props.design.unionShapes,
|
|
125
125
|
onChange: this.handleUnionShapesChange
|
|
126
|
-
},
|
|
126
|
+
}, T `Combine circles (advanced)`));
|
|
127
127
|
}
|
|
128
128
|
renderColor() {
|
|
129
129
|
if (!this.props.design.axes.geometry) {
|
|
@@ -138,11 +138,11 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
return R("div", null, !this.props.design.axes.color
|
|
141
|
-
? R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
141
|
+
? R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Circle Color`), R("div", null, R(ColorComponent_1.default, {
|
|
142
142
|
color: this.props.design.color,
|
|
143
143
|
onChange: this.handleColorChange
|
|
144
144
|
})))
|
|
145
|
-
: undefined, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
145
|
+
: undefined, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Color By Data`), R(AxisComponent_1.default, {
|
|
146
146
|
schema: this.props.schema,
|
|
147
147
|
dataSource: this.props.dataSource,
|
|
148
148
|
table: this.props.design.table,
|
|
@@ -158,7 +158,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
158
158
|
})));
|
|
159
159
|
}
|
|
160
160
|
renderFillOpacity() {
|
|
161
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" },
|
|
161
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Circle Opacity (%)`), ": ", react_1.default.createElement(rc_slider_1.default, {
|
|
162
162
|
min: 0,
|
|
163
163
|
max: 100,
|
|
164
164
|
step: 1,
|
|
@@ -172,7 +172,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
172
172
|
if (!this.props.design.axes.geometry) {
|
|
173
173
|
return null;
|
|
174
174
|
}
|
|
175
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }),
|
|
175
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), T `Filters`), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
|
|
176
176
|
schema: this.props.schema,
|
|
177
177
|
dataSource: this.props.dataSource,
|
|
178
178
|
onChange: this.handleFilterChange,
|
|
@@ -220,7 +220,7 @@ class ChoroplethLayer extends Layer_1.default {
|
|
|
220
220
|
paint: {
|
|
221
221
|
// Because of https://github.com/mapbox/mapbox-gl-js/issues/4090, line opacities < 1 create artifacts.
|
|
222
222
|
"line-color": design.borderColor || "#000",
|
|
223
|
-
"line-opacity": opacity,
|
|
223
|
+
"line-opacity": opacity, // 0.5 * opacity,
|
|
224
224
|
"line-width": 1,
|
|
225
225
|
"line-blur": 1.5
|
|
226
226
|
}
|
|
@@ -523,7 +523,7 @@ class ChoroplethLayer extends Layer_1.default {
|
|
|
523
523
|
paint: {
|
|
524
524
|
// Because of https://github.com/mapbox/mapbox-gl-js/issues/4090, line opacities < 1 create artifacts
|
|
525
525
|
"line-color": (0, mapboxUtils_1.compileColorToMapbox)(design.borderColor || "#000", design.axes.color?.excludedValues),
|
|
526
|
-
"line-opacity": opacity,
|
|
526
|
+
"line-opacity": opacity, // 0.5 * opacity,
|
|
527
527
|
"line-width": 1,
|
|
528
528
|
"line-blur": 1.5
|
|
529
529
|
}
|
|
@@ -729,7 +729,7 @@ class ChoroplethLayer extends Layer_1.default {
|
|
|
729
729
|
paint: {
|
|
730
730
|
// Because of https://github.com/mapbox/mapbox-gl-js/issues/4090, line opacities < 1 create artifacts.
|
|
731
731
|
"line-color": design.borderColor || "#000",
|
|
732
|
-
"line-opacity": opacity,
|
|
732
|
+
"line-opacity": opacity, // 0.5 * opacity,
|
|
733
733
|
"line-width": 1,
|
|
734
734
|
"line-blur": 1.5
|
|
735
735
|
}
|
|
@@ -1457,10 +1457,10 @@ class ChoroplethLayer extends Layer_1.default {
|
|
|
1457
1457
|
const exprValidator = new expressions_1.ExprValidator(schema);
|
|
1458
1458
|
if (design.regionMode === "indirect") {
|
|
1459
1459
|
if (!design.table) {
|
|
1460
|
-
return
|
|
1460
|
+
return T `Missing table`;
|
|
1461
1461
|
}
|
|
1462
1462
|
if (!design.adminRegionExpr || exprUtils.getExprType(design.adminRegionExpr) !== "id") {
|
|
1463
|
-
return
|
|
1463
|
+
return T `Missing admin region expr`;
|
|
1464
1464
|
}
|
|
1465
1465
|
error = axisBuilder.validateAxis({ axis: design.axes.color || null });
|
|
1466
1466
|
if (error) {
|
|
@@ -1487,7 +1487,7 @@ class ChoroplethLayer extends Layer_1.default {
|
|
|
1487
1487
|
}
|
|
1488
1488
|
}
|
|
1489
1489
|
if (design.detailLevel == null) {
|
|
1490
|
-
return
|
|
1490
|
+
return T `Missing detail level`;
|
|
1491
1491
|
}
|
|
1492
1492
|
return null;
|
|
1493
1493
|
}
|
|
@@ -132,11 +132,11 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
132
132
|
};
|
|
133
133
|
renderRegionMode() {
|
|
134
134
|
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
135
|
-
react_1.default.createElement("label", { className: "text-muted" },
|
|
135
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Mode`),
|
|
136
136
|
react_1.default.createElement("div", { style: { marginLeft: 10 } },
|
|
137
|
-
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "plain", value: this.props.design.regionMode, onChange: this.handleRegionModeChange },
|
|
138
|
-
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "indirect", value: this.props.design.regionMode, onChange: this.handleRegionModeChange },
|
|
139
|
-
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "direct", value: this.props.design.regionMode, onChange: this.handleRegionModeChange },
|
|
137
|
+
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "plain", value: this.props.design.regionMode, onChange: this.handleRegionModeChange }, T `Single Color`),
|
|
138
|
+
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "indirect", value: this.props.design.regionMode, onChange: this.handleRegionModeChange }, T `Color By Data`),
|
|
139
|
+
react_1.default.createElement(ui.Radio, { inline: true, radioValue: "direct", value: this.props.design.regionMode, onChange: this.handleRegionModeChange }, T `Advanced`))));
|
|
140
140
|
}
|
|
141
141
|
renderTable() {
|
|
142
142
|
// Only for indirect
|
|
@@ -146,18 +146,18 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
146
146
|
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
147
147
|
react_1.default.createElement("label", { className: "text-muted" },
|
|
148
148
|
react_1.default.createElement("i", { className: "fa fa-database" }),
|
|
149
|
-
|
|
149
|
+
T ` Data Source`),
|
|
150
150
|
react_1.default.createElement(expressions_ui_2.TableSelectComponent, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange, filter: this.props.design.filter, onFilterChange: this.handleFilterChange })));
|
|
151
151
|
}
|
|
152
152
|
renderRegionsTable() {
|
|
153
153
|
let options = lodash_1.default.map(lodash_1.default.filter(this.props.schema.getTables(), table => table.id.startsWith("regions.")), table => ({ value: table.id, label: table.name.en }));
|
|
154
154
|
const regionsTable = this.props.design.regionsTable || "admin_regions";
|
|
155
155
|
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
156
|
-
react_1.default.createElement("label", { className: "text-muted" },
|
|
156
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Regions Type`),
|
|
157
157
|
react_1.default.createElement("div", { style: { marginLeft: 8 } },
|
|
158
158
|
react_1.default.createElement("select", { value: regionsTable, onChange: ev => this.handleRegionsTableChange(ev.target.value), className: "form-select" },
|
|
159
|
-
react_1.default.createElement("option", { value: "admin_regions" },
|
|
160
|
-
react_1.default.createElement("option", { disabled: true },
|
|
159
|
+
react_1.default.createElement("option", { value: "admin_regions" }, T `Administrative Regions (from mWater global database)`),
|
|
160
|
+
react_1.default.createElement("option", { disabled: true }, T `── Custom regions (special regions uploaded for specific purposes) ──`),
|
|
161
161
|
options.map(opt => (react_1.default.createElement("option", { value: opt.value }, opt.label)))))));
|
|
162
162
|
}
|
|
163
163
|
renderAdminRegionExpr() {
|
|
@@ -173,7 +173,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
173
173
|
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
174
174
|
react_1.default.createElement("label", { className: "text-muted" },
|
|
175
175
|
react_1.default.createElement("i", { className: "fas fa-map-marker-alt" }),
|
|
176
|
-
|
|
176
|
+
T ` Location`),
|
|
177
177
|
react_1.default.createElement("div", { style: { marginLeft: 8 } },
|
|
178
178
|
react_1.default.createElement(expressions_ui_1.ExprComponent, { schema: this.props.schema, dataSource: this.props.dataSource, onChange: this.handleAdminRegionExprChange, table: this.props.design.table, types: ["id"], idTable: regionsTable, value: this.props.design.adminRegionExpr || null }))));
|
|
179
179
|
}
|
|
@@ -202,14 +202,14 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
renderDisplayNames() {
|
|
205
|
-
return R("div", { className: "mb-3" }, react_1.default.createElement(ui.Checkbox, { value: this.props.design.displayNames, onChange: value => this.handleDisplayNamesChange(value) },
|
|
205
|
+
return R("div", { className: "mb-3" }, react_1.default.createElement(ui.Checkbox, { value: this.props.design.displayNames, onChange: value => this.handleDisplayNamesChange(value) }, T `Display Region Names`));
|
|
206
206
|
}
|
|
207
207
|
renderColor() {
|
|
208
208
|
// Only if plain
|
|
209
209
|
if (this.props.design.regionMode !== "plain") {
|
|
210
210
|
return null;
|
|
211
211
|
}
|
|
212
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
212
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Fill Color`), R("div", null, R(ColorComponent_1.default, {
|
|
213
213
|
color: this.props.design.color,
|
|
214
214
|
onChange: this.handleColorChange
|
|
215
215
|
})));
|
|
@@ -233,7 +233,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
const table = this.props.design.table;
|
|
236
|
-
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
236
|
+
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Color By Data`), R(AxisComponent_1.default, {
|
|
237
237
|
schema: this.props.schema,
|
|
238
238
|
dataSource: this.props.dataSource,
|
|
239
239
|
table: this.props.design.table,
|
|
@@ -273,7 +273,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
273
273
|
}
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
|
-
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
276
|
+
return R("div", null, R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Color By Data`), R(AxisComponent_1.default, {
|
|
277
277
|
schema: this.props.schema,
|
|
278
278
|
dataSource: this.props.dataSource,
|
|
279
279
|
table: regionsTable,
|
|
@@ -307,7 +307,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
307
307
|
// showColorMap: true
|
|
308
308
|
// onChange: @handleColorAxisChange)
|
|
309
309
|
renderFillOpacity() {
|
|
310
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, `Fill Opacity: ${(this.props.design.fillOpacity * this.props.design.fillOpacity * 100).toFixed(0)}%`), ": ", R(rc_slider_1.default, {
|
|
310
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Fill Opacity: ${(this.props.design.fillOpacity * this.props.design.fillOpacity * 100).toFixed(0)}%`), ": ", R(rc_slider_1.default, {
|
|
311
311
|
min: 0,
|
|
312
312
|
max: 100,
|
|
313
313
|
step: 1,
|
|
@@ -317,7 +317,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
317
317
|
}));
|
|
318
318
|
}
|
|
319
319
|
renderBorderColor() {
|
|
320
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
320
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Border Color`), R("div", null, R(ColorComponent_1.default, {
|
|
321
321
|
color: this.props.design.borderColor || "#000",
|
|
322
322
|
onChange: this.handleBorderColorChange
|
|
323
323
|
})));
|
|
@@ -327,7 +327,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
|
|
|
327
327
|
if (this.props.design.regionMode !== "indirect" || !this.props.design.table) {
|
|
328
328
|
return null;
|
|
329
329
|
}
|
|
330
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }),
|
|
330
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), T `Filters`), R("div", { style: { marginLeft: 8 } }, R(expressions_ui_1.FilterExprComponent, {
|
|
331
331
|
schema: this.props.schema,
|
|
332
332
|
dataSource: this.props.dataSource,
|
|
333
333
|
onChange: this.handleFilterChange,
|
package/lib/maps/ClusterLayer.js
CHANGED
|
@@ -724,10 +724,10 @@ class ClusterLayer extends Layer_1.default {
|
|
|
724
724
|
const axisBuilder = new AxisBuilder_1.default({ schema });
|
|
725
725
|
const exprValidator = new expressions_1.ExprValidator(schema);
|
|
726
726
|
if (!design.table) {
|
|
727
|
-
return
|
|
727
|
+
return T `Missing table`;
|
|
728
728
|
}
|
|
729
729
|
if (!design.axes || !design.axes.geometry) {
|
|
730
|
-
return
|
|
730
|
+
return T `Missing axes`;
|
|
731
731
|
}
|
|
732
732
|
let error = axisBuilder.validateAxis({ axis: design.axes.geometry });
|
|
733
733
|
if (error) {
|
|
@@ -735,7 +735,7 @@ class ClusterLayer extends Layer_1.default {
|
|
|
735
735
|
}
|
|
736
736
|
// Check type of axis (prevents blank axes)
|
|
737
737
|
if (axisBuilder.getAxisType(design.axes.geometry) != "geometry") {
|
|
738
|
-
return
|
|
738
|
+
return T `Geometry axis required`;
|
|
739
739
|
}
|
|
740
740
|
// Validate filter
|
|
741
741
|
error = exprValidator.validateExpr(design.filter || null);
|
|
@@ -38,7 +38,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
|
|
|
38
38
|
return this.update({ fillColor: color });
|
|
39
39
|
};
|
|
40
40
|
renderTable() {
|
|
41
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ",
|
|
41
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", T `Data Source`), R("div", { style: { marginLeft: 10 } }, R(expressions_ui_2.TableSelectComponent, {
|
|
42
42
|
schema: this.props.schema,
|
|
43
43
|
value: this.props.design.table,
|
|
44
44
|
onChange: this.handleTableChange,
|
|
@@ -50,7 +50,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
|
|
|
50
50
|
if (!this.props.design.table) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
-
const title = R("span", null, R("span", { className: "fas fa-map-marker-alt" }), " Locations to Cluster
|
|
53
|
+
const title = R("span", null, R("span", { className: "fas fa-map-marker-alt" }), " ", T `Locations to Cluster`);
|
|
54
54
|
const filters = lodash_1.default.clone(this.props.filters) || [];
|
|
55
55
|
if (this.props.design.filter != null) {
|
|
56
56
|
const exprCompiler = new expressions_1.ExprCompiler(this.props.schema);
|
|
@@ -74,7 +74,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
|
|
|
74
74
|
if (!this.props.design.axes.geometry) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
77
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Text Color`), R("div", null, R(ColorComponent_1.default, {
|
|
78
78
|
color: this.props.design.textColor,
|
|
79
79
|
onChange: this.handleTextColorChange
|
|
80
80
|
})));
|
|
@@ -83,7 +83,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
|
|
|
83
83
|
if (!this.props.design.axes.geometry) {
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }),
|
|
86
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Marker Color`), R("div", null, R(ColorComponent_1.default, {
|
|
87
87
|
color: this.props.design.fillColor,
|
|
88
88
|
onChange: this.handleFillColorChange
|
|
89
89
|
})));
|
|
@@ -93,7 +93,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
|
|
|
93
93
|
if (!this.props.design.axes.geometry) {
|
|
94
94
|
return null;
|
|
95
95
|
}
|
|
96
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }),
|
|
96
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), T `Filters`), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
|
|
97
97
|
schema: this.props.schema,
|
|
98
98
|
dataSource: this.props.dataSource,
|
|
99
99
|
onChange: this.handleFilterChange,
|
|
@@ -23,7 +23,17 @@ export default class DetailLevelSelectComponent extends React.Component<DetailLe
|
|
|
23
23
|
componentWillMount(): any;
|
|
24
24
|
componentWillReceiveProps(nextProps: any): any;
|
|
25
25
|
loadLevels(props: any): any;
|
|
26
|
-
render(): React.FunctionComponentElement<
|
|
26
|
+
render(): React.FunctionComponentElement<{
|
|
27
|
+
value: {
|
|
28
|
+
label: string;
|
|
29
|
+
value: any;
|
|
30
|
+
} | null;
|
|
31
|
+
options: {
|
|
32
|
+
label: string;
|
|
33
|
+
value: any;
|
|
34
|
+
}[];
|
|
35
|
+
onChange: (opt: any) => any;
|
|
36
|
+
}> | React.DetailedReactHTMLElement<{
|
|
27
37
|
className: string;
|
|
28
38
|
}, HTMLElement>;
|
|
29
39
|
}
|
|
@@ -36,7 +36,7 @@ class DetailLevelSelectComponent extends react_1.default.Component {
|
|
|
36
36
|
// Execute query
|
|
37
37
|
return props.dataSource.performQuery(query, (err, rows) => {
|
|
38
38
|
if (err) {
|
|
39
|
-
alert(
|
|
39
|
+
alert(T `Error loading detail levels`);
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
const countryId = rows[0].level0;
|
|
@@ -58,7 +58,7 @@ class DetailLevelSelectComponent extends react_1.default.Component {
|
|
|
58
58
|
// Execute query
|
|
59
59
|
return props.dataSource.performQuery(query, (err, rows) => {
|
|
60
60
|
if (err) {
|
|
61
|
-
alert(
|
|
61
|
+
alert(T `Error loading detail levels`);
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
// Only greater than current scope level
|
|
@@ -84,7 +84,7 @@ class DetailLevelSelectComponent extends react_1.default.Component {
|
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
87
|
-
return R("div", { className: "text-muted" }, R("i", { className: "fa fa-spinner fa-spin" }),
|
|
87
|
+
return R("div", { className: "text-muted" }, R("i", { className: "fa fa-spinner fa-spin" }), T ` Loading...`);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.useDirectVectorTileUrl =
|
|
29
|
+
exports.useDirectVectorTileUrl = useDirectVectorTileUrl;
|
|
30
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
31
31
|
const expressions_1 = require("@mwater/expressions");
|
|
32
32
|
const BlocksLayoutManager_1 = __importDefault(require("../layouts/blocks/BlocksLayoutManager"));
|
|
@@ -124,7 +124,6 @@ function useDirectVectorTileUrl(options) {
|
|
|
124
124
|
}, [expires]);
|
|
125
125
|
return url;
|
|
126
126
|
}
|
|
127
|
-
exports.useDirectVectorTileUrl = useDirectVectorTileUrl;
|
|
128
127
|
class DirectLayerDataSource {
|
|
129
128
|
options;
|
|
130
129
|
// Create map url source that uses direct jsonql maps
|
|
@@ -56,16 +56,18 @@ const EditHoverOver = props => {
|
|
|
56
56
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
57
|
react_1.default.createElement("button", { className: "btn btn-link", onClick: () => setEditing(true) },
|
|
58
58
|
react_1.default.createElement("span", { className: "fa fa-pencil" }),
|
|
59
|
-
"
|
|
59
|
+
" ",
|
|
60
|
+
T `Customize Hoverover`),
|
|
60
61
|
props.design.hoverOver && (react_1.default.createElement("button", { className: "btn btn-link", onClick: handleRemovePopup },
|
|
61
62
|
react_1.default.createElement("span", { className: "fa fa-times" }),
|
|
62
|
-
"
|
|
63
|
+
" ",
|
|
64
|
+
T `Remove Hover over`)),
|
|
63
65
|
editing && (react_1.default.createElement(ModalWindowComponent_1.default, { isOpen: true, onRequestClose: () => setEditing(false) },
|
|
64
66
|
(props.design.hoverOver?.items ?? []).length > 0 && (react_1.default.createElement("table", { className: "table" },
|
|
65
67
|
react_1.default.createElement("thead", null,
|
|
66
68
|
react_1.default.createElement("tr", null,
|
|
67
|
-
react_1.default.createElement("th", null,
|
|
68
|
-
react_1.default.createElement("th", null,
|
|
69
|
+
react_1.default.createElement("th", null, T `Label`),
|
|
70
|
+
react_1.default.createElement("th", null, T `Value`),
|
|
69
71
|
react_1.default.createElement("th", null))),
|
|
70
72
|
react_1.default.createElement("tbody", null, props.design.hoverOver?.items.map((item) => (react_1.default.createElement(HoverOverItemEditor, { schema: props.schema, dataSource: props.dataSource, table: props.design.table, onItemChange: handleItemChange, onItemDelete: handleItemDelete, item: item })))))),
|
|
71
73
|
(props.design.hoverOver?.items ?? []).length < 3 && (react_1.default.createElement("button", { className: "btn btn-link", onClick: () => handleDesignChange([
|
|
@@ -73,7 +75,7 @@ const EditHoverOver = props => {
|
|
|
73
75
|
{ id: (0, uuid_1.default)().replace(/-/g, ""), label: "" }
|
|
74
76
|
]) },
|
|
75
77
|
react_1.default.createElement("span", { className: "fa fa-plus" }),
|
|
76
|
-
|
|
78
|
+
T `Add item`))))));
|
|
77
79
|
};
|
|
78
80
|
const HoverOverItemEditor = ({ schema, dataSource, table, item, onItemChange, onItemDelete }) => {
|
|
79
81
|
return (react_1.default.createElement("tr", null,
|
|
@@ -29,8 +29,8 @@ class EditPopupComponent extends react_1.default.Component {
|
|
|
29
29
|
return this.props.onDesignChange(design);
|
|
30
30
|
};
|
|
31
31
|
render() {
|
|
32
|
-
return R("div", null, R("a", { className: "btn btn-link", onClick: () => this.setState({ editing: true }) }, R("i", { className: "fa fa-pencil" }),
|
|
33
|
-
? R("a", { className: "btn btn-link", onClick: this.handleRemovePopup }, R("i", { className: "fa fa-times" }),
|
|
32
|
+
return R("div", null, R("a", { className: "btn btn-link", onClick: () => this.setState({ editing: true }) }, R("i", { className: "fa fa-pencil" }), T ` Customize Popup`), this.props.design.popup
|
|
33
|
+
? R("a", { className: "btn btn-link", onClick: this.handleRemovePopup }, R("i", { className: "fa fa-times" }), T ` Remove Popup`)
|
|
34
34
|
: undefined, this.props.design.popup
|
|
35
35
|
? R(PopupFilterJoinsEditComponent_1.default, {
|
|
36
36
|
schema: this.props.schema,
|
package/lib/maps/GridLayer.js
CHANGED
|
@@ -636,19 +636,19 @@ class GridLayer extends Layer_1.default {
|
|
|
636
636
|
const axisBuilder = new AxisBuilder_1.default({ schema });
|
|
637
637
|
const exprValidator = new expressions_1.ExprValidator(schema);
|
|
638
638
|
if (!design.shape) {
|
|
639
|
-
return
|
|
639
|
+
return T `Missing shape`;
|
|
640
640
|
}
|
|
641
641
|
if (!design.table) {
|
|
642
|
-
return
|
|
642
|
+
return T `Missing table`;
|
|
643
643
|
}
|
|
644
644
|
if (!design.geometryExpr || exprUtils.getExprType(design.geometryExpr) !== "geometry") {
|
|
645
|
-
return
|
|
645
|
+
return T `Missing geometry expr`;
|
|
646
646
|
}
|
|
647
647
|
if (!design.size || !design.sizeUnits) {
|
|
648
|
-
return
|
|
648
|
+
return T `Missing size`;
|
|
649
649
|
}
|
|
650
650
|
if (!design.colorAxis) {
|
|
651
|
-
return
|
|
651
|
+
return T `Missing color axis`;
|
|
652
652
|
}
|
|
653
653
|
error = axisBuilder.validateAxis({ axis: design.colorAxis });
|
|
654
654
|
if (error) {
|