@opengeoweb/taf 9.3.1 → 9.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { Grid, Button, Chip, Box, Typography, TextField, Card, Tabs, Tab, Dialog, MenuList, MenuItem, Backdrop, CircularProgress } from '@mui/material';
|
|
4
|
-
import { useFormContext,
|
|
4
|
+
import { useFormContext, useFieldArray, Controller } from 'react-hook-form';
|
|
5
5
|
import { useDispatch } from 'react-redux';
|
|
6
6
|
import { ReactSortable } from 'react-sortablejs';
|
|
7
7
|
import Sortable from 'sortablejs';
|
|
8
8
|
import { useAuthenticationContext } from '@opengeoweb/authentication';
|
|
9
9
|
import { HIDDEN_INPUT_HELPER_IS_DRAFT, getDeepProperty, useDraftFormHelpers, ReactHookFormHiddenInput, ReactHookFormProvider } from '@opengeoweb/form-fields';
|
|
10
|
-
import { useIsMounted, CustomIconButton, CustomTooltip, ToolContainerDraggable, Avatar, getInitials, ToggleMenu, useConfirmationDialog, usePreventBrowserClose, SwitchButton, ToolHeader, AlertBanner, getErrorMessage as getErrorMessage$1, getWarningMessage, usePoller, ErrorBoundary } from '@opengeoweb/shared';
|
|
10
|
+
import { dateUtils, useIsMounted, CustomIconButton, CustomTooltip, ToolContainerDraggable, Avatar, getInitials, ToggleMenu, useConfirmationDialog, usePreventBrowserClose, SwitchButton, ToolHeader, AlertBanner, getErrorMessage as getErrorMessage$1, getWarningMessage, usePoller, ErrorBoundary } from '@opengeoweb/shared';
|
|
11
11
|
import { snackbarActions } from '@opengeoweb/snackbar';
|
|
12
12
|
import moment from 'moment';
|
|
13
13
|
import { isEqual } from 'lodash';
|
|
@@ -2274,6 +2274,26 @@ var validateFourthCloud = function validateFourthCloud(firstCloudValue, secondCl
|
|
|
2274
2274
|
return true;
|
|
2275
2275
|
};
|
|
2276
2276
|
|
|
2277
|
+
/* *
|
|
2278
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2279
|
+
* you may not use this file except in compliance with the License.
|
|
2280
|
+
* You may obtain a copy of the License at
|
|
2281
|
+
*
|
|
2282
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2283
|
+
*
|
|
2284
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2285
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2286
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2287
|
+
* See the License for the specific language governing permissions and
|
|
2288
|
+
* limitations under the License.
|
|
2289
|
+
*
|
|
2290
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
2291
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2292
|
+
* */
|
|
2293
|
+
var DATE_FORMAT_YEAR = "yyyy-MM-dd'";
|
|
2294
|
+
var DATE_FORMAT_ISSUE_TIME = "ddHHmm'Z";
|
|
2295
|
+
var DATE_FORMAT_FULL = "yyyy-MM-dd'T'HH:mm:ss'";
|
|
2296
|
+
|
|
2277
2297
|
var emptyBaseForecast = {
|
|
2278
2298
|
wind: '',
|
|
2279
2299
|
visibility: '',
|
|
@@ -2292,7 +2312,7 @@ var emptyBaseForecast = {
|
|
|
2292
2312
|
var MIN_NUMBER_CHANGE_GROUP = 5;
|
|
2293
2313
|
// formatters
|
|
2294
2314
|
var formatIssueTime = function formatIssueTime(issueDate) {
|
|
2295
|
-
return issueDate ?
|
|
2315
|
+
return issueDate ? dateUtils.dateToString(new Date(issueDate), DATE_FORMAT_ISSUE_TIME) : 'Not issued';
|
|
2296
2316
|
};
|
|
2297
2317
|
function formatFormValues(row) {
|
|
2298
2318
|
return Object.keys(row).reduce(function (list, key) {
|
|
@@ -3182,7 +3202,8 @@ var TafModuleContext = /*#__PURE__*/React.createContext({
|
|
|
3182
3202
|
registerValidateForm: null,
|
|
3183
3203
|
tafAction: null,
|
|
3184
3204
|
setTafAction: null,
|
|
3185
|
-
onPreventCloseView: null
|
|
3205
|
+
onPreventCloseView: null,
|
|
3206
|
+
useFieldArrayMethods: {}
|
|
3186
3207
|
});
|
|
3187
3208
|
var useTafModuleContext = function useTafModuleContext() {
|
|
3188
3209
|
return React.useContext(TafModuleContext);
|
|
@@ -3201,6 +3222,12 @@ var useTafModuleState = function useTafModuleState(_ref) {
|
|
|
3201
3222
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
3202
3223
|
tafAction = _React$useState4[0],
|
|
3203
3224
|
setTafAction = _React$useState4[1];
|
|
3225
|
+
var _useFormContext = useFormContext(),
|
|
3226
|
+
control = _useFormContext.control;
|
|
3227
|
+
var useFieldArrayMethods = useFieldArray({
|
|
3228
|
+
control: control,
|
|
3229
|
+
name: 'changeGroups'
|
|
3230
|
+
});
|
|
3204
3231
|
var onRegisterValidateForm = function onRegisterValidateForm(promiseToRegister) {
|
|
3205
3232
|
registerValidateForm(function () {
|
|
3206
3233
|
return promiseToRegister;
|
|
@@ -3211,7 +3238,8 @@ var useTafModuleState = function useTafModuleState(_ref) {
|
|
|
3211
3238
|
registerValidateForm: onRegisterValidateForm,
|
|
3212
3239
|
tafAction: tafAction,
|
|
3213
3240
|
setTafAction: setTafAction,
|
|
3214
|
-
onPreventCloseView: onPreventCloseView
|
|
3241
|
+
onPreventCloseView: onPreventCloseView,
|
|
3242
|
+
useFieldArrayMethods: useFieldArrayMethods
|
|
3215
3243
|
};
|
|
3216
3244
|
};
|
|
3217
3245
|
var TafModuleProvider = function TafModuleProvider(_ref2) {
|
|
@@ -4080,23 +4108,20 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
4080
4108
|
_useTafModuleContext$ = _useTafModuleContext.setTafAction,
|
|
4081
4109
|
setTafAction = _useTafModuleContext$ === void 0 ? function () {} : _useTafModuleContext$,
|
|
4082
4110
|
_useTafModuleContext$2 = _useTafModuleContext.onPreventCloseView,
|
|
4083
|
-
onPreventCloseView = _useTafModuleContext$2 === void 0 ? function () {} : _useTafModuleContext$2
|
|
4111
|
+
onPreventCloseView = _useTafModuleContext$2 === void 0 ? function () {} : _useTafModuleContext$2,
|
|
4112
|
+
useFieldArrayMethods = _useTafModuleContext.useFieldArrayMethods;
|
|
4113
|
+
var fields = useFieldArrayMethods.fields,
|
|
4114
|
+
insert = useFieldArrayMethods.insert,
|
|
4115
|
+
remove = useFieldArrayMethods.remove,
|
|
4116
|
+
move = useFieldArrayMethods.move,
|
|
4117
|
+
replace = useFieldArrayMethods.replace;
|
|
4084
4118
|
var _useFormContext = useFormContext(),
|
|
4085
|
-
control = _useFormContext.control,
|
|
4086
4119
|
handleSubmit = _useFormContext.handleSubmit,
|
|
4087
4120
|
trigger = _useFormContext.trigger,
|
|
4088
4121
|
formState = _useFormContext.formState,
|
|
4089
4122
|
getValues = _useFormContext.getValues,
|
|
4090
4123
|
setValue = _useFormContext.setValue,
|
|
4091
|
-
|
|
4092
|
-
var _useFieldArray = useFieldArray({
|
|
4093
|
-
control: control,
|
|
4094
|
-
name: 'changeGroups'
|
|
4095
|
-
}),
|
|
4096
|
-
fields = _useFieldArray.fields,
|
|
4097
|
-
insert = _useFieldArray.insert,
|
|
4098
|
-
remove = _useFieldArray.remove,
|
|
4099
|
-
move = _useFieldArray.move;
|
|
4124
|
+
reset = _useFormContext.reset;
|
|
4100
4125
|
var _useDragOrder = useDragOrder(trigger, move),
|
|
4101
4126
|
onChangeOrder = _useDragOrder.onChangeOrder,
|
|
4102
4127
|
onStartDrag = _useDragOrder.onStartDrag,
|
|
@@ -4127,17 +4152,10 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
4127
4152
|
};
|
|
4128
4153
|
var resetFormValues = function resetFormValues(formData) {
|
|
4129
4154
|
var keepDirty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
resetField(key, {
|
|
4133
|
-
keepDirty: keepDirty,
|
|
4134
|
-
defaultValue: formData[key]
|
|
4135
|
-
});
|
|
4136
|
-
}
|
|
4137
|
-
setValue(key, formData[key], {
|
|
4138
|
-
shouldDirty: keepDirty
|
|
4139
|
-
});
|
|
4155
|
+
reset(formData, {
|
|
4156
|
+
keepDirty: keepDirty
|
|
4140
4157
|
});
|
|
4158
|
+
replace(formData.changeGroups);
|
|
4141
4159
|
};
|
|
4142
4160
|
var resetFormState = function resetFormState(resetDisabled) {
|
|
4143
4161
|
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
@@ -4976,7 +4994,10 @@ var TacContainer = function TacContainer(_ref) {
|
|
|
4976
4994
|
var _useFormContext = useFormContext(),
|
|
4977
4995
|
getValues = _useFormContext.getValues,
|
|
4978
4996
|
trigger = _useFormContext.trigger,
|
|
4979
|
-
|
|
4997
|
+
reset = _useFormContext.reset;
|
|
4998
|
+
var _useTafModuleContext = useTafModuleContext(),
|
|
4999
|
+
useFieldArrayMethods = _useTafModuleContext.useFieldArrayMethods;
|
|
5000
|
+
var replace = useFieldArrayMethods.replace;
|
|
4980
5001
|
var showSnackbar = React__default.useCallback(function (message) {
|
|
4981
5002
|
dispatch(snackbarActions.openSnackbar({
|
|
4982
5003
|
message: message
|
|
@@ -4985,12 +5006,10 @@ var TacContainer = function TacContainer(_ref) {
|
|
|
4985
5006
|
var handleExport = function handleExport() {
|
|
4986
5007
|
var currentTaf = getValues();
|
|
4987
5008
|
var newTaf = prepareTafExportValues(taf, currentTaf);
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
});
|
|
4991
|
-
setValue('changeGroups', newTaf.changeGroups, {
|
|
4992
|
-
shouldDirty: true
|
|
5009
|
+
reset(newTaf, {
|
|
5010
|
+
keepDirty: true
|
|
4993
5011
|
});
|
|
5012
|
+
replace(newTaf.changeGroups);
|
|
4994
5013
|
setTimeout(function () {
|
|
4995
5014
|
trigger(); // trigger all fields validation
|
|
4996
5015
|
}, 0);
|
|
@@ -6095,7 +6114,7 @@ var TafLayout = function TafLayout(_ref2) {
|
|
|
6095
6114
|
var TafWrapper = function TafWrapper(_a) {
|
|
6096
6115
|
var children = _a.children,
|
|
6097
6116
|
props = __rest(_a, ["children"]);
|
|
6098
|
-
return /*#__PURE__*/React.createElement(
|
|
6117
|
+
return /*#__PURE__*/React.createElement(ReactHookFormProvider, {
|
|
6099
6118
|
options: {
|
|
6100
6119
|
mode: 'onTouched',
|
|
6101
6120
|
reValidateMode: 'onChange',
|
|
@@ -6105,7 +6124,7 @@ var TafWrapper = function TafWrapper(_a) {
|
|
|
6105
6124
|
changeGroups: [emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup]
|
|
6106
6125
|
}
|
|
6107
6126
|
}
|
|
6108
|
-
}, children));
|
|
6127
|
+
}, /*#__PURE__*/React.createElement(TafModuleProvider, Object.assign({}, props), children));
|
|
6109
6128
|
};
|
|
6110
6129
|
|
|
6111
6130
|
var getCurrentDate = function getCurrentDate() {
|
|
@@ -6269,32 +6288,45 @@ var createApi$1 = function createApi(props) {
|
|
|
6269
6288
|
|
|
6270
6289
|
// Used to mimic an authenticated user
|
|
6271
6290
|
var MOCK_USERNAME = 'user.name';
|
|
6272
|
-
var currentDate =
|
|
6273
|
-
var tomorrowDate =
|
|
6291
|
+
var currentDate = dateUtils.dateToString(dateUtils.utc(), DATE_FORMAT_YEAR);
|
|
6292
|
+
var tomorrowDate = dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
|
|
6293
|
+
days: 1
|
|
6294
|
+
}), DATE_FORMAT_YEAR);
|
|
6274
6295
|
var airportPeriod = 6;
|
|
6275
6296
|
var airportValidity = 40;
|
|
6276
6297
|
var validDateRange = function validDateRange(refHour, period) {
|
|
6277
|
-
var
|
|
6278
|
-
var
|
|
6279
|
-
|
|
6280
|
-
|
|
6281
|
-
|
|
6298
|
+
var hours = dateUtils.dateToString(refHour, 'HH');
|
|
6299
|
+
var startHour = period * Math.floor(parseInt(hours, 10) / period) % 24;
|
|
6300
|
+
var start = dateUtils.set(refHour, {
|
|
6301
|
+
hours: startHour,
|
|
6302
|
+
minutes: 0,
|
|
6303
|
+
seconds: 0
|
|
6304
|
+
});
|
|
6305
|
+
var end = dateUtils.add(start, {
|
|
6306
|
+
hours: airportValidity
|
|
6282
6307
|
});
|
|
6283
|
-
|
|
6284
|
-
return [start.format('YYYY-MM-DDTHH:mm:ss'), end.format('YYYY-MM-DDTHH:mm:ss')];
|
|
6308
|
+
return [dateUtils.dateToString(start, DATE_FORMAT_FULL, false), dateUtils.dateToString(end, DATE_FORMAT_FULL, false)];
|
|
6285
6309
|
};
|
|
6286
6310
|
var dateAdd = function dateAdd(refDateAsString, hours) {
|
|
6287
|
-
|
|
6311
|
+
var newDate = dateUtils.add(dateUtils.utc(refDateAsString), {
|
|
6312
|
+
hours: hours
|
|
6313
|
+
});
|
|
6314
|
+
var formattedDate = dateUtils.dateToString(newDate, DATE_FORMAT_FULL);
|
|
6315
|
+
return formattedDate;
|
|
6288
6316
|
};
|
|
6289
|
-
var _validDateRange = validDateRange(
|
|
6317
|
+
var _validDateRange = validDateRange(dateUtils.utc(), airportPeriod),
|
|
6290
6318
|
_validDateRange2 = _slicedToArray(_validDateRange, 2),
|
|
6291
6319
|
currentValidDateStart = _validDateRange2[0],
|
|
6292
6320
|
currentValidDateEnd = _validDateRange2[1];
|
|
6293
|
-
var _validDateRange3 = validDateRange(
|
|
6321
|
+
var _validDateRange3 = validDateRange(dateUtils.add(dateUtils.utc(), {
|
|
6322
|
+
hours: 6
|
|
6323
|
+
}), airportPeriod),
|
|
6294
6324
|
_validDateRange4 = _slicedToArray(_validDateRange3, 2),
|
|
6295
6325
|
upcomingValidDateStart = _validDateRange4[0],
|
|
6296
6326
|
upcomingValidDateEnd = _validDateRange4[1];
|
|
6297
|
-
var _validDateRange5 = validDateRange(
|
|
6327
|
+
var _validDateRange5 = validDateRange(dateUtils.sub(dateUtils.utc(), {
|
|
6328
|
+
hours: 6
|
|
6329
|
+
}), airportPeriod),
|
|
6298
6330
|
_validDateRange6 = _slicedToArray(_validDateRange5, 2),
|
|
6299
6331
|
expiredValidDateStart = _validDateRange6[0],
|
|
6300
6332
|
expiredValidDateEnd = _validDateRange6[1];
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { FieldValues, UseFieldArrayReturn } from 'react-hook-form';
|
|
2
3
|
import { BaseTaf, TafActions } from '../../types';
|
|
3
4
|
type ValidateFormPromise = () => Promise<void | BaseTaf>;
|
|
4
5
|
interface TafModuleMethods {
|
|
@@ -10,6 +11,7 @@ interface TafModuleContextState {
|
|
|
10
11
|
tafAction: TafActions;
|
|
11
12
|
setTafAction: (action: TafActions) => void;
|
|
12
13
|
onPreventCloseView: (shouldPreventClose: boolean) => void;
|
|
14
|
+
useFieldArrayMethods: UseFieldArrayReturn<FieldValues, string>;
|
|
13
15
|
}
|
|
14
16
|
declare const TafModuleContext: React.Context<TafModuleContextState>;
|
|
15
17
|
export declare const useTafModuleContext: () => Partial<TafModuleContextState>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { TafFromBackend } from '../../types';
|
|
2
2
|
export declare const MOCK_USERNAME = "user.name";
|
|
3
|
-
export declare const dateFormatUTC = "YYYY-MM-DDTHH:mmZ";
|
|
4
3
|
export declare const fakeTafList: TafFromBackend[];
|
|
5
4
|
export declare const fakeNewTaf: TafFromBackend;
|
|
6
5
|
export declare const fakeNewFixedTaf: TafFromBackend;
|