@opengeoweb/taf 1.2.3 → 2.1.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/lib/TafDemo.stories.d.ts +1 -0
- package/lib/components/IssuesPane/IssuesPane.stories.d.ts +0 -4
- package/lib/components/Providers/Providers.d.ts +11 -0
- package/lib/components/TafForm/TafForm.d.ts +20 -3
- package/lib/components/TafForm/TafFormRow/validField.d.ts +7 -2
- package/lib/components/TafForm/TafFormRow/weather.d.ts +4 -0
- package/lib/components/TafForm/TafFormWrapper.d.ts +1 -1
- package/lib/components/TafForm/TafFormWrapper.stories.d.ts +1 -0
- package/lib/components/TafForm/utils.d.ts +6 -6
- package/lib/components/TafList/TafList.stories.d.ts +1 -0
- package/lib/utils/api.d.ts +1 -1
- package/lib/utils/mockdata/fakeTafList.d.ts +1 -0
- package/lib/utils/testUtils.d.ts +0 -2
- package/package.json +6 -6
- package/taf.esm.js +967 -712
- package/taf.umd.js +420 -311
package/taf.umd.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('@material-ui/core'), require('@material-ui/lab'), require('moment'), require('@opengeoweb/shared'), require('@material-ui/icons'), require('@opengeoweb/api'), require('@opengeoweb/form-fields'), require('react-hook-form'), require('react-sortablejs')) :
|
|
3
3
|
typeof define === 'function' && define.amd ? define(['exports', 'react', '@material-ui/core', '@material-ui/lab', 'moment', '@opengeoweb/shared', '@material-ui/icons', '@opengeoweb/api', '@opengeoweb/form-fields', 'react-hook-form', 'react-sortablejs'], factory) :
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Taf = {}, global.React, global.core, global.lab, global.moment, global.shared, global.icons, global.api, global.formFields, global.reactHookForm, global.reactSortablejs));
|
|
5
|
-
}(this, (function (exports, React, core, lab, moment, shared, icons, api, formFields, reactHookForm, reactSortablejs) { 'use strict';
|
|
5
|
+
})(this, (function (exports, React, core, lab, moment, shared, icons, api, formFields, reactHookForm, reactSortablejs) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -15,14 +15,12 @@
|
|
|
15
15
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () {
|
|
19
|
-
return e[k];
|
|
20
|
-
}
|
|
18
|
+
get: function () { return e[k]; }
|
|
21
19
|
});
|
|
22
20
|
}
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
|
-
n[
|
|
23
|
+
n["default"] = e;
|
|
26
24
|
return Object.freeze(n);
|
|
27
25
|
}
|
|
28
26
|
|
|
@@ -229,19 +227,21 @@
|
|
|
229
227
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
230
228
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
231
229
|
* */
|
|
230
|
+
var FORMAT_DAYS_HOURS = 'DDHH';
|
|
231
|
+
var FORMAT_DAYS_HOURS_MINUTS = 'DDHHmm'; // formatters
|
|
232
232
|
|
|
233
233
|
var formatValidToString = function formatValidToString(valid) {
|
|
234
234
|
// Ensure end of valid period if midnight is shown as 24 and not 00
|
|
235
|
-
var endHours = moment__default[
|
|
236
|
-
var endDate = endHours === '24' ? moment__default[
|
|
237
|
-
return valid.end ? moment__default[
|
|
235
|
+
var endHours = moment__default["default"].utc(valid.end).format('kk');
|
|
236
|
+
var endDate = endHours === '24' ? moment__default["default"].utc(valid.end).add(-1, 'day').format('DD') : moment__default["default"].utc(valid.end).format('DD');
|
|
237
|
+
return valid.end ? moment__default["default"].utc(valid.start).format(FORMAT_DAYS_HOURS) + "/" + endDate + endHours : moment__default["default"].utc(valid.start).format(FORMAT_DAYS_HOURS_MINUTS);
|
|
238
238
|
};
|
|
239
239
|
|
|
240
240
|
var getSections = function getSections(value, format) {
|
|
241
241
|
return {
|
|
242
242
|
day: parseInt(value.substring(0, 2), 10),
|
|
243
243
|
hour: parseInt(value.substring(2, 4), 10),
|
|
244
|
-
min: format ===
|
|
244
|
+
min: format === FORMAT_DAYS_HOURS_MINUTS ? parseInt(value.substring(4), 10) : 0
|
|
245
245
|
};
|
|
246
246
|
};
|
|
247
247
|
|
|
@@ -268,10 +268,10 @@
|
|
|
268
268
|
if (!value) return null; // Create valid object from passed string
|
|
269
269
|
|
|
270
270
|
var trimmedValue = value.trim();
|
|
271
|
-
var tafStartMoment = moment__default[
|
|
272
|
-
var tafEndMoment = moment__default[
|
|
271
|
+
var tafStartMoment = moment__default["default"].utc(tafStart);
|
|
272
|
+
var tafEndMoment = moment__default["default"].utc(tafEnd);
|
|
273
273
|
var startEnd = trimmedValue.split('/');
|
|
274
|
-
var format = trimmedValue.indexOf('/') === -1 ?
|
|
274
|
+
var format = trimmedValue.indexOf('/') === -1 ? FORMAT_DAYS_HOURS_MINUTS : FORMAT_DAYS_HOURS;
|
|
275
275
|
var startSections = getSections(startEnd[0], format);
|
|
276
276
|
var start = getValidityTimeStamp('start', startSections, tafStartMoment, tafEndMoment).format('YYYY-MM-DDTHH:mm:ss[Z]'); // If we only have start value - return that otherwise, also get end time
|
|
277
277
|
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
-
var endSections = getSections(startEnd[1],
|
|
284
|
+
var endSections = getSections(startEnd[1], FORMAT_DAYS_HOURS);
|
|
285
285
|
var end = getValidityTimeStamp('end', endSections, tafStartMoment, tafEndMoment).format('YYYY-MM-DDTHH:mm:ss[Z]');
|
|
286
286
|
return {
|
|
287
287
|
start: start,
|
|
@@ -295,7 +295,6 @@
|
|
|
295
295
|
var invalidValidityStartTimeMessage = 'Invalid validity start time, change group validity must lie within the TAF validity period';
|
|
296
296
|
var invalidValidityPeriodMessage = 'Invalid validity period, validity end time has to be after validity start time';
|
|
297
297
|
var invalidValidityEndTimeMessage = 'Invalid validity end time, change group validity must lie within the TAF validity period';
|
|
298
|
-
var invalidValidityLengthMessage = 'Invalid validity period, expected either DDHH/DDHH or DDHHmm';
|
|
299
298
|
var invalidChangeValidInterFieldMessage = 'Invalid validity period, expected DDHH/DDHH for BECMG and TEMPO or DDHHmm for FM';
|
|
300
299
|
var invalidBECMGDurationValidInterFieldMessage = 'Invalid validity period, for BECMG only validity periods with a duration of 1, 2, 3 or 4 hours are allowed'; // Validations
|
|
301
300
|
// Ensure all individual sections are correct (DD HH mm etc)
|
|
@@ -318,10 +317,10 @@
|
|
|
318
317
|
|
|
319
318
|
|
|
320
319
|
var validateIsValidDates = function validateIsValidDates(value, tafStart, tafEnd) {
|
|
321
|
-
var tafStartMoment = moment__default[
|
|
322
|
-
var tafEndMoment = moment__default[
|
|
320
|
+
var tafStartMoment = moment__default["default"].utc(tafStart);
|
|
321
|
+
var tafEndMoment = moment__default["default"].utc(tafEnd);
|
|
323
322
|
var startEnd = value.split('/');
|
|
324
|
-
var format = value.indexOf('/') === -1 ?
|
|
323
|
+
var format = value.indexOf('/') === -1 ? FORMAT_DAYS_HOURS_MINUTS : FORMAT_DAYS_HOURS;
|
|
325
324
|
var validateMsg = []; // Validate start time
|
|
326
325
|
|
|
327
326
|
var startSections = getSections(startEnd[0], format); // Validate individual sections for start
|
|
@@ -337,7 +336,7 @@
|
|
|
337
336
|
|
|
338
337
|
|
|
339
338
|
if (startEnd.length > 1) {
|
|
340
|
-
var endSections = getSections(startEnd[1],
|
|
339
|
+
var endSections = getSections(startEnd[1], FORMAT_DAYS_HOURS); // Validate individual sections for end
|
|
341
340
|
|
|
342
341
|
var sectionValidationEnd = validateValidSections(endSections, 'end'); // If invalid end - return with errors
|
|
343
342
|
|
|
@@ -367,7 +366,7 @@
|
|
|
367
366
|
|
|
368
367
|
|
|
369
368
|
if (trimmedValue.length < 6 || trimmedValue.length > 9 || !(trimmedValue.match(/^[0-9]{4}\/[0-9]{4}$/) || trimmedValue.match(/^[0-9]{6}$/))) {
|
|
370
|
-
return
|
|
369
|
+
return invalidChangeValidInterFieldMessage;
|
|
371
370
|
} // Ensure valid date(s) can be made
|
|
372
371
|
|
|
373
372
|
|
|
@@ -396,14 +395,14 @@
|
|
|
396
395
|
|
|
397
396
|
|
|
398
397
|
if (trimmedValueChange === 'BECMG') {
|
|
399
|
-
var tafStartMoment = moment__default[
|
|
400
|
-
var tafEndMoment = moment__default[
|
|
398
|
+
var tafStartMoment = moment__default["default"].utc(tafStart);
|
|
399
|
+
var tafEndMoment = moment__default["default"].utc(tafEnd);
|
|
401
400
|
var startEnd = trimmedValue.split('/');
|
|
402
|
-
var format = trimmedValue.indexOf('/') === -1 ?
|
|
401
|
+
var format = trimmedValue.indexOf('/') === -1 ? FORMAT_DAYS_HOURS_MINUTS : FORMAT_DAYS_HOURS; // Validate start time
|
|
403
402
|
|
|
404
403
|
var startSections = getSections(startEnd[0], format);
|
|
405
404
|
var startTimestamp = getValidityTimeStamp('start', startSections, tafStartMoment, tafEndMoment);
|
|
406
|
-
var endSections = getSections(startEnd[1],
|
|
405
|
+
var endSections = getSections(startEnd[1], FORMAT_DAYS_HOURS);
|
|
407
406
|
var endTimestamp = getValidityTimeStamp('end', endSections, tafStartMoment, tafEndMoment);
|
|
408
407
|
var timeDifference = endTimestamp.diff(startTimestamp, 'hours');
|
|
409
408
|
|
|
@@ -412,6 +411,57 @@
|
|
|
412
411
|
}
|
|
413
412
|
}
|
|
414
413
|
|
|
414
|
+
return true;
|
|
415
|
+
}; // validate previous changeGroup
|
|
416
|
+
|
|
417
|
+
var validProbChangeOrder = ['FM', 'BECMG', 'TEMPO', 'PROB40', 'PROB30', 'PROB40 TEMPO', 'PROB30 TEMPO'];
|
|
418
|
+
var invalidPreviousChangeGroupIsBeforeMessage = 'Valid time should be after previous valid time';
|
|
419
|
+
var invalidPreviousChangeGroupOrderMessage = "When valid times are equal, the change/probability order should be: " + validProbChangeOrder.join(', ');
|
|
420
|
+
var invalidPreviousChangeGroupHasSameValue = "When valid times are equal, probability/change can't have the same value as previous row value";
|
|
421
|
+
var validatePreviousChangeGroup = function validatePreviousChangeGroup(currentChangeGroup, nextChangeGroup, tafStart, tafEnd) {
|
|
422
|
+
// extract the needed values from changeGroups
|
|
423
|
+
var valid = currentChangeGroup.valid,
|
|
424
|
+
_a = currentChangeGroup.change,
|
|
425
|
+
change = _a === void 0 ? '' : _a,
|
|
426
|
+
_b = currentChangeGroup.probability,
|
|
427
|
+
probability = _b === void 0 ? '' : _b;
|
|
428
|
+
var previousValid = nextChangeGroup.valid,
|
|
429
|
+
_c = nextChangeGroup.change,
|
|
430
|
+
previousChange = _c === void 0 ? '' : _c,
|
|
431
|
+
_d = nextChangeGroup.probability,
|
|
432
|
+
previousProbability = _d === void 0 ? '' : _d; // get the parsed values
|
|
433
|
+
|
|
434
|
+
var validValue = parseValidToObject(valid, tafStart, tafEnd);
|
|
435
|
+
var previousValidValue = parseValidToObject(previousValid, tafStart, tafEnd);
|
|
436
|
+
|
|
437
|
+
if (!validValue || !previousValidValue || !change.length && !probability.length) {
|
|
438
|
+
return true;
|
|
439
|
+
} // validate is valid time before
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
var currentStartTime = moment__default["default"](validValue.start);
|
|
443
|
+
var previousRowStartTime = moment__default["default"](previousValidValue.start);
|
|
444
|
+
|
|
445
|
+
if (currentStartTime.isBefore(previousRowStartTime)) {
|
|
446
|
+
return invalidPreviousChangeGroupIsBeforeMessage;
|
|
447
|
+
} // validate same valid time
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
if (currentStartTime.isSame(previousRowStartTime)) {
|
|
451
|
+
// validate change/probability order
|
|
452
|
+
var currentProbChangeValue = (probability + " " + change).trim();
|
|
453
|
+
var previousProbChangeValue = (previousProbability + " " + previousChange).trim();
|
|
454
|
+
|
|
455
|
+
if (validProbChangeOrder.indexOf(currentProbChangeValue) < validProbChangeOrder.indexOf(previousProbChangeValue)) {
|
|
456
|
+
return invalidPreviousChangeGroupOrderMessage;
|
|
457
|
+
} // validate same valid + change/probability value
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
if (currentProbChangeValue === previousProbChangeValue) {
|
|
461
|
+
return invalidPreviousChangeGroupHasSameValue;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
415
465
|
return true;
|
|
416
466
|
};
|
|
417
467
|
|
|
@@ -986,22 +1036,60 @@
|
|
|
986
1036
|
})(WeatherPhenomena || (WeatherPhenomena = {}));
|
|
987
1037
|
|
|
988
1038
|
var invalidWeatherMessage = 'Invalid weather input, expected NSW or a valid weather code';
|
|
1039
|
+
var invalidWeatherCodeMessage = 'Invalid weather input, invalid weather code';
|
|
989
1040
|
var invalidWeatherNSWMessage = 'Invalid weather input, NSW is not allowed in the baseforecast and can only be used in the first weather group';
|
|
990
1041
|
var invalidWeatherWithPreviousEmptyWeather = 'Invalid weather input, value is not allowed when previous weather group(s) are empty';
|
|
991
1042
|
var invalidWeatherNonUniqueValue = 'Invalid weather input, weather groups must be unique';
|
|
992
1043
|
var invalidWeatherNonEmptyNSWGroups = 'Invalid weather input, when NSW is used, other weather groups must be empty';
|
|
993
|
-
var invalidWeatherCAVOKMessage = 'Invalid weather input, when CAVOK is used, weather groups must be empty';
|
|
1044
|
+
var invalidWeatherCAVOKMessage = 'Invalid weather input, when CAVOK is used, weather groups must be empty';
|
|
1045
|
+
var invalidWeatherVisibilityBelow5000 = 'Invalid weather input, weather codes FU, DU, HZ, DRDU and BLDU need to be combined with a visibility of 5000m or less';
|
|
1046
|
+
var invalidWeatherBRVisibility = 'Invalid weather input, weather code BR needs to be combined with a visibility between 1000 and 5000m';
|
|
1047
|
+
var invalidWeatherFGVisibility = 'Invalid weather input, weather code FG needs to be combined with a visibility below 1000m'; // validations
|
|
994
1048
|
|
|
1049
|
+
var WeatherVisibilityBelow5000 = [WeatherPhenomena.FU, WeatherPhenomena.DU, WeatherPhenomena.HZ, WeatherPhenomena.DRDU, WeatherPhenomena.BLDU];
|
|
995
1050
|
var validateWeatherField = function validateWeatherField(value, visibilityValue, NSWAllowed) {
|
|
996
1051
|
if (NSWAllowed === void 0) {
|
|
997
1052
|
NSWAllowed = true;
|
|
998
1053
|
}
|
|
999
1054
|
|
|
1000
|
-
var trimmedValue = value.trim();
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1055
|
+
var trimmedValue = value.trim(); // if empty, validate as true
|
|
1056
|
+
|
|
1057
|
+
if (trimmedValue === '') {
|
|
1058
|
+
return true;
|
|
1059
|
+
} // In case of NSW - validate if allowed
|
|
1060
|
+
|
|
1061
|
+
|
|
1062
|
+
if (trimmedValue === 'NSW' && !NSWAllowed) {
|
|
1063
|
+
return invalidWeatherNSWMessage;
|
|
1064
|
+
} // Check if cavOK - then weather group should be empty
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
if (trimmedValue && visibilityValue === 'CAVOK') {
|
|
1068
|
+
return invalidWeatherCAVOKMessage;
|
|
1069
|
+
} // Validate if entered weather is one of the allowed weather phenomena
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
if (!(trimmedValue in WeatherPhenomena) && trimmedValue !== 'NSW') {
|
|
1073
|
+
return NSWAllowed ? invalidWeatherMessage : invalidWeatherCodeMessage;
|
|
1074
|
+
} // Validate the weather code in combination with the visibility range
|
|
1075
|
+
|
|
1076
|
+
|
|
1077
|
+
var visibilityRange = parseInt(visibilityValue, 10);
|
|
1078
|
+
|
|
1079
|
+
if (WeatherVisibilityBelow5000.includes(trimmedValue) && visibilityRange > 5000) {
|
|
1080
|
+
return invalidWeatherVisibilityBelow5000;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
if (trimmedValue === WeatherPhenomena.BR && (visibilityRange < 1000 || visibilityRange > 5000)) {
|
|
1084
|
+
return invalidWeatherBRVisibility;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
if (trimmedValue === WeatherPhenomena.FG && visibilityRange >= 1000) {
|
|
1088
|
+
return invalidWeatherFGVisibility;
|
|
1089
|
+
} // Everything validated ok - return true
|
|
1090
|
+
|
|
1091
|
+
|
|
1092
|
+
return true;
|
|
1005
1093
|
};
|
|
1006
1094
|
var validateSecondWeatherField = function validateSecondWeatherField(weather1Value, weather2Value, visibilityValue) {
|
|
1007
1095
|
var trimmedWeather2Value = weather2Value.trim(); // Field can be left empty
|
|
@@ -1862,7 +1950,7 @@
|
|
|
1862
1950
|
};
|
|
1863
1951
|
|
|
1864
1952
|
var formatIssueTime = function formatIssueTime(issueDate) {
|
|
1865
|
-
return issueDate ? moment__default[
|
|
1953
|
+
return issueDate ? moment__default["default"](issueDate).utc().format('DDHHmm') + "Z" : 'Not issued';
|
|
1866
1954
|
};
|
|
1867
1955
|
function formatFormValues(row) {
|
|
1868
1956
|
return Object.keys(row).reduce(function (list, key) {
|
|
@@ -1916,6 +2004,8 @@
|
|
|
1916
2004
|
return Object.keys(row).reduce(function (list, key) {
|
|
1917
2005
|
var _a;
|
|
1918
2006
|
|
|
2007
|
+
var _b;
|
|
2008
|
+
|
|
1919
2009
|
switch (key) {
|
|
1920
2010
|
case 'valid':
|
|
1921
2011
|
{
|
|
@@ -1954,7 +2044,7 @@
|
|
|
1954
2044
|
case 'change':
|
|
1955
2045
|
case 'probability':
|
|
1956
2046
|
{
|
|
1957
|
-
return __assign(__assign({}, list), (_a = {}, _a[key] = list[key].trim(), _a));
|
|
2047
|
+
return __assign(__assign({}, list), (_a = {}, _a[key] = (_b = list[key]) === null || _b === void 0 ? void 0 : _b.trim(), _a));
|
|
1958
2048
|
}
|
|
1959
2049
|
|
|
1960
2050
|
default:
|
|
@@ -2128,8 +2218,7 @@
|
|
|
2128
2218
|
}
|
|
2129
2219
|
}
|
|
2130
2220
|
}, parsedFormValues);
|
|
2131
|
-
};
|
|
2132
|
-
var noTAC = 'Missing data: no TAC can be generated'; // Ensure we have enough data to retrieve a TAC - we only need to check for wind and visibility/ cavok as those are the only ones required in all cases
|
|
2221
|
+
}; // Ensure we have enough data to retrieve a TAC - we only need to check for wind and visibility/ cavok as those are the only ones required in all cases
|
|
2133
2222
|
|
|
2134
2223
|
var shouldRetrieveTAC = function shouldRetrieveTAC(product) {
|
|
2135
2224
|
if (product && product.baseForecast && product.baseForecast.wind && 'speed' in product.baseForecast.wind && product.baseForecast.wind.speed !== '' && (product.baseForecast.visibility && 'range' in product.baseForecast.visibility && product.baseForecast.visibility.range !== '' || product.baseForecast.cavOK)) {
|
|
@@ -2160,54 +2249,55 @@
|
|
|
2160
2249
|
cloud4: namePrefix + ".cloud.cloud4"
|
|
2161
2250
|
});
|
|
2162
2251
|
};
|
|
2252
|
+
var TAC_MISSING_DATA = 'Missing data: no TAC can be generated';
|
|
2253
|
+
var TAC_NOT_AVAILABLE = 'No TAC available';
|
|
2254
|
+
var TAC_RETRIEVING_DATA = 'Retrieving TAC';
|
|
2163
2255
|
var useTACGenerator = function useTACGenerator(taf, requestTAC, standardTAC) {
|
|
2164
2256
|
if (standardTAC === void 0) {
|
|
2165
2257
|
standardTAC = '';
|
|
2166
2258
|
}
|
|
2167
2259
|
|
|
2168
|
-
var _a = __read(React__default[
|
|
2260
|
+
var _a = __read(React__default["default"].useState(taf.status === 'NEW' ? TAC_NOT_AVAILABLE : TAC_RETRIEVING_DATA), 2),
|
|
2169
2261
|
TAC = _a[0],
|
|
2170
2262
|
setTAC = _a[1];
|
|
2171
2263
|
|
|
2264
|
+
var isMounted = shared.useIsMounted().isMounted;
|
|
2265
|
+
|
|
2172
2266
|
var retrieveTAC = function retrieveTAC(tafToPost) {
|
|
2173
2267
|
if (shouldRetrieveTAC(tafToPost)) {
|
|
2174
2268
|
requestTAC(tafToPost).then(function (result) {
|
|
2175
|
-
|
|
2269
|
+
if (isMounted.current) {
|
|
2270
|
+
setTAC(result.data);
|
|
2271
|
+
}
|
|
2176
2272
|
})["catch"](function () {
|
|
2177
|
-
|
|
2273
|
+
if (isMounted.current) {
|
|
2274
|
+
setTAC('Failed to retrieve TAC');
|
|
2275
|
+
}
|
|
2178
2276
|
});
|
|
2277
|
+
} else {
|
|
2278
|
+
setTAC(TAC_MISSING_DATA);
|
|
2179
2279
|
}
|
|
2180
|
-
|
|
2181
|
-
setTAC(noTAC);
|
|
2182
2280
|
};
|
|
2183
2281
|
|
|
2184
|
-
React__default[
|
|
2282
|
+
React__default["default"].useEffect(function () {
|
|
2185
2283
|
if (taf.status !== 'NEW' && !standardTAC) {
|
|
2186
2284
|
retrieveTAC(taf);
|
|
2187
2285
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2188
2286
|
|
|
2189
2287
|
}, []);
|
|
2190
|
-
React__default[
|
|
2288
|
+
React__default["default"].useEffect(function () {
|
|
2191
2289
|
if (standardTAC !== '') {
|
|
2192
2290
|
setTAC(standardTAC);
|
|
2193
2291
|
}
|
|
2194
2292
|
}, [standardTAC]);
|
|
2195
2293
|
return [TAC, retrieveTAC];
|
|
2196
2294
|
};
|
|
2197
|
-
var
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
return min + i;
|
|
2202
|
-
});
|
|
2203
|
-
};
|
|
2204
|
-
var useDragOrder = function useDragOrder(trigger, move, fields) {
|
|
2205
|
-
// create simple ordered list with hover (chosen) state
|
|
2206
|
-
var _a = __read(React__default['default'].useState([]), 2),
|
|
2207
|
-
sortedFields = _a[0],
|
|
2208
|
-
setSortedFields = _a[1];
|
|
2295
|
+
var useDragOrder = function useDragOrder(trigger, move, onFormBlur) {
|
|
2296
|
+
var _a = __read(React__default["default"].useState(null), 2),
|
|
2297
|
+
activeDraggingIndex = _a[0],
|
|
2298
|
+
setIsDragging = _a[1];
|
|
2209
2299
|
|
|
2210
|
-
var _b = __read(React__default[
|
|
2300
|
+
var _b = __read(React__default["default"].useState([null, null]), 2),
|
|
2211
2301
|
lastDragOrder = _b[0],
|
|
2212
2302
|
onUpdatelastDragOrder = _b[1];
|
|
2213
2303
|
|
|
@@ -2217,46 +2307,40 @@
|
|
|
2217
2307
|
if (oldIndex === undefined || newIndex === undefined) return;
|
|
2218
2308
|
move(oldIndex, newIndex);
|
|
2219
2309
|
onUpdatelastDragOrder([oldIndex, newIndex]);
|
|
2310
|
+
setIsDragging(false);
|
|
2220
2311
|
};
|
|
2221
2312
|
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
chosen: false
|
|
2228
|
-
};
|
|
2229
|
-
}));
|
|
2230
|
-
}, [fields]); // triggers validation AFTER render of new sorted elements
|
|
2313
|
+
var onStartDrag = function onStartDrag(_a) {
|
|
2314
|
+
var oldIndex = _a.oldIndex;
|
|
2315
|
+
return setIsDragging(oldIndex);
|
|
2316
|
+
}; // triggers validation AFTER render of new sorted elements
|
|
2317
|
+
|
|
2231
2318
|
|
|
2232
|
-
React__default[
|
|
2319
|
+
React__default["default"].useEffect(function () {
|
|
2233
2320
|
var _a = __read(lastDragOrder, 2),
|
|
2234
2321
|
oldIndex = _a[0],
|
|
2235
2322
|
newIndex = _a[1];
|
|
2236
2323
|
|
|
2237
2324
|
if (oldIndex !== null && newIndex !== null) {
|
|
2238
|
-
// trigger validation of
|
|
2239
|
-
|
|
2240
|
-
return a - b;
|
|
2241
|
-
}), 2),
|
|
2242
|
-
start = _b[0],
|
|
2243
|
-
end = _b[1];
|
|
2244
|
-
|
|
2245
|
-
var changedRows = getRange(start, end);
|
|
2246
|
-
var fieldsToValidate = changedRows.reduce(function (list, rowIndex) {
|
|
2247
|
-
var fieldsDict = getFieldNames(true, rowIndex);
|
|
2248
|
-
var fields = Object.keys(fieldsDict).map(function (key) {
|
|
2249
|
-
return fieldsDict[key];
|
|
2250
|
-
});
|
|
2251
|
-
return list.concat(fields);
|
|
2252
|
-
}, []);
|
|
2253
|
-
trigger(fieldsToValidate);
|
|
2325
|
+
// trigger validation of all fields
|
|
2326
|
+
trigger();
|
|
2254
2327
|
}
|
|
2255
|
-
}, [lastDragOrder, trigger]);
|
|
2328
|
+
}, [lastDragOrder, trigger]); // trigger onFormBlur AFTER render of new sorted elements so the TAC gets updated
|
|
2329
|
+
|
|
2330
|
+
React__default["default"].useEffect(function () {
|
|
2331
|
+
var _a = __read(lastDragOrder, 2),
|
|
2332
|
+
oldIndex = _a[0],
|
|
2333
|
+
newIndex = _a[1];
|
|
2334
|
+
|
|
2335
|
+
if (oldIndex !== null && newIndex !== null) {
|
|
2336
|
+
onFormBlur();
|
|
2337
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2338
|
+
|
|
2339
|
+
}, [lastDragOrder]);
|
|
2256
2340
|
return {
|
|
2257
2341
|
onChangeOrder: onChangeOrder,
|
|
2258
|
-
|
|
2259
|
-
|
|
2342
|
+
activeDraggingIndex: activeDraggingIndex,
|
|
2343
|
+
onStartDrag: onStartDrag
|
|
2260
2344
|
};
|
|
2261
2345
|
}; // dialog utils
|
|
2262
2346
|
|
|
@@ -2388,9 +2472,9 @@
|
|
|
2388
2472
|
var getDisplayValue = function getDisplayValue(value, disabled) {
|
|
2389
2473
|
return disabled && !value ? '-' : value;
|
|
2390
2474
|
};
|
|
2391
|
-
var BaseTextField = /*#__PURE__*/React__default[
|
|
2475
|
+
var BaseTextField = /*#__PURE__*/React__default["default"].memo(function (props) {
|
|
2392
2476
|
var classes = useStyles$9();
|
|
2393
|
-
return /*#__PURE__*/React__default[
|
|
2477
|
+
return /*#__PURE__*/React__default["default"].createElement(core.TextField, __assign({
|
|
2394
2478
|
type: "text",
|
|
2395
2479
|
variant: "filled",
|
|
2396
2480
|
InputProps: {
|
|
@@ -2436,14 +2520,14 @@
|
|
|
2436
2520
|
setValue = _k.setValue,
|
|
2437
2521
|
errors = _k.errors;
|
|
2438
2522
|
|
|
2439
|
-
var inputRef = React__default[
|
|
2523
|
+
var inputRef = React__default["default"].useRef(null);
|
|
2440
2524
|
var fieldErrors = getTafErrors(name, errors);
|
|
2441
2525
|
|
|
2442
|
-
var _l = __read(React__default[
|
|
2526
|
+
var _l = __read(React__default["default"].useState(null), 2),
|
|
2443
2527
|
maxLength = _l[0],
|
|
2444
2528
|
setMaxLength = _l[1];
|
|
2445
2529
|
|
|
2446
|
-
var onKeyDown = React__default[
|
|
2530
|
+
var onKeyDown = React__default["default"].useCallback(function (event) {
|
|
2447
2531
|
var currentValue = getValues(name).toString();
|
|
2448
2532
|
var textSelection = currentValue.substring(inputRef.current.selectionStart, inputRef.current.selectionEnd);
|
|
2449
2533
|
|
|
@@ -2460,7 +2544,7 @@
|
|
|
2460
2544
|
}
|
|
2461
2545
|
}
|
|
2462
2546
|
}, [name, autoComplete, setValue, getValues]);
|
|
2463
|
-
var onChangeField = React__default[
|
|
2547
|
+
var onChangeField = React__default["default"].useCallback(function (event, callback) {
|
|
2464
2548
|
var valueUppercase = event.currentTarget.value.toUpperCase();
|
|
2465
2549
|
|
|
2466
2550
|
if (autoComplete) {
|
|
@@ -2474,24 +2558,24 @@
|
|
|
2474
2558
|
callback(valueUppercase);
|
|
2475
2559
|
onChange(valueUppercase);
|
|
2476
2560
|
}, [onChange, autoComplete]);
|
|
2477
|
-
var onBlurField = React__default[
|
|
2561
|
+
var onBlurField = React__default["default"].useCallback(function (callback) {
|
|
2478
2562
|
callback();
|
|
2479
2563
|
onBlur();
|
|
2480
2564
|
}, [onBlur]);
|
|
2481
|
-
var onFocusField = React__default[
|
|
2565
|
+
var onFocusField = React__default["default"].useCallback(function () {
|
|
2482
2566
|
var _a;
|
|
2483
2567
|
|
|
2484
2568
|
inputRef.current.disabled = false;
|
|
2485
2569
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
2486
2570
|
}, []);
|
|
2487
|
-
return /*#__PURE__*/React__default[
|
|
2571
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
2488
2572
|
item: true,
|
|
2489
2573
|
xs: true,
|
|
2490
2574
|
className: classes.textFieldGridItem
|
|
2491
|
-
}, /*#__PURE__*/React__default[
|
|
2575
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
|
|
2492
2576
|
render: function render(_props) {
|
|
2493
2577
|
var displayValue = formatter ? formatter(_props.value) : getDisplayValue(_props.value, disabled);
|
|
2494
|
-
return /*#__PURE__*/React__default[
|
|
2578
|
+
return /*#__PURE__*/React__default["default"].createElement(BaseTextField, {
|
|
2495
2579
|
label: label,
|
|
2496
2580
|
disabled: disabled,
|
|
2497
2581
|
name: name,
|
|
@@ -2593,7 +2677,7 @@
|
|
|
2593
2677
|
];
|
|
2594
2678
|
};
|
|
2595
2679
|
|
|
2596
|
-
var TafFormRow = /*#__PURE__*/React__default[
|
|
2680
|
+
var TafFormRow = /*#__PURE__*/React__default["default"].forwardRef(function (_a, ref) {
|
|
2597
2681
|
var _b = _a.isChangeGroup,
|
|
2598
2682
|
isChangeGroup = _b === void 0 ? false : _b,
|
|
2599
2683
|
_c = _a.disabled,
|
|
@@ -2670,30 +2754,55 @@
|
|
|
2670
2754
|
return true;
|
|
2671
2755
|
};
|
|
2672
2756
|
|
|
2673
|
-
|
|
2757
|
+
var validatePreviousRow = React__default["default"].useCallback(function () {
|
|
2758
|
+
if (isChangeGroup && index > 0) {
|
|
2759
|
+
var _a = getValues(),
|
|
2760
|
+
validDateEnd = _a.validDateEnd,
|
|
2761
|
+
validDateStart = _a.validDateStart,
|
|
2762
|
+
changeGroups = _a.changeGroups;
|
|
2763
|
+
|
|
2764
|
+
var currentChangeGroup = changeGroups[index];
|
|
2765
|
+
var previousChangeGroup = changeGroups[index - 1];
|
|
2766
|
+
return validatePreviousChangeGroup(currentChangeGroup, previousChangeGroup, validDateStart, validDateEnd);
|
|
2767
|
+
}
|
|
2768
|
+
|
|
2769
|
+
return true;
|
|
2770
|
+
}, [index, isChangeGroup, getValues]);
|
|
2771
|
+
|
|
2772
|
+
var getFieldFromNextRow = function getFieldFromNextRow(fieldname) {
|
|
2773
|
+
if (fieldname === void 0) {
|
|
2774
|
+
fieldname = 'valid';
|
|
2775
|
+
}
|
|
2776
|
+
|
|
2777
|
+
var nextValidFieldName = "changeGroups[" + (index + 1) + "]." + fieldname;
|
|
2778
|
+
var nextRowValidValue = getValues(nextValidFieldName);
|
|
2779
|
+
return nextRowValidValue ? [nextValidFieldName] : [];
|
|
2780
|
+
};
|
|
2781
|
+
|
|
2782
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Grid, __assign({
|
|
2674
2783
|
"data-testid": "row-" + namePrefix,
|
|
2675
2784
|
container: true,
|
|
2676
2785
|
ref: ref
|
|
2677
|
-
}, props), !isChangeGroup && /*#__PURE__*/React__default[
|
|
2786
|
+
}, props), !isChangeGroup && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2678
2787
|
label: "Type",
|
|
2679
2788
|
name: fieldNames.messageType,
|
|
2680
2789
|
disabled: true
|
|
2681
|
-
}), /*#__PURE__*/React__default[
|
|
2790
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2682
2791
|
label: "Location",
|
|
2683
2792
|
name: "location",
|
|
2684
2793
|
disabled: true
|
|
2685
|
-
}), /*#__PURE__*/React__default[
|
|
2794
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2686
2795
|
formatter: formatIssueTime,
|
|
2687
2796
|
label: "Issue time",
|
|
2688
2797
|
name: "issueDate",
|
|
2689
2798
|
disabled: true
|
|
2690
|
-
})), isChangeGroup && /*#__PURE__*/React__default[
|
|
2799
|
+
})), isChangeGroup && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
2691
2800
|
item: true,
|
|
2692
2801
|
xs: true,
|
|
2693
2802
|
style: {
|
|
2694
2803
|
display: 'flex'
|
|
2695
2804
|
}
|
|
2696
|
-
}, dragHandle), /*#__PURE__*/React__default[
|
|
2805
|
+
}, dragHandle), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2697
2806
|
label: "Prob",
|
|
2698
2807
|
name: fieldNames.probability,
|
|
2699
2808
|
disabled: disabled,
|
|
@@ -2713,10 +2822,11 @@
|
|
|
2713
2822
|
}],
|
|
2714
2823
|
onBlur: function onBlur() {
|
|
2715
2824
|
if (isChangeGroup) {
|
|
2716
|
-
|
|
2825
|
+
var nextValidFieldName = getFieldFromNextRow();
|
|
2826
|
+
trigger(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(subFields)), __read(mainOptionalFields)), __read(mainFields)), __read(nextValidFieldName)));
|
|
2717
2827
|
}
|
|
2718
2828
|
}
|
|
2719
|
-
}), /*#__PURE__*/React__default[
|
|
2829
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2720
2830
|
label: "Change",
|
|
2721
2831
|
name: fieldNames.change,
|
|
2722
2832
|
disabled: disabled,
|
|
@@ -2742,10 +2852,11 @@
|
|
|
2742
2852
|
}],
|
|
2743
2853
|
onBlur: function onBlur() {
|
|
2744
2854
|
if (isChangeGroup) {
|
|
2745
|
-
|
|
2855
|
+
var nextValidFieldName = getFieldFromNextRow();
|
|
2856
|
+
trigger(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(subFields)), __read(mainOptionalFields)), __read(mainFields)), __read(nextValidFieldName)));
|
|
2746
2857
|
}
|
|
2747
2858
|
}
|
|
2748
|
-
})), /*#__PURE__*/React__default[
|
|
2859
|
+
})), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2749
2860
|
label: "Valid",
|
|
2750
2861
|
name: fieldNames.valid,
|
|
2751
2862
|
// always disabled for baseforecast row
|
|
@@ -2759,15 +2870,17 @@
|
|
|
2759
2870
|
},
|
|
2760
2871
|
validateValidChangeGroupInterField: function validateValidChangeGroupInterField$1(value) {
|
|
2761
2872
|
return isChangeGroup ? validateValidChangeGroupInterField(value, getValues(fieldNames.change), getValues('validDateStart'), getValues('validDateEnd')) : true;
|
|
2762
|
-
}
|
|
2873
|
+
},
|
|
2874
|
+
validatePreviousRow: validatePreviousRow
|
|
2763
2875
|
}
|
|
2764
2876
|
},
|
|
2765
2877
|
onBlur: function onBlur() {
|
|
2766
2878
|
if (isChangeGroup) {
|
|
2767
|
-
|
|
2879
|
+
var nextValidFieldName = getFieldFromNextRow();
|
|
2880
|
+
trigger(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(subFields)), __read(mainOptionalFields)), __read(mainFields)), __read(nextValidFieldName)));
|
|
2768
2881
|
}
|
|
2769
2882
|
}
|
|
2770
|
-
}), /*#__PURE__*/React__default[
|
|
2883
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2771
2884
|
label: "Wind",
|
|
2772
2885
|
name: fieldNames.wind,
|
|
2773
2886
|
disabled: disabled,
|
|
@@ -2787,7 +2900,7 @@
|
|
|
2787
2900
|
}
|
|
2788
2901
|
},
|
|
2789
2902
|
autoFocus: !isChangeGroup
|
|
2790
|
-
}), /*#__PURE__*/React__default[
|
|
2903
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2791
2904
|
label: "Visibility",
|
|
2792
2905
|
name: fieldNames.visibility,
|
|
2793
2906
|
disabled: disabled,
|
|
@@ -2806,9 +2919,10 @@
|
|
|
2806
2919
|
value: 'CAVOK'
|
|
2807
2920
|
}],
|
|
2808
2921
|
onBlur: function onBlur() {
|
|
2809
|
-
|
|
2922
|
+
var fields = isChangeGroup ? __spreadArray(__spreadArray([], __read(subFields)), __read(mainFields)) : subFields;
|
|
2923
|
+
trigger(__spreadArray(__spreadArray([], __read(fields)), [fieldNames.weather1, fieldNames.weather2, fieldNames.weather3]));
|
|
2810
2924
|
}
|
|
2811
|
-
}), /*#__PURE__*/React__default[
|
|
2925
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2812
2926
|
label: "Weather",
|
|
2813
2927
|
name: fieldNames.weather1,
|
|
2814
2928
|
disabled: disabled,
|
|
@@ -2828,7 +2942,7 @@
|
|
|
2828
2942
|
var fields = isChangeGroup ? __spreadArray(__spreadArray([], __read(subFields)), __read(mainFields)) : [];
|
|
2829
2943
|
return trigger(__spreadArray(__spreadArray([], __read(fields)), [fieldNames.weather2, fieldNames.weather3]));
|
|
2830
2944
|
}
|
|
2831
|
-
}), /*#__PURE__*/React__default[
|
|
2945
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2832
2946
|
label: "Weather",
|
|
2833
2947
|
name: fieldNames.weather2,
|
|
2834
2948
|
disabled: disabled,
|
|
@@ -2844,7 +2958,7 @@
|
|
|
2844
2958
|
var fields = isChangeGroup ? __spreadArray(__spreadArray([], __read(subFields)), __read(mainFields)) : [];
|
|
2845
2959
|
return trigger(__spreadArray(__spreadArray([], __read(fields)), [fieldNames.weather3]));
|
|
2846
2960
|
}
|
|
2847
|
-
}), /*#__PURE__*/React__default[
|
|
2961
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2848
2962
|
label: "Weather",
|
|
2849
2963
|
name: fieldNames.weather3,
|
|
2850
2964
|
disabled: disabled,
|
|
@@ -2856,7 +2970,7 @@
|
|
|
2856
2970
|
}
|
|
2857
2971
|
}
|
|
2858
2972
|
}
|
|
2859
|
-
}), /*#__PURE__*/React__default[
|
|
2973
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2860
2974
|
label: "Cloud",
|
|
2861
2975
|
name: fieldNames.cloud1,
|
|
2862
2976
|
disabled: disabled,
|
|
@@ -2876,7 +2990,7 @@
|
|
|
2876
2990
|
var fields = isChangeGroup ? __spreadArray(__spreadArray([], __read(subFields)), __read(mainFields)) : [];
|
|
2877
2991
|
return trigger(__spreadArray(__spreadArray([], __read(fields)), [fieldNames.cloud2, fieldNames.cloud3, fieldNames.cloud4]));
|
|
2878
2992
|
}
|
|
2879
|
-
}), /*#__PURE__*/React__default[
|
|
2993
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2880
2994
|
label: "Cloud",
|
|
2881
2995
|
name: fieldNames.cloud2,
|
|
2882
2996
|
disabled: disabled,
|
|
@@ -2891,7 +3005,7 @@
|
|
|
2891
3005
|
onBlur: function onBlur() {
|
|
2892
3006
|
return trigger([fieldNames.cloud3, fieldNames.cloud4]);
|
|
2893
3007
|
}
|
|
2894
|
-
}), /*#__PURE__*/React__default[
|
|
3008
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2895
3009
|
label: "Cloud",
|
|
2896
3010
|
name: fieldNames.cloud3,
|
|
2897
3011
|
disabled: disabled,
|
|
@@ -2906,7 +3020,7 @@
|
|
|
2906
3020
|
onBlur: function onBlur() {
|
|
2907
3021
|
return trigger(fieldNames.cloud4);
|
|
2908
3022
|
}
|
|
2909
|
-
}), /*#__PURE__*/React__default[
|
|
3023
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafFormTextField, {
|
|
2910
3024
|
label: "Cloud",
|
|
2911
3025
|
name: fieldNames.cloud4,
|
|
2912
3026
|
disabled: disabled,
|
|
@@ -2918,13 +3032,13 @@
|
|
|
2918
3032
|
}
|
|
2919
3033
|
}
|
|
2920
3034
|
}
|
|
2921
|
-
}), (!isChangeGroup || disabled) && /*#__PURE__*/React__default[
|
|
3035
|
+
}), (!isChangeGroup || disabled) && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
2922
3036
|
item: true,
|
|
2923
3037
|
xs: true
|
|
2924
|
-
}), isChangeGroup && !disabled && /*#__PURE__*/React__default[
|
|
3038
|
+
}), isChangeGroup && !disabled && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
2925
3039
|
item: true,
|
|
2926
3040
|
xs: true
|
|
2927
|
-
}, /*#__PURE__*/React__default[
|
|
3041
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.IconButton, __assign({
|
|
2928
3042
|
"aria-label": "delete",
|
|
2929
3043
|
"data-testid": "remove-changeGroup",
|
|
2930
3044
|
onClick: function onClick() {
|
|
@@ -2932,7 +3046,7 @@
|
|
|
2932
3046
|
}
|
|
2933
3047
|
}, lastRow ? {
|
|
2934
3048
|
tabIndex: '-1'
|
|
2935
|
-
} : {}), /*#__PURE__*/React__default[
|
|
3049
|
+
} : {}), /*#__PURE__*/React__default["default"].createElement(icons.Delete, null))));
|
|
2936
3050
|
});
|
|
2937
3051
|
|
|
2938
3052
|
var getIssuesLabel = function getIssuesLabel(sumOfErrors) {
|
|
@@ -2984,20 +3098,20 @@
|
|
|
2984
3098
|
};
|
|
2985
3099
|
|
|
2986
3100
|
var ThumbsUp = function ThumbsUp(props) {
|
|
2987
|
-
return /*#__PURE__*/React__default[
|
|
3101
|
+
return /*#__PURE__*/React__default["default"].createElement(core.SvgIcon, __assign({
|
|
2988
3102
|
fontSize: "inherit",
|
|
2989
3103
|
viewBox: "0 0 58 69"
|
|
2990
|
-
}, props), /*#__PURE__*/React__default[
|
|
3104
|
+
}, props), /*#__PURE__*/React__default["default"].createElement("title", null, "Thumbs up"), /*#__PURE__*/React__default["default"].createElement("g", {
|
|
2991
3105
|
id: "Thumbs-up",
|
|
2992
3106
|
stroke: "none",
|
|
2993
3107
|
strokeWidth: "1",
|
|
2994
3108
|
fill: "none",
|
|
2995
3109
|
fillRule: "evenodd"
|
|
2996
|
-
}, /*#__PURE__*/React__default[
|
|
3110
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
2997
3111
|
d: "M3.99883665,31.7843145 C7.41834232,30.0745617 7.39773108,30.3805485 10.9988366,28.8843145 C14.5999422,27.3880805 16.06167,27.0500418 18.1988366,25.8843145 C19.0904815,25.3979628 19.820202,24.8243341 20.5488366,24.1634286 C20.9845024,23.7682595 22.8819728,21.7794437 23.5488366,20.8277879 C24.2586546,19.8148341 25.1756722,18.5003429 25.9988366,16.8843145 C28.3936103,12.1829184 28.889513,9.4076237 29.8988366,6.88431453 C30.4506375,5.50481234 31.0206747,4.13576029 31.6089482,2.77715837 C31.8562473,2.20602771 32.1648239,1.47549588 32.9988366,0.88431453 C33.2365758,0.715795602 34.0556054,0.253858312 35.0144255,0.0843145301 C36.0262338,-0.0945989315 37.1937102,0.0296108539 37.9980376,0.28431453 C38.7449403,0.520833719 39.4692925,0.860990256 40.1710941,1.30478414 C40.2879689,1.37869154 41.2393256,2.13799569 41.8988366,3.58269657 C42.290748,4.4412034 42.5040976,4.92788584 42.7988366,6.88431453 C42.9953293,8.18860032 43.0453293,9.52193365 42.9488366,10.8843145 C42.947848,11.8251839 42.6645146,13.1585172 42.0988366,14.8843145 C41.9160014,15.4421169 41.6403041,16.2990156 41.2988366,17.1941099 C40.9325633,18.1542284 40.4965053,19.1582935 40.1988366,19.8843145 C39.1594737,22.4193462 37.7498356,25.6900566 37.4561402,26.5124038 C37.2603433,27.0606352 37.1745754,27.6512721 37.1988366,28.2843145 C37.21217,28.4109812 37.2455033,28.5187344 37.2988366,28.6075742 C37.35217,28.6964139 37.45217,28.821994 37.5988366,28.9843145 C38.7401033,28.7100145 39.6802034,28.5266812 40.4191367,28.4343145 C41.6262088,28.2834305 44.7342553,28.0975232 47.4943878,28.1962584 C50.2545202,28.2949937 51.7465936,28.4428269 52.9988366,28.8843145 C53.8336653,29.1786396 54.540332,29.8453063 55.1188366,30.8843145 C55.3507184,31.5616882 55.477385,32.2303996 55.4988366,32.8904489 C55.5202882,33.5504981 55.4369549,34.21512 55.2488366,34.8843145 C54.956044,35.585751 54.5393773,36.1190843 53.9988366,36.4843145 C53.4582959,36.8495447 52.6416293,37.1495447 51.5488366,37.3843145 C51.46217,37.6709812 51.4455033,37.9376479 51.4988366,38.1843145 C51.55217,38.4309812 51.7188366,38.5976479 51.9988366,38.6843145 C53.0027645,38.7154727 53.6750204,38.7821393 54.0156044,38.8843145 C54.7031375,39.0905745 55.3642149,39.4239078 55.9988366,39.8843145 C56.4980387,40.3674862 56.831372,40.7202741 56.9988366,40.9426784 C57.2459451,41.2708552 57.8988366,42.3863253 57.8988366,43.8843145 C57.8988366,44.882974 57.53217,45.882974 56.7988366,46.8843145 C56.4100652,47.2645006 55.9767318,47.5818962 55.4988366,47.8365013 C55.0209415,48.0911064 54.5157721,48.2737108 53.9833285,48.3843145 L52.6988366,48.3843145 C52.2988366,48.6576479 52.0988366,48.9643145 52.0988366,49.3043145 C52.0988366,49.6443145 52.1655033,49.9376479 52.2988366,50.1843145 L53.4440689,50.6343145 C54.0486381,50.9097065 54.566894,51.3263732 54.9988366,51.8843145 C55.2403033,52.1962176 55.7126861,53.1830494 55.7488366,53.8843145 C55.7849872,54.5855797 55.7892838,54.8412841 55.675362,55.3021772 C55.5409724,55.8458769 55.3321306,56.373256 54.9488366,56.8843145 C54.6880408,57.2320423 54.3421972,57.542124 54.0113058,57.8145598 C53.720974,58.0536013 53.0623839,58.3923099 52.0355354,58.6843145 C51.8426264,58.739172 51.4970601,58.8058387 50.9988366,58.8843145 L49.2488366,58.9843145 C48.96217,59.1509812 48.7955033,59.3509812 48.7488366,59.5843145 C48.70217,59.8176479 48.7855033,60.0643145 48.9988366,60.3243145 L50.0168579,60.6843145 C51.0110333,61.2176479 51.5216929,61.9496429 51.5488366,62.8802998 C51.5895523,64.276285 51.475285,65.4556464 50.0016466,66.7843145 C49.4876586,67.2477386 48.8545536,67.4912052 48.1023318,67.7343145 C47.6452927,67.8820242 46.8607943,68.0486909 45.7488366,68.2343145 L40.0010327,68.6843145 C38.1462353,68.7443145 36.81217,68.7776479 35.9988366,68.7843145 C34.7788366,68.7943145 28.6377735,68.7414839 25.3910307,68.5132824 C22.1442879,68.2850808 21.4236621,68.1168902 18.9258088,67.5843145 C16.4279556,67.0517389 16.0894589,66.9976619 13.9988366,66.0843145 C12.6050885,65.4754163 11.2717551,64.6754163 9.99883665,63.6843145 L5.99912679,59.8445931 C5.6005732,59.505994 5.13964906,59.1744645 4.61635438,58.8500046 C3.83141237,58.3633147 3.44878136,58.2942773 2.99883665,57.9843145 C2.44718062,57.6042838 2.05635486,57.1737105 1.71932092,56.7662516 C1.30382099,56.2639309 0.723401214,54.7703696 0.498836646,53.8721113 C0.239479861,52.8346842 0.182966814,51.4491222 0.134208514,50.425802 C0.00166588165,47.644049 0.0975252306,47.2982714 0.0687602378,44.8458357 C0.0452570713,42.8420109 -0.0277106081,40.4082829 0.0112302522,39.9409643 C0.224109489,37.3862585 0.450803729,36.3915418 0.898836646,34.8843145 C1.09883665,34.2114947 1.78104521,33.1945675 2.17275045,32.889441 C2.5644557,32.5843145 3.13875358,32.2143561 3.99883665,31.7843145 Z",
|
|
2998
3112
|
id: "Path-2",
|
|
2999
3113
|
fill: "#FFBF00"
|
|
3000
|
-
}), /*#__PURE__*/React__default[
|
|
3114
|
+
}), /*#__PURE__*/React__default["default"].createElement("path", {
|
|
3001
3115
|
d: "M37.1988366,28.2843145 C36.6491114,28.3570112 36.2566531,28.4236779 36.0214618,28.4843145 C35.0603746,28.7321005 34.3937143,29.0314706 34.021481,29.207818 C33.777778,29.3232735 32.5285093,30.04554 31.6988366,30.8956082 C31.0356177,31.5751308 30.7670551,32.3363186 30.5620165,32.9344937 C29.9561734,34.7019667 30.4904911,36.5989836 30.5988366,36.8981554 C30.8174274,37.5017447 31.0945063,37.9694877 31.2988366,38.4843145 C31.4064264,38.7553957 31.4498365,39.7521385 31.3985954,40.9130014 C31.388536,41.1408948 31.3995111,42.8738523 30.5816296,45.1307691 C30.125032,46.3907349 29.4940749,47.743868 28.6988366,48.906031 C27.6082165,50.4998658 26.3589437,51.7345157 26.1988366,51.8770596 C25.2520649,52.7199732 23.8988366,53.516454 23.3777374,54.1031009 C22.8566381,54.6897478 22.8988366,54.7174426 22.8988366,54.8843145 C22.8988366,55.0643438 22.9342857,55.2139882 23.0063234,55.32641 C23.2544011,55.7135594 23.9363916,55.6592779 25.0988366,54.8843145 C25.8683088,54.3713331 26.8213311,53.5952018 27.5988366,52.8259025 C28.3369913,52.0955388 28.9092218,51.3713331 29.2988366,50.8843145 C29.6096134,50.4958436 30.1890589,49.8244169 30.7488366,48.8700346 C31.0160857,48.4143934 31.4327524,47.5858201 31.9988366,46.3843145 C31.9988366,46.7176479 32.33217,47.2176479 32.9988366,47.8843145 C33.1686748,48.0541527 33.5020081,48.3041527 33.9988366,48.6343145 C33.535822,48.6343145 33.2024887,48.6676479 32.9988366,48.7343145 C31.9774176,49.1343145 31.4345654,49.3440777 30.8488366,49.8843145 C30.1709576,50.5095446 29.6310297,51.1756019 29.3988366,52.3843145 C29.1722814,53.5636787 29.3142136,54.632966 29.6488366,55.5921767 C29.928312,56.3933044 30.3156141,57.1176481 30.9865396,57.7652076 C31.1856402,57.9573742 31.5230725,58.2304098 31.9988366,58.5843145 C30.2988366,59.4509812 29.4488366,60.8843145 29.4488366,62.8843145 C29.4488366,65.8843145 31.4988366,68.7843145 35.9988366,68.7843145 C37.2162866,68.7843145 38.5382158,68.7607397 39.9988366,68.6843145 C41.1579568,68.623665 43.0746234,68.473665 45.7488366,68.2343145 C42.81999,68.0652276 40.9033233,67.948561 39.9988366,67.8843145 C38.4397862,67.7735739 34.9576244,67.4218793 34.5109642,67.2843145 C33.8898949,67.0930342 33.3876529,66.66767 32.9988366,66.3843145 C31.7988366,65.509797 31.6488366,63.8668327 31.6488366,63.3843145 C31.6488366,62.6767971 32.115551,61.4820497 32.7124803,60.9291427 C33.2967248,60.387985 34.101504,59.9827037 34.9988366,59.8343145 C36.8129843,59.5343145 37.8279851,59.6343145 38.9968712,59.6343145 C41.8836014,59.6343145 46.4559662,59.9063364 47.0327603,59.9503801 C47.6352731,59.9963876 48.2906319,60.1194654 48.9988366,60.3196132 C48.7881139,60.0647262 48.7047806,59.8196266 48.7488366,59.5843145 C48.7928927,59.3490025 48.9595594,59.1490025 49.2488366,58.9843145 C41.7042463,58.5910176 37.2875796,58.2576842 35.9988366,57.9843145 C34.0657222,57.57426 33.0783849,56.5232188 32.4988366,55.3843145 C32.1808463,54.7594131 31.9988366,54.0680377 32.1988366,52.8843145 C32.4054546,51.661422 33.0758788,51.154421 33.9988366,50.7343145 C35.0343809,50.2629616 36.2160776,50.213626 38.0168693,50.1343145 C41.4226671,49.9843145 41.9988366,49.8715355 44.9988366,49.8843145 C47.4322993,49.8928339 49.8656327,49.9928339 52.2988366,50.1843145 C52.1655033,49.9452767 52.0988366,49.6535253 52.0988366,49.3090604 C52.0988366,48.9645954 52.2988366,48.6563468 52.6988366,48.3843145 C49.4970675,48.4374708 47.2644784,48.4840975 46.0010696,48.5241946 C42.8267531,48.6249387 40.1650305,48.7843145 38.0159019,48.6090596 C36.5073153,48.3843145 35.5349602,47.7454709 35.0988366,47.3586886 C33.5267511,45.9644623 33.6909724,44.1458838 33.6988366,43.902953 C33.7490538,42.3517256 34.2594453,41.6540102 34.9988366,41.2843145 C36.9988366,40.2843145 38.521019,40.3843145 40.9988366,39.8843145 L51.9988366,38.6843145 C51.7847588,38.5992008 51.6347588,38.4325341 51.5488366,38.1843145 C51.4629145,37.9360949 51.4629145,37.6694283 51.5488366,37.3843145 C48.6830402,37.6590904 46.693269,37.8590904 45.579523,37.9843145 C44.2653604,38.1320725 42.7384649,38.3154059 40.9988366,38.5343145 C38.9988366,38.6009812 37.6749072,38.5733169 37.0270482,38.4513217 C35.0988366,38.2216852 33.4888366,37.4843145 33.4388366,34.8545872 C33.3888366,32.7744565 33.7430954,32.2207578 33.8988366,31.9295788 C34.3117653,31.1575537 34.9128559,30.575799 35.3988366,30.1843145 C36.0681111,29.6451768 36.8014444,29.2451768 37.5988366,28.9843145 C37.4503711,28.8228789 37.3503711,28.6970685 37.2988366,28.6068833 C37.2473022,28.516698 37.2139689,28.4091751 37.1988366,28.2843145 Z",
|
|
3002
3116
|
id: "Path",
|
|
3003
3117
|
fill: "#F28700"
|
|
@@ -3201,7 +3315,7 @@
|
|
|
3201
3315
|
var errors = reactHookForm.useFormContext().errors;
|
|
3202
3316
|
var errorList = filterDuplicateErrors(getErrors(errors));
|
|
3203
3317
|
|
|
3204
|
-
var _b = __read(React__default[
|
|
3318
|
+
var _b = __read(React__default["default"].useState(false), 2),
|
|
3205
3319
|
isIssuesPaneOpen = _b[0],
|
|
3206
3320
|
setIsIssuesPaneOpen = _b[1];
|
|
3207
3321
|
|
|
@@ -3209,19 +3323,19 @@
|
|
|
3209
3323
|
return setIsIssuesPaneOpen(!isIssuesPaneOpen);
|
|
3210
3324
|
};
|
|
3211
3325
|
|
|
3212
|
-
return /*#__PURE__*/React__default[
|
|
3326
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3213
3327
|
container: true,
|
|
3214
3328
|
justify: "space-between",
|
|
3215
3329
|
alignItems: "center",
|
|
3216
3330
|
className: classes.lifecycleButtons
|
|
3217
|
-
}, /*#__PURE__*/React__default[
|
|
3331
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3218
3332
|
item: true
|
|
3219
|
-
}, /*#__PURE__*/React__default[
|
|
3333
|
+
}, /*#__PURE__*/React__default["default"].createElement(IssuesButton, {
|
|
3220
3334
|
sumOfErrors: errorList.length,
|
|
3221
3335
|
togglePane: toggleIssuesPane
|
|
3222
|
-
})), /*#__PURE__*/React__default[
|
|
3336
|
+
})), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3223
3337
|
item: true
|
|
3224
|
-
}, /*#__PURE__*/React__default[
|
|
3338
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
3225
3339
|
"data-testid": "discardtaf",
|
|
3226
3340
|
variant: "outlined",
|
|
3227
3341
|
color: "secondary",
|
|
@@ -3231,7 +3345,7 @@
|
|
|
3231
3345
|
// Simply discard the changes and close the dialog.
|
|
3232
3346
|
onTafFormButtonPress('DISCARD');
|
|
3233
3347
|
}
|
|
3234
|
-
}, "Discard"), /*#__PURE__*/React__default[
|
|
3348
|
+
}, "Discard"), /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
3235
3349
|
"data-testid": "savedrafttaf",
|
|
3236
3350
|
variant: "outlined",
|
|
3237
3351
|
color: "secondary",
|
|
@@ -3261,7 +3375,7 @@
|
|
|
3261
3375
|
break;
|
|
3262
3376
|
}
|
|
3263
3377
|
}
|
|
3264
|
-
}, "Save"), /*#__PURE__*/React__default[
|
|
3378
|
+
}, "Save"), /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
3265
3379
|
"data-testid": "publishtaf",
|
|
3266
3380
|
variant: "outlined",
|
|
3267
3381
|
color: "secondary",
|
|
@@ -3291,7 +3405,7 @@
|
|
|
3291
3405
|
break;
|
|
3292
3406
|
}
|
|
3293
3407
|
}
|
|
3294
|
-
}, "Publish"))), /*#__PURE__*/React__default[
|
|
3408
|
+
}, "Publish"))), /*#__PURE__*/React__default["default"].createElement(IssuesPane, {
|
|
3295
3409
|
errorList: errorList,
|
|
3296
3410
|
handleClose: toggleIssuesPane,
|
|
3297
3411
|
isOpen: isIssuesPaneOpen
|
|
@@ -3335,15 +3449,17 @@
|
|
|
3335
3449
|
isDisabled = _c === void 0 ? false : _c,
|
|
3336
3450
|
index = _a.index;
|
|
3337
3451
|
var classes = useStyles$7(isSorting);
|
|
3338
|
-
return /*#__PURE__*/React__default[
|
|
3452
|
+
return /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
|
|
3339
3453
|
className: classes.dragHandle + " handle",
|
|
3340
3454
|
"data-testid": "dragHandle-" + index,
|
|
3341
3455
|
disableRipple: true,
|
|
3342
3456
|
disabled: isDisabled
|
|
3343
|
-
}, /*#__PURE__*/React__default[
|
|
3457
|
+
}, /*#__PURE__*/React__default["default"].createElement(icons.DragIndicator, null));
|
|
3344
3458
|
};
|
|
3345
3459
|
|
|
3346
|
-
var
|
|
3460
|
+
var noop = function noop() {};
|
|
3461
|
+
|
|
3462
|
+
var emptyChangegroup = {
|
|
3347
3463
|
valid: '',
|
|
3348
3464
|
wind: '',
|
|
3349
3465
|
visibility: '',
|
|
@@ -3363,8 +3479,7 @@
|
|
|
3363
3479
|
};
|
|
3364
3480
|
|
|
3365
3481
|
var TafForm = function TafForm(_a) {
|
|
3366
|
-
var
|
|
3367
|
-
changeGroups = _a.changeGroups,
|
|
3482
|
+
var isDisabled = _a.isDisabled,
|
|
3368
3483
|
tafAction = _a.tafAction,
|
|
3369
3484
|
_b = _a.staticTAC,
|
|
3370
3485
|
staticTAC = _b === void 0 ? '' : _b,
|
|
@@ -3381,19 +3496,21 @@
|
|
|
3381
3496
|
|
|
3382
3497
|
var api$1 = api.useApiContext().api;
|
|
3383
3498
|
var isMounted = shared.useIsMounted().isMounted;
|
|
3384
|
-
var isDisabled = mode === 'view';
|
|
3385
3499
|
|
|
3386
3500
|
var _e = reactHookForm.useFormContext(),
|
|
3387
3501
|
control = _e.control,
|
|
3388
3502
|
handleSubmit = _e.handleSubmit,
|
|
3389
3503
|
watch = _e.watch,
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3504
|
+
trigger = _e.trigger,
|
|
3505
|
+
formState = _e.formState,
|
|
3506
|
+
getValues = _e.getValues;
|
|
3393
3507
|
|
|
3508
|
+
var isFormDirty = formState.isDirty,
|
|
3509
|
+
errors = formState.errors;
|
|
3510
|
+
shared.usePreventBrowserClose(isFormDirty && !isDisabled);
|
|
3394
3511
|
var hiddenInputFields = ['baseTime', 'issueDate', 'type', 'uuid', 'validDateStart', 'validDateEnd', 'status', 'previousId', 'previousValidDateStart', 'previousValidDateEnd'];
|
|
3395
3512
|
|
|
3396
|
-
var _f = __read(React__default[
|
|
3513
|
+
var _f = __read(React__default["default"].useState(watch()), 2),
|
|
3397
3514
|
delayedFormValues = _f[0],
|
|
3398
3515
|
setDelayedFormValues = _f[1];
|
|
3399
3516
|
|
|
@@ -3401,35 +3518,26 @@
|
|
|
3401
3518
|
TAC = _g[0],
|
|
3402
3519
|
updateTAC = _g[1];
|
|
3403
3520
|
|
|
3404
|
-
|
|
3405
|
-
if (!Object.keys(errors).length && staticTAC === '' && isMounted.current) {
|
|
3406
|
-
updateTAC(convertTafValuesToObject(delayedFormValues));
|
|
3407
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3408
|
-
|
|
3409
|
-
}, [delayedFormValues]);
|
|
3521
|
+
var hasErrors = Object.keys(errors).length;
|
|
3410
3522
|
|
|
3411
3523
|
var onFormBlur = function onFormBlur() {
|
|
3412
3524
|
setDelayedFormValues(getValues());
|
|
3413
3525
|
};
|
|
3414
3526
|
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
return !isFormDirty ? setFormDirty(true) : null;
|
|
3421
|
-
};
|
|
3527
|
+
React__default["default"].useEffect(function () {
|
|
3528
|
+
if (staticTAC === '' && isMounted.current && isFormDirty) {
|
|
3529
|
+
var newTAC = hasErrors ? null : convertTafValuesToObject(delayedFormValues);
|
|
3530
|
+
updateTAC(newTAC);
|
|
3531
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3422
3532
|
|
|
3423
|
-
|
|
3533
|
+
}, [delayedFormValues]);
|
|
3534
|
+
React__default["default"].useEffect(function () {
|
|
3535
|
+
// prevent updating an error while typing
|
|
3536
|
+
if (!hasErrors && isFormDirty && document.activeElement.tagName !== 'INPUT') {
|
|
3537
|
+
updateTAC(convertTafValuesToObject(delayedFormValues));
|
|
3538
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3424
3539
|
|
|
3425
|
-
|
|
3426
|
-
control: control,
|
|
3427
|
-
name: 'changeGroups'
|
|
3428
|
-
}),
|
|
3429
|
-
fields = _j.fields,
|
|
3430
|
-
append = _j.append,
|
|
3431
|
-
remove = _j.remove,
|
|
3432
|
-
move = _j.move;
|
|
3540
|
+
}, [hasErrors]);
|
|
3433
3541
|
|
|
3434
3542
|
var onSubmit = function onSubmit(data) {
|
|
3435
3543
|
// eslint-disable-next-line no-console
|
|
@@ -3483,69 +3591,69 @@
|
|
|
3483
3591
|
}
|
|
3484
3592
|
};
|
|
3485
3593
|
|
|
3486
|
-
var
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
append(group, false);
|
|
3495
|
-
});
|
|
3496
|
-
} else if (!isDisabled) {
|
|
3497
|
-
append(emptyRow, false);
|
|
3498
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3594
|
+
var _h = reactHookForm.useFieldArray({
|
|
3595
|
+
control: control,
|
|
3596
|
+
name: 'changeGroups'
|
|
3597
|
+
}),
|
|
3598
|
+
fields = _h.fields,
|
|
3599
|
+
append = _h.append,
|
|
3600
|
+
remove = _h.remove,
|
|
3601
|
+
move = _h.move;
|
|
3499
3602
|
|
|
3500
|
-
|
|
3603
|
+
var lastTotalFields = shared.usePrevious(fields.length);
|
|
3501
3604
|
|
|
3502
|
-
var
|
|
3503
|
-
onChangeOrder =
|
|
3504
|
-
|
|
3505
|
-
|
|
3605
|
+
var _j = useDragOrder(trigger, move, onFormBlur),
|
|
3606
|
+
onChangeOrder = _j.onChangeOrder,
|
|
3607
|
+
onStartDrag = _j.onStartDrag,
|
|
3608
|
+
activeDraggingIndex = _j.activeDraggingIndex;
|
|
3506
3609
|
|
|
3507
3610
|
var onRemoverow = function onRemoverow(index) {
|
|
3508
3611
|
remove(index);
|
|
3509
|
-
var newList = fields.length > 1 ? fields.filter(function (_, fieldIndex) {
|
|
3510
|
-
return fieldIndex === index;
|
|
3511
|
-
}) : [];
|
|
3512
|
-
setSortedFields(newList);
|
|
3513
3612
|
};
|
|
3514
3613
|
|
|
3515
|
-
|
|
3614
|
+
var onAddRow = function onAddRow() {
|
|
3615
|
+
append(emptyChangegroup, true);
|
|
3616
|
+
};
|
|
3617
|
+
|
|
3618
|
+
React__default["default"].useEffect(function () {
|
|
3619
|
+
if (isFormDirty && fields.length !== lastTotalFields) {
|
|
3620
|
+
onFormBlur();
|
|
3621
|
+
trigger(); // trigger all field validation,
|
|
3622
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3623
|
+
|
|
3624
|
+
}, [fields.length, isFormDirty]);
|
|
3625
|
+
return /*#__PURE__*/React__default["default"].createElement("form", {
|
|
3516
3626
|
onSubmit: handleSubmit(onSubmit),
|
|
3517
|
-
onChange: onFormChange,
|
|
3518
3627
|
onBlur: onFormBlur
|
|
3519
|
-
}, /*#__PURE__*/React__default[
|
|
3628
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3520
3629
|
className: classes.tacTitle
|
|
3521
|
-
}, "TAC"), /*#__PURE__*/React__default[
|
|
3630
|
+
}, "TAC"), /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3522
3631
|
"data-testid": "form-tac-message",
|
|
3523
3632
|
className: classes.tacText
|
|
3524
3633
|
}, TAC.split('\n').map(function (line) {
|
|
3525
|
-
return /*#__PURE__*/React__default[
|
|
3634
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
|
3526
3635
|
key: line,
|
|
3527
3636
|
className: classes.tacLine,
|
|
3528
3637
|
"data-testid": "tafform-tac-message-line"
|
|
3529
3638
|
}, line);
|
|
3530
|
-
})), /*#__PURE__*/React__default[
|
|
3639
|
+
})), /*#__PURE__*/React__default["default"].createElement(TafFormRow, {
|
|
3531
3640
|
disabled: isDisabled
|
|
3532
|
-
}), /*#__PURE__*/React__default[
|
|
3641
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactSortablejs.ReactSortable, {
|
|
3533
3642
|
tag: "div",
|
|
3534
|
-
list:
|
|
3535
|
-
setList:
|
|
3643
|
+
list: fields,
|
|
3644
|
+
setList: noop,
|
|
3536
3645
|
animation: 200,
|
|
3537
3646
|
onSort: onChangeOrder,
|
|
3538
3647
|
handle: ".handle",
|
|
3539
3648
|
direction: "vertical",
|
|
3540
3649
|
// hover props
|
|
3541
3650
|
forceFallback: true,
|
|
3542
|
-
onStart: function onStart() {
|
|
3651
|
+
onStart: function onStart(event) {
|
|
3652
|
+
onStartDrag(event);
|
|
3543
3653
|
reactSortablejs.Sortable.ghost.style.opacity = '1';
|
|
3544
3654
|
}
|
|
3545
|
-
},
|
|
3546
|
-
|
|
3547
|
-
var item = fields[index];
|
|
3548
|
-
return /*#__PURE__*/React__default['default'].createElement(TafFormRow, {
|
|
3655
|
+
}, fields.map(function (item, index) {
|
|
3656
|
+
return /*#__PURE__*/React__default["default"].createElement(TafFormRow, {
|
|
3549
3657
|
field: item,
|
|
3550
3658
|
className: classes.formRow,
|
|
3551
3659
|
key: item.id,
|
|
@@ -3554,31 +3662,31 @@
|
|
|
3554
3662
|
disabled: isDisabled,
|
|
3555
3663
|
onRemoveChangeGroup: onRemoverow,
|
|
3556
3664
|
isChangeGroup: true,
|
|
3557
|
-
dragHandle: /*#__PURE__*/React__default[
|
|
3558
|
-
isDisabled:
|
|
3559
|
-
isSorting:
|
|
3665
|
+
dragHandle: /*#__PURE__*/React__default["default"].createElement(DragHandle, {
|
|
3666
|
+
isDisabled: fields.length === 1 || isDisabled,
|
|
3667
|
+
isSorting: activeDraggingIndex === index,
|
|
3560
3668
|
index: index
|
|
3561
3669
|
})
|
|
3562
3670
|
});
|
|
3563
|
-
})), !isDisabled && /*#__PURE__*/React__default[
|
|
3671
|
+
})), !isDisabled && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3564
3672
|
container: true,
|
|
3565
3673
|
item: true,
|
|
3566
3674
|
xs: 12,
|
|
3567
3675
|
justify: "flex-end"
|
|
3568
|
-
}, /*#__PURE__*/React__default[
|
|
3676
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
|
|
3569
3677
|
"aria-label": "add",
|
|
3570
3678
|
"data-testid": "add-changeGroup",
|
|
3571
3679
|
onClick: onAddRow,
|
|
3572
3680
|
className: classes.addButton
|
|
3573
|
-
}, /*#__PURE__*/React__default[
|
|
3681
|
+
}, /*#__PURE__*/React__default["default"].createElement(icons.Add, null))), /*#__PURE__*/React__default["default"].createElement(TafFormButtons, {
|
|
3574
3682
|
tafAction: tafAction,
|
|
3575
3683
|
onTafFormButtonPress: onTafButtonPress
|
|
3576
3684
|
})), hiddenInputFields.map(function (field) {
|
|
3577
|
-
return /*#__PURE__*/React__default[
|
|
3685
|
+
return /*#__PURE__*/React__default["default"].createElement(formFields.ReactHookFormHiddenInput, {
|
|
3578
3686
|
name: field,
|
|
3579
3687
|
key: field
|
|
3580
3688
|
});
|
|
3581
|
-
}), /*#__PURE__*/React__default[
|
|
3689
|
+
}), /*#__PURE__*/React__default["default"].createElement(DraftFieldHelper, null));
|
|
3582
3690
|
};
|
|
3583
3691
|
|
|
3584
3692
|
var getMessageType = function getMessageType(taf, tafAction) {
|
|
@@ -3598,8 +3706,8 @@
|
|
|
3598
3706
|
var previousValidDateEnd = taf.previousValidDateEnd && tafAction !== 'AMEND' ? taf.previousValidDateEnd : taf.validDateEnd; // For amendment change valid start time to current time
|
|
3599
3707
|
// only do this if we're already within the validity period
|
|
3600
3708
|
|
|
3601
|
-
if ((tafAction === 'AMEND' || tafAction === 'DRAFT_AMEND') && moment__default[
|
|
3602
|
-
var now = moment__default[
|
|
3709
|
+
if ((tafAction === 'AMEND' || tafAction === 'DRAFT_AMEND') && moment__default["default"].utc() >= moment__default["default"].utc(taf.validDateStart)) {
|
|
3710
|
+
var now = moment__default["default"].utc().format('YYYY-MM-DDTHH:mm:ss[Z]');
|
|
3603
3711
|
var validObj = {
|
|
3604
3712
|
start: now,
|
|
3605
3713
|
end: taf.baseForecast.valid.end
|
|
@@ -3619,15 +3727,21 @@
|
|
|
3619
3727
|
previousValidDateEnd: previousValidDateEnd
|
|
3620
3728
|
});
|
|
3621
3729
|
};
|
|
3622
|
-
var prepareTafValues = function prepareTafValues(_taf, tafAction) {
|
|
3623
|
-
|
|
3730
|
+
var prepareTafValues = function prepareTafValues(_taf, tafAction, addEmptyChangeGroup) {
|
|
3731
|
+
if (addEmptyChangeGroup === void 0) {
|
|
3732
|
+
addEmptyChangeGroup = false;
|
|
3733
|
+
} // If action is AMEND/CORRECT/DRAFT_AMEND/DRAFT_CORRECTION - add previous valid start and end
|
|
3624
3734
|
// If action is AMEND/DRAFT_AMEND - update validity start time to current time
|
|
3735
|
+
|
|
3736
|
+
|
|
3625
3737
|
var taf = tafAction === 'AMEND' || tafAction === 'DRAFT_AMEND' || tafAction === 'CORRECT' || tafAction === 'DRAFT_CORRECT' ? getAmendedCorrectedTafTimes(_taf, tafAction) : _taf;
|
|
3626
|
-
return __assign(__assign(__assign({}, taf), {
|
|
3738
|
+
return __assign(__assign(__assign(__assign({}, taf), {
|
|
3627
3739
|
messageType: getMessageType(taf, tafAction),
|
|
3628
3740
|
baseForecast: formatFormValues(taf.baseForecast)
|
|
3629
3741
|
}), taf.changeGroups && {
|
|
3630
3742
|
changeGroups: taf.changeGroups.map(formatFormValues)
|
|
3743
|
+
}), addEmptyChangeGroup && {
|
|
3744
|
+
changeGroups: [emptyChangegroup]
|
|
3631
3745
|
});
|
|
3632
3746
|
};
|
|
3633
3747
|
|
|
@@ -3638,24 +3752,19 @@
|
|
|
3638
3752
|
_b = _a.TAC,
|
|
3639
3753
|
TAC = _b === void 0 ? '' : _b,
|
|
3640
3754
|
onFormAction = _a.onFormAction;
|
|
3641
|
-
var taf = tafFromBackend.taf;
|
|
3642
|
-
|
|
3643
|
-
var
|
|
3644
|
-
_d = _c.changeGroups,
|
|
3645
|
-
changeGroups = _d === void 0 ? [] : _d,
|
|
3646
|
-
defaultValues = __rest(_c, ["changeGroups"]);
|
|
3647
|
-
|
|
3755
|
+
var taf = tafFromBackend.taf;
|
|
3756
|
+
var isDisabled = mode === 'view';
|
|
3757
|
+
var defaultValues = prepareTafValues(taf, tafAction, !isDisabled && !taf.changeGroups);
|
|
3648
3758
|
var options = {
|
|
3649
3759
|
defaultValues: defaultValues,
|
|
3650
3760
|
mode: 'onTouched',
|
|
3651
3761
|
reValidateMode: 'onChange',
|
|
3652
3762
|
criteriaMode: 'all'
|
|
3653
3763
|
};
|
|
3654
|
-
return /*#__PURE__*/React__default[
|
|
3764
|
+
return /*#__PURE__*/React__default["default"].createElement(formFields.ReactHookFormProvider, {
|
|
3655
3765
|
options: options
|
|
3656
|
-
}, /*#__PURE__*/React__default[
|
|
3657
|
-
|
|
3658
|
-
changeGroups: changeGroups,
|
|
3766
|
+
}, /*#__PURE__*/React__default["default"].createElement(TafForm, {
|
|
3767
|
+
isDisabled: isDisabled,
|
|
3659
3768
|
tafAction: tafAction,
|
|
3660
3769
|
staticTAC: TAC,
|
|
3661
3770
|
onFormAction: onFormAction
|
|
@@ -3753,11 +3862,11 @@
|
|
|
3753
3862
|
* */
|
|
3754
3863
|
|
|
3755
3864
|
var getActiveStatus = function getActiveStatus(listType, className) {
|
|
3756
|
-
return listType === 'ACTIVE' ? /*#__PURE__*/React__default[
|
|
3865
|
+
return listType === 'ACTIVE' ? /*#__PURE__*/React__default["default"].createElement(icons.CheckCircle, {
|
|
3757
3866
|
"data-testid": "status-active",
|
|
3758
3867
|
className: className,
|
|
3759
3868
|
fontSize: "small"
|
|
3760
|
-
}) : /*#__PURE__*/React__default[
|
|
3869
|
+
}) : /*#__PURE__*/React__default["default"].createElement(icons.Schedule, {
|
|
3761
3870
|
"data-testid": "status-upcoming",
|
|
3762
3871
|
className: className,
|
|
3763
3872
|
fontSize: "small"
|
|
@@ -3769,13 +3878,13 @@
|
|
|
3769
3878
|
if (taf.status === 'NEW') return null;
|
|
3770
3879
|
|
|
3771
3880
|
if (taf.status === 'CANCELLED') {
|
|
3772
|
-
return /*#__PURE__*/React__default[
|
|
3881
|
+
return /*#__PURE__*/React__default["default"].createElement(shared.StatusTag, {
|
|
3773
3882
|
content: "cancelled",
|
|
3774
3883
|
color: "red"
|
|
3775
3884
|
});
|
|
3776
3885
|
}
|
|
3777
3886
|
|
|
3778
|
-
return /*#__PURE__*/React__default[
|
|
3887
|
+
return /*#__PURE__*/React__default["default"].createElement(shared.StatusTag, {
|
|
3779
3888
|
content: taf.status.toLowerCase(),
|
|
3780
3889
|
color: taf.status === 'EXPIRED' ? 'grey' : 'green'
|
|
3781
3890
|
});
|
|
@@ -3819,101 +3928,101 @@
|
|
|
3819
3928
|
_c = _a.showTac,
|
|
3820
3929
|
showTac = _c === void 0 ? false : _c;
|
|
3821
3930
|
var classes = useStyles$5();
|
|
3822
|
-
var validTimeDate = moment__default[
|
|
3823
|
-
var baseTime = moment__default[
|
|
3824
|
-
return /*#__PURE__*/React__default[
|
|
3931
|
+
var validTimeDate = moment__default["default"].utc(taf.validDateStart).format('DD MMM');
|
|
3932
|
+
var baseTime = moment__default["default"].utc(taf.baseTime).format('HH:mm');
|
|
3933
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Card, {
|
|
3825
3934
|
elevation: 0,
|
|
3826
3935
|
className: classes.cardWrapper
|
|
3827
|
-
}, /*#__PURE__*/React__default[
|
|
3936
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3828
3937
|
container: true,
|
|
3829
3938
|
alignItems: "center",
|
|
3830
3939
|
spacing: 1
|
|
3831
|
-
}, /*#__PURE__*/React__default[
|
|
3940
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3832
3941
|
item: true,
|
|
3833
3942
|
xs: 3,
|
|
3834
3943
|
sm: 2,
|
|
3835
3944
|
md: 1
|
|
3836
|
-
}, /*#__PURE__*/React__default[
|
|
3945
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3837
3946
|
variant: "subtitle2",
|
|
3838
3947
|
noWrap: true,
|
|
3839
3948
|
className: classes.font
|
|
3840
|
-
}, taf.location)), /*#__PURE__*/React__default[
|
|
3949
|
+
}, taf.location)), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3841
3950
|
item: true,
|
|
3842
3951
|
xs: 3,
|
|
3843
3952
|
sm: 3,
|
|
3844
3953
|
md: 1,
|
|
3845
3954
|
container: true
|
|
3846
|
-
}, /*#__PURE__*/React__default[
|
|
3955
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3847
3956
|
item: true,
|
|
3848
3957
|
xs: 3,
|
|
3849
3958
|
sm: 3,
|
|
3850
3959
|
md: 3,
|
|
3851
3960
|
className: classes.alignIcon
|
|
3852
|
-
}, showTac && /*#__PURE__*/React__default[
|
|
3961
|
+
}, showTac && /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
|
|
3853
3962
|
"data-testid": "taflistrow-tactooltip",
|
|
3854
|
-
title: /*#__PURE__*/React__default[
|
|
3963
|
+
title: /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3855
3964
|
style: {
|
|
3856
3965
|
whiteSpace: 'pre-line'
|
|
3857
3966
|
}
|
|
3858
3967
|
}, TAC),
|
|
3859
3968
|
placement: "bottom-start"
|
|
3860
|
-
}, /*#__PURE__*/React__default[
|
|
3969
|
+
}, /*#__PURE__*/React__default["default"].createElement(icons.InfoOutlined, {
|
|
3861
3970
|
"data-testid": "taflistrow-tacicon",
|
|
3862
3971
|
color: "secondary",
|
|
3863
3972
|
fontSize: "small"
|
|
3864
|
-
}))), /*#__PURE__*/React__default[
|
|
3973
|
+
}))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3865
3974
|
item: true,
|
|
3866
3975
|
xs: 9,
|
|
3867
3976
|
sm: 9,
|
|
3868
3977
|
md: 9
|
|
3869
|
-
}, /*#__PURE__*/React__default[
|
|
3978
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3870
3979
|
variant: "subtitle2",
|
|
3871
3980
|
className: classes.font,
|
|
3872
3981
|
"data-testid": "baseTime"
|
|
3873
|
-
}, baseTime))), /*#__PURE__*/React__default[
|
|
3982
|
+
}, baseTime))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3874
3983
|
item: true,
|
|
3875
3984
|
xs: 3,
|
|
3876
3985
|
sm: 2,
|
|
3877
3986
|
md: 1
|
|
3878
|
-
}, /*#__PURE__*/React__default[
|
|
3987
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3879
3988
|
variant: "subtitle2",
|
|
3880
3989
|
className: classes.font,
|
|
3881
3990
|
"data-testid": "validTimeDate"
|
|
3882
|
-
}, validTimeDate)), /*#__PURE__*/React__default[
|
|
3991
|
+
}, validTimeDate)), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3883
3992
|
item: true,
|
|
3884
3993
|
xs: 3,
|
|
3885
3994
|
sm: 3,
|
|
3886
3995
|
md: 6
|
|
3887
|
-
}, /*#__PURE__*/React__default[
|
|
3996
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
3888
3997
|
variant: "subtitle2",
|
|
3889
3998
|
className: classes.font,
|
|
3890
3999
|
"data-testid": "validTimeSlot"
|
|
3891
4000
|
}, formatValidToString({
|
|
3892
4001
|
start: taf.validDateStart,
|
|
3893
4002
|
end: taf.validDateEnd
|
|
3894
|
-
}))), /*#__PURE__*/React__default[
|
|
4003
|
+
}))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3895
4004
|
item: true,
|
|
3896
4005
|
xs: 12,
|
|
3897
4006
|
sm: 4,
|
|
3898
4007
|
md: 3
|
|
3899
|
-
}, /*#__PURE__*/React__default[
|
|
4008
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3900
4009
|
container: true,
|
|
3901
4010
|
justify: "flex-start",
|
|
3902
4011
|
spacing: 2
|
|
3903
|
-
}, /*#__PURE__*/React__default[
|
|
4012
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3904
4013
|
item: true,
|
|
3905
4014
|
xs: 8,
|
|
3906
4015
|
container: true,
|
|
3907
4016
|
justify: "flex-end"
|
|
3908
|
-
}, taf.status === 'DRAFT' || taf.status === 'DRAFT_CORRECTED' || taf.status === 'DRAFT_AMENDED' ? /*#__PURE__*/React__default[
|
|
4017
|
+
}, taf.status === 'DRAFT' || taf.status === 'DRAFT_CORRECTED' || taf.status === 'DRAFT_AMENDED' ? /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
3909
4018
|
color: "secondary",
|
|
3910
4019
|
size: "small",
|
|
3911
4020
|
"data-testid": "tafRow-draft",
|
|
3912
|
-
startIcon: /*#__PURE__*/React__default[
|
|
4021
|
+
startIcon: /*#__PURE__*/React__default["default"].createElement(icons.Create, {
|
|
3913
4022
|
fontSize: "small",
|
|
3914
4023
|
color: "secondary"
|
|
3915
4024
|
})
|
|
3916
|
-
}, getDraftTitle(taf.status)) : getStatusTagList(taf)), /*#__PURE__*/React__default[
|
|
4025
|
+
}, getDraftTitle(taf.status)) : getStatusTagList(taf)), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
3917
4026
|
item: true,
|
|
3918
4027
|
className: classes.alignIcon
|
|
3919
4028
|
}, taf.status !== 'NEW' && taf.status !== 'DRAFT' && taf.status !== 'DRAFT_CORRECTED' && taf.status !== 'DRAFT_AMENDED' && taf.status !== 'CANCELLED' && listType !== 'EXPIRED' && getActiveStatus(listType, classes.activeStatus))))));
|
|
@@ -3937,10 +4046,10 @@
|
|
|
3937
4046
|
* */
|
|
3938
4047
|
var getListType = function getListType(taf, locationSettings) {
|
|
3939
4048
|
if (!taf) return null;
|
|
3940
|
-
var now = moment__default[
|
|
3941
|
-
var baseTime = moment__default[
|
|
4049
|
+
var now = moment__default["default"].utc();
|
|
4050
|
+
var baseTime = moment__default["default"].utc(taf.baseTime);
|
|
3942
4051
|
var activityPeriod = locationSettings[taf.location].activity_period;
|
|
3943
|
-
var nextBaseTime = moment__default[
|
|
4052
|
+
var nextBaseTime = moment__default["default"].utc(taf.baseTime).add(activityPeriod, 'hours');
|
|
3944
4053
|
|
|
3945
4054
|
if (taf.status === 'EXPIRED') {
|
|
3946
4055
|
return 'EXPIRED';
|
|
@@ -3980,10 +4089,10 @@
|
|
|
3980
4089
|
onFormAction = _a.onFormAction;
|
|
3981
4090
|
var taf = tafFromBackend ? tafFromBackend.taf : null;
|
|
3982
4091
|
var locationSettings = useTafSettings(tafConfig).locations;
|
|
3983
|
-
return /*#__PURE__*/React__default[
|
|
4092
|
+
return /*#__PURE__*/React__default["default"].createElement(ContentDialog, {
|
|
3984
4093
|
open: open,
|
|
3985
4094
|
toggleDialogStatus: toggleFormDialog,
|
|
3986
|
-
titleComponent: /*#__PURE__*/React__default[
|
|
4095
|
+
titleComponent: /*#__PURE__*/React__default["default"].createElement(TafListRow, {
|
|
3987
4096
|
taf: taf,
|
|
3988
4097
|
listType: getListType(taf, locationSettings)
|
|
3989
4098
|
}),
|
|
@@ -4021,34 +4130,34 @@
|
|
|
4021
4130
|
canBe = _a.canBe,
|
|
4022
4131
|
onClickTafActionButton = _a.onClickTafActionButton;
|
|
4023
4132
|
var classes = useStyles$4();
|
|
4024
|
-
return !canBe.includes('CANCELLED') && !canBe.includes('CORRECTED') && !canBe.includes('AMENDED') ? null : /*#__PURE__*/React__default[
|
|
4133
|
+
return !canBe.includes('CANCELLED') && !canBe.includes('CORRECTED') && !canBe.includes('AMENDED') ? null : /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4025
4134
|
container: true,
|
|
4026
4135
|
alignItems: "center",
|
|
4027
4136
|
justify: "flex-end",
|
|
4028
4137
|
"data-testid": "taflist-canbebuttons",
|
|
4029
4138
|
spacing: 1,
|
|
4030
4139
|
className: classes.actionButtons
|
|
4031
|
-
}, /*#__PURE__*/React__default[
|
|
4140
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4032
4141
|
item: true
|
|
4033
|
-
}, canBe.includes('CANCELLED') && /*#__PURE__*/React__default[
|
|
4142
|
+
}, canBe.includes('CANCELLED') && /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
4034
4143
|
"data-testid": "canceltaf",
|
|
4035
4144
|
variant: "outlined",
|
|
4036
4145
|
color: "secondary",
|
|
4037
4146
|
onClick: function onClick() {
|
|
4038
4147
|
return onClickTafActionButton(uuid, 'CANCEL');
|
|
4039
4148
|
}
|
|
4040
|
-
}, "Cancel")), /*#__PURE__*/React__default[
|
|
4149
|
+
}, "Cancel")), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4041
4150
|
item: true
|
|
4042
|
-
}, canBe.includes('CORRECTED') && /*#__PURE__*/React__default[
|
|
4151
|
+
}, canBe.includes('CORRECTED') && /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
4043
4152
|
"data-testid": "correctaf",
|
|
4044
4153
|
variant: "outlined",
|
|
4045
4154
|
color: "secondary",
|
|
4046
4155
|
onClick: function onClick() {
|
|
4047
4156
|
return onClickTafActionButton(uuid, 'CORRECT');
|
|
4048
4157
|
}
|
|
4049
|
-
}, "Correct")), /*#__PURE__*/React__default[
|
|
4158
|
+
}, "Correct")), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4050
4159
|
item: true
|
|
4051
|
-
}, canBe.includes('AMENDED') && /*#__PURE__*/React__default[
|
|
4160
|
+
}, canBe.includes('AMENDED') && /*#__PURE__*/React__default["default"].createElement(core.Button, {
|
|
4052
4161
|
"data-testid": "amendtaf",
|
|
4053
4162
|
variant: "outlined",
|
|
4054
4163
|
color: "secondary",
|
|
@@ -4097,7 +4206,7 @@
|
|
|
4097
4206
|
TAC = _c[0],
|
|
4098
4207
|
requestTAC = _c[1];
|
|
4099
4208
|
|
|
4100
|
-
React__default[
|
|
4209
|
+
React__default["default"].useEffect(function () {
|
|
4101
4210
|
// only re-retrieve TAC if draft state
|
|
4102
4211
|
if (tafListItem.taf.status === 'DRAFT' || tafListItem.taf.status === 'DRAFT_AMENDED' || tafListItem.taf.status === 'DRAFT_CORRECTED') {
|
|
4103
4212
|
requestTAC(tafListItem.taf);
|
|
@@ -4105,7 +4214,7 @@
|
|
|
4105
4214
|
|
|
4106
4215
|
}, [tafListItem.taf]);
|
|
4107
4216
|
var popOut = status === 'NEW' || status === 'DRAFT' || status === 'DRAFT_AMENDED' || status === 'DRAFT_CORRECTED';
|
|
4108
|
-
return /*#__PURE__*/React__default[
|
|
4217
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Accordion, __assign({
|
|
4109
4218
|
"data-testid": "tafListItem",
|
|
4110
4219
|
className: classes.accordion
|
|
4111
4220
|
}, popOut ? {
|
|
@@ -4119,41 +4228,41 @@
|
|
|
4119
4228
|
TransitionProps: {
|
|
4120
4229
|
unmountOnExit: true
|
|
4121
4230
|
}
|
|
4122
|
-
}), /*#__PURE__*/React__default[
|
|
4231
|
+
}), /*#__PURE__*/React__default["default"].createElement(core.AccordionSummary, {
|
|
4123
4232
|
"data-testid": "tafListSectionAccordionSummary",
|
|
4124
|
-
expandIcon: popOut ? /*#__PURE__*/React__default[
|
|
4233
|
+
expandIcon: popOut ? /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
|
|
4125
4234
|
title: "Popout to edit"
|
|
4126
|
-
}, /*#__PURE__*/React__default[
|
|
4235
|
+
}, /*#__PURE__*/React__default["default"].createElement(icons.OpenInNew, {
|
|
4127
4236
|
"data-testid": "popOutIcon",
|
|
4128
4237
|
fontSize: "small"
|
|
4129
|
-
})) : /*#__PURE__*/React__default[
|
|
4238
|
+
})) : /*#__PURE__*/React__default["default"].createElement(icons.ExpandMore, {
|
|
4130
4239
|
"data-testid": "expandIcon"
|
|
4131
4240
|
})
|
|
4132
|
-
}, /*#__PURE__*/React__default[
|
|
4241
|
+
}, /*#__PURE__*/React__default["default"].createElement(TafListRow, {
|
|
4133
4242
|
taf: tafListItem.taf,
|
|
4134
4243
|
listType: listType,
|
|
4135
4244
|
TAC: TAC,
|
|
4136
4245
|
showTac: true
|
|
4137
|
-
})), /*#__PURE__*/React__default[
|
|
4246
|
+
})), /*#__PURE__*/React__default["default"].createElement(core.AccordionDetails, null, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4138
4247
|
container: true,
|
|
4139
4248
|
direction: "column"
|
|
4140
4249
|
}, errorCancelTaf.length > 0 && errorCancelTaf.find(function (uuid) {
|
|
4141
4250
|
return uuid === tafListItem.taf.uuid;
|
|
4142
|
-
}) && /*#__PURE__*/React__default[
|
|
4251
|
+
}) && /*#__PURE__*/React__default["default"].createElement(shared.AlertBanner, {
|
|
4143
4252
|
severity: "error",
|
|
4144
4253
|
title: "Cancelling this TAF failed, please try again",
|
|
4145
4254
|
dataTestId: "tafList-cancelAlert"
|
|
4146
|
-
}), /*#__PURE__*/React__default[
|
|
4255
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
4147
4256
|
className: classes.formPadding
|
|
4148
|
-
}, /*#__PURE__*/React__default[
|
|
4257
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4149
4258
|
item: true
|
|
4150
|
-
}, /*#__PURE__*/React__default[
|
|
4259
|
+
}, /*#__PURE__*/React__default["default"].createElement(TafFormWrapper, {
|
|
4151
4260
|
tafFromBackend: tafListItem,
|
|
4152
4261
|
mode: "view",
|
|
4153
4262
|
TAC: TAC
|
|
4154
|
-
})), /*#__PURE__*/React__default[
|
|
4263
|
+
})), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4155
4264
|
item: true
|
|
4156
|
-
}, /*#__PURE__*/React__default[
|
|
4265
|
+
}, /*#__PURE__*/React__default["default"].createElement(TafListButtons, {
|
|
4157
4266
|
canBe: tafListItem.canbe,
|
|
4158
4267
|
uuid: tafListItem.taf.uuid,
|
|
4159
4268
|
onClickTafActionButton: onClickTafActionButton
|
|
@@ -4196,13 +4305,13 @@
|
|
|
4196
4305
|
errorCancelTaf = _b === void 0 ? [] : _b,
|
|
4197
4306
|
onClickTafActionButton = _a.onClickTafActionButton;
|
|
4198
4307
|
var classes = useStyles$2();
|
|
4199
|
-
return /*#__PURE__*/React__default[
|
|
4308
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
|
|
4200
4309
|
variant: "subtitle2",
|
|
4201
4310
|
className: classes.listHeaders
|
|
4202
|
-
}, title), /*#__PURE__*/React__default[
|
|
4311
|
+
}, title), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
4203
4312
|
"data-testid": "tafList" + listType
|
|
4204
4313
|
}, tafList.map(function (tafListItem) {
|
|
4205
|
-
return /*#__PURE__*/React__default[
|
|
4314
|
+
return /*#__PURE__*/React__default["default"].createElement(TafListAccordion, {
|
|
4206
4315
|
key: tafListItem.taf.uuid + "-" + tafListItem.taf.status,
|
|
4207
4316
|
tafListItem: tafListItem,
|
|
4208
4317
|
listType: listType,
|
|
@@ -4244,10 +4353,10 @@
|
|
|
4244
4353
|
try {
|
|
4245
4354
|
for (var tafList_1 = __values(tafList), tafList_1_1 = tafList_1.next(); !tafList_1_1.done; tafList_1_1 = tafList_1.next()) {
|
|
4246
4355
|
var taf = tafList_1_1.value;
|
|
4247
|
-
var now = moment__default[
|
|
4248
|
-
var baseTime = moment__default[
|
|
4356
|
+
var now = moment__default["default"].utc();
|
|
4357
|
+
var baseTime = moment__default["default"].utc(taf.taf.baseTime);
|
|
4249
4358
|
var activityPeriod = locationSettings[taf.taf.location].activity_period;
|
|
4250
|
-
var nextBaseTime = moment__default[
|
|
4359
|
+
var nextBaseTime = moment__default["default"].utc(taf.taf.baseTime).add(activityPeriod, 'hours');
|
|
4251
4360
|
|
|
4252
4361
|
if (taf.taf.status === 'EXPIRED') {
|
|
4253
4362
|
expiredTafs.push(taf);
|
|
@@ -4270,37 +4379,37 @@
|
|
|
4270
4379
|
}
|
|
4271
4380
|
}
|
|
4272
4381
|
|
|
4273
|
-
return /*#__PURE__*/React__default[
|
|
4382
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4274
4383
|
container: true,
|
|
4275
4384
|
direction: "column",
|
|
4276
4385
|
alignItems: "stretch"
|
|
4277
|
-
}, /*#__PURE__*/React__default[
|
|
4386
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
|
|
4278
4387
|
item: true,
|
|
4279
4388
|
className: classes.listBody
|
|
4280
|
-
}, error && /*#__PURE__*/React__default[
|
|
4389
|
+
}, error && /*#__PURE__*/React__default["default"].createElement(shared.AlertBanner, {
|
|
4281
4390
|
severity: "error",
|
|
4282
4391
|
title: "An error has occurred while retrieving the list, please try again",
|
|
4283
4392
|
info: error.message ? error.message : '',
|
|
4284
4393
|
dataTestId: "tafList-alert"
|
|
4285
|
-
}), tafList && /*#__PURE__*/React__default[
|
|
4394
|
+
}), tafList && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TafListSection, {
|
|
4286
4395
|
title: "Upcoming",
|
|
4287
4396
|
listType: "UPCOMING",
|
|
4288
4397
|
tafList: upcomingTafs,
|
|
4289
4398
|
errorCancelTaf: errorCancelTaf,
|
|
4290
4399
|
onClickTafActionButton: onClickTafActionButton
|
|
4291
|
-
}), /*#__PURE__*/React__default[
|
|
4400
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafListSection, {
|
|
4292
4401
|
title: "Current time slot",
|
|
4293
4402
|
listType: "ACTIVE",
|
|
4294
4403
|
tafList: currentTafs,
|
|
4295
4404
|
errorCancelTaf: errorCancelTaf,
|
|
4296
4405
|
onClickTafActionButton: onClickTafActionButton
|
|
4297
|
-
}), /*#__PURE__*/React__default[
|
|
4406
|
+
}), /*#__PURE__*/React__default["default"].createElement(TafListSection, {
|
|
4298
4407
|
title: "Expired",
|
|
4299
4408
|
listType: "EXPIRED",
|
|
4300
4409
|
tafList: expiredTafs,
|
|
4301
4410
|
errorCancelTaf: errorCancelTaf,
|
|
4302
4411
|
onClickTafActionButton: onClickTafActionButton
|
|
4303
|
-
})), isLoading && /*#__PURE__*/React__default[
|
|
4412
|
+
})), isLoading && /*#__PURE__*/React__default["default"].createElement(lab.Skeleton, {
|
|
4304
4413
|
"data-testid": "tafList-skeleton",
|
|
4305
4414
|
variant: "rect",
|
|
4306
4415
|
height: "660px"
|
|
@@ -4332,10 +4441,10 @@
|
|
|
4332
4441
|
|
|
4333
4442
|
var Spinner = function Spinner() {
|
|
4334
4443
|
var classes = useStyles();
|
|
4335
|
-
return /*#__PURE__*/React__default[
|
|
4444
|
+
return /*#__PURE__*/React__default["default"].createElement(core.Backdrop, {
|
|
4336
4445
|
open: true,
|
|
4337
4446
|
className: classes.backdrop
|
|
4338
|
-
}, /*#__PURE__*/React__default[
|
|
4447
|
+
}, /*#__PURE__*/React__default["default"].createElement(core.CircularProgress, {
|
|
4339
4448
|
"data-testid": "spinner",
|
|
4340
4449
|
color: "inherit"
|
|
4341
4450
|
}));
|
|
@@ -4346,11 +4455,11 @@
|
|
|
4346
4455
|
pollingInterval = 10000;
|
|
4347
4456
|
}
|
|
4348
4457
|
|
|
4349
|
-
var _a = __read(React__default[
|
|
4458
|
+
var _a = __read(React__default["default"].useState([]), 2),
|
|
4350
4459
|
errorCancelTaf = _a[0],
|
|
4351
4460
|
setErrorCancelTaf = _a[1];
|
|
4352
4461
|
|
|
4353
|
-
React__default[
|
|
4462
|
+
React__default["default"].useEffect(function () {
|
|
4354
4463
|
var cancelErrorMessageHandler = errorCancelTaf.length > 0 ? setTimeout(function () {
|
|
4355
4464
|
if (errorCancelTaf.length > 0) {
|
|
4356
4465
|
setErrorCancelTaf(errorCancelTaf.slice(1));
|
|
@@ -4375,27 +4484,27 @@
|
|
|
4375
4484
|
var api$1 = api.useApiContext().api;
|
|
4376
4485
|
var confirmDialog = shared.useConfirmationDialog();
|
|
4377
4486
|
|
|
4378
|
-
var _a = __read(React__default[
|
|
4487
|
+
var _a = __read(React__default["default"].useState(false), 2),
|
|
4379
4488
|
isTafDialogOpen = _a[0],
|
|
4380
4489
|
setTafDialogOpen = _a[1];
|
|
4381
4490
|
|
|
4382
|
-
var _b = __read(React__default[
|
|
4491
|
+
var _b = __read(React__default["default"].useState(null), 2),
|
|
4383
4492
|
selectedTafId = _b[0],
|
|
4384
4493
|
setselectedTafId = _b[1];
|
|
4385
4494
|
|
|
4386
|
-
var _c = __read(React__default[
|
|
4495
|
+
var _c = __read(React__default["default"].useState(null), 2),
|
|
4387
4496
|
tafDialogAction = _c[0],
|
|
4388
4497
|
setTafDialogAction = _c[1];
|
|
4389
4498
|
|
|
4390
|
-
var _d = __read(React__default[
|
|
4499
|
+
var _d = __read(React__default["default"].useState(false), 2),
|
|
4391
4500
|
errorPostMessage = _d[0],
|
|
4392
4501
|
setErrorPostMessage = _d[1];
|
|
4393
4502
|
|
|
4394
|
-
var _e = __read(React__default[
|
|
4503
|
+
var _e = __read(React__default["default"].useState(''), 2),
|
|
4395
4504
|
errorPostMessageText = _e[0],
|
|
4396
4505
|
setErrorPostMessageText = _e[1];
|
|
4397
4506
|
|
|
4398
|
-
var _f = __read(React__default[
|
|
4507
|
+
var _f = __read(React__default["default"].useState(false), 2),
|
|
4399
4508
|
showSpinner = _f[0],
|
|
4400
4509
|
setSpinner = _f[1]; // clear error message for cancel after 10 seconds
|
|
4401
4510
|
|
|
@@ -4426,7 +4535,7 @@
|
|
|
4426
4535
|
setTafDialogOpen(!isTafDialogOpen);
|
|
4427
4536
|
};
|
|
4428
4537
|
|
|
4429
|
-
React__default[
|
|
4538
|
+
React__default["default"].useEffect(function () {
|
|
4430
4539
|
if (selectedTafId) {
|
|
4431
4540
|
toggleTafDialog();
|
|
4432
4541
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -4568,28 +4677,28 @@
|
|
|
4568
4677
|
};
|
|
4569
4678
|
|
|
4570
4679
|
var selectedTaf = getSelectedTaf(selectedTafId, tafList);
|
|
4571
|
-
return /*#__PURE__*/React__default[
|
|
4680
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TafList, {
|
|
4572
4681
|
tafList: tafList,
|
|
4573
4682
|
isLoading: isLoadingList,
|
|
4574
4683
|
error: errorList,
|
|
4575
4684
|
onClickTafActionButton: onClickTafActionButton,
|
|
4576
4685
|
errorCancelTaf: errorCancelTaf
|
|
4577
|
-
}), showSpinner && /*#__PURE__*/React__default[
|
|
4686
|
+
}), showSpinner && /*#__PURE__*/React__default["default"].createElement(Spinner, null), selectedTaf !== undefined && /*#__PURE__*/React__default["default"].createElement(TafFormDialog, {
|
|
4578
4687
|
open: isTafDialogOpen,
|
|
4579
4688
|
toggleFormDialog: toggleTafDialog,
|
|
4580
4689
|
tafFromBackend: selectedTaf,
|
|
4581
|
-
alertBanner: errorPostMessage ? /*#__PURE__*/React__default[
|
|
4690
|
+
alertBanner: errorPostMessage ? /*#__PURE__*/React__default["default"].createElement(shared.AlertBanner, {
|
|
4582
4691
|
severity: "error",
|
|
4583
4692
|
title: "An error has occurred while saving, please try again",
|
|
4584
4693
|
info: errorPostMessageText
|
|
4585
4694
|
}) : null,
|
|
4586
4695
|
onFormAction: onFormAction
|
|
4587
|
-
}, /*#__PURE__*/React__default[
|
|
4696
|
+
}, /*#__PURE__*/React__default["default"].createElement(TafFormWrapper, {
|
|
4588
4697
|
mode: "edit",
|
|
4589
4698
|
tafFromBackend: selectedTaf,
|
|
4590
4699
|
tafAction: tafDialogAction,
|
|
4591
4700
|
onFormAction: onFormAction
|
|
4592
|
-
}), showSpinner && /*#__PURE__*/React__default[
|
|
4701
|
+
}), showSpinner && /*#__PURE__*/React__default["default"].createElement(Spinner, null)));
|
|
4593
4702
|
};
|
|
4594
4703
|
/**
|
|
4595
4704
|
* Shows the list of Tafs and allows to create, edit and view Tafs.
|
|
@@ -4601,11 +4710,11 @@
|
|
|
4601
4710
|
|
|
4602
4711
|
|
|
4603
4712
|
var ConfirmationWrapper = function ConfirmationWrapper() {
|
|
4604
|
-
return /*#__PURE__*/React__default[
|
|
4713
|
+
return /*#__PURE__*/React__default["default"].createElement(shared.ConfirmationServiceProvider, null, /*#__PURE__*/React__default["default"].createElement(TafWrapper, null));
|
|
4605
4714
|
};
|
|
4606
4715
|
|
|
4607
|
-
var createApi = function createApi(url, appUrl, auth, setAuth, authTokenUrl) {
|
|
4608
|
-
var axiosInstance = api.createApiInstance(url, appUrl, auth, setAuth, authTokenUrl);
|
|
4716
|
+
var createApi = function createApi(url, appUrl, auth, setAuth, authTokenUrl, authClientId) {
|
|
4717
|
+
var axiosInstance = api.createApiInstance(url, appUrl, auth, setAuth, authTokenUrl, authClientId);
|
|
4609
4718
|
return {
|
|
4610
4719
|
// api data
|
|
4611
4720
|
getTafList: function getTafList() {
|
|
@@ -4631,4 +4740,4 @@
|
|
|
4631
4740
|
|
|
4632
4741
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4633
4742
|
|
|
4634
|
-
}))
|
|
4743
|
+
}));
|