@opengeoweb/workspace 12.6.0 → 12.7.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/index.esm.js CHANGED
@@ -2036,7 +2036,7 @@ var slice$1 = createSlice({
2036
2036
  draft.hasChanges = false;
2037
2037
  draft.scope = action.payload.scope || 'user';
2038
2038
  }
2039
- if (action.payload.action === WorkspacePresetAction.EDIT) {
2039
+ if (action.payload.action === WorkspacePresetAction.EDIT && action.payload.workspaceId === draft.id) {
2040
2040
  draft.title = action.payload.title;
2041
2041
  draft["abstract"] = action.payload["abstract"];
2042
2042
  }
@@ -2163,7 +2163,7 @@ var getViewPresetActiveId = createSelector(getViewPresetById, function (_store,
2163
2163
  }, function (viewPreset) {
2164
2164
  return viewPreset == null ? void 0 : viewPreset.activeViewPresetId;
2165
2165
  }, selectorMemoizationOptions);
2166
- var getViewPresetPanelId = createSelector(getViewPresets, function (store, mapId) {
2166
+ createSelector(getViewPresets, function (store, mapId) {
2167
2167
  return mapId;
2168
2168
  }, function (viewPresets, mapId) {
2169
2169
  var _viewPresets$find$pan, _viewPresets$find;
@@ -7359,6 +7359,12 @@ var LinkMenuConnect = function LinkMenuConnect(_ref) {
7359
7359
  var viewComponentType = useSelector(function (store) {
7360
7360
  return getViewComponentType(store, panelId);
7361
7361
  });
7362
+ var sharedFeature = useSelector(function (store) {
7363
+ return genericSelectors.getSelectedFeature(store.syncGroups, panelId);
7364
+ });
7365
+ var mapPinLocation = useSelector(function (store) {
7366
+ return mapSelectors.getPinLocation(store, selectedMapIds[0] || '');
7367
+ });
7362
7368
  var handleLinkViews = function handleLinkViews(event) {
7363
7369
  setAnchorEl(event.currentTarget);
7364
7370
  };
@@ -7373,6 +7379,25 @@ var LinkMenuConnect = function LinkMenuConnect(_ref) {
7373
7379
  panelId: panelId,
7374
7380
  mapIds: updatedMapIds
7375
7381
  }));
7382
+ // Sync pin to newly added map for TimeSeries components
7383
+ if (!selectedMapIds.includes(mapId) && viewComponentType === 'TimeSeries') {
7384
+ // Observation station
7385
+ if (sharedFeature) {
7386
+ dispatch(mapActions.setMapPinLocation({
7387
+ mapId: mapId,
7388
+ mapPinLocation: {
7389
+ lon: sharedFeature.lon,
7390
+ lat: sharedFeature.lat
7391
+ }
7392
+ }));
7393
+ // Grid
7394
+ } else if (mapPinLocation) {
7395
+ dispatch(mapActions.setMapPinLocation({
7396
+ mapId: mapId,
7397
+ mapPinLocation: mapPinLocation
7398
+ }));
7399
+ }
7400
+ }
7376
7401
  };
7377
7402
  return jsxs(Fragment, {
7378
7403
  children: [linkComponentTypesConstants.supportedComponentTypesForLinking.includes(viewComponentType) && jsx(CustomIconButton, {
@@ -7461,7 +7486,8 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
7461
7486
  createNode = _ref.createNode,
7462
7487
  path = _ref.path,
7463
7488
  _ref$shouldPreventClo = _ref.shouldPreventCloseView,
7464
- shouldPreventCloseView = _ref$shouldPreventClo === void 0 ? false : _ref$shouldPreventClo;
7489
+ shouldPreventCloseView = _ref$shouldPreventClo === void 0 ? false : _ref$shouldPreventClo,
7490
+ removeLinkedMap = _ref.removeLinkedMap;
7465
7491
  var confirmDialog = useConfirmationDialog();
7466
7492
  var _React$useContext = React.useContext(MosaicContext),
7467
7493
  actions = _React$useContext.mosaicActions;
@@ -7497,7 +7523,7 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
7497
7523
  while (1) switch (_context.prev = _context.next) {
7498
7524
  case 0:
7499
7525
  if (!shouldPreventCloseView) {
7500
- _context.next = 6;
7526
+ _context.next = 7;
7501
7527
  break;
7502
7528
  }
7503
7529
  _context.next = 3;
@@ -7508,11 +7534,13 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
7508
7534
  });
7509
7535
  case 3:
7510
7536
  actions.remove(path);
7511
- _context.next = 7;
7537
+ removeLinkedMap(panelId);
7538
+ _context.next = 9;
7512
7539
  break;
7513
- case 6:
7514
- actions.remove(path);
7515
7540
  case 7:
7541
+ actions.remove(path);
7542
+ removeLinkedMap(panelId);
7543
+ case 9:
7516
7544
  case "end":
7517
7545
  return _context.stop();
7518
7546
  }
@@ -7625,6 +7653,9 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7625
7653
  panelId: panelId
7626
7654
  }));
7627
7655
  }, [dispatch]);
7656
+ var removeLinkedMap = React.useCallback(function (panelId) {
7657
+ dispatch(genericActions.removeLinkedMap(panelId));
7658
+ }, [dispatch]);
7628
7659
  var toggleViewPresetDialog = React.useCallback(function (_ref4) {
7629
7660
  var panelId = _ref4.panelId,
7630
7661
  isViewPresetDialogOpen = _ref4.isViewPresetDialogOpen;
@@ -7655,28 +7686,16 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7655
7686
  });
7656
7687
  };
7657
7688
  // eslint-disable-next-line react-hooks/exhaustive-deps
7658
- }, [unregisterView, registerView]);
7659
- var connectedMap = useSelector(function (store) {
7660
- var _initialProps$plotPre;
7661
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7662
- var initialProps = view == null ? void 0 : view.initialProps;
7663
- var mapId = initialProps == null || (_initialProps$plotPre = initialProps.plotPreset) == null ? void 0 : _initialProps$plotPre.mapId;
7664
- if (mapId) {
7665
- var viewPresetPanelId = getViewPresetPanelId(store, mapId);
7666
- return viewPresetPanelId && viewPresetPanelId.length > 0 ? viewPresetPanelId : undefined;
7667
- }
7668
- return undefined;
7669
- });
7689
+ }, [registerView, unregisterView]);
7670
7690
  // generic componentsLookUp
7671
7691
  var genericComponentsLookupResult = React.useMemo(function () {
7672
7692
  return componentsLookUp({
7673
7693
  title: title,
7674
7694
  id: mosaicNodeId,
7675
7695
  componentType: view == null ? void 0 : view.componentType,
7676
- initialProps: view == null ? void 0 : view.initialProps,
7677
- connectedMap: connectedMap
7696
+ initialProps: view == null ? void 0 : view.initialProps
7678
7697
  });
7679
- }, [componentsLookUp, connectedMap, mosaicNodeId, title, view == null ? void 0 : view.componentType, view == null ? void 0 : view.initialProps]);
7698
+ }, [componentsLookUp, mosaicNodeId, title, view == null ? void 0 : view.componentType, view == null ? void 0 : view.initialProps]);
7680
7699
  // default componentsLookUp
7681
7700
  var defaultComponentsLookupResult = React.useMemo(function () {
7682
7701
  return defaultComponentsLookUp({
@@ -7696,7 +7715,8 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7696
7715
  panelId: mosaicNodeId,
7697
7716
  createNode: createNode,
7698
7717
  path: path,
7699
- shouldPreventCloseView: shouldPreventCloseView
7718
+ shouldPreventCloseView: shouldPreventCloseView,
7719
+ removeLinkedMap: removeLinkedMap
7700
7720
  }),
7701
7721
  children: [isViewPresetsFetching && jsx(LinearProgress, {
7702
7722
  "data-testid": "loading-bar",
@@ -8866,10 +8886,10 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8866
8886
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
8867
8887
  t = _useWorkspaceTranslat.t;
8868
8888
  React__default.useEffect(function () {
8869
- if (action !== WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS && action !== WorkspacePresetAction.SAVE_SYSTEM_PRESET && action !== WorkspacePresetAction.SAVE_AS && action !== WorkspacePresetAction.SAVE) {
8889
+ if (isOpen) {
8870
8890
  reset(formValues);
8871
8891
  }
8872
- }, [formValues, reset, action]);
8892
+ }, [formValues, reset, isOpen]);
8873
8893
  var getConfirmLabel = function getConfirmLabel(action) {
8874
8894
  switch (action) {
8875
8895
  case WorkspacePresetAction.DELETE:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/workspace",
3
- "version": "12.6.0",
3
+ "version": "12.7.0",
4
4
  "description": "GeoWeb Workspace library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -9,30 +9,30 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "react-redux": "^9.2.0",
12
- "@opengeoweb/shared": "12.6.0",
13
- "@opengeoweb/store": "12.6.0",
14
- "@opengeoweb/api": "12.6.0",
12
+ "@opengeoweb/shared": "12.7.0",
13
+ "@opengeoweb/store": "12.7.0",
14
+ "@opengeoweb/api": "12.7.0",
15
15
  "react-hook-form": "^7.50.1",
16
- "@opengeoweb/theme": "12.6.0",
16
+ "@opengeoweb/theme": "12.7.0",
17
17
  "@reduxjs/toolkit": "^2.6.1",
18
- "@opengeoweb/snackbar": "12.6.0",
18
+ "@opengeoweb/snackbar": "12.7.0",
19
19
  "react-window": "^1.8.10",
20
20
  "lodash": "^4.17.21",
21
21
  "axios": "^1.7.7",
22
22
  "react-virtualized-auto-sizer": "^1.0.21",
23
23
  "react-mosaic-component": "^6.1.0",
24
- "@opengeoweb/form-fields": "12.6.0",
25
- "@opengeoweb/timeseries": "12.6.0",
26
- "@opengeoweb/authentication": "12.6.0",
27
- "@opengeoweb/core": "12.6.0",
28
- "@opengeoweb/taf": "12.6.0",
29
- "@opengeoweb/sigmet-airmet": "12.6.0",
30
- "@opengeoweb/warnings": "12.6.0",
31
- "@opengeoweb/spaceweather": "12.6.0",
24
+ "@opengeoweb/form-fields": "12.7.0",
25
+ "@opengeoweb/timeseries": "12.7.0",
26
+ "@opengeoweb/authentication": "12.7.0",
27
+ "@opengeoweb/core": "12.7.0",
28
+ "@opengeoweb/taf": "12.7.0",
29
+ "@opengeoweb/sigmet-airmet": "12.7.0",
30
+ "@opengeoweb/warnings": "12.7.0",
31
+ "@opengeoweb/spaceweather": "12.7.0",
32
32
  "i18next": "^25.0.1",
33
33
  "react-i18next": "^15.1.1",
34
34
  "@mui/material": "^7.0.1",
35
- "@opengeoweb/webmap-react": "12.6.0",
35
+ "@opengeoweb/webmap-react": "12.7.0",
36
36
  "@tanstack/react-query": "^5.69.2"
37
37
  },
38
38
  "peerDependencies": {
@@ -5,6 +5,7 @@ interface WorkspaceControlsProps {
5
5
  path: MosaicBranch[];
6
6
  createNode?: () => MosaicNode<string>;
7
7
  shouldPreventCloseView?: boolean;
8
+ removeLinkedMap: (panelId: string) => void;
8
9
  }
9
10
  declare const WorkspaceControls: React.FC<WorkspaceControlsProps>;
10
11
  export default WorkspaceControls;
@@ -125,7 +125,6 @@ export interface WorkspaceComponentLookupPayload {
125
125
  id: string;
126
126
  title?: string;
127
127
  initialProps: unknown;
128
- connectedMap?: string;
129
128
  }
130
129
  export type WorkspaceLookupFunctionType = (payload: WorkspaceComponentLookupPayload) => React.ReactElement;
131
130
  export interface ViewPresetListItem {