@opengeoweb/workspace 9.8.0 → 9.9.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
@@ -3,13 +3,13 @@ import { chunk, cloneDeep, isEqual, isEmpty, isString } from 'lodash';
3
3
  import { syncGroupsTypes, syncGroupsActions, layerActions, mapStoreActions, uiActions, genericActions, mapActions, layerTypes, mapEnums, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleConfig, uiSelectors } from '@opengeoweb/store';
4
4
  import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext } from '@opengeoweb/api';
5
5
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
- import { debounce, takeEvery, takeLatest, all, put, delay, call, select, takeLeading } from 'redux-saga/effects';
6
+ import { debounce, takeEvery, takeLatest, all, put, delay, select, call, takeLeading } from 'redux-saga/effects';
7
7
  import { isAxiosError, getAxiosErrorMessage, withEggs, ConfirmationServiceProvider, useConfirmationDialog, CustomIconButton, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, getHeight, usePrevious, renderCounter, ToolContainer, CustomToggleButton, ConfirmationDialog } from '@opengeoweb/shared';
8
8
  import { snackbarActions, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
9
9
  import * as React from 'react';
10
10
  import React__default, { useCallback } from 'react';
11
11
  import { ThemeWrapper, lightTheme, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, Search, Clear, WebAssetOff } from '@opengeoweb/theme';
12
- import { Provider, useDispatch, useSelector } from 'react-redux';
12
+ import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
13
13
  import { timeSeriesModuleConfig } from '@opengeoweb/timeseries';
14
14
  import { AuthenticationProvider, useAuthenticationContext } from '@opengeoweb/authentication';
15
15
  import { createStore } from '@redux-eggs/redux-toolkit';
@@ -1304,6 +1304,13 @@ var emptyMapWorkspace = {
1304
1304
  mosaicNode: '1_screen',
1305
1305
  viewType: 'singleWindow'
1306
1306
  };
1307
+ var createCustomEmptyMapWorkspace = function createCustomEmptyMapWorkspace(customMapPreset) {
1308
+ var customEmptyMapWorkspace = cloneDeep(emptyMapWorkspace);
1309
+ if (customMapPreset) {
1310
+ customEmptyMapWorkspace.views.byId['1_screen'].initialProps.mapPreset = customMapPreset;
1311
+ }
1312
+ return customEmptyMapWorkspace;
1313
+ };
1307
1314
  var constructFilterParams = function constructFilterParams(filters, searchQuery) {
1308
1315
  // get filters
1309
1316
  var _filters$reduce = filters.reduce(function (filterList, filter) {
@@ -1364,13 +1371,17 @@ var initialState$1 = {
1364
1371
  mosaicNode: undefined,
1365
1372
  isLoading: false,
1366
1373
  error: undefined,
1367
- hasChanges: false
1374
+ hasChanges: false,
1375
+ intialViewMapPreset: undefined
1368
1376
  };
1369
1377
  var workspacePresetChangeActions = [viewPresetActions.selectViewPreset, viewPresetActions.setActiveViewPresetId, syncGroupsActions.syncGroupRemoveGroup, syncGroupsActions.syncGroupAddGroup];
1370
1378
  var slice$1 = createSlice({
1371
1379
  initialState: initialState$1,
1372
1380
  name: 'workspace',
1373
1381
  reducers: {
1382
+ setInitialViewMapPreset: function setInitialViewMapPreset(draft, action) {
1383
+ draft.intialViewMapPreset = action.payload.preset;
1384
+ },
1374
1385
  addWorkspaceView: function addWorkspaceView(draft, action) {
1375
1386
  var newId = action.payload.id;
1376
1387
  draft.views.allIds.push(newId);
@@ -1439,6 +1450,9 @@ var slice$1 = createSlice({
1439
1450
  draft.scope = workspacePreset.scope;
1440
1451
  draft.syncGroups = [];
1441
1452
  },
1453
+ changeToEmptyMapWorkspace: function changeToEmptyMapWorkspace(draft) {
1454
+ return draft;
1455
+ },
1442
1456
  setPreset: function setPreset(draft, action) {
1443
1457
  // do not change anything when the preset is already set
1444
1458
  if (draft.id === action.payload.workspacePreset.id) {
@@ -1691,6 +1705,15 @@ var workspaceStore = function workspaceStore(store) {
1691
1705
  var getWorkspaceState = createSelector(workspaceStore, function (store) {
1692
1706
  return store || initialState$1;
1693
1707
  });
1708
+ /**
1709
+ * Gets intialViewMapPreset from workspace state
1710
+ *
1711
+ * @param {object} store store: object - Store object
1712
+ * @returns {MapPreset | undefined} returnType: MapPreset
1713
+ */
1714
+ var getInitialViewMapPreset = createSelector(getWorkspaceState, function (state) {
1715
+ return state && state.intialViewMapPreset;
1716
+ });
1694
1717
  /**
1695
1718
  * Gets mosaicNode from workspace state
1696
1719
  *
@@ -1820,6 +1843,7 @@ var getViewPresetToSendToBackend = createSelector(getViewById, mapSelectors.getM
1820
1843
  var selectors = /*#__PURE__*/Object.freeze({
1821
1844
  __proto__: null,
1822
1845
  getWorkspaceState: getWorkspaceState,
1846
+ getInitialViewMapPreset: getInitialViewMapPreset,
1823
1847
  getMosaicNode: getMosaicNode,
1824
1848
  getViewById: getViewById,
1825
1849
  getViewIds: getViewIds,
@@ -2598,7 +2622,7 @@ var viewPresetsListFullContent = [
2598
2622
  endTime: "NOW+PT2H00M",
2599
2623
  shouldEndtimeOverride: true
2600
2624
  },
2601
- shouldAutoUpdate: true,
2625
+ shouldAutoUpdate: false,
2602
2626
  shouldAnimate: true
2603
2627
  }
2604
2628
  }
@@ -3982,10 +4006,11 @@ var getWorkspaceRouteUrl = function getWorkspaceRouteUrl(workspaceId) {
3982
4006
  return workspaceId ? routes.workspaceDetail.replace(':workspaceId', workspaceId) : routes.workspace;
3983
4007
  };
3984
4008
 
3985
- var _marked$2 = /*#__PURE__*/_regeneratorRuntime().mark(updateViewsSaga),
3986
- _marked2$2 = /*#__PURE__*/_regeneratorRuntime().mark(fetchWorkspaceSaga),
3987
- _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(saveWorkspacePresetSaga),
3988
- _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(workspaceSaga);
4009
+ var _marked$2 = /*#__PURE__*/_regeneratorRuntime().mark(changeToEmptyMapWorkspaceSaga),
4010
+ _marked2$2 = /*#__PURE__*/_regeneratorRuntime().mark(updateViewsSaga),
4011
+ _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(fetchWorkspaceSaga),
4012
+ _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(saveWorkspacePresetSaga),
4013
+ _marked5 = /*#__PURE__*/_regeneratorRuntime().mark(workspaceSaga);
3989
4014
  var setPreset = workspaceActions.setPreset,
3990
4015
  updateWorkspaceViews = workspaceActions.updateWorkspaceViews,
3991
4016
  changePreset = workspaceActions.changePreset;
@@ -4017,43 +4042,62 @@ function changePresetSaga(_ref) {
4017
4042
  }, _callee);
4018
4043
  })();
4019
4044
  }
4020
- function updateViewsSaga() {
4021
- return _regeneratorRuntime().wrap(function updateViewsSaga$(_context2) {
4045
+ function changeToEmptyMapWorkspaceSaga() {
4046
+ var intialViewMapPreset;
4047
+ return _regeneratorRuntime().wrap(function changeToEmptyMapWorkspaceSaga$(_context2) {
4022
4048
  while (1) switch (_context2.prev = _context2.next) {
4023
4049
  case 0:
4024
4050
  _context2.next = 2;
4025
- return call(window.dispatchEvent, new Event('resize'));
4051
+ return select(getInitialViewMapPreset);
4026
4052
  case 2:
4053
+ intialViewMapPreset = _context2.sent;
4054
+ _context2.next = 5;
4055
+ return put(changePreset({
4056
+ workspacePreset: createCustomEmptyMapWorkspace(intialViewMapPreset)
4057
+ }));
4058
+ case 5:
4027
4059
  case "end":
4028
4060
  return _context2.stop();
4029
4061
  }
4030
4062
  }, _marked$2);
4031
4063
  }
4064
+ function updateViewsSaga() {
4065
+ return _regeneratorRuntime().wrap(function updateViewsSaga$(_context3) {
4066
+ while (1) switch (_context3.prev = _context3.next) {
4067
+ case 0:
4068
+ _context3.next = 2;
4069
+ return call(window.dispatchEvent, new Event('resize'));
4070
+ case 2:
4071
+ case "end":
4072
+ return _context3.stop();
4073
+ }
4074
+ }, _marked2$2);
4075
+ }
4032
4076
  function fetchWorkspaceViewPresetSaga(_ref2) {
4033
4077
  var payload = _ref2.payload;
4034
4078
  return /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
4035
4079
  var viewPresetId, mosaicNodeId, workspaceApi, _yield$call, data, syncGroupIds;
4036
- return _regeneratorRuntime().wrap(function _callee2$(_context3) {
4037
- while (1) switch (_context3.prev = _context3.next) {
4080
+ return _regeneratorRuntime().wrap(function _callee2$(_context4) {
4081
+ while (1) switch (_context4.prev = _context4.next) {
4038
4082
  case 0:
4039
4083
  viewPresetId = payload.viewPresetId, mosaicNodeId = payload.mosaicNodeId;
4040
- _context3.prev = 1;
4041
- _context3.next = 4;
4084
+ _context4.prev = 1;
4085
+ _context4.next = 4;
4042
4086
  return put(workspaceActions.updateWorkspaceView({
4043
4087
  mosaicNodeId: mosaicNodeId,
4044
4088
  viewPreset: getViewPresetState(viewPresetId, mosaicNodeId, 'loading')
4045
4089
  }));
4046
4090
  case 4:
4047
- _context3.next = 6;
4091
+ _context4.next = 6;
4048
4092
  return call(getWorkspaceApi);
4049
4093
  case 6:
4050
- workspaceApi = _context3.sent;
4051
- _context3.next = 9;
4094
+ workspaceApi = _context4.sent;
4095
+ _context4.next = 9;
4052
4096
  return call(workspaceApi.getViewPreset, viewPresetId);
4053
4097
  case 9:
4054
- _yield$call = _context3.sent;
4098
+ _yield$call = _context4.sent;
4055
4099
  data = _yield$call.data;
4056
- _context3.next = 13;
4100
+ _context4.next = 13;
4057
4101
  return put(viewPresetActions.fetchedViewPreset({
4058
4102
  viewPreset: data,
4059
4103
  viewPresetId: data.id,
@@ -4063,10 +4107,10 @@ function fetchWorkspaceViewPresetSaga(_ref2) {
4063
4107
  // sync all connected syncgroups of viewPreset to the store
4064
4108
  syncGroupIds = data.initialProps.syncGroupsIds || [];
4065
4109
  if (!(syncGroupIds && syncGroupIds.length)) {
4066
- _context3.next = 17;
4110
+ _context4.next = 17;
4067
4111
  break;
4068
4112
  }
4069
- _context3.next = 17;
4113
+ _context4.next = 17;
4070
4114
  return all(syncGroupIds.map(function (syncGroupId) {
4071
4115
  return put(syncGroupsActions.syncGroupAddTarget({
4072
4116
  groupId: syncGroupId,
@@ -4075,63 +4119,63 @@ function fetchWorkspaceViewPresetSaga(_ref2) {
4075
4119
  }));
4076
4120
  }));
4077
4121
  case 17:
4078
- _context3.next = 19;
4122
+ _context4.next = 19;
4079
4123
  return put(workspaceActions.updateWorkspaceView({
4080
4124
  mosaicNodeId: mosaicNodeId,
4081
4125
  viewPreset: data
4082
4126
  }));
4083
4127
  case 19:
4084
- _context3.next = 25;
4128
+ _context4.next = 25;
4085
4129
  break;
4086
4130
  case 21:
4087
- _context3.prev = 21;
4088
- _context3.t0 = _context3["catch"](1);
4089
- _context3.next = 25;
4131
+ _context4.prev = 21;
4132
+ _context4.t0 = _context4["catch"](1);
4133
+ _context4.next = 25;
4090
4134
  return put(workspaceActions.updateWorkspaceView({
4091
4135
  mosaicNodeId: mosaicNodeId,
4092
4136
  viewPreset: getViewPresetState(viewPresetId, mosaicNodeId, 'error')
4093
4137
  }));
4094
4138
  case 25:
4095
4139
  case "end":
4096
- return _context3.stop();
4140
+ return _context4.stop();
4097
4141
  }
4098
4142
  }, _callee2, null, [[1, 21]]);
4099
4143
  })();
4100
4144
  }
4101
4145
  function fetchWorkspaceSaga(action) {
4102
4146
  var payload, workspaceId, workspaceApi, _yield$call2, workspaceData, fullLoadingWorkspace, workspaceIdsInBatches, _iterator, _step, batchCall, errorType;
4103
- return _regeneratorRuntime().wrap(function fetchWorkspaceSaga$(_context4) {
4104
- while (1) switch (_context4.prev = _context4.next) {
4147
+ return _regeneratorRuntime().wrap(function fetchWorkspaceSaga$(_context5) {
4148
+ while (1) switch (_context5.prev = _context5.next) {
4105
4149
  case 0:
4106
4150
  payload = action.payload;
4107
4151
  workspaceId = payload.workspaceId;
4108
- _context4.prev = 2;
4109
- _context4.next = 5;
4152
+ _context5.prev = 2;
4153
+ _context5.next = 5;
4110
4154
  return put(routerActions.navigateToUrl({
4111
4155
  url: getWorkspaceRouteUrl(workspaceId)
4112
4156
  }));
4113
4157
  case 5:
4114
- _context4.next = 7;
4158
+ _context5.next = 7;
4115
4159
  return put(workspaceListActions.toggleWorkspaceDialog({
4116
4160
  isWorkspaceListDialogOpen: false
4117
4161
  }));
4118
4162
  case 7:
4119
- _context4.next = 9;
4163
+ _context5.next = 9;
4120
4164
  return call(getWorkspaceApi);
4121
4165
  case 9:
4122
- workspaceApi = _context4.sent;
4123
- _context4.next = 12;
4166
+ workspaceApi = _context5.sent;
4167
+ _context5.next = 12;
4124
4168
  return call(workspaceApi.getWorkspacePreset, workspaceId);
4125
4169
  case 12:
4126
- _yield$call2 = _context4.sent;
4170
+ _yield$call2 = _context5.sent;
4127
4171
  workspaceData = _yield$call2.data;
4128
4172
  if (workspaceData) {
4129
- _context4.next = 16;
4173
+ _context5.next = 16;
4130
4174
  break;
4131
4175
  }
4132
4176
  throw new Error(ERROR_NOT_FOUND);
4133
4177
  case 16:
4134
- _context4.next = 18;
4178
+ _context5.next = 18;
4135
4179
  return put(workspaceActions.loadedWorkspace({
4136
4180
  workspaceId: workspaceId,
4137
4181
  workspace: workspaceData
@@ -4139,7 +4183,7 @@ function fetchWorkspaceSaga(action) {
4139
4183
  case 18:
4140
4184
  // show all views inside a workspace as loading
4141
4185
  fullLoadingWorkspace = getLoadingWorkspace(workspaceData);
4142
- _context4.next = 21;
4186
+ _context5.next = 21;
4143
4187
  return put(workspaceActions.changePreset({
4144
4188
  workspacePreset: fullLoadingWorkspace
4145
4189
  }));
@@ -4147,15 +4191,15 @@ function fetchWorkspaceSaga(action) {
4147
4191
  // fetch all individual view presets in batches
4148
4192
  workspaceIdsInBatches = getListInChunks(workspaceData.views);
4149
4193
  _iterator = _createForOfIteratorHelper(workspaceIdsInBatches);
4150
- _context4.prev = 23;
4194
+ _context5.prev = 23;
4151
4195
  _iterator.s();
4152
4196
  case 25:
4153
4197
  if ((_step = _iterator.n()).done) {
4154
- _context4.next = 31;
4198
+ _context5.next = 31;
4155
4199
  break;
4156
4200
  }
4157
4201
  batchCall = _step.value;
4158
- _context4.next = 29;
4202
+ _context5.next = 29;
4159
4203
  return all(batchCall.map(function (view) {
4160
4204
  return call(fetchWorkspaceViewPresetSaga, workspaceActions.fetchWorkspaceViewPreset({
4161
4205
  mosaicNodeId: view.mosaicNodeId,
@@ -4163,113 +4207,113 @@ function fetchWorkspaceSaga(action) {
4163
4207
  }));
4164
4208
  }));
4165
4209
  case 29:
4166
- _context4.next = 25;
4210
+ _context5.next = 25;
4167
4211
  break;
4168
4212
  case 31:
4169
- _context4.next = 36;
4213
+ _context5.next = 36;
4170
4214
  break;
4171
4215
  case 33:
4172
- _context4.prev = 33;
4173
- _context4.t0 = _context4["catch"](23);
4174
- _iterator.e(_context4.t0);
4216
+ _context5.prev = 33;
4217
+ _context5.t0 = _context5["catch"](23);
4218
+ _iterator.e(_context5.t0);
4175
4219
  case 36:
4176
- _context4.prev = 36;
4220
+ _context5.prev = 36;
4177
4221
  _iterator.f();
4178
- return _context4.finish(36);
4222
+ return _context5.finish(36);
4179
4223
  case 39:
4180
- _context4.next = 46;
4224
+ _context5.next = 46;
4181
4225
  break;
4182
4226
  case 41:
4183
- _context4.prev = 41;
4184
- _context4.t1 = _context4["catch"](2);
4185
- errorType = _context4.t1.message === ERROR_NOT_FOUND ? WorkspaceErrorType.NOT_FOUND : WorkspaceErrorType.GENERIC;
4186
- _context4.next = 46;
4227
+ _context5.prev = 41;
4228
+ _context5.t1 = _context5["catch"](2);
4229
+ errorType = _context5.t1.message === ERROR_NOT_FOUND ? WorkspaceErrorType.NOT_FOUND : WorkspaceErrorType.GENERIC;
4230
+ _context5.next = 46;
4187
4231
  return put(workspaceActions.errorWorkspace({
4188
4232
  workspaceId: workspaceId,
4189
4233
  error: {
4190
- message: getErrorMessage(_context4.t1),
4234
+ message: getErrorMessage(_context5.t1),
4191
4235
  type: errorType
4192
4236
  }
4193
4237
  }));
4194
4238
  case 46:
4195
4239
  case "end":
4196
- return _context4.stop();
4240
+ return _context5.stop();
4197
4241
  }
4198
- }, _marked2$2, null, [[2, 41], [23, 33, 36, 39]]);
4242
+ }, _marked3, null, [[2, 41], [23, 33, 36, 39]]);
4199
4243
  }
4200
4244
  function saveWorkspacePresetSaga(action) {
4201
4245
  var workspace, workspaceApi;
4202
- return _regeneratorRuntime().wrap(function saveWorkspacePresetSaga$(_context5) {
4203
- while (1) switch (_context5.prev = _context5.next) {
4246
+ return _regeneratorRuntime().wrap(function saveWorkspacePresetSaga$(_context6) {
4247
+ while (1) switch (_context6.prev = _context6.next) {
4204
4248
  case 0:
4205
4249
  workspace = action.payload.workspace;
4206
- _context5.prev = 1;
4207
- _context5.next = 4;
4250
+ _context6.prev = 1;
4251
+ _context6.next = 4;
4208
4252
  return call(getWorkspaceApi);
4209
4253
  case 4:
4210
- workspaceApi = _context5.sent;
4211
- _context5.next = 7;
4254
+ workspaceApi = _context6.sent;
4255
+ _context6.next = 7;
4212
4256
  return call(workspaceApi.saveWorkspacePreset, workspace.id, workspace);
4213
4257
  case 7:
4214
- _context5.next = 9;
4258
+ _context6.next = 9;
4215
4259
  return put(workspaceActions.loadedWorkspace(undefined));
4216
4260
  case 9:
4217
- _context5.next = 11;
4261
+ _context6.next = 11;
4218
4262
  return put(workspaceListActions.onSuccessWorkspacePresetAction({
4219
4263
  action: WorkspacePresetAction.SAVE,
4220
4264
  workspaceId: workspace.id,
4221
4265
  title: workspace.title
4222
4266
  }));
4223
4267
  case 11:
4224
- _context5.next = 17;
4268
+ _context6.next = 17;
4225
4269
  break;
4226
4270
  case 13:
4227
- _context5.prev = 13;
4228
- _context5.t0 = _context5["catch"](1);
4229
- _context5.next = 17;
4271
+ _context6.prev = 13;
4272
+ _context6.t0 = _context6["catch"](1);
4273
+ _context6.next = 17;
4230
4274
  return put(workspaceActions.errorWorkspace({
4231
4275
  workspaceId: workspace.id,
4232
4276
  error: {
4233
- message: _context5.t0.message,
4277
+ message: _context6.t0.message,
4234
4278
  type: WorkspaceErrorType.SAVE
4235
4279
  }
4236
4280
  }));
4237
4281
  case 17:
4238
4282
  case "end":
4239
- return _context5.stop();
4283
+ return _context6.stop();
4240
4284
  }
4241
- }, _marked3, null, [[1, 13]]);
4285
+ }, _marked4, null, [[1, 13]]);
4242
4286
  }
4243
4287
  function registerMapSaga(_ref3) {
4244
4288
  var payload = _ref3.payload;
4245
4289
  return /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
4246
4290
  var _a, mapId, viewType, workspaceState, mapPresetId;
4247
- return _regeneratorRuntime().wrap(function _callee3$(_context6) {
4248
- while (1) switch (_context6.prev = _context6.next) {
4291
+ return _regeneratorRuntime().wrap(function _callee3$(_context7) {
4292
+ while (1) switch (_context7.prev = _context7.next) {
4249
4293
  case 0:
4250
4294
  mapId = payload.mapId;
4251
- _context6.next = 3;
4295
+ _context7.next = 3;
4252
4296
  return select(getViewType);
4253
4297
  case 3:
4254
- viewType = _context6.sent;
4298
+ viewType = _context7.sent;
4255
4299
  if (!(viewType === 'tiledWindow')) {
4256
- _context6.next = 11;
4300
+ _context7.next = 11;
4257
4301
  break;
4258
4302
  }
4259
- _context6.next = 7;
4303
+ _context7.next = 7;
4260
4304
  return select(getWorkspaceState);
4261
4305
  case 7:
4262
- workspaceState = _context6.sent;
4306
+ workspaceState = _context7.sent;
4263
4307
  // if it can't find the id, it's a view with multiple maps
4264
4308
  mapPresetId = ((_a = workspaceState.views.byId[mapId]) === null || _a === void 0 ? void 0 : _a.id) || workspaceState.views.byId[workspaceState.views.allIds[0]].id;
4265
- _context6.next = 11;
4309
+ _context7.next = 11;
4266
4310
  return put(viewPresetActions.registerViewPreset({
4267
4311
  panelId: mapId,
4268
4312
  viewPresetId: mapPresetId
4269
4313
  }));
4270
4314
  case 11:
4271
4315
  case "end":
4272
- return _context6.stop();
4316
+ return _context7.stop();
4273
4317
  }
4274
4318
  }, _callee3);
4275
4319
  })();
@@ -4278,58 +4322,61 @@ function unregisterMapSaga(_ref4) {
4278
4322
  var payload = _ref4.payload;
4279
4323
  return /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
4280
4324
  var mapId, viewType;
4281
- return _regeneratorRuntime().wrap(function _callee4$(_context7) {
4282
- while (1) switch (_context7.prev = _context7.next) {
4325
+ return _regeneratorRuntime().wrap(function _callee4$(_context8) {
4326
+ while (1) switch (_context8.prev = _context8.next) {
4283
4327
  case 0:
4284
4328
  mapId = payload.mapId;
4285
- _context7.next = 3;
4329
+ _context8.next = 3;
4286
4330
  return select(getViewType);
4287
4331
  case 3:
4288
- viewType = _context7.sent;
4332
+ viewType = _context8.sent;
4289
4333
  if (!(viewType === 'tiledWindow')) {
4290
- _context7.next = 7;
4334
+ _context8.next = 7;
4291
4335
  break;
4292
4336
  }
4293
- _context7.next = 7;
4337
+ _context8.next = 7;
4294
4338
  return put(viewPresetActions.unregisterViewPreset({
4295
4339
  panelId: mapId
4296
4340
  }));
4297
4341
  case 7:
4298
4342
  case "end":
4299
- return _context7.stop();
4343
+ return _context8.stop();
4300
4344
  }
4301
4345
  }, _callee4);
4302
4346
  })();
4303
4347
  }
4304
4348
  function workspaceSaga() {
4305
- return _regeneratorRuntime().wrap(function workspaceSaga$(_context8) {
4306
- while (1) switch (_context8.prev = _context8.next) {
4349
+ return _regeneratorRuntime().wrap(function workspaceSaga$(_context9) {
4350
+ while (1) switch (_context9.prev = _context9.next) {
4307
4351
  case 0:
4308
- _context8.next = 2;
4352
+ _context9.next = 2;
4309
4353
  return takeLatest(mapStoreActions.registerMap, registerMapSaga);
4310
4354
  case 2:
4311
- _context8.next = 4;
4355
+ _context9.next = 4;
4312
4356
  return takeLatest(mapStoreActions.unregisterMap, unregisterMapSaga);
4313
4357
  case 4:
4314
- _context8.next = 6;
4358
+ _context9.next = 6;
4315
4359
  return takeLatest(changePreset.type, changePresetSaga);
4316
4360
  case 6:
4317
- _context8.next = 8;
4361
+ _context9.next = 8;
4318
4362
  return takeLatest(workspaceActions.fetchWorkspace.type, fetchWorkspaceSaga);
4319
4363
  case 8:
4320
- _context8.next = 10;
4364
+ _context9.next = 10;
4321
4365
  return takeLatest(workspaceActions.saveWorkspacePreset, saveWorkspacePresetSaga);
4322
4366
  case 10:
4323
- _context8.next = 12;
4324
- return takeEvery(workspaceActions.fetchWorkspaceViewPreset.type, fetchWorkspaceViewPresetSaga);
4367
+ _context9.next = 12;
4368
+ return takeLatest(workspaceActions.changeToEmptyMapWorkspace.type, changeToEmptyMapWorkspaceSaga);
4325
4369
  case 12:
4326
- _context8.next = 14;
4327
- return debounce(100, updateWorkspaceViews.type, updateViewsSaga);
4370
+ _context9.next = 14;
4371
+ return takeEvery(workspaceActions.fetchWorkspaceViewPreset.type, fetchWorkspaceViewPresetSaga);
4328
4372
  case 14:
4373
+ _context9.next = 16;
4374
+ return debounce(100, updateWorkspaceViews.type, updateViewsSaga);
4375
+ case 16:
4329
4376
  case "end":
4330
- return _context8.stop();
4377
+ return _context9.stop();
4331
4378
  }
4332
- }, _marked4);
4379
+ }, _marked5);
4333
4380
  }
4334
4381
 
4335
4382
  /* *
@@ -6438,17 +6485,22 @@ var getPresetTitle = function getPresetTitle(title, hasChanges, isNew) {
6438
6485
  }
6439
6486
  return title;
6440
6487
  };
6441
- var WorkspaceViewTitleConnect = function WorkspaceViewTitleConnect(_ref) {
6488
+ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_ref) {
6442
6489
  var panelId = _ref.panelId,
6443
6490
  isViewPresetDialogOpen = _ref.isViewPresetDialogOpen;
6444
6491
  var dispatch = useDispatch();
6445
6492
  var theme = useTheme();
6446
- var currentMapPreset = useSelector(function (store) {
6447
- return mapSelectors.getMapPreset(store, panelId);
6448
- });
6493
+ var store = useStore();
6449
6494
  var workspaceView = useSelector(function (store) {
6450
- return getViewById(store, panelId);
6451
- });
6495
+ var _a;
6496
+ var _ref2 = (_a = getViewById(store, panelId)) !== null && _a !== void 0 ? _a : {},
6497
+ title = _ref2.title,
6498
+ scope = _ref2.scope;
6499
+ return {
6500
+ title: title,
6501
+ scope: scope
6502
+ };
6503
+ }, shallowEqual);
6452
6504
  var hasMapPresetChanges = useSelector(function (store) {
6453
6505
  return getViewPresetHasChanges(store, panelId);
6454
6506
  });
@@ -6470,7 +6522,7 @@ var WorkspaceViewTitleConnect = function WorkspaceViewTitleConnect(_ref) {
6470
6522
  viewPreset: Object.assign(Object.assign({}, emptyMapViewPreset), {
6471
6523
  title: title,
6472
6524
  initialProps: {
6473
- mapPreset: currentMapPreset,
6525
+ mapPreset: mapSelectors.getMapPreset(store.getState(), panelId),
6474
6526
  syncGroupsIds: relatedSyncGroupIds
6475
6527
  }
6476
6528
  })
@@ -6497,7 +6549,7 @@ var WorkspaceViewTitleConnect = function WorkspaceViewTitleConnect(_ref) {
6497
6549
  formValues: {
6498
6550
  title: formTitle,
6499
6551
  initialProps: {
6500
- mapPreset: currentMapPreset,
6552
+ mapPreset: mapSelectors.getMapPreset(store.getState(), panelId),
6501
6553
  syncGroupsIds: relatedSyncGroupIds
6502
6554
  }
6503
6555
  }
@@ -6513,33 +6565,25 @@ var WorkspaceViewTitleConnect = function WorkspaceViewTitleConnect(_ref) {
6513
6565
  formValues: {
6514
6566
  title: formTitle,
6515
6567
  initialProps: {
6516
- mapPreset: currentMapPreset,
6568
+ mapPreset: mapSelectors.getMapPreset(store.getState(), panelId),
6517
6569
  syncGroupsIds: relatedSyncGroupIds
6518
6570
  }
6519
6571
  }
6520
6572
  });
6521
6573
  };
6522
- var toggleViewPresetDialog = React.useCallback(function (_ref2) {
6523
- var panelId = _ref2.panelId,
6524
- isViewPresetDialogOpen = _ref2.isViewPresetDialogOpen;
6574
+ var toggleViewPresetDialog = React.useCallback(function (_ref3) {
6575
+ var panelId = _ref3.panelId,
6576
+ isViewPresetDialogOpen = _ref3.isViewPresetDialogOpen;
6525
6577
  dispatch(viewPresetActions.toggleViewPresetListDialog({
6526
6578
  panelId: panelId,
6527
6579
  isViewPresetListDialogOpen: isViewPresetDialogOpen
6528
6580
  }));
6529
6581
  }, [dispatch]);
6530
6582
  var isNewActive = activeMapPresetId === '';
6531
- var title = (workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.title) || MAPPRESET_ACTIVE_TITLE;
6532
- var viewScope = workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.scope;
6583
+ var title = workspaceView.title || MAPPRESET_ACTIVE_TITLE;
6584
+ var viewScope = workspaceView.scope;
6533
6585
  var fullTitle = getPresetTitle(title, hasMapPresetChanges, isNewActive);
6534
- // TODO: https://gitlab.com/opengeoweb/opengeoweb/-/issues/4546
6535
- // This component renders on every change in the mapstate.
6536
- // This is because selectors like mapSelectors.getMapPreset are used in the component.
6537
- // The data from this selector is not used during a render, so it is wasting renders.
6538
- // The data is need only in the callback functions - not the component itself
6539
- // To prevent unneeded renders, this code should be rewritten by using refs, or move the logic to sagas.
6540
- // You can use the renderCounter to check the nubmer of renders.
6541
- // Also check https://xam-react-coe.medium.com/react-useselector-without-re-render-225686bee3f
6542
- renderCounter.count(WorkspaceViewTitleConnect.name);
6586
+ renderCounter.count(WorkspaceViewTitleConnectNoMemo.name);
6543
6587
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomIconButton, {
6544
6588
  "data-testid": "open-viewpresets",
6545
6589
  sx: {
@@ -6575,6 +6619,7 @@ var WorkspaceViewTitleConnect = function WorkspaceViewTitleConnect(_ref) {
6575
6619
  id: "viewpreset-options-toolbutton"
6576
6620
  }));
6577
6621
  };
6622
+ var WorkspaceViewTitleConnect = /*#__PURE__*/React.memo(WorkspaceViewTitleConnectNoMemo);
6578
6623
 
6579
6624
  /* *
6580
6625
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -7024,9 +7069,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7024
7069
  dispatch(workspaceListActions.toggleWorkspaceDialog({
7025
7070
  isWorkspaceListDialogOpen: false
7026
7071
  }));
7027
- dispatch(workspaceActions.changePreset({
7028
- workspacePreset: emptyMapWorkspace
7029
- }));
7072
+ dispatch(workspaceActions.changeToEmptyMapWorkspace());
7030
7073
  }, [dispatch]);
7031
7074
  var onClickWorkspace = function onClickWorkspace(id) {
7032
7075
  if (id === emptyMapWorkspace.id) {
@@ -8041,10 +8084,8 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
8041
8084
  workspace: workspaceData
8042
8085
  }));
8043
8086
  }, [dispatch, workspaceData]);
8044
- var setScreenPreset = React.useCallback(function (newScreenPreset) {
8045
- dispatch(workspaceActions.changePreset({
8046
- workspacePreset: newScreenPreset
8047
- }));
8087
+ var changeToEmptyMapWorkspace = React.useCallback(function () {
8088
+ dispatch(workspaceActions.changeToEmptyMapWorkspace());
8048
8089
  }, [dispatch]);
8049
8090
  var navigateToUrl = React.useCallback(function (url) {
8050
8091
  dispatch(routerActions.navigateToUrl({
@@ -8052,7 +8093,7 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
8052
8093
  }));
8053
8094
  }, [dispatch]);
8054
8095
  var setEmptyWorkSpace = function setEmptyWorkSpace() {
8055
- setScreenPreset(emptyMapWorkspace);
8096
+ changeToEmptyMapWorkspace();
8056
8097
  navigateToUrl(routes.root);
8057
8098
  };
8058
8099
  React.useEffect(function () {
@@ -8118,4 +8159,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
8118
8159
  }))))), /*#__PURE__*/React.createElement(MapPresetsFormDialogConnect, null));
8119
8160
  };
8120
8161
 
8121
- export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, defaultAuthConfig, emptyMapWorkspace, getWorkspaceRouteUrl, selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes };
8162
+ export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, emptyMapWorkspace, getWorkspaceRouteUrl, selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/workspace",
3
- "version": "9.8.0",
3
+ "version": "9.9.0",
4
4
  "description": "GeoWeb Workspace library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "@opengeoweb/form-fields": "*",
15
15
  "@opengeoweb/store": "*",
16
16
  "@opengeoweb/api": "*",
17
- "react-hook-form": "7.47.0",
17
+ "react-hook-form": "^7.50.1",
18
18
  "@opengeoweb/core": "*",
19
19
  "@opengeoweb/theme": "*",
20
20
  "@reduxjs/toolkit": "^1.9.7",
@@ -26,11 +26,10 @@
26
26
  "redux-saga": "^1.2.3",
27
27
  "react-mosaic-component": "^6.1.0",
28
28
  "lodash": "^4.17.21",
29
- "@emotion/react": "^11.11.1",
30
29
  "@redux-eggs/core": "^2.2.0",
31
30
  "@redux-eggs/redux-toolkit": "^2.2.0",
32
31
  "@redux-eggs/saga-extension": "^2.2.0",
33
- "immer": "^9.0.21",
32
+ "immer": "^10.0.3",
34
33
  "axios": "1.5.0",
35
34
  "@opengeoweb/taf": "*",
36
35
  "@opengeoweb/sigmet-airmet": "*",
package/src/index.d.ts CHANGED
@@ -10,5 +10,5 @@ export * from './lib/components/WorkspaceView';
10
10
  export * from './lib/components/WorkspaceTopBar';
11
11
  export * from './lib/components/WorkspaceDetail';
12
12
  export { routes as workspaceRoutes, getWorkspaceRouteUrl, } from './lib/utils/routes';
13
- export { emptyMapWorkspace } from './lib/store/workspaceList/utils';
13
+ export { emptyMapWorkspace, createCustomEmptyMapWorkspace, } from './lib/store/workspaceList/utils';
14
14
  export type { WorkspaceModuleStore } from './lib/store/config';
@@ -1,13 +1,13 @@
1
1
  import { mapTypes } from '@opengeoweb/store';
2
2
  import React from 'react';
3
3
  import { PresetAction } from '../../store/viewPresets/types';
4
- export type MapPresetFormValues = {
4
+ export interface MapPresetFormValues {
5
5
  title?: string;
6
6
  initialProps?: {
7
7
  mapPreset: mapTypes.MapPreset;
8
8
  syncGroupsIds?: string[];
9
9
  };
10
- };
10
+ }
11
11
  interface MapPresetsFormProps {
12
12
  error?: string;
13
13
  onSubmit?: () => void;
@@ -10,5 +10,5 @@ interface WorkspaceViewTitleConnectProps {
10
10
  export declare const NEW_TITLE_SUFFIX = "(not saved)";
11
11
  export declare const EXISTING_TITLE_SUFFIX = "(modified)";
12
12
  export declare const getPresetTitle: (title: string, hasChanges: boolean, isNew: boolean) => string;
13
- export declare const WorkspaceViewTitleConnect: React.FC<WorkspaceViewTitleConnectProps>;
13
+ export declare const WorkspaceViewTitleConnect: React.NamedExoticComponent<WorkspaceViewTitleConnectProps>;
14
14
  export {};
@@ -1,15 +1,15 @@
1
1
  import { EntityState } from '@reduxjs/toolkit';
2
2
  export type PresetScope = 'user' | 'system';
3
- export type ViewPresetListItem = {
3
+ export interface ViewPresetListItem {
4
4
  id: string;
5
5
  title: string;
6
6
  date: string;
7
7
  scope: PresetScope;
8
- };
9
- export type FetchViewPresetsListParams = {
8
+ }
9
+ export interface FetchViewPresetsListParams {
10
10
  scope?: string;
11
11
  search?: string;
12
- };
12
+ }
13
13
  export type ViewPresetListState = EntityState<ViewPresetListItem>;
14
14
  export interface LoadViewPresetsPayload {
15
15
  viewPresets: ViewPresetListItem[];
@@ -1,13 +1,15 @@
1
1
  import { Reducer } from '@reduxjs/toolkit';
2
- import { WorkspaceAddViewPayload, WorkspaceDeleteViewPayload, WorkspaceState, WorkspaceSetPresetPayload, WorkspaceSetPreventCloseViewPayload, WorkspaceUpdateViewPayload, WorkspaceUpdateViewsPayload, WorkspaceErrorWorkspacePayload, WorkspaceFetchedWorkspacePayload, WorkspaceFetchWorkspacePayload, WorkspaceFetchWorkspaceViewPresetPayload, WorkspaceSaveWorkspacePresetPayload } from './types';
2
+ import { WorkspaceAddViewPayload, WorkspaceDeleteViewPayload, WorkspaceState, WorkspaceSetPresetPayload, WorkspaceSetPreventCloseViewPayload, WorkspaceUpdateViewPayload, WorkspaceUpdateViewsPayload, WorkspaceErrorWorkspacePayload, WorkspaceFetchedWorkspacePayload, WorkspaceFetchWorkspacePayload, WorkspaceFetchWorkspaceViewPresetPayload, WorkspaceSaveWorkspacePresetPayload, WorkspaceSetInitialViewMapPresetPayload } from './types';
3
3
  export declare const initialState: WorkspaceState;
4
4
  export declare const reducer: Reducer<WorkspaceState>;
5
5
  export declare const workspaceActions: {
6
+ setInitialViewMapPreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceSetInitialViewMapPresetPayload, "workspace/setInitialViewMapPreset">;
6
7
  addWorkspaceView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceAddViewPayload, "workspace/addWorkspaceView">;
7
8
  deleteWorkspaceView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceDeleteViewPayload, "workspace/deleteWorkspaceView">;
8
9
  updateWorkspaceViews: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceUpdateViewsPayload, "workspace/updateWorkspaceViews">;
9
10
  updateWorkspaceView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceUpdateViewPayload, "workspace/updateWorkspaceView">;
10
11
  changePreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceSetPresetPayload, "workspace/changePreset">;
12
+ changeToEmptyMapWorkspace: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"workspace/changeToEmptyMapWorkspace">;
11
13
  setPreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceSetPresetPayload, "workspace/setPreset">;
12
14
  setPreventCloseView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceSetPreventCloseViewPayload, "workspace/setPreventCloseView">;
13
15
  fetchWorkspace: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceFetchWorkspacePayload, "workspace/fetchWorkspace">;
@@ -2,6 +2,7 @@ import { SagaIterator } from 'redux-saga';
2
2
  import { mapStoreActions } from '@opengeoweb/store';
3
3
  import { workspaceActions } from './reducer';
4
4
  export declare function changePresetSaga({ payload, }: ReturnType<typeof workspaceActions.changePreset>): SagaIterator;
5
+ export declare function changeToEmptyMapWorkspaceSaga(): SagaIterator;
5
6
  export declare function updateViewsSaga(): SagaIterator;
6
7
  export declare function fetchWorkspaceViewPresetSaga({ payload, }: ReturnType<typeof workspaceActions.fetchWorkspaceViewPreset>): SagaIterator;
7
8
  export declare function fetchWorkspaceSaga(action: ReturnType<typeof workspaceActions.fetchWorkspace>): SagaIterator;
@@ -11,6 +11,17 @@ export declare const getWorkspaceState: ((state: AppStore) => WorkspaceState) &
11
11
  }> & {
12
12
  clearCache: () => void;
13
13
  };
14
+ /**
15
+ * Gets intialViewMapPreset from workspace state
16
+ *
17
+ * @param {object} store store: object - Store object
18
+ * @returns {MapPreset | undefined} returnType: MapPreset
19
+ */
20
+ export declare const getInitialViewMapPreset: ((state: AppStore) => import("@opengeoweb/store").MapPreset | undefined) & import("reselect").OutputSelectorFields<(args_0: WorkspaceState) => import("@opengeoweb/store").MapPreset | undefined, {
21
+ clearCache: () => void;
22
+ }> & {
23
+ clearCache: () => void;
24
+ };
14
25
  /**
15
26
  * Gets mosaicNode from workspace state
16
27
  *
@@ -147,17 +158,17 @@ export declare const getViewPresetToSendToBackend: ((state: any, viewId: any) =>
147
158
  scope: import("./types").PresetScope;
148
159
  title: string;
149
160
  initialProps: {
150
- mapPreset: import("dist/libs/store/src/store/mapStore/types").MapPreset;
161
+ mapPreset: import("@opengeoweb/store").MapPreset;
151
162
  syncGroupsIds: string[];
152
163
  };
153
164
  componentType: "Map";
154
165
  keywords: string;
155
- }) & import("reselect").OutputSelectorFields<(args_0: WorkspaceViewType | undefined, args_1: import("dist/libs/store/src/store/mapStore/types").MapPreset, args_2: string[]) => {
166
+ }) & import("reselect").OutputSelectorFields<(args_0: WorkspaceViewType | undefined, args_1: import("@opengeoweb/store").MapPreset, args_2: string[]) => {
156
167
  id: string | undefined;
157
168
  scope: import("./types").PresetScope;
158
169
  title: string;
159
170
  initialProps: {
160
- mapPreset: import("dist/libs/store/src/store/mapStore/types").MapPreset;
171
+ mapPreset: import("@opengeoweb/store").MapPreset;
161
172
  syncGroupsIds: string[];
162
173
  };
163
174
  componentType: "Map";
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { syncGroupsTypes } from '@opengeoweb/store';
2
+ import { MapPreset, syncGroupsTypes } from '@opengeoweb/store';
3
3
  import { MosaicNode } from 'react-mosaic-component';
4
4
  type InitialPropsWorkspaceViewType = Record<string, unknown>;
5
5
  export type WorkspaceViewPresetComponentsLookupType = 'ViewError' | 'ViewLoading';
@@ -42,6 +42,7 @@ export interface WorkspaceState extends WorkspacePreset {
42
42
  isLoading?: boolean;
43
43
  error?: WorkspaceError;
44
44
  hasChanges?: boolean;
45
+ intialViewMapPreset?: MapPreset;
45
46
  }
46
47
  export interface WorkspacePresetFromBE {
47
48
  id?: string;
@@ -69,6 +70,9 @@ export declare enum WorkspacePresetAction {
69
70
  SAVE_ALL = "SAVE_ALL",
70
71
  DUPLICATE = "DUPLICATE"
71
72
  }
73
+ export interface WorkspaceSetInitialViewMapPresetPayload {
74
+ preset: MapPreset;
75
+ }
72
76
  export interface WorkspaceAddViewPayload {
73
77
  id: string;
74
78
  componentType: string;
@@ -100,12 +104,12 @@ export interface WorkspaceComponentLookupPayload {
100
104
  }
101
105
  export type WorkspaceLookupFunctionType = (payload: WorkspaceComponentLookupPayload) => React.ReactElement;
102
106
  export type PresetScope = 'user' | 'system';
103
- export type ViewPresetListItem = {
107
+ export interface ViewPresetListItem {
104
108
  id: string;
105
109
  title: string;
106
110
  date: string;
107
111
  scope: PresetScope;
108
- };
112
+ }
109
113
  export interface WorkspaceFetchWorkspacePayload {
110
114
  workspaceId: string;
111
115
  }
@@ -14,10 +14,10 @@ export interface WorkspaceListFilter {
14
14
  isSelected?: boolean;
15
15
  isDisabled?: boolean;
16
16
  }
17
- export type FetchWorkspaceParams = {
17
+ export interface FetchWorkspaceParams {
18
18
  scope?: string;
19
19
  search?: string;
20
- };
20
+ }
21
21
  export type WorkspaceListEntityState = EntityState<WorkspacePresetListItem>;
22
22
  export type WorkspacePresetFormValues = {
23
23
  title?: string;
@@ -1,7 +1,9 @@
1
+ import { MapPreset } from '@opengeoweb/store';
1
2
  import { WorkspacePreset, WorkspacePresetAction } from '../workspace/types';
2
3
  import { FetchWorkspaceParams, WorkspaceListFilter } from './types';
3
4
  export declare const getSnackbarMessage: (action: WorkspacePresetAction, title: string) => string;
4
5
  export declare const emptyMapWorkspace: WorkspacePreset;
6
+ export declare const createCustomEmptyMapWorkspace: (customMapPreset?: MapPreset) => WorkspacePreset;
5
7
  export declare const constructFilterParams: (filters: WorkspaceListFilter[], searchQuery: string) => FetchWorkspaceParams;
6
8
  export declare const generateUID: () => string;
7
9
  export declare const getGeneratedViewPresetTitle: (workspaceTitle: string, uid: string) => string;
@@ -5,7 +5,7 @@ import { ViewPreset } from '../store/viewPresets/types';
5
5
  import { FetchViewPresetsListParams } from '../store/viewPresetsList/types';
6
6
  export declare const API_NAME = "workspacepresets";
7
7
  export declare const getIdFromUrl: (url: string) => string;
8
- export type PresetsApi = {
8
+ export interface PresetsApi {
9
9
  getWorkspacePresets: (params?: FetchWorkspaceParams) => Promise<{
10
10
  data: WorkspacePresetListItem[];
11
11
  }>;
@@ -24,5 +24,5 @@ export type PresetsApi = {
24
24
  saveViewPreset: (viewPresetId: string, data: ViewPreset) => Promise<void>;
25
25
  saveViewPresetAs: (data: ViewPreset) => Promise<string>;
26
26
  deleteViewPreset: (viewPresetId: string) => Promise<void>;
27
- };
27
+ }
28
28
  export declare const createApi: (props: CreateApiProps) => PresetsApi;
@@ -1,8 +1,8 @@
1
- type WorkspaceRoutes = {
1
+ interface WorkspaceRoutes {
2
2
  root: string;
3
3
  workspace: string;
4
4
  workspaceDetail: string;
5
- };
5
+ }
6
6
  export declare const routes: WorkspaceRoutes;
7
7
  export declare const getWorkspaceRouteUrl: (workspaceId?: string) => string;
8
8
  export {};