@opengeoweb/core 8.3.0 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -14,13 +14,12 @@ import Grid$1 from '@mui/material/Grid';
14
14
  import { LegendLayout, MapControlButton, ZoomControls, CanvasComponent, MapView, MapViewLayer, LegendDialog, emptyGeoJSON, MapControls, publicLayers } from '@opengeoweb/webmap-react';
15
15
  import _, { isEqual as isEqual$1, debounce, groupBy, throttle as throttle$1, range } from 'lodash';
16
16
  import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
17
+ import { useFormContext } from 'react-hook-form';
17
18
  import moment from 'moment';
18
19
  import Draggable from 'react-draggable';
19
20
  import { flushSync } from 'react-dom';
20
21
  import axios from 'axios';
21
22
  import { useDebounce } from '@opengeoweb/api';
22
- import { createStore } from '@redux-eggs/redux-toolkit';
23
- import { getSagaExtension } from '@redux-eggs/saga-extension';
24
23
 
25
24
  function _iterableToArrayLimit(r, l) {
26
25
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
@@ -9016,7 +9015,7 @@ tags.forEach(function (tagName) {
9016
9015
  });
9017
9016
 
9018
9017
  /**
9019
- * @mui/styled-engine v5.14.10
9018
+ * @mui/styled-engine v5.14.14
9020
9019
  *
9021
9020
  * @license MIT
9022
9021
  * This source code is licensed under the MIT license found in the
@@ -15363,39 +15362,6 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect() {
15363
15362
  });
15364
15363
  };
15365
15364
 
15366
- const HookFormContext = React__default.createContext(null);
15367
- /**
15368
- * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.
15369
- *
15370
- * @remarks
15371
- * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)
15372
- *
15373
- * @returns return all useForm methods
15374
- *
15375
- * @example
15376
- * ```tsx
15377
- * function App() {
15378
- * const methods = useForm();
15379
- * const onSubmit = data => console.log(data);
15380
- *
15381
- * return (
15382
- * <FormProvider {...methods} >
15383
- * <form onSubmit={methods.handleSubmit(onSubmit)}>
15384
- * <NestedInput />
15385
- * <input type="submit" />
15386
- * </form>
15387
- * </FormProvider>
15388
- * );
15389
- * }
15390
- *
15391
- * function NestedInput() {
15392
- * const { register } = useFormContext(); // retrieve all hook methods
15393
- * return <input {...register("test")} />;
15394
- * }
15395
- * ```
15396
- */
15397
- const useFormContext = () => React__default.useContext(HookFormContext);
15398
-
15399
15365
  var style = {
15400
15366
  textField: {
15401
15367
  width: '100%',
@@ -22110,7 +22076,7 @@ var getLayersToUpdate = function getLayersToUpdate(layers, mapId) {
22110
22076
  });
22111
22077
  };
22112
22078
 
22113
- /*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */
22079
+ /*! @license DOMPurify 3.0.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.6/LICENSE */
22114
22080
 
22115
22081
  const {
22116
22082
  entries,
@@ -22130,12 +22096,6 @@ let {
22130
22096
  construct
22131
22097
  } = typeof Reflect !== 'undefined' && Reflect;
22132
22098
 
22133
- if (!apply) {
22134
- apply = function apply(fun, thisValue, args) {
22135
- return fun.apply(thisValue, args);
22136
- };
22137
- }
22138
-
22139
22099
  if (!freeze) {
22140
22100
  freeze = function freeze(x) {
22141
22101
  return x;
@@ -22148,6 +22108,12 @@ if (!seal) {
22148
22108
  };
22149
22109
  }
22150
22110
 
22111
+ if (!apply) {
22112
+ apply = function apply(fun, thisValue, args) {
22113
+ return fun.apply(thisValue, args);
22114
+ };
22115
+ }
22116
+
22151
22117
  if (!construct) {
22152
22118
  construct = function construct(Func, args) {
22153
22119
  return new Func(...args);
@@ -22165,6 +22131,13 @@ const stringIndexOf = unapply(String.prototype.indexOf);
22165
22131
  const stringTrim = unapply(String.prototype.trim);
22166
22132
  const regExpTest = unapply(RegExp.prototype.test);
22167
22133
  const typeErrorCreate = unconstruct(TypeError);
22134
+ /**
22135
+ * Creates a new function that calls the given function with a specified thisArg and arguments.
22136
+ *
22137
+ * @param {Function} func - The function to be wrapped and called.
22138
+ * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.
22139
+ */
22140
+
22168
22141
  function unapply(func) {
22169
22142
  return function (thisArg) {
22170
22143
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
@@ -22174,6 +22147,14 @@ function unapply(func) {
22174
22147
  return apply(func, thisArg, args);
22175
22148
  };
22176
22149
  }
22150
+ /**
22151
+ * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
22152
+ *
22153
+ * @param {Function} func - The constructor function to be wrapped and called.
22154
+ * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.
22155
+ */
22156
+
22157
+
22177
22158
  function unconstruct(func) {
22178
22159
  return function () {
22179
22160
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
@@ -22183,12 +22164,18 @@ function unconstruct(func) {
22183
22164
  return construct(func, args);
22184
22165
  };
22185
22166
  }
22186
- /* Add properties to a lookup table */
22167
+ /**
22168
+ * Add properties to a lookup table
22169
+ *
22170
+ * @param {Object} set - The set to which elements will be added.
22171
+ * @param {Array} array - The array containing elements to be added to the set.
22172
+ * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.
22173
+ * @returns {Object} The modified set with added elements.
22174
+ */
22187
22175
 
22188
- function addToSet(set, array, transformCaseFunc) {
22189
- var _transformCaseFunc;
22190
22176
 
22191
- transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;
22177
+ function addToSet(set, array) {
22178
+ let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;
22192
22179
 
22193
22180
  if (setPrototypeOf) {
22194
22181
  // Make 'in' and truthy checks like Boolean(set.constructor)
@@ -22220,19 +22207,32 @@ function addToSet(set, array, transformCaseFunc) {
22220
22207
 
22221
22208
  return set;
22222
22209
  }
22223
- /* Shallow clone an object */
22210
+ /**
22211
+ * Shallow clone an object
22212
+ *
22213
+ * @param {Object} object - The object to be cloned.
22214
+ * @returns {Object} A new object that copies the original.
22215
+ */
22216
+
22224
22217
 
22225
22218
  function clone(object) {
22226
22219
  const newObject = create(null);
22227
22220
 
22228
22221
  for (const [property, value] of entries(object)) {
22229
- newObject[property] = value;
22222
+ if (getOwnPropertyDescriptor(object, property) !== undefined) {
22223
+ newObject[property] = value;
22224
+ }
22230
22225
  }
22231
22226
 
22232
22227
  return newObject;
22233
22228
  }
22234
- /* This method automatically checks if the prop is function
22235
- * or getter and behaves accordingly. */
22229
+ /**
22230
+ * This method automatically checks if the prop is function or getter and behaves accordingly.
22231
+ *
22232
+ * @param {Object} object - The object to look up the getter function in its prototype chain.
22233
+ * @param {String} prop - The property name for which to find the getter function.
22234
+ * @returns {Function} The getter function found in the prototype chain or a fallback function.
22235
+ */
22236
22236
 
22237
22237
  function lookupGetter(object, prop) {
22238
22238
  while (object !== null) {
@@ -22307,7 +22307,9 @@ var EXPRESSIONS = /*#__PURE__*/Object.freeze({
22307
22307
  DOCTYPE_NAME: DOCTYPE_NAME
22308
22308
  });
22309
22309
 
22310
- const getGlobal = () => typeof window === 'undefined' ? null : window;
22310
+ const getGlobal = function getGlobal() {
22311
+ return typeof window === 'undefined' ? null : window;
22312
+ };
22311
22313
  /**
22312
22314
  * Creates a no-op policy for internal use only.
22313
22315
  * Don't export this function outside this module!
@@ -22365,7 +22367,7 @@ function createDOMPurify() {
22365
22367
  */
22366
22368
 
22367
22369
 
22368
- DOMPurify.version = '3.0.5';
22370
+ DOMPurify.version = '3.0.6';
22369
22371
  /**
22370
22372
  * Array of elements that DOMPurify removed during sanitation.
22371
22373
  * Empty if nothing was removed.
@@ -22380,11 +22382,11 @@ function createDOMPurify() {
22380
22382
  return DOMPurify;
22381
22383
  }
22382
22384
 
22383
- const originalDocument = window.document;
22384
- const currentScript = originalDocument.currentScript;
22385
22385
  let {
22386
22386
  document
22387
22387
  } = window;
22388
+ const originalDocument = document;
22389
+ const currentScript = originalDocument.currentScript;
22388
22390
  const {
22389
22391
  DocumentFragment,
22390
22392
  HTMLTemplateElement,
@@ -22464,7 +22466,7 @@ function createDOMPurify() {
22464
22466
  * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
22465
22467
  */
22466
22468
 
22467
- let CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
22469
+ let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
22468
22470
  tagNameCheck: {
22469
22471
  writable: true,
22470
22472
  configurable: false,
@@ -22588,10 +22590,10 @@ function createDOMPurify() {
22588
22590
  const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
22589
22591
  /* Parsing of strict XHTML documents */
22590
22592
 
22591
- let PARSER_MEDIA_TYPE;
22593
+ let PARSER_MEDIA_TYPE = null;
22592
22594
  const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
22593
22595
  const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
22594
- let transformCaseFunc;
22596
+ let transformCaseFunc = null;
22595
22597
  /* Keep a reference to config to pass to hooks */
22596
22598
 
22597
22599
  let CONFIG = null;
@@ -22612,7 +22614,9 @@ function createDOMPurify() {
22612
22614
  // eslint-disable-next-line complexity
22613
22615
 
22614
22616
 
22615
- const _parseConfig = function _parseConfig(cfg) {
22617
+ const _parseConfig = function _parseConfig() {
22618
+ let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22619
+
22616
22620
  if (CONFIG && CONFIG === cfg) {
22617
22621
  return;
22618
22622
  }
@@ -22831,8 +22835,6 @@ function createDOMPurify() {
22831
22835
  const ALL_MATHML_TAGS = addToSet({}, mathMl$1);
22832
22836
  addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
22833
22837
  /**
22834
- *
22835
- *
22836
22838
  * @param {Element} element a DOM element whose namespace is being checked
22837
22839
  * @returns {boolean} Return false if the element has a
22838
22840
  * namespace that a spec-compliant parser would never
@@ -22988,8 +22990,8 @@ function createDOMPurify() {
22988
22990
 
22989
22991
  const _initDocument = function _initDocument(dirty) {
22990
22992
  /* Create a HTML document */
22991
- let doc;
22992
- let leadingWhitespace;
22993
+ let doc = null;
22994
+ let leadingWhitespace = null;
22993
22995
 
22994
22996
  if (FORCE_BODY) {
22995
22997
  dirty = '<remove></remove>' + dirty;
@@ -23042,16 +23044,16 @@ function createDOMPurify() {
23042
23044
  return WHOLE_DOCUMENT ? doc.documentElement : body;
23043
23045
  };
23044
23046
  /**
23045
- * _createIterator
23047
+ * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
23046
23048
  *
23047
- * @param {Document} root document/fragment to create iterator for
23048
- * @return {Iterator} iterator instance
23049
+ * @param {Node} root The root element or node to start traversing on.
23050
+ * @return {NodeIterator} The created NodeIterator
23049
23051
  */
23050
23052
 
23051
23053
 
23052
- const _createIterator = function _createIterator(root) {
23054
+ const _createNodeIterator = function _createNodeIterator(root) {
23053
23055
  return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise
23054
- NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
23056
+ NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null);
23055
23057
  };
23056
23058
  /**
23057
23059
  * _isClobbered
@@ -23065,15 +23067,15 @@ function createDOMPurify() {
23065
23067
  return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');
23066
23068
  };
23067
23069
  /**
23068
- * _isNode
23070
+ * Checks whether the given object is a DOM node.
23069
23071
  *
23070
- * @param {Node} obj object to check whether it's a DOM node
23072
+ * @param {Node} object object to check whether it's a DOM node
23071
23073
  * @return {Boolean} true is object is a DOM node
23072
23074
  */
23073
23075
 
23074
23076
 
23075
23077
  const _isNode = function _isNode(object) {
23076
- return typeof Node === 'object' ? object instanceof Node : object && typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';
23078
+ return typeof Node === 'function' && object instanceof Node;
23077
23079
  };
23078
23080
  /**
23079
23081
  * _executeHook
@@ -23107,7 +23109,7 @@ function createDOMPurify() {
23107
23109
 
23108
23110
 
23109
23111
  const _sanitizeElements = function _sanitizeElements(currentNode) {
23110
- let content;
23112
+ let content = null;
23111
23113
  /* Execute a hook if present */
23112
23114
 
23113
23115
  _executeHook('beforeSanitizeElements', currentNode, null);
@@ -23132,7 +23134,7 @@ function createDOMPurify() {
23132
23134
  /* Detect mXSS attempts abusing namespace confusion */
23133
23135
 
23134
23136
 
23135
- if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
23137
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
23136
23138
  _forceRemove(currentNode);
23137
23139
 
23138
23140
  return true;
@@ -23142,9 +23144,14 @@ function createDOMPurify() {
23142
23144
 
23143
23145
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
23144
23146
  /* Check if we have a custom element to handle */
23145
- if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
23146
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
23147
- if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
23147
+ if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
23148
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
23149
+ return false;
23150
+ }
23151
+
23152
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
23153
+ return false;
23154
+ }
23148
23155
  }
23149
23156
  /* Keep content except for bad-listed elements */
23150
23157
 
@@ -23188,9 +23195,9 @@ function createDOMPurify() {
23188
23195
  if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
23189
23196
  /* Get the element's text content */
23190
23197
  content = currentNode.textContent;
23191
- content = stringReplace(content, MUSTACHE_EXPR, ' ');
23192
- content = stringReplace(content, ERB_EXPR, ' ');
23193
- content = stringReplace(content, TMPLIT_EXPR, ' ');
23198
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
23199
+ content = stringReplace(content, expr, ' ');
23200
+ });
23194
23201
 
23195
23202
  if (currentNode.textContent !== content) {
23196
23203
  arrayPush(DOMPurify.removed, {
@@ -23232,7 +23239,7 @@ function createDOMPurify() {
23232
23239
  if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND
23233
23240
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
23234
23241
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
23235
- _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
23242
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
23236
23243
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
23237
23244
  lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
23238
23245
  return false;
@@ -23246,14 +23253,16 @@ function createDOMPurify() {
23246
23253
  return true;
23247
23254
  };
23248
23255
  /**
23249
- * _basicCustomElementCheck
23256
+ * _isBasicCustomElement
23250
23257
  * checks if at least one dash is included in tagName, and it's not the first char
23251
23258
  * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
23259
+ *
23252
23260
  * @param {string} tagName name of the tag of the node to sanitize
23261
+ * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
23253
23262
  */
23254
23263
 
23255
23264
 
23256
- const _basicCustomElementTest = function _basicCustomElementTest(tagName) {
23265
+ const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
23257
23266
  return tagName.indexOf('-') > 0;
23258
23267
  };
23259
23268
  /**
@@ -23269,12 +23278,7 @@ function createDOMPurify() {
23269
23278
 
23270
23279
 
23271
23280
  const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
23272
- let attr;
23273
- let value;
23274
- let lcName;
23275
- let l;
23276
23281
  /* Execute a hook if present */
23277
-
23278
23282
  _executeHook('beforeSanitizeAttributes', currentNode, null);
23279
23283
 
23280
23284
  const {
@@ -23292,17 +23296,18 @@ function createDOMPurify() {
23292
23296
  keepAttr: true,
23293
23297
  allowedAttributes: ALLOWED_ATTR
23294
23298
  };
23295
- l = attributes.length;
23299
+ let l = attributes.length;
23296
23300
  /* Go backwards over all attributes; safely remove bad ones */
23297
23301
 
23298
23302
  while (l--) {
23299
- attr = attributes[l];
23303
+ const attr = attributes[l];
23300
23304
  const {
23301
23305
  name,
23302
- namespaceURI
23306
+ namespaceURI,
23307
+ value: attrValue
23303
23308
  } = attr;
23304
- value = name === 'value' ? attr.value : stringTrim(attr.value);
23305
- lcName = transformCaseFunc(name);
23309
+ const lcName = transformCaseFunc(name);
23310
+ let value = name === 'value' ? attrValue : stringTrim(attrValue);
23306
23311
  /* Execute a hook if present */
23307
23312
 
23308
23313
  hookEvent.attrName = lcName;
@@ -23340,9 +23345,9 @@ function createDOMPurify() {
23340
23345
 
23341
23346
 
23342
23347
  if (SAFE_FOR_TEMPLATES) {
23343
- value = stringReplace(value, MUSTACHE_EXPR, ' ');
23344
- value = stringReplace(value, ERB_EXPR, ' ');
23345
- value = stringReplace(value, TMPLIT_EXPR, ' ');
23348
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
23349
+ value = stringReplace(value, expr, ' ');
23350
+ });
23346
23351
  }
23347
23352
  /* Is `value` valid for this attribute? */
23348
23353
 
@@ -23411,9 +23416,9 @@ function createDOMPurify() {
23411
23416
 
23412
23417
 
23413
23418
  const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
23414
- let shadowNode;
23419
+ let shadowNode = null;
23415
23420
 
23416
- const shadowIterator = _createIterator(fragment);
23421
+ const shadowIterator = _createNodeIterator(fragment);
23417
23422
  /* Execute a hook if present */
23418
23423
 
23419
23424
 
@@ -23449,17 +23454,17 @@ function createDOMPurify() {
23449
23454
  * Public method providing core sanitation functionality
23450
23455
  *
23451
23456
  * @param {String|Node} dirty string or DOM node
23452
- * @param {Object} configuration object
23457
+ * @param {Object} cfg object
23453
23458
  */
23454
23459
  // eslint-disable-next-line complexity
23455
23460
 
23456
23461
 
23457
23462
  DOMPurify.sanitize = function (dirty) {
23458
23463
  let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
23459
- let body;
23460
- let importedNode;
23461
- let currentNode;
23462
- let returnNode;
23464
+ let body = null;
23465
+ let importedNode = null;
23466
+ let currentNode = null;
23467
+ let returnNode = null;
23463
23468
  /* Make sure we have a string to sanitize.
23464
23469
  DO NOT return early, as this will return the wrong type if
23465
23470
  the user has requested a DOM object rather than a string */
@@ -23554,7 +23559,7 @@ function createDOMPurify() {
23554
23559
  /* Get node iterator */
23555
23560
 
23556
23561
 
23557
- const nodeIterator = _createIterator(IN_PLACE ? dirty : body);
23562
+ const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
23558
23563
  /* Now start iterating over the created document */
23559
23564
 
23560
23565
 
@@ -23619,9 +23624,9 @@ function createDOMPurify() {
23619
23624
 
23620
23625
 
23621
23626
  if (SAFE_FOR_TEMPLATES) {
23622
- serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');
23623
- serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');
23624
- serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR, ' ');
23627
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
23628
+ serializedHTML = stringReplace(serializedHTML, expr, ' ');
23629
+ });
23625
23630
  }
23626
23631
 
23627
23632
  return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
@@ -23634,7 +23639,9 @@ function createDOMPurify() {
23634
23639
  */
23635
23640
 
23636
23641
 
23637
- DOMPurify.setConfig = function (cfg) {
23642
+ DOMPurify.setConfig = function () {
23643
+ let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23644
+
23638
23645
  _parseConfig(cfg);
23639
23646
 
23640
23647
  SET_CONFIG = true;
@@ -23655,9 +23662,9 @@ function createDOMPurify() {
23655
23662
  * Uses last set config, if any. Otherwise, uses config defaults.
23656
23663
  * isValidAttribute
23657
23664
  *
23658
- * @param {string} tag Tag name of containing element.
23659
- * @param {string} attr Attribute name.
23660
- * @param {string} value Attribute value.
23665
+ * @param {String} tag Tag name of containing element.
23666
+ * @param {String} attr Attribute name.
23667
+ * @param {String} value Attribute value.
23661
23668
  * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
23662
23669
  */
23663
23670
 
@@ -23720,7 +23727,6 @@ function createDOMPurify() {
23720
23727
  /**
23721
23728
  * RemoveAllHooks
23722
23729
  * Public method to remove all DOMPurify hooks
23723
- *
23724
23730
  */
23725
23731
 
23726
23732
 
@@ -24960,26 +24966,6 @@ var SyncGroupViewerConnect = function SyncGroupViewerConnect() {
24960
24966
  });
24961
24967
  };
24962
24968
 
24963
- /* *
24964
- * Licensed under the Apache License, Version 2.0 (the "License");
24965
- * you may not use this file except in compliance with the License.
24966
- * You may obtain a copy of the License at
24967
- *
24968
- * http://www.apache.org/licenses/LICENSE-2.0
24969
- *
24970
- * Unless required by applicable law or agreed to in writing, software
24971
- * distributed under the License is distributed on an "AS IS" BASIS,
24972
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24973
- * See the License for the specific language governing permissions and
24974
- * limitations under the License.
24975
- *
24976
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
24977
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
24978
- * */
24979
- var store = createStore({
24980
- extensions: [getSagaExtension()]
24981
- });
24982
-
24983
24969
  /* *
24984
24970
  * Licensed under the Apache License, Version 2.0 (the "License");
24985
24971
  * you may not use this file except in compliance with the License.
@@ -27380,7 +27366,7 @@ var CoreThemeStoreProvider = function CoreThemeStoreProvider(_ref3) {
27380
27366
  };
27381
27367
 
27382
27368
  /**
27383
- * @remix-run/router v1.9.0
27369
+ * @remix-run/router v1.10.0
27384
27370
  *
27385
27371
  * Copyright (c) Remix Software Inc.
27386
27372
  *
@@ -27620,7 +27606,7 @@ const validMutationMethodsArr = ["post", "put", "patch", "delete"];
27620
27606
  ["get", ...validMutationMethodsArr];
27621
27607
 
27622
27608
  /**
27623
- * React Router v6.16.0
27609
+ * React Router v6.17.0
27624
27610
  *
27625
27611
  * Copyright (c) Remix Software Inc.
27626
27612
  *
@@ -27664,7 +27650,7 @@ if (process.env.NODE_ENV !== "production") {
27664
27650
  * A Navigator is a "location changer"; it's how you get to different locations.
27665
27651
  *
27666
27652
  * Every history instance conforms to the Navigator interface, but the
27667
- * distinction is useful primarily when it comes to the low-level <Router> API
27653
+ * distinction is useful primarily when it comes to the low-level `<Router>` API
27668
27654
  * where both the location and a navigator must be provided separately in order
27669
27655
  * to avoid "tearing" that may occur in a suspense-enabled app if the action
27670
27656
  * and/or location were to be read directly from the history instance.
@@ -27692,7 +27678,7 @@ if (process.env.NODE_ENV !== "production") {
27692
27678
  }
27693
27679
 
27694
27680
  /**
27695
- * Returns true if this component is a descendant of a <Router>.
27681
+ * Returns true if this component is a descendant of a `<Router>`.
27696
27682
  *
27697
27683
  * @see https://reactrouter.com/hooks/use-in-router-context
27698
27684
  */
@@ -27735,7 +27721,7 @@ function useIsomorphicLayoutEffect(cb) {
27735
27721
  }
27736
27722
 
27737
27723
  /**
27738
- * Returns an imperative method for changing the location. Used by <Link>s, but
27724
+ * Returns an imperative method for changing the location. Used by `<Link>`s, but
27739
27725
  * may also be used by other elements to change the location.
27740
27726
  *
27741
27727
  * @see https://reactrouter.com/hooks/use-navigate
@@ -27943,4 +27929,4 @@ var AppWrapperConnect = withEggs([appModuleConfig])(function (_ref) {
27943
27929
  return children;
27944
27930
  });
27945
27931
 
27946
- export { AppWrapperConnect, ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, HarmonieTempAndPrecipPreset, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LayerSelectConnect, LegendConnect, LegendMapButtonConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, RouterWrapperConnect, SnackbarWrapperConnect, SyncGroupViewerConnect, TimeSlider, BackwardForwardStepButtonConnect as TimeSliderBackwardForwardStepButtonConnect, TimeSliderButtonsConnectMemo as TimeSliderButtonsConnect, TimeSliderConnect, TimeSliderLite, TimeSliderLiteConnect, TimeSliderLiteOptionsMenu, timeSliderLiteUtils as TimeSliderLiteUtils, OptionsMenuButtonConnect as TimeSliderOptionsMenuButtonConnect, PlayButtonConnect as TimeSliderPlayButtonConnect, ZoomControlConnect, componentsLookUp, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, store, testLayers, timeSliderUtils, useFetchServices, useSetupDialog };
27932
+ export { AppWrapperConnect, ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, HarmonieTempAndPrecipPreset, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LayerSelectConnect, LegendConnect, LegendMapButtonConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, RouterWrapperConnect, SnackbarWrapperConnect, SyncGroupViewerConnect, TimeSlider, BackwardForwardStepButtonConnect as TimeSliderBackwardForwardStepButtonConnect, TimeSliderButtonsConnectMemo as TimeSliderButtonsConnect, TimeSliderConnect, TimeSliderLite, TimeSliderLiteConnect, TimeSliderLiteOptionsMenu, timeSliderLiteUtils as TimeSliderLiteUtils, OptionsMenuButtonConnect as TimeSliderOptionsMenuButtonConnect, PlayButtonConnect as TimeSliderPlayButtonConnect, ZoomControlConnect, componentsLookUp, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, testLayers, timeSliderUtils, useFetchServices, useSetupDialog };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "8.3.0",
3
+ "version": "8.3.1",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -13,31 +13,31 @@
13
13
  "dependencies": {},
14
14
  "peerDependencies": {
15
15
  "@mui/material": "5.12.0",
16
- "@mui/system": "5.14.10",
17
- "@opengeoweb/api": "8.3.0",
18
- "@opengeoweb/form-fields": "8.3.0",
19
- "@opengeoweb/shared": "8.3.0",
20
- "@opengeoweb/store": "8.3.0",
21
- "@opengeoweb/theme": "8.3.0",
22
- "@opengeoweb/webmap": "8.3.0",
23
- "@opengeoweb/webmap-react": "8.3.0",
16
+ "@mui/system": "5.14.14",
17
+ "@opengeoweb/api": "8.3.1",
18
+ "@opengeoweb/form-fields": "8.3.1",
19
+ "@opengeoweb/shared": "8.3.1",
20
+ "@opengeoweb/store": "8.3.1",
21
+ "@opengeoweb/theme": "8.3.1",
22
+ "@opengeoweb/webmap": "8.3.1",
23
+ "@opengeoweb/webmap-react": "8.3.1",
24
24
  "@redux-eggs/redux-toolkit": "2.2.0",
25
25
  "@redux-eggs/saga-extension": "2.2.0",
26
- "@reduxjs/toolkit": "1.9.5",
26
+ "@reduxjs/toolkit": "1.9.7",
27
27
  "axios": "1.5.0",
28
28
  "date-fns": "2.30.0",
29
- "dompurify": "3.0.5",
30
- "i18next": "23.5.1",
29
+ "dompurify": "3.0.6",
30
+ "i18next": "23.6.0",
31
31
  "immer": "9.0.21",
32
32
  "lodash": "4.17.21",
33
33
  "moment": "2.29.4",
34
34
  "re-resizable": "6.9.11",
35
35
  "react": "18.2.0",
36
- "react-draggable": "4.4.5",
37
- "react-hook-form": "7.46.2",
38
- "react-i18next": "13.2.2",
39
- "react-redux": "8.1.2",
40
- "react-router-dom": "6.16.0",
36
+ "react-draggable": "4.4.6",
37
+ "react-hook-form": "7.47.0",
38
+ "react-i18next": "13.3.0",
39
+ "react-redux": "8.1.3",
40
+ "react-router-dom": "6.17.0",
41
41
  "react-sortablejs": "6.1.4",
42
42
  "react-window": "1.8.9",
43
43
  "redux-saga": "1.2.3",
@@ -3,7 +3,6 @@ import { MultiDimensionSelectMapButtonsConnect, MultiMapDimensionSelectConnect }
3
3
  export * from './components/ComponentsLookUp';
4
4
  export * from './components/ConfigurableMap';
5
5
  export { SyncGroupViewerConnect } from './components/SyncGroups/SyncGroupViewerConnect';
6
- export { store } from './storybookUtils/store';
7
6
  export * from './hooks';
8
7
  export * from './components/MultiMapView/MultiMapViewConnect';
9
8
  export * from './components/MultiMapView/HarmoniePresets';