@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.
Files changed (20) hide show
  1. package/index.esm.js +864 -374
  2. package/package.json +1 -1
  3. package/src/index.d.ts +1 -1
  4. package/src/lib/components/ObjectManager/ObjectManager.stories.d.ts +4 -0
  5. package/src/lib/components/PublicWarningsForm/AreaField.d.ts +1 -4
  6. package/src/lib/components/PublicWarningsForm/LevelField.d.ts +9 -0
  7. package/src/lib/components/PublicWarningsForm/Phenomenon.d.ts +8 -0
  8. package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +9 -13
  9. package/src/lib/components/{PublicWarnings/PublicWarnings.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.d.ts} +1 -1
  10. package/src/lib/components/{PublicWarnings/PublicWarnings.stories.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.stories.d.ts} +3 -3
  11. package/src/lib/components/{PublicWarnings/PublicWarningsConnect.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialogConnect.d.ts} +1 -1
  12. package/src/lib/components/PublicWarningsFormDialog/index.d.ts +2 -0
  13. package/src/lib/store/drawings/types.d.ts +0 -11
  14. package/src/lib/store/publicWarningForm/reducer.d.ts +5 -3
  15. package/src/lib/store/publicWarningForm/selectors.d.ts +1 -1
  16. package/src/lib/store/publicWarningForm/types.d.ts +15 -0
  17. package/src/lib/components/PublicWarnings/index.d.ts +0 -2
  18. /package/src/lib/components/{PublicWarnings/PublicWarnings.spec.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialog.spec.d.ts} +0 -0
  19. /package/src/lib/components/{PublicWarnings/PublicWarningsConnect.spec.d.ts → PublicWarningsFormDialog/PublicWarningsFormDialogConnect.spec.d.ts} +0 -0
  20. /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, breakpoints, CoastalEvent, Fog, TemperatureHigh, TemperatureLow, Rain, Snow, Lightning, Wind } from '@opengeoweb/theme';
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, getHeight, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, CustomIconButton, SwitchButton, isAxiosError } from '@opengeoweb/shared';
9
- import { Box, Typography, ListItem, Paper, ListItemButton, Stack, LinearProgress, Button, Grid, FormHelperText, MenuItem, Tabs, Tab, FormControl, Card, CardContent, styled, ListItemIcon, FormControlLabel, Radio } from '@mui/material';
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, ReactHookFormDateTime, ReactHookFormRadioGroup } from '@opengeoweb/form-fields';
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 HEADER_ITEM_SIZE = 23;
4191
- var MIN_HEIGHT_SCROLLABLE_LIST = 90; // Slightly less than 2 rows
4192
- var useGetRequiredHeights = function useGetRequiredHeights() {
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 Objects = function Objects(_ref) {
4268
- var objects = _ref.objects,
4269
- onClickObject = _ref.onClickObject,
4270
- onClickEdit = _ref.onClickEdit,
4271
- onClickDelete = _ref.onClickDelete,
4272
- onClickShare = _ref.onClickShare,
4273
- activeObject = _ref.activeObject,
4274
- _ref$isLoading = _ref.isLoading,
4275
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading;
4276
- // Used to store the height of the list dialog content
4277
- var _useGetRequiredHeight = useGetRequiredHeights(),
4278
- listRef = _useGetRequiredHeight.listRef,
4279
- listHeight = _useGetRequiredHeight.listHeight;
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(Box, {
4291
- ref: listRef,
4292
- sx: {
4293
- paddingTop: 0.75
4294
- }
4295
- }, !isLoading && objects.length === 0 ? /*#__PURE__*/React__default.createElement(Typography, {
4296
- sx: {
4297
- paddingLeft: '16px',
4298
- paddingTop: '8px'
4299
- },
4300
- variant: "body1"
4301
- }, NO_OBJECTS_FOUND) : /*#__PURE__*/React__default.createElement(VariableSizeList, {
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
- padding: 1,
4396
- height: '44px'
4669
+ width: width
4397
4670
  }
4398
- }, /*#__PURE__*/React__default.createElement(Stack, null, /*#__PURE__*/React__default.createElement(Typography, {
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
- opacity: 0.67
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
- }, object.scope === 'global' && 'Global: ', dateUtils.dateToString(objectDate, DATE_FORMAT, true), ' ', "UTC")))));
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: 200,
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 PublicWarnings = function PublicWarnings(_ref) {
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 = 'No object selected';
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
- _ref$id = _ref.id,
23986
- id = _ref$id === void 0 ? '' : _ref$id,
23987
- _ref$lastUpdatedTime = _ref.lastUpdatedTime,
23988
- lastUpdatedTime = _ref$lastUpdatedTime === void 0 ? '' : _ref$lastUpdatedTime,
23989
- _ref$objectName = _ref.objectName,
23990
- objectName = _ref$objectName === void 0 ? NO_OBJECT : _ref$objectName;
23991
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography, {
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
- }, LABEL_AREA), /*#__PURE__*/React__default.createElement(Card, {
24001
- elevation: 0
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) : ''), id ? /*#__PURE__*/React__default.createElement(ToggleMenu, {
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
- name: "objectId"
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
- var getEmptyPublicWarning = function getEmptyPublicWarning(object) {
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
- objectId: (object === null || object === void 0 ? void 0 : object.id) || ''
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
- object = _ref5.object;
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
- watch = _useFormContext.watch;
24183
- var selectedLevel = watch('level');
24184
- var levelDetails = levelOptions.find(function (level) {
24185
- return level.key === selectedLevel;
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(ReactHookFormSelect, {
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(ReactHookFormRadioGroup, {
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(ReactHookFormSelect, {
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(Box, {
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 || getEmptyPublicWarning(object);
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 PublicWarningsConnect = function PublicWarningsConnect(_ref) {
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(PublicWarnings, {
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, PublicWarnings, PublicWarningsConnect, WarningsModuleProvider, drawingModuleConfig, useObjectDrawDialogAction };
25571
+ export { DIALOG_TITLE, DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WarningsModuleProvider, drawingModuleConfig, useObjectDrawDialogAction };