@opengeoweb/taf 4.4.0 → 4.5.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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { TextField, Grid, Box, Button, IconButton,
|
|
3
|
+
import { TextField, Grid, Box, Button, IconButton, Chip, Typography, FormLabel, Switch, Card, Tabs, Tab, Dialog, MenuList, MenuItem, Backdrop, CircularProgress } from '@mui/material';
|
|
4
4
|
import { useFormContext, Controller, useFieldArray } from 'react-hook-form';
|
|
5
5
|
import { useDispatch } from 'react-redux';
|
|
6
6
|
import { ReactSortable } from 'react-sortablejs';
|
|
@@ -8,7 +8,7 @@ import Sortable from 'sortablejs';
|
|
|
8
8
|
import { isEqual } from 'lodash';
|
|
9
9
|
import { useAuthenticationContext } from '@opengeoweb/authentication';
|
|
10
10
|
import { getDeepProperty, ReactHookFormHiddenInput, ReactHookFormProvider } from '@opengeoweb/form-fields';
|
|
11
|
-
import { useIsMounted, ToggleMenu, useDraftFormHelpers, ToolContainerDraggable, Avatar, getInitials, useConfirmationDialog, usePreventBrowserClose, ToolButton, ToolHeader, AlertBanner, getErrorMessage as getErrorMessage$1, getWarningMessage, ConfirmationServiceProvider, usePoller, ErrorBoundary } from '@opengeoweb/shared';
|
|
11
|
+
import { useIsMounted, ToggleMenu, useDraftFormHelpers, CustomTooltip, ToolContainerDraggable, Avatar, getInitials, useConfirmationDialog, usePreventBrowserClose, ToolButton, ToolHeader, AlertBanner, getErrorMessage as getErrorMessage$1, getWarningMessage, ConfirmationServiceProvider, usePoller, ErrorBoundary } from '@opengeoweb/shared';
|
|
12
12
|
import { snackbarActions } from '@opengeoweb/core';
|
|
13
13
|
import moment from 'moment';
|
|
14
14
|
import { Add, Delete, Close, DragHandle as DragHandle$1, ThumbsUp, Clock, Cancel, Edit, Success, Export, ListItem, Cached } from '@opengeoweb/theme';
|
|
@@ -3692,7 +3692,7 @@ var IssuesButton = function IssuesButton(_ref) {
|
|
|
3692
3692
|
toggleIssuesPane(newPosition);
|
|
3693
3693
|
};
|
|
3694
3694
|
|
|
3695
|
-
return /*#__PURE__*/React.createElement(
|
|
3695
|
+
return /*#__PURE__*/React.createElement(CustomTooltip, {
|
|
3696
3696
|
title: "View details"
|
|
3697
3697
|
}, /*#__PURE__*/React.createElement(Chip, {
|
|
3698
3698
|
"data-testid": "issuesButton",
|
|
@@ -3956,7 +3956,7 @@ var styles = {
|
|
|
3956
3956
|
};
|
|
3957
3957
|
|
|
3958
3958
|
var SwitchButton = function SwitchButton(props) {
|
|
3959
|
-
return /*#__PURE__*/React.createElement(
|
|
3959
|
+
return /*#__PURE__*/React.createElement(CustomTooltip, {
|
|
3960
3960
|
title: "Switch mode"
|
|
3961
3961
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(FormLabel, {
|
|
3962
3962
|
sx: styles.label
|
|
@@ -3967,28 +3967,11 @@ var SwitchButton = function SwitchButton(props) {
|
|
|
3967
3967
|
}, "Editor")));
|
|
3968
3968
|
};
|
|
3969
3969
|
|
|
3970
|
-
/* *
|
|
3971
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3972
|
-
* you may not use this file except in compliance with the License.
|
|
3973
|
-
* You may obtain a copy of the License at
|
|
3974
|
-
*
|
|
3975
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3976
|
-
*
|
|
3977
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
3978
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3979
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3980
|
-
* See the License for the specific language governing permissions and
|
|
3981
|
-
* limitations under the License.
|
|
3982
|
-
*
|
|
3983
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3984
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
3985
|
-
* */
|
|
3986
|
-
|
|
3987
3970
|
var TafAvatar = function TafAvatar(_ref) {
|
|
3988
3971
|
var editor = _ref.editor,
|
|
3989
3972
|
_ref$tooltipPlacement = _ref.tooltipPlacement,
|
|
3990
3973
|
tooltipPlacement = _ref$tooltipPlacement === void 0 ? 'bottom' : _ref$tooltipPlacement;
|
|
3991
|
-
return /*#__PURE__*/React.createElement(
|
|
3974
|
+
return /*#__PURE__*/React.createElement(CustomTooltip, {
|
|
3992
3975
|
title: "Editor: ".concat(editor),
|
|
3993
3976
|
placement: tooltipPlacement
|
|
3994
3977
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Avatar, {
|
|
@@ -4022,7 +4005,11 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
4022
4005
|
_ref$onSwitchEditor = _ref.onSwitchEditor,
|
|
4023
4006
|
onSwitchEditor = _ref$onSwitchEditor === void 0 ? function () {
|
|
4024
4007
|
return null;
|
|
4025
|
-
} : _ref$onSwitchEditor
|
|
4008
|
+
} : _ref$onSwitchEditor,
|
|
4009
|
+
_ref$fetchNewTafList = _ref.fetchNewTafList,
|
|
4010
|
+
fetchNewTafList = _ref$fetchNewTafList === void 0 ? function () {
|
|
4011
|
+
return null;
|
|
4012
|
+
} : _ref$fetchNewTafList;
|
|
4026
4013
|
var originalTaf = tafFromBackend.taf,
|
|
4027
4014
|
editor = tafFromBackend.editor;
|
|
4028
4015
|
|
|
@@ -4141,42 +4128,64 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
4141
4128
|
}));
|
|
4142
4129
|
}, [dispatch]);
|
|
4143
4130
|
|
|
4131
|
+
var isLatestEditor = function isLatestEditor(latestEditor, userName) {
|
|
4132
|
+
return latestEditor !== '' && latestEditor !== null && latestEditor !== userName;
|
|
4133
|
+
};
|
|
4134
|
+
|
|
4144
4135
|
var setIsEditor = function setIsEditor(checked) {
|
|
4145
4136
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
4146
|
-
var
|
|
4137
|
+
var username, latestList, _latestList$find, latestEditor, didSucceed;
|
|
4138
|
+
|
|
4147
4139
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
4148
4140
|
while (1) {
|
|
4149
4141
|
switch (_context.prev = _context.next) {
|
|
4150
4142
|
case 0:
|
|
4151
|
-
|
|
4143
|
+
username = checked ? auth === null || auth === void 0 ? void 0 : auth.username : ''; // make sure to get the latest changes
|
|
4144
|
+
|
|
4145
|
+
_context.next = 3;
|
|
4146
|
+
return fetchNewTafList();
|
|
4152
4147
|
|
|
4153
|
-
|
|
4154
|
-
|
|
4148
|
+
case 3:
|
|
4149
|
+
latestList = _context.sent;
|
|
4150
|
+
_latestList$find = latestList.find(function (taf) {
|
|
4151
|
+
return taf.taf.uuid === originalTaf.uuid;
|
|
4152
|
+
}), latestEditor = _latestList$find.editor;
|
|
4153
|
+
|
|
4154
|
+
if (!(username === latestEditor)) {
|
|
4155
|
+
_context.next = 7;
|
|
4155
4156
|
break;
|
|
4156
4157
|
}
|
|
4157
4158
|
|
|
4158
4159
|
return _context.abrupt("return", true);
|
|
4159
4160
|
|
|
4160
|
-
case
|
|
4161
|
-
if (!(
|
|
4162
|
-
_context.next =
|
|
4161
|
+
case 7:
|
|
4162
|
+
if (!(!checked && isLatestEditor(latestEditor, auth === null || auth === void 0 ? void 0 : auth.username))) {
|
|
4163
|
+
_context.next = 9;
|
|
4164
|
+
break;
|
|
4165
|
+
}
|
|
4166
|
+
|
|
4167
|
+
return _context.abrupt("return", true);
|
|
4168
|
+
|
|
4169
|
+
case 9:
|
|
4170
|
+
if (!(checked && isLatestEditor(latestEditor, auth === null || auth === void 0 ? void 0 : auth.username))) {
|
|
4171
|
+
_context.next = 12;
|
|
4163
4172
|
break;
|
|
4164
4173
|
}
|
|
4165
4174
|
|
|
4166
|
-
_context.next =
|
|
4175
|
+
_context.next = 12;
|
|
4167
4176
|
return confirmDialog({
|
|
4168
4177
|
title: 'Switch to editor mode',
|
|
4169
4178
|
description: 'This TAF is already in edit mode and important information could get lost in the switching process.',
|
|
4170
4179
|
confirmLabel: 'Edit mode'
|
|
4171
4180
|
});
|
|
4172
4181
|
|
|
4173
|
-
case
|
|
4174
|
-
_context.next =
|
|
4182
|
+
case 12:
|
|
4183
|
+
_context.next = 14;
|
|
4175
4184
|
return onSwitchEditor(Object.assign(Object.assign({}, tafFromBackend), {
|
|
4176
|
-
editor:
|
|
4185
|
+
editor: username
|
|
4177
4186
|
}));
|
|
4178
4187
|
|
|
4179
|
-
case
|
|
4188
|
+
case 14:
|
|
4180
4189
|
didSucceed = _context.sent;
|
|
4181
4190
|
|
|
4182
4191
|
if (didSucceed) {
|
|
@@ -4185,7 +4194,7 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
4185
4194
|
|
|
4186
4195
|
return _context.abrupt("return", didSucceed);
|
|
4187
4196
|
|
|
4188
|
-
case
|
|
4197
|
+
case 17:
|
|
4189
4198
|
case "end":
|
|
4190
4199
|
return _context.stop();
|
|
4191
4200
|
}
|
|
@@ -4728,8 +4737,8 @@ var sortTafsOnIssueDate = function sortTafsOnIssueDate() {
|
|
|
4728
4737
|
return _toConsumableArray(tafList).sort(function (_ref3, _ref4) {
|
|
4729
4738
|
var tafA = _ref3.taf;
|
|
4730
4739
|
var tafB = _ref4.taf;
|
|
4731
|
-
if (tafA.issueDate < tafB.issueDate || tafA.issueDate && !tafB.issueDate) return
|
|
4732
|
-
return 1;
|
|
4740
|
+
if (tafA.issueDate < tafB.issueDate || tafA.issueDate && !tafB.issueDate) return 1;
|
|
4741
|
+
return -1;
|
|
4733
4742
|
});
|
|
4734
4743
|
};
|
|
4735
4744
|
var getBaseTime = function getBaseTime(baseTime, location) {
|
|
@@ -4844,7 +4853,7 @@ var getNewTafLocationIndex = function getNewTafLocationIndex(tafLocations, previ
|
|
|
4844
4853
|
var IconWithTooltip = function IconWithTooltip(_ref) {
|
|
4845
4854
|
var title = _ref.title,
|
|
4846
4855
|
children = _ref.children;
|
|
4847
|
-
return /*#__PURE__*/React.createElement(
|
|
4856
|
+
return /*#__PURE__*/React.createElement(CustomTooltip, {
|
|
4848
4857
|
title: title,
|
|
4849
4858
|
placement: "right"
|
|
4850
4859
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
@@ -4932,7 +4941,7 @@ var TOOLTIP_TITLE = 'Import TAC';
|
|
|
4932
4941
|
var ExportButton = function ExportButton(_ref) {
|
|
4933
4942
|
var onClick = _ref.onClick,
|
|
4934
4943
|
isHidden = _ref.isHidden;
|
|
4935
|
-
return isHidden ? null : /*#__PURE__*/React__default.createElement(
|
|
4944
|
+
return isHidden ? null : /*#__PURE__*/React__default.createElement(CustomTooltip, {
|
|
4936
4945
|
title: TOOLTIP_TITLE,
|
|
4937
4946
|
placement: "left"
|
|
4938
4947
|
}, /*#__PURE__*/React__default.createElement(ToolButton, {
|
|
@@ -5647,7 +5656,11 @@ var TafPanel = function TafPanel(_ref) {
|
|
|
5647
5656
|
setIsFormDisabled = _ref$setIsFormDisable === void 0 ? function () {
|
|
5648
5657
|
return null;
|
|
5649
5658
|
} : _ref$setIsFormDisable,
|
|
5650
|
-
error = _ref.error
|
|
5659
|
+
error = _ref.error,
|
|
5660
|
+
_ref$fetchNewTafList = _ref.fetchNewTafList,
|
|
5661
|
+
fetchNewTafList = _ref$fetchNewTafList === void 0 ? function () {
|
|
5662
|
+
return null;
|
|
5663
|
+
} : _ref$fetchNewTafList;
|
|
5651
5664
|
var severity = isWarning(error) ? 'warning' : 'error';
|
|
5652
5665
|
|
|
5653
5666
|
var onTafAction = function onTafAction(action, taf) {
|
|
@@ -5729,7 +5742,8 @@ var TafPanel = function TafPanel(_ref) {
|
|
|
5729
5742
|
setIsIssuesPaneOpen: setIsIssuesPaneOpen,
|
|
5730
5743
|
isDisabled: isFormDisabled,
|
|
5731
5744
|
setIsDisabled: setIsFormDisabled,
|
|
5732
|
-
onSwitchEditor: patchTaf
|
|
5745
|
+
onSwitchEditor: patchTaf,
|
|
5746
|
+
fetchNewTafList: fetchNewTafList
|
|
5733
5747
|
})));
|
|
5734
5748
|
};
|
|
5735
5749
|
|
|
@@ -5799,7 +5813,7 @@ var LastUpdateTime = function LastUpdateTime(_ref) {
|
|
|
5799
5813
|
letterSpacing: '0.33px'
|
|
5800
5814
|
},
|
|
5801
5815
|
"data-testid": "lastupdated-time"
|
|
5802
|
-
}, getLastUpdateTitle(lastUpdateTime)), /*#__PURE__*/React__default.createElement(
|
|
5816
|
+
}, getLastUpdateTitle(lastUpdateTime)), /*#__PURE__*/React__default.createElement(CustomTooltip, {
|
|
5803
5817
|
title: "Click to refresh"
|
|
5804
5818
|
}, /*#__PURE__*/React__default.createElement(ToolButton, {
|
|
5805
5819
|
"data-testid": "updateTafBtn",
|
|
@@ -5866,7 +5880,9 @@ var TafLayout = function TafLayout(_ref2) {
|
|
|
5866
5880
|
var _ref2$tafList = _ref2.tafList,
|
|
5867
5881
|
tafList = _ref2$tafList === void 0 ? [] : _ref2$tafList,
|
|
5868
5882
|
_ref2$onUpdateTaf = _ref2.onUpdateTaf,
|
|
5869
|
-
onUpdateTaf = _ref2$onUpdateTaf === void 0 ? function () {
|
|
5883
|
+
onUpdateTaf = _ref2$onUpdateTaf === void 0 ? function () {
|
|
5884
|
+
return null;
|
|
5885
|
+
} : _ref2$onUpdateTaf,
|
|
5870
5886
|
lastUpdateTime = _ref2.lastUpdateTime;
|
|
5871
5887
|
|
|
5872
5888
|
var _useApiContext = useApiContext(),
|
|
@@ -6203,7 +6219,8 @@ var TafLayout = function TafLayout(_ref2) {
|
|
|
6203
6219
|
postTaf: postTaf,
|
|
6204
6220
|
patchTaf: patchTaf,
|
|
6205
6221
|
isLoading: isLoading,
|
|
6206
|
-
error: error
|
|
6222
|
+
error: error,
|
|
6223
|
+
fetchNewTafList: onUpdateTaf
|
|
6207
6224
|
});
|
|
6208
6225
|
}))), /*#__PURE__*/React__default.createElement(Grid, {
|
|
6209
6226
|
item: true,
|
|
@@ -6289,26 +6306,39 @@ var TafModule = function TafModule() {
|
|
|
6289
6306
|
setTafList(result.data);
|
|
6290
6307
|
setIsLoading(false);
|
|
6291
6308
|
setLastUpdateTime(getCurrentDate());
|
|
6292
|
-
_context.
|
|
6293
|
-
break;
|
|
6309
|
+
return _context.abrupt("return", result.data);
|
|
6294
6310
|
|
|
6295
|
-
case
|
|
6296
|
-
_context.prev =
|
|
6311
|
+
case 12:
|
|
6312
|
+
_context.prev = 12;
|
|
6297
6313
|
_context.t0 = _context["catch"](2);
|
|
6298
6314
|
setError(_context.t0);
|
|
6299
6315
|
setIsLoading(false);
|
|
6316
|
+
return _context.abrupt("return", []);
|
|
6300
6317
|
|
|
6301
|
-
case
|
|
6318
|
+
case 17:
|
|
6302
6319
|
case "end":
|
|
6303
6320
|
return _context.stop();
|
|
6304
6321
|
}
|
|
6305
6322
|
}
|
|
6306
|
-
}, _callee, null, [[2,
|
|
6323
|
+
}, _callee, null, [[2, 12]]);
|
|
6307
6324
|
}));
|
|
6308
6325
|
};
|
|
6309
6326
|
|
|
6310
6327
|
var onUpdateTaf = function onUpdateTaf() {
|
|
6311
|
-
|
|
6328
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
6329
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
6330
|
+
while (1) {
|
|
6331
|
+
switch (_context2.prev = _context2.next) {
|
|
6332
|
+
case 0:
|
|
6333
|
+
return _context2.abrupt("return", fetchNewTafList());
|
|
6334
|
+
|
|
6335
|
+
case 1:
|
|
6336
|
+
case "end":
|
|
6337
|
+
return _context2.stop();
|
|
6338
|
+
}
|
|
6339
|
+
}
|
|
6340
|
+
}, _callee2);
|
|
6341
|
+
}));
|
|
6312
6342
|
};
|
|
6313
6343
|
|
|
6314
6344
|
React.useEffect(function () {
|
package/index.umd.js
CHANGED
|
@@ -3688,7 +3688,7 @@
|
|
|
3688
3688
|
toggleIssuesPane(newPosition);
|
|
3689
3689
|
};
|
|
3690
3690
|
|
|
3691
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
3691
|
+
return /*#__PURE__*/React__namespace.createElement(shared.CustomTooltip, {
|
|
3692
3692
|
title: "View details"
|
|
3693
3693
|
}, /*#__PURE__*/React__namespace.createElement(material.Chip, {
|
|
3694
3694
|
"data-testid": "issuesButton",
|
|
@@ -3926,7 +3926,7 @@
|
|
|
3926
3926
|
};
|
|
3927
3927
|
|
|
3928
3928
|
var SwitchButton = function SwitchButton(props) {
|
|
3929
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
3929
|
+
return /*#__PURE__*/React__namespace.createElement(shared.CustomTooltip, {
|
|
3930
3930
|
title: "Switch mode"
|
|
3931
3931
|
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(material.FormLabel, {
|
|
3932
3932
|
sx: styles.label
|
|
@@ -3937,28 +3937,11 @@
|
|
|
3937
3937
|
}, "Editor")));
|
|
3938
3938
|
};
|
|
3939
3939
|
|
|
3940
|
-
/* *
|
|
3941
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3942
|
-
* you may not use this file except in compliance with the License.
|
|
3943
|
-
* You may obtain a copy of the License at
|
|
3944
|
-
*
|
|
3945
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3946
|
-
*
|
|
3947
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
3948
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3949
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3950
|
-
* See the License for the specific language governing permissions and
|
|
3951
|
-
* limitations under the License.
|
|
3952
|
-
*
|
|
3953
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3954
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
3955
|
-
* */
|
|
3956
|
-
|
|
3957
3940
|
var TafAvatar = function TafAvatar(_a) {
|
|
3958
3941
|
var editor = _a.editor,
|
|
3959
3942
|
_b = _a.tooltipPlacement,
|
|
3960
3943
|
tooltipPlacement = _b === void 0 ? 'bottom' : _b;
|
|
3961
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
3944
|
+
return /*#__PURE__*/React__namespace.createElement(shared.CustomTooltip, {
|
|
3962
3945
|
title: "Editor: " + editor,
|
|
3963
3946
|
placement: tooltipPlacement
|
|
3964
3947
|
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(shared.Avatar, {
|
|
@@ -3992,7 +3975,11 @@
|
|
|
3992
3975
|
_g = _a.onSwitchEditor,
|
|
3993
3976
|
onSwitchEditor = _g === void 0 ? function () {
|
|
3994
3977
|
return null;
|
|
3995
|
-
} : _g
|
|
3978
|
+
} : _g,
|
|
3979
|
+
_h = _a.fetchNewTafList,
|
|
3980
|
+
fetchNewTafList = _h === void 0 ? function () {
|
|
3981
|
+
return null;
|
|
3982
|
+
} : _h;
|
|
3996
3983
|
var originalTaf = tafFromBackend.taf,
|
|
3997
3984
|
editor = tafFromBackend.editor;
|
|
3998
3985
|
var auth = authentication.useAuthenticationContext().auth;
|
|
@@ -4001,38 +3988,38 @@
|
|
|
4001
3988
|
var isDefaultDisabled = getIsFormDefaultDisabled(originalTaf.status);
|
|
4002
3989
|
var confirmDialog = shared.useConfirmationDialog();
|
|
4003
3990
|
|
|
4004
|
-
var
|
|
4005
|
-
toggleIsDraft =
|
|
4006
|
-
DraftFieldHelper =
|
|
3991
|
+
var _j = shared.useDraftFormHelpers(true),
|
|
3992
|
+
toggleIsDraft = _j.toggleIsDraft,
|
|
3993
|
+
DraftFieldHelper = _j.DraftFieldHelper;
|
|
4007
3994
|
|
|
4008
|
-
var
|
|
4009
|
-
registerValidateForm =
|
|
4010
|
-
tafAction =
|
|
4011
|
-
setIsFormDirty =
|
|
4012
|
-
setTafAction =
|
|
4013
|
-
TAC =
|
|
4014
|
-
updateTAC =
|
|
4015
|
-
setTAC =
|
|
3995
|
+
var _k = useTafModuleContext(),
|
|
3996
|
+
registerValidateForm = _k.registerValidateForm,
|
|
3997
|
+
tafAction = _k.tafAction,
|
|
3998
|
+
setIsFormDirty = _k.setIsFormDirty,
|
|
3999
|
+
setTafAction = _k.setTafAction,
|
|
4000
|
+
TAC = _k.TAC,
|
|
4001
|
+
updateTAC = _k.updateTAC,
|
|
4002
|
+
setTAC = _k.setTAC;
|
|
4016
4003
|
|
|
4017
4004
|
var isMounted = shared.useIsMounted().isMounted;
|
|
4018
4005
|
|
|
4019
|
-
var
|
|
4020
|
-
control =
|
|
4021
|
-
handleSubmit =
|
|
4022
|
-
trigger =
|
|
4023
|
-
formState =
|
|
4024
|
-
getValues =
|
|
4025
|
-
setValue =
|
|
4026
|
-
reset =
|
|
4006
|
+
var _l = reactHookForm.useFormContext(),
|
|
4007
|
+
control = _l.control,
|
|
4008
|
+
handleSubmit = _l.handleSubmit,
|
|
4009
|
+
trigger = _l.trigger,
|
|
4010
|
+
formState = _l.formState,
|
|
4011
|
+
getValues = _l.getValues,
|
|
4012
|
+
setValue = _l.setValue,
|
|
4013
|
+
reset = _l.reset;
|
|
4027
4014
|
|
|
4028
4015
|
var isFormDirty = formState.isDirty,
|
|
4029
4016
|
errors = formState.errors;
|
|
4030
4017
|
shared.usePreventBrowserClose(isFormDirty && !isDisabled);
|
|
4031
4018
|
var hiddenInputFields = ['baseTime', 'issueDate', 'uuid', 'validDateStart', 'validDateEnd', 'status', 'previousId', 'previousValidDateStart', 'previousValidDateEnd'];
|
|
4032
4019
|
|
|
4033
|
-
var
|
|
4034
|
-
delayedFormValues =
|
|
4035
|
-
setDelayedFormValues =
|
|
4020
|
+
var _m = __read(React__default["default"].useState(getValues()), 2),
|
|
4021
|
+
delayedFormValues = _m[0],
|
|
4022
|
+
setDelayedFormValues = _m[1];
|
|
4036
4023
|
|
|
4037
4024
|
var hasErrors = Object.keys(errors).length;
|
|
4038
4025
|
|
|
@@ -4110,24 +4097,44 @@
|
|
|
4110
4097
|
}));
|
|
4111
4098
|
}, [dispatch]);
|
|
4112
4099
|
|
|
4100
|
+
var isLatestEditor = function isLatestEditor(latestEditor, userName) {
|
|
4101
|
+
return latestEditor !== '' && latestEditor !== null && latestEditor !== userName;
|
|
4102
|
+
};
|
|
4103
|
+
|
|
4113
4104
|
var setIsEditor = function setIsEditor(checked) {
|
|
4114
4105
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
4115
|
-
var
|
|
4106
|
+
var username, latestList, latestEditor, didSucceed;
|
|
4116
4107
|
return __generator(this, function (_a) {
|
|
4117
4108
|
switch (_a.label) {
|
|
4118
4109
|
case 0:
|
|
4119
|
-
|
|
4110
|
+
username = checked ? auth === null || auth === void 0 ? void 0 : auth.username : '';
|
|
4111
|
+
return [4
|
|
4112
|
+
/*yield*/
|
|
4113
|
+
, fetchNewTafList()];
|
|
4120
4114
|
|
|
4121
|
-
|
|
4115
|
+
case 1:
|
|
4116
|
+
latestList = _a.sent();
|
|
4117
|
+
latestEditor = latestList.find(function (taf) {
|
|
4118
|
+
return taf.taf.uuid === originalTaf.uuid;
|
|
4119
|
+
}).editor;
|
|
4120
|
+
|
|
4121
|
+
if (username === latestEditor) {
|
|
4122
4122
|
// do nothing, correct editor is already set
|
|
4123
4123
|
return [2
|
|
4124
4124
|
/*return*/
|
|
4125
4125
|
, true];
|
|
4126
4126
|
}
|
|
4127
4127
|
|
|
4128
|
-
if (!
|
|
4128
|
+
if (!checked && isLatestEditor(latestEditor, auth === null || auth === void 0 ? void 0 : auth.username)) {
|
|
4129
|
+
// do nothing, someone else is editor so user will already get set to viewer mode
|
|
4130
|
+
return [2
|
|
4131
|
+
/*return*/
|
|
4132
|
+
, true];
|
|
4133
|
+
}
|
|
4134
|
+
|
|
4135
|
+
if (!(checked && isLatestEditor(latestEditor, auth === null || auth === void 0 ? void 0 : auth.username))) return [3
|
|
4129
4136
|
/*break*/
|
|
4130
|
-
,
|
|
4137
|
+
, 3];
|
|
4131
4138
|
return [4
|
|
4132
4139
|
/*yield*/
|
|
4133
4140
|
, confirmDialog({
|
|
@@ -4136,19 +4143,19 @@
|
|
|
4136
4143
|
confirmLabel: 'Edit mode'
|
|
4137
4144
|
})];
|
|
4138
4145
|
|
|
4139
|
-
case
|
|
4146
|
+
case 2:
|
|
4140
4147
|
_a.sent();
|
|
4141
4148
|
|
|
4142
|
-
_a.label =
|
|
4149
|
+
_a.label = 3;
|
|
4143
4150
|
|
|
4144
|
-
case
|
|
4151
|
+
case 3:
|
|
4145
4152
|
return [4
|
|
4146
4153
|
/*yield*/
|
|
4147
4154
|
, onSwitchEditor(__assign(__assign({}, tafFromBackend), {
|
|
4148
|
-
editor:
|
|
4155
|
+
editor: username
|
|
4149
4156
|
}))];
|
|
4150
4157
|
|
|
4151
|
-
case
|
|
4158
|
+
case 4:
|
|
4152
4159
|
didSucceed = _a.sent();
|
|
4153
4160
|
|
|
4154
4161
|
if (didSucceed) {
|
|
@@ -4300,19 +4307,19 @@
|
|
|
4300
4307
|
}
|
|
4301
4308
|
};
|
|
4302
4309
|
|
|
4303
|
-
var
|
|
4310
|
+
var _o = reactHookForm.useFieldArray({
|
|
4304
4311
|
control: control,
|
|
4305
4312
|
name: 'changeGroups'
|
|
4306
4313
|
}),
|
|
4307
|
-
fields =
|
|
4308
|
-
insert =
|
|
4309
|
-
remove =
|
|
4310
|
-
move =
|
|
4314
|
+
fields = _o.fields,
|
|
4315
|
+
insert = _o.insert,
|
|
4316
|
+
remove = _o.remove,
|
|
4317
|
+
move = _o.move;
|
|
4311
4318
|
|
|
4312
|
-
var
|
|
4313
|
-
onChangeOrder =
|
|
4314
|
-
onStartDrag =
|
|
4315
|
-
activeDraggingIndex =
|
|
4319
|
+
var _p = useDragOrder(trigger, move, onFormBlur),
|
|
4320
|
+
onChangeOrder = _p.onChangeOrder,
|
|
4321
|
+
onStartDrag = _p.onStartDrag,
|
|
4322
|
+
activeDraggingIndex = _p.activeDraggingIndex;
|
|
4316
4323
|
|
|
4317
4324
|
var onRemoverow = function onRemoverow(index) {
|
|
4318
4325
|
confirmDialog({
|
|
@@ -4393,9 +4400,9 @@
|
|
|
4393
4400
|
});
|
|
4394
4401
|
};
|
|
4395
4402
|
|
|
4396
|
-
var
|
|
4397
|
-
shouldValidate =
|
|
4398
|
-
setShouldValidate =
|
|
4403
|
+
var _q = __read(React__default["default"].useState(false), 2),
|
|
4404
|
+
shouldValidate = _q[0],
|
|
4405
|
+
setShouldValidate = _q[1];
|
|
4399
4406
|
|
|
4400
4407
|
React__default["default"].useEffect(function () {
|
|
4401
4408
|
setIsDisabled(!isEditor || isDefaultDisabled);
|
|
@@ -4706,8 +4713,8 @@
|
|
|
4706
4713
|
return __spreadArray([], __read(tafList)).sort(function (_a, _b) {
|
|
4707
4714
|
var tafA = _a.taf;
|
|
4708
4715
|
var tafB = _b.taf;
|
|
4709
|
-
if (tafA.issueDate < tafB.issueDate || tafA.issueDate && !tafB.issueDate) return
|
|
4710
|
-
return 1;
|
|
4716
|
+
if (tafA.issueDate < tafB.issueDate || tafA.issueDate && !tafB.issueDate) return 1;
|
|
4717
|
+
return -1;
|
|
4711
4718
|
});
|
|
4712
4719
|
};
|
|
4713
4720
|
var getBaseTime = function getBaseTime(baseTime, location) {
|
|
@@ -4822,7 +4829,7 @@
|
|
|
4822
4829
|
var IconWithTooltip = function IconWithTooltip(_a) {
|
|
4823
4830
|
var title = _a.title,
|
|
4824
4831
|
children = _a.children;
|
|
4825
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
4832
|
+
return /*#__PURE__*/React__namespace.createElement(shared.CustomTooltip, {
|
|
4826
4833
|
title: title,
|
|
4827
4834
|
placement: "right"
|
|
4828
4835
|
}, /*#__PURE__*/React__namespace.createElement(material.Box, {
|
|
@@ -4910,7 +4917,7 @@
|
|
|
4910
4917
|
var ExportButton = function ExportButton(_a) {
|
|
4911
4918
|
var onClick = _a.onClick,
|
|
4912
4919
|
isHidden = _a.isHidden;
|
|
4913
|
-
return isHidden ? null : /*#__PURE__*/React__default["default"].createElement(
|
|
4920
|
+
return isHidden ? null : /*#__PURE__*/React__default["default"].createElement(shared.CustomTooltip, {
|
|
4914
4921
|
title: TOOLTIP_TITLE,
|
|
4915
4922
|
placement: "left"
|
|
4916
4923
|
}, /*#__PURE__*/React__default["default"].createElement(shared.ToolButton, {
|
|
@@ -5594,7 +5601,11 @@
|
|
|
5594
5601
|
setIsFormDisabled = _h === void 0 ? function () {
|
|
5595
5602
|
return null;
|
|
5596
5603
|
} : _h,
|
|
5597
|
-
error = _a.error
|
|
5604
|
+
error = _a.error,
|
|
5605
|
+
_j = _a.fetchNewTafList,
|
|
5606
|
+
fetchNewTafList = _j === void 0 ? function () {
|
|
5607
|
+
return null;
|
|
5608
|
+
} : _j;
|
|
5598
5609
|
var severity = isWarning(error) ? 'warning' : 'error';
|
|
5599
5610
|
|
|
5600
5611
|
var onTafAction = function onTafAction(action, taf) {
|
|
@@ -5728,7 +5739,8 @@
|
|
|
5728
5739
|
setIsIssuesPaneOpen: setIsIssuesPaneOpen,
|
|
5729
5740
|
isDisabled: isFormDisabled,
|
|
5730
5741
|
setIsDisabled: setIsFormDisabled,
|
|
5731
|
-
onSwitchEditor: patchTaf
|
|
5742
|
+
onSwitchEditor: patchTaf,
|
|
5743
|
+
fetchNewTafList: fetchNewTafList
|
|
5732
5744
|
})));
|
|
5733
5745
|
};
|
|
5734
5746
|
|
|
@@ -5779,7 +5791,7 @@
|
|
|
5779
5791
|
letterSpacing: '0.33px'
|
|
5780
5792
|
},
|
|
5781
5793
|
"data-testid": "lastupdated-time"
|
|
5782
|
-
}, getLastUpdateTitle(lastUpdateTime)), /*#__PURE__*/React__default["default"].createElement(
|
|
5794
|
+
}, getLastUpdateTitle(lastUpdateTime)), /*#__PURE__*/React__default["default"].createElement(shared.CustomTooltip, {
|
|
5783
5795
|
title: "Click to refresh"
|
|
5784
5796
|
}, /*#__PURE__*/React__default["default"].createElement(shared.ToolButton, {
|
|
5785
5797
|
"data-testid": "updateTafBtn",
|
|
@@ -5849,7 +5861,9 @@
|
|
|
5849
5861
|
var _b = _a.tafList,
|
|
5850
5862
|
tafList = _b === void 0 ? [] : _b,
|
|
5851
5863
|
_c = _a.onUpdateTaf,
|
|
5852
|
-
onUpdateTaf = _c === void 0 ? function () {
|
|
5864
|
+
onUpdateTaf = _c === void 0 ? function () {
|
|
5865
|
+
return null;
|
|
5866
|
+
} : _c,
|
|
5853
5867
|
lastUpdateTime = _a.lastUpdateTime;
|
|
5854
5868
|
var api$1 = api.useApiContext().api;
|
|
5855
5869
|
var dispatch = reactRedux.useDispatch();
|
|
@@ -6199,7 +6213,8 @@
|
|
|
6199
6213
|
postTaf: postTaf,
|
|
6200
6214
|
patchTaf: patchTaf,
|
|
6201
6215
|
isLoading: isLoading,
|
|
6202
|
-
error: error
|
|
6216
|
+
error: error,
|
|
6217
|
+
fetchNewTafList: onUpdateTaf
|
|
6203
6218
|
});
|
|
6204
6219
|
}))), /*#__PURE__*/React__default["default"].createElement(material.Grid, {
|
|
6205
6220
|
item: true,
|
|
@@ -6284,17 +6299,17 @@
|
|
|
6284
6299
|
setTafList(result.data);
|
|
6285
6300
|
setIsLoading(false);
|
|
6286
6301
|
setLastUpdateTime(getCurrentDate());
|
|
6287
|
-
return [
|
|
6288
|
-
/*
|
|
6289
|
-
,
|
|
6302
|
+
return [2
|
|
6303
|
+
/*return*/
|
|
6304
|
+
, result.data];
|
|
6290
6305
|
|
|
6291
6306
|
case 3:
|
|
6292
6307
|
error_1 = _a.sent();
|
|
6293
6308
|
setError(error_1);
|
|
6294
6309
|
setIsLoading(false);
|
|
6295
|
-
return [
|
|
6296
|
-
/*
|
|
6297
|
-
,
|
|
6310
|
+
return [2
|
|
6311
|
+
/*return*/
|
|
6312
|
+
, []];
|
|
6298
6313
|
|
|
6299
6314
|
case 4:
|
|
6300
6315
|
return [2
|
|
@@ -6306,7 +6321,13 @@
|
|
|
6306
6321
|
};
|
|
6307
6322
|
|
|
6308
6323
|
var onUpdateTaf = function onUpdateTaf() {
|
|
6309
|
-
|
|
6324
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
6325
|
+
return __generator(this, function (_a) {
|
|
6326
|
+
return [2
|
|
6327
|
+
/*return*/
|
|
6328
|
+
, fetchNewTafList()];
|
|
6329
|
+
});
|
|
6330
|
+
});
|
|
6310
6331
|
};
|
|
6311
6332
|
|
|
6312
6333
|
React__namespace.useEffect(function () {
|
|
@@ -10,6 +10,7 @@ export interface TafFormProps {
|
|
|
10
10
|
isIssuesPaneOpen?: boolean;
|
|
11
11
|
setIsIssuesPaneOpen?: (isOpen: boolean, position?: IssuesPanePosition) => void;
|
|
12
12
|
onSwitchEditor?: (formValues: TafFromFrontEnd) => Promise<boolean>;
|
|
13
|
+
fetchNewTafList?: () => Promise<TafFromBackend[]>;
|
|
13
14
|
}
|
|
14
15
|
declare const TafForm: React.FC<TafFormProps>;
|
|
15
16
|
export default TafForm;
|
|
@@ -9,7 +9,7 @@ export declare const getTafMessagePrefix: ({ location, validDateStart, messageTy
|
|
|
9
9
|
export declare const getSnackbarMessage: (tafFromFrontEnd: TafFromFrontEnd, isAutoSaved?: boolean) => string;
|
|
10
10
|
interface TafLayoutProps {
|
|
11
11
|
tafList: TafFromBackend[];
|
|
12
|
-
onUpdateTaf: () =>
|
|
12
|
+
onUpdateTaf: () => Promise<TafFromBackend[]>;
|
|
13
13
|
lastUpdateTime?: string;
|
|
14
14
|
}
|
|
15
15
|
declare const TafLayout: React.FC<TafLayoutProps>;
|
|
@@ -21,6 +21,7 @@ interface TafPanelProps {
|
|
|
21
21
|
isFormDisabled?: boolean;
|
|
22
22
|
setIsFormDisabled?: (isDisabled: boolean) => void;
|
|
23
23
|
error?: TafError;
|
|
24
|
+
fetchNewTafList?: () => Promise<TafFromBackend[]>;
|
|
24
25
|
}
|
|
25
26
|
export declare const isWarning: (error: TafError) => boolean;
|
|
26
27
|
export declare const usePostTafRequest: (request: (params?: unknown) => Promise<void>, errorParser?: (error: AxiosError | Error, params: TafFromFrontEnd) => TafError) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/taf",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "GeoWeb TAF library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
"typings": "./index.d.ts",
|
|
13
13
|
"dependencies": {},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@opengeoweb/core": "4.
|
|
15
|
+
"@opengeoweb/core": "4.5.0",
|
|
16
16
|
"react": "^17.0.2",
|
|
17
|
-
"@opengeoweb/theme": "4.
|
|
17
|
+
"@opengeoweb/theme": "4.5.0",
|
|
18
18
|
"@mui/material": "^5.10.8",
|
|
19
19
|
"moment": "^2.29.0",
|
|
20
20
|
"react-redux": "^8.0.4",
|
|
21
21
|
"react-intl": "^5.17.5",
|
|
22
|
-
"
|
|
23
|
-
"@opengeoweb/shared": "4.4.0",
|
|
22
|
+
"@opengeoweb/shared": "4.5.0",
|
|
24
23
|
"react-draggable": "^4.4.5",
|
|
25
24
|
"re-resizable": "^6.9.0",
|
|
26
25
|
"@redux-eggs/core": "^2.2.0",
|
|
27
|
-
"@opengeoweb/form-fields": "4.
|
|
26
|
+
"@opengeoweb/form-fields": "4.5.0",
|
|
28
27
|
"react-hook-form": "^6.12.1",
|
|
29
28
|
"moment-timezone": "^0.5.31",
|
|
30
29
|
"@mui/x-date-pickers": "^5.0.4",
|
|
30
|
+
"lodash": "^4.17.20",
|
|
31
31
|
"axios": "^0.25.0",
|
|
32
|
-
"@opengeoweb/webmap": "4.
|
|
32
|
+
"@opengeoweb/webmap": "4.5.0",
|
|
33
33
|
"throttle-debounce": "^3.0.1",
|
|
34
34
|
"proj4": "^2.6.2",
|
|
35
35
|
"react-sortablejs": "^6.1.4",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"redux-saga": "^1.2.1",
|
|
44
44
|
"@redux-eggs/redux-toolkit": "^2.2.0",
|
|
45
45
|
"@redux-eggs/saga-extension": "^2.2.0",
|
|
46
|
-
"@opengeoweb/api": "4.
|
|
46
|
+
"@opengeoweb/api": "4.5.0",
|
|
47
47
|
"react-dom": "^17.0.2",
|
|
48
|
-
"@opengeoweb/authentication": "4.
|
|
48
|
+
"@opengeoweb/authentication": "4.5.0",
|
|
49
49
|
"react-router-dom": "^6.4.2",
|
|
50
50
|
"query-string": "^6.13.7"
|
|
51
51
|
}
|