@opengeoweb/warnings 8.4.1 → 9.1.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 +875 -381
- package/package.json +3 -24
- package/src/index.d.ts +1 -1
- package/src/lib/components/ObjectManager/ObjectManager.stories.d.ts +4 -0
- package/src/lib/components/PublicWarningsForm/AreaField.d.ts +1 -4
- package/src/lib/components/PublicWarningsForm/LevelField.d.ts +9 -0
- package/src/lib/components/PublicWarningsForm/Phenomenon.d.ts +8 -0
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +9 -13
- package/src/lib/components/{PublicWarnings/PublicWarnings.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.d.ts} +1 -1
- package/src/lib/components/{PublicWarnings/PublicWarnings.stories.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.stories.d.ts} +3 -3
- package/src/lib/components/{PublicWarnings/PublicWarningsConnect.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialogConnect.d.ts} +1 -1
- package/src/lib/components/PublicWarningsFormDialog/index.d.ts +2 -0
- package/src/lib/store/drawings/types.d.ts +0 -11
- package/src/lib/store/publicWarningForm/reducer.d.ts +5 -3
- package/src/lib/store/publicWarningForm/selectors.d.ts +1 -1
- package/src/lib/store/publicWarningForm/types.d.ts +15 -0
- package/src/lib/components/PublicWarnings/index.d.ts +0 -2
- /package/src/lib/components/{PublicWarnings/PublicWarnings.spec.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.spec.d.ts} +0 -0
- /package/src/lib/components/{PublicWarnings/PublicWarningsConnect.spec.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialogConnect.spec.d.ts} +0 -0
- /package/src/lib/components/{PublicWarnings/PublicWarningsConnect.stories.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialogConnect.stories.d.ts} +0 -0
package/index.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import React__default, { useContext, useRef, useCallback, useDebugValue, createElement, PureComponent, useState, useEffect } from 'react';
|
|
2
|
+
import React__default, { useContext, useRef, useCallback, useDebugValue, createElement, PureComponent, Component, useState, useEffect } from 'react';
|
|
3
3
|
import 'react-dom';
|
|
4
|
-
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add,
|
|
5
|
-
import { uiActions, uiTypes, getSingularDrawtoolDrawLayerId, drawtoolSelectors, layerSelectors, uiSelectors, mapStoreActions, drawtoolActions, layerActions,
|
|
6
|
-
import { emptyGeoJSON, MapControlButton, getGeoJSONPropertyValue, getIcon, currentlySupportedDrawModes } from '@opengeoweb/webmap-react';
|
|
7
|
-
import {
|
|
8
|
-
import { dateUtils, ToggleMenu,
|
|
9
|
-
import { Box, Typography, ListItem, Paper, ListItemButton, Stack, LinearProgress, Button,
|
|
4
|
+
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, Wind, Fog, Lightning, Snow, Rain, TemperatureHigh, FunnelCloud, TemperatureLow, CoastalEvent, breakpoints } from '@opengeoweb/theme';
|
|
5
|
+
import { uiActions, uiTypes, getSingularDrawtoolDrawLayerId, drawtoolSelectors, layerSelectors, uiSelectors, mapStoreActions, drawtoolActions, layerActions, useSetupDialog } from '@opengeoweb/store';
|
|
6
|
+
import { emptyGeoJSON, MapControlButton, getGeoJSONPropertyValue, getIcon, rewindGeometry, currentlySupportedDrawModes } from '@opengeoweb/webmap-react';
|
|
7
|
+
import { snackbarActions } from '@opengeoweb/snackbar';
|
|
8
|
+
import { dateUtils, ToggleMenu, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, CustomIconButton, SwitchButton, isAxiosError } from '@opengeoweb/shared';
|
|
9
|
+
import { styled, Box, Typography, ListItem, Grid, Paper, ListItemButton, Stack, LinearProgress, Button, FormHelperText, MenuItem, Tabs, Tab, FormControl, Card, CardContent, ListItemIcon } from '@mui/material';
|
|
10
10
|
import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider } from '@opengeoweb/api';
|
|
11
|
-
import { ReactHookFormProvider, defaultFormOptions, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormSelect, ReactHookFormTextField,
|
|
11
|
+
import { ReactHookFormProvider, defaultFormOptions, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormSelect, ReactHookFormTextField, useDraftFormHelpers, errorMessages, ReactHookFormDateTime } from '@opengeoweb/form-fields';
|
|
12
12
|
|
|
13
13
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
14
14
|
|
|
@@ -4163,6 +4163,381 @@ var VariableSizeList = /*#__PURE__*/createListComponent({
|
|
|
4163
4163
|
}
|
|
4164
4164
|
});
|
|
4165
4165
|
|
|
4166
|
+
/**
|
|
4167
|
+
* Detect Element Resize.
|
|
4168
|
+
* https://github.com/sdecima/javascript-detect-element-resize
|
|
4169
|
+
* Sebastian Decima
|
|
4170
|
+
*
|
|
4171
|
+
* Forked from version 0.5.3; includes the following modifications:
|
|
4172
|
+
* 1) Guard against unsafe 'window' and 'document' references (to support SSR).
|
|
4173
|
+
* 2) Defer initialization code via a top-level function wrapper (to support SSR).
|
|
4174
|
+
* 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
|
|
4175
|
+
* 4) Add nonce for style element.
|
|
4176
|
+
* 5) Use 'export' statement over 'module.exports' assignment
|
|
4177
|
+
**/
|
|
4178
|
+
|
|
4179
|
+
// Check `document` and `window` in case of server-side rendering
|
|
4180
|
+
let windowObject;
|
|
4181
|
+
if (typeof window !== "undefined") {
|
|
4182
|
+
windowObject = window;
|
|
4183
|
+
|
|
4184
|
+
// eslint-disable-next-line no-restricted-globals
|
|
4185
|
+
} else if (typeof self !== "undefined") {
|
|
4186
|
+
// eslint-disable-next-line no-restricted-globals
|
|
4187
|
+
windowObject = self;
|
|
4188
|
+
} else {
|
|
4189
|
+
windowObject = global;
|
|
4190
|
+
}
|
|
4191
|
+
let cancelFrame = null;
|
|
4192
|
+
let requestFrame = null;
|
|
4193
|
+
const TIMEOUT_DURATION = 20;
|
|
4194
|
+
const clearTimeoutFn = windowObject.clearTimeout;
|
|
4195
|
+
const setTimeoutFn = windowObject.setTimeout;
|
|
4196
|
+
const cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame;
|
|
4197
|
+
const requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame;
|
|
4198
|
+
if (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) {
|
|
4199
|
+
// For environments that don't support animation frame,
|
|
4200
|
+
// fallback to a setTimeout based approach.
|
|
4201
|
+
cancelFrame = clearTimeoutFn;
|
|
4202
|
+
requestFrame = function requestAnimationFrameViaSetTimeout(callback) {
|
|
4203
|
+
return setTimeoutFn(callback, TIMEOUT_DURATION);
|
|
4204
|
+
};
|
|
4205
|
+
} else {
|
|
4206
|
+
// Counter intuitively, environments that support animation frames can be trickier.
|
|
4207
|
+
// Chrome's "Throttle non-visible cross-origin iframes" flag can prevent rAFs from being called.
|
|
4208
|
+
// In this case, we should fallback to a setTimeout() implementation.
|
|
4209
|
+
cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {
|
|
4210
|
+
cancelAnimationFrameFn(animationFrameID);
|
|
4211
|
+
clearTimeoutFn(timeoutID);
|
|
4212
|
+
};
|
|
4213
|
+
requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {
|
|
4214
|
+
const animationFrameID = requestAnimationFrameFn(function animationFrameCallback() {
|
|
4215
|
+
clearTimeoutFn(timeoutID);
|
|
4216
|
+
callback();
|
|
4217
|
+
});
|
|
4218
|
+
const timeoutID = setTimeoutFn(function timeoutCallback() {
|
|
4219
|
+
cancelAnimationFrameFn(animationFrameID);
|
|
4220
|
+
callback();
|
|
4221
|
+
}, TIMEOUT_DURATION);
|
|
4222
|
+
return [animationFrameID, timeoutID];
|
|
4223
|
+
};
|
|
4224
|
+
}
|
|
4225
|
+
function createDetectElementResize(nonce) {
|
|
4226
|
+
let animationKeyframes;
|
|
4227
|
+
let animationName;
|
|
4228
|
+
let animationStartEvent;
|
|
4229
|
+
let animationStyle;
|
|
4230
|
+
let checkTriggers;
|
|
4231
|
+
let resetTriggers;
|
|
4232
|
+
let scrollListener;
|
|
4233
|
+
const attachEvent = typeof document !== "undefined" && document.attachEvent;
|
|
4234
|
+
if (!attachEvent) {
|
|
4235
|
+
resetTriggers = function (element) {
|
|
4236
|
+
const triggers = element.__resizeTriggers__,
|
|
4237
|
+
expand = triggers.firstElementChild,
|
|
4238
|
+
contract = triggers.lastElementChild,
|
|
4239
|
+
expandChild = expand.firstElementChild;
|
|
4240
|
+
contract.scrollLeft = contract.scrollWidth;
|
|
4241
|
+
contract.scrollTop = contract.scrollHeight;
|
|
4242
|
+
expandChild.style.width = expand.offsetWidth + 1 + "px";
|
|
4243
|
+
expandChild.style.height = expand.offsetHeight + 1 + "px";
|
|
4244
|
+
expand.scrollLeft = expand.scrollWidth;
|
|
4245
|
+
expand.scrollTop = expand.scrollHeight;
|
|
4246
|
+
};
|
|
4247
|
+
checkTriggers = function (element) {
|
|
4248
|
+
return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;
|
|
4249
|
+
};
|
|
4250
|
+
scrollListener = function (e) {
|
|
4251
|
+
// Don't measure (which forces) reflow for scrolls that happen inside of children!
|
|
4252
|
+
if (e.target.className && typeof e.target.className.indexOf === "function" && e.target.className.indexOf("contract-trigger") < 0 && e.target.className.indexOf("expand-trigger") < 0) {
|
|
4253
|
+
return;
|
|
4254
|
+
}
|
|
4255
|
+
const element = this;
|
|
4256
|
+
resetTriggers(this);
|
|
4257
|
+
if (this.__resizeRAF__) {
|
|
4258
|
+
cancelFrame(this.__resizeRAF__);
|
|
4259
|
+
}
|
|
4260
|
+
this.__resizeRAF__ = requestFrame(function animationFrame() {
|
|
4261
|
+
if (checkTriggers(element)) {
|
|
4262
|
+
element.__resizeLast__.width = element.offsetWidth;
|
|
4263
|
+
element.__resizeLast__.height = element.offsetHeight;
|
|
4264
|
+
element.__resizeListeners__.forEach(function forEachResizeListener(fn) {
|
|
4265
|
+
fn.call(element, e);
|
|
4266
|
+
});
|
|
4267
|
+
}
|
|
4268
|
+
});
|
|
4269
|
+
};
|
|
4270
|
+
|
|
4271
|
+
/* Detect CSS Animations support to detect element display/re-attach */
|
|
4272
|
+
let animation = false;
|
|
4273
|
+
let keyframeprefix = "";
|
|
4274
|
+
animationStartEvent = "animationstart";
|
|
4275
|
+
const domPrefixes = "Webkit Moz O ms".split(" ");
|
|
4276
|
+
let startEvents = "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" ");
|
|
4277
|
+
let pfx = "";
|
|
4278
|
+
{
|
|
4279
|
+
const elm = document.createElement("fakeelement");
|
|
4280
|
+
if (elm.style.animationName !== undefined) {
|
|
4281
|
+
animation = true;
|
|
4282
|
+
}
|
|
4283
|
+
if (animation === false) {
|
|
4284
|
+
for (let i = 0; i < domPrefixes.length; i++) {
|
|
4285
|
+
if (elm.style[domPrefixes[i] + "AnimationName"] !== undefined) {
|
|
4286
|
+
pfx = domPrefixes[i];
|
|
4287
|
+
keyframeprefix = "-" + pfx.toLowerCase() + "-";
|
|
4288
|
+
animationStartEvent = startEvents[i];
|
|
4289
|
+
animation = true;
|
|
4290
|
+
break;
|
|
4291
|
+
}
|
|
4292
|
+
}
|
|
4293
|
+
}
|
|
4294
|
+
}
|
|
4295
|
+
animationName = "resizeanim";
|
|
4296
|
+
animationKeyframes = "@" + keyframeprefix + "keyframes " + animationName + " { from { opacity: 0; } to { opacity: 0; } } ";
|
|
4297
|
+
animationStyle = keyframeprefix + "animation: 1ms " + animationName + "; ";
|
|
4298
|
+
}
|
|
4299
|
+
const createStyles = function (doc) {
|
|
4300
|
+
if (!doc.getElementById("detectElementResize")) {
|
|
4301
|
+
//opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
|
|
4302
|
+
const css = (animationKeyframes ? animationKeyframes : "") + ".resize-triggers { " + (animationStyle ? animationStyle : "") + "visibility: hidden; opacity: 0; } " + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
|
|
4303
|
+
head = doc.head || doc.getElementsByTagName("head")[0],
|
|
4304
|
+
style = doc.createElement("style");
|
|
4305
|
+
style.id = "detectElementResize";
|
|
4306
|
+
style.type = "text/css";
|
|
4307
|
+
if (nonce != null) {
|
|
4308
|
+
style.setAttribute("nonce", nonce);
|
|
4309
|
+
}
|
|
4310
|
+
if (style.styleSheet) {
|
|
4311
|
+
style.styleSheet.cssText = css;
|
|
4312
|
+
} else {
|
|
4313
|
+
style.appendChild(doc.createTextNode(css));
|
|
4314
|
+
}
|
|
4315
|
+
head.appendChild(style);
|
|
4316
|
+
}
|
|
4317
|
+
};
|
|
4318
|
+
const addResizeListener = function (element, fn) {
|
|
4319
|
+
if (attachEvent) {
|
|
4320
|
+
element.attachEvent("onresize", fn);
|
|
4321
|
+
} else {
|
|
4322
|
+
if (!element.__resizeTriggers__) {
|
|
4323
|
+
const doc = element.ownerDocument;
|
|
4324
|
+
const elementStyle = windowObject.getComputedStyle(element);
|
|
4325
|
+
if (elementStyle && elementStyle.position === "static") {
|
|
4326
|
+
element.style.position = "relative";
|
|
4327
|
+
}
|
|
4328
|
+
createStyles(doc);
|
|
4329
|
+
element.__resizeLast__ = {};
|
|
4330
|
+
element.__resizeListeners__ = [];
|
|
4331
|
+
(element.__resizeTriggers__ = doc.createElement("div")).className = "resize-triggers";
|
|
4332
|
+
const expandTrigger = doc.createElement("div");
|
|
4333
|
+
expandTrigger.className = "expand-trigger";
|
|
4334
|
+
expandTrigger.appendChild(doc.createElement("div"));
|
|
4335
|
+
const contractTrigger = doc.createElement("div");
|
|
4336
|
+
contractTrigger.className = "contract-trigger";
|
|
4337
|
+
element.__resizeTriggers__.appendChild(expandTrigger);
|
|
4338
|
+
element.__resizeTriggers__.appendChild(contractTrigger);
|
|
4339
|
+
element.appendChild(element.__resizeTriggers__);
|
|
4340
|
+
resetTriggers(element);
|
|
4341
|
+
element.addEventListener("scroll", scrollListener, true);
|
|
4342
|
+
|
|
4343
|
+
/* Listen for a css animation to detect element display/re-attach */
|
|
4344
|
+
if (animationStartEvent) {
|
|
4345
|
+
element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
|
|
4346
|
+
if (e.animationName === animationName) {
|
|
4347
|
+
resetTriggers(element);
|
|
4348
|
+
}
|
|
4349
|
+
};
|
|
4350
|
+
element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
|
|
4351
|
+
}
|
|
4352
|
+
}
|
|
4353
|
+
element.__resizeListeners__.push(fn);
|
|
4354
|
+
}
|
|
4355
|
+
};
|
|
4356
|
+
const removeResizeListener = function (element, fn) {
|
|
4357
|
+
if (attachEvent) {
|
|
4358
|
+
element.detachEvent("onresize", fn);
|
|
4359
|
+
} else {
|
|
4360
|
+
element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
|
|
4361
|
+
if (!element.__resizeListeners__.length) {
|
|
4362
|
+
element.removeEventListener("scroll", scrollListener, true);
|
|
4363
|
+
if (element.__resizeTriggers__.__animationListener__) {
|
|
4364
|
+
element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);
|
|
4365
|
+
element.__resizeTriggers__.__animationListener__ = null;
|
|
4366
|
+
}
|
|
4367
|
+
try {
|
|
4368
|
+
element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
|
|
4369
|
+
} catch (e) {
|
|
4370
|
+
// Preact compat; see developit/preact-compat/issues/228
|
|
4371
|
+
}
|
|
4372
|
+
}
|
|
4373
|
+
}
|
|
4374
|
+
};
|
|
4375
|
+
return {
|
|
4376
|
+
addResizeListener,
|
|
4377
|
+
removeResizeListener
|
|
4378
|
+
};
|
|
4379
|
+
}
|
|
4380
|
+
|
|
4381
|
+
class AutoSizer extends Component {
|
|
4382
|
+
constructor(...args) {
|
|
4383
|
+
super(...args);
|
|
4384
|
+
this.state = {
|
|
4385
|
+
height: this.props.defaultHeight || 0,
|
|
4386
|
+
scaledHeight: this.props.defaultHeight || 0,
|
|
4387
|
+
scaledWidth: this.props.defaultWidth || 0,
|
|
4388
|
+
width: this.props.defaultWidth || 0
|
|
4389
|
+
};
|
|
4390
|
+
this._autoSizer = null;
|
|
4391
|
+
this._detectElementResize = null;
|
|
4392
|
+
this._parentNode = null;
|
|
4393
|
+
this._resizeObserver = null;
|
|
4394
|
+
this._timeoutId = null;
|
|
4395
|
+
this._onResize = () => {
|
|
4396
|
+
this._timeoutId = null;
|
|
4397
|
+
const {
|
|
4398
|
+
disableHeight,
|
|
4399
|
+
disableWidth,
|
|
4400
|
+
onResize
|
|
4401
|
+
} = this.props;
|
|
4402
|
+
if (this._parentNode) {
|
|
4403
|
+
var _style$paddingLeft, _style$paddingRight, _style$paddingTop, _style$paddingBottom;
|
|
4404
|
+
// Guard against AutoSizer component being removed from the DOM immediately after being added.
|
|
4405
|
+
// This can result in invalid style values which can result in NaN values if we don't handle them.
|
|
4406
|
+
// See issue #150 for more context.
|
|
4407
|
+
|
|
4408
|
+
const style = window.getComputedStyle(this._parentNode) || {};
|
|
4409
|
+
const paddingLeft = parseFloat((_style$paddingLeft = style.paddingLeft) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : "0");
|
|
4410
|
+
const paddingRight = parseFloat((_style$paddingRight = style.paddingRight) !== null && _style$paddingRight !== void 0 ? _style$paddingRight : "0");
|
|
4411
|
+
const paddingTop = parseFloat((_style$paddingTop = style.paddingTop) !== null && _style$paddingTop !== void 0 ? _style$paddingTop : "0");
|
|
4412
|
+
const paddingBottom = parseFloat((_style$paddingBottom = style.paddingBottom) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : "0");
|
|
4413
|
+
const rect = this._parentNode.getBoundingClientRect();
|
|
4414
|
+
const scaledHeight = rect.height - paddingTop - paddingBottom;
|
|
4415
|
+
const scaledWidth = rect.width - paddingLeft - paddingRight;
|
|
4416
|
+
const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;
|
|
4417
|
+
const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;
|
|
4418
|
+
if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {
|
|
4419
|
+
this.setState({
|
|
4420
|
+
height,
|
|
4421
|
+
width,
|
|
4422
|
+
scaledHeight,
|
|
4423
|
+
scaledWidth
|
|
4424
|
+
});
|
|
4425
|
+
if (typeof onResize === "function") {
|
|
4426
|
+
onResize({
|
|
4427
|
+
height,
|
|
4428
|
+
scaledHeight,
|
|
4429
|
+
scaledWidth,
|
|
4430
|
+
width
|
|
4431
|
+
});
|
|
4432
|
+
}
|
|
4433
|
+
}
|
|
4434
|
+
}
|
|
4435
|
+
};
|
|
4436
|
+
this._setRef = autoSizer => {
|
|
4437
|
+
this._autoSizer = autoSizer;
|
|
4438
|
+
};
|
|
4439
|
+
}
|
|
4440
|
+
componentDidMount() {
|
|
4441
|
+
const {
|
|
4442
|
+
nonce
|
|
4443
|
+
} = this.props;
|
|
4444
|
+
if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
|
|
4445
|
+
// Delay access of parentNode until mount.
|
|
4446
|
+
// This handles edge-cases where the component has already been unmounted before its ref has been set,
|
|
4447
|
+
// As well as libraries like react-lite which have a slightly different lifecycle.
|
|
4448
|
+
this._parentNode = this._autoSizer.parentNode;
|
|
4449
|
+
|
|
4450
|
+
// Defer requiring resize handler in order to support server-side rendering.
|
|
4451
|
+
// See issue #41
|
|
4452
|
+
if (this._parentNode != null) {
|
|
4453
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
4454
|
+
this._resizeObserver = new ResizeObserver(() => {
|
|
4455
|
+
// Guard against "ResizeObserver loop limit exceeded" error;
|
|
4456
|
+
// could be triggered if the state update causes the ResizeObserver handler to run long.
|
|
4457
|
+
// See https://github.com/bvaughn/react-virtualized-auto-sizer/issues/55
|
|
4458
|
+
this._timeoutId = setTimeout(this._onResize, 0);
|
|
4459
|
+
});
|
|
4460
|
+
this._resizeObserver.observe(this._parentNode);
|
|
4461
|
+
} else {
|
|
4462
|
+
this._detectElementResize = createDetectElementResize(nonce);
|
|
4463
|
+
this._detectElementResize.addResizeListener(this._parentNode, this._onResize);
|
|
4464
|
+
}
|
|
4465
|
+
this._onResize();
|
|
4466
|
+
}
|
|
4467
|
+
}
|
|
4468
|
+
}
|
|
4469
|
+
componentWillUnmount() {
|
|
4470
|
+
if (this._parentNode) {
|
|
4471
|
+
if (this._detectElementResize) {
|
|
4472
|
+
this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
|
|
4473
|
+
}
|
|
4474
|
+
if (this._timeoutId !== null) {
|
|
4475
|
+
clearTimeout(this._timeoutId);
|
|
4476
|
+
}
|
|
4477
|
+
if (this._resizeObserver) {
|
|
4478
|
+
this._resizeObserver.observe(this._parentNode);
|
|
4479
|
+
this._resizeObserver.disconnect();
|
|
4480
|
+
}
|
|
4481
|
+
}
|
|
4482
|
+
}
|
|
4483
|
+
render() {
|
|
4484
|
+
const {
|
|
4485
|
+
children,
|
|
4486
|
+
defaultHeight,
|
|
4487
|
+
defaultWidth,
|
|
4488
|
+
disableHeight = false,
|
|
4489
|
+
disableWidth = false,
|
|
4490
|
+
nonce,
|
|
4491
|
+
onResize,
|
|
4492
|
+
style = {},
|
|
4493
|
+
tagName = "div",
|
|
4494
|
+
...rest
|
|
4495
|
+
} = this.props;
|
|
4496
|
+
const {
|
|
4497
|
+
height,
|
|
4498
|
+
scaledHeight,
|
|
4499
|
+
scaledWidth,
|
|
4500
|
+
width
|
|
4501
|
+
} = this.state;
|
|
4502
|
+
|
|
4503
|
+
// Outer div should not force width/height since that may prevent containers from shrinking.
|
|
4504
|
+
// Inner component should overflow and use calculated width/height.
|
|
4505
|
+
// See issue #68 for more information.
|
|
4506
|
+
const outerStyle = {
|
|
4507
|
+
overflow: "visible"
|
|
4508
|
+
};
|
|
4509
|
+
const childParams = {};
|
|
4510
|
+
|
|
4511
|
+
// Avoid rendering children before the initial measurements have been collected.
|
|
4512
|
+
// At best this would just be wasting cycles.
|
|
4513
|
+
let bailoutOnChildren = false;
|
|
4514
|
+
if (!disableHeight) {
|
|
4515
|
+
if (height === 0) {
|
|
4516
|
+
bailoutOnChildren = true;
|
|
4517
|
+
}
|
|
4518
|
+
outerStyle.height = 0;
|
|
4519
|
+
childParams.height = height;
|
|
4520
|
+
childParams.scaledHeight = scaledHeight;
|
|
4521
|
+
}
|
|
4522
|
+
if (!disableWidth) {
|
|
4523
|
+
if (width === 0) {
|
|
4524
|
+
bailoutOnChildren = true;
|
|
4525
|
+
}
|
|
4526
|
+
outerStyle.width = 0;
|
|
4527
|
+
childParams.width = width;
|
|
4528
|
+
childParams.scaledWidth = scaledWidth;
|
|
4529
|
+
}
|
|
4530
|
+
return createElement(tagName, {
|
|
4531
|
+
ref: this._setRef,
|
|
4532
|
+
style: {
|
|
4533
|
+
...outerStyle,
|
|
4534
|
+
...style
|
|
4535
|
+
},
|
|
4536
|
+
...rest
|
|
4537
|
+
}, !bailoutOnChildren && children(childParams));
|
|
4538
|
+
}
|
|
4539
|
+
}
|
|
4540
|
+
|
|
4166
4541
|
/* *
|
|
4167
4542
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4168
4543
|
* you may not use this file except in compliance with the License.
|
|
@@ -4183,52 +4558,11 @@ var DATE_FORMAT = 'dd/MM/yyyy HH:mm';
|
|
|
4183
4558
|
var DATE_FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss'Z'";
|
|
4184
4559
|
var DATE_FORMAT_HEADER = 'EEEE, MMMM dd';
|
|
4185
4560
|
|
|
4186
|
-
var DEFAULT_DIALOG_HEIGHT = 500;
|
|
4187
4561
|
var DEFAULT_ADD_BUTTON_HEIGHT = 80;
|
|
4188
|
-
var DEFAULT_PADDING_TOP = 6;
|
|
4189
4562
|
var OBJECT_ITEM_SIZE = 50;
|
|
4190
|
-
var
|
|
4191
|
-
var
|
|
4192
|
-
var
|
|
4193
|
-
var listRef = React__default.useRef(null);
|
|
4194
|
-
// Used to store the height of the list dialog content
|
|
4195
|
-
var _React$useState = React__default.useState(DEFAULT_DIALOG_HEIGHT),
|
|
4196
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
4197
|
-
dialogHeight = _React$useState2[0],
|
|
4198
|
-
setDialogHeight = _React$useState2[1];
|
|
4199
|
-
// Used to store the height of the "Add new object" button
|
|
4200
|
-
var _React$useState3 = React__default.useState(DEFAULT_ADD_BUTTON_HEIGHT),
|
|
4201
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
4202
|
-
addButtonHeight = _React$useState4[0],
|
|
4203
|
-
setAddButtonHeight = _React$useState4[1];
|
|
4204
|
-
// Obtain the height of of the list dialog content
|
|
4205
|
-
React__default.useLayoutEffect(function () {
|
|
4206
|
-
var _a;
|
|
4207
|
-
var dialogElement = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
4208
|
-
(dialogElement === null || dialogElement === void 0 ? void 0 : dialogElement.offsetHeight) && setDialogHeight(dialogElement === null || dialogElement === void 0 ? void 0 : dialogElement.offsetHeight);
|
|
4209
|
-
var observer = new ResizeObserver(function () {
|
|
4210
|
-
var height = getHeight(dialogElement);
|
|
4211
|
-
height && setDialogHeight(height);
|
|
4212
|
-
});
|
|
4213
|
-
observer.observe(dialogElement);
|
|
4214
|
-
return function () {
|
|
4215
|
-
observer.disconnect();
|
|
4216
|
-
};
|
|
4217
|
-
}, [listRef]);
|
|
4218
|
-
// Obtain height of the "Add new object" button
|
|
4219
|
-
React__default.useEffect(function () {
|
|
4220
|
-
var _a, _b;
|
|
4221
|
-
var buttonElement = (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.lastChild;
|
|
4222
|
-
var height = getHeight(buttonElement);
|
|
4223
|
-
height && setAddButtonHeight(height);
|
|
4224
|
-
}, []);
|
|
4225
|
-
var availableSpaceForList = dialogHeight - addButtonHeight - DEFAULT_PADDING_TOP;
|
|
4226
|
-
var listHeight = availableSpaceForList && availableSpaceForList < MIN_HEIGHT_SCROLLABLE_LIST ? MIN_HEIGHT_SCROLLABLE_LIST : availableSpaceForList;
|
|
4227
|
-
return {
|
|
4228
|
-
listRef: listRef,
|
|
4229
|
-
listHeight: listHeight
|
|
4230
|
-
};
|
|
4231
|
-
};
|
|
4563
|
+
var OBJECT_ITEM_SIZE_SMALL_WIDTH = 72;
|
|
4564
|
+
var HEADER_ITEM_SIZE = 28;
|
|
4565
|
+
var BREAKPOINT = 320;
|
|
4232
4566
|
var NO_OBJECTS_FOUND = 'No objects found';
|
|
4233
4567
|
var BUTTON_EDIT$1 = 'Edit';
|
|
4234
4568
|
var BUTTON_DELETE$1 = 'Delete';
|
|
@@ -4264,146 +4598,216 @@ var getListInclHeaders = function getListInclHeaders(objects) {
|
|
|
4264
4598
|
headerList: headerList
|
|
4265
4599
|
};
|
|
4266
4600
|
};
|
|
4267
|
-
var
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4601
|
+
var ContainerDiv = styled('div')(function () {
|
|
4602
|
+
return _defineProperty({
|
|
4603
|
+
'.objectActions': {
|
|
4604
|
+
width: '100%',
|
|
4605
|
+
minWidth: '100%'
|
|
4606
|
+
},
|
|
4607
|
+
'& .MuiListItemSecondaryAction-root': {
|
|
4608
|
+
width: '24px',
|
|
4609
|
+
right: '8px'
|
|
4610
|
+
},
|
|
4611
|
+
'& .MuiPaper-root': {
|
|
4612
|
+
height: '100%'
|
|
4613
|
+
},
|
|
4614
|
+
'& .MuiListItemButton-root': {
|
|
4615
|
+
height: '100%'
|
|
4616
|
+
},
|
|
4617
|
+
'& .MuiStack-root': {
|
|
4618
|
+
paddingRight: '32px',
|
|
4619
|
+
width: '100%',
|
|
4620
|
+
overflowWrap: 'anywhere',
|
|
4621
|
+
overflow: 'hidden'
|
|
4622
|
+
}
|
|
4623
|
+
}, "@container objectList (min-width: ".concat(BREAKPOINT, "px)"), {
|
|
4624
|
+
'.objectActions': {
|
|
4625
|
+
width: '50%',
|
|
4626
|
+
minWidth: '50%'
|
|
4627
|
+
},
|
|
4628
|
+
'& .MuiListItemSecondaryAction-root': {
|
|
4629
|
+
width: '56px'
|
|
4630
|
+
},
|
|
4631
|
+
'& .MuiStack-root': {
|
|
4632
|
+
paddingRight: '64px'
|
|
4633
|
+
}
|
|
4634
|
+
});
|
|
4635
|
+
});
|
|
4636
|
+
var Objects = function Objects(_ref2) {
|
|
4637
|
+
var objects = _ref2.objects,
|
|
4638
|
+
onClickObject = _ref2.onClickObject,
|
|
4639
|
+
onClickEdit = _ref2.onClickEdit,
|
|
4640
|
+
onClickDelete = _ref2.onClickDelete,
|
|
4641
|
+
onClickShare = _ref2.onClickShare,
|
|
4642
|
+
activeObject = _ref2.activeObject,
|
|
4643
|
+
_ref2$isLoading = _ref2.isLoading,
|
|
4644
|
+
isLoading = _ref2$isLoading === void 0 ? false : _ref2$isLoading;
|
|
4645
|
+
var listRef = React__default.useRef(null);
|
|
4280
4646
|
var _getListInclHeaders = getListInclHeaders(objects),
|
|
4281
4647
|
listInclHeaders = _getListInclHeaders.listInclHeaders,
|
|
4282
4648
|
headerList = _getListInclHeaders.headerList;
|
|
4283
|
-
var getItemSize = function getItemSize(index) {
|
|
4649
|
+
var getItemSize = function getItemSize(width, index) {
|
|
4284
4650
|
var item = listInclHeaders[index];
|
|
4285
4651
|
if (item.isObject) {
|
|
4286
|
-
return OBJECT_ITEM_SIZE;
|
|
4652
|
+
return width < BREAKPOINT ? OBJECT_ITEM_SIZE_SMALL_WIDTH : OBJECT_ITEM_SIZE;
|
|
4287
4653
|
}
|
|
4288
4654
|
return HEADER_ITEM_SIZE;
|
|
4289
4655
|
};
|
|
4290
|
-
return /*#__PURE__*/React__default.createElement(
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
height: listHeight,
|
|
4303
|
-
itemCount: listInclHeaders.length,
|
|
4304
|
-
itemSize: getItemSize,
|
|
4305
|
-
width: "100%"
|
|
4306
|
-
}, function (_ref2) {
|
|
4307
|
-
var index = _ref2.index,
|
|
4308
|
-
style = _ref2.style;
|
|
4309
|
-
var listItem = listInclHeaders[index];
|
|
4310
|
-
if (!listItem.isObject) {
|
|
4311
|
-
var header = headerList[listItem.index];
|
|
4312
|
-
return /*#__PURE__*/React__default.createElement(Typography, {
|
|
4313
|
-
style: style,
|
|
4314
|
-
key: listItem.index,
|
|
4315
|
-
sx: {
|
|
4316
|
-
paddingLeft: 2.5,
|
|
4317
|
-
paddingBottom: 0.5,
|
|
4318
|
-
paddingTop: 0.5,
|
|
4319
|
-
opacity: 0.67
|
|
4320
|
-
},
|
|
4321
|
-
variant: "caption"
|
|
4322
|
-
}, header);
|
|
4323
|
-
}
|
|
4324
|
-
var object = objects[listItem.index];
|
|
4325
|
-
var objectDate = dateUtils.isoStringToDate(object.lastUpdatedTime);
|
|
4326
|
-
return /*#__PURE__*/React__default.createElement(ListItem, {
|
|
4327
|
-
style: style,
|
|
4328
|
-
disablePadding: true,
|
|
4329
|
-
key: object.id,
|
|
4330
|
-
sx: {
|
|
4331
|
-
'& .MuiListItemSecondaryAction-root': {
|
|
4332
|
-
right: '8px'
|
|
4333
|
-
}
|
|
4334
|
-
},
|
|
4335
|
-
secondaryAction: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
4336
|
-
buttonSx: {
|
|
4337
|
-
marginRight: object.scope === 'user' ? 1 : 4
|
|
4338
|
-
},
|
|
4339
|
-
buttonIcon: /*#__PURE__*/React__default.createElement(Share, null),
|
|
4340
|
-
menuTitle: MENU_SHARE,
|
|
4341
|
-
tooltipTitle: BUTTON_SHARE,
|
|
4342
|
-
menuPosition: "bottom",
|
|
4343
|
-
"aria-label": BUTTON_SHARE,
|
|
4344
|
-
menuItems: [{
|
|
4345
|
-
text: BUTTON_AIRMET,
|
|
4346
|
-
action: function action() {},
|
|
4347
|
-
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null),
|
|
4348
|
-
isDisabled: true
|
|
4349
|
-
}, {
|
|
4350
|
-
text: BUTTON_SIGMET,
|
|
4351
|
-
action: function action() {},
|
|
4352
|
-
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null),
|
|
4353
|
-
isDisabled: true
|
|
4354
|
-
}, {
|
|
4355
|
-
text: BUTTON_PUBLIC_WARNING,
|
|
4356
|
-
action: function action() {
|
|
4357
|
-
onClickShare(object);
|
|
4358
|
-
},
|
|
4359
|
-
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null)
|
|
4360
|
-
}]
|
|
4361
|
-
}), object.scope === 'user' && /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
4362
|
-
menuTitle: "Object options",
|
|
4363
|
-
tooltipTitle: "Object options",
|
|
4364
|
-
menuPosition: "bottom",
|
|
4365
|
-
"aria-label": "Options",
|
|
4366
|
-
menuItems: [{
|
|
4367
|
-
text: BUTTON_EDIT$1,
|
|
4368
|
-
action: function action() {
|
|
4369
|
-
onClickEdit(object.id);
|
|
4370
|
-
},
|
|
4371
|
-
icon: /*#__PURE__*/React__default.createElement(Edit, null)
|
|
4372
|
-
}, {
|
|
4373
|
-
text: BUTTON_DELETE$1,
|
|
4374
|
-
action: function action() {
|
|
4375
|
-
onClickDelete(object.id);
|
|
4376
|
-
},
|
|
4377
|
-
icon: /*#__PURE__*/React__default.createElement(Delete, null)
|
|
4378
|
-
}]
|
|
4379
|
-
}))
|
|
4380
|
-
}, /*#__PURE__*/React__default.createElement(Paper, {
|
|
4381
|
-
elevation: 0,
|
|
4382
|
-
sx: {
|
|
4383
|
-
width: '100%',
|
|
4384
|
-
margin: 0.25,
|
|
4385
|
-
backgroundColor: 'geowebColors.background.surface',
|
|
4386
|
-
border: 'solid 1px',
|
|
4387
|
-
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
4388
|
-
}
|
|
4389
|
-
}, /*#__PURE__*/React__default.createElement(ListItemButton, {
|
|
4390
|
-
onClick: function onClick() {
|
|
4391
|
-
onClickObject(object);
|
|
4392
|
-
},
|
|
4393
|
-
selected: activeObject === object.id,
|
|
4656
|
+
return /*#__PURE__*/React__default.createElement(AutoSizer, {
|
|
4657
|
+
onResize: function onResize() {
|
|
4658
|
+
if (listRef.current !== null) {
|
|
4659
|
+
listRef.current.resetAfterIndex(0, true);
|
|
4660
|
+
}
|
|
4661
|
+
}
|
|
4662
|
+
}, function (_ref3) {
|
|
4663
|
+
var _ref3$height = _ref3.height,
|
|
4664
|
+
height = _ref3$height === void 0 ? 0 : _ref3$height,
|
|
4665
|
+
_ref3$width = _ref3.width,
|
|
4666
|
+
width = _ref3$width === void 0 ? 0 : _ref3$width;
|
|
4667
|
+
return /*#__PURE__*/React__default.createElement(Box, {
|
|
4394
4668
|
sx: {
|
|
4395
|
-
|
|
4396
|
-
height: '44px'
|
|
4669
|
+
width: width
|
|
4397
4670
|
}
|
|
4398
|
-
},
|
|
4399
|
-
variant: "caption"
|
|
4400
|
-
}, object.objectName), /*#__PURE__*/React__default.createElement(Typography, {
|
|
4401
|
-
variant: "caption",
|
|
4671
|
+
}, !isLoading && objects.length === 0 ? /*#__PURE__*/React__default.createElement(Typography, {
|
|
4402
4672
|
sx: {
|
|
4403
|
-
|
|
4673
|
+
paddingLeft: '16px',
|
|
4674
|
+
paddingTop: '8px'
|
|
4675
|
+
},
|
|
4676
|
+
variant: "body1"
|
|
4677
|
+
}, NO_OBJECTS_FOUND) : /*#__PURE__*/React__default.createElement(VariableSizeList, {
|
|
4678
|
+
height: height - DEFAULT_ADD_BUTTON_HEIGHT,
|
|
4679
|
+
width: width,
|
|
4680
|
+
itemCount: listInclHeaders.length,
|
|
4681
|
+
itemSize: function itemSize(index) {
|
|
4682
|
+
return getItemSize(width, index);
|
|
4683
|
+
},
|
|
4684
|
+
style: {
|
|
4685
|
+
containerType: 'inline-size',
|
|
4686
|
+
containerName: 'objectList'
|
|
4687
|
+
},
|
|
4688
|
+
ref: listRef
|
|
4689
|
+
}, function (_ref4) {
|
|
4690
|
+
var index = _ref4.index,
|
|
4691
|
+
style = _ref4.style;
|
|
4692
|
+
var listItem = listInclHeaders[index];
|
|
4693
|
+
if (!listItem.isObject) {
|
|
4694
|
+
var header = headerList[listItem.index];
|
|
4695
|
+
return /*#__PURE__*/React__default.createElement(Typography, {
|
|
4696
|
+
style: style,
|
|
4697
|
+
key: listItem.index,
|
|
4698
|
+
sx: {
|
|
4699
|
+
paddingLeft: 2.5,
|
|
4700
|
+
paddingBottom: 0.5,
|
|
4701
|
+
paddingTop: 1,
|
|
4702
|
+
opacity: 0.67,
|
|
4703
|
+
lineHeight: '16px',
|
|
4704
|
+
overflow: 'hidden',
|
|
4705
|
+
whiteSpace: 'nowrap',
|
|
4706
|
+
textOverflow: 'ellipsis'
|
|
4707
|
+
},
|
|
4708
|
+
variant: "caption"
|
|
4709
|
+
}, header);
|
|
4404
4710
|
}
|
|
4405
|
-
|
|
4406
|
-
|
|
4711
|
+
var object = objects[listItem.index];
|
|
4712
|
+
var objectDate = dateUtils.isoStringToDate(object.lastUpdatedTime);
|
|
4713
|
+
return /*#__PURE__*/React__default.createElement(ContainerDiv, null, /*#__PURE__*/React__default.createElement(ListItem, {
|
|
4714
|
+
style: style,
|
|
4715
|
+
disablePadding: true,
|
|
4716
|
+
key: object.id,
|
|
4717
|
+
secondaryAction: /*#__PURE__*/React__default.createElement(Grid, {
|
|
4718
|
+
container: true,
|
|
4719
|
+
rowSpacing: 1
|
|
4720
|
+
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
4721
|
+
item: true,
|
|
4722
|
+
className: "objectActions"
|
|
4723
|
+
}, /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
4724
|
+
buttonSx: _defineProperty({
|
|
4725
|
+
// position the share button for scope global
|
|
4726
|
+
marginBottom: object.scope === 'user' ? 0 : 4
|
|
4727
|
+
}, "@container objectList (min-width: ".concat(BREAKPOINT, "px)"), {
|
|
4728
|
+
marginBottom: 0,
|
|
4729
|
+
marginRight: object.scope === 'user' ? 1 : 4
|
|
4730
|
+
}),
|
|
4731
|
+
buttonIcon: /*#__PURE__*/React__default.createElement(Share, null),
|
|
4732
|
+
menuTitle: MENU_SHARE,
|
|
4733
|
+
tooltipTitle: BUTTON_SHARE,
|
|
4734
|
+
menuPosition: "bottom",
|
|
4735
|
+
"aria-label": BUTTON_SHARE,
|
|
4736
|
+
menuItems: [{
|
|
4737
|
+
text: BUTTON_AIRMET,
|
|
4738
|
+
action: function action() {},
|
|
4739
|
+
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null),
|
|
4740
|
+
isDisabled: true
|
|
4741
|
+
}, {
|
|
4742
|
+
text: BUTTON_SIGMET,
|
|
4743
|
+
action: function action() {},
|
|
4744
|
+
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null),
|
|
4745
|
+
isDisabled: true
|
|
4746
|
+
}, {
|
|
4747
|
+
text: BUTTON_PUBLIC_WARNING,
|
|
4748
|
+
action: function action() {
|
|
4749
|
+
onClickShare(object);
|
|
4750
|
+
},
|
|
4751
|
+
icon: /*#__PURE__*/React__default.createElement(ExitDomain, null)
|
|
4752
|
+
}]
|
|
4753
|
+
})), object.scope === 'user' && /*#__PURE__*/React__default.createElement(Grid, {
|
|
4754
|
+
item: true,
|
|
4755
|
+
className: "objectActions"
|
|
4756
|
+
}, /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
4757
|
+
menuTitle: "Object options",
|
|
4758
|
+
tooltipTitle: "Object options",
|
|
4759
|
+
menuPosition: "bottom",
|
|
4760
|
+
"aria-label": "Options",
|
|
4761
|
+
menuItems: [{
|
|
4762
|
+
text: BUTTON_EDIT$1,
|
|
4763
|
+
action: function action() {
|
|
4764
|
+
onClickEdit(object.id);
|
|
4765
|
+
},
|
|
4766
|
+
icon: /*#__PURE__*/React__default.createElement(Edit, null)
|
|
4767
|
+
}, {
|
|
4768
|
+
text: BUTTON_DELETE$1,
|
|
4769
|
+
action: function action() {
|
|
4770
|
+
onClickDelete(object.id);
|
|
4771
|
+
},
|
|
4772
|
+
icon: /*#__PURE__*/React__default.createElement(Delete, null)
|
|
4773
|
+
}]
|
|
4774
|
+
})))
|
|
4775
|
+
}, /*#__PURE__*/React__default.createElement(Paper, {
|
|
4776
|
+
elevation: 0,
|
|
4777
|
+
sx: {
|
|
4778
|
+
width: '100%',
|
|
4779
|
+
margin: 0.25,
|
|
4780
|
+
backgroundColor: 'geowebColors.background.surface',
|
|
4781
|
+
border: 'solid 1px',
|
|
4782
|
+
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
4783
|
+
}
|
|
4784
|
+
}, /*#__PURE__*/React__default.createElement(ListItemButton, {
|
|
4785
|
+
onClick: function onClick() {
|
|
4786
|
+
onClickObject(object);
|
|
4787
|
+
},
|
|
4788
|
+
selected: activeObject === object.id,
|
|
4789
|
+
sx: {
|
|
4790
|
+
padding: 1,
|
|
4791
|
+
height: '44px'
|
|
4792
|
+
}
|
|
4793
|
+
}, /*#__PURE__*/React__default.createElement(Stack, null, /*#__PURE__*/React__default.createElement(Typography, {
|
|
4794
|
+
variant: "caption",
|
|
4795
|
+
sx: {
|
|
4796
|
+
lineHeight: '16px',
|
|
4797
|
+
maxHeight: '32px',
|
|
4798
|
+
overflow: 'hidden'
|
|
4799
|
+
}
|
|
4800
|
+
}, object.objectName), /*#__PURE__*/React__default.createElement(Typography, {
|
|
4801
|
+
variant: "caption",
|
|
4802
|
+
sx: {
|
|
4803
|
+
opacity: 0.67,
|
|
4804
|
+
lineHeight: '16px',
|
|
4805
|
+
maxHeight: '32px',
|
|
4806
|
+
overflow: 'hidden'
|
|
4807
|
+
}
|
|
4808
|
+
}, object.scope === 'global' && 'Global: ', dateUtils.dateToString(objectDate, DATE_FORMAT, true), ' ', "UTC"))))));
|
|
4809
|
+
}));
|
|
4810
|
+
});
|
|
4407
4811
|
};
|
|
4408
4812
|
|
|
4409
4813
|
var DEFAULT_OBJECT_MANAGER_SIZE = {
|
|
@@ -4415,7 +4819,7 @@ var DEFAULT_OBJECT_MANAGER_POSITION = {
|
|
|
4415
4819
|
left: 50
|
|
4416
4820
|
};
|
|
4417
4821
|
var DEFAULT_OBJECT_MANAGER_MIN_SIZE = {
|
|
4418
|
-
width:
|
|
4822
|
+
width: 160,
|
|
4419
4823
|
height: 300
|
|
4420
4824
|
};
|
|
4421
4825
|
var BUTTON_ADD_OBJECT$1 = 'Add a new object';
|
|
@@ -4937,11 +5341,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
4937
5341
|
};
|
|
4938
5342
|
var onShareObject = function onShareObject(object) {
|
|
4939
5343
|
dispatch(publicWarningActions.setFormValues({
|
|
4940
|
-
object:
|
|
4941
|
-
id: object.id,
|
|
4942
|
-
lastUpdatedTime: object.lastUpdatedTime,
|
|
4943
|
-
objectName: object.objectName
|
|
4944
|
-
}
|
|
5344
|
+
object: object
|
|
4945
5345
|
}));
|
|
4946
5346
|
dispatch(uiActions.setToggleOpenDialog({
|
|
4947
5347
|
setOpen: true,
|
|
@@ -23385,9 +23785,13 @@ var DrawingToolForm = function DrawingToolForm(_ref) {
|
|
|
23385
23785
|
handleSubmit(function (formValues) {
|
|
23386
23786
|
// remove unneeded properties
|
|
23387
23787
|
formValues.opacity;
|
|
23388
|
-
var
|
|
23788
|
+
var geoJSON = formValues.geoJSON,
|
|
23789
|
+
allFormValues = __rest(formValues, ["opacity", "geoJSON"]);
|
|
23790
|
+
// rewind geometry
|
|
23791
|
+
var rewindedGeometry = rewindGeometry(geoJSON);
|
|
23389
23792
|
onSubmitForm(Object.assign(Object.assign({}, allFormValues), {
|
|
23390
|
-
id: id
|
|
23793
|
+
id: id,
|
|
23794
|
+
geoJSON: rewindedGeometry
|
|
23391
23795
|
}));
|
|
23392
23796
|
})();
|
|
23393
23797
|
};
|
|
@@ -23600,7 +24004,7 @@ var DrawingToolFormConnect = function DrawingToolFormConnect() {
|
|
|
23600
24004
|
});
|
|
23601
24005
|
var onSubmitForm = function onSubmitForm(formValues) {
|
|
23602
24006
|
dispatch(drawActions.submitDrawValues({
|
|
23603
|
-
geoJSON:
|
|
24007
|
+
geoJSON: formValues.geoJSON,
|
|
23604
24008
|
objectName: formValues.objectName,
|
|
23605
24009
|
scope: 'user',
|
|
23606
24010
|
id: drawing === null || drawing === void 0 ? void 0 : drawing.id
|
|
@@ -23719,7 +24123,7 @@ var DrawingToolConnect = function DrawingToolConnect(_ref) {
|
|
|
23719
24123
|
React.useEffect(function () {
|
|
23720
24124
|
dispatch(drawtoolActions.registerDrawTool({
|
|
23721
24125
|
drawToolId: drawingDialogType,
|
|
23722
|
-
|
|
24126
|
+
defaultDrawModes: currentlySupportedDrawModes
|
|
23723
24127
|
}));
|
|
23724
24128
|
return function () {
|
|
23725
24129
|
dispatch(drawtoolActions.unregisterDrawTool({
|
|
@@ -23762,7 +24166,7 @@ var DEFAULT_WARNING_DIALOG_MIN_SIZE = {
|
|
|
23762
24166
|
height: 300
|
|
23763
24167
|
};
|
|
23764
24168
|
var DIALOG_TITLE = 'Public Warning';
|
|
23765
|
-
var
|
|
24169
|
+
var PublicWarningsFormDialog = function PublicWarningsFormDialog(_ref) {
|
|
23766
24170
|
var bounds = _ref.bounds,
|
|
23767
24171
|
onClose = _ref.onClose,
|
|
23768
24172
|
_ref$title = _ref.title,
|
|
@@ -23963,7 +24367,7 @@ var BUTTON_DELETE = 'Delete';
|
|
|
23963
24367
|
var BUTTON_VIEW = 'View';
|
|
23964
24368
|
var BUTTON_EDIT = 'Edit';
|
|
23965
24369
|
var OBJECTS_MENU = 'Object options';
|
|
23966
|
-
var NO_OBJECT = '
|
|
24370
|
+
var NO_OBJECT = '(no object selected)';
|
|
23967
24371
|
var formatDate = function formatDate(lastUpdatedTime) {
|
|
23968
24372
|
return dateUtils.dateToString(dateUtils.isoStringToDate(lastUpdatedTime), "".concat(DATE_FORMAT, " 'UTC'"));
|
|
23969
24373
|
};
|
|
@@ -23977,24 +24381,34 @@ var AreaField = function AreaField(_ref) {
|
|
|
23977
24381
|
_ref$onAddObject = _ref.onAddObject,
|
|
23978
24382
|
onAddObject = _ref$onAddObject === void 0 ? function () {} : _ref$onAddObject,
|
|
23979
24383
|
_ref$isDisabled = _ref.isDisabled,
|
|
23980
|
-
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled
|
|
23981
|
-
|
|
23982
|
-
|
|
23983
|
-
|
|
23984
|
-
|
|
23985
|
-
|
|
23986
|
-
|
|
23987
|
-
|
|
24384
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
|
|
24385
|
+
var _useFormContext = useFormContext(),
|
|
24386
|
+
getValues = _useFormContext.getValues,
|
|
24387
|
+
errors = _useFormContext.formState.errors;
|
|
24388
|
+
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
24389
|
+
isRequired = _useDraftFormHelpers.isRequired;
|
|
24390
|
+
var lastUpdatedTime = getValues('object.lastUpdatedTime');
|
|
24391
|
+
var objectName = getValues('object.objectName') || NO_OBJECT;
|
|
24392
|
+
var hasObject = getValues('object') !== undefined;
|
|
24393
|
+
var hasErrors = (errors === null || errors === void 0 ? void 0 : errors.geoJSON) !== undefined;
|
|
24394
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography, Object.assign({
|
|
23988
24395
|
variant: "h3",
|
|
23989
24396
|
color: "text.secondary",
|
|
23990
|
-
sx: {
|
|
24397
|
+
sx: Object.assign({
|
|
23991
24398
|
fontSize: '0.75rem',
|
|
23992
24399
|
fontWeight: 'normal',
|
|
23993
24400
|
lineHeight: 1.83,
|
|
23994
24401
|
paddingLeft: 1.5
|
|
23995
|
-
}
|
|
23996
|
-
|
|
23997
|
-
|
|
24402
|
+
}, hasErrors && {
|
|
24403
|
+
color: 'geowebColors.captions.captionError.color'
|
|
24404
|
+
})
|
|
24405
|
+
}, hasErrors && {
|
|
24406
|
+
'aria-errormessage': errorMessages.required
|
|
24407
|
+
}), LABEL_AREA), /*#__PURE__*/React__default.createElement(Card, {
|
|
24408
|
+
elevation: 0,
|
|
24409
|
+
sx: Object.assign({}, !hasObject && {
|
|
24410
|
+
background: 'none'
|
|
24411
|
+
})
|
|
23998
24412
|
}, /*#__PURE__*/React__default.createElement(CardContent, {
|
|
23999
24413
|
sx: {
|
|
24000
24414
|
position: 'relative',
|
|
@@ -24015,7 +24429,7 @@ var AreaField = function AreaField(_ref) {
|
|
|
24015
24429
|
}, objectName), /*#__PURE__*/React__default.createElement(Typography, {
|
|
24016
24430
|
variant: "body2",
|
|
24017
24431
|
color: "text.secondary"
|
|
24018
|
-
}, lastUpdatedTime ? formatDate(lastUpdatedTime) : ''),
|
|
24432
|
+
}, lastUpdatedTime ? formatDate(lastUpdatedTime) : ''), hasObject ? /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
24019
24433
|
menuTitle: OBJECTS_MENU,
|
|
24020
24434
|
tooltipTitle: OBJECTS_MENU,
|
|
24021
24435
|
buttonSx: {
|
|
@@ -24042,7 +24456,12 @@ var AreaField = function AreaField(_ref) {
|
|
|
24042
24456
|
icon: /*#__PURE__*/React__default.createElement(Delete, null)
|
|
24043
24457
|
}]
|
|
24044
24458
|
}) : null)), /*#__PURE__*/React__default.createElement(ReactHookFormHiddenInput, {
|
|
24045
|
-
|
|
24459
|
+
rules: {
|
|
24460
|
+
validate: {
|
|
24461
|
+
isRequired: isRequired
|
|
24462
|
+
}
|
|
24463
|
+
},
|
|
24464
|
+
name: "geoJSON"
|
|
24046
24465
|
}), /*#__PURE__*/React__default.createElement(Button, {
|
|
24047
24466
|
sx: {
|
|
24048
24467
|
marginTop: 1
|
|
@@ -24055,86 +24474,207 @@ var AreaField = function AreaField(_ref) {
|
|
|
24055
24474
|
}, BUTTON_ADD_OBJECT));
|
|
24056
24475
|
};
|
|
24057
24476
|
|
|
24058
|
-
|
|
24477
|
+
/* *
|
|
24478
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
24479
|
+
* you may not use this file except in compliance with the License.
|
|
24480
|
+
* You may obtain a copy of the License at
|
|
24481
|
+
*
|
|
24482
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24483
|
+
*
|
|
24484
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
24485
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24486
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24487
|
+
* See the License for the specific language governing permissions and
|
|
24488
|
+
* limitations under the License.
|
|
24489
|
+
*
|
|
24490
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
24491
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
24492
|
+
* */
|
|
24493
|
+
var LABEL_PHENOMENON = 'Phenomenon';
|
|
24494
|
+
var warningPhenomena = [{
|
|
24495
|
+
title: 'Wind',
|
|
24496
|
+
key: 'wind',
|
|
24497
|
+
icon: /*#__PURE__*/React.createElement(Wind, null)
|
|
24498
|
+
}, {
|
|
24499
|
+
title: 'Fog',
|
|
24500
|
+
key: 'fog',
|
|
24501
|
+
icon: /*#__PURE__*/React.createElement(Fog, null)
|
|
24502
|
+
}, {
|
|
24503
|
+
title: 'Thunderstorm',
|
|
24504
|
+
key: 'thunderstorm',
|
|
24505
|
+
icon: /*#__PURE__*/React.createElement(Lightning, null)
|
|
24506
|
+
}, {
|
|
24507
|
+
title: 'Snow/ice',
|
|
24508
|
+
key: 'snowIce',
|
|
24509
|
+
icon: /*#__PURE__*/React.createElement(Snow, null)
|
|
24510
|
+
}, {
|
|
24511
|
+
title: 'Rain',
|
|
24512
|
+
key: 'rain',
|
|
24513
|
+
icon: /*#__PURE__*/React.createElement(Rain, null)
|
|
24514
|
+
}, {
|
|
24515
|
+
title: 'High temperature',
|
|
24516
|
+
key: 'highTemp',
|
|
24517
|
+
icon: /*#__PURE__*/React.createElement(TemperatureHigh, null)
|
|
24518
|
+
}, {
|
|
24519
|
+
title: 'Funnel cloud',
|
|
24520
|
+
key: 'funnelCloud',
|
|
24521
|
+
icon: /*#__PURE__*/React.createElement(FunnelCloud, null)
|
|
24522
|
+
}, {
|
|
24523
|
+
title: 'Low temperature',
|
|
24524
|
+
key: 'lowTemp',
|
|
24525
|
+
icon: /*#__PURE__*/React.createElement(TemperatureLow, null)
|
|
24526
|
+
}, {
|
|
24527
|
+
title: 'Coastal event',
|
|
24528
|
+
key: 'coastalEvent',
|
|
24529
|
+
icon: /*#__PURE__*/React.createElement(CoastalEvent, null)
|
|
24530
|
+
}];
|
|
24531
|
+
var Phenomenon = function Phenomenon() {
|
|
24532
|
+
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
24533
|
+
isRequired = _useDraftFormHelpers.isRequired;
|
|
24534
|
+
return /*#__PURE__*/React.createElement(ReactHookFormSelect, {
|
|
24535
|
+
name: "phenomenon",
|
|
24536
|
+
label: LABEL_PHENOMENON,
|
|
24537
|
+
rules: {
|
|
24538
|
+
validate: {
|
|
24539
|
+
isRequired: isRequired
|
|
24540
|
+
}
|
|
24541
|
+
}
|
|
24542
|
+
}, warningPhenomena.map(function (phenomenon) {
|
|
24543
|
+
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24544
|
+
key: phenomenon.key,
|
|
24545
|
+
value: phenomenon.key
|
|
24546
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24547
|
+
container: true,
|
|
24548
|
+
justifyContent: "space-between"
|
|
24549
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24550
|
+
item: true
|
|
24551
|
+
}, phenomenon.title), /*#__PURE__*/React.createElement(Grid, {
|
|
24552
|
+
item: true
|
|
24553
|
+
}, /*#__PURE__*/React.createElement(ListItemIcon, null, phenomenon.icon))));
|
|
24554
|
+
}));
|
|
24555
|
+
};
|
|
24556
|
+
|
|
24557
|
+
/* *
|
|
24558
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
24559
|
+
* you may not use this file except in compliance with the License.
|
|
24560
|
+
* You may obtain a copy of the License at
|
|
24561
|
+
*
|
|
24562
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24563
|
+
*
|
|
24564
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
24565
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24566
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24567
|
+
* See the License for the specific language governing permissions and
|
|
24568
|
+
* limitations under the License.
|
|
24569
|
+
*
|
|
24570
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
24571
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
24572
|
+
* */
|
|
24573
|
+
var LABEL_LEVEL = 'Level';
|
|
24574
|
+
var levelOptions = [{
|
|
24575
|
+
title: 'Moderate',
|
|
24576
|
+
key: 'moderate',
|
|
24577
|
+
color: '#FAE21E',
|
|
24578
|
+
textColor: '#051039'
|
|
24579
|
+
}, {
|
|
24580
|
+
title: 'Severe',
|
|
24581
|
+
key: 'severe',
|
|
24582
|
+
color: '#E27000',
|
|
24583
|
+
textColor: '#051039'
|
|
24584
|
+
}, {
|
|
24585
|
+
title: 'Extreme',
|
|
24586
|
+
key: 'extreme',
|
|
24587
|
+
color: '#D62A20',
|
|
24588
|
+
textColor: '#ffffff'
|
|
24589
|
+
}];
|
|
24590
|
+
var LevelField = function LevelField() {
|
|
24591
|
+
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
24592
|
+
isRequired = _useDraftFormHelpers.isRequired;
|
|
24593
|
+
var _useFormContext = useFormContext(),
|
|
24594
|
+
watch = _useFormContext.watch;
|
|
24595
|
+
var selectedLevel = watch('level');
|
|
24596
|
+
var levelDetails = levelOptions.find(function (level) {
|
|
24597
|
+
return level.key === selectedLevel;
|
|
24598
|
+
});
|
|
24599
|
+
return /*#__PURE__*/React.createElement(ReactHookFormSelect, {
|
|
24600
|
+
name: "level",
|
|
24601
|
+
label: LABEL_LEVEL,
|
|
24602
|
+
rules: {
|
|
24603
|
+
validate: {
|
|
24604
|
+
isRequired: isRequired
|
|
24605
|
+
}
|
|
24606
|
+
},
|
|
24607
|
+
sx: {
|
|
24608
|
+
'& .MuiSelect-select.MuiSelect-filled': {
|
|
24609
|
+
color: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.textColor) || 'none',
|
|
24610
|
+
backgroundColor: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.color) || 'none',
|
|
24611
|
+
backgroundClip: 'content-box'
|
|
24612
|
+
}
|
|
24613
|
+
}
|
|
24614
|
+
}, levelOptions.map(function (level) {
|
|
24615
|
+
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24616
|
+
value: level.key,
|
|
24617
|
+
key: level.key,
|
|
24618
|
+
sx: {
|
|
24619
|
+
'&.MuiMenuItem-root ': {
|
|
24620
|
+
color: level.textColor,
|
|
24621
|
+
background: level.color,
|
|
24622
|
+
backgroundClip: 'content-box',
|
|
24623
|
+
padding: '12px 8px',
|
|
24624
|
+
'&:hover': {
|
|
24625
|
+
backgroundColor: "".concat(level.color),
|
|
24626
|
+
backgroundClip: 'content-box',
|
|
24627
|
+
boxShadow: function boxShadow(theme) {
|
|
24628
|
+
return "inset -8px -12px ".concat(theme.palette.geowebColors.cards.cardContainerMouseOver, ", inset 8px 12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver);
|
|
24629
|
+
}
|
|
24630
|
+
},
|
|
24631
|
+
'&.Mui-selected': {
|
|
24632
|
+
backgroundColor: "".concat(level.color),
|
|
24633
|
+
'&:hover': {
|
|
24634
|
+
boxShadow: function boxShadow(theme) {
|
|
24635
|
+
return "inset 4px 0px 0px 0px ".concat(theme.palette.geowebColors.typographyAndIcons.iconLinkActive, ", inset -8px -12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver, ", inset 8px 12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver);
|
|
24636
|
+
}
|
|
24637
|
+
}
|
|
24638
|
+
}
|
|
24639
|
+
}
|
|
24640
|
+
}
|
|
24641
|
+
}, "\xA0", level.title);
|
|
24642
|
+
}));
|
|
24643
|
+
};
|
|
24644
|
+
|
|
24645
|
+
var getEmptyPublicWarning = function getEmptyPublicWarning() {
|
|
24059
24646
|
var currentTime = new Date();
|
|
24060
24647
|
var validToTime = dateUtils.add(currentTime, {
|
|
24061
24648
|
hours: 6
|
|
24062
24649
|
});
|
|
24063
24650
|
return {
|
|
24651
|
+
id: '',
|
|
24064
24652
|
phenomenon: '',
|
|
24065
24653
|
validFrom: dateUtils.dateToString(currentTime, DATE_FORMAT_UTC, true),
|
|
24066
24654
|
validUntil: dateUtils.dateToString(validToTime, DATE_FORMAT_UTC, true),
|
|
24067
|
-
leadtime: LABEL_CURRENT,
|
|
24068
24655
|
level: '',
|
|
24069
24656
|
probability: 30,
|
|
24070
24657
|
descriptionOriginal: '',
|
|
24071
24658
|
descriptionTranslation: '',
|
|
24072
|
-
|
|
24659
|
+
geoJSON: null
|
|
24073
24660
|
};
|
|
24074
24661
|
};
|
|
24662
|
+
var getFormData = function getFormData(publicWarningsDetails, object) {
|
|
24663
|
+
var data = Object.assign(Object.assign({}, publicWarningsDetails ? Object.assign({}, publicWarningsDetails) : getEmptyPublicWarning()), {
|
|
24664
|
+
geoJSON: object === null || object === void 0 ? void 0 : object.geoJSON
|
|
24665
|
+
});
|
|
24666
|
+
return data;
|
|
24667
|
+
};
|
|
24075
24668
|
// tablet breakpoint - 2 padding * 2 for both sides
|
|
24076
24669
|
var containerQueryBreakpoint = "@container (min-width: ".concat(breakpoints.tablet - 32, "px)");
|
|
24077
|
-
var LABEL_PHENOMENON = 'Phenomenon';
|
|
24078
24670
|
var LABEL_VALID_FROM = 'Valid from';
|
|
24079
24671
|
var LABEL_VALID_UNTIL = 'Valid until';
|
|
24080
|
-
var LABEL_CURRENT = 'Current';
|
|
24081
|
-
var LABEL_EARLY = 'Early';
|
|
24082
|
-
var LABEL_LEVEL = 'Level';
|
|
24083
24672
|
var LABEL_PROBABILITY = 'Probability';
|
|
24084
24673
|
var BUTTON_CLEAR = 'Clear';
|
|
24085
24674
|
var BUTTON_SAVE = 'Save';
|
|
24086
24675
|
var BUTTON_PUBLISH = 'Publish';
|
|
24087
24676
|
var dateFormat = 'DD/MM/YYYY HH:mm';
|
|
24088
24677
|
var probablityOptions = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0];
|
|
24089
|
-
var levelOptions = [{
|
|
24090
|
-
title: 'Moderate',
|
|
24091
|
-
key: 'moderate',
|
|
24092
|
-
color: '#FAE21E',
|
|
24093
|
-
textColor: '#051039'
|
|
24094
|
-
}, {
|
|
24095
|
-
title: 'Severe',
|
|
24096
|
-
key: 'severe',
|
|
24097
|
-
color: '#E27000',
|
|
24098
|
-
textColor: '#051039'
|
|
24099
|
-
}, {
|
|
24100
|
-
title: 'Extreme',
|
|
24101
|
-
key: 'extreme',
|
|
24102
|
-
color: '#D62A20',
|
|
24103
|
-
textColor: '#ffffff'
|
|
24104
|
-
}];
|
|
24105
|
-
var warningPhenomena = [{
|
|
24106
|
-
title: 'Coastal event',
|
|
24107
|
-
key: 'coastalEvent',
|
|
24108
|
-
icon: /*#__PURE__*/React.createElement(CoastalEvent, null)
|
|
24109
|
-
}, {
|
|
24110
|
-
title: 'Fog',
|
|
24111
|
-
key: 'fog',
|
|
24112
|
-
icon: /*#__PURE__*/React.createElement(Fog, null)
|
|
24113
|
-
}, {
|
|
24114
|
-
title: 'High temperature',
|
|
24115
|
-
key: 'highTemp',
|
|
24116
|
-
icon: /*#__PURE__*/React.createElement(TemperatureHigh, null)
|
|
24117
|
-
}, {
|
|
24118
|
-
title: 'Low temperature',
|
|
24119
|
-
key: 'lowTemp',
|
|
24120
|
-
icon: /*#__PURE__*/React.createElement(TemperatureLow, null)
|
|
24121
|
-
}, {
|
|
24122
|
-
title: 'Rain',
|
|
24123
|
-
key: 'rain',
|
|
24124
|
-
icon: /*#__PURE__*/React.createElement(Rain, null)
|
|
24125
|
-
}, {
|
|
24126
|
-
title: 'Snow/ice',
|
|
24127
|
-
key: 'snowIce',
|
|
24128
|
-
icon: /*#__PURE__*/React.createElement(Snow, null)
|
|
24129
|
-
}, {
|
|
24130
|
-
title: 'Thunderstorm',
|
|
24131
|
-
key: 'thunderstorm',
|
|
24132
|
-
icon: /*#__PURE__*/React.createElement(Lightning, null)
|
|
24133
|
-
}, {
|
|
24134
|
-
title: 'Wind',
|
|
24135
|
-
key: 'wind',
|
|
24136
|
-
icon: /*#__PURE__*/React.createElement(Wind, null)
|
|
24137
|
-
}];
|
|
24138
24678
|
var ContainerWrapper = styled('div')(function () {
|
|
24139
24679
|
return {
|
|
24140
24680
|
containerType: 'size',
|
|
@@ -24170,39 +24710,70 @@ var ContainerGrid = styled('div')(function (_ref3) {
|
|
|
24170
24710
|
}
|
|
24171
24711
|
});
|
|
24172
24712
|
});
|
|
24713
|
+
var prepareFormValues = function prepareFormValues(data) {
|
|
24714
|
+
data.IS_DRAFT;
|
|
24715
|
+
data.object;
|
|
24716
|
+
data['translation-select'];
|
|
24717
|
+
var productToPost = __rest(data, ["IS_DRAFT", "object", 'translation-select']);
|
|
24718
|
+
return productToPost;
|
|
24719
|
+
};
|
|
24173
24720
|
var Form = function Form(_ref5) {
|
|
24174
24721
|
var _ref5$isDisabled = _ref5.isDisabled,
|
|
24175
24722
|
isDisabled = _ref5$isDisabled === void 0 ? false : _ref5$isDisabled,
|
|
24176
|
-
|
|
24723
|
+
_ref5$onSaveForm = _ref5.onSaveForm,
|
|
24724
|
+
onSaveForm = _ref5$onSaveForm === void 0 ? function () {} : _ref5$onSaveForm,
|
|
24725
|
+
_ref5$onPublishForm = _ref5.onPublishForm,
|
|
24726
|
+
onPublishForm = _ref5$onPublishForm === void 0 ? function () {} : _ref5$onPublishForm;
|
|
24177
24727
|
var _useFormContext = useFormContext(),
|
|
24178
|
-
|
|
24179
|
-
|
|
24180
|
-
var
|
|
24181
|
-
|
|
24182
|
-
|
|
24728
|
+
handleSubmit = _useFormContext.handleSubmit,
|
|
24729
|
+
reset = _useFormContext.reset;
|
|
24730
|
+
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
24731
|
+
toggleIsDraft = _useDraftFormHelpers.toggleIsDraft,
|
|
24732
|
+
DraftFieldHelper = _useDraftFormHelpers.DraftFieldHelper;
|
|
24733
|
+
var onPressPublish = function onPressPublish() {
|
|
24734
|
+
// TODO: enable publish
|
|
24735
|
+
toggleIsDraft(false);
|
|
24736
|
+
handleSubmit(function (data) {
|
|
24737
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
24738
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
24739
|
+
while (1) switch (_context.prev = _context.next) {
|
|
24740
|
+
case 0:
|
|
24741
|
+
onPublishForm(prepareFormValues(data));
|
|
24742
|
+
case 1:
|
|
24743
|
+
case "end":
|
|
24744
|
+
return _context.stop();
|
|
24745
|
+
}
|
|
24746
|
+
}, _callee);
|
|
24747
|
+
}));
|
|
24748
|
+
})();
|
|
24749
|
+
};
|
|
24750
|
+
var onPressSave = function onPressSave() {
|
|
24751
|
+
// TODO: enable save
|
|
24752
|
+
toggleIsDraft(true);
|
|
24753
|
+
handleSubmit(function (data) {
|
|
24754
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
24755
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
24756
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
24757
|
+
case 0:
|
|
24758
|
+
onSaveForm(prepareFormValues(data));
|
|
24759
|
+
case 1:
|
|
24760
|
+
case "end":
|
|
24761
|
+
return _context2.stop();
|
|
24762
|
+
}
|
|
24763
|
+
}, _callee2);
|
|
24764
|
+
}));
|
|
24765
|
+
})();
|
|
24766
|
+
};
|
|
24767
|
+
var onPressClear = function onPressClear() {
|
|
24768
|
+
reset(getEmptyPublicWarning());
|
|
24769
|
+
};
|
|
24183
24770
|
return /*#__PURE__*/React.createElement(ContainerWrapper, null, /*#__PURE__*/React.createElement(ContainerFormWrapper, null, /*#__PURE__*/React.createElement(ContainerGrid, null, /*#__PURE__*/React.createElement(Grid, {
|
|
24184
24771
|
container: true,
|
|
24185
24772
|
rowSpacing: 2
|
|
24186
24773
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24187
24774
|
item: true,
|
|
24188
24775
|
xs: 12
|
|
24189
|
-
}, /*#__PURE__*/React.createElement(
|
|
24190
|
-
name: "phenomenon",
|
|
24191
|
-
label: LABEL_PHENOMENON,
|
|
24192
|
-
rules: {}
|
|
24193
|
-
}, warningPhenomena.map(function (phenomenon) {
|
|
24194
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24195
|
-
key: phenomenon.key,
|
|
24196
|
-
value: phenomenon.key
|
|
24197
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24198
|
-
container: true,
|
|
24199
|
-
justifyContent: "space-between"
|
|
24200
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24201
|
-
item: true
|
|
24202
|
-
}, phenomenon.title), /*#__PURE__*/React.createElement(Grid, {
|
|
24203
|
-
item: true
|
|
24204
|
-
}, /*#__PURE__*/React.createElement(ListItemIcon, null, phenomenon.icon))));
|
|
24205
|
-
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24776
|
+
}, /*#__PURE__*/React.createElement(Phenomenon, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
24206
24777
|
item: true,
|
|
24207
24778
|
xs: 12
|
|
24208
24779
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
@@ -24213,10 +24784,7 @@ var Form = function Form(_ref5) {
|
|
|
24213
24784
|
onEditObject: function onEditObject() {},
|
|
24214
24785
|
onViewObject: function onViewObject() {},
|
|
24215
24786
|
onDeleteObject: function onDeleteObject() {},
|
|
24216
|
-
onAddObject: function onAddObject() {}
|
|
24217
|
-
id: object === null || object === void 0 ? void 0 : object.id,
|
|
24218
|
-
objectName: object === null || object === void 0 ? void 0 : object.objectName,
|
|
24219
|
-
lastUpdatedTime: object === null || object === void 0 ? void 0 : object.lastUpdatedTime
|
|
24787
|
+
onAddObject: function onAddObject() {}
|
|
24220
24788
|
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24221
24789
|
item: true,
|
|
24222
24790
|
xs: 12,
|
|
@@ -24240,48 +24808,7 @@ var Form = function Form(_ref5) {
|
|
|
24240
24808
|
rules: {},
|
|
24241
24809
|
label: LABEL_VALID_UNTIL,
|
|
24242
24810
|
format: dateFormat
|
|
24243
|
-
}))), /*#__PURE__*/React.createElement(
|
|
24244
|
-
name: "leadtime",
|
|
24245
|
-
rules: {},
|
|
24246
|
-
sx: {
|
|
24247
|
-
marginBottom: -1
|
|
24248
|
-
}
|
|
24249
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24250
|
-
item: true,
|
|
24251
|
-
xs: 12,
|
|
24252
|
-
container: true,
|
|
24253
|
-
spacing: 2
|
|
24254
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24255
|
-
item: true,
|
|
24256
|
-
xs: 6
|
|
24257
|
-
}, /*#__PURE__*/React.createElement(FormControlLabel, {
|
|
24258
|
-
sx: {
|
|
24259
|
-
padding: 1,
|
|
24260
|
-
paddingBottom: 0
|
|
24261
|
-
},
|
|
24262
|
-
control: /*#__PURE__*/React.createElement(Radio, {
|
|
24263
|
-
style: {
|
|
24264
|
-
pointerEvents: 'auto'
|
|
24265
|
-
}
|
|
24266
|
-
}),
|
|
24267
|
-
label: LABEL_CURRENT,
|
|
24268
|
-
value: LABEL_CURRENT
|
|
24269
|
-
})), /*#__PURE__*/React.createElement(Grid, {
|
|
24270
|
-
item: true,
|
|
24271
|
-
xs: 6
|
|
24272
|
-
}, /*#__PURE__*/React.createElement(FormControlLabel, {
|
|
24273
|
-
sx: {
|
|
24274
|
-
padding: 1,
|
|
24275
|
-
paddingBottom: 0
|
|
24276
|
-
},
|
|
24277
|
-
control: /*#__PURE__*/React.createElement(Radio, {
|
|
24278
|
-
style: {
|
|
24279
|
-
pointerEvents: 'auto'
|
|
24280
|
-
}
|
|
24281
|
-
}),
|
|
24282
|
-
label: LABEL_EARLY,
|
|
24283
|
-
value: LABEL_EARLY
|
|
24284
|
-
})))), /*#__PURE__*/React.createElement(Grid, {
|
|
24811
|
+
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24285
24812
|
item: true,
|
|
24286
24813
|
xs: 12,
|
|
24287
24814
|
container: true,
|
|
@@ -24290,46 +24817,7 @@ var Form = function Form(_ref5) {
|
|
|
24290
24817
|
item: true,
|
|
24291
24818
|
xs: 12,
|
|
24292
24819
|
sm: 6
|
|
24293
|
-
}, /*#__PURE__*/React.createElement(
|
|
24294
|
-
name: "level",
|
|
24295
|
-
label: LABEL_LEVEL,
|
|
24296
|
-
rules: {},
|
|
24297
|
-
sx: {
|
|
24298
|
-
'& .MuiSelect-select.MuiSelect-filled': {
|
|
24299
|
-
color: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.textColor) || 'none',
|
|
24300
|
-
backgroundColor: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.color) || 'none',
|
|
24301
|
-
backgroundClip: 'content-box'
|
|
24302
|
-
}
|
|
24303
|
-
}
|
|
24304
|
-
}, levelOptions.map(function (level) {
|
|
24305
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24306
|
-
value: level.key,
|
|
24307
|
-
key: level.key,
|
|
24308
|
-
sx: {
|
|
24309
|
-
'&.MuiMenuItem-root ': {
|
|
24310
|
-
color: level.textColor,
|
|
24311
|
-
background: level.color,
|
|
24312
|
-
backgroundClip: 'content-box',
|
|
24313
|
-
padding: '12px 8px',
|
|
24314
|
-
'&:hover': {
|
|
24315
|
-
backgroundColor: "".concat(level.color),
|
|
24316
|
-
backgroundClip: 'content-box',
|
|
24317
|
-
boxShadow: function boxShadow(theme) {
|
|
24318
|
-
return "inset -8px -12px ".concat(theme.palette.geowebColors.cards.cardContainerMouseOver, ", inset 8px 12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver);
|
|
24319
|
-
}
|
|
24320
|
-
},
|
|
24321
|
-
'&.Mui-selected': {
|
|
24322
|
-
backgroundColor: "".concat(level.color),
|
|
24323
|
-
'&:hover': {
|
|
24324
|
-
boxShadow: function boxShadow(theme) {
|
|
24325
|
-
return "inset 4px 0px 0px 0px ".concat(theme.palette.geowebColors.typographyAndIcons.iconLinkActive, ", inset -8px -12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver, ", inset 8px 12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver);
|
|
24326
|
-
}
|
|
24327
|
-
}
|
|
24328
|
-
}
|
|
24329
|
-
}
|
|
24330
|
-
}
|
|
24331
|
-
}, "\xA0", level.title);
|
|
24332
|
-
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24820
|
+
}, /*#__PURE__*/React.createElement(LevelField, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
24333
24821
|
item: true,
|
|
24334
24822
|
xs: 12,
|
|
24335
24823
|
sm: 6
|
|
@@ -24350,7 +24838,9 @@ var Form = function Form(_ref5) {
|
|
|
24350
24838
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24351
24839
|
item: true,
|
|
24352
24840
|
xs: 12
|
|
24353
|
-
}, /*#__PURE__*/React.createElement(DescriptionField, null)))))), /*#__PURE__*/React.createElement(
|
|
24841
|
+
}, /*#__PURE__*/React.createElement(DescriptionField, null))))), /*#__PURE__*/React.createElement(DraftFieldHelper, null), /*#__PURE__*/React.createElement(ReactHookFormHiddenInput, {
|
|
24842
|
+
name: "id"
|
|
24843
|
+
})), /*#__PURE__*/React.createElement(Box, {
|
|
24354
24844
|
sx: {
|
|
24355
24845
|
padding: '24px 10px 14px 10px',
|
|
24356
24846
|
position: 'absolute',
|
|
@@ -24373,7 +24863,8 @@ var Form = function Form(_ref5) {
|
|
|
24373
24863
|
width: '100%',
|
|
24374
24864
|
marginBottom: 1
|
|
24375
24865
|
},
|
|
24376
|
-
disabled: isDisabled
|
|
24866
|
+
disabled: isDisabled,
|
|
24867
|
+
onClick: onPressClear
|
|
24377
24868
|
}, BUTTON_CLEAR)), /*#__PURE__*/React.createElement(Grid, {
|
|
24378
24869
|
item: true,
|
|
24379
24870
|
xs: 12,
|
|
@@ -24384,7 +24875,8 @@ var Form = function Form(_ref5) {
|
|
|
24384
24875
|
width: '100%',
|
|
24385
24876
|
marginBottom: 1
|
|
24386
24877
|
},
|
|
24387
|
-
disabled: isDisabled
|
|
24878
|
+
disabled: isDisabled,
|
|
24879
|
+
onClick: onPressSave
|
|
24388
24880
|
}, BUTTON_SAVE)), /*#__PURE__*/React.createElement(Grid, {
|
|
24389
24881
|
item: true,
|
|
24390
24882
|
xs: 12,
|
|
@@ -24394,16 +24886,19 @@ var Form = function Form(_ref5) {
|
|
|
24394
24886
|
sx: {
|
|
24395
24887
|
width: '100%'
|
|
24396
24888
|
},
|
|
24397
|
-
disabled: isDisabled
|
|
24889
|
+
disabled: isDisabled,
|
|
24890
|
+
onClick: onPressPublish
|
|
24398
24891
|
}, BUTTON_PUBLISH))))));
|
|
24399
24892
|
};
|
|
24400
24893
|
var PublicWarningsForm = function PublicWarningsForm(props) {
|
|
24401
24894
|
var object = props.object,
|
|
24402
24895
|
publicWarningDetails = props.publicWarningDetails;
|
|
24403
|
-
var publicWarningFormData = publicWarningDetails
|
|
24896
|
+
var publicWarningFormData = getFormData(publicWarningDetails, object);
|
|
24404
24897
|
return /*#__PURE__*/React.createElement(ReactHookFormProvider, {
|
|
24405
24898
|
options: Object.assign(Object.assign({}, defaultFormOptions), {
|
|
24406
|
-
defaultValues: publicWarningFormData
|
|
24899
|
+
defaultValues: Object.assign(Object.assign({}, publicWarningFormData), {
|
|
24900
|
+
object: object
|
|
24901
|
+
})
|
|
24407
24902
|
})
|
|
24408
24903
|
}, /*#__PURE__*/React.createElement(Form, Object.assign({}, props)));
|
|
24409
24904
|
};
|
|
@@ -24455,7 +24950,6 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect() {
|
|
|
24455
24950
|
return getPublicWarningObject(store);
|
|
24456
24951
|
});
|
|
24457
24952
|
return /*#__PURE__*/React.createElement(PublicWarningsForm, {
|
|
24458
|
-
isDisabled: true,
|
|
24459
24953
|
object: publicWarningObject
|
|
24460
24954
|
});
|
|
24461
24955
|
};
|
|
@@ -24476,7 +24970,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect() {
|
|
|
24476
24970
|
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
24477
24971
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
24478
24972
|
* */
|
|
24479
|
-
var
|
|
24973
|
+
var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_ref) {
|
|
24480
24974
|
var bounds = _ref.bounds,
|
|
24481
24975
|
_ref$source = _ref.source,
|
|
24482
24976
|
source = _ref$source === void 0 ? 'app' : _ref$source,
|
|
@@ -24490,7 +24984,7 @@ var PublicWarningsConnect = function PublicWarningsConnect(_ref) {
|
|
|
24490
24984
|
if (!isDialogOpen) {
|
|
24491
24985
|
return null;
|
|
24492
24986
|
}
|
|
24493
|
-
return /*#__PURE__*/React__default.createElement(
|
|
24987
|
+
return /*#__PURE__*/React__default.createElement(PublicWarningsFormDialog, {
|
|
24494
24988
|
isOpen: isDialogOpen,
|
|
24495
24989
|
onClose: onCloseDialog,
|
|
24496
24990
|
order: dialogOrder,
|
|
@@ -25074,4 +25568,4 @@ var drawingModuleConfig = {
|
|
|
25074
25568
|
sagas: [drawingSaga]
|
|
25075
25569
|
};
|
|
25076
25570
|
|
|
25077
|
-
export { DIALOG_TITLE, DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect,
|
|
25571
|
+
export { DIALOG_TITLE, DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WarningsModuleProvider, drawingModuleConfig, useObjectDrawDialogAction };
|