umap-project 2.4.0__py3-none-any.whl → 2.4.0b1__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.
Files changed (46) hide show
  1. umap/.DS_Store +0 -0
  2. umap/__init__.py +1 -1
  3. umap/locale/en/LC_MESSAGES/django.po +11 -11
  4. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  5. umap/locale/fr/LC_MESSAGES/django.po +11 -12
  6. umap/static/.DS_Store +0 -0
  7. umap/static/umap/.DS_Store +0 -0
  8. umap/static/umap/base.css +28 -20
  9. umap/static/umap/css/importers.css +1 -8
  10. umap/static/umap/css/panel.css +1 -0
  11. umap/static/umap/favicons/.DS_Store +0 -0
  12. umap/static/umap/fonts/.DS_Store +0 -0
  13. umap/static/umap/img/.DS_Store +0 -0
  14. umap/static/umap/img/16-white.svg +3 -1
  15. umap/static/umap/img/source/.DS_Store +0 -0
  16. umap/static/umap/img/source/16-white.svg +4 -2
  17. umap/static/umap/js/modules/browser.js +5 -5
  18. umap/static/umap/js/modules/caption.js +1 -1
  19. umap/static/umap/js/modules/importer.js +9 -20
  20. umap/static/umap/js/modules/importers/datasets.js +0 -1
  21. umap/static/umap/js/modules/utils.js +3 -3
  22. umap/static/umap/js/umap.features.js +3 -11
  23. umap/static/umap/js/umap.js +48 -47
  24. umap/static/umap/js/umap.layer.js +0 -10
  25. umap/static/umap/js/umap.popup.js +1 -1
  26. umap/static/umap/locale/en.js +1 -2
  27. umap/static/umap/locale/en.json +1 -2
  28. umap/static/umap/locale/fr.js +15 -16
  29. umap/static/umap/locale/fr.json +15 -16
  30. umap/static/umap/map.css +13 -14
  31. umap/static/umap/unittests/utils.js +5 -5
  32. umap/static/umap/vars.css +1 -2
  33. umap/static/umap/vendors/dompurify/purify.es.js +5 -59
  34. umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
  35. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +2 -2
  36. umap/tests/.DS_Store +0 -0
  37. umap/tests/integration/.DS_Store +0 -0
  38. umap/tests/integration/test_browser.py +3 -76
  39. umap/tests/integration/test_import.py +0 -47
  40. umap/tests/integration/test_map.py +0 -29
  41. umap/tests/integration/test_view_marker.py +2 -2
  42. {umap_project-2.4.0.dist-info → umap_project-2.4.0b1.dist-info}/METADATA +5 -5
  43. {umap_project-2.4.0.dist-info → umap_project-2.4.0b1.dist-info}/RECORD +46 -37
  44. {umap_project-2.4.0.dist-info → umap_project-2.4.0b1.dist-info}/WHEEL +1 -1
  45. {umap_project-2.4.0.dist-info → umap_project-2.4.0b1.dist-info}/entry_points.txt +0 -0
  46. {umap_project-2.4.0.dist-info → umap_project-2.4.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  L.Map.mergeOptions({
2
- overlay: {},
2
+ overlay: null,
3
3
  datalayers: [],
4
4
  hash: true,
5
5
  maxZoomLimit: 24,
@@ -205,9 +205,49 @@ U.Map = L.Map.extend({
205
205
  this.editTools = new U.Editable(this)
206
206
  this.renderEditToolbar()
207
207
  }
208
+ if (!U.Utils.isObject(this.options.overlay)) {
209
+ this.options.overlay = {}
210
+ }
211
+ if (!U.Utils.isObject(this.options.tilelayer)) {
212
+ this.options.tilelayer = {}
213
+ }
208
214
 
209
215
  this.initShortcuts()
210
- this.onceDataLoaded(this.setViewFromQueryString)
216
+ this.onceDataLoaded(function () {
217
+ const slug = L.Util.queryString('feature')
218
+ if (slug && this.features_index[slug]) this.features_index[slug].view()
219
+ if (this.options.noControl) return
220
+ this.initCaptionBar()
221
+ if (L.Util.queryString('share')) {
222
+ this.share.open()
223
+ } else if (this.options.onLoadPanel === 'databrowser') {
224
+ this.panel.setDefaultMode('expanded')
225
+ this.openBrowser('data')
226
+ } else if (this.options.onLoadPanel === 'datalayers') {
227
+ this.panel.setDefaultMode('condensed')
228
+ this.openBrowser('layers')
229
+ } else if (this.options.onLoadPanel === 'datafilters') {
230
+ this.panel.setDefaultMode('expanded')
231
+ this.openBrowser('filters')
232
+ } else if (this.options.onLoadPanel === 'caption') {
233
+ this.panel.setDefaultMode('condensed')
234
+ this.openCaption()
235
+ }
236
+ if (L.Util.queryString('edit')) {
237
+ if (this.hasEditMode()) this.enableEdit()
238
+ // Sometimes users share the ?edit link by mistake, let's remove
239
+ // this search parameter from URL to prevent this
240
+ const url = new URL(window.location)
241
+ url.searchParams.delete('edit')
242
+ history.pushState({}, '', url)
243
+ }
244
+ if (L.Util.queryString('download')) {
245
+ const download_url = this.urls.get('map_download', {
246
+ map_id: this.options.umap_id,
247
+ })
248
+ window.location = download_url
249
+ }
250
+ })
211
251
 
212
252
  window.onbeforeunload = () => (this.editEnabled && this.isDirty) || null
213
253
  this.backup()
@@ -301,44 +341,6 @@ U.Map = L.Map.extend({
301
341
  }
302
342
  },
303
343
 
304
- setViewFromQueryString: function () {
305
- if (this.options.noControl) return
306
- this.initCaptionBar()
307
- if (L.Util.queryString('share')) {
308
- this.share.open()
309
- } else if (this.options.onLoadPanel === 'databrowser') {
310
- this.panel.setDefaultMode('expanded')
311
- this.openBrowser('data')
312
- } else if (this.options.onLoadPanel === 'datalayers') {
313
- this.panel.setDefaultMode('condensed')
314
- this.openBrowser('layers')
315
- } else if (this.options.onLoadPanel === 'datafilters') {
316
- this.panel.setDefaultMode('expanded')
317
- this.openBrowser('filters')
318
- } else if (this.options.onLoadPanel === 'caption') {
319
- this.panel.setDefaultMode('condensed')
320
- this.openCaption()
321
- }
322
- // Comes after default panels, so if it opens in a panel it will
323
- // take precedence.
324
- const slug = L.Util.queryString('feature')
325
- if (slug && this.features_index[slug]) this.features_index[slug].view()
326
- if (L.Util.queryString('edit')) {
327
- if (this.hasEditMode()) this.enableEdit()
328
- // Sometimes users share the ?edit link by mistake, let's remove
329
- // this search parameter from URL to prevent this
330
- const url = new URL(window.location)
331
- url.searchParams.delete('edit')
332
- history.pushState({}, '', url)
333
- }
334
- if (L.Util.queryString('download')) {
335
- const download_url = this.urls.get('map_download', {
336
- map_id: this.options.umap_id,
337
- })
338
- window.location = download_url
339
- }
340
- },
341
-
342
344
  // Merge the given schema with the default one
343
345
  // Missing keys inside the schema are merged with the default ones.
344
346
  overrideSchema: function (schema) {
@@ -1294,9 +1296,6 @@ U.Map = L.Map.extend({
1294
1296
  },
1295
1297
 
1296
1298
  _editTilelayer: function (container) {
1297
- if (!U.Utils.isObject(this.options.tilelayer)) {
1298
- this.options.tilelayer = {}
1299
- }
1300
1299
  const tilelayerFields = [
1301
1300
  [
1302
1301
  'options.tilelayer.name',
@@ -1344,9 +1343,6 @@ U.Map = L.Map.extend({
1344
1343
  },
1345
1344
 
1346
1345
  _editOverlay: function (container) {
1347
- if (!U.Utils.isObject(this.options.overlay)) {
1348
- this.options.overlay = {}
1349
- }
1350
1346
  const overlayFields = [
1351
1347
  [
1352
1348
  'options.overlay.url_template',
@@ -1539,7 +1535,8 @@ U.Map = L.Map.extend({
1539
1535
  const container = L.DomUtil.create('div', 'umap-edit-container')
1540
1536
  const metadataFields = ['options.name', 'options.description']
1541
1537
 
1542
- L.DomUtil.createTitle(container, L._('Edit map details'), 'icon-caption')
1538
+ const title = L.DomUtil.create('h3', '', container)
1539
+ title.textContent = L._('Edit map details')
1543
1540
  const builder = new U.FormBuilder(this, metadataFields, {
1544
1541
  className: 'map-metadata',
1545
1542
  })
@@ -1876,6 +1873,10 @@ U.Map = L.Map.extend({
1876
1873
  if (this._controls.search) this._controls.search.open()
1877
1874
  },
1878
1875
 
1876
+ getFilterKeys: function () {
1877
+ return (this.options.filterKey || this.options.sortKey || 'name').split(',')
1878
+ },
1879
+
1879
1880
  getLayersBounds: function () {
1880
1881
  const bounds = new L.latLngBounds()
1881
1882
  this.eachBrowsableDataLayer((d) => {
@@ -1757,16 +1757,6 @@ U.DataLayer = L.Evented.extend({
1757
1757
  const editor = new U.TableEditor(this)
1758
1758
  editor.edit()
1759
1759
  },
1760
-
1761
- getFilterKeys: function () {
1762
- // This keys will be used to filter feature from the browser text input.
1763
- // By default, it will we use the "name" property, which is also the one used as label in the features list.
1764
- // When map owner has configured another label or sort key, we try to be smart and search in the same keys.
1765
- if (this.map.options.filterKey) return this.map.options.filterKey
1766
- else if (this.options.labelKey) return this.options.labelKey
1767
- else if (this.map.options.sortKey) return this.map.options.sortKey
1768
- else return 'name'
1769
- },
1770
1760
  })
1771
1761
 
1772
1762
  L.TileLayer.include({
@@ -107,7 +107,7 @@ U.PopupTemplate.Default = L.Class.extend({
107
107
  renderBody: function () {
108
108
  const template = this.feature.getOption('popupContentTemplate')
109
109
  const target = this.feature.getOption('outlinkTarget')
110
- const container = L.DomUtil.create('div', 'umap-popup-container text')
110
+ const container = L.DomUtil.create('div', 'umap-popup-container')
111
111
  let content = ''
112
112
  let properties
113
113
  let center
@@ -481,8 +481,7 @@ const locale = {
481
481
  "Only geometry centers": "Only geometry centers",
482
482
  "Search area": "Search area",
483
483
  "Type area name, or let empty to load data in current map view": "Type area name, or let empty to load data in current map view",
484
- "Please define an expression for the query first": "Please define an expression for the query first",
485
- "Data successfully imported!": "Data successfully imported!"
484
+ "Please define an expression for the query first": "Please define an expression for the query first"
486
485
  }
487
486
  L.registerLocale("en", locale)
488
487
  L.setLocale("en")
@@ -481,6 +481,5 @@
481
481
  "Only geometry centers": "Only geometry centers",
482
482
  "Search area": "Search area",
483
483
  "Type area name, or let empty to load data in current map view": "Type area name, or let empty to load data in current map view",
484
- "Please define an expression for the query first": "Please define an expression for the query first",
485
- "Data successfully imported!": "Data successfully imported!"
484
+ "Please define an expression for the query first": "Please define an expression for the query first"
486
485
  }
@@ -1,6 +1,6 @@
1
1
  const locale = {
2
- " (area: {measure})": "(surface : {measure})",
3
- " (length: {measure})": "(longueur : {measure})",
2
+ " (area: {measure})": "(surface: {measure})",
3
+ " (length: {measure})": "(longueur: {measure})",
4
4
  "# one hash for main heading": "# un dièse pour titre 1",
5
5
  "## two hashes for second heading": "## deux dièses pour titre 2",
6
6
  "### three hashes for third heading": "### trois dièses pour titre 3",
@@ -186,7 +186,7 @@ const locale = {
186
186
  "Icon shape": "Forme de l'icône",
187
187
  "Icon symbol": "Image de l'icône",
188
188
  "If false, the polygon or line will act as a part of the underlying map.": "Désactiver pour que le polygone ou la ligne ne réagisse plus aux interactions.",
189
- "Iframe with custom height (in px): {{{http://iframe.url.com|height}}}": "Iframe avec hauteur (en pixels) : {{{http://iframe.url.com|hauteur}}}",
189
+ "Iframe with custom height (in px): {{{http://iframe.url.com|height}}}": "Iframe avec hauteur (en pixels): {{{http://iframe.url.com|hauteur}}}",
190
190
  "Iframe with custom height and width (in px): {{{http://iframe.url.com|height*width}}}": "Iframe avec hauteur et largeur (en px) : {{{http://iframe.url.com|height*width}}}",
191
191
  "iframe": "iframe",
192
192
  "Iframe: {{{http://iframe.url.com}}}": "Iframe : {{{http://iframe.url.com}}}",
@@ -202,7 +202,7 @@ const locale = {
202
202
  "Invalid latitude or longitude": "Latitude ou longitude invalide",
203
203
  "Invalid umap data in {filename}": "Les données du fichier {filename} ne sont pas valides comme format uMap",
204
204
  "Invalid umap data": "Données uMap invalides",
205
- "Invalide property name: {name}": "Nom de propriété invalide : {name}",
205
+ "Invalide property name: {name}": "Nom de propriété invalide: {name}",
206
206
  "Jenks-Fisher": "Jenks-Fisher",
207
207
  "K-means": "K-moyennes",
208
208
  "Keep current visible layers": "Garder les calques visibles actuellement",
@@ -327,7 +327,7 @@ const locale = {
327
327
  "Side panel": "Panneau latéral",
328
328
  "Simple link: [[http://example.com]]": "Lien simple : [[https://exemple.fr]]",
329
329
  "Simplify": "Simplifier",
330
- "Skipping unknown geometry.type: {type}": "Type de géométrie inconnu ignoré : {type}",
330
+ "Skipping unknown geometry.type: {type}": "Type de géométrie inconnu ignoré: {type}",
331
331
  "Slideshow": "Diaporama",
332
332
  "Sort key": "Clé de tri",
333
333
  "Split line": "Scinder la ligne",
@@ -375,7 +375,7 @@ const locale = {
375
375
  "Versions": "Versions",
376
376
  "View Fullscreen": "Voir en plein écran",
377
377
  "View": "Aperçu",
378
- "Visibility: {status}": "Visibilité : {status}",
378
+ "Visibility: {status}": "Visibilité: {status}",
379
379
  "weight": "épaisseur",
380
380
  "Where do we go from here?": "C'est par où pour aller plus loin?",
381
381
  "Whether to display or not polygons paths.": "Afficher les contours des polygones.",
@@ -401,7 +401,7 @@ const locale = {
401
401
  "{area} m²": "{area} m²",
402
402
  "{area} mi²": "{area} mi²",
403
403
  "{area} yd²": "{area} yd²",
404
- "{count} errors during import: {message}": "{count} erreurs pendant l'import : {message}",
404
+ "{count} errors during import: {message}": "{count} erreurs pendant l'import: {message}",
405
405
  "{delay} seconds": "{delay} secondes",
406
406
  "{distance} km": "{distance} km",
407
407
  "{distance} m": "{distance} m",
@@ -419,7 +419,7 @@ const locale = {
419
419
  "Max": "Max",
420
420
  "From": "De",
421
421
  "Until": "À",
422
- "Example: key1,key2|Label 2,key3|Label 3|checkbox": "Exemple : cle1,cle2|Label 2,Label 3|checkbox",
422
+ "Example: key1,key2|Label 2,key3|Label 3|checkbox": "Exemple: cle1,cle2|Label 2,Label 3|checkbox",
423
423
  "Edit in OpenStreetMap": "Modifier dans OpenStreetMap",
424
424
  "Cannot determine latitude and longitude columns.": "Impossible de détecter les colonnes latitude et longitude.",
425
425
  "Back to layers": "Voir les calques",
@@ -450,7 +450,7 @@ const locale = {
450
450
  "More info about Overpass syntax": "Plus d'infos sur la syntaxe Overpass",
451
451
  "For more complex needs, see": "Pour les besoins plus avancés:",
452
452
  "Choose data": "Choisir les données",
453
- "Import helpers:": "Assistants d'import :",
453
+ "Import helpers:": "Assistants d'import:",
454
454
  "Choose the format": "Choisir le format",
455
455
  "Choose the layer": "Choisir le calque",
456
456
  "Layer name": "Nom du calque",
@@ -463,14 +463,14 @@ const locale = {
463
463
  "empty rule": "règle vide",
464
464
  "Conditional style rules": "Règles de formatage conditionnelles",
465
465
  "Add rule": "Ajouter une règle",
466
- "Browser: data": "Explorateur : données",
467
- "Browser: layers": "Explorateur : calques",
468
- "Browser: filters": "Explorateur : filtres",
466
+ "Browser: data": "Explorateur: données",
467
+ "Browser: layers": "Explorateur: calques",
468
+ "Browser: filters": "Explorateur: filtres",
469
469
  "Enable real-time collaboration": "Activer la collaboration temps réel",
470
- "✅ Copied!": "✅ Copié !",
470
+ "✅ Copied!": "✅ Copié!",
471
471
  "Choose a dataset": "Choisir un jeu de données",
472
472
  "Choose this dataset": "Choisir ce jeu de données",
473
- "GeoDataMine: thematic data from OpenStreetMap": "GéoDataMine : données thématiques à partir d'OpenStreetMap",
473
+ "GeoDataMine: thematic data from OpenStreetMap": "GéoDataMine: données thématiques à partir d'OpenStreetMap",
474
474
  "Choose a theme": "Choisir un thème",
475
475
  "Symplify all geometries to points": "Simplifier les géométries en points",
476
476
  "Choose this data": "Choisir ces données",
@@ -481,8 +481,7 @@ const locale = {
481
481
  "Only geometry centers": "Seulement les centres",
482
482
  "Search area": "Chercher un coin",
483
483
  "Type area name, or let empty to load data in current map view": "Entrer le nom d'un périmètre géographique, ou laisser vide pour utiliser la vue courante de la carte",
484
- "Please define an expression for the query first": "Définir une expression pour la requête",
485
- "Data successfully imported!": "Les données ont été importées!"
484
+ "Please define an expression for the query first": "Définir une expression pour la requête"
486
485
  }
487
486
  L.registerLocale("fr", locale)
488
487
  L.setLocale("fr")
@@ -1,6 +1,6 @@
1
1
  {
2
- " (area: {measure})": "(surface : {measure})",
3
- " (length: {measure})": "(longueur : {measure})",
2
+ " (area: {measure})": "(surface: {measure})",
3
+ " (length: {measure})": "(longueur: {measure})",
4
4
  "# one hash for main heading": "# un dièse pour titre 1",
5
5
  "## two hashes for second heading": "## deux dièses pour titre 2",
6
6
  "### three hashes for third heading": "### trois dièses pour titre 3",
@@ -186,7 +186,7 @@
186
186
  "Icon shape": "Forme de l'icône",
187
187
  "Icon symbol": "Image de l'icône",
188
188
  "If false, the polygon or line will act as a part of the underlying map.": "Désactiver pour que le polygone ou la ligne ne réagisse plus aux interactions.",
189
- "Iframe with custom height (in px): {{{http://iframe.url.com|height}}}": "Iframe avec hauteur (en pixels) : {{{http://iframe.url.com|hauteur}}}",
189
+ "Iframe with custom height (in px): {{{http://iframe.url.com|height}}}": "Iframe avec hauteur (en pixels): {{{http://iframe.url.com|hauteur}}}",
190
190
  "Iframe with custom height and width (in px): {{{http://iframe.url.com|height*width}}}": "Iframe avec hauteur et largeur (en px) : {{{http://iframe.url.com|height*width}}}",
191
191
  "iframe": "iframe",
192
192
  "Iframe: {{{http://iframe.url.com}}}": "Iframe : {{{http://iframe.url.com}}}",
@@ -202,7 +202,7 @@
202
202
  "Invalid latitude or longitude": "Latitude ou longitude invalide",
203
203
  "Invalid umap data in {filename}": "Les données du fichier {filename} ne sont pas valides comme format uMap",
204
204
  "Invalid umap data": "Données uMap invalides",
205
- "Invalide property name: {name}": "Nom de propriété invalide : {name}",
205
+ "Invalide property name: {name}": "Nom de propriété invalide: {name}",
206
206
  "Jenks-Fisher": "Jenks-Fisher",
207
207
  "K-means": "K-moyennes",
208
208
  "Keep current visible layers": "Garder les calques visibles actuellement",
@@ -327,7 +327,7 @@
327
327
  "Side panel": "Panneau latéral",
328
328
  "Simple link: [[http://example.com]]": "Lien simple : [[https://exemple.fr]]",
329
329
  "Simplify": "Simplifier",
330
- "Skipping unknown geometry.type: {type}": "Type de géométrie inconnu ignoré : {type}",
330
+ "Skipping unknown geometry.type: {type}": "Type de géométrie inconnu ignoré: {type}",
331
331
  "Slideshow": "Diaporama",
332
332
  "Sort key": "Clé de tri",
333
333
  "Split line": "Scinder la ligne",
@@ -375,7 +375,7 @@
375
375
  "Versions": "Versions",
376
376
  "View Fullscreen": "Voir en plein écran",
377
377
  "View": "Aperçu",
378
- "Visibility: {status}": "Visibilité : {status}",
378
+ "Visibility: {status}": "Visibilité: {status}",
379
379
  "weight": "épaisseur",
380
380
  "Where do we go from here?": "C'est par où pour aller plus loin?",
381
381
  "Whether to display or not polygons paths.": "Afficher les contours des polygones.",
@@ -401,7 +401,7 @@
401
401
  "{area} m²": "{area} m²",
402
402
  "{area} mi²": "{area} mi²",
403
403
  "{area} yd²": "{area} yd²",
404
- "{count} errors during import: {message}": "{count} erreurs pendant l'import : {message}",
404
+ "{count} errors during import: {message}": "{count} erreurs pendant l'import: {message}",
405
405
  "{delay} seconds": "{delay} secondes",
406
406
  "{distance} km": "{distance} km",
407
407
  "{distance} m": "{distance} m",
@@ -419,7 +419,7 @@
419
419
  "Max": "Max",
420
420
  "From": "De",
421
421
  "Until": "À",
422
- "Example: key1,key2|Label 2,key3|Label 3|checkbox": "Exemple : cle1,cle2|Label 2,Label 3|checkbox",
422
+ "Example: key1,key2|Label 2,key3|Label 3|checkbox": "Exemple: cle1,cle2|Label 2,Label 3|checkbox",
423
423
  "Edit in OpenStreetMap": "Modifier dans OpenStreetMap",
424
424
  "Cannot determine latitude and longitude columns.": "Impossible de détecter les colonnes latitude et longitude.",
425
425
  "Back to layers": "Voir les calques",
@@ -450,7 +450,7 @@
450
450
  "More info about Overpass syntax": "Plus d'infos sur la syntaxe Overpass",
451
451
  "For more complex needs, see": "Pour les besoins plus avancés:",
452
452
  "Choose data": "Choisir les données",
453
- "Import helpers:": "Assistants d'import :",
453
+ "Import helpers:": "Assistants d'import:",
454
454
  "Choose the format": "Choisir le format",
455
455
  "Choose the layer": "Choisir le calque",
456
456
  "Layer name": "Nom du calque",
@@ -463,14 +463,14 @@
463
463
  "empty rule": "règle vide",
464
464
  "Conditional style rules": "Règles de formatage conditionnelles",
465
465
  "Add rule": "Ajouter une règle",
466
- "Browser: data": "Explorateur : données",
467
- "Browser: layers": "Explorateur : calques",
468
- "Browser: filters": "Explorateur : filtres",
466
+ "Browser: data": "Explorateur: données",
467
+ "Browser: layers": "Explorateur: calques",
468
+ "Browser: filters": "Explorateur: filtres",
469
469
  "Enable real-time collaboration": "Activer la collaboration temps réel",
470
- "✅ Copied!": "✅ Copié !",
470
+ "✅ Copied!": "✅ Copié!",
471
471
  "Choose a dataset": "Choisir un jeu de données",
472
472
  "Choose this dataset": "Choisir ce jeu de données",
473
- "GeoDataMine: thematic data from OpenStreetMap": "GéoDataMine : données thématiques à partir d'OpenStreetMap",
473
+ "GeoDataMine: thematic data from OpenStreetMap": "GéoDataMine: données thématiques à partir d'OpenStreetMap",
474
474
  "Choose a theme": "Choisir un thème",
475
475
  "Symplify all geometries to points": "Simplifier les géométries en points",
476
476
  "Choose this data": "Choisir ces données",
@@ -481,6 +481,5 @@
481
481
  "Only geometry centers": "Seulement les centres",
482
482
  "Search area": "Chercher un coin",
483
483
  "Type area name, or let empty to load data in current map view": "Entrer le nom d'un périmètre géographique, ou laisser vide pour utiliser la vue courante de la carte",
484
- "Please define an expression for the query first": "Définir une expression pour la requête",
485
- "Data successfully imported!": "Les données ont été importées!"
484
+ "Please define an expression for the query first": "Définir une expression pour la requête"
486
485
  }
umap/static/umap/map.css CHANGED
@@ -678,9 +678,7 @@ ul.photon-autocomplete {
678
678
  font-style: italic;
679
679
  }
680
680
  .umap-slideshow-toolbox {
681
- position: absolute;
682
- right: 0;
683
- top: 0;
681
+ float: right;
684
682
  display: none;
685
683
  }
686
684
  .umap-slideshow-enabled .umap-slideshow-toolbox {
@@ -692,9 +690,9 @@ ul.photon-autocomplete {
692
690
  font-size: 1.5em;
693
691
  background-color: #464646;
694
692
  color: #fff;
695
- width: calc(var(--footer-height) * 2);
696
- height: var(--footer-height);
697
- line-height: var(--footer-height);
693
+ height: 46px;
694
+ width: 70px;
695
+ line-height: 46px;
698
696
  vertical-align: middle;
699
697
  text-align: center;
700
698
  }
@@ -706,24 +704,24 @@ ul.photon-autocomplete {
706
704
  }
707
705
  .umap-slideshow-active .umap-slideshow-toolbox .play,
708
706
  .umap-slideshow-toolbox .play {
709
- width: calc(var(--footer-height) * 3);
707
+ width: 100px;
710
708
  text-align: left;
711
709
  padding-left: 20px;
712
710
  }
713
711
  .umap-slideshow-toolbox .play:after {
714
- content: '⏯︎';
712
+ content: '';
715
713
  }
716
714
  .umap-slideshow-active .umap-slideshow-toolbox .play:after {
717
- content: '⏸︎';
715
+ content: ' ❚❚';
718
716
  }
719
717
  .umap-slideshow-toolbox .stop:before {
720
- content: '';
718
+ content: '';
721
719
  }
722
720
  .umap-slideshow-toolbox .next:before {
723
- content: '⏵︎';
721
+ content: '';
724
722
  }
725
723
  .umap-slideshow-toolbox .prev:before {
726
- content: '⏴︎';
724
+ content: '';
727
725
  }
728
726
  .umap-slideshow-toolbox .play div {
729
727
  height: 20px;
@@ -1129,7 +1127,6 @@ a.umap-control-caption,
1129
1127
  }
1130
1128
 
1131
1129
  .umap-popup-footer {
1132
- position: relative;
1133
1130
  background-color: rgb(68, 68, 68);
1134
1131
  color: white;
1135
1132
  display: table;
@@ -1525,7 +1522,7 @@ span.popup-icon {
1525
1522
  z-index: 1001;
1526
1523
  }
1527
1524
  .leaflet-popup-content {
1528
- min-width: 200px;
1525
+ min-width: 100px;
1529
1526
  line-height: inherit;
1530
1527
  }
1531
1528
  .leaflet-popup-content-wrapper, .leaflet-popup-tip {
@@ -1562,6 +1559,8 @@ span.popup-icon {
1562
1559
  }
1563
1560
  .umap-popup-container {
1564
1561
  flex-grow: 1;
1562
+ word-break: break-word;
1563
+ white-space: pre-line;
1565
1564
  margin-bottom: 10px;
1566
1565
  }
1567
1566
  .umap-popup-container ul {
@@ -11,14 +11,14 @@ global.JSDOM = JSDOM
11
11
  describe('Utils', function () {
12
12
  describe('#toHTML()', function () {
13
13
  it('should handle title', function () {
14
- assert.equal(Utils.toHTML('# A title'), '<h4>A title</h4>')
14
+ assert.equal(Utils.toHTML('# A title'), '<h3>A title</h3>')
15
15
  })
16
16
  it('should handle title followed by text', function () {
17
- assert.equal(Utils.toHTML('# A title\nSome text.'), '<h4>A title</h4>Some text.')
17
+ assert.equal(Utils.toHTML('# A title\nSome text.'), '<h3>A title</h3>Some text.')
18
18
  })
19
19
 
20
20
  it('should handle title in the middle of the content', function () {
21
- assert.equal(Utils.toHTML('A phrase\n## A title'), 'A phrase\n<h5>A title</h5>')
21
+ assert.equal(Utils.toHTML('A phrase\n## A title'), 'A phrase\n<h4>A title</h4>')
22
22
  })
23
23
 
24
24
  it('should handle hr', function () {
@@ -43,7 +43,7 @@ describe('Utils', function () {
43
43
  it('should handle simple link in title', function () {
44
44
  assert.equal(
45
45
  Utils.toHTML('# http://osm.org'),
46
- '<h4><a href="http://osm.org" target="_blank">http://osm.org</a></h4>'
46
+ '<h3><a href="http://osm.org" target="_blank">http://osm.org</a></h3>'
47
47
  )
48
48
  })
49
49
 
@@ -180,7 +180,7 @@ describe('Utils', function () {
180
180
  it('title followed by bullet points', function () {
181
181
  assert.equal(
182
182
  Utils.toHTML('## Some title\n* First *point*\n* Second **point**\n* Last [[https://here.org|point]]'),
183
- '<h5>Some title</h5><ul><li>First <em>point</em></li><li>Second <strong>point</strong></li><li>Last <a href="https://here.org" target="_blank">point</a></li></ul>'
183
+ '<h4>Some title</h4><ul><li>First <em>point</em></li><li>Second <strong>point</strong></li><li>Last <a href="https://here.org" target="_blank">point</a></li></ul>'
184
184
  )
185
185
  })
186
186
  })
umap/static/umap/vars.css CHANGED
@@ -29,13 +29,12 @@
29
29
  --panel-width: 400px;
30
30
  --header-height: 46px;
31
31
  --current-header-height: 0px;
32
- --footer-height: 32px;
32
+ --footer-height: 28px;
33
33
  --current-footer-height: 0px;
34
34
  --control-size: 36px;
35
35
  --border-radius: 4px;
36
36
  --box-padding: 20px;
37
37
  --box-margin: 14px;
38
- --text-margin: 7px;
39
38
  }
40
39
  .dark {
41
40
  --background-color: var(--color-darkGray);