@opengeoweb/workspace 4.22.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,18 +1,19 @@
1
- import { SyncGroups, syncGroupActions, layerActions, mapActions, uiActions, mapTypes, genericSelectors, routerActions, snackbarActions, mapSelectors, SnackbarWrapperConnect, coreModuleConfig, syncGroupsSelectors, uiSelectors } from '@opengeoweb/core';
1
+ import { SyncGroups, syncGroupActions, layerActions, mapActions, uiActions, mapTypes, mapEnums, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, snackbarActions, SnackbarWrapperConnect, coreModuleConfig, uiSelectors } from '@opengeoweb/core';
2
2
  import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext } from '@opengeoweb/api';
3
3
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, MosaicWithoutDragDropContext } from 'react-mosaic-component';
4
+ import { isAxiosError, getAxiosErrorMessage, withEggs, useConfirmationDialog, CustomIconButton, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, ToolContainer, CustomToggleButton, ConfirmationServiceProvider, ConfirmationDialog } from '@opengeoweb/shared';
4
5
  import * as React from 'react';
5
6
  import React__default, { createContext, useContext, useDebugValue, useLayoutEffect, useEffect, useMemo, memo, useRef, useCallback, forwardRef, createElement, Fragment } from 'react';
6
7
  import { ThemeWrapper, lightTheme, Menu, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, WebAssetOff, Clear, Search } from '@opengeoweb/theme';
7
8
  import { unstable_batchedUpdates } from 'react-dom';
8
- import { withEggs, useConfirmationDialog, CustomIconButton, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, ToolContainer, CustomToggleButton, ConfirmationServiceProvider, ConfirmationDialog, isAxiosError, getAxiosErrorMessage } from '@opengeoweb/shared';
9
9
  import { timeSeriesModuleConfig } from '@opengeoweb/timeseries';
10
+ import { AuthenticationProvider, useAuthenticationContext } from '@opengeoweb/authentication';
10
11
  import { jsx } from 'react/jsx-runtime';
11
12
  import { useTheme as useTheme$2, LinearProgress, Typography, ListItem, ListItemButton, ListItemIcon, ListItemText, Grid, Box as Box$2, List, Backdrop, Menu as Menu$1, ListSubheader, MenuItem, Chip, Stack, debounce as debounce$1, TextField, InputAdornment, Tabs } from '@mui/material';
12
13
  import 'react-mosaic-component/react-mosaic-component.css';
13
14
  import { ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
14
15
 
15
- function n$5(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if("production"!==process.env.NODE_ENV){var i=Y[n],o=i?"function"==typeof i?i.apply(null,t):i:"unknown error nr: "+n;throw Error("[Immer] "+o)}throw Error("[Immer] minified error nr: "+n+(t.length?" "+t.map((function(n){return "'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function r$5(n){return !!n&&!!n[Q]}function t$5(n){return !!n&&(function(n){if(!n||"object"!=typeof n)return !1;var r=Object.getPrototypeOf(n);if(null===r)return !0;var t=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return t===Object||"function"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v$4(n))}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&"symbol"==typeof e||r(e,n[e],n);})):n.forEach((function(t,e){return r(e,t,n)}));}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v$4(n)?3:0}function u$3(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f$3(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t;}function c$3(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v$4(n){return q$5&&n instanceof Set}function p$5(n){return n.o||n.t}function l$4(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]});}return Object.create(Object.getPrototypeOf(n),r)}function d$3(n,e){return void 0===e&&(e=!1),y$2(n)||r$5(n)||!t$5(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h$5),Object.freeze(n),e&&i(n,(function(n,r){return d$3(r,!0)}),!0),n)}function h$5(){n$5(2);}function y$2(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b$3(r){var t=tn[r];return t||n$5(18,r),t}function m$4(n,r){tn[n]||(tn[n]=r);}function _(){return "production"===process.env.NODE_ENV||U||n$5(0),U}function j(n,r){r&&(b$3("Patches"),n.u=[],n.s=[],n.v=r);}function O(n){g$3(n),n.p.forEach(S),n.p=null;}function g$3(n){n===U&&(U=n.l);}function w$3(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0;}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b$3("ES5").S(e,r,o),o?(i[Q].P&&(O(e),n$5(4)),t$5(r)&&(r=M(e,r),e.l||x$2(e,r)),e.u&&b$3("Patches").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y$2(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A$2(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x$2(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l$4(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A$2(n,e,o,r,i,t)})),x$2(n,o,!1),t&&n.u&&b$3("Patches").R(e,t,n.u,n.s);}return e.o}function A$2(e,i,o,a,c,s){if("production"!==process.env.NODE_ENV&&c===o&&n$5(5),r$5(c)){var v=M(e,c,s&&i&&3!==i.i&&!u$3(i.D,a)?s.concat(a):void 0);if(f$3(o,a,v),!r$5(v))return;e.m=!1;}if(t$5(c)&&!y$2(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x$2(e,c);}}function x$2(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d$3(r,t);}function z$2(n,r){var t=n[Q];return (t?p$5(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t);}}function k$4(n){n.P||(n.P=!0,n.l&&k$4(n.l));}function E(n){n.o||(n.o=l$4(n.t));}function R(n,r,t){var e=s(r)?b$3("MapSet").N(r,t):v$4(r)?b$3("MapSet").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b$3("ES5").J(r,t);return (t?t.A:_()).p.push(e),e}function D(e){return r$5(e)||n$5(22,e),function n(r){if(!t$5(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b$3("ES5").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1;}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f$3(e,r,n(t));})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l$4(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return "production"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];"production"!==process.env.NODE_ENV&&f(t),en.set(t,n,r);}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k$4(t);break;case 4:o(t)&&k$4(t);}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u$3(r,o))return !0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c$3(f,a))return !0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return !0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return !0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return !0;return !1}function f(r){r.O&&n$5(3,JSON.stringify(p$5(r)));}var s={};m$4("ES5",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,""+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable);}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r$5(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&"object"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u$3(e,r)?f[r]||n(o[r]):(f[r]=!0,k$4(t)));})),i(e,(function(n){void 0!==o[n]||u$3(o,n)||(f[n]=!1,k$4(t));}));else if(5===c){if(a(t)&&(k$4(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l]);}}}}(n.p[0]),e(n.p));},K:function(n){return 4===n.i?o(n):a(n)}});}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q$5="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return "Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return "Unsupported patch operation: "+n},18:function(n){return "The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return "'current' expects a draft, got: "+n},23:function(n){return "'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t);})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p$5(n);if(!u$3(e,r))return function(n,r,t){var e,i=I(r,t);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t$5(i)?i:i===z$2(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p$5(n)},ownKeys:function(n){return Reflect.ownKeys(p$5(n))},set:function(n,r,t){var e=I(p$5(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z$2(p$5(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c$3(t,i)&&(void 0!==t||u$3(n.t,r)))return !0;E(n),k$4(n);}return n.o[r]===t&&"number"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z$2(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k$4(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p$5(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||"length"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n$5(11);},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n$5(12);}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)};})),on.deleteProperty=function(r,t){return "production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n$5(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return "production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&n$5(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if("function"==typeof r&&"function"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return (t=i).call.apply(t,[r,n].concat(e))}))}}var f;if("function"!=typeof i&&n$5(6),void 0!==o&&"function"!=typeof o&&n$5(7),t$5(r)){var c=w$3(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1;}finally{v?O(c):g$3(c);}return "undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||"object"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d$3(f,!0),o){var p=[],l=[];b$3("Patches").M(r,f,p,l),o(p,l);}return f}n$5(21,r);},this.produceWithPatches=function(n,r){if("function"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r;}));return "undefined"!=typeof Promise&&o instanceof Promise?o.then((function(n){return [n,t,i]})):[o,t,i]},"boolean"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),"boolean"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze);}var i=e.prototype;return i.createDraft=function(e){t$5(e)||n$5(8),r$5(e)&&(e=D(e));var i=w$3(this),o=R(this,e,void 0);return o[Q].C=!0,g$3(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];"production"!==process.env.NODE_ENV&&(e&&e.C||n$5(9),e.I&&n$5(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n;},i.setUseProxies=function(r){r&&!B&&n$5(20),this.g=r;},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b$3("Patches").$;return r$5(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);var createNextState3 = fn;
16
+ function n$5(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if("production"!==process.env.NODE_ENV){var i=Y[n],o=i?"function"==typeof i?i.apply(null,t):i:"unknown error nr: "+n;throw Error("[Immer] "+o)}throw Error("[Immer] minified error nr: "+n+(t.length?" "+t.map((function(n){return "'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function r$5(n){return !!n&&!!n[Q]}function t$5(n){var r;return !!n&&(function(n){if(!n||"object"!=typeof n)return !1;var r=Object.getPrototypeOf(n);if(null===r)return !0;var t=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return t===Object||"function"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v$4(n))}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&"symbol"==typeof e||r(e,n[e],n);})):n.forEach((function(t,e){return r(e,t,n)}));}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v$4(n)?3:0}function u$3(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f$3(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t;}function c$3(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v$4(n){return q$5&&n instanceof Set}function p$5(n){return n.o||n.t}function l$4(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]});}return Object.create(Object.getPrototypeOf(n),r)}function d$3(n,e){return void 0===e&&(e=!1),y$2(n)||r$5(n)||!t$5(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h$5),Object.freeze(n),e&&i(n,(function(n,r){return d$3(r,!0)}),!0)),n}function h$5(){n$5(2);}function y$2(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b$3(r){var t=tn[r];return t||n$5(18,r),t}function m$4(n,r){tn[n]||(tn[n]=r);}function _(){return "production"===process.env.NODE_ENV||U||n$5(0),U}function j(n,r){r&&(b$3("Patches"),n.u=[],n.s=[],n.v=r);}function g$3(n){O(n),n.p.forEach(S),n.p=null;}function O(n){n===U&&(U=n.l);}function w$3(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0;}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b$3("ES5").S(e,r,o),o?(i[Q].P&&(g$3(e),n$5(4)),t$5(r)&&(r=M(e,r),e.l||x$2(e,r)),e.u&&b$3("Patches").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g$3(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y$2(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A$2(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x$2(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l$4(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A$2(n,e,o,r,i,t,a)})),x$2(n,o,!1),t&&n.u&&b$3("Patches").N(e,t,n.u,n.s);}return e.o}function A$2(e,i,o,a,c,s,v){if("production"!==process.env.NODE_ENV&&c===o&&n$5(5),r$5(c)){var p=M(e,c,s&&i&&3!==i.i&&!u$3(i.R,a)?s.concat(a):void 0);if(f$3(o,a,p),!r$5(p))return;e.m=!1;}else v&&o.add(c);if(t$5(c)&&!y$2(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x$2(e,c);}}function x$2(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d$3(r,t);}function z$2(n,r){var t=n[Q];return (t?p$5(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t);}}function k$4(n){n.P||(n.P=!0,n.l&&k$4(n.l));}function E(n){n.o||(n.o=l$4(n.t));}function N(n,r,t){var e=s(r)?b$3("MapSet").F(r,t):v$4(r)?b$3("MapSet").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b$3("ES5").J(r,t);return (t?t.A:_()).p.push(e),e}function R(e){return r$5(e)||n$5(22,e),function n(r){if(!t$5(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b$3("ES5").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1;}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f$3(e,r,n(t));})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l$4(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return "production"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];"production"!==process.env.NODE_ENV&&f(t),en.set(t,n,r);}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k$4(t);break;case 4:o(t)&&k$4(t);}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u$3(r,o))return !0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c$3(f,a))return !0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return !0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return !0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return !0;return !1}function f(r){r.g&&n$5(3,JSON.stringify(p$5(r)));}var s={};m$4("ES5",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,""+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable);}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r$5(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&"object"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.R,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u$3(e,r)?f[r]||n(o[r]):(f[r]=!0,k$4(t)));})),i(e,(function(n){void 0!==o[n]||u$3(o,n)||(f[n]=!1,k$4(t));}));else if(5===c){if(a(t)&&(k$4(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l]);}}}}(n.p[0]),e(n.p));},K:function(n){return 4===n.i?o(n):a(n)}});}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q$5="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return "Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return "Unsupported patch operation: "+n},18:function(n){return "The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return "'current' expects a draft, got: "+n},23:function(n){return "'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t);})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p$5(n);if(!u$3(e,r))return function(n,r,t){var e,i=I(r,t);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t$5(i)?i:i===z$2(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p$5(n)},ownKeys:function(n){return Reflect.ownKeys(p$5(n))},set:function(n,r,t){var e=I(p$5(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z$2(p$5(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c$3(t,i)&&(void 0!==t||u$3(n.t,r)))return !0;E(n),k$4(n);}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z$2(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k$4(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p$5(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||"length"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n$5(11);},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n$5(12);}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)};})),on.deleteProperty=function(r,t){return "production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n$5(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return "production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&n$5(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if("function"==typeof r&&"function"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return (t=i).call.apply(t,[r,n].concat(e))}))}}var f;if("function"!=typeof i&&n$5(6),void 0!==o&&"function"!=typeof o&&n$5(7),t$5(r)){var c=w$3(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1;}finally{v?g$3(c):O(c);}return "undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g$3(c),n})):(j(c,o),P(f,c))}if(!r||"object"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d$3(f,!0),o){var p=[],l=[];b$3("Patches").M(r,f,p,l),o(p,l);}return f}n$5(21,r);},this.produceWithPatches=function(n,r){if("function"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r;}));return "undefined"!=typeof Promise&&o instanceof Promise?o.then((function(n){return [n,t,i]})):[o,t,i]},"boolean"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),"boolean"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze);}var i=e.prototype;return i.createDraft=function(e){t$5(e)||n$5(8),r$5(e)&&(e=R(e));var i=w$3(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];"production"!==process.env.NODE_ENV&&(e&&e.C||n$5(9),e.I&&n$5(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n;},i.setUseProxies=function(r){r&&!B&&n$5(20),this.O=r;},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b$3("Patches").$;return r$5(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);var createNextState3 = fn;
16
17
 
17
18
  // Cache implementation based on Erik Rasmussen's `lru-memoize`:
18
19
  // https://github.com/erikras/lru-memoize
@@ -222,13 +223,13 @@ function createSelectorCreator(memoize) {
222
223
 
223
224
  var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];
224
225
  var dependencies = getDependencies(funcs);
225
- var memoizedResultFunc = memoize.apply(void 0, [function () {
226
+ var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {
226
227
  _recomputations++; // apply arguments instead of spreading for performance.
227
228
 
228
229
  return resultFunc.apply(null, arguments);
229
230
  }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
230
231
 
231
- var selector = memoize(function () {
232
+ var selector = memoize(function dependenciesChecker() {
232
233
  var params = [];
233
234
  var length = dependencies.length;
234
235
 
@@ -279,7 +280,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
279
280
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
280
281
  };
281
282
  })();
282
- (undefined && undefined.__generator) || function (thisArg, body) {
283
+ var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
283
284
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
284
285
  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
285
286
  function verb(n) { return function (v) { return step([n, v]); }; }
@@ -312,6 +313,8 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
312
313
  return to;
313
314
  };
314
315
  var __defProp = Object.defineProperty;
316
+ var __defProps = Object.defineProperties;
317
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
315
318
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
316
319
  var __hasOwnProp = Object.prototype.hasOwnProperty;
317
320
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -328,6 +331,29 @@ var __spreadValues = function (a, b) {
328
331
  }
329
332
  return a;
330
333
  };
334
+ var __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };
335
+ var __async = function (__this, __arguments, generator) {
336
+ return new Promise(function (resolve, reject) {
337
+ var fulfilled = function (value) {
338
+ try {
339
+ step(generator.next(value));
340
+ }
341
+ catch (e) {
342
+ reject(e);
343
+ }
344
+ };
345
+ var rejected = function (value) {
346
+ try {
347
+ step(generator.throw(value));
348
+ }
349
+ catch (e) {
350
+ reject(e);
351
+ }
352
+ };
353
+ var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };
354
+ step((generator = generator.apply(__this, __arguments)).next());
355
+ });
356
+ };
331
357
  var createDraftSafeSelector = function () {
332
358
  var args = [];
333
359
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -339,7 +365,7 @@ var createDraftSafeSelector = function () {
339
365
  for (var _i = 1; _i < arguments.length; _i++) {
340
366
  rest[_i - 1] = arguments[_i];
341
367
  }
342
- return selector.apply(void 0, __spreadArray([r$5(value) ? D(value) : value], rest));
368
+ return selector.apply(void 0, __spreadArray([r$5(value) ? R(value) : value], rest));
343
369
  };
344
370
  return wrappedSelector;
345
371
  };
@@ -393,6 +419,43 @@ function isPlainObject$2(value) {
393
419
  };
394
420
  return MiddlewareArray;
395
421
  })(Array));
422
+ /** @class */ ((function (_super) {
423
+ __extends(EnhancerArray, _super);
424
+ function EnhancerArray() {
425
+ var args = [];
426
+ for (var _i = 0; _i < arguments.length; _i++) {
427
+ args[_i] = arguments[_i];
428
+ }
429
+ var _this = _super.apply(this, args) || this;
430
+ Object.setPrototypeOf(_this, EnhancerArray.prototype);
431
+ return _this;
432
+ }
433
+ Object.defineProperty(EnhancerArray, Symbol.species, {
434
+ get: function () {
435
+ return EnhancerArray;
436
+ },
437
+ enumerable: false,
438
+ configurable: true
439
+ });
440
+ EnhancerArray.prototype.concat = function () {
441
+ var arr = [];
442
+ for (var _i = 0; _i < arguments.length; _i++) {
443
+ arr[_i] = arguments[_i];
444
+ }
445
+ return _super.prototype.concat.apply(this, arr);
446
+ };
447
+ EnhancerArray.prototype.prepend = function () {
448
+ var arr = [];
449
+ for (var _i = 0; _i < arguments.length; _i++) {
450
+ arr[_i] = arguments[_i];
451
+ }
452
+ if (arr.length === 1 && Array.isArray(arr[0])) {
453
+ return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr[0].concat(this))))();
454
+ }
455
+ return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr.concat(this))))();
456
+ };
457
+ return EnhancerArray;
458
+ })(Array));
396
459
  function freezeDraftable(val) {
397
460
  return t$5(val) ? createNextState3(val, function () {
398
461
  }) : val;
@@ -425,8 +488,11 @@ function createAction(type, prepareAction) {
425
488
  actionCreator.match = function (action) { return action.type === type; };
426
489
  return actionCreator;
427
490
  }
491
+ function isAction(action) {
492
+ return isPlainObject$2(action) && "type" in action;
493
+ }
428
494
  function isFSA(action) {
429
- return isPlainObject$2(action) && typeof action.type === "string" && Object.keys(action).every(isValidKey);
495
+ return isAction(action) && typeof action.type === "string" && Object.keys(action).every(isValidKey);
430
496
  }
431
497
  function isValidKey(key) {
432
498
  return ["type", "payload", "error", "meta"].indexOf(key) > -1;
@@ -479,8 +545,17 @@ function executeReducerBuilderCallback(builderCallback) {
479
545
  function isStateFunction(x) {
480
546
  return typeof x === "function";
481
547
  }
548
+ var hasWarnedAboutObjectNotation = false;
482
549
  function createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {
483
550
  if (actionMatchers === void 0) { actionMatchers = []; }
551
+ if (process.env.NODE_ENV !== "production") {
552
+ if (typeof mapOrBuilderCallback === "object") {
553
+ if (!hasWarnedAboutObjectNotation) {
554
+ hasWarnedAboutObjectNotation = true;
555
+ console.warn("The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer");
556
+ }
557
+ }
558
+ }
484
559
  var _c = typeof mapOrBuilderCallback === "function" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];
485
560
  var getInitialState;
486
561
  if (isStateFunction(initialState)) {
@@ -509,14 +584,14 @@ function createReducer(initialState, mapOrBuilderCallback, actionMatchers, defau
509
584
  if (r$5(previousState)) {
510
585
  var draft = previousState;
511
586
  var result = caseReducer(draft, action);
512
- if (typeof result === "undefined") {
587
+ if (result === void 0) {
513
588
  return previousState;
514
589
  }
515
590
  return result;
516
591
  }
517
592
  else if (!t$5(previousState)) {
518
593
  var result = caseReducer(previousState, action);
519
- if (typeof result === "undefined") {
594
+ if (result === void 0) {
520
595
  if (previousState === null) {
521
596
  return previousState;
522
597
  }
@@ -537,6 +612,7 @@ function createReducer(initialState, mapOrBuilderCallback, actionMatchers, defau
537
612
  return reducer;
538
613
  }
539
614
  // src/createSlice.ts
615
+ var hasWarnedAboutObjectNotation2 = false;
540
616
  function getType2(slice, actionKey) {
541
617
  return slice + "/" + actionKey;
542
618
  }
@@ -573,9 +649,28 @@ function createSlice(options) {
573
649
  actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);
574
650
  });
575
651
  function buildReducer() {
652
+ if (process.env.NODE_ENV !== "production") {
653
+ if (typeof options.extraReducers === "object") {
654
+ if (!hasWarnedAboutObjectNotation2) {
655
+ hasWarnedAboutObjectNotation2 = true;
656
+ console.warn("The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice");
657
+ }
658
+ }
659
+ }
576
660
  var _c = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;
577
661
  var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);
578
- return createReducer(initialState, finalCaseReducers, actionMatchers, defaultCaseReducer);
662
+ return createReducer(initialState, function (builder) {
663
+ for (var key in finalCaseReducers) {
664
+ builder.addCase(key, finalCaseReducers[key]);
665
+ }
666
+ for (var _i = 0, actionMatchers_1 = actionMatchers; _i < actionMatchers_1.length; _i++) {
667
+ var m = actionMatchers_1[_i];
668
+ builder.addMatcher(m.matcher, m.reducer);
669
+ }
670
+ if (defaultCaseReducer) {
671
+ builder.addDefaultCase(defaultCaseReducer);
672
+ }
673
+ });
579
674
  }
580
675
  var _reducer;
581
676
  return {
@@ -784,7 +879,7 @@ function createUnsortedStateAdapter(selectId) {
784
879
  if (didMutateEntities) {
785
880
  var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;
786
881
  if (didMutateIds) {
787
- state.ids = state.ids.map(function (id) { return newKeys[id] || id; });
882
+ state.ids = Object.keys(state.entities);
788
883
  }
789
884
  }
790
885
  }
@@ -927,12 +1022,228 @@ function createEntityAdapter(options) {
927
1022
  sortComparer: sortComparer
928
1023
  }, stateFactory), selectorsFactory), stateAdapter);
929
1024
  }
1025
+ // src/nanoid.ts
1026
+ var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW";
1027
+ var nanoid = function (size) {
1028
+ if (size === void 0) { size = 21; }
1029
+ var id = "";
1030
+ var i = size;
1031
+ while (i--) {
1032
+ id += urlAlphabet[Math.random() * 64 | 0];
1033
+ }
1034
+ return id;
1035
+ };
1036
+ // src/createAsyncThunk.ts
1037
+ var commonProperties = [
1038
+ "name",
1039
+ "message",
1040
+ "stack",
1041
+ "code"
1042
+ ];
1043
+ var RejectWithValue = /** @class */ (function () {
1044
+ function RejectWithValue(payload, meta) {
1045
+ this.payload = payload;
1046
+ this.meta = meta;
1047
+ }
1048
+ return RejectWithValue;
1049
+ }());
1050
+ var FulfillWithMeta = /** @class */ (function () {
1051
+ function FulfillWithMeta(payload, meta) {
1052
+ this.payload = payload;
1053
+ this.meta = meta;
1054
+ }
1055
+ return FulfillWithMeta;
1056
+ }());
1057
+ var miniSerializeError = function (value) {
1058
+ if (typeof value === "object" && value !== null) {
1059
+ var simpleError = {};
1060
+ for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {
1061
+ var property = commonProperties_1[_i];
1062
+ if (typeof value[property] === "string") {
1063
+ simpleError[property] = value[property];
1064
+ }
1065
+ }
1066
+ return simpleError;
1067
+ }
1068
+ return { message: String(value) };
1069
+ };
1070
+ ((function () {
1071
+ function createAsyncThunk2(typePrefix, payloadCreator, options) {
1072
+ var fulfilled = createAction(typePrefix + "/fulfilled", function (payload, requestId, arg, meta) { return ({
1073
+ payload: payload,
1074
+ meta: __spreadProps(__spreadValues({}, meta || {}), {
1075
+ arg: arg,
1076
+ requestId: requestId,
1077
+ requestStatus: "fulfilled"
1078
+ })
1079
+ }); });
1080
+ var pending = createAction(typePrefix + "/pending", function (requestId, arg, meta) { return ({
1081
+ payload: void 0,
1082
+ meta: __spreadProps(__spreadValues({}, meta || {}), {
1083
+ arg: arg,
1084
+ requestId: requestId,
1085
+ requestStatus: "pending"
1086
+ })
1087
+ }); });
1088
+ var rejected = createAction(typePrefix + "/rejected", function (error, requestId, arg, payload, meta) { return ({
1089
+ payload: payload,
1090
+ error: (options && options.serializeError || miniSerializeError)(error || "Rejected"),
1091
+ meta: __spreadProps(__spreadValues({}, meta || {}), {
1092
+ arg: arg,
1093
+ requestId: requestId,
1094
+ rejectedWithValue: !!payload,
1095
+ requestStatus: "rejected",
1096
+ aborted: (error == null ? void 0 : error.name) === "AbortError",
1097
+ condition: (error == null ? void 0 : error.name) === "ConditionError"
1098
+ })
1099
+ }); });
1100
+ var displayedWarning = false;
1101
+ var AC = typeof AbortController !== "undefined" ? AbortController : /** @class */ (function () {
1102
+ function class_1() {
1103
+ this.signal = {
1104
+ aborted: false,
1105
+ addEventListener: function () {
1106
+ },
1107
+ dispatchEvent: function () {
1108
+ return false;
1109
+ },
1110
+ onabort: function () {
1111
+ },
1112
+ removeEventListener: function () {
1113
+ },
1114
+ reason: void 0,
1115
+ throwIfAborted: function () {
1116
+ }
1117
+ };
1118
+ }
1119
+ class_1.prototype.abort = function () {
1120
+ if (process.env.NODE_ENV !== "production") {
1121
+ if (!displayedWarning) {
1122
+ displayedWarning = true;
1123
+ console.info("This platform does not implement AbortController. \nIf you want to use the AbortController to react to `abort` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.");
1124
+ }
1125
+ }
1126
+ };
1127
+ return class_1;
1128
+ }());
1129
+ function actionCreator(arg) {
1130
+ return function (dispatch, getState, extra) {
1131
+ var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();
1132
+ var abortController = new AC();
1133
+ var abortReason;
1134
+ function abort(reason) {
1135
+ abortReason = reason;
1136
+ abortController.abort();
1137
+ }
1138
+ var promise2 = function () {
1139
+ return __async(this, null, function () {
1140
+ var _a, _b, finalAction, conditionResult, abortedPromise, err_1, skipDispatch;
1141
+ return __generator(this, function (_c) {
1142
+ switch (_c.label) {
1143
+ case 0:
1144
+ _c.trys.push([0, 4, , 5]);
1145
+ conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });
1146
+ if (!isThenable(conditionResult)) return [3 /*break*/, 2];
1147
+ return [4 /*yield*/, conditionResult];
1148
+ case 1:
1149
+ conditionResult = _c.sent();
1150
+ _c.label = 2;
1151
+ case 2:
1152
+ if (conditionResult === false || abortController.signal.aborted) {
1153
+ throw {
1154
+ name: "ConditionError",
1155
+ message: "Aborted due to condition callback returning false."
1156
+ };
1157
+ }
1158
+ abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener("abort", function () { return reject({
1159
+ name: "AbortError",
1160
+ message: abortReason || "Aborted"
1161
+ }); }); });
1162
+ dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));
1163
+ return [4 /*yield*/, Promise.race([
1164
+ abortedPromise,
1165
+ Promise.resolve(payloadCreator(arg, {
1166
+ dispatch: dispatch,
1167
+ getState: getState,
1168
+ extra: extra,
1169
+ requestId: requestId,
1170
+ signal: abortController.signal,
1171
+ abort: abort,
1172
+ rejectWithValue: function (value, meta) {
1173
+ return new RejectWithValue(value, meta);
1174
+ },
1175
+ fulfillWithValue: function (value, meta) {
1176
+ return new FulfillWithMeta(value, meta);
1177
+ }
1178
+ })).then(function (result) {
1179
+ if (result instanceof RejectWithValue) {
1180
+ throw result;
1181
+ }
1182
+ if (result instanceof FulfillWithMeta) {
1183
+ return fulfilled(result.payload, requestId, arg, result.meta);
1184
+ }
1185
+ return fulfilled(result, requestId, arg);
1186
+ })
1187
+ ])];
1188
+ case 3:
1189
+ finalAction = _c.sent();
1190
+ return [3 /*break*/, 5];
1191
+ case 4:
1192
+ err_1 = _c.sent();
1193
+ finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);
1194
+ return [3 /*break*/, 5];
1195
+ case 5:
1196
+ skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;
1197
+ if (!skipDispatch) {
1198
+ dispatch(finalAction);
1199
+ }
1200
+ return [2 /*return*/, finalAction];
1201
+ }
1202
+ });
1203
+ });
1204
+ }();
1205
+ return Object.assign(promise2, {
1206
+ abort: abort,
1207
+ requestId: requestId,
1208
+ arg: arg,
1209
+ unwrap: function () {
1210
+ return promise2.then(unwrapResult);
1211
+ }
1212
+ });
1213
+ };
1214
+ }
1215
+ return Object.assign(actionCreator, {
1216
+ pending: pending,
1217
+ rejected: rejected,
1218
+ fulfilled: fulfilled,
1219
+ typePrefix: typePrefix
1220
+ });
1221
+ }
1222
+ createAsyncThunk2.withTypes = function () { return createAsyncThunk2; };
1223
+ return createAsyncThunk2;
1224
+ }))();
1225
+ function unwrapResult(action) {
1226
+ if (action.meta && action.meta.rejectedWithValue) {
1227
+ throw action.payload;
1228
+ }
1229
+ if (action.error) {
1230
+ throw action.error;
1231
+ }
1232
+ return action.payload;
1233
+ }
1234
+ function isThenable(value) {
1235
+ return value !== null && typeof value === "object" && typeof value.then === "function";
1236
+ }
930
1237
  var alm = "listenerMiddleware";
931
1238
  createAction(alm + "/add");
932
1239
  createAction(alm + "/removeAll");
933
1240
  createAction(alm + "/remove");
1241
+ var promise;
1242
+ typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : globalThis) : function (cb) { return (promise || (promise = Promise.resolve())).then(cb).catch(function (err) { return setTimeout(function () {
1243
+ throw err;
1244
+ }, 0); }); };
934
1245
  // src/index.ts
935
- N();
1246
+ F();
936
1247
 
937
1248
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
938
1249
 
@@ -18174,6 +18485,7 @@ var WorkspacePresetAction;
18174
18485
  WorkspacePresetAction["EDIT"] = "EDIT";
18175
18486
  WorkspacePresetAction["SAVE"] = "SAVE";
18176
18487
  WorkspacePresetAction["SAVE_AS"] = "SAVE_AS";
18488
+ WorkspacePresetAction["SAVE_ALL"] = "SAVE_ALL";
18177
18489
  WorkspacePresetAction["DUPLICATE"] = "DUPLICATE";
18178
18490
  })(WorkspacePresetAction || (WorkspacePresetAction = {}));
18179
18491
  var WorkspaceErrorType;
@@ -18242,17 +18554,31 @@ var slice$4 = createSlice({
18242
18554
  draft.error = error;
18243
18555
  },
18244
18556
  openWorkspaceActionDialogOptions: function openWorkspaceActionDialogOptions(draft, action) {
18245
- draft.workspaceActionDialog = action.payload;
18557
+ draft.workspaceActionDialog = Object.assign(Object.assign({}, action.payload), {
18558
+ error: undefined,
18559
+ isFetching: false
18560
+ });
18561
+ },
18562
+ submitFormWorkspaceActionDialogOptions: function submitFormWorkspaceActionDialogOptions(draft,
18563
+ // eslint-disable-next-line no-unused-vars
18564
+ action) {
18565
+ draft.workspaceActionDialog.error = undefined;
18566
+ draft.workspaceActionDialog.isFetching = true;
18246
18567
  },
18247
18568
  closeWorkspaceActionDialogOptions: function closeWorkspaceActionDialogOptions(draft) {
18248
18569
  delete draft.workspaceActionDialog;
18249
18570
  },
18250
18571
  // action is intercepted in mapPresets/sagas
18251
- onSuccessWorkspacePresetAction: function onSuccessWorkspacePresetAction(
18252
- // eslint-disable-next-line no-unused-vars
18253
- draft,
18572
+ onSuccessWorkspacePresetAction: function onSuccessWorkspacePresetAction(draft,
18254
18573
  // eslint-disable-next-line no-unused-vars
18255
- action) {},
18574
+ action) {
18575
+ delete draft.workspaceActionDialog;
18576
+ },
18577
+ onErrorWorkspacePresetAction: function onErrorWorkspacePresetAction(draft, action) {
18578
+ var error = action.payload.error;
18579
+ draft.workspaceActionDialog.isFetching = false;
18580
+ draft.workspaceActionDialog.error = error;
18581
+ },
18256
18582
  toggleWorkspaceDialog: function toggleWorkspaceDialog(draft, action) {
18257
18583
  var isListDialogOpen = action.payload.isWorkspaceListDialogOpen;
18258
18584
  draft.isWorkspaceListDialogOpen = isListDialogOpen;
@@ -18902,9 +19228,9 @@ var makeListOfViewIds = function makeListOfViewIds(mNode) {
18902
19228
  return getLeaves(mNode);
18903
19229
  };
18904
19230
  var getErrorMessage = function getErrorMessage(error) {
18905
- var _a;
19231
+ var _a, _b;
18906
19232
  var prefix = error.message;
18907
- var suffix = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data.message;
19233
+ var suffix = (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
18908
19234
  return suffix ? "".concat(prefix, ": ").concat(suffix) : prefix;
18909
19235
  };
18910
19236
 
@@ -18933,7 +19259,7 @@ var viewPresetsAdapter = createEntityAdapter({
18933
19259
  var initialState$4 = viewPresetsAdapter.getInitialState();
18934
19260
  var syncGroupChangeActions = [syncGroupActions.syncGroupRemoveTarget, syncGroupActions.syncGroupAddTarget];
18935
19261
  var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, syncGroupActions.setBbox];
18936
- var supportedChangeOrigins = [mapTypes.LayerActionOrigin.layerManager, mapTypes.LayerActionOrigin.wmsLoader, mapTypes.MapActionOrigin.map];
19262
+ var supportedChangeOrigins = [mapTypes.LayerActionOrigin.layerManager, mapTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
18937
19263
  var slice$3 = createSlice({
18938
19264
  initialState: initialState$4,
18939
19265
  name: 'viewPresets',
@@ -19257,6 +19583,7 @@ var slice$2 = createSlice({
19257
19583
  draft.mosaicNode = '';
19258
19584
  draft.id = '';
19259
19585
  draft.title = workspacePreset.title;
19586
+ draft["abstract"] = workspacePreset["abstract"];
19260
19587
  draft.syncGroups = [];
19261
19588
  },
19262
19589
  setPreset: function setPreset(draft, action) {
@@ -19303,10 +19630,14 @@ var slice$2 = createSlice({
19303
19630
  draft.isLoading = true;
19304
19631
  draft.error = undefined;
19305
19632
  },
19306
- loadedWorkspace: function loadedWorkspace(draft,
19307
- // eslint-disable-next-line no-unused-vars
19308
- action) {
19633
+ loadedWorkspace: function loadedWorkspace(draft, action) {
19634
+ var _a;
19309
19635
  draft.isLoading = false;
19636
+ if ((_a = action.payload) === null || _a === void 0 ? void 0 : _a.workspace) {
19637
+ var workspace = action.payload.workspace;
19638
+ draft["abstract"] = workspace === null || workspace === void 0 ? void 0 : workspace["abstract"];
19639
+ draft.title = workspace === null || workspace === void 0 ? void 0 : workspace.title;
19640
+ }
19310
19641
  },
19311
19642
  errorWorkspace: function errorWorkspace(draft,
19312
19643
  // eslint-disable-next-line no-unused-vars
@@ -19329,9 +19660,10 @@ var slice$2 = createSlice({
19329
19660
  },
19330
19661
  extraReducers: function extraReducers(builder) {
19331
19662
  builder.addCase(workspaceListActions.onSuccessWorkspacePresetAction, function (draft, action) {
19332
- if (action.payload.action === WorkspacePresetAction.SAVE_AS) {
19663
+ if (action.payload.action === WorkspacePresetAction.SAVE_AS || action.payload.action === WorkspacePresetAction.SAVE_ALL) {
19333
19664
  draft.id = action.payload.workspaceId;
19334
19665
  draft.title = action.payload.title;
19666
+ draft["abstract"] = action.payload["abstract"];
19335
19667
  draft.hasChanges = false;
19336
19668
  draft.scope = 'user';
19337
19669
  }
@@ -19368,6 +19700,7 @@ var slice$2 = createSlice({
19368
19700
  });
19369
19701
  }
19370
19702
  });
19703
+ // eslint-disable-next-line prefer-destructuring
19371
19704
  var reducer$1 = slice$2.reducer;
19372
19705
  var workspaceActions = Object.assign({}, slice$2.actions);
19373
19706
 
@@ -19400,8 +19733,8 @@ var selectors$1 = viewPresetsAdapter.getSelectors(function (state) {
19400
19733
  ids: []
19401
19734
  };
19402
19735
  });
19403
- selectors$1.selectAll;
19404
- var getViewPresetById = selectors$1.selectById;
19736
+ var getViewPresets = selectors$1.selectAll,
19737
+ getViewPresetById = selectors$1.selectById;
19405
19738
  var getViewPresetsIsFetching = function getViewPresetsIsFetching(store, panelId) {
19406
19739
  var _a;
19407
19740
  return ((_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.isFetching) || false;
@@ -19440,6 +19773,50 @@ var getIsViewPresetListDialogOpen = function getIsViewPresetListDialogOpen(store
19440
19773
  return ((_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.isViewPresetListDialogOpen) || false;
19441
19774
  };
19442
19775
 
19776
+ /* *
19777
+ * Licensed under the Apache License, Version 2.0 (the "License");
19778
+ * you may not use this file except in compliance with the License.
19779
+ * You may obtain a copy of the License at
19780
+ *
19781
+ * http://www.apache.org/licenses/LICENSE-2.0
19782
+ *
19783
+ * Unless required by applicable law or agreed to in writing, software
19784
+ * distributed under the License is distributed on an "AS IS" BASIS,
19785
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19786
+ * See the License for the specific language governing permissions and
19787
+ * limitations under the License.
19788
+ *
19789
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
19790
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
19791
+ * */
19792
+ var MAPPRESET_ACTIVE_TITLE = 'New map preset';
19793
+ var MAPPRESET_DIALOG_TITLE_SAVE_AS = 'Save map preset as';
19794
+ var MAPPRESET_DIALOG_TITLE_DELETE = 'Delete map preset';
19795
+ var getSnackbarMessage$1 = function getSnackbarMessage(action, title) {
19796
+ // Trim and add quotes
19797
+ var trimmedTitle = "\"".concat(title.trim(), "\"");
19798
+ switch (action) {
19799
+ case PresetAction.DELETE:
19800
+ return "Map preset ".concat(trimmedTitle, " successfully deleted");
19801
+ case PresetAction.SAVE_AS:
19802
+ return "New map preset ".concat(trimmedTitle, " successfully saved");
19803
+ default:
19804
+ return "Map preset ".concat(trimmedTitle, " successfully saved");
19805
+ }
19806
+ };
19807
+ var getPresetsApi = function getPresetsApi() {
19808
+ return getApi(API_NAME);
19809
+ };
19810
+ var emptyMapViewPreset = {
19811
+ componentType: 'Map',
19812
+ keywords: 'mapPreset,viewPreset,layerManager',
19813
+ scope: 'user',
19814
+ title: '',
19815
+ initialProps: {
19816
+ mapPreset: {}
19817
+ }
19818
+ };
19819
+
19443
19820
  /* *
19444
19821
  * Licensed under the Apache License, Version 2.0 (the "License");
19445
19822
  * you may not use this file except in compliance with the License.
@@ -19485,8 +19862,8 @@ var getMosaicNode = createSelector(getWorkspaceState, function (state) {
19485
19862
  * @returns {object} returnType: WorkspaceViewType
19486
19863
  */
19487
19864
  var getViewById = function getViewById(store, viewId) {
19488
- var _a;
19489
- if ((_a = store === null || store === void 0 ? void 0 : store.workspace) === null || _a === void 0 ? void 0 : _a.views.byId[viewId]) {
19865
+ var _a, _b;
19866
+ if ((_b = (_a = store === null || store === void 0 ? void 0 : store.workspace) === null || _a === void 0 ? void 0 : _a.views.byId) === null || _b === void 0 ? void 0 : _b[viewId]) {
19490
19867
  return store.workspace.views.byId[viewId];
19491
19868
  }
19492
19869
  return null;
@@ -19579,6 +19956,19 @@ var getWorkspaceData = createSelector(getWorkspaceState, getViewPresetsStore, ge
19579
19956
  mosaicNode: store.mosaicNode
19580
19957
  };
19581
19958
  });
19959
+ var getViewPresetToSendToBackend = createSelector(getViewById, mapSelectors.getMapPreset, syncGroupsSelectors.getAllTargetGroupsForSource, function (workspaceView, mapPreset, syncGroupsIds) {
19960
+ var title = (workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.title) || MAPPRESET_ACTIVE_TITLE;
19961
+ var scope = (workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.scope) || 'system';
19962
+ return Object.assign(Object.assign({}, emptyMapViewPreset), {
19963
+ id: workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.id,
19964
+ scope: scope,
19965
+ title: title,
19966
+ initialProps: {
19967
+ mapPreset: mapPreset,
19968
+ syncGroupsIds: syncGroupsIds
19969
+ }
19970
+ });
19971
+ });
19582
19972
 
19583
19973
  var selectors = /*#__PURE__*/Object.freeze({
19584
19974
  __proto__: null,
@@ -19593,7 +19983,8 @@ var selectors = /*#__PURE__*/Object.freeze({
19593
19983
  hasWorkspaceChanges: hasWorkspaceChanges,
19594
19984
  getViewType: getViewType,
19595
19985
  getSelectedWorkspaceScope: getSelectedWorkspaceScope,
19596
- getWorkspaceData: getWorkspaceData
19986
+ getWorkspaceData: getWorkspaceData,
19987
+ getViewPresetToSendToBackend: getViewPresetToSendToBackend
19597
19988
  });
19598
19989
 
19599
19990
  /* *
@@ -19810,6 +20201,7 @@ function take(patternOrChannel, multicastPattern) {
19810
20201
 
19811
20202
  if (pattern(patternOrChannel)) {
19812
20203
  if (notUndef(multicastPattern)) {
20204
+ /* eslint-disable no-console */
19813
20205
  console.warn("take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types");
19814
20206
  }
19815
20207
 
@@ -19827,6 +20219,7 @@ function take(patternOrChannel, multicastPattern) {
19827
20219
 
19828
20220
  if (channel(patternOrChannel)) {
19829
20221
  if (notUndef(multicastPattern)) {
20222
+ /* eslint-disable no-console */
19830
20223
  console.warn("take(channel) takes one argument but two were provided. Second argument is ignored.");
19831
20224
  }
19832
20225
 
@@ -20926,7 +21319,7 @@ var workspacePresetsListFullContent = [
20926
21319
  {
20927
21320
  id: "radarView",
20928
21321
  title: "Radar",
20929
- scope: "system",
21322
+ scope: "user",
20930
21323
  abstract: "",
20931
21324
  viewType: "singleWindow",
20932
21325
  views: [
@@ -22239,50 +22632,6 @@ var viewPresetsList = [
22239
22632
  }
22240
22633
  ];
22241
22634
 
22242
- /* *
22243
- * Licensed under the Apache License, Version 2.0 (the "License");
22244
- * you may not use this file except in compliance with the License.
22245
- * You may obtain a copy of the License at
22246
- *
22247
- * http://www.apache.org/licenses/LICENSE-2.0
22248
- *
22249
- * Unless required by applicable law or agreed to in writing, software
22250
- * distributed under the License is distributed on an "AS IS" BASIS,
22251
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22252
- * See the License for the specific language governing permissions and
22253
- * limitations under the License.
22254
- *
22255
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
22256
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
22257
- * */
22258
- var MAPPRESET_ACTIVE_TITLE = 'New map preset';
22259
- var MAPPRESET_DIALOG_TITLE_SAVE_AS = 'Save map preset as';
22260
- var MAPPRESET_DIALOG_TITLE_DELETE = 'Delete map preset';
22261
- var getSnackbarMessage$1 = function getSnackbarMessage(action, title) {
22262
- // Trim and add quotes
22263
- var trimmedTitle = "\"".concat(title.trim(), "\"");
22264
- switch (action) {
22265
- case PresetAction.DELETE:
22266
- return "Map preset ".concat(trimmedTitle, " successfully deleted");
22267
- case PresetAction.SAVE_AS:
22268
- return "New map preset ".concat(trimmedTitle, " successfully saved");
22269
- default:
22270
- return "Map preset ".concat(trimmedTitle, " successfully saved");
22271
- }
22272
- };
22273
- var getPresetsApi = function getPresetsApi() {
22274
- return getApi(API_NAME);
22275
- };
22276
- var emptyMapViewPreset = {
22277
- componentType: 'Map',
22278
- keywords: 'mapPreset,viewPreset,layerManager',
22279
- scope: 'user',
22280
- title: '',
22281
- initialProps: {
22282
- mapPreset: {}
22283
- }
22284
- };
22285
-
22286
22635
  /* *
22287
22636
  * Licensed under the Apache License, Version 2.0 (the "License");
22288
22637
  * you may not use this file except in compliance with the License.
@@ -22303,6 +22652,8 @@ var getSnackbarMessage = function getSnackbarMessage(action, title) {
22303
22652
  // Trim and add quotes
22304
22653
  var trimmedTitle = "\"".concat(title.trim(), "\"");
22305
22654
  switch (action) {
22655
+ case WorkspacePresetAction.SAVE_ALL:
22656
+ return "Workspace ".concat(trimmedTitle, " and underlying viewpresets successfully saved");
22306
22657
  case WorkspacePresetAction.DELETE:
22307
22658
  return "Workspace ".concat(trimmedTitle, " successfully deleted");
22308
22659
  case WorkspacePresetAction.DUPLICATE:
@@ -22313,7 +22664,6 @@ var getSnackbarMessage = function getSnackbarMessage(action, title) {
22313
22664
  };
22314
22665
  var emptyMapWorkspace = {
22315
22666
  title: 'New workspace',
22316
- id: 'FEnewWorkspace',
22317
22667
  "abstract": '',
22318
22668
  views: {
22319
22669
  allIds: ['1_screen'],
@@ -22368,6 +22718,18 @@ var constructFilterParams = function constructFilterParams(filters, searchQuery)
22368
22718
  search: search
22369
22719
  });
22370
22720
  };
22721
+ // TODO: better to use a lib for this. Currently this is only used in workspace 'save all', and will probably be replaced by a backend solution
22722
+ // https://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js
22723
+ var generateUID = function generateUID() {
22724
+ var firstPart = Math.random() * 46656 || 0;
22725
+ var secondPart = Math.random() * 46656 || 0;
22726
+ var firstPartCombined = "000".concat(firstPart.toString(36)).slice(-3);
22727
+ var secondPartCombined = "000".concat(secondPart.toString(36)).slice(-3);
22728
+ return firstPartCombined + secondPartCombined;
22729
+ };
22730
+ var getGeneratedViewPresetTitle = function getGeneratedViewPresetTitle(workspaceTitle, uid) {
22731
+ return "".concat(workspaceTitle, " - viewpreset ").concat(uid);
22732
+ };
22371
22733
 
22372
22734
  var ERROR_NOT_FOUND = 'Request failed with status code 400';
22373
22735
  var extractWorkspacePresetFromJSON = function extractWorkspacePresetFromJSON(workspacePresetId) {
@@ -22384,8 +22746,9 @@ var filterWorkspacePresetList = function filterWorkspacePresetList(params) {
22384
22746
  if (lodash.exports.isEmpty(params)) {
22385
22747
  return workspacePresetsList;
22386
22748
  }
22387
- return workspacePresetsList.reduce(function (list, workspacePreset) {
22749
+ return workspacePresetsList.reduce(function (list, workspacePresetRaw) {
22388
22750
  var _a;
22751
+ var workspacePreset = workspacePresetRaw;
22389
22752
  if ((_a = params === null || params === void 0 ? void 0 : params.scope) === null || _a === void 0 ? void 0 : _a.includes(workspacePreset.scope)) {
22390
22753
  if (params.search) {
22391
22754
  var searchQuery = getCleanSearchQuery(params.search);
@@ -22486,22 +22849,6 @@ var createApi = function createApi() {
22486
22849
  var instance = createFakeApiInstance();
22487
22850
  return getApiRoutes(instance);
22488
22851
  };
22489
- // used in app, same as storybook but no save/delete functionality
22490
- var createApiWithoutSave = function createApiWithoutSave() {
22491
- var instance = createFakeApiInstance();
22492
- return Object.assign(Object.assign({}, getApiRoutes(instance)), {
22493
- saveWorkspacePresetAs: function saveWorkspacePresetAs() {
22494
- return new Promise(function (_resolve, reject) {
22495
- return reject(new Error('You are using a fake API. Saving is not possible'));
22496
- });
22497
- },
22498
- deleteWorkspacePreset: function deleteWorkspacePreset() {
22499
- return new Promise(function (_resolve, reject) {
22500
- return reject(new Error('You are using a fake API. Deleting is not possible'));
22501
- });
22502
- }
22503
- });
22504
- };
22505
22852
 
22506
22853
  /* *
22507
22854
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -22529,7 +22876,7 @@ var getWorkspaceRouteUrl = function getWorkspaceRouteUrl(workspaceId) {
22529
22876
  };
22530
22877
 
22531
22878
  var _marked$2 = /*#__PURE__*/_regeneratorRuntime().mark(updateViewsSaga),
22532
- _marked2$1 = /*#__PURE__*/_regeneratorRuntime().mark(fetchWorkspaceSaga),
22879
+ _marked2$2 = /*#__PURE__*/_regeneratorRuntime().mark(fetchWorkspaceSaga),
22533
22880
  _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(saveWorkspacePresetSaga),
22534
22881
  _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(workspaceSaga);
22535
22882
  var setPreset = workspaceActions.setPreset,
@@ -22679,7 +23026,8 @@ function fetchWorkspaceSaga(action) {
22679
23026
  case 16:
22680
23027
  _context4.next = 18;
22681
23028
  return put(workspaceActions.loadedWorkspace({
22682
- workspaceId: workspaceId
23029
+ workspaceId: workspaceId,
23030
+ workspace: workspaceData
22683
23031
  }));
22684
23032
  case 18:
22685
23033
  // show all views inside a workspace as loading
@@ -22740,7 +23088,7 @@ function fetchWorkspaceSaga(action) {
22740
23088
  case "end":
22741
23089
  return _context4.stop();
22742
23090
  }
22743
- }, _marked2$1, null, [[2, 41], [23, 33, 36, 39]]);
23091
+ }, _marked2$2, null, [[2, 41], [23, 33, 36, 39]]);
22744
23092
  }
22745
23093
  function saveWorkspacePresetSaga(action) {
22746
23094
  var workspace, workspaceApi;
@@ -22757,7 +23105,7 @@ function saveWorkspacePresetSaga(action) {
22757
23105
  return call(workspaceApi.saveWorkspacePreset, workspace.id, workspace);
22758
23106
  case 7:
22759
23107
  _context5.next = 9;
22760
- return put(workspaceActions.loadedWorkspace());
23108
+ return put(workspaceActions.loadedWorkspace(undefined));
22761
23109
  case 9:
22762
23110
  _context5.next = 11;
22763
23111
  return put(workspaceListActions.onSuccessWorkspacePresetAction({
@@ -22953,7 +23301,14 @@ var getWorkspaceListSearchQuery = function getWorkspaceListSearchQuery(store) {
22953
23301
  return ((_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.searchQuery) || '';
22954
23302
  };
22955
23303
 
22956
- var _marked$1 = /*#__PURE__*/_regeneratorRuntime().mark(rootSaga$1);
23304
+ var _marked$1 = /*#__PURE__*/_regeneratorRuntime().mark(saveAllViewPresetSaga),
23305
+ _marked2$1 = /*#__PURE__*/_regeneratorRuntime().mark(rootSaga$1);
23306
+ var emptyWorkspaceBEData = Object.assign(Object.assign({}, emptyMapWorkspace), {
23307
+ views: [{
23308
+ mosaicNodeId: '1_screen',
23309
+ viewPresetId: 'emptyMap'
23310
+ }]
23311
+ });
22957
23312
  function fetchWorkspaceListSaga(_ref) {
22958
23313
  var workspaceFilterParams = _ref.payload;
22959
23314
  return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
@@ -23052,20 +23407,272 @@ function onSuccessWorkspacePresetsActionSaga(_ref2) {
23052
23407
  }, _callee2);
23053
23408
  })();
23054
23409
  }
23055
- function rootSaga$1() {
23056
- return _regeneratorRuntime().wrap(function rootSaga$(_context3) {
23410
+ function saveAllViewPresetSaga(viewPresetEntity, workspaceTitle) {
23411
+ var _a, _b, workspaceApi, panelId, activeViewPresetId, hasChanges, viewPreset, scope, uuid, newTitle, newViewPreset, newId;
23412
+ return _regeneratorRuntime().wrap(function saveAllViewPresetSaga$(_context3) {
23057
23413
  while (1) switch (_context3.prev = _context3.next) {
23058
23414
  case 0:
23059
23415
  _context3.next = 2;
23416
+ return call(getWorkspaceApi);
23417
+ case 2:
23418
+ workspaceApi = _context3.sent;
23419
+ panelId = viewPresetEntity.panelId, activeViewPresetId = viewPresetEntity.activeViewPresetId, hasChanges = viewPresetEntity.hasChanges;
23420
+ _context3.prev = 4;
23421
+ _context3.next = 7;
23422
+ return select(getViewPresetToSendToBackend, panelId);
23423
+ case 7:
23424
+ viewPreset = _context3.sent;
23425
+ scope = viewPreset.scope || 'system'; // saves user viewpresets with changes
23426
+ if (!(scope === 'user' && hasChanges)) {
23427
+ _context3.next = 14;
23428
+ break;
23429
+ }
23430
+ _context3.next = 12;
23431
+ return call(workspaceApi.saveViewPreset, activeViewPresetId, viewPreset);
23432
+ case 12:
23433
+ _context3.next = 14;
23434
+ return put(viewPresetActions.savedViewPreset({
23435
+ panelId: panelId,
23436
+ viewPresetId: activeViewPresetId
23437
+ }));
23438
+ case 14:
23439
+ if (!(scope === 'system' && (!activeViewPresetId || activeViewPresetId && hasChanges))) {
23440
+ _context3.next = 28;
23441
+ break;
23442
+ }
23443
+ _context3.next = 17;
23444
+ return call(generateUID);
23445
+ case 17:
23446
+ uuid = _context3.sent;
23447
+ newTitle = getGeneratedViewPresetTitle(workspaceTitle, uuid);
23448
+ newViewPreset = Object.assign(Object.assign({}, viewPreset), {
23449
+ title: newTitle,
23450
+ scope: 'user'
23451
+ });
23452
+ _context3.next = 22;
23453
+ return call(workspaceApi.saveViewPresetAs, newViewPreset);
23454
+ case 22:
23455
+ newId = _context3.sent;
23456
+ _context3.next = 25;
23457
+ return put(viewPresetActions.savedViewPreset({
23458
+ panelId: panelId,
23459
+ viewPresetId: newId
23460
+ }));
23461
+ case 25:
23462
+ _context3.next = 27;
23463
+ return put(viewPresetActions.fetchedViewPreset({
23464
+ panelId: panelId,
23465
+ viewPresetId: newId,
23466
+ viewPreset: newViewPreset
23467
+ }));
23468
+ case 27:
23469
+ return _context3.abrupt("return", {
23470
+ mosaicNodeId: panelId,
23471
+ viewPresetId: newId,
23472
+ title: newTitle
23473
+ });
23474
+ case 28:
23475
+ return _context3.abrupt("return", {
23476
+ mosaicNodeId: panelId,
23477
+ viewPresetId: activeViewPresetId,
23478
+ title: viewPreset.title
23479
+ });
23480
+ case 31:
23481
+ _context3.prev = 31;
23482
+ _context3.t0 = _context3["catch"](4);
23483
+ return _context3.abrupt("return", (_b = (_a = _context3.t0.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message);
23484
+ case 34:
23485
+ case "end":
23486
+ return _context3.stop();
23487
+ }
23488
+ }, _marked$1, null, [[4, 31]]);
23489
+ }
23490
+ function submitFormWorkspaceDialogSaga(_ref3) {
23491
+ var payload = _ref3.payload;
23492
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
23493
+ var workspaceApi, presetId, presetAction, data, newId, isNewWorkspace, _ref4, presetToDuplicate, fullPreset, _newId, workspace, isNew, workspaceId, views, savedViewPresetResult, errorMessage, workspaceData, newWorkspace, message;
23494
+ return _regeneratorRuntime().wrap(function _callee3$(_context4) {
23495
+ while (1) switch (_context4.prev = _context4.next) {
23496
+ case 0:
23497
+ _context4.next = 2;
23498
+ return call(getWorkspaceApi);
23499
+ case 2:
23500
+ workspaceApi = _context4.sent;
23501
+ _context4.prev = 3;
23502
+ presetId = payload.presetId, presetAction = payload.presetAction, data = payload.data; // save as
23503
+ if (!(presetAction === WorkspacePresetAction.SAVE_AS)) {
23504
+ _context4.next = 11;
23505
+ break;
23506
+ }
23507
+ _context4.next = 8;
23508
+ return call(workspaceApi.saveWorkspacePresetAs, data);
23509
+ case 8:
23510
+ newId = _context4.sent;
23511
+ _context4.next = 11;
23512
+ return put(workspaceListActions.onSuccessWorkspacePresetAction({
23513
+ workspaceId: newId,
23514
+ action: presetAction,
23515
+ title: data.title
23516
+ }));
23517
+ case 11:
23518
+ if (!(presetAction === WorkspacePresetAction.DUPLICATE)) {
23519
+ _context4.next = 28;
23520
+ break;
23521
+ }
23522
+ isNewWorkspace = presetId === emptyMapWorkspace.id;
23523
+ if (!isNewWorkspace) {
23524
+ _context4.next = 17;
23525
+ break;
23526
+ }
23527
+ _context4.t0 = {
23528
+ data: emptyWorkspaceBEData
23529
+ };
23530
+ _context4.next = 20;
23531
+ break;
23532
+ case 17:
23533
+ _context4.next = 19;
23534
+ return call(workspaceApi.getWorkspacePreset, presetId);
23535
+ case 19:
23536
+ _context4.t0 = _context4.sent;
23537
+ case 20:
23538
+ _ref4 = _context4.t0;
23539
+ presetToDuplicate = _ref4.data;
23540
+ fullPreset = Object.assign(Object.assign({}, presetToDuplicate), data);
23541
+ _context4.next = 25;
23542
+ return call(workspaceApi.saveWorkspacePresetAs, fullPreset);
23543
+ case 25:
23544
+ _newId = _context4.sent;
23545
+ _context4.next = 28;
23546
+ return put(workspaceListActions.onSuccessWorkspacePresetAction({
23547
+ workspaceId: _newId,
23548
+ action: presetAction,
23549
+ title: data.title
23550
+ }));
23551
+ case 28:
23552
+ if (!(presetAction === WorkspacePresetAction.DELETE)) {
23553
+ _context4.next = 33;
23554
+ break;
23555
+ }
23556
+ _context4.next = 31;
23557
+ return call(workspaceApi.deleteWorkspacePreset, presetId);
23558
+ case 31:
23559
+ _context4.next = 33;
23560
+ return put(workspaceListActions.onSuccessWorkspacePresetAction({
23561
+ workspaceId: presetId,
23562
+ action: presetAction,
23563
+ title: data.title
23564
+ }));
23565
+ case 33:
23566
+ if (!(presetAction === WorkspacePresetAction.SAVE_ALL)) {
23567
+ _context4.next = 66;
23568
+ break;
23569
+ }
23570
+ _context4.next = 36;
23571
+ return select(getWorkspaceState);
23572
+ case 36:
23573
+ workspace = _context4.sent;
23574
+ // first save a new workspace to make sure we have an unique title
23575
+ isNew = !workspace.scope || workspace.scope === 'system';
23576
+ if (!isNew) {
23577
+ _context4.next = 44;
23578
+ break;
23579
+ }
23580
+ _context4.next = 41;
23581
+ return call(workspaceApi.saveWorkspacePresetAs, data);
23582
+ case 41:
23583
+ _context4.t1 = _context4.sent;
23584
+ _context4.next = 45;
23585
+ break;
23586
+ case 44:
23587
+ _context4.t1 = data.id;
23588
+ case 45:
23589
+ workspaceId = _context4.t1;
23590
+ _context4.next = 48;
23591
+ return select(getViewPresets);
23592
+ case 48:
23593
+ views = _context4.sent;
23594
+ _context4.next = 51;
23595
+ return all(views.map(function (view) {
23596
+ return call(saveAllViewPresetSaga, view, data.title);
23597
+ }));
23598
+ case 51:
23599
+ savedViewPresetResult = _context4.sent;
23600
+ errorMessage = savedViewPresetResult.find(function (viewPresetResult) {
23601
+ return typeof viewPresetResult === 'string';
23602
+ });
23603
+ if (!errorMessage) {
23604
+ _context4.next = 55;
23605
+ break;
23606
+ }
23607
+ throw new Error(errorMessage);
23608
+ case 55:
23609
+ _context4.next = 57;
23610
+ return select(getWorkspaceData);
23611
+ case 57:
23612
+ workspaceData = _context4.sent;
23613
+ newWorkspace = Object.assign(Object.assign({}, workspaceData), {
23614
+ id: workspaceId,
23615
+ scope: 'user',
23616
+ title: data.title,
23617
+ "abstract": data["abstract"]
23618
+ });
23619
+ _context4.next = 61;
23620
+ return call(workspaceApi.saveWorkspacePreset, workspaceId, newWorkspace);
23621
+ case 61:
23622
+ _context4.next = 63;
23623
+ return put(workspaceListActions.onSuccessWorkspacePresetAction({
23624
+ action: WorkspacePresetAction.SAVE_ALL,
23625
+ workspaceId: workspaceId,
23626
+ title: newWorkspace.title,
23627
+ "abstract": newWorkspace["abstract"]
23628
+ }));
23629
+ case 63:
23630
+ if (!isNew) {
23631
+ _context4.next = 66;
23632
+ break;
23633
+ }
23634
+ _context4.next = 66;
23635
+ return put(routerActions.navigateToUrl({
23636
+ url: getWorkspaceRouteUrl(workspaceId)
23637
+ }));
23638
+ case 66:
23639
+ _context4.next = 73;
23640
+ break;
23641
+ case 68:
23642
+ _context4.prev = 68;
23643
+ _context4.t2 = _context4["catch"](3);
23644
+ message = isAxiosError(_context4.t2) ? getAxiosErrorMessage(_context4.t2) : _context4.t2.message;
23645
+ _context4.next = 73;
23646
+ return put(workspaceListActions.onErrorWorkspacePresetAction({
23647
+ error: {
23648
+ type: WorkspaceListErrorType.GENERIC,
23649
+ message: message
23650
+ }
23651
+ }));
23652
+ case 73:
23653
+ case "end":
23654
+ return _context4.stop();
23655
+ }
23656
+ }, _callee3, null, [[3, 68]]);
23657
+ })();
23658
+ }
23659
+ function rootSaga$1() {
23660
+ return _regeneratorRuntime().wrap(function rootSaga$(_context5) {
23661
+ while (1) switch (_context5.prev = _context5.next) {
23662
+ case 0:
23663
+ _context5.next = 2;
23060
23664
  return takeLeading$1(workspaceListActions.fetchWorkspaceList.type, fetchWorkspaceListSaga);
23061
23665
  case 2:
23062
- _context3.next = 4;
23666
+ _context5.next = 4;
23063
23667
  return takeLatest$1(workspaceListActions.onSuccessWorkspacePresetAction, onSuccessWorkspacePresetsActionSaga);
23064
23668
  case 4:
23669
+ _context5.next = 6;
23670
+ return takeLatest$1(workspaceListActions.submitFormWorkspaceActionDialogOptions, submitFormWorkspaceDialogSaga);
23671
+ case 6:
23065
23672
  case "end":
23066
- return _context3.stop();
23673
+ return _context5.stop();
23067
23674
  }
23068
- }, _marked$1);
23675
+ }, _marked2$1);
23069
23676
  }
23070
23677
 
23071
23678
  var _marked = /*#__PURE__*/_regeneratorRuntime().mark(fetchInitialViewPresetsSaga),
@@ -30413,20 +31020,39 @@ var WorkspaceWrapperProvider = withEggs([].concat(_toConsumableArray$1(coreModul
30413
31020
  theme: theme
30414
31021
  }, children);
30415
31022
  });
31023
+ var defaultAuthConfig = {
31024
+ isLoggedIn: true,
31025
+ auth: {
31026
+ username: 'user.name',
31027
+ token: '1223344',
31028
+ refresh_token: '33455214'
31029
+ },
31030
+ onLogin: function onLogin() {
31031
+ return null;
31032
+ },
31033
+ onSetAuth: function onSetAuth() {
31034
+ return null;
31035
+ },
31036
+ sessionStorageProvider: null
31037
+ };
30416
31038
  var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithStore(_ref3) {
30417
31039
  var children = _ref3.children,
30418
31040
  store = _ref3.store,
30419
31041
  _ref3$createApi = _ref3.createApi,
30420
31042
  createApi$1 = _ref3$createApi === void 0 ? createApi : _ref3$createApi,
30421
- theme = _ref3.theme;
30422
- return /*#__PURE__*/React__default.createElement(ApiProvider, {
31043
+ theme = _ref3.theme,
31044
+ _ref3$auth = _ref3.auth,
31045
+ auth = _ref3$auth === void 0 ? defaultAuthConfig : _ref3$auth;
31046
+ return /*#__PURE__*/React__default.createElement(AuthenticationProvider, {
31047
+ value: auth
31048
+ }, /*#__PURE__*/React__default.createElement(ApiProvider, {
30423
31049
  createApi: createApi$1,
30424
31050
  name: API_NAME
30425
31051
  }, /*#__PURE__*/React__default.createElement(Provider, {
30426
31052
  store: store
30427
31053
  }, /*#__PURE__*/React__default.createElement(WorkspaceWrapperProvider, {
30428
31054
  theme: theme
30429
- }, /*#__PURE__*/React__default.createElement(SnackbarWrapperConnect, null, children))));
31055
+ }, /*#__PURE__*/React__default.createElement(SnackbarWrapperConnect, null, children)))));
30430
31056
  };
30431
31057
 
30432
31058
  /* *
@@ -30453,7 +31079,7 @@ var WorkspaceModuleProvider = function WorkspaceModuleProvider(_ref) {
30453
31079
  return /*#__PURE__*/React.createElement(ApiProvider, {
30454
31080
  auth: auth,
30455
31081
  onSetAuth: onSetAuth,
30456
- createApi: config.baseURL ? createApi$1 : createApiWithoutSave,
31082
+ createApi: config.baseURL ? createApi$1 : createApi,
30457
31083
  config: config,
30458
31084
  name: API_NAME
30459
31085
  }, /*#__PURE__*/React.createElement(WorkspaceDndProvider, null, children));
@@ -30591,12 +31217,12 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
30591
31217
  "data-testid": "open-viewpresets",
30592
31218
  sx: Object.assign(Object.assign({}, buttonStyle), {
30593
31219
  '&&': {
30594
- backgroundColor: !isViewPresetDialogOpen && 'transparent',
31220
+ backgroundColor: !isViewPresetDialogOpen ? 'transparent' : undefined,
30595
31221
  '&:hover': {
30596
31222
  backgroundColor: 'geowebColors.workspace.tabButtonHover'
30597
31223
  },
30598
31224
  '.MuiSvgIcon-root > path': {
30599
- fill: isViewPresetDialogOpen && theme.palette.geowebColors.iconButtons.tool.active.color
31225
+ fill: isViewPresetDialogOpen ? theme.palette.geowebColors.iconButtons.tool.active.color : undefined
30600
31226
  }
30601
31227
  }
30602
31228
  }),
@@ -30818,11 +31444,13 @@ var getPresetIcon = function getPresetIcon(preset) {
30818
31444
  };
30819
31445
  var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
30820
31446
  var workspacePreset = _ref.workspacePreset,
30821
- currentSelectedId = _ref.currentSelectedId,
31447
+ isSelected = _ref.isSelected,
30822
31448
  onClickPreset = _ref.onClickPreset,
30823
31449
  onClickWorkspacePresetOption = _ref.onClickWorkspacePresetOption,
30824
31450
  _ref$isOptionsMenuOpe = _ref.isOptionsMenuOpen,
30825
31451
  isOptionsMenuOpen = _ref$isOptionsMenuOpe === void 0 ? false : _ref$isOptionsMenuOpe,
31452
+ _ref$isEditable = _ref.isEditable,
31453
+ isEditable = _ref$isEditable === void 0 ? false : _ref$isEditable,
30826
31454
  _ref$searchQuery = _ref.searchQuery,
30827
31455
  searchQuery = _ref$searchQuery === void 0 ? '' : _ref$searchQuery;
30828
31456
  var onDuplicate = function onDuplicate() {
@@ -30857,7 +31485,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
30857
31485
  }
30858
31486
  }, /*#__PURE__*/React__default.createElement(ListItemButton, {
30859
31487
  "data-testid": "workspacePresetsListItem",
30860
- selected: currentSelectedId === workspacePreset.id,
31488
+ selected: isSelected,
30861
31489
  onClick: function onClick() {
30862
31490
  onClickPreset(workspacePreset.id);
30863
31491
  },
@@ -30878,7 +31506,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
30878
31506
  sx: {
30879
31507
  margin: 0
30880
31508
  }
30881
- })), /*#__PURE__*/React__default.createElement(Grid, {
31509
+ })), isEditable && /*#__PURE__*/React__default.createElement(Grid, {
30882
31510
  sx: {
30883
31511
  minWidth: 56,
30884
31512
  marginLeft: 2
@@ -30942,6 +31570,7 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
30942
31570
  onClickPreset = _ref.onClickPreset,
30943
31571
  onClickWorkspacePresetOption = _ref.onClickWorkspacePresetOption,
30944
31572
  hideNewWorkspace = _ref.hideNewWorkspace,
31573
+ isLoggedIn = _ref.isLoggedIn,
30945
31574
  searchQuery = _ref.searchQuery,
30946
31575
  _ref$newPreset = _ref.newPreset,
30947
31576
  newPreset = _ref$newPreset === void 0 ? emptyWorkspaceListItem : _ref$newPreset;
@@ -30955,17 +31584,19 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
30955
31584
  }, workspacePresets.length, " results"), /*#__PURE__*/React.createElement(List, null, !hideNewWorkspace && /*#__PURE__*/React.createElement(WorkspaceSelectListRow, {
30956
31585
  key: newPreset.id,
30957
31586
  workspacePreset: newPreset,
30958
- currentSelectedId: currentSelectedId,
30959
31587
  onClickPreset: onClickPreset,
30960
- onClickWorkspacePresetOption: onClickWorkspacePresetOption
31588
+ onClickWorkspacePresetOption: onClickWorkspacePresetOption,
31589
+ isSelected: currentSelectedId === '' || currentSelectedId === undefined,
31590
+ isEditable: isLoggedIn
30961
31591
  }), workspacePresets.map(function (preset) {
30962
31592
  return /*#__PURE__*/React.createElement(WorkspaceSelectListRow, {
30963
31593
  key: preset.id,
30964
31594
  workspacePreset: preset,
30965
- currentSelectedId: currentSelectedId,
30966
31595
  onClickPreset: onClickPreset,
30967
31596
  onClickWorkspacePresetOption: onClickWorkspacePresetOption,
30968
- searchQuery: searchQuery
31597
+ isEditable: isLoggedIn,
31598
+ searchQuery: searchQuery,
31599
+ isSelected: currentSelectedId === preset.id
30969
31600
  });
30970
31601
  })));
30971
31602
  };
@@ -31008,6 +31639,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
31008
31639
  var isViewPresetsListFetching = useSelector(function (store) {
31009
31640
  return getViewPresetsIsFetching(store, panelId);
31010
31641
  });
31642
+ var _useAuthenticationCon = useAuthenticationContext(),
31643
+ isLoggedIn = _useAuthenticationCon.isLoggedIn;
31011
31644
  var dispatch = useDispatch();
31012
31645
  var openViewPresetsDialog = React.useCallback(function (viewPresetDialogOptions) {
31013
31646
  dispatch(viewPresetActions.openViewPresetDialog({
@@ -31087,7 +31720,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
31087
31720
  newPreset: Object.assign(Object.assign({}, emptyWorkspaceListItem), {
31088
31721
  id: undefined,
31089
31722
  title: MAPPRESET_ACTIVE_TITLE
31090
- })
31723
+ }),
31724
+ isLoggedIn: isLoggedIn
31091
31725
  }));
31092
31726
  };
31093
31727
 
@@ -31156,6 +31790,7 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
31156
31790
  isDefaultOpen = _ref$isDefaultOpen === void 0 ? false : _ref$isDefaultOpen,
31157
31791
  handleSave = _ref.handleSave,
31158
31792
  handleSaveAs = _ref.handleSaveAs,
31793
+ handleSaveAll = _ref.handleSaveAll,
31159
31794
  handleEdit = _ref.handleEdit,
31160
31795
  handleDelete = _ref.handleDelete,
31161
31796
  _ref$hasChanges = _ref.hasChanges,
@@ -31178,6 +31813,22 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
31178
31813
  setAnchorEl(document.getElementById(id));
31179
31814
  }
31180
31815
  }, [isDefaultOpen, id]);
31816
+ var options = [{
31817
+ title: 'Save',
31818
+ callback: handleSave
31819
+ }, {
31820
+ title: 'Save as',
31821
+ callback: handleSaveAs
31822
+ }].concat(_toConsumableArray$1(handleSaveAll ? [{
31823
+ title: 'Save all',
31824
+ callback: handleSaveAll
31825
+ }] : []), [{
31826
+ title: 'Edit',
31827
+ callback: handleEdit
31828
+ }, {
31829
+ title: 'Delete',
31830
+ callback: handleDelete
31831
+ }]);
31181
31832
  var renderButton = function renderButton() {
31182
31833
  return /*#__PURE__*/React.createElement(CustomToggleButton, {
31183
31834
  variant: "tool",
@@ -31190,8 +31841,8 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
31190
31841
  sx: {
31191
31842
  fontSize: '12px',
31192
31843
  '&&': {
31193
- color: activeTab && !isOpen && 'geowebColors.buttons.icon.active.color',
31194
- backgroundColor: !isOpen && 'transparent',
31844
+ color: activeTab && !isOpen ? 'geowebColors.buttons.icon.active.color' : undefined,
31845
+ backgroundColor: !isOpen ? 'transparent' : undefined,
31195
31846
  '&:hover': {
31196
31847
  color: activeTab ? 'geowebColors.buttons.icon.active.color' : 'inherit',
31197
31848
  backgroundColor: 'geowebColors.workspace.tabButtonHover'
@@ -31200,7 +31851,7 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
31200
31851
  display: 'block',
31201
31852
  width: '100%',
31202
31853
  height: 24,
31203
- fontStyle: hasChanges && 'italic',
31854
+ fontStyle: hasChanges ? 'italic' : undefined,
31204
31855
  fontWeight: 500,
31205
31856
  textOverflow: 'ellipsis',
31206
31857
  overflow: 'hidden',
@@ -31252,19 +31903,15 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
31252
31903
  letterSpacing: '0.4px',
31253
31904
  fontSize: 12
31254
31905
  }
31255
- }, "Options")), /*#__PURE__*/React.createElement(MenuItem, {
31256
- onClick: handleSave,
31257
- disabled: !handleSave
31258
- }, "Save"), /*#__PURE__*/React.createElement(MenuItem, {
31259
- onClick: handleSaveAs,
31260
- disabled: !handleSaveAs
31261
- }, "Save as"), /*#__PURE__*/React.createElement(MenuItem, {
31262
- onClick: handleEdit,
31263
- disabled: !handleEdit
31264
- }, "Edit"), /*#__PURE__*/React.createElement(MenuItem, {
31265
- onClick: handleDelete,
31266
- disabled: !handleDelete
31267
- }, "Delete")));
31906
+ }, "Options")), options.map(function (_ref2) {
31907
+ var title = _ref2.title,
31908
+ callback = _ref2.callback;
31909
+ return /*#__PURE__*/React.createElement(MenuItem, {
31910
+ key: title,
31911
+ onClick: callback,
31912
+ disabled: !callback
31913
+ }, title);
31914
+ })));
31268
31915
  };
31269
31916
  return isDisabled ? renderButton() : /*#__PURE__*/React.createElement(CustomTooltip, {
31270
31917
  title: !isOpen && title,
@@ -31618,7 +32265,7 @@ var WorkspaceView = function WorkspaceView(_ref) {
31618
32265
  }
31619
32266
  }, /*#__PURE__*/React.createElement(MosaicWithoutDragDropContext, {
31620
32267
  className: "geoweb-mosaic",
31621
- zeroStateView: EmptyView,
32268
+ zeroStateView: EmptyView || undefined,
31622
32269
  initialValue: screenConfig.mosaicNode,
31623
32270
  renderTile: function renderTile(viewId, path) {
31624
32271
  var windowIsActive = viewId === activeWindowId;
@@ -35500,6 +36147,8 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
35500
36147
  var error = useSelector(function (store) {
35501
36148
  return getWorkspaceListError(store);
35502
36149
  });
36150
+ var _useAuthenticationCon = useAuthenticationContext(),
36151
+ isLoggedIn = _useAuthenticationCon.isLoggedIn;
35503
36152
  var dispatch = useDispatch();
35504
36153
  var fetchWorkspaceList = React.useCallback(function () {
35505
36154
  var filterParams = constructFilterParams(workspaceListFilters, workspaceSearchQuery);
@@ -35638,6 +36287,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
35638
36287
  onClickPreset: onClickWorkspace,
35639
36288
  onClickWorkspacePresetOption: onClickWorkspacePresetOption,
35640
36289
  hideNewWorkspace: shouldHideNewWorkspace,
36290
+ isLoggedIn: isLoggedIn,
35641
36291
  searchQuery: workspaceSearchQuery
35642
36292
  }));
35643
36293
  };
@@ -35735,7 +36385,7 @@ var WorkspaceMenuButton = function WorkspaceMenuButton(_ref) {
35735
36385
  variant: "tool",
35736
36386
  sx: {
35737
36387
  '&&': {
35738
- backgroundColor: !showMenu && 'transparent',
36388
+ backgroundColor: !showMenu ? 'transparent' : undefined,
35739
36389
  '&:hover': {
35740
36390
  backgroundColor: 'geowebColors.workspace.tabButtonHover'
35741
36391
  }
@@ -35817,6 +36467,8 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
35817
36467
  activeTab = _ref.activeTab,
35818
36468
  workspaceId = _ref.workspaceId;
35819
36469
  var dispatch = useDispatch();
36470
+ var _useAuthenticationCon = useAuthenticationContext(),
36471
+ isLoggedIn = _useAuthenticationCon.isLoggedIn;
35820
36472
  var hasChanges = useSelector(function (store) {
35821
36473
  return hasWorkspaceChanges(store);
35822
36474
  });
@@ -35850,6 +36502,15 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
35850
36502
  })
35851
36503
  });
35852
36504
  };
36505
+ var onSaveAll = function onSaveAll() {
36506
+ setWorkspaceActionDialogOptions({
36507
+ action: WorkspacePresetAction.SAVE_ALL,
36508
+ presetId: workspaceId,
36509
+ formValues: Object.assign(Object.assign({}, workspaceData), {
36510
+ scope: 'user'
36511
+ })
36512
+ });
36513
+ };
35853
36514
  var onSave = React.useCallback(function () {
35854
36515
  dispatch(workspaceActions.saveWorkspacePreset({
35855
36516
  workspace: workspaceData
@@ -35862,8 +36523,9 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
35862
36523
  activeTab: activeTab,
35863
36524
  handleDelete: workspaceScope === 'user' ? onDelete : undefined,
35864
36525
  handleSaveAs: onSaveAs,
36526
+ handleSaveAll: onSaveAll,
35865
36527
  handleSave: workspaceScope === 'user' ? onSave : undefined,
35866
- isDisabled: !viewIds.length
36528
+ isDisabled: !viewIds.length || !isLoggedIn
35867
36529
  });
35868
36530
  };
35869
36531
 
@@ -35989,7 +36651,9 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
35989
36651
  event.preventDefault();
35990
36652
  onSubmit();
35991
36653
  };
35992
- var hasFormInput = action === WorkspacePresetAction.DUPLICATE || action === WorkspacePresetAction.SAVE_AS;
36654
+ var hasFormInput = action === WorkspacePresetAction.DUPLICATE || action === WorkspacePresetAction.SAVE_AS || action === WorkspacePresetAction.SAVE_ALL;
36655
+ // disable form inputs for 'save all' existing workspace preset
36656
+ var isDisabled = !!(action === WorkspacePresetAction.SAVE_ALL && formValues.id);
35993
36657
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, Boolean(error) && /*#__PURE__*/React__default.createElement(Box$2, {
35994
36658
  sx: {
35995
36659
  marginBottom: 2
@@ -36012,6 +36676,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
36012
36676
  validateTitle: validateTitle$1
36013
36677
  }
36014
36678
  },
36679
+ disabled: isDisabled,
36015
36680
  defaultValue: title
36016
36681
  })), /*#__PURE__*/React__default.createElement(ReactHookFormTextField, {
36017
36682
  name: "abstract",
@@ -36021,6 +36686,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
36021
36686
  },
36022
36687
  multiline: true,
36023
36688
  rows: 3,
36689
+ disabled: isDisabled,
36024
36690
  defaultValue: _abstract
36025
36691
  }), hiddenFields.map(function (_ref2) {
36026
36692
  var name = _ref2.name,
@@ -36039,14 +36705,23 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
36039
36705
  })));
36040
36706
  };
36041
36707
 
36042
- var emptyWorkspaceBEData = {
36043
- data: Object.assign(Object.assign({}, emptyMapWorkspace), {
36044
- views: [{
36045
- mosaicNodeId: 'emptyMapView',
36046
- viewPresetId: 'emptyMap'
36047
- }]
36048
- })
36049
- };
36708
+ /* *
36709
+ * Licensed under the Apache License, Version 2.0 (the "License");
36710
+ * you may not use this file except in compliance with the License.
36711
+ * You may obtain a copy of the License at
36712
+ *
36713
+ * http://www.apache.org/licenses/LICENSE-2.0
36714
+ *
36715
+ * Unless required by applicable law or agreed to in writing, software
36716
+ * distributed under the License is distributed on an "AS IS" BASIS,
36717
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36718
+ * See the License for the specific language governing permissions and
36719
+ * limitations under the License.
36720
+ *
36721
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
36722
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
36723
+ * */
36724
+ var DIALOG_TITLE_SAVE_ALL = 'Save all';
36050
36725
  var getDialogTitle = function getDialogTitle(action) {
36051
36726
  switch (action) {
36052
36727
  case WorkspacePresetAction.DELETE:
@@ -36057,6 +36732,10 @@ var getDialogTitle = function getDialogTitle(action) {
36057
36732
  {
36058
36733
  return 'Duplicate';
36059
36734
  }
36735
+ case WorkspacePresetAction.SAVE_ALL:
36736
+ {
36737
+ return DIALOG_TITLE_SAVE_ALL;
36738
+ }
36060
36739
  default:
36061
36740
  {
36062
36741
  return 'Save as';
@@ -36069,8 +36748,11 @@ var getConfirmLabel$1 = function getConfirmLabel(action) {
36069
36748
  {
36070
36749
  return 'Delete';
36071
36750
  }
36751
+ case WorkspacePresetAction.SAVE_ALL:
36752
+ {
36753
+ return DIALOG_TITLE_SAVE_ALL;
36754
+ }
36072
36755
  default:
36073
- case WorkspacePresetAction.DUPLICATE:
36074
36756
  {
36075
36757
  return 'Save';
36076
36758
  }
@@ -36081,104 +36763,18 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
36081
36763
  action = _ref.action,
36082
36764
  presetId = _ref.presetId,
36083
36765
  formValues = _ref.formValues,
36084
- onSuccess = _ref.onSuccess,
36085
- onClose = _ref.onClose;
36766
+ onClose = _ref.onClose,
36767
+ onFormSubmit = _ref.onFormSubmit,
36768
+ _ref$isLoading = _ref.isLoading,
36769
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
36770
+ error = _ref.error;
36086
36771
  var _useFormContext = useFormContext(),
36087
36772
  handleFormSubmit = _useFormContext.handleSubmit,
36088
36773
  reset = _useFormContext.reset;
36089
- var _useApiContext = useApiContext(),
36090
- api = _useApiContext.api;
36091
- var _React$useState = React__default.useState(),
36092
- _React$useState2 = _slicedToArray$2(_React$useState, 2),
36093
- error = _React$useState2[0],
36094
- setError = _React$useState2[1];
36095
- var _React$useState3 = React__default.useState(false),
36096
- _React$useState4 = _slicedToArray$2(_React$useState3, 2),
36097
- isLoading = _React$useState4[0],
36098
- setIsLoading = _React$useState4[1];
36099
- React__default.useEffect(function () {
36100
- if (!isOpen) {
36101
- setError(null);
36102
- }
36103
- }, [isOpen]);
36104
36774
  React__default.useEffect(function () {
36105
36775
  reset(formValues);
36106
36776
  }, [formValues, reset]);
36107
36777
  var confirmLabel = getConfirmLabel$1(action);
36108
- var onFormSubmit = function onFormSubmit(newFormValues) {
36109
- return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
36110
- var fullPreset, newId, isNewWorkspace, _ref2, presetToDuplicate, _fullPreset, _newId, message;
36111
- return _regeneratorRuntime().wrap(function _callee$(_context) {
36112
- while (1) switch (_context.prev = _context.next) {
36113
- case 0:
36114
- _context.prev = 0;
36115
- setError(null);
36116
- setIsLoading(true);
36117
- _context.t0 = action;
36118
- _context.next = _context.t0 === WorkspacePresetAction.SAVE_AS ? 6 : _context.t0 === WorkspacePresetAction.DUPLICATE ? 14 : _context.t0 === WorkspacePresetAction.DELETE ? 32 : 38;
36119
- break;
36120
- case 6:
36121
- newFormValues.id, fullPreset = __rest(newFormValues, ["id"]);
36122
- _context.next = 9;
36123
- return api.saveWorkspacePresetAs(fullPreset);
36124
- case 9:
36125
- newId = _context.sent;
36126
- setIsLoading(false);
36127
- onClose();
36128
- onSuccess(action, newId, newFormValues.title);
36129
- return _context.abrupt("break", 39);
36130
- case 14:
36131
- isNewWorkspace = presetId === emptyMapWorkspace.id;
36132
- if (!isNewWorkspace) {
36133
- _context.next = 19;
36134
- break;
36135
- }
36136
- _context.t1 = emptyWorkspaceBEData;
36137
- _context.next = 22;
36138
- break;
36139
- case 19:
36140
- _context.next = 21;
36141
- return api.getWorkspacePreset(presetId);
36142
- case 21:
36143
- _context.t1 = _context.sent;
36144
- case 22:
36145
- _ref2 = _context.t1;
36146
- presetToDuplicate = _ref2.data;
36147
- _fullPreset = Object.assign(Object.assign({}, presetToDuplicate), newFormValues);
36148
- _context.next = 27;
36149
- return api.saveWorkspacePresetAs(_fullPreset);
36150
- case 27:
36151
- _newId = _context.sent;
36152
- setIsLoading(false);
36153
- onClose();
36154
- onSuccess(action, _newId, newFormValues.title);
36155
- return _context.abrupt("break", 39);
36156
- case 32:
36157
- _context.next = 34;
36158
- return api.deleteWorkspacePreset(presetId);
36159
- case 34:
36160
- setIsLoading(false);
36161
- onClose();
36162
- onSuccess(action, presetId, newFormValues.title);
36163
- return _context.abrupt("break", 39);
36164
- case 38:
36165
- return _context.abrupt("break", 39);
36166
- case 39:
36167
- _context.next = 46;
36168
- break;
36169
- case 41:
36170
- _context.prev = 41;
36171
- _context.t2 = _context["catch"](0);
36172
- setIsLoading(false);
36173
- message = isAxiosError(_context.t2) ? getAxiosErrorMessage(_context.t2) : _context.t2.message;
36174
- setError(message);
36175
- case 46:
36176
- case "end":
36177
- return _context.stop();
36178
- }
36179
- }, _callee, null, [[0, 41]]);
36180
- }));
36181
- };
36182
36778
  var onSubmit = function onSubmit() {
36183
36779
  handleFormSubmit(function (newFormValues) {
36184
36780
  var title = newFormValues.title,
@@ -36190,7 +36786,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
36190
36786
  title: trimmedTitle,
36191
36787
  "abstract": trimmedAbstract
36192
36788
  });
36193
- onFormSubmit(parsedFormValues);
36789
+ onFormSubmit(action, presetId, parsedFormValues);
36194
36790
  })();
36195
36791
  };
36196
36792
  return /*#__PURE__*/React__default.createElement(ConfirmationDialog, {
@@ -36223,6 +36819,7 @@ var WorkspacePresetsFormDialogWrapper = function WorkspacePresetsFormDialogWrapp
36223
36819
 
36224
36820
  var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
36225
36821
  var workspaceId = _ref.workspaceId;
36822
+ var _a;
36226
36823
  var dispatch = useDispatch();
36227
36824
  var title = useSelector(function (store) {
36228
36825
  return getSelectedWorkspaceTitle(store);
@@ -36233,16 +36830,18 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
36233
36830
  var closeWorkspaceActionDialog = React.useCallback(function () {
36234
36831
  dispatch(workspaceListActions.closeWorkspaceActionDialogOptions());
36235
36832
  }, [dispatch]);
36236
- var onSuccesWorkspaceDialogAction = React.useCallback(function (action, workspaceId, title) {
36237
- dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
36238
- workspaceId: workspaceId,
36239
- action: action,
36240
- title: title
36833
+ var onSubmitForm = function onSubmitForm(presetAction, presetId, data) {
36834
+ dispatch(workspaceListActions.submitFormWorkspaceActionDialogOptions({
36835
+ presetAction: presetAction,
36836
+ presetId: presetId,
36837
+ data: data
36241
36838
  }));
36242
- }, [dispatch]);
36839
+ };
36243
36840
  var presetId = _typeof$2(dialogDetails) === 'object' && dialogDetails.presetId;
36244
36841
  var action = _typeof$2(dialogDetails) === 'object' && dialogDetails.action;
36245
36842
  var formValues = _typeof$2(dialogDetails) === 'object' && dialogDetails.formValues;
36843
+ var isFetching = _typeof$2(dialogDetails) === 'object' && dialogDetails.isFetching || false;
36844
+ var error = _typeof$2(dialogDetails) === 'object' && ((_a = dialogDetails.error) === null || _a === void 0 ? void 0 : _a.message);
36246
36845
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WorkspaceTab, {
36247
36846
  activeTab: true,
36248
36847
  title: title,
@@ -36250,10 +36849,12 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
36250
36849
  }), Boolean(dialogDetails) && /*#__PURE__*/React.createElement(WorkspacePresetsFormDialogWrapper, {
36251
36850
  isOpen: Boolean(dialogDetails),
36252
36851
  onClose: closeWorkspaceActionDialog,
36253
- onSuccess: onSuccesWorkspaceDialogAction,
36254
- presetId: presetId,
36255
- action: action,
36256
- formValues: formValues
36852
+ presetId: presetId || undefined,
36853
+ action: action || undefined,
36854
+ formValues: formValues || undefined,
36855
+ onFormSubmit: onSubmitForm,
36856
+ isLoading: isFetching,
36857
+ error: error || undefined
36257
36858
  }));
36258
36859
  };
36259
36860
 
@@ -36378,11 +36979,12 @@ var getConfirmLabel = function getConfirmLabel(action) {
36378
36979
  {
36379
36980
  return 'Delete';
36380
36981
  }
36381
- default:
36382
36982
  case PresetAction.SAVE_AS:
36383
36983
  {
36384
36984
  return 'Save';
36385
36985
  }
36986
+ default:
36987
+ return 'Save';
36386
36988
  }
36387
36989
  };
36388
36990
  var MapPresetsFormDialog = function MapPresetsFormDialog(_ref) {
@@ -36681,4 +37283,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
36681
37283
  }))), /*#__PURE__*/React.createElement(MapPresetsFormDialogConnect, null));
36682
37284
  };
36683
37285
 
36684
- export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceDndProvider, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceThemeProvider, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProvider, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, emptyMapWorkspace, getWorkspaceRouteUrl, selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, routes as workspaceRoutes };
37286
+ export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceDndProvider, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceThemeProvider, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProvider, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, defaultAuthConfig, emptyMapWorkspace, getWorkspaceRouteUrl, selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, routes as workspaceRoutes };