@opengeoweb/warnings 9.0.0 → 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 +864 -374
- package/package.json +1 -1
- 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,
|
|
4
|
+
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, Wind, Fog, Lightning, Snow, Rain, TemperatureHigh, FunnelCloud, TemperatureLow, CoastalEvent, breakpoints } from '@opengeoweb/theme';
|
|
5
5
|
import { uiActions, uiTypes, getSingularDrawtoolDrawLayerId, drawtoolSelectors, layerSelectors, uiSelectors, mapStoreActions, drawtoolActions, layerActions, useSetupDialog } from '@opengeoweb/store';
|
|
6
6
|
import { emptyGeoJSON, MapControlButton, getGeoJSONPropertyValue, getIcon, rewindGeometry, currentlySupportedDrawModes } from '@opengeoweb/webmap-react';
|
|
7
7
|
import { snackbarActions } from '@opengeoweb/snackbar';
|
|
8
|
-
import { dateUtils, ToggleMenu,
|
|
9
|
-
import { Box, Typography, ListItem, Paper, ListItemButton, Stack, LinearProgress, Button,
|
|
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,
|
|
@@ -23766,7 +24166,7 @@ var DEFAULT_WARNING_DIALOG_MIN_SIZE = {
|
|
|
23766
24166
|
height: 300
|
|
23767
24167
|
};
|
|
23768
24168
|
var DIALOG_TITLE = 'Public Warning';
|
|
23769
|
-
var
|
|
24169
|
+
var PublicWarningsFormDialog = function PublicWarningsFormDialog(_ref) {
|
|
23770
24170
|
var bounds = _ref.bounds,
|
|
23771
24171
|
onClose = _ref.onClose,
|
|
23772
24172
|
_ref$title = _ref.title,
|
|
@@ -23967,7 +24367,7 @@ var BUTTON_DELETE = 'Delete';
|
|
|
23967
24367
|
var BUTTON_VIEW = 'View';
|
|
23968
24368
|
var BUTTON_EDIT = 'Edit';
|
|
23969
24369
|
var OBJECTS_MENU = 'Object options';
|
|
23970
|
-
var NO_OBJECT = '
|
|
24370
|
+
var NO_OBJECT = '(no object selected)';
|
|
23971
24371
|
var formatDate = function formatDate(lastUpdatedTime) {
|
|
23972
24372
|
return dateUtils.dateToString(dateUtils.isoStringToDate(lastUpdatedTime), "".concat(DATE_FORMAT, " 'UTC'"));
|
|
23973
24373
|
};
|
|
@@ -23981,24 +24381,34 @@ var AreaField = function AreaField(_ref) {
|
|
|
23981
24381
|
_ref$onAddObject = _ref.onAddObject,
|
|
23982
24382
|
onAddObject = _ref$onAddObject === void 0 ? function () {} : _ref$onAddObject,
|
|
23983
24383
|
_ref$isDisabled = _ref.isDisabled,
|
|
23984
|
-
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled
|
|
23985
|
-
|
|
23986
|
-
|
|
23987
|
-
|
|
23988
|
-
|
|
23989
|
-
|
|
23990
|
-
|
|
23991
|
-
|
|
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({
|
|
23992
24395
|
variant: "h3",
|
|
23993
24396
|
color: "text.secondary",
|
|
23994
|
-
sx: {
|
|
24397
|
+
sx: Object.assign({
|
|
23995
24398
|
fontSize: '0.75rem',
|
|
23996
24399
|
fontWeight: 'normal',
|
|
23997
24400
|
lineHeight: 1.83,
|
|
23998
24401
|
paddingLeft: 1.5
|
|
23999
|
-
}
|
|
24000
|
-
|
|
24001
|
-
|
|
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
|
+
})
|
|
24002
24412
|
}, /*#__PURE__*/React__default.createElement(CardContent, {
|
|
24003
24413
|
sx: {
|
|
24004
24414
|
position: 'relative',
|
|
@@ -24019,7 +24429,7 @@ var AreaField = function AreaField(_ref) {
|
|
|
24019
24429
|
}, objectName), /*#__PURE__*/React__default.createElement(Typography, {
|
|
24020
24430
|
variant: "body2",
|
|
24021
24431
|
color: "text.secondary"
|
|
24022
|
-
}, lastUpdatedTime ? formatDate(lastUpdatedTime) : ''),
|
|
24432
|
+
}, lastUpdatedTime ? formatDate(lastUpdatedTime) : ''), hasObject ? /*#__PURE__*/React__default.createElement(ToggleMenu, {
|
|
24023
24433
|
menuTitle: OBJECTS_MENU,
|
|
24024
24434
|
tooltipTitle: OBJECTS_MENU,
|
|
24025
24435
|
buttonSx: {
|
|
@@ -24046,7 +24456,12 @@ var AreaField = function AreaField(_ref) {
|
|
|
24046
24456
|
icon: /*#__PURE__*/React__default.createElement(Delete, null)
|
|
24047
24457
|
}]
|
|
24048
24458
|
}) : null)), /*#__PURE__*/React__default.createElement(ReactHookFormHiddenInput, {
|
|
24049
|
-
|
|
24459
|
+
rules: {
|
|
24460
|
+
validate: {
|
|
24461
|
+
isRequired: isRequired
|
|
24462
|
+
}
|
|
24463
|
+
},
|
|
24464
|
+
name: "geoJSON"
|
|
24050
24465
|
}), /*#__PURE__*/React__default.createElement(Button, {
|
|
24051
24466
|
sx: {
|
|
24052
24467
|
marginTop: 1
|
|
@@ -24059,86 +24474,207 @@ var AreaField = function AreaField(_ref) {
|
|
|
24059
24474
|
}, BUTTON_ADD_OBJECT));
|
|
24060
24475
|
};
|
|
24061
24476
|
|
|
24062
|
-
|
|
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() {
|
|
24063
24646
|
var currentTime = new Date();
|
|
24064
24647
|
var validToTime = dateUtils.add(currentTime, {
|
|
24065
24648
|
hours: 6
|
|
24066
24649
|
});
|
|
24067
24650
|
return {
|
|
24651
|
+
id: '',
|
|
24068
24652
|
phenomenon: '',
|
|
24069
24653
|
validFrom: dateUtils.dateToString(currentTime, DATE_FORMAT_UTC, true),
|
|
24070
24654
|
validUntil: dateUtils.dateToString(validToTime, DATE_FORMAT_UTC, true),
|
|
24071
|
-
leadtime: LABEL_CURRENT,
|
|
24072
24655
|
level: '',
|
|
24073
24656
|
probability: 30,
|
|
24074
24657
|
descriptionOriginal: '',
|
|
24075
24658
|
descriptionTranslation: '',
|
|
24076
|
-
|
|
24659
|
+
geoJSON: null
|
|
24077
24660
|
};
|
|
24078
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
|
+
};
|
|
24079
24668
|
// tablet breakpoint - 2 padding * 2 for both sides
|
|
24080
24669
|
var containerQueryBreakpoint = "@container (min-width: ".concat(breakpoints.tablet - 32, "px)");
|
|
24081
|
-
var LABEL_PHENOMENON = 'Phenomenon';
|
|
24082
24670
|
var LABEL_VALID_FROM = 'Valid from';
|
|
24083
24671
|
var LABEL_VALID_UNTIL = 'Valid until';
|
|
24084
|
-
var LABEL_CURRENT = 'Current';
|
|
24085
|
-
var LABEL_EARLY = 'Early';
|
|
24086
|
-
var LABEL_LEVEL = 'Level';
|
|
24087
24672
|
var LABEL_PROBABILITY = 'Probability';
|
|
24088
24673
|
var BUTTON_CLEAR = 'Clear';
|
|
24089
24674
|
var BUTTON_SAVE = 'Save';
|
|
24090
24675
|
var BUTTON_PUBLISH = 'Publish';
|
|
24091
24676
|
var dateFormat = 'DD/MM/YYYY HH:mm';
|
|
24092
24677
|
var probablityOptions = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0];
|
|
24093
|
-
var levelOptions = [{
|
|
24094
|
-
title: 'Moderate',
|
|
24095
|
-
key: 'moderate',
|
|
24096
|
-
color: '#FAE21E',
|
|
24097
|
-
textColor: '#051039'
|
|
24098
|
-
}, {
|
|
24099
|
-
title: 'Severe',
|
|
24100
|
-
key: 'severe',
|
|
24101
|
-
color: '#E27000',
|
|
24102
|
-
textColor: '#051039'
|
|
24103
|
-
}, {
|
|
24104
|
-
title: 'Extreme',
|
|
24105
|
-
key: 'extreme',
|
|
24106
|
-
color: '#D62A20',
|
|
24107
|
-
textColor: '#ffffff'
|
|
24108
|
-
}];
|
|
24109
|
-
var warningPhenomena = [{
|
|
24110
|
-
title: 'Coastal event',
|
|
24111
|
-
key: 'coastalEvent',
|
|
24112
|
-
icon: /*#__PURE__*/React.createElement(CoastalEvent, null)
|
|
24113
|
-
}, {
|
|
24114
|
-
title: 'Fog',
|
|
24115
|
-
key: 'fog',
|
|
24116
|
-
icon: /*#__PURE__*/React.createElement(Fog, null)
|
|
24117
|
-
}, {
|
|
24118
|
-
title: 'High temperature',
|
|
24119
|
-
key: 'highTemp',
|
|
24120
|
-
icon: /*#__PURE__*/React.createElement(TemperatureHigh, null)
|
|
24121
|
-
}, {
|
|
24122
|
-
title: 'Low temperature',
|
|
24123
|
-
key: 'lowTemp',
|
|
24124
|
-
icon: /*#__PURE__*/React.createElement(TemperatureLow, null)
|
|
24125
|
-
}, {
|
|
24126
|
-
title: 'Rain',
|
|
24127
|
-
key: 'rain',
|
|
24128
|
-
icon: /*#__PURE__*/React.createElement(Rain, null)
|
|
24129
|
-
}, {
|
|
24130
|
-
title: 'Snow/ice',
|
|
24131
|
-
key: 'snowIce',
|
|
24132
|
-
icon: /*#__PURE__*/React.createElement(Snow, null)
|
|
24133
|
-
}, {
|
|
24134
|
-
title: 'Thunderstorm',
|
|
24135
|
-
key: 'thunderstorm',
|
|
24136
|
-
icon: /*#__PURE__*/React.createElement(Lightning, null)
|
|
24137
|
-
}, {
|
|
24138
|
-
title: 'Wind',
|
|
24139
|
-
key: 'wind',
|
|
24140
|
-
icon: /*#__PURE__*/React.createElement(Wind, null)
|
|
24141
|
-
}];
|
|
24142
24678
|
var ContainerWrapper = styled('div')(function () {
|
|
24143
24679
|
return {
|
|
24144
24680
|
containerType: 'size',
|
|
@@ -24174,39 +24710,70 @@ var ContainerGrid = styled('div')(function (_ref3) {
|
|
|
24174
24710
|
}
|
|
24175
24711
|
});
|
|
24176
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
|
+
};
|
|
24177
24720
|
var Form = function Form(_ref5) {
|
|
24178
24721
|
var _ref5$isDisabled = _ref5.isDisabled,
|
|
24179
24722
|
isDisabled = _ref5$isDisabled === void 0 ? false : _ref5$isDisabled,
|
|
24180
|
-
|
|
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;
|
|
24181
24727
|
var _useFormContext = useFormContext(),
|
|
24182
|
-
|
|
24183
|
-
|
|
24184
|
-
var
|
|
24185
|
-
|
|
24186
|
-
|
|
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
|
+
};
|
|
24187
24770
|
return /*#__PURE__*/React.createElement(ContainerWrapper, null, /*#__PURE__*/React.createElement(ContainerFormWrapper, null, /*#__PURE__*/React.createElement(ContainerGrid, null, /*#__PURE__*/React.createElement(Grid, {
|
|
24188
24771
|
container: true,
|
|
24189
24772
|
rowSpacing: 2
|
|
24190
24773
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24191
24774
|
item: true,
|
|
24192
24775
|
xs: 12
|
|
24193
|
-
}, /*#__PURE__*/React.createElement(
|
|
24194
|
-
name: "phenomenon",
|
|
24195
|
-
label: LABEL_PHENOMENON,
|
|
24196
|
-
rules: {}
|
|
24197
|
-
}, warningPhenomena.map(function (phenomenon) {
|
|
24198
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24199
|
-
key: phenomenon.key,
|
|
24200
|
-
value: phenomenon.key
|
|
24201
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24202
|
-
container: true,
|
|
24203
|
-
justifyContent: "space-between"
|
|
24204
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24205
|
-
item: true
|
|
24206
|
-
}, phenomenon.title), /*#__PURE__*/React.createElement(Grid, {
|
|
24207
|
-
item: true
|
|
24208
|
-
}, /*#__PURE__*/React.createElement(ListItemIcon, null, phenomenon.icon))));
|
|
24209
|
-
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24776
|
+
}, /*#__PURE__*/React.createElement(Phenomenon, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
24210
24777
|
item: true,
|
|
24211
24778
|
xs: 12
|
|
24212
24779
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
@@ -24217,10 +24784,7 @@ var Form = function Form(_ref5) {
|
|
|
24217
24784
|
onEditObject: function onEditObject() {},
|
|
24218
24785
|
onViewObject: function onViewObject() {},
|
|
24219
24786
|
onDeleteObject: function onDeleteObject() {},
|
|
24220
|
-
onAddObject: function onAddObject() {}
|
|
24221
|
-
id: object === null || object === void 0 ? void 0 : object.id,
|
|
24222
|
-
objectName: object === null || object === void 0 ? void 0 : object.objectName,
|
|
24223
|
-
lastUpdatedTime: object === null || object === void 0 ? void 0 : object.lastUpdatedTime
|
|
24787
|
+
onAddObject: function onAddObject() {}
|
|
24224
24788
|
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24225
24789
|
item: true,
|
|
24226
24790
|
xs: 12,
|
|
@@ -24244,48 +24808,7 @@ var Form = function Form(_ref5) {
|
|
|
24244
24808
|
rules: {},
|
|
24245
24809
|
label: LABEL_VALID_UNTIL,
|
|
24246
24810
|
format: dateFormat
|
|
24247
|
-
}))), /*#__PURE__*/React.createElement(
|
|
24248
|
-
name: "leadtime",
|
|
24249
|
-
rules: {},
|
|
24250
|
-
sx: {
|
|
24251
|
-
marginBottom: -1
|
|
24252
|
-
}
|
|
24253
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24254
|
-
item: true,
|
|
24255
|
-
xs: 12,
|
|
24256
|
-
container: true,
|
|
24257
|
-
spacing: 2
|
|
24258
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24259
|
-
item: true,
|
|
24260
|
-
xs: 6
|
|
24261
|
-
}, /*#__PURE__*/React.createElement(FormControlLabel, {
|
|
24262
|
-
sx: {
|
|
24263
|
-
padding: 1,
|
|
24264
|
-
paddingBottom: 0
|
|
24265
|
-
},
|
|
24266
|
-
control: /*#__PURE__*/React.createElement(Radio, {
|
|
24267
|
-
style: {
|
|
24268
|
-
pointerEvents: 'auto'
|
|
24269
|
-
}
|
|
24270
|
-
}),
|
|
24271
|
-
label: LABEL_CURRENT,
|
|
24272
|
-
value: LABEL_CURRENT
|
|
24273
|
-
})), /*#__PURE__*/React.createElement(Grid, {
|
|
24274
|
-
item: true,
|
|
24275
|
-
xs: 6
|
|
24276
|
-
}, /*#__PURE__*/React.createElement(FormControlLabel, {
|
|
24277
|
-
sx: {
|
|
24278
|
-
padding: 1,
|
|
24279
|
-
paddingBottom: 0
|
|
24280
|
-
},
|
|
24281
|
-
control: /*#__PURE__*/React.createElement(Radio, {
|
|
24282
|
-
style: {
|
|
24283
|
-
pointerEvents: 'auto'
|
|
24284
|
-
}
|
|
24285
|
-
}),
|
|
24286
|
-
label: LABEL_EARLY,
|
|
24287
|
-
value: LABEL_EARLY
|
|
24288
|
-
})))), /*#__PURE__*/React.createElement(Grid, {
|
|
24811
|
+
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24289
24812
|
item: true,
|
|
24290
24813
|
xs: 12,
|
|
24291
24814
|
container: true,
|
|
@@ -24294,46 +24817,7 @@ var Form = function Form(_ref5) {
|
|
|
24294
24817
|
item: true,
|
|
24295
24818
|
xs: 12,
|
|
24296
24819
|
sm: 6
|
|
24297
|
-
}, /*#__PURE__*/React.createElement(
|
|
24298
|
-
name: "level",
|
|
24299
|
-
label: LABEL_LEVEL,
|
|
24300
|
-
rules: {},
|
|
24301
|
-
sx: {
|
|
24302
|
-
'& .MuiSelect-select.MuiSelect-filled': {
|
|
24303
|
-
color: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.textColor) || 'none',
|
|
24304
|
-
backgroundColor: (levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.color) || 'none',
|
|
24305
|
-
backgroundClip: 'content-box'
|
|
24306
|
-
}
|
|
24307
|
-
}
|
|
24308
|
-
}, levelOptions.map(function (level) {
|
|
24309
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
24310
|
-
value: level.key,
|
|
24311
|
-
key: level.key,
|
|
24312
|
-
sx: {
|
|
24313
|
-
'&.MuiMenuItem-root ': {
|
|
24314
|
-
color: level.textColor,
|
|
24315
|
-
background: level.color,
|
|
24316
|
-
backgroundClip: 'content-box',
|
|
24317
|
-
padding: '12px 8px',
|
|
24318
|
-
'&:hover': {
|
|
24319
|
-
backgroundColor: "".concat(level.color),
|
|
24320
|
-
backgroundClip: 'content-box',
|
|
24321
|
-
boxShadow: function boxShadow(theme) {
|
|
24322
|
-
return "inset -8px -12px ".concat(theme.palette.geowebColors.cards.cardContainerMouseOver, ", inset 8px 12px ").concat(theme.palette.geowebColors.cards.cardContainerMouseOver);
|
|
24323
|
-
}
|
|
24324
|
-
},
|
|
24325
|
-
'&.Mui-selected': {
|
|
24326
|
-
backgroundColor: "".concat(level.color),
|
|
24327
|
-
'&:hover': {
|
|
24328
|
-
boxShadow: function boxShadow(theme) {
|
|
24329
|
-
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);
|
|
24330
|
-
}
|
|
24331
|
-
}
|
|
24332
|
-
}
|
|
24333
|
-
}
|
|
24334
|
-
}
|
|
24335
|
-
}, "\xA0", level.title);
|
|
24336
|
-
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
24820
|
+
}, /*#__PURE__*/React.createElement(LevelField, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
24337
24821
|
item: true,
|
|
24338
24822
|
xs: 12,
|
|
24339
24823
|
sm: 6
|
|
@@ -24354,7 +24838,9 @@ var Form = function Form(_ref5) {
|
|
|
24354
24838
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24355
24839
|
item: true,
|
|
24356
24840
|
xs: 12
|
|
24357
|
-
}, /*#__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, {
|
|
24358
24844
|
sx: {
|
|
24359
24845
|
padding: '24px 10px 14px 10px',
|
|
24360
24846
|
position: 'absolute',
|
|
@@ -24377,7 +24863,8 @@ var Form = function Form(_ref5) {
|
|
|
24377
24863
|
width: '100%',
|
|
24378
24864
|
marginBottom: 1
|
|
24379
24865
|
},
|
|
24380
|
-
disabled: isDisabled
|
|
24866
|
+
disabled: isDisabled,
|
|
24867
|
+
onClick: onPressClear
|
|
24381
24868
|
}, BUTTON_CLEAR)), /*#__PURE__*/React.createElement(Grid, {
|
|
24382
24869
|
item: true,
|
|
24383
24870
|
xs: 12,
|
|
@@ -24388,7 +24875,8 @@ var Form = function Form(_ref5) {
|
|
|
24388
24875
|
width: '100%',
|
|
24389
24876
|
marginBottom: 1
|
|
24390
24877
|
},
|
|
24391
|
-
disabled: isDisabled
|
|
24878
|
+
disabled: isDisabled,
|
|
24879
|
+
onClick: onPressSave
|
|
24392
24880
|
}, BUTTON_SAVE)), /*#__PURE__*/React.createElement(Grid, {
|
|
24393
24881
|
item: true,
|
|
24394
24882
|
xs: 12,
|
|
@@ -24398,16 +24886,19 @@ var Form = function Form(_ref5) {
|
|
|
24398
24886
|
sx: {
|
|
24399
24887
|
width: '100%'
|
|
24400
24888
|
},
|
|
24401
|
-
disabled: isDisabled
|
|
24889
|
+
disabled: isDisabled,
|
|
24890
|
+
onClick: onPressPublish
|
|
24402
24891
|
}, BUTTON_PUBLISH))))));
|
|
24403
24892
|
};
|
|
24404
24893
|
var PublicWarningsForm = function PublicWarningsForm(props) {
|
|
24405
24894
|
var object = props.object,
|
|
24406
24895
|
publicWarningDetails = props.publicWarningDetails;
|
|
24407
|
-
var publicWarningFormData = publicWarningDetails
|
|
24896
|
+
var publicWarningFormData = getFormData(publicWarningDetails, object);
|
|
24408
24897
|
return /*#__PURE__*/React.createElement(ReactHookFormProvider, {
|
|
24409
24898
|
options: Object.assign(Object.assign({}, defaultFormOptions), {
|
|
24410
|
-
defaultValues: publicWarningFormData
|
|
24899
|
+
defaultValues: Object.assign(Object.assign({}, publicWarningFormData), {
|
|
24900
|
+
object: object
|
|
24901
|
+
})
|
|
24411
24902
|
})
|
|
24412
24903
|
}, /*#__PURE__*/React.createElement(Form, Object.assign({}, props)));
|
|
24413
24904
|
};
|
|
@@ -24459,7 +24950,6 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect() {
|
|
|
24459
24950
|
return getPublicWarningObject(store);
|
|
24460
24951
|
});
|
|
24461
24952
|
return /*#__PURE__*/React.createElement(PublicWarningsForm, {
|
|
24462
|
-
isDisabled: true,
|
|
24463
24953
|
object: publicWarningObject
|
|
24464
24954
|
});
|
|
24465
24955
|
};
|
|
@@ -24480,7 +24970,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect() {
|
|
|
24480
24970
|
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
24481
24971
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
24482
24972
|
* */
|
|
24483
|
-
var
|
|
24973
|
+
var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_ref) {
|
|
24484
24974
|
var bounds = _ref.bounds,
|
|
24485
24975
|
_ref$source = _ref.source,
|
|
24486
24976
|
source = _ref$source === void 0 ? 'app' : _ref$source,
|
|
@@ -24494,7 +24984,7 @@ var PublicWarningsConnect = function PublicWarningsConnect(_ref) {
|
|
|
24494
24984
|
if (!isDialogOpen) {
|
|
24495
24985
|
return null;
|
|
24496
24986
|
}
|
|
24497
|
-
return /*#__PURE__*/React__default.createElement(
|
|
24987
|
+
return /*#__PURE__*/React__default.createElement(PublicWarningsFormDialog, {
|
|
24498
24988
|
isOpen: isDialogOpen,
|
|
24499
24989
|
onClose: onCloseDialog,
|
|
24500
24990
|
order: dialogOrder,
|
|
@@ -25078,4 +25568,4 @@ var drawingModuleConfig = {
|
|
|
25078
25568
|
sagas: [drawingSaga]
|
|
25079
25569
|
};
|
|
25080
25570
|
|
|
25081
|
-
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 };
|