@opengeoweb/sigmet-airmet 19.2.0 → 19.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/dist/index.esm.js +89 -26
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -6,8 +6,8 @@ import { Grid, Typography, FormControlLabel, Radio, Box, Checkbox, MenuItem, For
|
|
|
6
6
|
import { useFormContext } from 'react-hook-form';
|
|
7
7
|
import { FORM_FIELDS_NAMESPACE, useDraftFormHelpers, ReactHookFormRadioGroup, hasValidGeometry, ReactHookFormSelect, ReactHookFormNumberField, isInteger, isValidMin, isValidMax, isEmpty, ReactHookFormDateTime, countIntersectionPoints, hasMulitpleIntersections, ReactHookFormHiddenInput, hasIntersectionWithFIR, isValidGeoJsonCoordinates, isMaximumOneDrawing, isXHoursBefore, isXHoursAfter, ReactHookFormTextField, DegreesMinutesField, isLatitude, isNonOrBothCoordinates, isLongitude, ReactHookFormFormControl, isGeometryDirty, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
8
8
|
import { useSelector, useDispatch, shallowEqual } from 'react-redux';
|
|
9
|
-
import { uiSelectors, uiTypes,
|
|
10
|
-
import { FEATURE_DRAW_SECONDARY_FILL_COLOR, FEATURE_DRAW_SECONDARY_STROKE_COLOR, defaultIntersectionStyleProperties, defaultGeoJSONStyleProperties, addSelectionTypeToGeoJSON, DRAWMODE, defaultLocation, addGeoJSONProperties, defaultBox, defaultPolygon, defaultDelete, getIcon,
|
|
9
|
+
import { uiSelectors, uiTypes, useUpdateFeatureSyncLayers, mapSelectors, syncGroupsActions, layerActions, mapActions, defaultLayers, syncConstants, uiActions, layerUtils, genericSelectors, drawingToolActions } from '@opengeoweb/store';
|
|
10
|
+
import { FEATURE_DRAW_SECONDARY_FILL_COLOR, FEATURE_DRAW_SECONDARY_STROKE_COLOR, defaultIntersectionStyleProperties, defaultGeoJSONStyleProperties, addSelectionTypeToGeoJSON, DRAWMODE, defaultLocation, addGeoJSONProperties, defaultBox, defaultPolygon, defaultDelete, getIcon, OpenLayersFeatureLayer, genericOpenLayersFeatureStyle, OpenLayersMapDraw, useMapDrawTool, addFeatureProperties, rewindGeometry } from '@opengeoweb/webmap-react';
|
|
11
11
|
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
12
12
|
import { getHeaders, handleResponse, useAuthenticationContext, useAuthQuery } from '@opengeoweb/api';
|
|
13
13
|
import i18n from 'i18next';
|
|
@@ -5530,32 +5530,23 @@ var getToolIcon = function getToolIcon(selectionType) {
|
|
|
5530
5530
|
}
|
|
5531
5531
|
return jsx(DrawFIRLand, {});
|
|
5532
5532
|
};
|
|
5533
|
+
var LINKED_FORM_LAYER_IDS = new Set(['geojsonlayer-fir', 'geojsonlayer-intersection-start', 'geojsonlayer-intersection-end']);
|
|
5533
5534
|
var useFormLayers = function useFormLayers(layers) {
|
|
5534
|
-
var formLayers = layers.map(function (layer) {
|
|
5535
|
-
if (layer.isInEditMode) {
|
|
5536
|
-
var geojson = addFeatureProperties(layer.geojson, {
|
|
5537
|
-
inEditMode: true
|
|
5538
|
-
});
|
|
5539
|
-
return {
|
|
5540
|
-
id: layer.id,
|
|
5541
|
-
geoJSON: geojson
|
|
5542
|
-
};
|
|
5543
|
-
}
|
|
5544
|
-
return {
|
|
5545
|
-
id: layer.id,
|
|
5546
|
-
geoJSON: layer.geojson
|
|
5547
|
-
};
|
|
5548
|
-
}).filter(function (layer) {
|
|
5549
|
-
return layer.geoJSON !== undefined && layer.geoJSON !== null;
|
|
5550
|
-
});
|
|
5551
5535
|
var sourcePanelId = useSelector(function (store) {
|
|
5552
5536
|
return uiSelectors.getSourcePanelId(store, uiTypes.DialogTypes.PublicWarnings);
|
|
5553
5537
|
});
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5538
|
+
var linkedFormLayersById = React.useMemo(function () {
|
|
5539
|
+
return layers.reduce(function (layersById, layer) {
|
|
5540
|
+
var _Object$assign4;
|
|
5541
|
+
if (!layer.id || !layer.geojson || !LINKED_FORM_LAYER_IDS.has(layer.id)) {
|
|
5542
|
+
return layersById;
|
|
5543
|
+
}
|
|
5544
|
+
return Object.assign({}, layersById, (_Object$assign4 = {}, _Object$assign4[layer.id] = {
|
|
5545
|
+
geojson: layer.geojson
|
|
5546
|
+
}, _Object$assign4));
|
|
5547
|
+
}, {});
|
|
5548
|
+
}, [layers]);
|
|
5549
|
+
useUpdateFeatureSyncLayers(linkedFormLayersById, sourcePanelId);
|
|
5559
5550
|
};
|
|
5560
5551
|
var getSequenceStyling = function getSequenceStyling(product, hasTac) {
|
|
5561
5552
|
if (hasTac === void 0) {
|
|
@@ -8473,6 +8464,10 @@ var useGeoJSONHandling = function useGeoJSONHandling(_ref) {
|
|
|
8473
8464
|
var linkedMaps = useSelector(function (store) {
|
|
8474
8465
|
return genericSelectors.getLinkedMapIds(store, sourcePanelId);
|
|
8475
8466
|
});
|
|
8467
|
+
var layersById = useSelector(function (state) {
|
|
8468
|
+
var _state$layers;
|
|
8469
|
+
return ((_state$layers = state.layers) == null ? void 0 : _state$layers.byId) || {};
|
|
8470
|
+
});
|
|
8476
8471
|
var drawToolsDisabled = warningsDialogOpen ? linkedMaps.length === 0 : false;
|
|
8477
8472
|
var reduxActiveStart = useSelector(function (state) {
|
|
8478
8473
|
var _state$drawingtools;
|
|
@@ -8488,6 +8483,7 @@ var useGeoJSONHandling = function useGeoJSONHandling(_ref) {
|
|
|
8488
8483
|
start: undefined,
|
|
8489
8484
|
end: undefined
|
|
8490
8485
|
});
|
|
8486
|
+
var linkedMapsRef = useRef(linkedMaps);
|
|
8491
8487
|
var registeredToolsRef = useRef({
|
|
8492
8488
|
start: new Set(),
|
|
8493
8489
|
end: new Set()
|
|
@@ -8522,6 +8518,71 @@ var useGeoJSONHandling = function useGeoJSONHandling(_ref) {
|
|
|
8522
8518
|
handleToolDeactivation(prevActiveToolRef.current.end, activeEndDrawTool, storedEndGeoJSON, endGeoJSON, deactivateEndTool || function () {}, updateEndGeoJson || function () {});
|
|
8523
8519
|
prevActiveToolRef.current.end = activeEndDrawTool;
|
|
8524
8520
|
}, [activeEndDrawTool, storedEndGeoJSON, deactivateEndTool, updateEndGeoJson, endGeoJSON]);
|
|
8521
|
+
useEffect(function () {
|
|
8522
|
+
var removedMapIds = linkedMapsRef.current.filter(function (mapId) {
|
|
8523
|
+
return !linkedMaps.includes(mapId);
|
|
8524
|
+
});
|
|
8525
|
+
removedMapIds.forEach(function (mapId) {
|
|
8526
|
+
registeredToolsRef.current.start["delete"](mapId);
|
|
8527
|
+
registeredToolsRef.current.end["delete"](mapId);
|
|
8528
|
+
});
|
|
8529
|
+
linkedMapsRef.current = linkedMaps;
|
|
8530
|
+
}, [linkedMaps]);
|
|
8531
|
+
var ensureActiveToolLayers = useCallback(function (type, activeTool, geoJSON, fallbackGeoJSON, editModes) {
|
|
8532
|
+
if (!activeTool || linkedMaps.length === 0) {
|
|
8533
|
+
return;
|
|
8534
|
+
}
|
|
8535
|
+
var drawToolId = "sigmet" + (type === 'start' ? 'Start' : 'End') + "Geometry";
|
|
8536
|
+
var toolKey = type === 'start' ? 'start' : 'end';
|
|
8537
|
+
var geoJSONToUse = geoJSON && geoJSON.features.length > 0 ? geoJSON : fallbackGeoJSON;
|
|
8538
|
+
linkedMaps.forEach(function (mapId) {
|
|
8539
|
+
var geometryLayerId = "drawLayer-" + drawToolId + "-" + mapId;
|
|
8540
|
+
if (!registeredToolsRef.current[toolKey].has(mapId) || !layersById[geometryLayerId]) {
|
|
8541
|
+
dispatch(layerActions.addLayer({
|
|
8542
|
+
mapId: mapId,
|
|
8543
|
+
layer: {
|
|
8544
|
+
geojson: geoJSONToUse || {
|
|
8545
|
+
type: 'FeatureCollection',
|
|
8546
|
+
features: []
|
|
8547
|
+
},
|
|
8548
|
+
layerType: LayerType.featureLayer
|
|
8549
|
+
},
|
|
8550
|
+
layerId: geometryLayerId,
|
|
8551
|
+
origin: 'PublicWarningsForm'
|
|
8552
|
+
}));
|
|
8553
|
+
registeredToolsRef.current[toolKey].add(mapId);
|
|
8554
|
+
}
|
|
8555
|
+
});
|
|
8556
|
+
var activeMapId = linkedMaps[linkedMaps.length - 1];
|
|
8557
|
+
if (!activeMapId) {
|
|
8558
|
+
return;
|
|
8559
|
+
}
|
|
8560
|
+
var activeLayerId = "drawLayer-" + drawToolId + "-" + activeMapId;
|
|
8561
|
+
dispatch(drawingToolActions.registerDrawTool({
|
|
8562
|
+
drawToolId: drawToolId,
|
|
8563
|
+
defaultDrawModes: editModes
|
|
8564
|
+
}));
|
|
8565
|
+
dispatch(drawingToolActions.updateGeoJSONLayerId({
|
|
8566
|
+
drawToolId: drawToolId,
|
|
8567
|
+
geoJSONLayerId: activeLayerId
|
|
8568
|
+
}));
|
|
8569
|
+
var activeDrawMode = editModes == null ? void 0 : editModes.find(function (drawMode) {
|
|
8570
|
+
return drawMode.drawModeId === activeTool;
|
|
8571
|
+
});
|
|
8572
|
+
if (activeDrawMode != null && activeDrawMode.isSelectable) {
|
|
8573
|
+
dispatch(layerActions.toggleFeatureMode({
|
|
8574
|
+
layerId: activeLayerId,
|
|
8575
|
+
isInEditMode: true,
|
|
8576
|
+
drawMode: activeDrawMode.value
|
|
8577
|
+
}));
|
|
8578
|
+
}
|
|
8579
|
+
}, [dispatch, layersById, linkedMaps]);
|
|
8580
|
+
useEffect(function () {
|
|
8581
|
+
ensureActiveToolLayers('start', activeStartDrawTool, storedGeoJSON, startGeoJSON, startEditModes);
|
|
8582
|
+
}, [activeStartDrawTool, ensureActiveToolLayers, startEditModes, startGeoJSON, storedGeoJSON]);
|
|
8583
|
+
useEffect(function () {
|
|
8584
|
+
ensureActiveToolLayers('end', activeEndDrawTool, storedEndGeoJSON, endGeoJSON, endEditModes);
|
|
8585
|
+
}, [activeEndDrawTool, endEditModes, endGeoJSON, ensureActiveToolLayers, storedEndGeoJSON]);
|
|
8525
8586
|
var onChangeTool = useCallback(function (type, newTool, deactivateOtherTool, changeActiveTool, editModes) {
|
|
8526
8587
|
deactivateOtherTool();
|
|
8527
8588
|
changeActiveTool(newTool);
|
|
@@ -8797,7 +8858,8 @@ var SigmetForm = function SigmetForm(_ref) {
|
|
|
8797
8858
|
exitDrawModeCallback: deactivateStartTool,
|
|
8798
8859
|
updateGeojson: updateStartGeoJson
|
|
8799
8860
|
}), getEndLayer('geoJSONIntersection', 'geojsonlayer-intersection-end'), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
|
|
8800
|
-
|
|
8861
|
+
var linkedFormLayers = [getStartLayer('geoJSONIntersectionBounds', 'geojsonlayer-fir'), getEndLayer('geoJSONIntersection', 'geojsonlayer-intersection-end'), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
|
|
8862
|
+
useFormLayers(linkedFormLayers);
|
|
8801
8863
|
var _React$useState3 = React.useState(mode === 'view'),
|
|
8802
8864
|
isDisabled = _React$useState3[0],
|
|
8803
8865
|
setIsDisabled = _React$useState3[1];
|
|
@@ -9184,7 +9246,8 @@ var AirmetForm = function AirmetForm(_ref) {
|
|
|
9184
9246
|
exitDrawModeCallback: deactivateStartTool,
|
|
9185
9247
|
updateGeojson: updateStartGeoJson
|
|
9186
9248
|
}), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
|
|
9187
|
-
|
|
9249
|
+
var linkedFormLayers = [getStartLayer('geoJSONIntersectionBounds', 'geojsonlayer-fir'), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
|
|
9250
|
+
useFormLayers(linkedFormLayers);
|
|
9188
9251
|
var _React$useState3 = React.useState(mode === 'view'),
|
|
9189
9252
|
isDisabled = _React$useState3[0],
|
|
9190
9253
|
setIsDisabled = _React$useState3[1];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/sigmet-airmet",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.4.0",
|
|
4
4
|
"description": "GeoWeb Sigmet/Airmet library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@mui/system": "^9.0.1",
|
|
33
33
|
"@opengeoweb/form-fields": "*",
|
|
34
34
|
"react-hook-form": "^7.50.1",
|
|
35
|
-
"axios": "^1.
|
|
35
|
+
"axios": "^1.18.0",
|
|
36
36
|
"lodash": "^4.18.1",
|
|
37
37
|
"@reduxjs/toolkit": "^2.6.1",
|
|
38
38
|
"i18next": "^25.0.1",
|