@opengeoweb/taf 9.6.0 → 9.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -795,7 +795,9 @@ var validateValidField = function validateValidField(value, tafStart, tafEnd) {
795
795
  return true;
796
796
  }
797
797
  // Validate length and ensure it doesn't contain any other characters than numbers and / and has either XXXX/XXXX or XXXXXX format
798
- if (trimmedValue.length < lengthFM || trimmedValue.length > lengthBECMGTEMPO || !(trimmedValue.match(/^[0-9]{4}\/[0-9]{4}$/) || trimmedValue.match(/^[0-9]{6}$/))) {
798
+ if (trimmedValue.length < lengthFM || trimmedValue.length > lengthBECMGTEMPO || !(trimmedValue.match(/^[0-9]{4}\/[0-9]{4}$/) || trimmedValue.match(/^[0-9]{6}$/)) ||
799
+ // only allow dates with / fully typed
800
+ (tafStart === null || tafStart === void 0 ? void 0 : tafStart.indexOf('/')) > -1 && trimmedValue.length !== lengthBECMGTEMPO || (tafEnd === null || tafEnd === void 0 ? void 0 : tafEnd.indexOf('/')) > -1 && trimmedValue.length !== lengthBECMGTEMPO) {
799
801
  return invalidChangeValidInterFieldMessage;
800
802
  }
801
803
  // Ensure valid date(s) can be made
@@ -3728,6 +3730,11 @@ var TafFormRow = /*#__PURE__*/React__default.forwardRef(function (_a, ref) {
3728
3730
  changeGroups = _getValues.changeGroups;
3729
3731
  var currentChangeGroup = changeGroups[index];
3730
3732
  var previousChangeGroup = changeGroups[index - 1];
3733
+ var isvalidPrevious = validateValidField(currentChangeGroup.valid, getValues('validDateStart'), getValues('validDateEnd')) === true;
3734
+ var isvalidNext = validateValidField(previousChangeGroup.valid, getValues('validDateStart'), getValues('validDateEnd')) === true;
3735
+ if (isvalidPrevious !== true || isvalidNext !== true) {
3736
+ return true;
3737
+ }
3731
3738
  return validatePreviousChangeGroup(currentChangeGroup, previousChangeGroup, validDateStart, validDateEnd);
3732
3739
  }
3733
3740
  return true;
@@ -4146,7 +4153,7 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4146
4153
  formState = _useFormContext.formState,
4147
4154
  getValues = _useFormContext.getValues,
4148
4155
  setValue = _useFormContext.setValue,
4149
- reset = _useFormContext.reset;
4156
+ resetField = _useFormContext.resetField;
4150
4157
  var _useDragOrder = useDragOrder(trigger, move),
4151
4158
  onChangeOrder = _useDragOrder.onChangeOrder,
4152
4159
  onStartDrag = _useDragOrder.onStartDrag,
@@ -4177,10 +4184,18 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4177
4184
  };
4178
4185
  var resetFormValues = function resetFormValues(formData) {
4179
4186
  var keepDirty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
4180
- reset(formData, {
4181
- keepDirty: keepDirty
4187
+ Object.keys(formData).forEach(function (key) {
4188
+ if (!keepDirty) {
4189
+ resetField(key, {
4190
+ keepDirty: keepDirty,
4191
+ defaultValue: formData[key]
4192
+ });
4193
+ }
4194
+ setValue(key, formData[key], {
4195
+ shouldDirty: keepDirty
4196
+ });
4197
+ replace(formData.changeGroups);
4182
4198
  });
4183
- replace(formData.changeGroups);
4184
4199
  };
4185
4200
  var resetFormState = function resetFormState(resetDisabled) {
4186
4201
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
@@ -5021,7 +5036,8 @@ var TacContainer = function TacContainer(_ref) {
5021
5036
  var _useFormContext = useFormContext(),
5022
5037
  getValues = _useFormContext.getValues,
5023
5038
  trigger = _useFormContext.trigger,
5024
- reset = _useFormContext.reset;
5039
+ reset = _useFormContext.reset,
5040
+ setValue = _useFormContext.setValue;
5025
5041
  var _useTafModuleContext = useTafModuleContext(),
5026
5042
  useFieldArrayMethods = _useTafModuleContext.useFieldArrayMethods;
5027
5043
  var replace = useFieldArrayMethods.replace;
@@ -5034,7 +5050,17 @@ var TacContainer = function TacContainer(_ref) {
5034
5050
  var currentTaf = getValues();
5035
5051
  var newTaf = prepareTafExportValues(taf, currentTaf);
5036
5052
  reset(newTaf, {
5037
- keepDirty: true
5053
+ keepDefaultValues: true,
5054
+ keepValues: false,
5055
+ keepDirty: false,
5056
+ keepErrors: false,
5057
+ keepIsValid: false,
5058
+ keepDirtyValues: false
5059
+ });
5060
+ Object.keys(newTaf).forEach(function (key) {
5061
+ setValue(key, newTaf[key], {
5062
+ shouldValidate: true
5063
+ });
5038
5064
  });
5039
5065
  replace(newTaf.changeGroups);
5040
5066
  setTimeout(function () {
@@ -6093,10 +6119,22 @@ var TafWrapper = function TafWrapper(_a) {
6093
6119
  options: {
6094
6120
  mode: 'onTouched',
6095
6121
  reValidateMode: 'onChange',
6096
- criteriaMode: 'all',
6122
+ criteriaMode: 'firstError',
6097
6123
  defaultValues: {
6098
6124
  baseForecast: emptyBaseForecast,
6099
- changeGroups: [emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup]
6125
+ changeGroups: [emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup, emptyChangegroup],
6126
+ validDateStart: '',
6127
+ validDateEnd: '',
6128
+ baseTime: '',
6129
+ previousId: '',
6130
+ previousValidDateStart: '',
6131
+ previousValidDateEnd: '',
6132
+ location: '',
6133
+ messageType: '',
6134
+ uuid: '',
6135
+ issueDate: '',
6136
+ status: '',
6137
+ IS_DRAFT: false
6100
6138
  }
6101
6139
  }
6102
6140
  }, /*#__PURE__*/React.createElement(TafModuleProvider, Object.assign({}, props), children));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/taf",
3
- "version": "9.6.0",
3
+ "version": "9.8.0",
4
4
  "description": "GeoWeb TAF library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -19,3 +19,4 @@ export declare const TafPanelTakeOverErrorDarkSnap: {
19
19
  (): React.ReactElement;
20
20
  storyName: string;
21
21
  };
22
+ export declare const TafPanelMultipleRowsWithSameDates: () => React.ReactElement;