umap-project 2.7.0b0__py3-none-any.whl → 2.7.0b3__py3-none-any.whl

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.

Potentially problematic release.


This version of umap-project might be problematic. Click here for more details.

Files changed (40) hide show
  1. umap/__init__.py +1 -1
  2. umap/static/umap/css/contextmenu.css +1 -1
  3. umap/static/umap/js/modules/browser.js +47 -0
  4. umap/static/umap/js/modules/rendering/layers/classified.js +1 -0
  5. umap/static/umap/js/modules/rendering/ui.js +28 -6
  6. umap/static/umap/js/modules/tableeditor.js +1 -1
  7. umap/static/umap/js/modules/ui/contextmenu.js +18 -2
  8. umap/static/umap/js/umap.controls.js +4 -10
  9. umap/static/umap/js/umap.js +21 -13
  10. umap/static/umap/locale/en.js +4 -1
  11. umap/static/umap/locale/en.json +4 -1
  12. umap/static/umap/locale/fr.js +4 -1
  13. umap/static/umap/locale/fr.json +4 -1
  14. umap/static/umap/map.css +10 -0
  15. umap/static/umap/unittests/hlc.js +8 -3
  16. umap/static/umap/vendors/colorbrewer/colorbrewer.js +309 -317
  17. umap/static/umap/vendors/dompurify/purify.es.js +15 -16
  18. umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
  19. umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js +2 -2
  20. umap/static/umap/vendors/locatecontrol/L.Control.Locate.min.js.map +1 -1
  21. umap/static/umap/vendors/simple-statistics/simple-statistics.min.js +1 -1
  22. umap/static/umap/vendors/simple-statistics/simple-statistics.min.js.map +1 -1
  23. umap/templates/umap/css.html +0 -2
  24. umap/templates/umap/js.html +0 -1
  25. umap/templates/umap/map_detail.html +2 -2
  26. umap/tests/fixtures/test_upload_data.csv +2 -2
  27. umap/tests/integration/test_browser.py +69 -7
  28. umap/tests/integration/test_datalayer.py +1 -5
  29. umap/tests/integration/test_edit_datalayer.py +1 -2
  30. umap/tests/integration/test_edit_marker.py +1 -1
  31. umap/tests/integration/test_facets_browser.py +3 -3
  32. umap/tests/integration/test_import.py +0 -4
  33. umap/tests/integration/test_map.py +0 -4
  34. umap/tests/integration/test_view_marker.py +63 -0
  35. umap/tests/test_map_views.py +19 -0
  36. {umap_project-2.7.0b0.dist-info → umap_project-2.7.0b3.dist-info}/METADATA +8 -7
  37. {umap_project-2.7.0b0.dist-info → umap_project-2.7.0b3.dist-info}/RECORD +40 -40
  38. {umap_project-2.7.0b0.dist-info → umap_project-2.7.0b3.dist-info}/WHEEL +0 -0
  39. {umap_project-2.7.0b0.dist-info → umap_project-2.7.0b3.dist-info}/entry_points.txt +0 -0
  40. {umap_project-2.7.0b0.dist-info → umap_project-2.7.0b3.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- /*! @license DOMPurify 3.1.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.1.5/LICENSE */
1
+ /*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */
2
2
 
3
3
  const {
4
4
  entries,
@@ -197,7 +197,7 @@ const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongd
197
197
  const text = freeze(['#text']);
198
198
 
199
199
  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
200
- const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
200
+ const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
201
201
  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
202
202
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
203
203
 
@@ -209,11 +209,9 @@ const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); // eslint-disable-line no-
209
209
  const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
210
210
  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
211
211
  );
212
-
213
212
  const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
214
213
  const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
215
214
  );
216
-
217
215
  const DOCTYPE_NAME = seal(/^html$/i);
218
216
  const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
219
217
 
@@ -248,7 +246,6 @@ const NODE_TYPE = {
248
246
  documentFragment: 11,
249
247
  notation: 12 // Deprecated
250
248
  };
251
-
252
249
  const getGlobal = function getGlobal() {
253
250
  return typeof window === 'undefined' ? null : window;
254
251
  };
@@ -300,7 +297,7 @@ function createDOMPurify() {
300
297
  * Version label, exposed for easier checks
301
298
  * if DOMPurify is up to date or not
302
299
  */
303
- DOMPurify.version = '3.1.5';
300
+ DOMPurify.version = '3.1.7';
304
301
 
305
302
  /**
306
303
  * Array of elements that DOMPurify removed during sanitation.
@@ -331,6 +328,7 @@ function createDOMPurify() {
331
328
  } = window;
332
329
  const ElementPrototype = Element.prototype;
333
330
  const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
331
+ const remove = lookupGetter(ElementPrototype, 'remove');
334
332
  const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
335
333
  const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
336
334
  const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
@@ -719,7 +717,7 @@ function createDOMPurify() {
719
717
  CONFIG = cfg;
720
718
  };
721
719
  const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
722
- const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);
720
+ const HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);
723
721
 
724
722
  // Certain elements are allowed in both SVG and HTML
725
723
  // namespace. We need to specify them explicitly
@@ -831,9 +829,9 @@ function createDOMPurify() {
831
829
  });
832
830
  try {
833
831
  // eslint-disable-next-line unicorn/prefer-dom-node-remove
834
- node.parentNode.removeChild(node);
832
+ getParentNode(node).removeChild(node);
835
833
  } catch (_) {
836
- node.remove();
834
+ remove(node);
837
835
  }
838
836
  };
839
837
 
@@ -1010,7 +1008,7 @@ function createDOMPurify() {
1010
1008
  return true;
1011
1009
  }
1012
1010
 
1013
- /* Remove any ocurrence of processing instructions */
1011
+ /* Remove any occurrence of processing instructions */
1014
1012
  if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
1015
1013
  _forceRemove(currentNode);
1016
1014
  return true;
@@ -1179,6 +1177,7 @@ function createDOMPurify() {
1179
1177
  hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
1180
1178
  _executeHook('uponSanitizeAttribute', currentNode, hookEvent);
1181
1179
  value = hookEvent.attrValue;
1180
+
1182
1181
  /* Did the hooks approve of the attribute? */
1183
1182
  if (hookEvent.forceKeepAttr) {
1184
1183
  continue;
@@ -1198,12 +1197,6 @@ function createDOMPurify() {
1198
1197
  continue;
1199
1198
  }
1200
1199
 
1201
- /* Work around a security issue with comments inside attributes */
1202
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
1203
- _removeAttribute(name, currentNode);
1204
- continue;
1205
- }
1206
-
1207
1200
  /* Sanitize attribute content to be template-safe */
1208
1201
  if (SAFE_FOR_TEMPLATES) {
1209
1202
  arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
@@ -1228,6 +1221,12 @@ function createDOMPurify() {
1228
1221
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
1229
1222
  }
1230
1223
 
1224
+ /* Work around a security issue with comments inside attributes */
1225
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
1226
+ _removeAttribute(name, currentNode);
1227
+ continue;
1228
+ }
1229
+
1231
1230
  /* Handle attributes that require Trusted Types */
1232
1231
  if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {
1233
1232
  if (namespaceURI) ; else {