@opengeoweb/warnings 9.37.0 → 10.0.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/README.md +4 -0
- package/index.esm.js +233 -134
- package/package.json +1 -1
- package/src/index.d.ts +4 -0
- package/src/lib/components/ComponentsLookUp/ComponentsLookUp.d.ts +3 -3
- package/src/lib/components/FilterList/filter-hooks.d.ts +2 -2
- package/src/lib/components/FilterList/filter-utils.d.ts +9 -2
- package/src/lib/components/PublicWarningList/PublicWarningList.d.ts +2 -1
- package/src/lib/components/PublicWarningList/PublicWarningListConnect.d.ts +5 -3
- package/src/lib/store/drawings/index.d.ts +2 -0
- package/src/lib/store/index.d.ts +3 -0
- package/src/lib/store/publicWarningForm/index.d.ts +2 -0
- package/src/lib/store/publicWarningForm/reducer.d.ts +2 -0
- package/src/lib/store/publicWarningForm/types.d.ts +1 -0
- package/src/lib/store/publicWarnings/index.d.ts +2 -0
- package/src/lib/store/publicWarnings/reducer.d.ts +6 -0
- package/src/lib/store/publicWarnings/selectors.d.ts +30 -0
- package/src/lib/store/publicWarnings/types.d.ts +2 -0
package/README.md
CHANGED
|
@@ -5,3 +5,7 @@ This library was generated with [Nx](https://nx.dev).
|
|
|
5
5
|
## Running unit tests
|
|
6
6
|
|
|
7
7
|
Run `nx test warnings` to execute the unit tests via [Jest](https://jestjs.io).
|
|
8
|
+
|
|
9
|
+
### TypeScript Documentation
|
|
10
|
+
|
|
11
|
+
- [TypeScript Docs](https://opengeoweb.gitlab.io/opengeoweb/typescript-docs/warnings/)
|
package/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
|
3
3
|
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, breakpoints, Options, Close, ChevronDown, ChevronUp, Copy, Success, Expire, Remove, ArrowUpCompact, ArrowDownCompact } from '@opengeoweb/theme';
|
|
4
|
-
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawtoolSelectors, layerSelectors, uiSelectors, drawtoolActions, mapStoreActions, layerActions, useSetupDialog, useUpdateSharedData } from '@opengeoweb/store';
|
|
4
|
+
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawtoolSelectors, layerSelectors, uiSelectors, drawtoolActions, mapStoreActions, layerActions, useSetupDialog, selectorMemoizationOptions, useUpdateSharedData } from '@opengeoweb/store';
|
|
5
5
|
import { defaultPolygon, emptyGeoJSON, MapControlButton, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers, MapView, MapViewLayer, getFeatureExtent } from '@opengeoweb/webmap-react';
|
|
6
6
|
import { SHARED_NAMESPACE, useConfirmationDialog, ToggleMenu, dateUtils, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, usePrevious, CustomIconButton, CustomTooltip, Avatar, getInitials, SwitchButton, CustomToggleButton, Filter, FilterChip, FilterOption, StatusTag, LastUpdateTime, ErrorBoundary, pollingIntervalTimeout, isAxiosError as isAxiosError$1 } from '@opengeoweb/shared';
|
|
7
7
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, isAnyOf } from '@reduxjs/toolkit';
|
|
@@ -19,7 +19,7 @@ import { VariableSizeList } from 'react-window';
|
|
|
19
19
|
import AutoSizer from 'react-virtualized-auto-sizer';
|
|
20
20
|
import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider, getHeaders, useAuthQuery, useAuthenticationContext, ProductStatus } from '@opengeoweb/api';
|
|
21
21
|
import { useFormContext } from 'react-hook-form';
|
|
22
|
-
import { isEqual, cloneDeep, clamp, groupBy, pick } from 'lodash';
|
|
22
|
+
import { isEqual, cloneDeep, clamp, groupBy, pick, assign } from 'lodash';
|
|
23
23
|
import { getConfig, useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
|
|
24
24
|
import { useQueryClient } from '@tanstack/react-query';
|
|
25
25
|
import { isAxiosError } from 'axios';
|
|
@@ -2108,7 +2108,8 @@ var publicWarningsAdapter = createEntityAdapter({
|
|
|
2108
2108
|
var initialState$1 = {
|
|
2109
2109
|
warnings: publicWarningsAdapter.getInitialState(),
|
|
2110
2110
|
isLoading: true,
|
|
2111
|
-
lastUpdatedTime: ''
|
|
2111
|
+
lastUpdatedTime: '',
|
|
2112
|
+
filterState: {}
|
|
2112
2113
|
};
|
|
2113
2114
|
var slice$1 = createSlice({
|
|
2114
2115
|
initialState: initialState$1,
|
|
@@ -2130,6 +2131,14 @@ var slice$1 = createSlice({
|
|
|
2130
2131
|
var error = action.payload.error;
|
|
2131
2132
|
draft.isLoading = false;
|
|
2132
2133
|
draft.error = error;
|
|
2134
|
+
},
|
|
2135
|
+
setWarningFilters: function setWarningFilters(draft, action) {
|
|
2136
|
+
var _action$payload2 = action.payload,
|
|
2137
|
+
filterState = _action$payload2.filterState,
|
|
2138
|
+
panelId = _action$payload2.panelId;
|
|
2139
|
+
if (panelId) {
|
|
2140
|
+
draft.filterState[panelId] = filterState;
|
|
2141
|
+
}
|
|
2133
2142
|
}
|
|
2134
2143
|
}
|
|
2135
2144
|
});
|
|
@@ -2204,12 +2213,14 @@ var slice = createSlice({
|
|
|
2204
2213
|
_action$payload2$form = _action$payload2.formState,
|
|
2205
2214
|
formState = _action$payload2$form === void 0 ? '' : _action$payload2$form,
|
|
2206
2215
|
_action$payload2$warn = _action$payload2.warningType,
|
|
2207
|
-
warningType = _action$payload2$warn === void 0 ? 'public' : _action$payload2$warn
|
|
2216
|
+
warningType = _action$payload2$warn === void 0 ? 'public' : _action$payload2$warn,
|
|
2217
|
+
panelId = _action$payload2.panelId;
|
|
2208
2218
|
draft.object = object;
|
|
2209
2219
|
draft.publicWarning = publicWarning;
|
|
2210
2220
|
draft.selectedPublicWarningId = publicWarning == null ? void 0 : publicWarning.id;
|
|
2211
2221
|
draft.formState = formState;
|
|
2212
2222
|
draft.warningType = warningType;
|
|
2223
|
+
draft.panelId = panelId;
|
|
2213
2224
|
},
|
|
2214
2225
|
toggleEditorWarning: function toggleEditorWarning(draft,
|
|
2215
2226
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -8239,9 +8250,16 @@ var domainLevels = {
|
|
|
8239
8250
|
"public": [Level.extreme, Level.moderate, Level.severe]
|
|
8240
8251
|
};
|
|
8241
8252
|
var defaultLevelFilter = (_defaultLevelFilter = {}, _defaultLevelFilter[emptyFilterId] = true, _defaultLevelFilter.extreme = true, _defaultLevelFilter.moderate = true, _defaultLevelFilter.severe = true, _defaultLevelFilter.AIR = true, _defaultLevelFilter.SIG = true, _defaultLevelFilter);
|
|
8242
|
-
(_defaultEmptyFilter = {}, _defaultEmptyFilter[emptyFilterId] = true, _defaultEmptyFilter);
|
|
8243
|
-
|
|
8244
|
-
var
|
|
8253
|
+
var defaultEmptyFilter = (_defaultEmptyFilter = {}, _defaultEmptyFilter[emptyFilterId] = true, _defaultEmptyFilter);
|
|
8254
|
+
(_defaultPhenomenonFil = {}, _defaultPhenomenonFil[emptyFilterId] = true, _defaultPhenomenonFil.coastalEvent = true, _defaultPhenomenonFil.fog = true, _defaultPhenomenonFil.highTemp = true, _defaultPhenomenonFil.lowTemp = true, _defaultPhenomenonFil.rain = true, _defaultPhenomenonFil.snowIce = true, _defaultPhenomenonFil.thunderstorm = true, _defaultPhenomenonFil.wind = true, _defaultPhenomenonFil);
|
|
8255
|
+
var initialFilters = {
|
|
8256
|
+
incident: defaultEmptyFilter,
|
|
8257
|
+
source: defaultEmptyFilter,
|
|
8258
|
+
domain: defaultDomainFilter,
|
|
8259
|
+
phenomenon: defaultEmptyFilter,
|
|
8260
|
+
level: defaultLevelFilter
|
|
8261
|
+
};
|
|
8262
|
+
var getSelectedOptions = function getSelectedOptions(options) {
|
|
8245
8263
|
var selectedOptions = Object.keys(options).filter(function (k) {
|
|
8246
8264
|
return options[k];
|
|
8247
8265
|
});
|
|
@@ -8259,10 +8277,16 @@ var updateState = function updateState(state, optionKey, value, only) {
|
|
|
8259
8277
|
return Object.assign({}, acc, (_Object$assign = {}, _Object$assign[k] = k === optionKey, _Object$assign));
|
|
8260
8278
|
}, {});
|
|
8261
8279
|
}
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
|
|
8265
|
-
|
|
8280
|
+
if (optionKey === 'ALL') {
|
|
8281
|
+
if (Object.keys(state).length < 2) {
|
|
8282
|
+
return state;
|
|
8283
|
+
}
|
|
8284
|
+
return Object.keys(state).reduce(function (acc, k) {
|
|
8285
|
+
var _Object$assign2;
|
|
8286
|
+
return Object.assign({}, acc, (_Object$assign2 = {}, _Object$assign2[k] = value, _Object$assign2));
|
|
8287
|
+
}, {});
|
|
8288
|
+
}
|
|
8289
|
+
return Object.assign({}, state, (_Object$assign3 = {}, _Object$assign3[optionKey] = value, _Object$assign3));
|
|
8266
8290
|
};
|
|
8267
8291
|
/** Make sure our value is in the filter */
|
|
8268
8292
|
var getValue = function getValue(values, value) {
|
|
@@ -10479,6 +10503,7 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
10479
10503
|
* */
|
|
10480
10504
|
var transformAirmetToWarningFormat = function transformAirmetToWarningFormat(apiAirmet) {
|
|
10481
10505
|
var airmet = apiAirmet.airmet;
|
|
10506
|
+
var cancelAirmet = apiAirmet == null ? void 0 : apiAirmet.airmet;
|
|
10482
10507
|
var areas = [];
|
|
10483
10508
|
if (airmet.startGeometry) {
|
|
10484
10509
|
areas.push({
|
|
@@ -10508,12 +10533,14 @@ var transformAirmetToWarningFormat = function transformAirmetToWarningFormat(api
|
|
|
10508
10533
|
level: 'AIR',
|
|
10509
10534
|
probability: 0,
|
|
10510
10535
|
incident: airmet.sequence,
|
|
10511
|
-
firName: airmet.firName
|
|
10536
|
+
firName: airmet.firName,
|
|
10537
|
+
cancelId: isInstanceOfCancelAirmet(airmet) ? cancelAirmet.cancelsAirmetSequenceId : undefined
|
|
10512
10538
|
}
|
|
10513
10539
|
};
|
|
10514
10540
|
};
|
|
10515
10541
|
var transformSigmetToWarningFormat = function transformSigmetToWarningFormat(apiSigmet) {
|
|
10516
10542
|
var sigmet = apiSigmet.sigmet;
|
|
10543
|
+
var cancelSigmet = apiSigmet == null ? void 0 : apiSigmet.sigmet;
|
|
10517
10544
|
var areas = [];
|
|
10518
10545
|
if (sigmet.startGeometry) {
|
|
10519
10546
|
areas.push({
|
|
@@ -10559,7 +10586,8 @@ var transformSigmetToWarningFormat = function transformSigmetToWarningFormat(api
|
|
|
10559
10586
|
level: 'SIG',
|
|
10560
10587
|
probability: 0,
|
|
10561
10588
|
incident: sigmet.sequence,
|
|
10562
|
-
firName: sigmet.firName
|
|
10589
|
+
firName: sigmet.firName,
|
|
10590
|
+
cancelId: isInstanceOfCancelSigmet(sigmet) ? cancelSigmet.cancelsSigmetSequenceId : undefined
|
|
10563
10591
|
}
|
|
10564
10592
|
};
|
|
10565
10593
|
};
|
|
@@ -11103,9 +11131,9 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
11103
11131
|
var _useState = useState(null),
|
|
11104
11132
|
anchorEl = _useState[0],
|
|
11105
11133
|
setAnchorEl = _useState[1];
|
|
11106
|
-
var
|
|
11107
|
-
noSelectedOptions =
|
|
11108
|
-
allSelected =
|
|
11134
|
+
var _getSelectedOptions = getSelectedOptions(options),
|
|
11135
|
+
noSelectedOptions = _getSelectedOptions.noSelectedOptions,
|
|
11136
|
+
allSelected = _getSelectedOptions.allSelected;
|
|
11109
11137
|
var isDisabled = Object.keys(options).length < 2;
|
|
11110
11138
|
return jsxs(Fragment, {
|
|
11111
11139
|
children: [jsx(CustomTooltip, {
|
|
@@ -11254,6 +11282,7 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
11254
11282
|
});
|
|
11255
11283
|
};
|
|
11256
11284
|
|
|
11285
|
+
var filterOrder = ['incident', 'source', 'domain', 'phenomenon', 'level'];
|
|
11257
11286
|
var FilterList = function FilterList(_ref) {
|
|
11258
11287
|
var _ref$onClickAll = _ref.onClickAll,
|
|
11259
11288
|
onClickAll = _ref$onClickAll === void 0 ? function () {} : _ref$onClickAll,
|
|
@@ -11291,7 +11320,7 @@ var FilterList = function FilterList(_ref) {
|
|
|
11291
11320
|
size: "medium"
|
|
11292
11321
|
})
|
|
11293
11322
|
})
|
|
11294
|
-
}),
|
|
11323
|
+
}), filterOrder.map(function (filterId) {
|
|
11295
11324
|
return jsx(ExpandableFilterChip, {
|
|
11296
11325
|
id: filterId,
|
|
11297
11326
|
options: filterState[filterId],
|
|
@@ -11491,7 +11520,7 @@ var renderLevelText = function renderLevelText(levelString) {
|
|
|
11491
11520
|
})]
|
|
11492
11521
|
});
|
|
11493
11522
|
};
|
|
11494
|
-
var renderStatusIcon = function renderStatusIcon(status) {
|
|
11523
|
+
var renderStatusIcon = function renderStatusIcon(warning, status) {
|
|
11495
11524
|
var getStatusTag = function getStatusTag(content, color, icon) {
|
|
11496
11525
|
if (icon === void 0) {
|
|
11497
11526
|
icon = null;
|
|
@@ -11507,6 +11536,12 @@ var renderStatusIcon = function renderStatusIcon(status) {
|
|
|
11507
11536
|
icon: icon
|
|
11508
11537
|
});
|
|
11509
11538
|
};
|
|
11539
|
+
if (warning.productStatus === ProductStatus.PUBLISHED && warning.warningDetail.cancelId) {
|
|
11540
|
+
return getStatusTag("Cnls " + warning.warningDetail.cancelId, 'red');
|
|
11541
|
+
}
|
|
11542
|
+
if (warning.productStatus === ProductStatus.CANCELLED && warning.warningDetail.cancelId === undefined) {
|
|
11543
|
+
return getStatusTag('Cnld', 'red');
|
|
11544
|
+
}
|
|
11510
11545
|
switch (status) {
|
|
11511
11546
|
case PublicWarningStatus.TODO:
|
|
11512
11547
|
return null;
|
|
@@ -11521,7 +11556,9 @@ var renderStatusIcon = function renderStatusIcon(status) {
|
|
|
11521
11556
|
color: 'geowebColors.iconButtons.flat.default.color',
|
|
11522
11557
|
marginRight: 2
|
|
11523
11558
|
},
|
|
11524
|
-
children: jsx(Edit, {
|
|
11559
|
+
children: jsx(Edit, {
|
|
11560
|
+
"data-testid": "EditPencilIcon"
|
|
11561
|
+
})
|
|
11525
11562
|
});
|
|
11526
11563
|
case PublicWarningStatus.DRAFT_PUBLISHED:
|
|
11527
11564
|
return getStatusTag('Pub', 'green', jsx(Edit, {
|
|
@@ -11770,7 +11807,7 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
11770
11807
|
sx: {
|
|
11771
11808
|
position: 'relative'
|
|
11772
11809
|
},
|
|
11773
|
-
children: [renderStatusIcon(status), warning.editor && jsx(Box, {
|
|
11810
|
+
children: [renderStatusIcon(warning, status), warning.editor && jsx(Box, {
|
|
11774
11811
|
sx: {
|
|
11775
11812
|
width: '16px',
|
|
11776
11813
|
position: 'absolute',
|
|
@@ -11989,6 +12026,7 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
11989
12026
|
var _ref$warnings = _ref.warnings,
|
|
11990
12027
|
warnings = _ref$warnings === void 0 ? [] : _ref$warnings,
|
|
11991
12028
|
filterHookState = _ref.filterHookState,
|
|
12029
|
+
filterState = _ref.filterState,
|
|
11992
12030
|
_ref$isLoading = _ref.isLoading,
|
|
11993
12031
|
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
11994
12032
|
error = _ref.error,
|
|
@@ -12014,8 +12052,7 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12014
12052
|
hoveredFeatureId = _ref.hoveredFeatureId,
|
|
12015
12053
|
expandedSections = _ref.expandedSections,
|
|
12016
12054
|
setExpandedSections = _ref.setExpandedSections;
|
|
12017
|
-
var
|
|
12018
|
-
updateFilter = filterHookState.updateFilter,
|
|
12055
|
+
var updateFilter = filterHookState.updateFilter,
|
|
12019
12056
|
allSelected = filterHookState.allSelected;
|
|
12020
12057
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12021
12058
|
t = _useWarningsTranslati.t;
|
|
@@ -12351,6 +12388,37 @@ var getPublicWarningsError = createSelector(getPublicWarningsStore, function (st
|
|
|
12351
12388
|
var getPublicWarningsLastUpdatedTime = createSelector(getPublicWarningsStore, function (store) {
|
|
12352
12389
|
return store == null ? void 0 : store.lastUpdatedTime;
|
|
12353
12390
|
});
|
|
12391
|
+
var getWarningsFilterState = createSelector(getPublicWarningsStore, function (store) {
|
|
12392
|
+
return store == null ? void 0 : store.filterState;
|
|
12393
|
+
}, selectorMemoizationOptions);
|
|
12394
|
+
var getWarningsFilterById = createSelector(getWarningsFilterState, function (_store, panelId) {
|
|
12395
|
+
return panelId;
|
|
12396
|
+
}, function (filterState, panelId) {
|
|
12397
|
+
return panelId && filterState && filterState[panelId] ? filterState[panelId] : initialFilters;
|
|
12398
|
+
}, selectorMemoizationOptions);
|
|
12399
|
+
var getWarningsPresetById = createSelector(getWarningsFilterState, function (_store, panelId) {
|
|
12400
|
+
return panelId;
|
|
12401
|
+
}, function (filterState, panelId) {
|
|
12402
|
+
if (!panelId || !filterState || !filterState[panelId]) {
|
|
12403
|
+
return {
|
|
12404
|
+
filterState: null
|
|
12405
|
+
};
|
|
12406
|
+
}
|
|
12407
|
+
return {
|
|
12408
|
+
filterState: filterState[panelId]
|
|
12409
|
+
};
|
|
12410
|
+
}, selectorMemoizationOptions);
|
|
12411
|
+
|
|
12412
|
+
var selectors = /*#__PURE__*/Object.freeze({
|
|
12413
|
+
__proto__: null,
|
|
12414
|
+
getPublicWarningsError: getPublicWarningsError,
|
|
12415
|
+
getPublicWarningsLastUpdatedTime: getPublicWarningsLastUpdatedTime,
|
|
12416
|
+
getPublicWarningsStore: getPublicWarningsStore,
|
|
12417
|
+
getWarningsFilterById: getWarningsFilterById,
|
|
12418
|
+
getWarningsPresetById: getWarningsPresetById,
|
|
12419
|
+
isPublicWarningsLoading: isPublicWarningsLoading,
|
|
12420
|
+
selectAllPublicWarnings: selectAllPublicWarnings
|
|
12421
|
+
});
|
|
12354
12422
|
|
|
12355
12423
|
var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
|
|
12356
12424
|
var _ref$onClose = _ref.onClose,
|
|
@@ -12447,35 +12515,51 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
|
|
|
12447
12515
|
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
12448
12516
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
12449
12517
|
* */
|
|
12450
|
-
var
|
|
12451
|
-
|
|
12452
|
-
filter = _useState[0],
|
|
12453
|
-
setFilter = _useState[1];
|
|
12454
|
-
var pickedFilterOptions = pick(filter, [emptyFilterId].concat(pickedOptions));
|
|
12455
|
-
var _useSelectedOptions = useSelectedOptions(pickedFilterOptions),
|
|
12456
|
-
allSelected = _useSelectedOptions.allSelected;
|
|
12457
|
-
return [pickedFilterOptions, setFilter, allSelected];
|
|
12458
|
-
};
|
|
12459
|
-
var useWarningFilters = function useWarningFilters(warnings) {
|
|
12460
|
-
var _useState2 = useState(defaultDomainFilter),
|
|
12461
|
-
domainFilter = _useState2[0],
|
|
12462
|
-
setDomainFilter = _useState2[1];
|
|
12463
|
-
var relevantLevels = Object.keys(domainFilter).flatMap(function (domain) {
|
|
12518
|
+
var getLevelsForDomainFilter = function getLevelsForDomainFilter(domainFilter) {
|
|
12519
|
+
return Object.keys(domainFilter).flatMap(function (domain) {
|
|
12464
12520
|
return domainFilter[domain] ? domainLevels[domain] : [];
|
|
12465
12521
|
});
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
var
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12522
|
+
};
|
|
12523
|
+
var getFilterOptions = function getFilterOptions(defaultFilter, allOptions, savedFilter) {
|
|
12524
|
+
var pickedFilterOptions = pick(defaultFilter, [emptyFilterId].concat(allOptions));
|
|
12525
|
+
// keep options state from savedFilter if it still exists
|
|
12526
|
+
var updatedOptions = assign(pickedFilterOptions, pick(savedFilter || {}, Object.keys(pickedFilterOptions)));
|
|
12527
|
+
var _getSelectedOptions = getSelectedOptions(updatedOptions),
|
|
12528
|
+
allSelected = _getSelectedOptions.allSelected;
|
|
12529
|
+
return [updatedOptions, allSelected];
|
|
12530
|
+
};
|
|
12531
|
+
var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, savedFilterState, presetFilterState, isLoading) {
|
|
12532
|
+
var pickedDomainFilter = savedFilterState.domain,
|
|
12533
|
+
pickedPhenomenonFilter = savedFilterState.phenomenon,
|
|
12534
|
+
pickedLevelFilter = savedFilterState.level,
|
|
12535
|
+
pickedSourceFilter = savedFilterState.source,
|
|
12536
|
+
pickedIncidentFilter = savedFilterState.incident;
|
|
12537
|
+
/// level
|
|
12538
|
+
var relevantLevels = useMemo(function () {
|
|
12539
|
+
return getLevelsForDomainFilter(pickedDomainFilter);
|
|
12540
|
+
}, [pickedDomainFilter]);
|
|
12541
|
+
var _getFilterOptions = getFilterOptions(defaultLevelFilter, relevantLevels, pickedLevelFilter),
|
|
12542
|
+
updatedPickedLevels = _getFilterOptions[0],
|
|
12543
|
+
allLevelsSelected = _getFilterOptions[1];
|
|
12544
|
+
// phenomenon
|
|
12545
|
+
var warningsPhenomena = useMemo(function () {
|
|
12546
|
+
return getFiltersFromWarnings(warnings, 'phenomenon');
|
|
12547
|
+
}, [warnings]);
|
|
12548
|
+
// filter out aviation phenomena
|
|
12549
|
+
var phenomenaKeysToFilter = new Set(Object.values(Phenomenon$1));
|
|
12550
|
+
var relevantPhenomena = warningsPhenomena.filter(function (item) {
|
|
12551
|
+
return phenomenaKeysToFilter.has(item);
|
|
12474
12552
|
});
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12553
|
+
relevantPhenomena.push(emptyFilterId);
|
|
12554
|
+
var defaultPhenomenonFilter = useMemo(function () {
|
|
12555
|
+
return Object.fromEntries(relevantPhenomena.map(function (key) {
|
|
12556
|
+
return [key, true];
|
|
12557
|
+
}));
|
|
12558
|
+
}, [relevantPhenomena]);
|
|
12559
|
+
var _getFilterOptions2 = getFilterOptions(defaultPhenomenonFilter, relevantPhenomena, pickedPhenomenonFilter),
|
|
12560
|
+
updatedPickedPhenomena = _getFilterOptions2[0],
|
|
12561
|
+
allPhenomenaSelected = _getFilterOptions2[1];
|
|
12562
|
+
// source
|
|
12479
12563
|
var relevantSources = useMemo(function () {
|
|
12480
12564
|
return getFiltersFromWarnings(warnings, 'warningProposalSource');
|
|
12481
12565
|
}, [warnings]);
|
|
@@ -12484,20 +12568,10 @@ var useWarningFilters = function useWarningFilters(warnings) {
|
|
|
12484
12568
|
return [key, true];
|
|
12485
12569
|
}));
|
|
12486
12570
|
}, [relevantSources]);
|
|
12487
|
-
var
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
useEffect(function () {
|
|
12492
|
-
setSourceFilter(function (prevFilter) {
|
|
12493
|
-
var newSourceFilter = Object.assign({}, defaultSourceFilter, prevFilter);
|
|
12494
|
-
// Only update state if the new filter differs from the current one
|
|
12495
|
-
if (JSON.stringify(newSourceFilter) !== JSON.stringify(prevFilter)) {
|
|
12496
|
-
return newSourceFilter;
|
|
12497
|
-
}
|
|
12498
|
-
return prevFilter;
|
|
12499
|
-
});
|
|
12500
|
-
}, [defaultSourceFilter, setSourceFilter]);
|
|
12571
|
+
var _getFilterOptions3 = getFilterOptions(defaultSourceFilter, relevantSources, pickedSourceFilter),
|
|
12572
|
+
updatedPickedSources = _getFilterOptions3[0],
|
|
12573
|
+
allSourcesSelected = _getFilterOptions3[1];
|
|
12574
|
+
// incident
|
|
12501
12575
|
var relevantIncidents = useMemo(function () {
|
|
12502
12576
|
return getFiltersFromWarnings(warnings, 'incident');
|
|
12503
12577
|
}, [warnings]);
|
|
@@ -12506,23 +12580,35 @@ var useWarningFilters = function useWarningFilters(warnings) {
|
|
|
12506
12580
|
return [key, true];
|
|
12507
12581
|
}));
|
|
12508
12582
|
}, [relevantIncidents]);
|
|
12509
|
-
var
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
allIncidentsSelected = _useFilter4[2];
|
|
12583
|
+
var _getFilterOptions4 = getFilterOptions(defaultIncidentFilter, relevantIncidents, pickedIncidentFilter),
|
|
12584
|
+
updatedPickedIncidents = _getFilterOptions4[0],
|
|
12585
|
+
allIncidentsSelected = _getFilterOptions4[1];
|
|
12513
12586
|
useEffect(function () {
|
|
12514
|
-
|
|
12515
|
-
|
|
12516
|
-
|
|
12517
|
-
|
|
12518
|
-
|
|
12519
|
-
|
|
12520
|
-
|
|
12521
|
-
|
|
12522
|
-
|
|
12523
|
-
|
|
12524
|
-
|
|
12525
|
-
|
|
12587
|
+
if (isLoading) {
|
|
12588
|
+
return;
|
|
12589
|
+
}
|
|
12590
|
+
// when the warnings change, update the filters
|
|
12591
|
+
onUpdateFilters({
|
|
12592
|
+
incident: updatedPickedIncidents,
|
|
12593
|
+
source: updatedPickedSources,
|
|
12594
|
+
domain: pickedDomainFilter,
|
|
12595
|
+
phenomenon: updatedPickedPhenomena,
|
|
12596
|
+
level: updatedPickedLevels
|
|
12597
|
+
}, 'system');
|
|
12598
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12599
|
+
}, [warnings]);
|
|
12600
|
+
useEffect(function () {
|
|
12601
|
+
// when the preset changes, update the filters
|
|
12602
|
+
if (presetFilterState) {
|
|
12603
|
+
onUpdateFilters(presetFilterState, 'system');
|
|
12604
|
+
} else {
|
|
12605
|
+
// for a preset without filters saved use the initial filters
|
|
12606
|
+
onUpdateFilters(initialFilters, 'system');
|
|
12607
|
+
}
|
|
12608
|
+
}, [presetFilterState, onUpdateFilters]);
|
|
12609
|
+
var _getSelectedOptions2 = getSelectedOptions(pickedDomainFilter),
|
|
12610
|
+
allDomainSelected = _getSelectedOptions2.allSelected;
|
|
12611
|
+
var allSelected = allDomainSelected && allLevelsSelected && allPhenomenaSelected && allIncidentsSelected && allSourcesSelected;
|
|
12526
12612
|
/**
|
|
12527
12613
|
* @param filterKey - Name of the filter | "ALL" filters
|
|
12528
12614
|
* @param optionKey - Name of the option | "ALL" options
|
|
@@ -12530,49 +12616,47 @@ var useWarningFilters = function useWarningFilters(warnings) {
|
|
|
12530
12616
|
* @param only - Flag that decides if all other options should be disabled
|
|
12531
12617
|
*/
|
|
12532
12618
|
var updateFilter = function updateFilter(filterKey, optionKey, value, only) {
|
|
12619
|
+
var levelFilter = value ? defaultLevelFilter : defaultEmptyFilter;
|
|
12533
12620
|
if (filterKey === 'ALL') {
|
|
12534
|
-
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
-
|
|
12538
|
-
|
|
12539
|
-
|
|
12540
|
-
|
|
12541
|
-
return updateState(state, 'ALL', value);
|
|
12542
|
-
});
|
|
12543
|
-
setSourceFilter(function (state) {
|
|
12544
|
-
return updateState(state, 'ALL', value);
|
|
12545
|
-
});
|
|
12546
|
-
setIncidentFilter(function (state) {
|
|
12547
|
-
return updateState(state, 'ALL', value);
|
|
12548
|
-
});
|
|
12621
|
+
onUpdateFilters({
|
|
12622
|
+
domain: updateState(pickedDomainFilter, 'ALL', value),
|
|
12623
|
+
level: updateState(levelFilter, 'ALL', value),
|
|
12624
|
+
phenomenon: updateState(pickedPhenomenonFilter, 'ALL', value),
|
|
12625
|
+
incident: updateState(pickedIncidentFilter, 'ALL', value),
|
|
12626
|
+
source: updateState(pickedSourceFilter, 'ALL', value)
|
|
12627
|
+
}, 'user');
|
|
12549
12628
|
} else if (filterKey === 'domain') {
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
|
|
12629
|
+
var newDomain = updateState(pickedDomainFilter, optionKey, value, only);
|
|
12630
|
+
var _relevantLevels = getLevelsForDomainFilter(newDomain);
|
|
12631
|
+
var _getFilterOptions5 = getFilterOptions(defaultLevelFilter, _relevantLevels, pickedLevelFilter),
|
|
12632
|
+
newLevel = _getFilterOptions5[0];
|
|
12633
|
+
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
12634
|
+
domain: newDomain,
|
|
12635
|
+
level: newLevel // levels depend on selected domains
|
|
12636
|
+
}), 'user');
|
|
12553
12637
|
} else if (filterKey === 'level') {
|
|
12554
|
-
|
|
12555
|
-
|
|
12556
|
-
});
|
|
12638
|
+
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
12639
|
+
level: updateState(pickedLevelFilter, optionKey, value, only)
|
|
12640
|
+
}), 'user');
|
|
12557
12641
|
} else if (filterKey === 'phenomenon') {
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
});
|
|
12642
|
+
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
12643
|
+
phenomenon: updateState(pickedPhenomenonFilter, optionKey, value, only)
|
|
12644
|
+
}), 'user');
|
|
12561
12645
|
} else if (filterKey === 'source') {
|
|
12562
|
-
|
|
12563
|
-
|
|
12564
|
-
});
|
|
12646
|
+
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
12647
|
+
source: updateState(pickedSourceFilter, optionKey, value, only)
|
|
12648
|
+
}), 'user');
|
|
12565
12649
|
} else if (filterKey === 'incident') {
|
|
12566
|
-
|
|
12567
|
-
|
|
12568
|
-
});
|
|
12650
|
+
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
12651
|
+
incident: updateState(pickedIncidentFilter, optionKey, value, only)
|
|
12652
|
+
}), 'user');
|
|
12569
12653
|
}
|
|
12570
12654
|
};
|
|
12571
12655
|
var byFilterState = useCallback(function (warning) {
|
|
12572
12656
|
var levelDomain = ['SIG', 'AIR'].find(function (d) {
|
|
12573
12657
|
return d === warning.warningDetail.level;
|
|
12574
12658
|
}) ? Domain.aviation : Domain["public"];
|
|
12575
|
-
if (!
|
|
12659
|
+
if (!pickedDomainFilter[levelDomain]) {
|
|
12576
12660
|
return false;
|
|
12577
12661
|
}
|
|
12578
12662
|
var level = getValue(Level, warning.warningDetail.level);
|
|
@@ -12596,15 +12680,8 @@ var useWarningFilters = function useWarningFilters(warnings) {
|
|
|
12596
12680
|
return false;
|
|
12597
12681
|
}
|
|
12598
12682
|
return true;
|
|
12599
|
-
}, [
|
|
12683
|
+
}, [pickedDomainFilter, pickedLevelFilter, pickedPhenomenonFilter, relevantSources, pickedSourceFilter, relevantIncidents, pickedIncidentFilter]);
|
|
12600
12684
|
return {
|
|
12601
|
-
filterState: {
|
|
12602
|
-
incident: pickedIncidentFilter,
|
|
12603
|
-
source: pickedSourceFilter,
|
|
12604
|
-
domain: domainFilter,
|
|
12605
|
-
phenomenon: pickedPhenomenonFilter,
|
|
12606
|
-
level: pickedLevelFilter
|
|
12607
|
-
},
|
|
12608
12685
|
allSelected: allSelected,
|
|
12609
12686
|
updateFilter: updateFilter,
|
|
12610
12687
|
byFilterState: byFilterState
|
|
@@ -12612,7 +12689,8 @@ var useWarningFilters = function useWarningFilters(warnings) {
|
|
|
12612
12689
|
};
|
|
12613
12690
|
|
|
12614
12691
|
var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
12615
|
-
var panelId = _ref.panelId
|
|
12692
|
+
var panelId = _ref.panelId,
|
|
12693
|
+
presetFilterState = _ref.presetFilterState;
|
|
12616
12694
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12617
12695
|
t = _useWarningsTranslati.t;
|
|
12618
12696
|
var dispatch = useDispatch();
|
|
@@ -12632,10 +12710,13 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12632
12710
|
setConfirmDialogOptions = _React$useState[1];
|
|
12633
12711
|
var publicWarnings = useSelector(selectAllPublicWarnings);
|
|
12634
12712
|
var selectedPublicWarningId = useSelector(getSelectedPublicWarningId);
|
|
12635
|
-
var isLoading = useSelector(isPublicWarningsLoading || isFetchingAirmet || isFetchingSigmet
|
|
12713
|
+
var isLoading = useSelector(isPublicWarningsLoading) || isFetchingAirmet || isFetchingSigmet;
|
|
12636
12714
|
var error = useSelector(getPublicWarningsError);
|
|
12637
12715
|
var isFormDirty = useSelector(getSelectedPublicIsFormDirty);
|
|
12638
12716
|
var lastUpdatedTime = useSelector(getPublicWarningsLastUpdatedTime);
|
|
12717
|
+
var savedFilterState = useSelector(function (store) {
|
|
12718
|
+
return getWarningsFilterById(store, panelId);
|
|
12719
|
+
});
|
|
12639
12720
|
var warningsApi = getWarningsApi();
|
|
12640
12721
|
var openPublicWarningDialog = /*#__PURE__*/function () {
|
|
12641
12722
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formAction, publicWarning, warningType) {
|
|
@@ -12665,7 +12746,8 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12665
12746
|
publicWarning: publicWarning
|
|
12666
12747
|
}, {
|
|
12667
12748
|
formState: formAction,
|
|
12668
|
-
warningType: warningType
|
|
12749
|
+
warningType: warningType,
|
|
12750
|
+
panelId: panelId
|
|
12669
12751
|
})));
|
|
12670
12752
|
case 7:
|
|
12671
12753
|
case "end":
|
|
@@ -12840,7 +12922,14 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12840
12922
|
var transformedAirmets = (airmetList == null ? void 0 : airmetList.map(transformAirmetToWarningFormat)) || [];
|
|
12841
12923
|
return publicWarnings.concat(transformedSigmets).concat(transformedAirmets);
|
|
12842
12924
|
}, [publicWarnings, sigmetList, airmetList]);
|
|
12843
|
-
var
|
|
12925
|
+
var onUpdateFilters = React__default.useCallback(function (filterState, origin) {
|
|
12926
|
+
dispatch(publicWarningActions.setWarningFilters({
|
|
12927
|
+
filterState: filterState,
|
|
12928
|
+
panelId: panelId,
|
|
12929
|
+
origin: origin
|
|
12930
|
+
}));
|
|
12931
|
+
}, [dispatch, panelId]);
|
|
12932
|
+
var filterHookState = useWarningFilters(combinedWarnings, onUpdateFilters, savedFilterState, presetFilterState, isLoading);
|
|
12844
12933
|
var filteredWarnings = React__default.useMemo(function () {
|
|
12845
12934
|
return combinedWarnings.filter(filterHookState.byFilterState);
|
|
12846
12935
|
}, [combinedWarnings, filterHookState.byFilterState]);
|
|
@@ -12897,6 +12986,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12897
12986
|
lastUpdatedTime: lastUpdatedTime,
|
|
12898
12987
|
onRefetchWarnings: fetchWarnings,
|
|
12899
12988
|
filterHookState: filterHookState,
|
|
12989
|
+
filterState: savedFilterState,
|
|
12900
12990
|
hoveredFeatureId: hoveredFeatureId
|
|
12901
12991
|
}), confirmDialogOptions && jsx(ConfirmDeleteWarningDialog, {
|
|
12902
12992
|
onClose: function onClose() {
|
|
@@ -12922,7 +13012,8 @@ var PublicWarningApiWrapper = function PublicWarningApiWrapper(_ref) {
|
|
|
12922
13012
|
var config = _ref.config,
|
|
12923
13013
|
auth = _ref.auth,
|
|
12924
13014
|
onSetAuth = _ref.onSetAuth,
|
|
12925
|
-
panelId = _ref.panelId
|
|
13015
|
+
panelId = _ref.panelId,
|
|
13016
|
+
presetFilterState = _ref.presetFilterState;
|
|
12926
13017
|
return config ? jsx(ApiProvider, {
|
|
12927
13018
|
config: {
|
|
12928
13019
|
baseURL: config.baseURL,
|
|
@@ -12935,25 +13026,29 @@ var PublicWarningApiWrapper = function PublicWarningApiWrapper(_ref) {
|
|
|
12935
13026
|
createApi: createApi$1,
|
|
12936
13027
|
children: jsx(ErrorBoundary, {
|
|
12937
13028
|
children: jsx(PublicWarningListConnect, {
|
|
12938
|
-
panelId: panelId
|
|
13029
|
+
panelId: panelId,
|
|
13030
|
+
presetFilterState: presetFilterState
|
|
12939
13031
|
})
|
|
12940
13032
|
})
|
|
12941
13033
|
}) : null;
|
|
12942
13034
|
};
|
|
12943
13035
|
var componentsLookUp = function componentsLookUp(payload, apiProps) {
|
|
12944
13036
|
var id = payload.id,
|
|
12945
|
-
componentType = payload.componentType
|
|
13037
|
+
componentType = payload.componentType,
|
|
13038
|
+
initialProps = payload.initialProps;
|
|
12946
13039
|
switch (componentType) {
|
|
12947
13040
|
case warningListViewPreset.componentType:
|
|
12948
13041
|
if (apiProps && apiProps.config) {
|
|
12949
13042
|
return jsx(PublicWarningApiWrapper, Object.assign({}, apiProps, {
|
|
12950
13043
|
panelId: id,
|
|
12951
|
-
"data-testid": "publicWarningModule"
|
|
13044
|
+
"data-testid": "publicWarningModule",
|
|
13045
|
+
presetFilterState: initialProps.filterState
|
|
12952
13046
|
}));
|
|
12953
13047
|
}
|
|
12954
13048
|
return jsx(PublicWarningListConnect, {
|
|
12955
13049
|
panelId: id,
|
|
12956
|
-
"data-testid": "publicWarningList"
|
|
13050
|
+
"data-testid": "publicWarningList",
|
|
13051
|
+
presetFilterState: initialProps.filterState
|
|
12957
13052
|
});
|
|
12958
13053
|
default:
|
|
12959
13054
|
return null;
|
|
@@ -13153,16 +13248,20 @@ publicWarningFormListener.startListening({
|
|
|
13153
13248
|
publicWarningFormListener.startListening({
|
|
13154
13249
|
actionCreator: publicWarningFormActions.openPublicWarningFormDialog,
|
|
13155
13250
|
effect: function () {
|
|
13156
|
-
var _effect6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(
|
|
13251
|
+
var _effect6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref5, listenerApi) {
|
|
13252
|
+
var payload, panelId;
|
|
13157
13253
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
13158
13254
|
while (1) switch (_context6.prev = _context6.next) {
|
|
13159
13255
|
case 0:
|
|
13256
|
+
payload = _ref5.payload;
|
|
13160
13257
|
listenerApi.cancelActiveListeners();
|
|
13258
|
+
panelId = payload.panelId;
|
|
13161
13259
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
13162
13260
|
setOpen: true,
|
|
13163
|
-
type: publicWarningDialogType
|
|
13261
|
+
type: publicWarningDialogType,
|
|
13262
|
+
sourcePanelId: panelId
|
|
13164
13263
|
}));
|
|
13165
|
-
case
|
|
13264
|
+
case 4:
|
|
13166
13265
|
case "end":
|
|
13167
13266
|
return _context6.stop();
|
|
13168
13267
|
}
|
|
@@ -13175,7 +13274,7 @@ publicWarningFormListener.startListening({
|
|
|
13175
13274
|
}()
|
|
13176
13275
|
});
|
|
13177
13276
|
var saveOrUpdateWarning = /*#__PURE__*/function () {
|
|
13178
|
-
var
|
|
13277
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(publicWarning) {
|
|
13179
13278
|
var warningsApi, warningDetail, status, warning, newWarningId;
|
|
13180
13279
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
13181
13280
|
while (1) switch (_context7.prev = _context7.next) {
|
|
@@ -13221,7 +13320,7 @@ var saveOrUpdateWarning = /*#__PURE__*/function () {
|
|
|
13221
13320
|
}, _callee7);
|
|
13222
13321
|
}));
|
|
13223
13322
|
return function saveOrUpdateWarning(_x13) {
|
|
13224
|
-
return
|
|
13323
|
+
return _ref6.apply(this, arguments);
|
|
13225
13324
|
};
|
|
13226
13325
|
}();
|
|
13227
13326
|
var toggleDialogLoadingEffect = function toggleDialogLoadingEffect(dispatch, isDialogOpen, isLoading) {
|
|
@@ -13241,12 +13340,12 @@ var errorEffect = function errorEffect(dispatch, message, isDialogOpen) {
|
|
|
13241
13340
|
publicWarningFormListener.startListening({
|
|
13242
13341
|
actionCreator: uiActions.setToggleOpenDialog,
|
|
13243
13342
|
effect: function () {
|
|
13244
|
-
var _effect7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(
|
|
13343
|
+
var _effect7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref7, listenerApi) {
|
|
13245
13344
|
var payload;
|
|
13246
13345
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
13247
13346
|
while (1) switch (_context8.prev = _context8.next) {
|
|
13248
13347
|
case 0:
|
|
13249
|
-
payload =
|
|
13348
|
+
payload = _ref7.payload;
|
|
13250
13349
|
if (!payload.setOpen && payload.type === publicWarningDialogType) {
|
|
13251
13350
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
13252
13351
|
setOpen: false,
|
|
@@ -13457,4 +13556,4 @@ var drawingModuleConfig = {
|
|
|
13457
13556
|
middlewares: [drawingsListener.middleware, publicWarningsListener.middleware, publicWarningFormListener.middleware]
|
|
13458
13557
|
};
|
|
13459
13558
|
|
|
13460
|
-
export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningApiWrapper, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsModuleProvider, componentsLookUp, drawingModuleConfig, isAlreadyEdited, useObjectDrawDialogAction, warningFormConfirmationOptions, warningsTranslations };
|
|
13559
|
+
export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningApiWrapper, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsModuleProvider, componentsLookUp, drawingModuleConfig, initialState$1 as initialState, isAlreadyEdited, publicWarningActions, publicWarningFormListener, reducer as publicWarningFormReducer, publicWarningsAdapter, publicWarningsListener, reducer$1 as publicWarningsReducer, selectors as publicWarningsSelectors, reducer$1 as reducer, useObjectDrawDialogAction, warningFormConfirmationOptions, drawingsListener as warningsDrawingsListener, reducer$2 as warningsDrawingsReducer, warningsTranslations };
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -6,5 +6,9 @@ export * from './lib/components/DrawingToolForm';
|
|
|
6
6
|
export * from './lib/components/PublicWarningsFormDialog';
|
|
7
7
|
export * from './lib/components/ComponentsLookUp';
|
|
8
8
|
export * from './lib/store/config';
|
|
9
|
+
export * from './lib/store';
|
|
9
10
|
export { WARN_NAMESPACE } from './lib/utils/i18n';
|
|
10
11
|
export { warningsTranslations };
|
|
12
|
+
export * as publicWarningsSelectors from './lib/store/publicWarnings/selectors';
|
|
13
|
+
export * from './lib/store/types';
|
|
14
|
+
export * from './lib/store/publicWarnings/reducer';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ApiModule, ApiUrls } from '@opengeoweb/api';
|
|
3
|
-
|
|
3
|
+
import { PublicWarningListConnectProps } from '../PublicWarningList';
|
|
4
|
+
export type WarningListComponentType = 'WarningList';
|
|
4
5
|
export interface ComponentsLookUpPayload {
|
|
5
6
|
componentType: WarningListComponentType;
|
|
6
7
|
id: string;
|
|
@@ -10,8 +11,7 @@ export interface ComponentsLookUpPayload {
|
|
|
10
11
|
export interface ApiModuleProps extends ApiModule {
|
|
11
12
|
config: ApiUrls;
|
|
12
13
|
}
|
|
13
|
-
interface Props extends ApiModuleProps {
|
|
14
|
-
panelId: string;
|
|
14
|
+
interface Props extends ApiModuleProps, PublicWarningListConnectProps {
|
|
15
15
|
}
|
|
16
16
|
export declare const PublicWarningApiWrapper: React.FC<Props>;
|
|
17
17
|
export declare const componentsLookUp: (payload: ComponentsLookUpPayload, apiProps?: ApiModuleProps) => React.ReactElement;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PublicWarning } from '../../store/publicWarningForm/types';
|
|
2
2
|
import { defaultDomainFilter, defaultEmptyFilter, defaultLevelFilter, defaultPhenomenonFilter } from './filter-utils';
|
|
3
|
+
export type UpdateFiltersOrigin = 'user' | 'system';
|
|
3
4
|
export interface PickedFilterState {
|
|
4
5
|
incident: Partial<typeof defaultEmptyFilter>;
|
|
5
6
|
source: Partial<typeof defaultEmptyFilter>;
|
|
@@ -18,10 +19,9 @@ export type FilterKeyType = keyof FilterState;
|
|
|
18
19
|
export type OptionKey<T extends FilterKeyType> = keyof FilterState[T];
|
|
19
20
|
export type UpdateFilter = <T extends FilterKeyType>(filterKey: T | 'ALL', optionKey: OptionKey<T> | 'ALL', value: boolean, only?: boolean) => void;
|
|
20
21
|
export interface FilterHookState {
|
|
21
|
-
filterState: PickedFilterState;
|
|
22
22
|
allSelected: boolean;
|
|
23
23
|
updateFilter: UpdateFilter;
|
|
24
24
|
byFilterState: (warning: PublicWarning) => boolean;
|
|
25
25
|
}
|
|
26
|
-
export declare const useWarningFilters: (warnings: PublicWarning[]) => FilterHookState;
|
|
26
|
+
export declare const useWarningFilters: (warnings: PublicWarning[], onUpdateFilters: (filterState: PickedFilterState, origin: UpdateFiltersOrigin) => void, savedFilterState: PickedFilterState, presetFilterState?: PickedFilterState, isLoading?: boolean) => FilterHookState;
|
|
27
27
|
export {};
|
|
@@ -27,6 +27,13 @@ export declare const domainLevels: Record<Domain, Level[]>;
|
|
|
27
27
|
export declare const defaultLevelFilter: Record<Level | 'unspecified', boolean>;
|
|
28
28
|
export declare const defaultEmptyFilter: Record<string, boolean>;
|
|
29
29
|
export declare const defaultPhenomenonFilter: Record<Phenomenon | 'unspecified', boolean>;
|
|
30
|
+
export declare const initialFilters: {
|
|
31
|
+
incident: Record<string, boolean>;
|
|
32
|
+
source: Record<string, boolean>;
|
|
33
|
+
domain: Record<Domain, boolean>;
|
|
34
|
+
phenomenon: Record<string, boolean>;
|
|
35
|
+
level: Record<"unspecified" | Level, boolean>;
|
|
36
|
+
};
|
|
30
37
|
type OptionsType = Partial<Record<Domain | Level | Phenomenon, boolean>>;
|
|
31
38
|
interface OptionsMetadata {
|
|
32
39
|
/** The number of selected options */
|
|
@@ -34,8 +41,8 @@ interface OptionsMetadata {
|
|
|
34
41
|
/** Whether or not all options are selected */
|
|
35
42
|
allSelected: boolean;
|
|
36
43
|
}
|
|
37
|
-
export declare const
|
|
38
|
-
export declare const updateState: <T extends string>(state: Record<T, boolean
|
|
44
|
+
export declare const getSelectedOptions: (options: OptionsType) => OptionsMetadata;
|
|
45
|
+
export declare const updateState: <T extends string>(state: Partial<Record<T, boolean>>, optionKey: T | 'ALL', value: boolean, only?: boolean) => Record<T, boolean>;
|
|
39
46
|
/** Make sure our value is in the filter */
|
|
40
47
|
export declare const getValue: <T>(values: Record<string, T>, value: string) => T | 'unspecified';
|
|
41
48
|
export declare const getFiltersFromWarnings: (warnings: PublicWarning[], filterKey: string) => string[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PublicWarning } from '../../store/publicWarningForm/types';
|
|
3
|
-
import { FilterHookState } from '../FilterList/filter-hooks';
|
|
3
|
+
import { FilterHookState, PickedFilterState } from '../FilterList/filter-hooks';
|
|
4
4
|
import { WarningListItemActions } from './WarningListItemMenu';
|
|
5
5
|
export interface PublicWarningListProps extends WarningListItemActions {
|
|
6
6
|
warnings: PublicWarning[];
|
|
@@ -12,6 +12,7 @@ export interface PublicWarningListProps extends WarningListItemActions {
|
|
|
12
12
|
onCreateWarning?: () => void;
|
|
13
13
|
onRefetchWarnings?: () => void;
|
|
14
14
|
filterHookState: FilterHookState;
|
|
15
|
+
filterState: PickedFilterState;
|
|
15
16
|
hoveredFeatureId?: string;
|
|
16
17
|
expandedSections: Record<string, boolean>;
|
|
17
18
|
setExpandedSections: (expandedSections: Record<string, boolean>) => void;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { PickedFilterState } from '../FilterList/filter-hooks';
|
|
3
|
+
export interface PublicWarningListConnectProps {
|
|
4
|
+
panelId: string;
|
|
5
|
+
presetFilterState?: PickedFilterState;
|
|
4
6
|
}
|
|
5
|
-
export declare const PublicWarningListConnect: React.FC<
|
|
7
|
+
export declare const PublicWarningListConnect: React.FC<PublicWarningListConnectProps>;
|
|
6
8
|
export default PublicWarningListConnect;
|
|
@@ -16,6 +16,7 @@ export interface PublicWarningFormState {
|
|
|
16
16
|
selectedPublicWarningId?: string;
|
|
17
17
|
isFormDirty?: boolean;
|
|
18
18
|
warningType?: WarningType;
|
|
19
|
+
panelId?: string;
|
|
19
20
|
}
|
|
20
21
|
export declare const TAKEOVER_MESSAGE = "You are no longer the editor of this warning";
|
|
21
22
|
export declare const initialState: PublicWarningFormState;
|
|
@@ -37,6 +38,7 @@ export declare const publicWarningFormActions: import("@reduxjs/toolkit").CaseRe
|
|
|
37
38
|
formState?: FormAction;
|
|
38
39
|
publicWarning?: PublicWarning;
|
|
39
40
|
warningType?: WarningType;
|
|
41
|
+
panelId?: string;
|
|
40
42
|
}>) => void;
|
|
41
43
|
toggleEditorWarning: (draft: Draft<PublicWarningFormState>, action: PayloadAction<{
|
|
42
44
|
warningId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PayloadAction, Draft } from '@reduxjs/toolkit';
|
|
2
2
|
import { PublicWarningsState } from './types';
|
|
3
3
|
import { PublicWarning } from '../publicWarningForm/types';
|
|
4
|
+
import { PickedFilterState, UpdateFiltersOrigin } from '../../components/FilterList/filter-hooks';
|
|
4
5
|
export declare const publicWarningsAdapter: import("@reduxjs/toolkit").EntityAdapter<PublicWarning>;
|
|
5
6
|
export declare const initialState: PublicWarningsState;
|
|
6
7
|
export declare const reducer: import("redux").Reducer<PublicWarningsState>;
|
|
@@ -16,4 +17,9 @@ export declare const publicWarningActions: import("@reduxjs/toolkit").CaseReduce
|
|
|
16
17
|
message: string;
|
|
17
18
|
};
|
|
18
19
|
}>) => void;
|
|
20
|
+
setWarningFilters: (draft: Draft<PublicWarningsState>, action: PayloadAction<{
|
|
21
|
+
filterState: PickedFilterState;
|
|
22
|
+
panelId?: string;
|
|
23
|
+
origin: UpdateFiltersOrigin;
|
|
24
|
+
}>) => void;
|
|
19
25
|
}, "publicWarnings">;
|
|
@@ -17,3 +17,33 @@ export declare const getPublicWarningsLastUpdatedTime: ((state: WarningModuleSto
|
|
|
17
17
|
}> & {
|
|
18
18
|
clearCache: () => void;
|
|
19
19
|
};
|
|
20
|
+
export declare const getWarningsFilterById: ((state: WarningModuleStore, panelId?: string | undefined) => import("../../components/FilterList/filter-hooks").PickedFilterState | {
|
|
21
|
+
incident: Record<string, boolean>;
|
|
22
|
+
source: Record<string, boolean>;
|
|
23
|
+
domain: Record<import("../../components/FilterList/filter-utils").Domain, boolean>;
|
|
24
|
+
phenomenon: Record<string, boolean>;
|
|
25
|
+
level: Record<import("../../components/FilterList/filter-utils").Level | "unspecified", boolean>;
|
|
26
|
+
}) & import("reselect").OutputSelectorFields<(args_0: Record<string, import("../../components/FilterList/filter-hooks").PickedFilterState>, args_1: string | undefined) => import("../../components/FilterList/filter-hooks").PickedFilterState | {
|
|
27
|
+
incident: Record<string, boolean>;
|
|
28
|
+
source: Record<string, boolean>;
|
|
29
|
+
domain: Record<import("../../components/FilterList/filter-utils").Domain, boolean>;
|
|
30
|
+
phenomenon: Record<string, boolean>;
|
|
31
|
+
level: Record<import("../../components/FilterList/filter-utils").Level | "unspecified", boolean>;
|
|
32
|
+
}, {
|
|
33
|
+
clearCache: () => void;
|
|
34
|
+
}> & {
|
|
35
|
+
clearCache: () => void;
|
|
36
|
+
};
|
|
37
|
+
export declare const getWarningsPresetById: ((state: WarningModuleStore, panelId?: string | undefined) => {
|
|
38
|
+
filterState: null;
|
|
39
|
+
} | {
|
|
40
|
+
filterState: import("../../components/FilterList/filter-hooks").PickedFilterState;
|
|
41
|
+
}) & import("reselect").OutputSelectorFields<(args_0: Record<string, import("../../components/FilterList/filter-hooks").PickedFilterState>, args_1: string | undefined) => {
|
|
42
|
+
filterState: null;
|
|
43
|
+
} | {
|
|
44
|
+
filterState: import("../../components/FilterList/filter-hooks").PickedFilterState;
|
|
45
|
+
}, {
|
|
46
|
+
clearCache: () => void;
|
|
47
|
+
}> & {
|
|
48
|
+
clearCache: () => void;
|
|
49
|
+
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EntityState } from '@reduxjs/toolkit';
|
|
2
2
|
import { PublicWarning } from '../publicWarningForm/types';
|
|
3
|
+
import { PickedFilterState } from '../../components/FilterList/filter-hooks';
|
|
3
4
|
export interface FilterTranslation {
|
|
4
5
|
translationKey: string;
|
|
5
6
|
key: string;
|
|
@@ -14,4 +15,5 @@ export interface PublicWarningsState {
|
|
|
14
15
|
isLoading: boolean;
|
|
15
16
|
lastUpdatedTime: string;
|
|
16
17
|
error?: PublicWarningError;
|
|
18
|
+
filterState: Record<string, PickedFilterState>;
|
|
17
19
|
}
|