@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
|
@@ -28,10 +28,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const lodash_1 = __importDefault(require("lodash"));
|
|
30
30
|
const react_1 = __importDefault(require("react"));
|
|
31
|
-
const R = react_1.default.createElement;
|
|
32
31
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
33
32
|
const expressions_1 = require("@mwater/expressions");
|
|
34
|
-
const AxisComponent_1 = __importDefault(require("
|
|
33
|
+
const AxisComponent_1 = __importDefault(require("../axes/AxisComponent"));
|
|
35
34
|
const ColorComponent_1 = __importDefault(require("../ColorComponent"));
|
|
36
35
|
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
37
36
|
const EditPopupComponent_1 = __importDefault(require("./EditPopupComponent"));
|
|
@@ -39,66 +38,88 @@ const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
|
|
|
39
38
|
const MarkerSymbolSelectComponent_1 = __importDefault(require("./MarkerSymbolSelectComponent"));
|
|
40
39
|
const PopupFilterJoinsUtils = __importStar(require("./PopupFilterJoinsUtils"));
|
|
41
40
|
const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
|
|
42
|
-
const EditHoverOver_1 =
|
|
41
|
+
const EditHoverOver_1 = require("./EditHoverOver");
|
|
43
42
|
const rc_slider_1 = __importDefault(require("rc-slider"));
|
|
44
|
-
|
|
43
|
+
const immer_1 = require("immer");
|
|
44
|
+
/** Designer for a markers layer */
|
|
45
45
|
class MarkersLayerDesignerComponent extends react_1.default.Component {
|
|
46
|
-
// Apply updates to design
|
|
47
|
-
update(updates) {
|
|
48
|
-
return this.props.onDesignChange(lodash_1.default.extend({}, this.props.design, updates));
|
|
49
|
-
}
|
|
50
|
-
// Update axes with specified changes
|
|
51
|
-
updateAxes(changes) {
|
|
52
|
-
const axes = lodash_1.default.extend({}, this.props.design.axes, changes);
|
|
53
|
-
return this.update({ axes });
|
|
54
|
-
}
|
|
55
46
|
handleTableChange = (table) => {
|
|
56
|
-
|
|
47
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
48
|
+
draft.table = table;
|
|
49
|
+
}));
|
|
57
50
|
};
|
|
58
51
|
handleGeometryAxisChange = (axis) => {
|
|
59
|
-
|
|
52
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
53
|
+
draft.axes.geometry = axis;
|
|
54
|
+
}));
|
|
60
55
|
};
|
|
61
56
|
handleColorAxisChange = (axis) => {
|
|
62
|
-
|
|
57
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
58
|
+
draft.axes.color = axis ?? undefined;
|
|
59
|
+
}));
|
|
63
60
|
};
|
|
64
61
|
handleFilterChange = (expr) => {
|
|
65
|
-
|
|
62
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
63
|
+
draft.filter = expr;
|
|
64
|
+
}));
|
|
66
65
|
};
|
|
67
66
|
handleColorChange = (color) => {
|
|
68
|
-
|
|
67
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
68
|
+
draft.color = color;
|
|
69
|
+
}));
|
|
69
70
|
};
|
|
70
71
|
handlePolygonBorderColorChange = (polygonBorderColor) => {
|
|
71
|
-
|
|
72
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
73
|
+
draft.polygonBorderColor = polygonBorderColor;
|
|
74
|
+
}));
|
|
72
75
|
};
|
|
73
76
|
handlePolygonFillOpacityChange = (polygonFillOpacity) => {
|
|
74
|
-
|
|
77
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
78
|
+
draft.polygonFillOpacity = polygonFillOpacity / 100;
|
|
79
|
+
}));
|
|
75
80
|
};
|
|
76
81
|
handleSymbolChange = (symbol) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return this.update({ name: e.target.value });
|
|
82
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
83
|
+
draft.symbol = symbol;
|
|
84
|
+
}));
|
|
81
85
|
};
|
|
82
86
|
handleMarkerSizeChange = (markerSize) => {
|
|
83
|
-
|
|
87
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
88
|
+
draft.markerSize = markerSize;
|
|
89
|
+
}));
|
|
84
90
|
};
|
|
85
91
|
handleLineWidthChange = (lineWidth) => {
|
|
86
|
-
|
|
92
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
93
|
+
draft.lineWidth = lineWidth;
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
handleLabelAxisChange = (axis) => {
|
|
97
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
98
|
+
draft.axes.label = axis ?? undefined;
|
|
99
|
+
}));
|
|
100
|
+
};
|
|
101
|
+
handleLabelPositionChange = (labelPosition) => {
|
|
102
|
+
this.props.onDesignChange((0, immer_1.produce)(this.props.design, draft => {
|
|
103
|
+
draft.labelPosition = labelPosition;
|
|
104
|
+
}));
|
|
87
105
|
};
|
|
88
106
|
renderTable() {
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
107
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
108
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
109
|
+
react_1.default.createElement("i", { className: "fa fa-database" }),
|
|
110
|
+
" ",
|
|
111
|
+
T `Data Source`),
|
|
112
|
+
react_1.default.createElement("div", { style: { marginLeft: 10 } },
|
|
113
|
+
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 }))));
|
|
96
114
|
}
|
|
97
115
|
renderGeometryAxis() {
|
|
98
116
|
if (!this.props.design.table) {
|
|
99
117
|
return;
|
|
100
118
|
}
|
|
101
|
-
const title =
|
|
119
|
+
const title = react_1.default.createElement("span", null,
|
|
120
|
+
react_1.default.createElement("span", { className: "fas fa-map-marker-alt" }),
|
|
121
|
+
" ",
|
|
122
|
+
T `Location`);
|
|
102
123
|
const filters = lodash_1.default.clone(this.props.filters) || [];
|
|
103
124
|
if (this.props.design.filter != null) {
|
|
104
125
|
const exprCompiler = new expressions_1.ExprCompiler(this.props.schema);
|
|
@@ -107,16 +128,10 @@ class MarkersLayerDesignerComponent extends react_1.default.Component {
|
|
|
107
128
|
filters.push({ table: this.props.design.filter.table, jsonql });
|
|
108
129
|
}
|
|
109
130
|
}
|
|
110
|
-
return
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
types: ["geometry"],
|
|
115
|
-
aggrNeed: "none",
|
|
116
|
-
value: this.props.design.axes.geometry,
|
|
117
|
-
onChange: this.handleGeometryAxisChange,
|
|
118
|
-
filters
|
|
119
|
-
})));
|
|
131
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
132
|
+
react_1.default.createElement("label", { className: "text-muted" }, title),
|
|
133
|
+
react_1.default.createElement("div", { style: { marginLeft: 10 } },
|
|
134
|
+
react_1.default.createElement(AxisComponent_1.default, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, types: ["geometry"], aggrNeed: "none", value: this.props.design.axes.geometry, onChange: this.handleGeometryAxisChange, filters: filters }))));
|
|
120
135
|
}
|
|
121
136
|
renderColor() {
|
|
122
137
|
if (!this.props.design.axes.geometry) {
|
|
@@ -130,140 +145,149 @@ class MarkersLayerDesignerComponent extends react_1.default.Component {
|
|
|
130
145
|
filters.push({ table: this.props.design.filter.table, jsonql });
|
|
131
146
|
}
|
|
132
147
|
}
|
|
133
|
-
return
|
|
134
|
-
?
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
defaultColor: this.props.design.color,
|
|
146
|
-
showColorMap: true,
|
|
147
|
-
onChange: this.handleColorAxisChange,
|
|
148
|
-
allowExcludedValues: true,
|
|
149
|
-
filters
|
|
150
|
-
})));
|
|
148
|
+
return (react_1.default.createElement("div", null,
|
|
149
|
+
!this.props.design.axes.color ? (react_1.default.createElement("div", { className: "mb-3" },
|
|
150
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
151
|
+
react_1.default.createElement("span", { className: "fas fa-tint" }),
|
|
152
|
+
T `Color`),
|
|
153
|
+
react_1.default.createElement("div", null,
|
|
154
|
+
react_1.default.createElement(ColorComponent_1.default, { color: this.props.design.color, onChange: this.handleColorChange })))) : undefined,
|
|
155
|
+
react_1.default.createElement("div", { className: "mb-3" },
|
|
156
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
157
|
+
react_1.default.createElement("span", { className: "fas fa-tint" }),
|
|
158
|
+
T `Color By Data`),
|
|
159
|
+
react_1.default.createElement(AxisComponent_1.default, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, types: ["text", "enum", "boolean", "date"], aggrNeed: "none", value: this.props.design.axes.color, defaultColor: this.props.design.color, showColorMap: true, onChange: this.handleColorAxisChange, allowExcludedValues: true, filters: filters }))));
|
|
151
160
|
}
|
|
152
161
|
renderSymbol() {
|
|
153
162
|
if (!this.props.design.axes.geometry) {
|
|
154
163
|
return;
|
|
155
164
|
}
|
|
156
|
-
return
|
|
165
|
+
return react_1.default.createElement(MarkerSymbolSelectComponent_1.default, { symbol: this.props.design.symbol, onChange: this.handleSymbolChange });
|
|
157
166
|
}
|
|
158
167
|
renderMarkerSize() {
|
|
159
168
|
if (!this.props.design.axes.geometry) {
|
|
160
169
|
return;
|
|
161
170
|
}
|
|
162
|
-
return
|
|
163
|
-
|
|
164
|
-
options: [
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
onChange: this.handleMarkerSizeChange
|
|
172
|
-
}));
|
|
171
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
172
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Marker Size`),
|
|
173
|
+
react_1.default.createElement(ui.Select, { value: this.props.design.markerSize || 10, options: [
|
|
174
|
+
{ value: 5, label: T `Extra small` },
|
|
175
|
+
{ value: 8, label: T `Small` },
|
|
176
|
+
{ value: 10, label: T `Normal` },
|
|
177
|
+
{ value: 13, label: T `Large` },
|
|
178
|
+
{ value: 16, label: T `Extra large` }
|
|
179
|
+
], onChange: this.handleMarkerSizeChange })));
|
|
173
180
|
}
|
|
174
181
|
renderLineWidth() {
|
|
175
182
|
if (!this.props.design.axes.geometry) {
|
|
176
183
|
return;
|
|
177
184
|
}
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
options: [
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
onChange: this.handleLineWidthChange
|
|
190
|
-
}));
|
|
185
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
186
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Line Width (for shapes)`),
|
|
187
|
+
react_1.default.createElement(ui.Select, { value: this.props.design.lineWidth != null ? this.props.design.lineWidth : 3, options: [
|
|
188
|
+
{ value: 0, label: T `None` },
|
|
189
|
+
{ value: 1, label: T `1 pixel` },
|
|
190
|
+
{ value: 2, label: T `2 pixels` },
|
|
191
|
+
{ value: 3, label: T `3 pixels` },
|
|
192
|
+
{ value: 4, label: T `4 pixels` },
|
|
193
|
+
{ value: 5, label: T `5 pixels` },
|
|
194
|
+
{ value: 6, label: T `6 pixels` }
|
|
195
|
+
], onChange: this.handleLineWidthChange })));
|
|
191
196
|
}
|
|
192
197
|
renderPolygonBorderColor() {
|
|
193
198
|
if (!this.props.design.axes.geometry) {
|
|
194
199
|
return;
|
|
195
200
|
}
|
|
196
|
-
return
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
201
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
202
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Polygon border color (blank for same as fill color)`),
|
|
203
|
+
react_1.default.createElement("div", null,
|
|
204
|
+
react_1.default.createElement(ColorComponent_1.default, { color: this.props.design.polygonBorderColor, onChange: this.handlePolygonBorderColorChange }))));
|
|
200
205
|
}
|
|
201
206
|
renderPolygonFillOpacity() {
|
|
202
207
|
if (!this.props.design.axes.geometry) {
|
|
203
208
|
return;
|
|
204
209
|
}
|
|
205
210
|
const opacity = this.props.design.polygonFillOpacity != null ? this.props.design.polygonFillOpacity : 0.25;
|
|
206
|
-
return
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
value: opacity * 100,
|
|
212
|
-
onChange: this.handlePolygonFillOpacityChange
|
|
213
|
-
})));
|
|
211
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
212
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
213
|
+
react_1.default.createElement("span", null, T `Polygon Fill Opacity: ${Math.round(opacity * 100)}%`)),
|
|
214
|
+
react_1.default.createElement("div", { style: { padding: "10px" } },
|
|
215
|
+
react_1.default.createElement(rc_slider_1.default, { min: 0, max: 100, step: 1, tipTransitionName: "rc-slider-tooltip-zoom-down", value: opacity * 100, onChange: this.handlePolygonFillOpacityChange }))));
|
|
214
216
|
}
|
|
215
217
|
renderFilter() {
|
|
216
218
|
// If no data, hide
|
|
217
219
|
if (!this.props.design.axes.geometry) {
|
|
218
220
|
return null;
|
|
219
221
|
}
|
|
220
|
-
return
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
222
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
223
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
224
|
+
react_1.default.createElement("span", { className: "fas fa-filter" }),
|
|
225
|
+
T `Filters`),
|
|
226
|
+
react_1.default.createElement("div", { style: { marginLeft: 8 } },
|
|
227
|
+
react_1.default.createElement(expressions_ui_1.FilterExprComponent, { schema: this.props.schema, dataSource: this.props.dataSource, onChange: this.handleFilterChange, table: this.props.design.table, value: this.props.design.filter }))));
|
|
228
|
+
}
|
|
229
|
+
renderLabelAxis() {
|
|
230
|
+
if (!this.props.design.axes.geometry) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const filters = lodash_1.default.clone(this.props.filters) || [];
|
|
234
|
+
if (this.props.design.filter != null) {
|
|
235
|
+
const exprCompiler = new expressions_1.ExprCompiler(this.props.schema);
|
|
236
|
+
const jsonql = exprCompiler.compileExpr({ expr: this.props.design.filter, tableAlias: "{alias}" });
|
|
237
|
+
if (jsonql) {
|
|
238
|
+
filters.push({ table: this.props.design.filter.table, jsonql });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
242
|
+
react_1.default.createElement("label", { className: "text-muted" },
|
|
243
|
+
react_1.default.createElement("span", { className: "fas fa-tag" }),
|
|
244
|
+
" ",
|
|
245
|
+
T `Label (points only)`),
|
|
246
|
+
react_1.default.createElement(AxisComponent_1.default, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, types: ["text", "number"], aggrNeed: "none", value: this.props.design.axes.label, onChange: this.handleLabelAxisChange, filters: filters })));
|
|
247
|
+
}
|
|
248
|
+
renderLabelPosition() {
|
|
249
|
+
// Only show if label axis is set
|
|
250
|
+
if (!this.props.design.axes.label) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
return (react_1.default.createElement("div", { className: "mb-3" },
|
|
254
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Label Position`),
|
|
255
|
+
react_1.default.createElement(ui.Select, { value: this.props.design.labelPosition || "bottom", options: [
|
|
256
|
+
{ value: "top", label: T `Top` },
|
|
257
|
+
{ value: "bottom", label: T `Bottom` },
|
|
258
|
+
{ value: "left", label: T `Left` },
|
|
259
|
+
{ value: "right", label: T `Right` }
|
|
260
|
+
], onChange: this.handleLabelPositionChange })));
|
|
227
261
|
}
|
|
228
262
|
renderPopup() {
|
|
229
263
|
if (!this.props.design.table) {
|
|
230
264
|
return null;
|
|
231
265
|
}
|
|
232
|
-
return
|
|
233
|
-
design: this.props.design,
|
|
234
|
-
onDesignChange: this.props.onDesignChange,
|
|
235
|
-
schema: this.props.schema,
|
|
236
|
-
dataSource: this.props.dataSource,
|
|
237
|
-
table: this.props.design.table,
|
|
238
|
-
idTable: this.props.design.table,
|
|
239
|
-
defaultPopupFilterJoins: PopupFilterJoinsUtils.createDefaultPopupFilterJoins(this.props.design.table)
|
|
240
|
-
});
|
|
266
|
+
return (react_1.default.createElement(EditPopupComponent_1.default, { 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) }));
|
|
241
267
|
}
|
|
242
268
|
renderHoverOver() {
|
|
243
269
|
if (!this.props.design.table) {
|
|
244
270
|
return null;
|
|
245
271
|
}
|
|
246
|
-
return
|
|
247
|
-
design: this.props.design,
|
|
248
|
-
onDesignChange: this.props.onDesignChange,
|
|
249
|
-
schema: this.props.schema,
|
|
250
|
-
dataSource: this.props.dataSource,
|
|
251
|
-
table: this.props.design.table,
|
|
252
|
-
idTable: this.props.design.table,
|
|
253
|
-
defaultPopupFilterJoins: PopupFilterJoinsUtils.createDefaultPopupFilterJoins(this.props.design.table)
|
|
254
|
-
});
|
|
272
|
+
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"] }));
|
|
255
273
|
}
|
|
256
274
|
render() {
|
|
257
|
-
return
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
this.
|
|
262
|
-
this.
|
|
263
|
-
this.
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
275
|
+
return (react_1.default.createElement("div", null,
|
|
276
|
+
this.renderTable(),
|
|
277
|
+
this.renderGeometryAxis(),
|
|
278
|
+
this.renderColor(),
|
|
279
|
+
this.renderSymbol(),
|
|
280
|
+
this.renderMarkerSize(),
|
|
281
|
+
this.renderLabelAxis(),
|
|
282
|
+
this.renderLabelPosition(),
|
|
283
|
+
react_1.default.createElement(ui.CollapsibleSection, { label: T `Shape Options`, labelMuted: true },
|
|
284
|
+
this.renderLineWidth(),
|
|
285
|
+
this.renderPolygonBorderColor(),
|
|
286
|
+
this.renderPolygonFillOpacity()),
|
|
287
|
+
this.renderFilter(),
|
|
288
|
+
this.renderPopup(),
|
|
289
|
+
this.renderHoverOver(),
|
|
290
|
+
this.props.design.table ? (react_1.default.createElement(ZoomLevelsComponent_1.default, { design: this.props.design, onDesignChange: this.props.onDesignChange })) : undefined));
|
|
267
291
|
}
|
|
268
292
|
}
|
|
269
293
|
exports.default = MarkersLayerDesignerComponent;
|
|
@@ -43,7 +43,6 @@ declare class ServerLayerDataSource implements MapLayerDataSource {
|
|
|
43
43
|
options: ServerMapLayerDataSourceOptions;
|
|
44
44
|
constructor(options: ServerMapLayerDataSourceOptions);
|
|
45
45
|
getTileUrl(design: any, filters: JsonQLFilter[]): any;
|
|
46
|
-
getUtfGridUrl(design: any, filters: JsonQLFilter[]): string | null;
|
|
47
46
|
/** Get the url for vector tile source with an expiry time. Only for layers of type "VectorTile"
|
|
48
47
|
* @param createdAfter ISO 8601 timestamp requiring that tile source on server is created after specified datetime
|
|
49
48
|
*/
|
|
@@ -76,21 +76,6 @@ class ServerLayerDataSource {
|
|
|
76
76
|
}
|
|
77
77
|
return this.createUrl(filters, "png");
|
|
78
78
|
}
|
|
79
|
-
// Get the url for the interactivity tiles with the specified filters applied
|
|
80
|
-
// Called with (design, filters) where design is the design of the layer and filters are filters to apply. Returns URL
|
|
81
|
-
getUtfGridUrl(design, filters) {
|
|
82
|
-
// Handle special cases
|
|
83
|
-
if (this.options.layerView.type === "MWaterServer") {
|
|
84
|
-
return this.createLegacyUrl(design, "grid.json", filters);
|
|
85
|
-
}
|
|
86
|
-
// Create layer
|
|
87
|
-
const layer = LayerFactory_1.default.createLayer(this.options.layerView.type);
|
|
88
|
-
// If layer has tiles url directly available
|
|
89
|
-
if (layer.getLayerDefinitionType() === "TileUrl") {
|
|
90
|
-
return layer.getUtfGridUrl(this.options.layerView.design, filters);
|
|
91
|
-
}
|
|
92
|
-
return this.createUrl(filters, "grid.json");
|
|
93
|
-
}
|
|
94
79
|
/** Get the url for vector tile source with an expiry time. Only for layers of type "VectorTile"
|
|
95
80
|
* @param createdAfter ISO 8601 timestamp requiring that tile source on server is created after specified datetime
|
|
96
81
|
*/
|
|
@@ -144,22 +129,12 @@ class ServerLayerDataSource {
|
|
|
144
129
|
rev: this.options.rev
|
|
145
130
|
};
|
|
146
131
|
let url = `${this.options.apiUrl}maps/tiles/{z}/{x}/{y}.${extension}?` + querystring_1.default.stringify(query);
|
|
147
|
-
// Add subdomains: {s} will be substituted with "a", "b" or "c" in leaflet for api.mwater.co only.
|
|
148
|
-
// Used to speed queries
|
|
149
|
-
if (url.match(/^https:\/\/api\.mwater\.co\//)) {
|
|
150
|
-
url = url.replace(/^https:\/\/api\.mwater\.co\//, "https://{s}-api.mwater.co/");
|
|
151
|
-
}
|
|
152
132
|
return url;
|
|
153
133
|
}
|
|
154
134
|
// Create query string
|
|
155
135
|
createLegacyUrl(design, extension, filters) {
|
|
156
136
|
let where;
|
|
157
137
|
let url = `${this.options.apiUrl}maps/tiles/{z}/{x}/{y}.${extension}?type=${design.type}&radius=1000`;
|
|
158
|
-
// Add subdomains: {s} will be substituted with "a", "b" or "c" in leaflet for api.mwater.co only.
|
|
159
|
-
// Used to speed queries
|
|
160
|
-
if (url.match(/^https:\/\/api\.mwater\.co\//)) {
|
|
161
|
-
url = url.replace(/^https:\/\/api\.mwater\.co\//, "https://{s}-api.mwater.co/");
|
|
162
|
-
}
|
|
163
138
|
if (this.options.client) {
|
|
164
139
|
url += `&client=${this.options.client}`;
|
|
165
140
|
}
|
|
@@ -37,8 +37,6 @@ export default class SwitchableTileUrlLayer extends Layer<SwitchableTileUrlLayer
|
|
|
37
37
|
getMaxZoom(design: SwitchableTileUrlLayerDesign): number;
|
|
38
38
|
/** Gets the tile url for definition type "TileUrl" */
|
|
39
39
|
getTileUrl(design: SwitchableTileUrlLayerDesign, filters: JsonQLFilter[]): string | null;
|
|
40
|
-
/** Gets the utf grid url for definition type "TileUrl" */
|
|
41
|
-
getUtfGridUrl(design: SwitchableTileUrlLayerDesign, filters: JsonQLFilter[]): string | null;
|
|
42
40
|
getLegend(options: LegendOptions<SwitchableTileUrlLayerDesign>): ReactNode;
|
|
43
41
|
/** True if layer can be edited */
|
|
44
42
|
isEditable(): boolean;
|
|
@@ -26,15 +26,6 @@ class SwitchableTileUrlLayer extends Layer_1.default {
|
|
|
26
26
|
}
|
|
27
27
|
return option.tileUrl || null;
|
|
28
28
|
}
|
|
29
|
-
/** Gets the utf grid url for definition type "TileUrl" */
|
|
30
|
-
getUtfGridUrl(design, filters) {
|
|
31
|
-
// Find active option
|
|
32
|
-
const option = design.options.find((d) => d.id === design.activeOption);
|
|
33
|
-
if (!option) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
return option.utfGridUrl || null;
|
|
37
|
-
}
|
|
38
29
|
getLegend(options) {
|
|
39
30
|
const { design, name } = options;
|
|
40
31
|
// Find active option
|
|
@@ -16,7 +16,6 @@ export interface TileUrlLayerDesign {
|
|
|
16
16
|
export default class TileUrlLayer extends Layer<TileUrlLayerDesign> {
|
|
17
17
|
getLayerDefinitionType(): "TileUrl";
|
|
18
18
|
getTileUrl(design: any, filters: any): any;
|
|
19
|
-
getUtfGridUrl(design: any, filters: any): null;
|
|
20
19
|
getMinZoom(design: any): any;
|
|
21
20
|
getMaxZoom(design: any): any;
|
|
22
21
|
isEditable(): boolean;
|
package/lib/maps/TileUrlLayer.js
CHANGED
|
@@ -18,7 +18,6 @@ Design is:
|
|
|
18
18
|
legendUrl:
|
|
19
19
|
*/
|
|
20
20
|
class TileUrlLayer extends Layer_1.default {
|
|
21
|
-
// Gets the type of layer definition ("JsonQLCss"/"TileUrl")
|
|
22
21
|
getLayerDefinitionType() {
|
|
23
22
|
return "TileUrl";
|
|
24
23
|
}
|
|
@@ -26,10 +25,6 @@ class TileUrlLayer extends Layer_1.default {
|
|
|
26
25
|
getTileUrl(design, filters) {
|
|
27
26
|
return design.tileUrl;
|
|
28
27
|
}
|
|
29
|
-
// Gets the utf grid url for definition type "TileUrl"
|
|
30
|
-
getUtfGridUrl(design, filters) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
28
|
// Get min and max zoom levels
|
|
34
29
|
getMinZoom(design) {
|
|
35
30
|
return design.minZoom;
|
|
@@ -67,7 +67,18 @@ function VectorMapViewComponent(props) {
|
|
|
67
67
|
// Locale to use
|
|
68
68
|
const locale = props.locale || props.design.locale || "en";
|
|
69
69
|
// Translate function to use
|
|
70
|
-
const translate =
|
|
70
|
+
const translate = (0, react_1.useCallback)((input) => {
|
|
71
|
+
// Use passed in translate function if present
|
|
72
|
+
if (props.translate) {
|
|
73
|
+
return props.translate(input);
|
|
74
|
+
}
|
|
75
|
+
// If locale is the same as the design locale, don't translate
|
|
76
|
+
if (locale === props.design.locale) {
|
|
77
|
+
return input;
|
|
78
|
+
}
|
|
79
|
+
// Otherwise, use translation from design
|
|
80
|
+
return props.design.translations?.[locale]?.[input] ?? input;
|
|
81
|
+
}, [props.translate, props.design.translations, props.design.locale, locale]);
|
|
71
82
|
// Last feature that mouse entered
|
|
72
83
|
const lastFeature = (0, react_2.useRef)();
|
|
73
84
|
// Load map
|
|
@@ -230,17 +241,9 @@ function VectorMapViewComponent(props) {
|
|
|
230
241
|
else {
|
|
231
242
|
const tileUrl = props.mapDataSource.getLayerDataSource(layerView.id).getTileUrl(design, []);
|
|
232
243
|
if (tileUrl) {
|
|
233
|
-
// Replace "{s}" with "a", "b", "c"
|
|
234
|
-
let tiles = [];
|
|
235
|
-
if (tileUrl.includes("{s}")) {
|
|
236
|
-
tiles = [tileUrl.replace("{s}", "a"), tileUrl.replace("{s}", "b"), tileUrl.replace("{s}", "c")];
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
tiles = [tileUrl];
|
|
240
|
-
}
|
|
241
244
|
newSources[layerView.id] = {
|
|
242
245
|
type: "raster",
|
|
243
|
-
tiles,
|
|
246
|
+
tiles: [tileUrl],
|
|
244
247
|
tileSize: 256
|
|
245
248
|
};
|
|
246
249
|
newLayers.push({
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|