@mwater/visualization 5.5.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ColorComponent.js +2 -2
- package/lib/MWaterContextComponent.d.ts +1 -1
- package/lib/MWaterGlobalFiltersComponent.d.ts +2 -2
- package/lib/MWaterGlobalFiltersComponent.js +11 -20
- package/lib/MWaterLoaderComponent.d.ts +4 -13
- package/lib/MWaterLoaderComponent.js +2 -11
- package/lib/TranslationsTabComponent.d.ts +34 -0
- package/lib/TranslationsTabComponent.js +256 -0
- package/lib/UndoStack.d.ts +2 -1
- package/lib/UndoStack.js +12 -6
- package/lib/dashboards/DashboardComponent.js +6 -5
- package/lib/dashboards/DashboardDesign.d.ts +1 -1
- package/lib/dashboards/ServerDashboardDataSource.d.ts +0 -1
- package/lib/dashboards/ServerDashboardDataSource.js +0 -25
- package/lib/dashboards/SettingsModalComponent.js +9 -233
- package/lib/datagrids/DatagridComponent.js +27 -2
- package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -3
- package/lib/datagrids/DatagridDesignerComponent.js +108 -120
- package/lib/datagrids/DatagridViewComponent.js +33 -6
- package/lib/datagrids/OrderBysDesignerComponent.d.ts +7 -7
- package/lib/datagrids/OrderBysDesignerComponent.js +19 -28
- package/lib/index.css +45 -2
- package/lib/index.d.ts +5 -5
- package/lib/index.js +2 -3
- package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +8 -1
- package/lib/layouts/blocks/BlocksDisplayComponent.js +46 -4
- package/lib/maps/BufferLayer.d.ts +0 -13
- package/lib/maps/BufferLayer.js +24 -237
- package/lib/maps/BufferLayerDesign.d.ts +1 -1
- package/lib/maps/BufferLayerDesignerComponent.d.ts +1 -1
- package/lib/maps/BufferLayerDesignerComponent.js +2 -7
- package/lib/maps/ChoroplethLayer.d.ts +1 -16
- package/lib/maps/ChoroplethLayer.js +25 -358
- package/lib/maps/ChoroplethLayerDesign.d.ts +5 -2
- package/lib/maps/ChoroplethLayerDesigner.d.ts +10 -32
- package/lib/maps/ChoroplethLayerDesigner.js +58 -89
- package/lib/maps/ClusterLayer.d.ts +0 -9
- package/lib/maps/ClusterLayer.js +0 -250
- package/lib/maps/DirectMapDataSource.js +1 -48
- package/lib/maps/EditHoverOver.d.ts +4 -3
- package/lib/maps/EditHoverOver.js +3 -3
- package/lib/maps/GridLayer.d.ts +0 -15
- package/lib/maps/GridLayer.js +0 -212
- package/lib/maps/HoverContent.js +1 -1
- package/lib/maps/Layer.d.ts +1 -26
- package/lib/maps/Layer.js +0 -13
- package/lib/maps/LeafletMapComponent.js +10 -19
- package/lib/maps/MapComponent.d.ts +19 -35
- package/lib/maps/MapComponent.js +135 -77
- package/lib/maps/MapControlComponent.d.ts +4 -5
- package/lib/maps/MapControlComponent.js +5 -12
- package/lib/maps/MapDesign.d.ts +8 -0
- package/lib/maps/MapDesignerComponent.d.ts +2 -0
- package/lib/maps/MapDesignerComponent.js +7 -2
- package/lib/maps/MapLayerDataSource.d.ts +0 -4
- package/lib/maps/MapLayerViewDesignerComponent.d.ts +3 -1
- package/lib/maps/MapLayerViewDesignerComponent.js +5 -1
- package/lib/maps/MapLayersDesignerComponent.d.ts +2 -0
- package/lib/maps/MapLayersDesignerComponent.js +2 -1
- package/lib/maps/MapTranslationsTab.d.ts +15 -0
- package/lib/maps/MapTranslationsTab.js +47 -0
- package/lib/maps/MapUtils.d.ts +11 -0
- package/lib/maps/MapUtils.js +57 -1
- package/lib/maps/MapViewComponent.d.ts +1 -1
- package/lib/maps/MapViewComponent.js +1 -8
- package/lib/maps/MarkersLayer.d.ts +1 -14
- package/lib/maps/MarkersLayer.js +89 -254
- package/lib/maps/MarkersLayerDesign.d.ts +5 -1
- package/lib/maps/MarkersLayerDesignerComponent.d.ts +32 -57
- package/lib/maps/MarkersLayerDesignerComponent.js +158 -134
- package/lib/maps/ServerMapDataSource.d.ts +0 -1
- package/lib/maps/ServerMapDataSource.js +0 -25
- package/lib/maps/SwitchableTileUrlLayer.d.ts +0 -2
- package/lib/maps/SwitchableTileUrlLayer.js +0 -9
- package/lib/maps/TileUrlLayer.d.ts +0 -1
- package/lib/maps/TileUrlLayer.js +0 -5
- package/lib/maps/VectorMapViewComponent.js +13 -10
- package/lib/maps/symbols/font-awesome/asterisk.png +0 -0
- package/lib/maps/symbols/font-awesome/ban.png +0 -0
- package/lib/maps/symbols/font-awesome/beer.png +0 -0
- package/lib/maps/symbols/font-awesome/bell.png +0 -0
- package/lib/maps/symbols/font-awesome/bolt.png +0 -0
- package/lib/maps/symbols/font-awesome/building.png +0 -0
- package/lib/maps/symbols/font-awesome/bullseye.png +0 -0
- package/lib/maps/symbols/font-awesome/bus.png +0 -0
- package/lib/maps/symbols/font-awesome/caret-up.png +0 -0
- package/lib/maps/symbols/font-awesome/certificate.png +0 -0
- package/lib/maps/symbols/font-awesome/check-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/check.png +0 -0
- package/lib/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
- package/lib/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
- package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/lib/maps/symbols/font-awesome/cloud.png +0 -0
- package/lib/maps/symbols/font-awesome/comment.png +0 -0
- package/lib/maps/symbols/font-awesome/crosshairs.png +0 -0
- package/lib/maps/symbols/font-awesome/dot-circle-o.png +0 -0
- package/lib/maps/symbols/font-awesome/exclamation-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
- package/lib/maps/symbols/font-awesome/female.png +0 -0
- package/lib/maps/symbols/font-awesome/file.png +0 -0
- package/lib/maps/symbols/font-awesome/flag.png +0 -0
- package/lib/maps/symbols/font-awesome/flask.png +0 -0
- package/lib/maps/symbols/font-awesome/h-square.png +0 -0
- package/lib/maps/symbols/font-awesome/home.png +0 -0
- package/lib/maps/symbols/font-awesome/info-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/male.png +0 -0
- package/lib/maps/symbols/font-awesome/medkit.png +0 -0
- package/lib/maps/symbols/font-awesome/mobile.png +0 -0
- package/lib/maps/symbols/font-awesome/plus-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/plus-square.png +0 -0
- package/lib/maps/symbols/font-awesome/plus.png +0 -0
- package/lib/maps/symbols/font-awesome/square.png +0 -0
- package/lib/maps/symbols/font-awesome/star.png +0 -0
- package/lib/maps/symbols/font-awesome/thumbs-down.png +0 -0
- package/lib/maps/symbols/font-awesome/thumbs-up.png +0 -0
- package/lib/maps/symbols/font-awesome/ticket.png +0 -0
- package/lib/maps/symbols/font-awesome/times-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/times.png +0 -0
- package/lib/maps/symbols/font-awesome/tint.png +0 -0
- package/lib/maps/symbols/font-awesome/tree.png +0 -0
- package/lib/maps/symbols/font-awesome/university.png +0 -0
- package/lib/maps/symbols/font-awesome/usd.png +0 -0
- package/lib/maps/symbols/font-awesome/user.png +0 -0
- package/lib/maps/symbols/font-awesome/users.png +0 -0
- package/lib/maps/symbols/font-awesome/wheelchair.png +0 -0
- package/lib/maps/symbols/sdf-ize.sh +93 -0
- package/lib/maps/vectorMaps.d.ts +6 -6
- package/lib/maps/vectorMaps.js +33 -45
- package/lib/mwater_table_selection/IndicatorsListComponent.d.ts +4 -2
- package/lib/mwater_table_selection/IndicatorsListComponent.js +103 -34
- package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.d.ts +18 -0
- package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.js +80 -0
- package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.d.ts +26 -0
- package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.js +237 -51
- package/lib/mwater_table_selection/MWaterTableSelectComponent.d.ts +2 -2
- package/lib/mwater_table_selection/MWaterTableSelectComponent.js +9 -4
- package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.d.ts +19 -0
- package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.js +111 -0
- package/lib/quickfilter/QuickfiltersComponent.d.ts +3 -102
- package/lib/quickfilter/QuickfiltersComponent.js +53 -110
- package/lib/quickfilter/TextLiteralComponent.d.ts +23 -47
- package/lib/quickfilter/TextLiteralComponent.js +85 -82
- package/lib/widgets/MapWidget.js +6 -3
- package/lib/widgets/text/ExprItemEditorComponent.d.ts +3 -8
- package/lib/widgets/text/ExprItemEditorComponent.js +36 -33
- package/lib/widgets/text/ExprUpdateModalComponent.d.ts +1 -0
- package/package.json +3 -4
- package/src/ColorComponent.tsx +2 -2
- package/src/MWaterContextComponent.tsx +1 -1
- package/src/{MWaterGlobalFiltersComponent.ts → MWaterGlobalFiltersComponent.tsx} +32 -33
- package/src/{MWaterLoaderComponent.ts → MWaterLoaderComponent.tsx} +17 -18
- package/src/TranslationsTabComponent.tsx +429 -0
- package/src/UndoStack.ts +14 -6
- package/src/dashboards/DashboardComponent.tsx +6 -5
- package/src/dashboards/DashboardDesign.ts +1 -1
- package/src/dashboards/ServerDashboardDataSource.ts +0 -31
- package/src/dashboards/SettingsModalComponent.tsx +27 -383
- package/src/datagrids/DatagridComponent.tsx +36 -2
- package/src/datagrids/DatagridDesignerComponent.tsx +241 -229
- package/src/datagrids/DatagridViewComponent.tsx +44 -7
- package/src/datagrids/OrderBysDesignerComponent.tsx +61 -70
- package/src/index.css +45 -2
- package/src/index.ts +5 -11
- package/src/layouts/blocks/BlocksDisplayComponent.tsx +60 -5
- package/src/maps/BufferLayer.ts +30 -263
- package/src/maps/BufferLayerDesign.ts +1 -1
- package/src/maps/BufferLayerDesignerComponent.tsx +2 -7
- package/src/maps/ChoroplethLayer.ts +30 -394
- package/src/maps/ChoroplethLayerDesign.ts +5 -2
- package/src/maps/ChoroplethLayerDesigner.tsx +169 -165
- package/src/maps/ClusterLayer.ts +0 -274
- package/src/maps/DirectMapDataSource.ts +2 -61
- package/src/maps/EditHoverOver.tsx +9 -5
- package/src/maps/GridLayer.ts +0 -224
- package/src/maps/HoverContent.tsx +1 -1
- package/src/maps/Layer.ts +1 -35
- package/src/maps/LeafletMapComponent.tsx +10 -19
- package/src/maps/MapComponent.tsx +448 -0
- package/src/maps/MapControlComponent.tsx +41 -0
- package/src/maps/MapDesign.ts +6 -0
- package/src/maps/MapDesignerComponent.tsx +18 -1
- package/src/maps/MapLayerDataSource.ts +0 -5
- package/src/maps/MapLayerViewDesignerComponent.ts +9 -2
- package/src/maps/MapLayersDesignerComponent.ts +4 -1
- package/src/maps/MapTranslationsTab.tsx +53 -0
- package/src/maps/MapUtils.ts +61 -1
- package/src/maps/MapViewComponent.tsx +2 -8
- package/src/maps/MarkersLayer.ts +101 -275
- package/src/maps/MarkersLayerDesign.ts +7 -1
- package/src/maps/MarkersLayerDesignerComponent.tsx +436 -0
- package/src/maps/ServerMapDataSource.ts +0 -31
- package/src/maps/SwitchableTileUrlLayer.tsx +0 -11
- package/src/maps/TileUrlLayer.tsx +0 -6
- package/src/maps/VectorMapViewComponent.tsx +15 -15
- package/src/maps/symbols/font-awesome/asterisk.png +0 -0
- package/src/maps/symbols/font-awesome/ban.png +0 -0
- package/src/maps/symbols/font-awesome/beer.png +0 -0
- package/src/maps/symbols/font-awesome/bell.png +0 -0
- package/src/maps/symbols/font-awesome/bolt.png +0 -0
- package/src/maps/symbols/font-awesome/building.png +0 -0
- package/src/maps/symbols/font-awesome/bullseye.png +0 -0
- package/src/maps/symbols/font-awesome/bus.png +0 -0
- package/src/maps/symbols/font-awesome/caret-up.png +0 -0
- package/src/maps/symbols/font-awesome/certificate.png +0 -0
- package/src/maps/symbols/font-awesome/check-circle.png +0 -0
- package/src/maps/symbols/font-awesome/check.png +0 -0
- package/src/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
- package/src/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
- package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/src/maps/symbols/font-awesome/cloud.png +0 -0
- package/src/maps/symbols/font-awesome/comment.png +0 -0
- package/src/maps/symbols/font-awesome/crosshairs.png +0 -0
- package/src/maps/symbols/font-awesome/dot-circle-o.png +0 -0
- package/src/maps/symbols/font-awesome/exclamation-circle.png +0 -0
- package/src/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
- package/src/maps/symbols/font-awesome/female.png +0 -0
- package/src/maps/symbols/font-awesome/file.png +0 -0
- package/src/maps/symbols/font-awesome/flag.png +0 -0
- package/src/maps/symbols/font-awesome/flask.png +0 -0
- package/src/maps/symbols/font-awesome/h-square.png +0 -0
- package/src/maps/symbols/font-awesome/home.png +0 -0
- package/src/maps/symbols/font-awesome/info-circle.png +0 -0
- package/src/maps/symbols/font-awesome/male.png +0 -0
- package/src/maps/symbols/font-awesome/medkit.png +0 -0
- package/src/maps/symbols/font-awesome/mobile.png +0 -0
- package/src/maps/symbols/font-awesome/plus-circle.png +0 -0
- package/src/maps/symbols/font-awesome/plus-square.png +0 -0
- package/src/maps/symbols/font-awesome/plus.png +0 -0
- package/src/maps/symbols/font-awesome/square.png +0 -0
- package/src/maps/symbols/font-awesome/star.png +0 -0
- package/src/maps/symbols/font-awesome/thumbs-down.png +0 -0
- package/src/maps/symbols/font-awesome/thumbs-up.png +0 -0
- package/src/maps/symbols/font-awesome/ticket.png +0 -0
- package/src/maps/symbols/font-awesome/times-circle.png +0 -0
- package/src/maps/symbols/font-awesome/times.png +0 -0
- package/src/maps/symbols/font-awesome/tint.png +0 -0
- package/src/maps/symbols/font-awesome/tree.png +0 -0
- package/src/maps/symbols/font-awesome/university.png +0 -0
- package/src/maps/symbols/font-awesome/usd.png +0 -0
- package/src/maps/symbols/font-awesome/user.png +0 -0
- package/src/maps/symbols/font-awesome/users.png +0 -0
- package/src/maps/symbols/font-awesome/wheelchair.png +0 -0
- package/src/maps/symbols/sdf-ize.sh +93 -0
- package/src/maps/vectorMaps.tsx +32 -53
- package/src/mwater_table_selection/IndicatorsListComponent.tsx +165 -37
- package/src/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.tsx +111 -0
- package/src/mwater_table_selection/MWaterCompleteTableSelectComponent.tsx +373 -37
- package/src/mwater_table_selection/MWaterTableSelectComponent.tsx +12 -8
- package/src/mwater_table_selection/MWaterWorkflowsSelectComponent.tsx +159 -0
- package/src/quickfilter/{QuickfiltersComponent.ts → QuickfiltersComponent.tsx} +165 -158
- package/src/quickfilter/TextLiteralComponent.tsx +197 -0
- package/src/widgets/MapWidget.tsx +11 -1
- package/src/widgets/text/ExprItemEditorComponent.tsx +83 -77
- package/src/widgets/text/ExprUpdateModalComponent.tsx +1 -0
- package/test/UndoStackTests.ts +52 -1
- package/.storybook/config.js +0 -7
- package/.storybook/head.html +0 -3
- package/.storybook/webpack.config.js +0 -15
- package/src/maps/BingLayer.ts +0 -146
- package/src/maps/MapComponent.ts +0 -312
- package/src/maps/MapControlComponent.ts +0 -46
- package/src/maps/MarkersLayerDesignerComponent.ts +0 -374
- package/src/maps/RasterMapViewComponent.ts +0 -345
- package/src/quickfilter/TextLiteralComponent.ts +0 -165
- package/stories/UpdateableComponent.js +0 -29
- package/stories/consoles.js +0 -202
- package/stories/dashboards.js +0 -217
- package/stories/datagridDesign.js +0 -114
- package/stories/datagrids.js +0 -69
- package/stories/dates.js +0 -80
- package/stories/exprcomponent.js +0 -43
- package/stories/index.js +0 -18
- package/stories/leaflet.js +0 -59
- package/stories/maps.js +0 -24
- package/stories/pivotChart.js +0 -235
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { default as LeafletMapComponent
|
|
1
|
+
export { default as LeafletMapComponent } from "./maps/LeafletMapComponent";
|
|
2
|
+
export type { MapBounds, TileLayer, GeoJsonLayer, MapLayer } from "./maps/LeafletMapComponent";
|
|
2
3
|
export { default as DateRangeComponent } from "./DateRangeComponent";
|
|
3
4
|
export { default as RegionSelectComponent } from "./maps/RegionSelectComponent";
|
|
4
5
|
export * from "./datagrids/DatagridDesign";
|
|
@@ -7,7 +8,7 @@ export { default as DashboardComponent } from "./dashboards/DashboardComponent";
|
|
|
7
8
|
export { default as DashboardDataSource } from "./dashboards/DashboardDataSource";
|
|
8
9
|
export { default as DirectDashboardDataSource } from "./dashboards/DirectDashboardDataSource";
|
|
9
10
|
export * from "./dashboards/DashboardDesign";
|
|
10
|
-
export { MapDesign, MapLayerView } from "./maps/MapDesign";
|
|
11
|
+
export type { MapDesign, MapLayerView } from "./maps/MapDesign";
|
|
11
12
|
export { default as compressJson } from "./compressJson";
|
|
12
13
|
export { default as LocaleContextInjector } from "./LocaleContextInjector";
|
|
13
14
|
export * from "./WidgetScope";
|
|
@@ -15,12 +16,12 @@ export { default as WidgetFactory } from "./widgets/WidgetFactory";
|
|
|
15
16
|
export { default as Widget } from "./widgets/Widget";
|
|
16
17
|
export { default as DatagridUtils } from "./datagrids/DatagridUtils";
|
|
17
18
|
export * from "./maps/MapViewComponent";
|
|
18
|
-
export { MapScope } from "./maps/MapUtils";
|
|
19
|
+
export type { MapScope } from "./maps/MapUtils";
|
|
19
20
|
export { languages } from "./languages";
|
|
20
21
|
export { default as MWaterLoaderComponent } from "./MWaterLoaderComponent";
|
|
21
22
|
export { default as MWaterContextComponent } from "./MWaterContextComponent";
|
|
22
23
|
export { default as mWaterLoader } from "./mWaterLoader";
|
|
23
|
-
export { WidgetDataSource } from "./widgets/WidgetDataSource";
|
|
24
|
+
export type { WidgetDataSource } from "./widgets/WidgetDataSource";
|
|
24
25
|
export { default as DirectWidgetDataSource } from "./widgets/DirectWidgetDataSource";
|
|
25
26
|
import "leaflet/dist/leaflet.css";
|
|
26
27
|
import "rc-slider/assets/index.css";
|
|
@@ -31,7 +32,6 @@ import "./index.css";
|
|
|
31
32
|
export { setMapTilerApiKey } from "./maps/vectorMaps";
|
|
32
33
|
export { default as UndoStack } from "./UndoStack";
|
|
33
34
|
export { default as DashboardViewComponent } from "./dashboards/DashboardViewComponent";
|
|
34
|
-
export declare let BingLayer: any;
|
|
35
35
|
export declare let UtfGridLayer: any;
|
|
36
36
|
export { default as LayerFactory } from "./maps/LayerFactory";
|
|
37
37
|
export { default as MapDesignerComponent } from "./maps/MapDesignerComponent";
|
package/lib/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.ItemsHtmlConverter = exports.RichTextComponent = exports.AxisColorEditorComponent = exports.MarkerSymbolSelectComponent = exports.DetailLevelSelectComponent = exports.LayoutManager = exports.LabeledExprGenerator = exports.DirectDatagridDataSource = exports.ServerDatagridDataSource = exports.DirectMapDataSource = exports.ServerMapDataSource = exports.ServerDashboardDataSource = exports.DatagridViewComponent = exports.DatagridComponent = exports.ColorSchemeFactory = exports.AxisBuilder = exports.WidgetScopesViewComponent = exports.WidgetScoper = exports.ChartViewComponent = exports.ImageMosaicChart = exports.CalendarChart = exports.TableChart = exports.LayeredChart = exports.CheckboxComponent = exports.RadioButtonComponent = exports.VerticalLayoutComponent = exports.MapComponent = exports.MapDesignerComponent = exports.LayerFactory = exports.UtfGridLayer = exports.
|
|
21
|
-
exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler =
|
|
20
|
+
exports.DropdownWidgetComponent = exports.ItemsHtmlConverter = exports.RichTextComponent = exports.AxisColorEditorComponent = exports.MarkerSymbolSelectComponent = exports.DetailLevelSelectComponent = exports.LayoutManager = exports.LabeledExprGenerator = exports.DirectDatagridDataSource = exports.ServerDatagridDataSource = exports.DirectMapDataSource = exports.ServerMapDataSource = exports.ServerDashboardDataSource = exports.DatagridViewComponent = exports.DatagridComponent = exports.ColorSchemeFactory = exports.AxisBuilder = exports.WidgetScopesViewComponent = exports.WidgetScoper = exports.ChartViewComponent = exports.ImageMosaicChart = exports.CalendarChart = exports.TableChart = exports.LayeredChart = exports.CheckboxComponent = exports.RadioButtonComponent = exports.VerticalLayoutComponent = exports.MapComponent = exports.MapDesignerComponent = exports.LayerFactory = exports.UtfGridLayer = exports.DashboardViewComponent = exports.UndoStack = exports.setMapTilerApiKey = exports.DirectWidgetDataSource = exports.mWaterLoader = exports.MWaterContextComponent = exports.MWaterLoaderComponent = exports.languages = exports.DatagridUtils = exports.Widget = exports.WidgetFactory = exports.LocaleContextInjector = exports.compressJson = exports.DirectDashboardDataSource = exports.DashboardDataSource = exports.DashboardComponent = exports.RegionSelectComponent = exports.DateRangeComponent = exports.LeafletMapComponent = void 0;
|
|
21
|
+
exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler = void 0;
|
|
22
22
|
var LeafletMapComponent_1 = require("./maps/LeafletMapComponent");
|
|
23
23
|
Object.defineProperty(exports, "LeafletMapComponent", { enumerable: true, get: function () { return __importDefault(LeafletMapComponent_1).default; } });
|
|
24
24
|
var DateRangeComponent_1 = require("./DateRangeComponent");
|
|
@@ -68,7 +68,6 @@ var UndoStack_1 = require("./UndoStack");
|
|
|
68
68
|
Object.defineProperty(exports, "UndoStack", { enumerable: true, get: function () { return __importDefault(UndoStack_1).default; } });
|
|
69
69
|
var DashboardViewComponent_1 = require("./dashboards/DashboardViewComponent");
|
|
70
70
|
Object.defineProperty(exports, "DashboardViewComponent", { enumerable: true, get: function () { return __importDefault(DashboardViewComponent_1).default; } });
|
|
71
|
-
exports.BingLayer = require("./maps/BingLayer");
|
|
72
71
|
exports.UtfGridLayer = require("./maps/UtfGridLayer");
|
|
73
72
|
var LayerFactory_1 = require("./maps/LayerFactory");
|
|
74
73
|
Object.defineProperty(exports, "LayerFactory", { enumerable: true, get: function () { return __importDefault(LayerFactory_1).default; } });
|
|
@@ -20,11 +20,18 @@ export interface BlocksDisplayComponentProps {
|
|
|
20
20
|
/** message to display if clipboard can't be pasted into current dashboard */
|
|
21
21
|
cantPasteMessage?: string;
|
|
22
22
|
}
|
|
23
|
+
interface BlocksDisplayComponentState {
|
|
24
|
+
isPaletteVisible: boolean;
|
|
25
|
+
isManuallyHidden: boolean;
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
Renders the complete layout of the blocks and also optionally a palette to the left
|
|
25
29
|
that can be used to drag new items into the layout. Palette is only displayed if onItemsChange is not null
|
|
26
30
|
*/
|
|
27
|
-
declare class BlocksDisplayComponent extends React.Component<BlocksDisplayComponentProps> {
|
|
31
|
+
declare class BlocksDisplayComponent extends React.Component<BlocksDisplayComponentProps, BlocksDisplayComponentState> {
|
|
32
|
+
state: BlocksDisplayComponentState;
|
|
33
|
+
componentDidUpdate(prevProps: BlocksDisplayComponentProps): void;
|
|
34
|
+
handlePaletteToggle: () => void;
|
|
28
35
|
handleBlockDrop: (sourceBlock: LayoutBlock, targetBlock: LayoutBlock, side: "top" | "left" | "right" | "bottom") => void;
|
|
29
36
|
handleBlockRemove: (block: LayoutBlock) => void;
|
|
30
37
|
handleBlockUpdate: (block: LayoutBlock) => void;
|
|
@@ -42,6 +42,27 @@ const layoutOptions_1 = require("../../dashboards/layoutOptions");
|
|
|
42
42
|
that can be used to drag new items into the layout. Palette is only displayed if onItemsChange is not null
|
|
43
43
|
*/
|
|
44
44
|
class BlocksDisplayComponent extends react_1.default.Component {
|
|
45
|
+
state = {
|
|
46
|
+
isPaletteVisible: false,
|
|
47
|
+
isManuallyHidden: false
|
|
48
|
+
};
|
|
49
|
+
componentDidUpdate(prevProps) {
|
|
50
|
+
// If editing state changes (onItemsChange becomes available/unavailable)
|
|
51
|
+
if (prevProps.onItemsChange !== this.props.onItemsChange) {
|
|
52
|
+
if (this.props.onItemsChange && !this.state.isManuallyHidden) {
|
|
53
|
+
this.setState({ isPaletteVisible: true });
|
|
54
|
+
}
|
|
55
|
+
else if (!this.props.onItemsChange) {
|
|
56
|
+
this.setState({ isPaletteVisible: false, isManuallyHidden: false });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
handlePaletteToggle = () => {
|
|
61
|
+
this.setState(prevState => ({
|
|
62
|
+
isPaletteVisible: !prevState.isPaletteVisible,
|
|
63
|
+
isManuallyHidden: !prevState.isManuallyHidden
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
45
66
|
handleBlockDrop = (sourceBlock, targetBlock, side) => {
|
|
46
67
|
// Remove source from items
|
|
47
68
|
let items = blockUtils.removeBlock(this.props.items, sourceBlock);
|
|
@@ -121,8 +142,28 @@ class BlocksDisplayComponent extends react_1.default.Component {
|
|
|
121
142
|
});
|
|
122
143
|
}
|
|
123
144
|
renderPalette() {
|
|
124
|
-
return (react_1.default.createElement("div", { key: "palette", style: {
|
|
145
|
+
return (react_1.default.createElement("div", { key: "palette", style: {
|
|
146
|
+
width: 141,
|
|
147
|
+
height: "100%",
|
|
148
|
+
position: "absolute",
|
|
149
|
+
top: 0,
|
|
150
|
+
left: 0,
|
|
151
|
+
transition: "transform 0.3s ease-in-out",
|
|
152
|
+
transform: this.state.isPaletteVisible ? "translateX(0)" : "translateX(-100%)"
|
|
153
|
+
} },
|
|
125
154
|
react_1.default.createElement("div", { className: "mwater-visualization-palette", style: { height: "100%" } },
|
|
155
|
+
react_1.default.createElement("div", { style: {
|
|
156
|
+
position: "absolute",
|
|
157
|
+
right: -14,
|
|
158
|
+
top: 0,
|
|
159
|
+
background: "#363b3e",
|
|
160
|
+
color: "white",
|
|
161
|
+
padding: "5px 3px 5px 5px",
|
|
162
|
+
cursor: "pointer",
|
|
163
|
+
borderRadius: "0 3px 3px 0",
|
|
164
|
+
zIndex: 1001
|
|
165
|
+
}, onClick: this.handlePaletteToggle },
|
|
166
|
+
react_1.default.createElement("i", { className: `fa fa-chevron-${this.state.isPaletteVisible ? 'left' : 'right'}` })),
|
|
126
167
|
react_1.default.createElement(PaletteItemComponent_1.default, { createItem: this.createBlockItem({ type: "widget", widgetType: "Text", design: { style: "title" } }), title: react_1.default.createElement("i", { className: "fa fa-font" }), subtitle: T `Title` }),
|
|
127
168
|
react_1.default.createElement(PaletteItemComponent_1.default, { createItem: this.createBlockItem({ type: "widget", widgetType: "Text", design: {} }), title: react_1.default.createElement("i", { className: "fa fa-align-left" }), subtitle: T `Text` }),
|
|
128
169
|
react_1.default.createElement(PaletteItemComponent_1.default, { createItem: this.createBlockItem({ type: "widget", aspectRatio: 1.4, widgetType: "Image", design: {} }), title: react_1.default.createElement("i", { className: "fa fa-picture-o" }), subtitle: T `Image` }),
|
|
@@ -178,15 +219,16 @@ class BlocksDisplayComponent extends react_1.default.Component {
|
|
|
178
219
|
innerParentStyle = {};
|
|
179
220
|
innerParentStyle.maxWidth = layoutOptions.maximumWidth || undefined;
|
|
180
221
|
return (react_1.default.createElement(layoutOptions_1.DashboardStyleWrapper, { style: { width: "100%", height: "100%", overflow: "hidden", position: "relative" }, layoutOptions: layoutOptions },
|
|
181
|
-
this.renderPalette(),
|
|
222
|
+
react_1.default.createElement("div", { className: "mwater-visualization-palette-container" }, this.renderPalette()),
|
|
182
223
|
react_1.default.createElement("div", { style: {
|
|
183
224
|
position: "absolute",
|
|
184
|
-
left: 141,
|
|
225
|
+
left: this.state.isPaletteVisible ? 141 : 0,
|
|
185
226
|
top: 0,
|
|
186
227
|
bottom: 0,
|
|
187
228
|
right: 0,
|
|
188
229
|
overflowX: "auto",
|
|
189
|
-
overflowY: "scroll"
|
|
230
|
+
overflowY: "scroll",
|
|
231
|
+
transition: "left 0.3s ease-in-out"
|
|
190
232
|
}, className: `mwater-visualization-block-parent-outer mwater-visualization-block-editing` },
|
|
191
233
|
react_1.default.createElement("div", { key: "inner", className: `mwater-visualization-block-parent-inner mwater-visualization-block-parent-inner-${this.props.style || "default"}`, style: innerParentStyle }, this.renderBlock(this.props.items, false, 0)))));
|
|
192
234
|
}
|
|
@@ -11,19 +11,6 @@ export default class BufferLayer extends Layer<BufferLayerDesign> {
|
|
|
11
11
|
getLayerDefinitionType(): "VectorTile";
|
|
12
12
|
getVectorTile(design: BufferLayerDesign, sourceId: string, schema: Schema, filters: JsonQLFilter[], opacity: number): VectorTileDef;
|
|
13
13
|
createVectorJsonQL(design: BufferLayerDesign, schema: Schema, filters: JsonQLFilter[]): JsonQLQuery;
|
|
14
|
-
getJsonQLCss(design: BufferLayerDesign, schema: Schema, filters: JsonQLFilter[]): {
|
|
15
|
-
layers: {
|
|
16
|
-
id: string;
|
|
17
|
-
jsonql: import("@mwater/jsonql").JsonQLSelectQuery;
|
|
18
|
-
}[];
|
|
19
|
-
css: string;
|
|
20
|
-
interactivity: {
|
|
21
|
-
layer: string;
|
|
22
|
-
fields: string[];
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
createMapnikJsonQL(design: BufferLayerDesign, schema: Schema, filters: JsonQLFilter[]): import("@mwater/jsonql").JsonQLSelectQuery;
|
|
26
|
-
createCss(design: BufferLayerDesign, schema: Schema): string;
|
|
27
14
|
onGridClick(ev: {
|
|
28
15
|
data: any;
|
|
29
16
|
event: any;
|
package/lib/maps/BufferLayer.js
CHANGED
|
@@ -296,235 +296,6 @@ class BufferLayer extends Layer_1.default {
|
|
|
296
296
|
}
|
|
297
297
|
return query;
|
|
298
298
|
}
|
|
299
|
-
// Gets the layer definition as JsonQL + CSS in format:
|
|
300
|
-
// {
|
|
301
|
-
// layers: array of { id: layer id, jsonql: jsonql that includes "the_webmercator_geom" as a column }
|
|
302
|
-
// css: carto css
|
|
303
|
-
// interactivity: (optional) { layer: id of layer, fields: array of field names }
|
|
304
|
-
// }
|
|
305
|
-
// arguments:
|
|
306
|
-
// design: design of layer
|
|
307
|
-
// schema: schema to use
|
|
308
|
-
// filters: array of filters to apply. Each is { table: table id, jsonql: jsonql condition with {alias} for tableAlias. Use injectAlias to put in table alias
|
|
309
|
-
getJsonQLCss(design, schema, filters) {
|
|
310
|
-
// Create design
|
|
311
|
-
const layerDef = {
|
|
312
|
-
layers: [{ id: "layer0", jsonql: this.createMapnikJsonQL(design, schema, filters) }],
|
|
313
|
-
css: this.createCss(design, schema),
|
|
314
|
-
interactivity: {
|
|
315
|
-
layer: "layer0",
|
|
316
|
-
fields: ["id"]
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
return layerDef;
|
|
320
|
-
}
|
|
321
|
-
createMapnikJsonQL(design, schema, filters) {
|
|
322
|
-
let colorExpr;
|
|
323
|
-
const axisBuilder = new AxisBuilder_1.default({ schema });
|
|
324
|
-
const exprCompiler = new expressions_1.ExprCompiler(schema);
|
|
325
|
-
// Get radius expression
|
|
326
|
-
const radiusCompiledExpr = exprCompiler.compileExpr({
|
|
327
|
-
expr: design.radiusExpr ?? { type: "literal", valueType: "number", value: design.radius },
|
|
328
|
-
tableAlias: "main"
|
|
329
|
-
});
|
|
330
|
-
// Convert radius in meters to a maximum number of degrees latitude
|
|
331
|
-
const radiusDegCompiledExpr = { type: "op", op: "/", exprs: [radiusCompiledExpr, 100000] };
|
|
332
|
-
/*
|
|
333
|
-
Query:
|
|
334
|
-
select
|
|
335
|
-
<primary key> as id,
|
|
336
|
-
[<color axis> as color,
|
|
337
|
-
st_transform(<geometry axis>, 3857) as the_geom_webmercator,
|
|
338
|
-
radius * 2 / (!pixel_width! * cos(st_ymin(st_transform(geometryExpr, 4326)) * 0.017453293) as width
|
|
339
|
-
from <table> as main
|
|
340
|
-
where
|
|
341
|
-
<geometry axis> is not null
|
|
342
|
-
* Bounding box filter for speed
|
|
343
|
-
and <geometry axis> &&
|
|
344
|
-
ST_Transform(ST_Expand(
|
|
345
|
-
* Prevent 3857 overflow (i.e. > 85 degrees lat)
|
|
346
|
-
ST_Intersection(
|
|
347
|
-
ST_Transform(!bbox!, 4326),
|
|
348
|
-
ST_Expand(ST_MakeEnvelope(-180, -85, 180, 85, 4326), -<radius in degrees>))
|
|
349
|
-
, <radius in degrees>})
|
|
350
|
-
, 3857)
|
|
351
|
-
and <other filters>
|
|
352
|
-
*/
|
|
353
|
-
// Compile geometry axis
|
|
354
|
-
let geometryExpr = axisBuilder.compileAxis({ axis: design.axes.geometry, tableAlias: "main" });
|
|
355
|
-
// radius * 2 / (!pixel_width! * cos(st_ymin(st_transform(geometryExpr, 4326)) * 0.017453293) + 1 # add one to make always visible
|
|
356
|
-
const widthExpr = {
|
|
357
|
-
type: "op",
|
|
358
|
-
op: "+",
|
|
359
|
-
exprs: [
|
|
360
|
-
{
|
|
361
|
-
type: "op",
|
|
362
|
-
op: "/",
|
|
363
|
-
exprs: [
|
|
364
|
-
{ type: "op", op: "*", exprs: [radiusCompiledExpr, 2] },
|
|
365
|
-
{
|
|
366
|
-
type: "op",
|
|
367
|
-
op: "*",
|
|
368
|
-
exprs: [
|
|
369
|
-
{ type: "op", op: "nullif", exprs: [{ type: "token", token: "!pixel_height!" }, 0] },
|
|
370
|
-
{
|
|
371
|
-
type: "op",
|
|
372
|
-
op: "cos",
|
|
373
|
-
exprs: [
|
|
374
|
-
{
|
|
375
|
-
type: "op",
|
|
376
|
-
op: "*",
|
|
377
|
-
exprs: [
|
|
378
|
-
{
|
|
379
|
-
type: "op",
|
|
380
|
-
op: "ST_YMIN",
|
|
381
|
-
exprs: [{ type: "op", op: "ST_Transform", exprs: [geometryExpr, 4326] }]
|
|
382
|
-
},
|
|
383
|
-
0.017453293
|
|
384
|
-
]
|
|
385
|
-
}
|
|
386
|
-
]
|
|
387
|
-
}
|
|
388
|
-
]
|
|
389
|
-
}
|
|
390
|
-
]
|
|
391
|
-
},
|
|
392
|
-
2
|
|
393
|
-
]
|
|
394
|
-
};
|
|
395
|
-
const selects = [
|
|
396
|
-
{
|
|
397
|
-
type: "select",
|
|
398
|
-
expr: { type: "field", tableAlias: "main", column: schema.getTable(design.table).primaryKey },
|
|
399
|
-
alias: "id"
|
|
400
|
-
}, // main primary key as id
|
|
401
|
-
{ type: "select", expr: geometryExpr, alias: "the_geom_webmercator" },
|
|
402
|
-
{ type: "select", expr: widthExpr, alias: "width" } // Width of circles
|
|
403
|
-
];
|
|
404
|
-
// Add color select if color axis
|
|
405
|
-
if (design.axes.color) {
|
|
406
|
-
colorExpr = axisBuilder.compileAxis({ axis: design.axes.color, tableAlias: "main" });
|
|
407
|
-
selects.push({ type: "select", expr: colorExpr, alias: "color" });
|
|
408
|
-
}
|
|
409
|
-
// Select _id, location and clustered row number
|
|
410
|
-
const query = {
|
|
411
|
-
type: "query",
|
|
412
|
-
selects,
|
|
413
|
-
from: exprCompiler.compileTable(design.table, "main")
|
|
414
|
-
};
|
|
415
|
-
const boundingBox = {
|
|
416
|
-
type: "op",
|
|
417
|
-
op: "ST_Transform",
|
|
418
|
-
exprs: [
|
|
419
|
-
{
|
|
420
|
-
type: "op",
|
|
421
|
-
op: "ST_Expand",
|
|
422
|
-
exprs: [
|
|
423
|
-
{
|
|
424
|
-
type: "op",
|
|
425
|
-
op: "ST_Intersection",
|
|
426
|
-
exprs: [
|
|
427
|
-
{ type: "op", op: "ST_Transform", exprs: [{ type: "token", token: "!bbox!" }, 4326] },
|
|
428
|
-
{
|
|
429
|
-
type: "op",
|
|
430
|
-
op: "ST_Expand",
|
|
431
|
-
exprs: [
|
|
432
|
-
{ type: "op", op: "ST_MakeEnvelope", exprs: [-180, -85, 180, 85, 4326] },
|
|
433
|
-
{ type: "op", op: "*", exprs: [radiusDegCompiledExpr, -1] }
|
|
434
|
-
]
|
|
435
|
-
}
|
|
436
|
-
]
|
|
437
|
-
},
|
|
438
|
-
radiusDegCompiledExpr
|
|
439
|
-
]
|
|
440
|
-
},
|
|
441
|
-
3857
|
|
442
|
-
]
|
|
443
|
-
};
|
|
444
|
-
// Create filters. First ensure geometry and limit to bounding box
|
|
445
|
-
let whereClauses = [
|
|
446
|
-
{ type: "op", op: "is not null", exprs: [geometryExpr] },
|
|
447
|
-
{
|
|
448
|
-
type: "op",
|
|
449
|
-
op: "&&",
|
|
450
|
-
exprs: [geometryExpr, boundingBox]
|
|
451
|
-
}
|
|
452
|
-
];
|
|
453
|
-
// Then add filters baked into layer
|
|
454
|
-
if (design.filter) {
|
|
455
|
-
whereClauses.push(exprCompiler.compileExpr({ expr: design.filter, tableAlias: "main" }));
|
|
456
|
-
}
|
|
457
|
-
// Then add extra filters passed in, if relevant
|
|
458
|
-
// Get relevant filters
|
|
459
|
-
const relevantFilters = lodash_1.default.where(filters, { table: design.table });
|
|
460
|
-
for (let filter of relevantFilters) {
|
|
461
|
-
whereClauses.push((0, expressions_1.injectTableAlias)(filter.jsonql, "main"));
|
|
462
|
-
}
|
|
463
|
-
whereClauses = lodash_1.default.compact(whereClauses);
|
|
464
|
-
// Wrap if multiple
|
|
465
|
-
if (whereClauses.length > 1) {
|
|
466
|
-
query.where = { type: "op", op: "and", exprs: whereClauses };
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
query.where = whereClauses[0];
|
|
470
|
-
}
|
|
471
|
-
// Sort order
|
|
472
|
-
if (design.axes.color && design.axes.color.colorMap) {
|
|
473
|
-
// TODO should use categories, not colormap order
|
|
474
|
-
const order = design.axes.color.drawOrder || lodash_1.default.pluck(design.axes.color.colorMap, "value");
|
|
475
|
-
const categories = axisBuilder.getCategories(design.axes.color, order);
|
|
476
|
-
const cases = lodash_1.default.map(categories, (category, i) => {
|
|
477
|
-
return {
|
|
478
|
-
when: category.value != null
|
|
479
|
-
? { type: "op", op: "=", exprs: [colorExpr, category.value] }
|
|
480
|
-
: { type: "op", op: "is null", exprs: [colorExpr] },
|
|
481
|
-
then: order.indexOf(category.value) || -1
|
|
482
|
-
};
|
|
483
|
-
});
|
|
484
|
-
if (cases.length > 0) {
|
|
485
|
-
query.orderBy = [
|
|
486
|
-
{
|
|
487
|
-
expr: {
|
|
488
|
-
type: "case",
|
|
489
|
-
cases
|
|
490
|
-
},
|
|
491
|
-
direction: "desc" // Reverse color map order
|
|
492
|
-
}
|
|
493
|
-
];
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
return query;
|
|
497
|
-
}
|
|
498
|
-
createCss(design, schema) {
|
|
499
|
-
let css = `\
|
|
500
|
-
#layer0 {
|
|
501
|
-
marker-fill-opacity: ` +
|
|
502
|
-
design.fillOpacity +
|
|
503
|
-
`;
|
|
504
|
-
marker-type: ellipse;
|
|
505
|
-
marker-width: [width];
|
|
506
|
-
marker-line-width: 0;
|
|
507
|
-
marker-allow-overlap: true;
|
|
508
|
-
marker-ignore-placement: true;
|
|
509
|
-
marker-fill: ` +
|
|
510
|
-
(design.color || "transparent") +
|
|
511
|
-
`;
|
|
512
|
-
}\
|
|
513
|
-
`;
|
|
514
|
-
// If color axes, add color conditions
|
|
515
|
-
if (design.axes.color != null && design.axes.color.colorMap != null) {
|
|
516
|
-
for (let item of design.axes.color.colorMap) {
|
|
517
|
-
// If invisible
|
|
518
|
-
if ((design.axes.color.excludedValues || []).includes(item.value)) {
|
|
519
|
-
css += `#layer0 [color=${JSON.stringify(item.value)}] { marker-fill-opacity: 0; }\n`;
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
css += `#layer0 [color=${JSON.stringify(item.value)}] { marker-fill: ${item.color}; }\n`;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
return css;
|
|
527
|
-
}
|
|
528
299
|
// Called when the interactivity grid is clicked.
|
|
529
300
|
// arguments:
|
|
530
301
|
// ev: { data: interactivty data e.g. `{ id: 123 }` }
|
|
@@ -686,7 +457,7 @@ marker-fill: ` +
|
|
|
686
457
|
// Get the legend to be optionally displayed on the map. Returns
|
|
687
458
|
// a React element
|
|
688
459
|
getLegend(options) {
|
|
689
|
-
const { design, schema, name, dataSource, locale, filters } = options;
|
|
460
|
+
const { design, schema, name, dataSource, locale, filters, translate } = options;
|
|
690
461
|
const _filters = filters.slice();
|
|
691
462
|
if (design.filter != null) {
|
|
692
463
|
const exprCompiler = new expressions_1.ExprCompiler(schema);
|
|
@@ -696,16 +467,18 @@ marker-fill: ` +
|
|
|
696
467
|
}
|
|
697
468
|
}
|
|
698
469
|
const axisBuilder = new AxisBuilder_1.default({ schema });
|
|
470
|
+
// Clean and translate axis
|
|
471
|
+
const axis = (0, MapUtils_1.translateAxis)(axisBuilder.cleanAxis({
|
|
472
|
+
axis: design.axes.color,
|
|
473
|
+
table: design.table,
|
|
474
|
+
types: ["enum", "text", "boolean", "date"],
|
|
475
|
+
aggrNeed: "none"
|
|
476
|
+
}), translate);
|
|
699
477
|
return react_1.default.createElement(LayerLegendComponent_1.default, {
|
|
700
478
|
schema,
|
|
701
|
-
name,
|
|
479
|
+
name: translate(name),
|
|
702
480
|
filters: lodash_1.default.compact(_filters),
|
|
703
|
-
axis:
|
|
704
|
-
axis: design.axes.color,
|
|
705
|
-
table: design.table,
|
|
706
|
-
types: ["enum", "text", "boolean", "date"],
|
|
707
|
-
aggrNeed: "none"
|
|
708
|
-
}),
|
|
481
|
+
axis: axis,
|
|
709
482
|
radiusLayer: true,
|
|
710
483
|
defaultColor: design.color,
|
|
711
484
|
locale
|
|
@@ -777,6 +550,18 @@ marker-fill: ` +
|
|
|
777
550
|
aggrNeed: "none"
|
|
778
551
|
});
|
|
779
552
|
draft.filter = exprCleaner.cleanExpr(design.filter || null, { table: design.table });
|
|
553
|
+
// Clean hover over expressions
|
|
554
|
+
if (design.table && design.hoverOver && design.hoverOver.items) {
|
|
555
|
+
for (let i = 0; i < design.hoverOver.items.length; i++) {
|
|
556
|
+
const item = design.hoverOver.items[i];
|
|
557
|
+
if (item.value) {
|
|
558
|
+
draft.hoverOver.items[i].value = exprCleaner.cleanExpr(item.value || null, {
|
|
559
|
+
table: design.table,
|
|
560
|
+
aggrStatuses: ["individual", "literal"]
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
780
565
|
});
|
|
781
566
|
return design;
|
|
782
567
|
}
|
|
@@ -815,6 +600,8 @@ marker-fill: ` +
|
|
|
815
600
|
/** Get strings to be translated */
|
|
816
601
|
getTranslatableStrings(design, schema) {
|
|
817
602
|
const strings = [];
|
|
603
|
+
// Add strings from axis category labels and null labels
|
|
604
|
+
strings.push(...(0, MapUtils_1.getTranslatableStringsFromAxis)(design.axes.color));
|
|
818
605
|
// Add strings from hoverOver items
|
|
819
606
|
if (design.hoverOver && design.hoverOver.items) {
|
|
820
607
|
for (const item of design.hoverOver.items) {
|
|
@@ -24,7 +24,7 @@ export default class BufferLayerDesignerComponent extends React.Component<Buffer
|
|
|
24
24
|
renderTable(): React.JSX.Element;
|
|
25
25
|
renderGeometryAxis(): React.JSX.Element | undefined;
|
|
26
26
|
renderRadius(): React.JSX.Element;
|
|
27
|
-
renderUnionShapes(): React.JSX.Element
|
|
27
|
+
renderUnionShapes(): React.JSX.Element;
|
|
28
28
|
renderColor(): React.JSX.Element | undefined;
|
|
29
29
|
renderFillOpacity(): React.JSX.Element;
|
|
30
30
|
renderFilter(): React.JSX.Element | null;
|
|
@@ -38,8 +38,7 @@ const EditPopupComponent_1 = __importDefault(require("./EditPopupComponent"));
|
|
|
38
38
|
const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
|
|
39
39
|
const PopupFilterJoinsUtils = __importStar(require("./PopupFilterJoinsUtils"));
|
|
40
40
|
const bootstrap_1 = require("@mwater/react-library/lib/bootstrap");
|
|
41
|
-
const
|
|
42
|
-
const EditHoverOver_1 = __importDefault(require("./EditHoverOver"));
|
|
41
|
+
const EditHoverOver_1 = require("./EditHoverOver");
|
|
43
42
|
class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
44
43
|
handleTableChange = (table) => {
|
|
45
44
|
this.props.onDesignChange({ ...this.props.design, table });
|
|
@@ -104,10 +103,6 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
104
103
|
react_1.default.createElement(expressions_ui_1.ExprComponent, { schema: this.props.schema, value: radiusExpr, onChange: this.handleRadiusExprChange, dataSource: this.props.dataSource, table: this.props.design.table, types: ["number"] })));
|
|
105
104
|
}
|
|
106
105
|
renderUnionShapes() {
|
|
107
|
-
// Only implemented for vector maps
|
|
108
|
-
if (!(0, vectorMaps_1.areVectorMapsEnabled)()) {
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
106
|
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
112
107
|
react_1.default.createElement(bootstrap_1.Checkbox, { value: this.props.design.unionShapes, onChange: this.handleUnionShapesChange }, T `Combine circles (advanced)`)));
|
|
113
108
|
}
|
|
@@ -164,7 +159,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
|
|
|
164
159
|
if (!this.props.design.table) {
|
|
165
160
|
return null;
|
|
166
161
|
}
|
|
167
|
-
return (react_1.default.createElement(EditHoverOver_1.
|
|
162
|
+
return (react_1.default.createElement(EditHoverOver_1.EditHoverOver, { design: this.props.design, onDesignChange: this.props.onDesignChange, schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, idTable: this.props.design.table, defaultPopupFilterJoins: PopupFilterJoinsUtils.createDefaultPopupFilterJoins(this.props.design.table), aggrStatuses: ["individual", "literal"] }));
|
|
168
163
|
}
|
|
169
164
|
render() {
|
|
170
165
|
return (react_1.default.createElement("div", null,
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
2
|
import Layer, { OnGridClickOptions, OnGridHoverOptions, VectorTileDef, LegendOptions } from "./Layer";
|
|
3
3
|
import { Schema, DataSource } from "@mwater/expressions";
|
|
4
|
-
import {
|
|
4
|
+
import { OnGridClickResults, OnGridHoverResults } from "./maps";
|
|
5
5
|
import { JsonQLFilter } from "../index";
|
|
6
6
|
import ChoroplethLayerDesign from "./ChoroplethLayerDesign";
|
|
7
|
-
import { JsonQLQuery } from "@mwater/jsonql";
|
|
8
7
|
export default class ChoroplethLayer extends Layer<ChoroplethLayerDesign> {
|
|
9
8
|
/** Gets the type of layer definition */
|
|
10
9
|
getLayerDefinitionType(): "VectorTile";
|
|
@@ -12,20 +11,6 @@ export default class ChoroplethLayer extends Layer<ChoroplethLayerDesign> {
|
|
|
12
11
|
createPlainVectorTile(design: ChoroplethLayerDesign, sourceId: string, schema: Schema, filters: JsonQLFilter[], opacity: number): VectorTileDef;
|
|
13
12
|
createIndirectVectorTile(design: ChoroplethLayerDesign, sourceId: string, schema: Schema, filters: JsonQLFilter[], opacity: number): VectorTileDef;
|
|
14
13
|
createDirectVectorTile(design: ChoroplethLayerDesign, sourceId: string, schema: Schema, filters: JsonQLFilter[], opacity: number): VectorTileDef;
|
|
15
|
-
/** Gets the layer definition as JsonQL + CSS in format:
|
|
16
|
-
* {
|
|
17
|
-
* layers: array of { id: layer id, jsonql: jsonql that includes "the_webmercator_geom" as a column }
|
|
18
|
-
* css: carto css
|
|
19
|
-
* interactivity: (optional) { layer: id of layer, fields: array of field names }
|
|
20
|
-
* }
|
|
21
|
-
* arguments:
|
|
22
|
-
* design: design of layer
|
|
23
|
-
* schema: schema to use
|
|
24
|
-
* filters: array of filters to apply
|
|
25
|
-
*/
|
|
26
|
-
getJsonQLCss(design: ChoroplethLayerDesign, schema: Schema, filters: JsonQLFilter[]): LayerDefinition;
|
|
27
|
-
createMapnikJsonQL(design: ChoroplethLayerDesign, schema: Schema, filters: JsonQLFilter[]): JsonQLQuery;
|
|
28
|
-
createCss(design: ChoroplethLayerDesign, schema: Schema, filters: JsonQLFilter[]): string;
|
|
29
14
|
/**
|
|
30
15
|
* Called when the interactivity grid is clicked.
|
|
31
16
|
* arguments:
|