@opengeoweb/taf 4.7.0 → 4.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
@@ -2046,10 +2046,17 @@ function formatFormValues(row) {
2046
2046
 
2047
2047
  case 'cavOK':
2048
2048
  {
2049
- // Assume if cavOK field set to true - no visibility field, otherwise return the original list containing the visibility
2050
- return list[key] ? Object.assign(Object.assign({}, list), {
2051
- visibility: formatVisibilityToString(list[key])
2052
- }) : list;
2049
+ // Assume if cavOK field set to true - no visibility field, otherwise return the original list containing the visibility and remove cavOK
2050
+ list.cavOK;
2051
+ var formData = __rest(list, ["cavOK"]);
2052
+
2053
+ if (list[key]) {
2054
+ return Object.assign(Object.assign({}, formData), {
2055
+ visibility: formatVisibilityToString(list[key])
2056
+ });
2057
+ }
2058
+
2059
+ return formData;
2053
2060
  }
2054
2061
 
2055
2062
  case 'cloud':
@@ -2645,6 +2652,9 @@ var textFieldStyle = function textFieldStyle(theme) {
2645
2652
  },
2646
2653
  // root
2647
2654
  '&': {
2655
+ '.Mui-error.MuiFilledInput-root': {
2656
+ backgroundColor: 'geowebColors.captions.captionErrorBackground.rgba'
2657
+ },
2648
2658
  '.Mui-disabled:before': {
2649
2659
  borderColor: 'transparent'
2650
2660
  }
@@ -2704,11 +2714,9 @@ var TafFormTextField = function TafFormTextField(_ref) {
2704
2714
 
2705
2715
  var _useFormContext = useFormContext(),
2706
2716
  control = _useFormContext.control,
2707
- getValues = _useFormContext.getValues,
2708
2717
  setValue = _useFormContext.setValue,
2709
- errors = _useFormContext.errors;
2718
+ errors = _useFormContext.formState.errors;
2710
2719
 
2711
- var inputRef = React__default.useRef(null);
2712
2720
  var fieldErrors = getTafErrors(name, errors);
2713
2721
 
2714
2722
  var _React$useState = React__default.useState(null),
@@ -2717,8 +2725,11 @@ var TafFormTextField = function TafFormTextField(_ref) {
2717
2725
  setMaxLength = _React$useState2[1];
2718
2726
 
2719
2727
  var onKeyDown = React__default.useCallback(function (event) {
2720
- var currentValue = getValues(name).toString();
2721
- var textSelection = currentValue.substring(inputRef.current.selectionStart, inputRef.current.selectionEnd);
2728
+ var target = event.target;
2729
+ var currentValue = target.value,
2730
+ selectionStart = target.selectionStart,
2731
+ selectionEnd = target.selectionEnd;
2732
+ var textSelection = currentValue.substring(selectionStart, selectionEnd);
2722
2733
 
2723
2734
  if (autoComplete && !currentValue.length || textSelection.length && currentValue.length && textSelection === currentValue) {
2724
2735
  var pressedKey = event.key.toString().toUpperCase();
@@ -2732,7 +2743,7 @@ var TafFormTextField = function TafFormTextField(_ref) {
2732
2743
  event.preventDefault();
2733
2744
  }
2734
2745
  }
2735
- }, [name, autoComplete, setValue, getValues]);
2746
+ }, [name, autoComplete, setValue]);
2736
2747
  var onChangeField = React__default.useCallback(function (event, callback) {
2737
2748
  var valueUppercase = event.currentTarget.value.toUpperCase();
2738
2749
 
@@ -2751,28 +2762,24 @@ var TafFormTextField = function TafFormTextField(_ref) {
2751
2762
  callback();
2752
2763
  onBlur();
2753
2764
  }, [onBlur]);
2754
- var onFocusField = React__default.useCallback(function () {
2755
- var _a;
2756
-
2757
- inputRef.current.disabled = false;
2758
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
2759
- }, []);
2765
+ var hasError = !!fieldErrors;
2760
2766
  return /*#__PURE__*/React__default.createElement(Controller, {
2761
- render: function render(_props) {
2762
- var displayValue = formatter ? formatter(_props.value) : getDisplayValue(_props.value, disabled);
2767
+ render: function render(_ref2) {
2768
+ var field = _ref2.field;
2769
+ var displayValue = formatter ? formatter(field.value) : getDisplayValue(field.value, disabled);
2763
2770
  return /*#__PURE__*/React__default.createElement(BaseTextField, {
2764
2771
  label: label,
2765
2772
  disabled: disabled,
2766
2773
  name: name,
2767
2774
  value: displayValue,
2768
- inputRef: inputRef,
2775
+ inputRef: field.ref,
2769
2776
  onChange: function onChange(e) {
2770
- return onChangeField(e, _props.onChange);
2777
+ return onChangeField(e, field.onChange);
2771
2778
  },
2772
2779
  onKeyDown: onKeyDown,
2773
- error: !!fieldErrors,
2780
+ error: hasError,
2774
2781
  onBlur: function onBlur() {
2775
- return onBlurField(_props.onBlur);
2782
+ return onBlurField(field.onBlur);
2776
2783
  },
2777
2784
  inputProps: {
2778
2785
  maxLength: maxLength
@@ -2783,8 +2790,7 @@ var TafFormTextField = function TafFormTextField(_ref) {
2783
2790
  name: name,
2784
2791
  control: control,
2785
2792
  defaultValue: defaultValue,
2786
- rules: rules,
2787
- onFocus: onFocusField
2793
+ rules: rules
2788
2794
  });
2789
2795
  };
2790
2796
 
@@ -3986,10 +3992,28 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
3986
3992
  formState = _useFormContext.formState,
3987
3993
  getValues = _useFormContext.getValues,
3988
3994
  setValue = _useFormContext.setValue,
3989
- reset = _useFormContext.reset;
3995
+ reset = _useFormContext.reset; // added this ignore as the build is failing otherwise on: Type instantiation is excessively deep and possibly infinite.
3996
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3997
+ // @ts-ignore
3998
+
3999
+
4000
+ var _useFieldArray = useFieldArray({
4001
+ control: control,
4002
+ name: 'changeGroups'
4003
+ }),
4004
+ fields = _useFieldArray.fields,
4005
+ insert = _useFieldArray.insert,
4006
+ remove = _useFieldArray.remove,
4007
+ move = _useFieldArray.move;
4008
+
4009
+ var _useDragOrder = useDragOrder(trigger, move),
4010
+ onChangeOrder = _useDragOrder.onChangeOrder,
4011
+ onStartDrag = _useDragOrder.onStartDrag,
4012
+ activeDraggingIndex = _useDragOrder.activeDraggingIndex;
3990
4013
 
3991
- var isFormDirty = formState.isDirty,
4014
+ var dirtyFields = formState.dirtyFields,
3992
4015
  errors = formState.errors;
4016
+ var isFormDirty = Object.keys(dirtyFields).length > 0;
3993
4017
  usePreventBrowserClose(isFormDirty && !isDisabled); // Needed to be able to show a confirmation dialog on closing parent view
3994
4018
 
3995
4019
  React__default.useEffect(function () {
@@ -4013,7 +4037,10 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4013
4037
  };
4014
4038
 
4015
4039
  var resetFormValues = function resetFormValues(formData) {
4016
- return reset(formData);
4040
+ reset(formData, {
4041
+ keepDirty: false,
4042
+ keepDirtyValues: false
4043
+ });
4017
4044
  };
4018
4045
 
4019
4046
  var resetFormState = function resetFormState() {
@@ -4238,20 +4265,6 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4238
4265
  }
4239
4266
  };
4240
4267
 
4241
- var _useFieldArray = useFieldArray({
4242
- control: control,
4243
- name: 'changeGroups'
4244
- }),
4245
- fields = _useFieldArray.fields,
4246
- insert = _useFieldArray.insert,
4247
- remove = _useFieldArray.remove,
4248
- move = _useFieldArray.move;
4249
-
4250
- var _useDragOrder = useDragOrder(trigger, move),
4251
- onChangeOrder = _useDragOrder.onChangeOrder,
4252
- onStartDrag = _useDragOrder.onStartDrag,
4253
- activeDraggingIndex = _useDragOrder.activeDraggingIndex;
4254
-
4255
4268
  var onRemoverow = function onRemoverow(index) {
4256
4269
  confirmDialog({
4257
4270
  title: 'Delete row',
@@ -4285,7 +4298,9 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4285
4298
  var rowIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
4286
4299
  var above = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
4287
4300
  var newRowIndex = above ? rowIndex : rowIndex + 1;
4288
- insert(newRowIndex, emptyChangegroup, false);
4301
+ insert(newRowIndex, emptyChangegroup, {
4302
+ shouldFocus: false
4303
+ });
4289
4304
  setFocusAndValidate(newRowIndex);
4290
4305
  };
4291
4306
 
@@ -4299,7 +4314,9 @@ var TafForm = /*#__PURE__*/React__default.memo(function (_ref) {
4299
4314
  }).then(function () {
4300
4315
  if (isChangeGroup) {
4301
4316
  remove(rowIndex);
4302
- insert(rowIndex, emptyChangegroup, false);
4317
+ insert(rowIndex, emptyChangegroup, {
4318
+ shouldFocus: false
4319
+ });
4303
4320
  } else {
4304
4321
  var baseForecastFields = getFieldNames(false, -1);
4305
4322
  setValue(baseForecastFields.wind, '');
@@ -5210,7 +5227,9 @@ var TopTabs = function TopTabs(_ref) {
5210
5227
  } : _ref$tafFromBackend;
5211
5228
 
5212
5229
  var _useFormContext = useFormContext(),
5213
- isDirty = _useFormContext.formState.isDirty;
5230
+ dirtyFields = _useFormContext.formState.dirtyFields;
5231
+
5232
+ var isDirty = Object.keys(dirtyFields).length > 0;
5214
5233
 
5215
5234
  if (!tafFromBackend) {
5216
5235
  return null;
@@ -5278,8 +5297,9 @@ var LocationTabs = function LocationTabs(_ref) {
5278
5297
  timeSlot = _ref.timeSlot;
5279
5298
 
5280
5299
  var _useFormContext = useFormContext(),
5281
- isDirty = _useFormContext.formState.isDirty;
5300
+ dirtyFields = _useFormContext.formState.dirtyFields;
5282
5301
 
5302
+ var isDirty = Object.keys(dirtyFields).length > 0;
5283
5303
  return /*#__PURE__*/React.createElement(MenuList, {
5284
5304
  "data-testid": "location-tabs",
5285
5305
  sx: {
package/index.umd.js CHANGED
@@ -2047,10 +2047,17 @@
2047
2047
 
2048
2048
  case 'cavOK':
2049
2049
  {
2050
- // Assume if cavOK field set to true - no visibility field, otherwise return the original list containing the visibility
2051
- return list[key] ? __assign(__assign({}, list), {
2052
- visibility: formatVisibilityToString(list[key])
2053
- }) : list;
2050
+ // Assume if cavOK field set to true - no visibility field, otherwise return the original list containing the visibility and remove cavOK
2051
+ list.cavOK;
2052
+ var formData = __rest(list, ["cavOK"]);
2053
+
2054
+ if (list[key]) {
2055
+ return __assign(__assign({}, formData), {
2056
+ visibility: formatVisibilityToString(list[key])
2057
+ });
2058
+ }
2059
+
2060
+ return formData;
2054
2061
  }
2055
2062
 
2056
2063
  case 'cloud':
@@ -2653,6 +2660,9 @@
2653
2660
  },
2654
2661
  // root
2655
2662
  '&': {
2663
+ '.Mui-error.MuiFilledInput-root': {
2664
+ backgroundColor: 'geowebColors.captions.captionErrorBackground.rgba'
2665
+ },
2656
2666
  '.Mui-disabled:before': {
2657
2667
  borderColor: 'transparent'
2658
2668
  }
@@ -2712,11 +2722,9 @@
2712
2722
 
2713
2723
  var _k = reactHookForm.useFormContext(),
2714
2724
  control = _k.control,
2715
- getValues = _k.getValues,
2716
2725
  setValue = _k.setValue,
2717
- errors = _k.errors;
2726
+ errors = _k.formState.errors;
2718
2727
 
2719
- var inputRef = React__default["default"].useRef(null);
2720
2728
  var fieldErrors = getTafErrors(name, errors);
2721
2729
 
2722
2730
  var _l = __read(React__default["default"].useState(null), 2),
@@ -2724,8 +2732,11 @@
2724
2732
  setMaxLength = _l[1];
2725
2733
 
2726
2734
  var onKeyDown = React__default["default"].useCallback(function (event) {
2727
- var currentValue = getValues(name).toString();
2728
- var textSelection = currentValue.substring(inputRef.current.selectionStart, inputRef.current.selectionEnd);
2735
+ var target = event.target;
2736
+ var currentValue = target.value,
2737
+ selectionStart = target.selectionStart,
2738
+ selectionEnd = target.selectionEnd;
2739
+ var textSelection = currentValue.substring(selectionStart, selectionEnd);
2729
2740
 
2730
2741
  if (autoComplete && !currentValue.length || textSelection.length && currentValue.length && textSelection === currentValue) {
2731
2742
  var pressedKey_1 = event.key.toString().toUpperCase();
@@ -2739,7 +2750,7 @@
2739
2750
  event.preventDefault();
2740
2751
  }
2741
2752
  }
2742
- }, [name, autoComplete, setValue, getValues]);
2753
+ }, [name, autoComplete, setValue]);
2743
2754
  var onChangeField = React__default["default"].useCallback(function (event, callback) {
2744
2755
  var valueUppercase = event.currentTarget.value.toUpperCase();
2745
2756
 
@@ -2758,28 +2769,24 @@
2758
2769
  callback();
2759
2770
  onBlur();
2760
2771
  }, [onBlur]);
2761
- var onFocusField = React__default["default"].useCallback(function () {
2762
- var _a;
2763
-
2764
- inputRef.current.disabled = false;
2765
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
2766
- }, []);
2772
+ var hasError = !!fieldErrors;
2767
2773
  return /*#__PURE__*/React__default["default"].createElement(reactHookForm.Controller, {
2768
- render: function render(_props) {
2769
- var displayValue = formatter ? formatter(_props.value) : getDisplayValue(_props.value, disabled);
2774
+ render: function render(_a) {
2775
+ var field = _a.field;
2776
+ var displayValue = formatter ? formatter(field.value) : getDisplayValue(field.value, disabled);
2770
2777
  return /*#__PURE__*/React__default["default"].createElement(BaseTextField, {
2771
2778
  label: label,
2772
2779
  disabled: disabled,
2773
2780
  name: name,
2774
2781
  value: displayValue,
2775
- inputRef: inputRef,
2782
+ inputRef: field.ref,
2776
2783
  onChange: function onChange(e) {
2777
- return onChangeField(e, _props.onChange);
2784
+ return onChangeField(e, field.onChange);
2778
2785
  },
2779
2786
  onKeyDown: onKeyDown,
2780
- error: !!fieldErrors,
2787
+ error: hasError,
2781
2788
  onBlur: function onBlur() {
2782
- return onBlurField(_props.onBlur);
2789
+ return onBlurField(field.onBlur);
2783
2790
  },
2784
2791
  inputProps: {
2785
2792
  maxLength: maxLength
@@ -2790,8 +2797,7 @@
2790
2797
  name: name,
2791
2798
  control: control,
2792
2799
  defaultValue: defaultValue,
2793
- rules: rules,
2794
- onFocus: onFocusField
2800
+ rules: rules
2795
2801
  });
2796
2802
  };
2797
2803
 
@@ -3988,10 +3994,28 @@
3988
3994
  formState = _l.formState,
3989
3995
  getValues = _l.getValues,
3990
3996
  setValue = _l.setValue,
3991
- reset = _l.reset;
3997
+ reset = _l.reset; // added this ignore as the build is failing otherwise on: Type instantiation is excessively deep and possibly infinite.
3998
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3999
+ // @ts-ignore
3992
4000
 
3993
- var isFormDirty = formState.isDirty,
4001
+
4002
+ var _m = reactHookForm.useFieldArray({
4003
+ control: control,
4004
+ name: 'changeGroups'
4005
+ }),
4006
+ fields = _m.fields,
4007
+ insert = _m.insert,
4008
+ remove = _m.remove,
4009
+ move = _m.move;
4010
+
4011
+ var _o = useDragOrder(trigger, move),
4012
+ onChangeOrder = _o.onChangeOrder,
4013
+ onStartDrag = _o.onStartDrag,
4014
+ activeDraggingIndex = _o.activeDraggingIndex;
4015
+
4016
+ var dirtyFields = formState.dirtyFields,
3994
4017
  errors = formState.errors;
4018
+ var isFormDirty = Object.keys(dirtyFields).length > 0;
3995
4019
  shared.usePreventBrowserClose(isFormDirty && !isDisabled); // Needed to be able to show a confirmation dialog on closing parent view
3996
4020
 
3997
4021
  React__default["default"].useEffect(function () {
@@ -4015,7 +4039,10 @@
4015
4039
  };
4016
4040
 
4017
4041
  var resetFormValues = function resetFormValues(formData) {
4018
- return reset(formData);
4042
+ reset(formData, {
4043
+ keepDirty: false,
4044
+ keepDirtyValues: false
4045
+ });
4019
4046
  };
4020
4047
 
4021
4048
  var resetFormState = function resetFormState(action, resetDisabled, tafToReset) {
@@ -4246,20 +4273,6 @@
4246
4273
  }
4247
4274
  };
4248
4275
 
4249
- var _m = reactHookForm.useFieldArray({
4250
- control: control,
4251
- name: 'changeGroups'
4252
- }),
4253
- fields = _m.fields,
4254
- insert = _m.insert,
4255
- remove = _m.remove,
4256
- move = _m.move;
4257
-
4258
- var _o = useDragOrder(trigger, move),
4259
- onChangeOrder = _o.onChangeOrder,
4260
- onStartDrag = _o.onStartDrag,
4261
- activeDraggingIndex = _o.activeDraggingIndex;
4262
-
4263
4276
  var onRemoverow = function onRemoverow(index) {
4264
4277
  confirmDialog({
4265
4278
  title: 'Delete row',
@@ -4299,7 +4312,9 @@
4299
4312
  }
4300
4313
 
4301
4314
  var newRowIndex = above ? rowIndex : rowIndex + 1;
4302
- insert(newRowIndex, emptyChangegroup, false);
4315
+ insert(newRowIndex, emptyChangegroup, {
4316
+ shouldFocus: false
4317
+ });
4303
4318
  setFocusAndValidate(newRowIndex);
4304
4319
  };
4305
4320
 
@@ -4319,7 +4334,9 @@
4319
4334
  }).then(function () {
4320
4335
  if (isChangeGroup) {
4321
4336
  remove(rowIndex);
4322
- insert(rowIndex, emptyChangegroup, false);
4337
+ insert(rowIndex, emptyChangegroup, {
4338
+ shouldFocus: false
4339
+ });
4323
4340
  } else {
4324
4341
  var baseForecastFields = getFieldNames(false, -1);
4325
4342
  setValue(baseForecastFields.wind, '');
@@ -5216,7 +5233,8 @@
5216
5233
  location: 'EHAM'
5217
5234
  }
5218
5235
  } : _c;
5219
- var isDirty = reactHookForm.useFormContext().formState.isDirty;
5236
+ var dirtyFields = reactHookForm.useFormContext().formState.dirtyFields;
5237
+ var isDirty = Object.keys(dirtyFields).length > 0;
5220
5238
 
5221
5239
  if (!tafFromBackend) {
5222
5240
  return null;
@@ -5282,7 +5300,8 @@
5282
5300
  _c = _a.onChangeTab,
5283
5301
  onChangeTab = _c === void 0 ? function () {} : _c,
5284
5302
  timeSlot = _a.timeSlot;
5285
- var isDirty = reactHookForm.useFormContext().formState.isDirty;
5303
+ var dirtyFields = reactHookForm.useFormContext().formState.dirtyFields;
5304
+ var isDirty = Object.keys(dirtyFields).length > 0;
5286
5305
  return /*#__PURE__*/React__namespace.createElement(material.MenuList, {
5287
5306
  "data-testid": "location-tabs",
5288
5307
  sx: {
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- import { FieldError } from 'react-hook-form';
2
+ import { FieldErrors } from 'react-hook-form';
3
3
  import { IssuesPanePosition } from './types';
4
4
  interface IssuesButtonProps {
5
- errors?: Record<string, FieldError>;
5
+ errors?: FieldErrors;
6
6
  isIssuesPaneOpen?: boolean;
7
7
  setIsIssuesPaneOpen?: (isOpen: boolean, position?: IssuesPanePosition) => void;
8
8
  }
@@ -1,7 +1,7 @@
1
- import { FieldError } from 'react-hook-form';
1
+ import { FieldError, FieldErrors } from 'react-hook-form';
2
2
  import { CustomErrorField } from './types';
3
3
  export declare const getCustomError: (error: FieldError, isChangeGroup: boolean, rowIndex: number) => CustomErrorField;
4
4
  export declare const getIssuesLabel: (sumOfErrors: number) => string;
5
5
  export declare const getErrorValues: (fieldErrors: FieldError, isChangeGroup?: boolean, rowIndex?: number) => FieldError[];
6
6
  export declare const filterDuplicateErrors: (errors: CustomErrorField[]) => CustomErrorField[];
7
- export declare const getErrors: (errors: Record<string, FieldError>) => CustomErrorField[];
7
+ export declare const getErrors: (errors: FieldErrors) => CustomErrorField[];
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import { UseFormOptions } from 'react-hook-form';
3
2
  import { Theme } from '@mui/material';
4
3
  import { Store } from '@reduxjs/toolkit';
4
+ import { UseFormProps } from 'react-hook-form';
5
5
  import { TafApi } from '../../utils/api';
6
6
  export interface TafThemeApiProviderProps {
7
7
  createApiFunc?: () => TafApi;
@@ -12,7 +12,7 @@ export interface TafThemeApiProviderProps {
12
12
  export declare const TafThemeApiProvider: React.FC<TafThemeApiProviderProps>;
13
13
  interface TafThemeFormProviderProps {
14
14
  children: React.ReactNode;
15
- options?: UseFormOptions;
15
+ options?: UseFormProps;
16
16
  theme?: Theme;
17
17
  }
18
18
  export declare const TafThemeFormProvider: React.FC<TafThemeFormProviderProps>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { GridProps } from '@mui/material';
3
- import { ArrayField } from 'react-hook-form';
3
+ import { FieldValues } from 'react-hook-form';
4
4
  export interface TafFormRowProps extends GridProps {
5
5
  isNotRequiredForAction: (value: string) => boolean | string;
6
6
  isChangeGroup?: boolean;
@@ -10,7 +10,7 @@ export interface TafFormRowProps extends GridProps {
10
10
  onAddChangeGroupBelow?: (index: number) => void;
11
11
  onAddChangeGroupAbove?: (index: number) => void;
12
12
  onClearRow?: (index: number) => void;
13
- field?: Partial<ArrayField>;
13
+ field?: FieldValues;
14
14
  dragHandle?: React.ReactElement;
15
15
  }
16
16
  export interface FieldNames {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/taf",
3
- "version": "4.7.0",
3
+ "version": "4.8.0",
4
4
  "description": "GeoWeb TAF library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -12,27 +12,27 @@
12
12
  "typings": "./index.d.ts",
13
13
  "dependencies": {},
14
14
  "peerDependencies": {
15
- "@opengeoweb/core": "4.7.0",
15
+ "@opengeoweb/core": "4.8.0",
16
16
  "react": "^17.0.2",
17
- "@opengeoweb/theme": "4.7.0",
17
+ "@opengeoweb/shared": "4.8.0",
18
18
  "@mui/material": "^5.10.8",
19
- "moment": "^2.29.0",
20
- "react-redux": "^8.0.4",
21
- "@opengeoweb/webmap": "4.7.0",
22
- "throttle-debounce": "^3.0.1",
23
- "proj4": "^2.6.2",
24
- "axios": "^0.25.0",
25
- "@opengeoweb/api": "4.7.0",
26
- "@opengeoweb/shared": "4.7.0",
19
+ "@opengeoweb/theme": "4.8.0",
27
20
  "react-draggable": "^4.4.5",
28
21
  "re-resizable": "^6.9.0",
29
22
  "@redux-eggs/core": "^2.2.0",
30
- "@opengeoweb/form-fields": "4.7.0",
31
- "react-hook-form": "^6.12.1",
23
+ "react-redux": "^8.0.4",
24
+ "@opengeoweb/form-fields": "4.8.0",
25
+ "react-hook-form": "^7.41.5",
26
+ "moment": "^2.29.0",
32
27
  "moment-timezone": "^0.5.31",
33
28
  "@mui/x-date-pickers": "^5.0.4",
34
29
  "lodash": "^4.17.20",
30
+ "axios": "^0.25.0",
35
31
  "date-fns": "^2.29.3",
32
+ "@opengeoweb/webmap": "4.8.0",
33
+ "throttle-debounce": "^3.0.1",
34
+ "proj4": "^2.6.2",
35
+ "@opengeoweb/api": "4.8.0",
36
36
  "react-intl": "^5.17.5",
37
37
  "react-sortablejs": "^6.1.4",
38
38
  "sortablejs": "^1.15.0",
@@ -46,7 +46,7 @@
46
46
  "@redux-eggs/redux-toolkit": "^2.2.0",
47
47
  "@redux-eggs/saga-extension": "^2.2.0",
48
48
  "react-dom": "^17.0.2",
49
- "@opengeoweb/authentication": "4.7.0",
49
+ "@opengeoweb/authentication": "4.8.0",
50
50
  "react-router-dom": "^6.4.2",
51
51
  "query-string": "^6.13.7"
52
52
  }