@opengeoweb/sigmet-airmet 10.0.0 → 10.2.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
@@ -5,13 +5,13 @@ import { FormControlLabel, Radio, Grid2, Typography, Box, Button, Checkbox, Menu
5
5
  import { useFormContext } from 'react-hook-form';
6
6
  import { FORM_FIELDS_NAMESPACE, formFieldsTranslations, useDraftFormHelpers, ReactHookFormRadioGroup, hasValidGeometry, ReactHookFormSelect, ReactHookFormNumberField, isInteger, isValidMax, isValidMin, isEmpty, ReactHookFormDateTime, countIntersectionPoints, hasMulitpleIntersections, ReactHookFormHiddenInput, isMaximumOneDrawing, isValidGeoJsonCoordinates, hasIntersectionWithFIR, isXHoursBefore, isXHoursAfter, ReactHookFormTextField, isLatitude, isNonOrBothCoordinates, isLongitude, ReactHookFormFormControl, isGeometryDirty, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
7
7
  import { useApiContext, useApi, createApiInstance, createFakeApiInstance, ApiProvider } from '@opengeoweb/api';
8
- import { defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, defaultPoint, addGeoJSONProperties, defaultBox, defaultPolygon, DRAWMODE, defaultDelete, getIcon, MapControls, MapViewLayer, useMapDrawTool, addFeatureProperties, rewindGeometry } from '@opengeoweb/webmap-react';
8
+ import { defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, defaultPoint, addGeoJSONProperties, defaultBox, defaultPolygon, DRAWMODE, defaultDelete, getIcon, MapViewLayer, useMapDrawTool, addFeatureProperties, rewindGeometry } from '@opengeoweb/webmap-react';
9
9
  import i18n from 'i18next';
10
10
  import { initReactI18next, useTranslation } from 'react-i18next';
11
11
  import { SHARED_NAMESPACE, sharedTranslations, PROJECTION, ToggleMenu, useIsMounted, dateUtils, CustomTooltip, ConfirmationServiceProvider, usePreventBrowserClose, useConfirmationDialog, AlertBanner, isAxiosError, getAxiosErrorMessage, StatusTag, usePoller, ErrorBoundary } from '@opengeoweb/shared';
12
- import { CORE_NAMESPACE, coreTranslations, LayerManagerMapButtonConnect, LegendMapButtonConnect, MultiDimensionSelectMapButtonsConnect, MapViewConnect, TimeSliderConnect, LegendConnect, LayerManagerConnect } from '@opengeoweb/core';
12
+ import { CORE_NAMESPACE, coreTranslations, LegendConnect, MapViewConnect, TimeSliderConnect } from '@opengeoweb/core';
13
13
  import { useSelector, useDispatch, shallowEqual } from 'react-redux';
14
- import { uiSelectors, useUpdateSharedData, mapSelectors, syncGroupsActions, mapStoreActions, defaultLayers, syncConstants } from '@opengeoweb/store';
14
+ import { uiSelectors, useUpdateSharedData, mapSelectors, syncGroupsActions, layerActions, mapActions, defaultLayers, syncConstants } from '@opengeoweb/store';
15
15
  import { DrawFIRLand, ChevronLeft, Edit, Success, Clock } from '@opengeoweb/theme';
16
16
  import { LayerType, webmapUtils } from '@opengeoweb/webmap';
17
17
  import { debounce } from 'lodash';
@@ -588,6 +588,7 @@ var ProductStatusDescription;
588
588
  ProductStatusDescription["PUBLISHED"] = "Published";
589
589
  ProductStatusDescription["CANCELLED"] = "Cancelled";
590
590
  ProductStatusDescription["EXPIRED"] = "Expired";
591
+ ProductStatusDescription["RENEWED"] = "Renewed";
591
592
  ProductStatusDescription["DISCARDED"] = "Discarded";
592
593
  })(ProductStatusDescription || (ProductStatusDescription = {}));
593
594
  var CloudLevelUnits;
@@ -1738,7 +1739,8 @@ var prepareFormValues = function prepareFormValues(product) {
1738
1739
  if (typeof value === 'object' && value !== null && value !== undefined) {
1739
1740
  var _ref2;
1740
1741
  var hasNaNValue = Object.keys(value).reduce(function (total, valKey) {
1741
- return !hasValue(String(value[valKey])) || total;
1742
+ var keyValue = value[valKey];
1743
+ return !hasValue(String(keyValue)) || total;
1742
1744
  }, false);
1743
1745
  return Object.assign({}, list, !hasNaNValue && (_ref2 = {}, _ref2[key] = value, _ref2));
1744
1746
  }
@@ -3143,9 +3145,9 @@ var SelectFIR = function SelectFIR(_ref) {
3143
3145
  locationIndicatorMWO = _getFirLocationDefaul.locationIndicatorMWO,
3144
3146
  firName = _getFirLocationDefaul.firName,
3145
3147
  firGeometry = _getFirLocationDefaul.firGeometry;
3146
- var onChangeLocationATSR = function onChangeLocationATSR(changeEvent) {
3147
- var value = changeEvent.target.value;
3148
- var valuesFromConfig = getFirLocationDefaultValues(productConfig, value);
3148
+ var onChangeLocationATSR = function onChangeLocationATSR(event) {
3149
+ var value = event.target.value; // MUI Select component's target has a `value` property
3150
+ var valuesFromConfig = getFirLocationDefaultValues(productConfig, value); // Ensure value is treated as a string
3149
3151
  // Updates values from config
3150
3152
  setValue('locationIndicatorATSU', valuesFromConfig.locationIndicatorATSU);
3151
3153
  setValue('firName', valuesFromConfig.firName);
@@ -3166,7 +3168,7 @@ var SelectFIR = function SelectFIR(_ref) {
3166
3168
  // Trigger validation for fields dependent on FIR config
3167
3169
  var fieldnames = ['phenomenon', 'validDateStart', 'validDateEnd', 'movementSpeed', 'level.value', 'lowerLevel.value'];
3168
3170
  triggerValidations(fieldnames, getValues, trigger);
3169
- onChange(changeEvent, valuesFromConfig.phenomena);
3171
+ onChange(event, valuesFromConfig.phenomena); // Pass the event and updated phenomena as arguments
3170
3172
  };
3171
3173
  return jsxs(ProductFormFieldLayout, {
3172
3174
  title: t('select-fir-title'),
@@ -4459,7 +4461,6 @@ var Tac = function Tac(_ref) {
4459
4461
  });
4460
4462
  };
4461
4463
 
4462
- var source = 'app';
4463
4464
  var MapViewGeoJson = function MapViewGeoJson(_ref) {
4464
4465
  var initialBaseLayers = _ref.baseLayers,
4465
4466
  initialProjection = _ref.projection,
@@ -4470,7 +4471,7 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4470
4471
  var firstMap = useSelector(function (store) {
4471
4472
  return mapSelectors.getFirstMap(store);
4472
4473
  }, shallowEqual);
4473
- var firstMapId = firstMap && firstMap.id ? firstMap.id : null;
4474
+ var firstMapId = firstMap && firstMap.id ? firstMap.id : '';
4474
4475
  var mapLayers = useSelector(function (store) {
4475
4476
  return mapSelectors.getMapLayers(store, firstMapId);
4476
4477
  }, shallowEqual);
@@ -4494,13 +4495,13 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4494
4495
  mapId: mapId
4495
4496
  });
4496
4497
  });
4497
- dispatch(mapStoreActions.setLayers({
4498
+ dispatch(layerActions.setLayers({
4498
4499
  mapId: mapId,
4499
4500
  layers: layers
4500
4501
  }));
4501
4502
  }
4502
4503
  if (mapDimensions && mapDimensions.length) {
4503
- dispatch(mapStoreActions.mapChangeDimension({
4504
+ dispatch(mapActions.mapChangeDimension({
4504
4505
  mapId: mapId,
4505
4506
  dimension: mapDimensions[0],
4506
4507
  origin: 'MapViewGeoJson'
@@ -4509,12 +4510,12 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4509
4510
  var baseLayers = initialBaseLayers || [Object.assign({}, defaultLayers.overLayer, {
4510
4511
  id: "countryborders-" + mapId
4511
4512
  })];
4512
- dispatch(mapStoreActions.setBaseLayers({
4513
+ dispatch(layerActions.setBaseLayers({
4513
4514
  mapId: mapId,
4514
4515
  layers: baseLayers
4515
4516
  }));
4516
4517
  var projection = initialProjection || srsAndBboxDefault;
4517
- dispatch(mapStoreActions.setBbox({
4518
+ dispatch(mapActions.setBbox({
4518
4519
  mapId: mapId,
4519
4520
  bbox: projection.bbox,
4520
4521
  srs: projection.srs
@@ -4541,19 +4542,17 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4541
4542
  },
4542
4543
  "data-testid": "MapView",
4543
4544
  ref: mapWindowRef,
4544
- children: [jsxs(MapControls, {
4545
- children: [jsx(LayerManagerMapButtonConnect, {
4546
- source: source,
4547
- mapId: mapId
4548
- }), jsx(LegendMapButtonConnect, {
4549
- source: source,
4550
- mapId: mapId
4551
- }), jsx(MultiDimensionSelectMapButtonsConnect, {
4552
- source: source,
4553
- mapId: mapId
4554
- })]
4545
+ children: [jsx(LegendConnect, {
4546
+ showMapId: true,
4547
+ mapId: mapId
4555
4548
  }), jsx(MapViewConnect, {
4556
4549
  mapId: mapId,
4550
+ controls: {
4551
+ mapControlsPositionTop: 0,
4552
+ layerManagerAndLegend: true,
4553
+ zoomControls: true,
4554
+ dimensionSelect: true
4555
+ },
4557
4556
  children: geoJSONLayers.map(function (layer) {
4558
4557
  return jsx(MapViewLayer, Object.assign({}, layer), layer.id);
4559
4558
  })
@@ -4570,15 +4569,6 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4570
4569
  mapId: mapId,
4571
4570
  mapWindowRef: mapWindowRef
4572
4571
  })
4573
- }), jsx(LegendConnect, {
4574
- showMapId: true,
4575
- mapId: mapId,
4576
- source: source
4577
- }), jsx(LayerManagerConnect, {
4578
- mapId: mapId,
4579
- bounds: "parent",
4580
- source: source,
4581
- isDocked: true
4582
4572
  })]
4583
4573
  });
4584
4574
  };
@@ -8157,16 +8147,18 @@ var SigmetForm = function SigmetForm(_ref) {
8157
8147
  React__default.useEffect(function () {
8158
8148
  var isInDrawMode = activeStartTool !== '' || activeEndTool !== '';
8159
8149
  setDialogActionsDisabled && setDialogActionsDisabled(isInDrawMode);
8160
- if (!isReadOnly && isInDrawMode !== isDisabled) {
8150
+ if (mode === 'view') {
8151
+ setIsDisabled(true);
8152
+ } else {
8161
8153
  setIsDisabled(isInDrawMode);
8162
8154
  }
8163
- }, [activeStartTool, activeEndTool, isReadOnly, isDisabled, setDialogActionsDisabled]);
8155
+ }, [mode, activeStartTool, activeEndTool, setDialogActionsDisabled]);
8164
8156
  var _useConditionalFields = useConditionalFields$1(productConfig),
8165
8157
  hasVolcanicAshes = _useConditionalFields.hasVolcanicAshes,
8166
8158
  omitChange = _useConditionalFields.omitChange;
8167
8159
  var _useShortTestHelpers = useShortTestHelpers(),
8168
8160
  isShortTest = _useShortTestHelpers.isShortTest;
8169
- var onChangeFir = function onChangeFir(event, newPhenomenaList) {
8161
+ var onChangeFir = function onChangeFir(newPhenomenaList, event) {
8170
8162
  var newFIRValue = event == null ? void 0 : event.target.value;
8171
8163
  var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8172
8164
  // delete shape
@@ -8229,7 +8221,9 @@ var SigmetForm = function SigmetForm(_ref) {
8229
8221
  productConfig: productConfig,
8230
8222
  isDisabled: isDisabled,
8231
8223
  isReadOnly: isReadOnly,
8232
- onChange: onChangeFir
8224
+ onChange: function onChange(event, newPhenomenaList) {
8225
+ onChangeFir(newPhenomenaList || [], event);
8226
+ }
8233
8227
  }), jsx(StartGeometry, {
8234
8228
  isReadOnly: isReadOnly,
8235
8229
  geoJSON: startGeoJSON,
@@ -8443,16 +8437,18 @@ var AirmetForm = function AirmetForm(_ref) {
8443
8437
  }, [initialAirmet, updateTac, watch]);
8444
8438
  React__default.useEffect(function () {
8445
8439
  var isInDrawMode = activeStartTool !== '';
8446
- if (!isReadOnly && isInDrawMode !== isDisabled) {
8440
+ if (mode === 'view') {
8441
+ setIsDisabled(true);
8442
+ } else {
8447
8443
  setIsDisabled(isInDrawMode);
8448
8444
  }
8449
- }, [activeStartTool, isReadOnly, isDisabled]);
8445
+ }, [activeStartTool, mode]);
8450
8446
  var _useConditionalFields = useConditionalFields(),
8451
8447
  hasSurfaceVisiblity = _useConditionalFields.hasSurfaceVisiblity,
8452
8448
  hasSurfaceWind = _useConditionalFields.hasSurfaceWind,
8453
8449
  hasLevels = _useConditionalFields.hasLevels,
8454
8450
  hasCloudLevels = _useConditionalFields.hasCloudLevels;
8455
- var onChangeFir = function onChangeFir(event, newPhenomenaList) {
8451
+ var onChangeFir = function onChangeFir(newPhenomenaList, event) {
8456
8452
  var newFIRValue = event == null ? void 0 : event.target.value;
8457
8453
  var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8458
8454
  // delete shape
@@ -8519,7 +8515,9 @@ var AirmetForm = function AirmetForm(_ref) {
8519
8515
  isReadOnly: isReadOnly,
8520
8516
  isDisabled: isDisabled,
8521
8517
  productConfig: productConfig,
8522
- onChange: onChangeFir
8518
+ onChange: function onChange(event, newPhenomenaList) {
8519
+ onChangeFir(newPhenomenaList || [], event);
8520
+ }
8523
8521
  }), jsx(StartGeometry, {
8524
8522
  isReadOnly: isReadOnly,
8525
8523
  geoJSON: startGeoJSON,
@@ -12233,4 +12231,4 @@ ConnectedModuleWrapper) {
12233
12231
  }
12234
12232
  };
12235
12233
 
12236
- export { AirmetComponentsLookUp, AirmetForm, AirmetType, CloudLevelUnits, ContentDialog, DEFAULT_MINIMUM_SURFACE_LEVEL, DEFAULT_MIN_MOVEMENT_SPEED, DEFAULT_MIN_VISIBILITY, DEFAULT_MIN_WIND_SPEED, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductAction, ProductFormDialog, ProductList, ProductListRow, ProductStatusDescription, SA_NAMESPACE, SigmetComponentsLookUp, SigmetForm, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createAirmetPostParameter, createApi$1 as createApi, createApi as createFakeApi, createSigmetPostParameter, extractUnitsToShow, firSelectionType, getActiveFIRArea, getAllFirAreas, getAllowedUnits, getBaseLayers, getConfirmationDialogButtonLabel, getConfirmationDialogCancelLabel, getConfirmationDialogContent, getConfirmationDialogTitle, getDefaultPhenomena, getDefaultValidityMinutesFromConfig, getDialogtitle, getDrawTools, getFieldLabel, getFir, getFirArea, getFirOptions, getHoursBeforeValidity, getLevelInFeet, getMaxCloudLevelValue, getMaxCloudLowerLevelValue, getMaxHoursOfValidity, getMaxLevelValue, getMaxMovementSpeedValue, getMaxPolygonPoints, getMaxVisibilityValue, getMaxWindSpeedValue, getMinCloudLevelValue, getMinCloudLowerLevelValue, getMinLevelValue, getMinMovementSpeedValue, getMinVisibilityValue, getMinWindSpeedValue, getOmitChangeFromConfig, getPhenomenon, getProductFormLifecycleButtons, getProductFormMode, getProductIssueDate, getProjection, getToolIcon, getValidFromDelayTimeMinutesFromConfig, hasMaxFeaturePoints, hasValue, isFir, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, isLevelLower, prepareFormValues, prepareProductValues, sigmetAirmetTranslations as saTranslations, sigmetConfig, triggerValidations, updateDrawToolsWithFir, useDelayedFormValues, useFormLayers };
12234
+ export { AirmetComponentsLookUp, AirmetForm, AirmetType, CloudLevelUnits, ContentDialog, DEFAULT_MINIMUM_SURFACE_LEVEL, DEFAULT_MIN_MOVEMENT_SPEED, DEFAULT_MIN_VISIBILITY, DEFAULT_MIN_WIND_SPEED, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductAction, ProductFormDialog, ProductList, ProductListRow, ProductStatusDescription, SA_NAMESPACE, SigmetComponentsLookUp, SigmetForm, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createAirmetPostParameter, createApi$1 as createApi, createApi as createFakeApi, createSigmetPostParameter, extractUnitsToShow, fakeAirmetList, fakeSigmetList, firSelectionType, getActiveFIRArea, getAllFirAreas, getAllowedUnits, getBaseLayers, getConfirmationDialogButtonLabel, getConfirmationDialogCancelLabel, getConfirmationDialogContent, getConfirmationDialogTitle, getDefaultPhenomena, getDefaultValidUntilValue, getDefaultValidityMinutesFromConfig, getDialogtitle, getDrawTools, getFieldLabel, getFir, getFirArea, getFirOptions, getHoursBeforeValidity, getLevelInFeet, getMaxCloudLevelValue, getMaxCloudLowerLevelValue, getMaxHoursOfValidity, getMaxLevelValue, getMaxMovementSpeedValue, getMaxPolygonPoints, getMaxVisibilityValue, getMaxWindSpeedValue, getMinCloudLevelValue, getMinCloudLowerLevelValue, getMinLevelValue, getMinMovementSpeedValue, getMinVisibilityValue, getMinWindSpeedValue, getOmitChangeFromConfig, getPhenomenon, getProductFormLifecycleButtons, getProductFormMode, getProductIssueDate, getProjection, getToolIcon, getValidFromDelayTimeMinutesFromConfig, hasMaxFeaturePoints, hasValue, isFir, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, isLevelLower, prepareFormValues, prepareProductValues, sigmetAirmetTranslations as saTranslations, sigmetConfig, triggerValidations, updateDrawToolsWithFir, useDelayedFormValues, useFormLayers };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/sigmet-airmet",
3
- "version": "10.0.0",
3
+ "version": "10.2.0",
4
4
  "description": "GeoWeb Sigmet/Airmet library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/src/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import saTranslations from '../locales/sigmet-airmet.json';
2
2
  export * from './lib/components/ProductForms';
3
3
  export * from './lib/components/ProductForms/ProductFormDialog';
4
+ export * from './lib/components/ProductForms/ProductFormFields/ValidUntil';
4
5
  export * from './lib/components/ProductForms/utils';
5
6
  export * from './lib/components/ContentDialog';
6
7
  export * from './lib/components/MapViewGeoJson';
7
8
  export * from './lib/components/ProductList';
8
9
  export * from './lib/components/MetInfoWrapper';
9
10
  export { createApi } from './lib/utils/api';
10
- export { createApi as createFakeApi } from './lib/utils/fakeApi';
11
+ export { createApi as createFakeApi, fakeSigmetList, fakeAirmetList, } from './lib/utils/fakeApi';
11
12
  export { sigmetConfig, airmetConfig } from './lib/utils/config';
12
13
  export * from './lib/types';
13
14
  export * from './lib/components/ComponentsLookUp';
@@ -4,6 +4,5 @@ export interface RadioButtonAndLabelProps {
4
4
  label: string;
5
5
  disabled?: boolean;
6
6
  checked?: boolean;
7
- onChange?: (event: React.ChangeEvent, checked: boolean) => void;
8
7
  }
9
8
  export declare const RadioButtonAndLabel: React.FC<RadioButtonAndLabelProps>;
@@ -66,7 +66,7 @@ export type DateType = string;
66
66
  *
67
67
  * Note: ProductStatus from the backend should be refreshed regularly to display status updates.
68
68
  */
69
- export type ProductStatus = 'DRAFT' | 'PUBLISHED' | 'CANCELLED' | 'EXPIRED' | 'DISCARDED';
69
+ export type ProductStatus = 'DRAFT' | 'PUBLISHED' | 'CANCELLED' | 'EXPIRED' | 'RENEWED' | 'DISCARDED';
70
70
  export declare enum ProductAction {
71
71
  PUBLISH = "PUBLISH",
72
72
  CANCEL = "CANCEL",
@@ -80,6 +80,7 @@ export declare enum ProductStatusDescription {
80
80
  'PUBLISHED' = "Published",
81
81
  'CANCELLED' = "Cancelled",
82
82
  'EXPIRED' = "Expired",
83
+ 'RENEWED' = "Renewed",
83
84
  'DISCARDED' = "Discarded"
84
85
  }
85
86
  /**
@@ -95,7 +96,7 @@ export type CancelProductStatus = 'PUBLISHED';
95
96
  * 'PUBLISHED': product can be PUBLISHED
96
97
  * 'CANCELLED': product can be CANCELLED
97
98
  */
98
- export type ProductCanbe = 'DRAFTED' | 'DISCARDED' | 'PUBLISHED' | 'CANCELLED';
99
+ export type ProductCanbe = 'DRAFTED' | 'DISCARDED' | 'PUBLISHED' | 'RENEWED' | 'CANCELLED';
99
100
  /**
100
101
  * ProductSequence is a sequence label with a counter of the SIGMETs/AIRMETs issued on a day (starting at with 1 01:00),
101
102
  * max 3 characters long; first character should be a capital letter,
@@ -1,4 +1,7 @@
1
1
  import { SigmetAirmetApi } from './api';
2
+ import { fakeAirmetList } from './mockdata/fakeAirmetList';
3
+ import { fakeSigmetList } from './mockdata/fakeSigmetList';
2
4
  export declare const fakeSigmetTAC = "EHAA SIGMET 1 VALID 121249/121449 EHDB- EHAA AMSTERDAM FIR FRQ TS OBS ENTIRE FIR FL010 STNR WKN";
3
5
  export declare const fakeAirmetTAC = "EHAA AIRMET -1 VALID 310700/311100 EHDB- EHAA AMSTERDAM FIR ISOL CB OBS ENTIRE FIR FL020 STNR NC";
4
- export declare const createApi: () => SigmetAirmetApi;
6
+ declare const createApi: () => SigmetAirmetApi;
7
+ export { createApi, fakeAirmetList, fakeSigmetList };