umap-project 3.3.2__py3-none-any.whl → 3.3.3__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.

umap/__init__.py CHANGED
@@ -1 +1 @@
1
- VERSION = "3.3.2"
1
+ VERSION = "3.3.3"
@@ -186,6 +186,12 @@ export const Cluster = FeatureGroup.extend({
186
186
  return this
187
187
  },
188
188
 
189
+ removeLayer: function (layer) {
190
+ if (!layer.getLatLng) return FeatureGroup.prototype.removeLayer.call(this, layer)
191
+ this._bucket = this._bucket.filter((el) => el !== layer)
192
+ return this
193
+ },
194
+
189
195
  onAdd: function (leafletMap) {
190
196
  this.on('click', this.onClick)
191
197
  this.on('mouseover', this.onMouseOver)
@@ -154,6 +154,7 @@ const ControlsMixin = {
154
154
 
155
155
  const ManageTilelayerMixin = {
156
156
  initTileLayers: function () {
157
+ this.pullProperties()
157
158
  this.tilelayers = []
158
159
  for (const props of this.options.tilelayers) {
159
160
  const layer = this.createTileLayer(props)
@@ -135,7 +135,9 @@ const PointMixin = {
135
135
  _onDragEnd(event) {
136
136
  if (this._cluster) {
137
137
  delete this._originalLatLng
138
- this.feature.datalayer.dataChanged()
138
+ this.once('editable:edited', () => {
139
+ this.feature.datalayer.dataChanged()
140
+ })
139
141
  }
140
142
  this.feature.edit(event)
141
143
  },
@@ -595,7 +595,6 @@ const locale = {
595
595
  "Transform to regular line": "Transformer en ligne simple",
596
596
  "Transform to route": "Transformer en route",
597
597
  "Restore route": "Rétablir la route",
598
- "Compute elevation": "Récupérer les altitudes",
599
598
  "Profile": "Moyen de transport",
600
599
  "Compute elevations": "Récupérer les altitudes",
601
600
  "Route preference": "Préférence de routage",
@@ -595,7 +595,6 @@
595
595
  "Transform to regular line": "Transformer en ligne simple",
596
596
  "Transform to route": "Transformer en route",
597
597
  "Restore route": "Rétablir la route",
598
- "Compute elevation": "Récupérer les altitudes",
599
598
  "Profile": "Moyen de transport",
600
599
  "Compute elevations": "Récupérer les altitudes",
601
600
  "Route preference": "Préférence de routage",
@@ -51,3 +51,49 @@ def test_can_open_feature_on_browser_click(live_server, page, map):
51
51
  expect(page.get_by_text("can you see me ?")).to_be_visible()
52
52
  page.get_by_text("again one another point").click()
53
53
  expect(page.get_by_text("and me ?")).to_be_visible()
54
+
55
+
56
+ def test_can_drag_single_marker_in_cluster_layer(live_server, page, tilelayer, openmap):
57
+ DataLayerFactory(map=openmap, data=DATALAYER_DATA)
58
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit#7/46.920/3.340")
59
+
60
+ marker = page.locator(".umap-div-icon")
61
+ map = page.locator("#map")
62
+
63
+ expect(page.locator(".edit-undo")).to_be_disabled()
64
+ # Drag marker
65
+ old_bbox = marker.bounding_box()
66
+ marker.first.drag_to(map, target_position={"x": 250, "y": 250})
67
+ assert marker.bounding_box() != old_bbox
68
+ expect(page.locator(".edit-undo")).to_be_enabled()
69
+
70
+
71
+ def test_can_drag_marker_in_cluster(live_server, page, tilelayer, openmap):
72
+ DataLayerFactory(map=openmap, data=DATALAYER_DATA)
73
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit#18/46.92/3.34")
74
+
75
+ marker = page.locator(".umap-div-icon")
76
+ cluster = page.locator(".umap-cluster-icon")
77
+ map = page.locator("#map")
78
+ expect(marker).to_have_count(0)
79
+
80
+ expect(page.locator(".edit-undo")).to_be_disabled()
81
+ cluster.click()
82
+ marker.first.drag_to(map, target_position={"x": 250, "y": 250})
83
+ expect(page.locator(".edit-undo")).to_be_enabled()
84
+ # There is no more cluster
85
+ expect(marker).to_have_count(2)
86
+
87
+
88
+ def test_can_change_datalayer_of_marker_in_cluster(
89
+ live_server, page, datalayer, openmap, tilelayer
90
+ ):
91
+ DataLayerFactory(map=openmap, data=DATALAYER_DATA)
92
+ datalayer.settings["iconClass"] = "Ball"
93
+ datalayer.save()
94
+ page.goto(f"{live_server.url}{openmap.get_absolute_url()}?edit#7/46.920/3.340")
95
+
96
+ expect(page.locator(".umap-ball-icon")).to_have_count(0)
97
+ page.locator(".umap-div-icon").click(modifiers=["Shift"])
98
+ page.get_by_role("combobox").select_option(str(datalayer.pk))
99
+ expect(page.locator(".umap-ball-icon")).to_have_count(1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: umap-project
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: Create maps with OpenStreetMap layers in a minute and embed them in your site.
5
5
  Author-email: Yohan Boniface <yb@enix.org>
6
6
  Maintainer-email: David Larlet <david@larlet.fr>
@@ -35,7 +35,7 @@ Requires-Dist: mkdocs-material==9.6.18; extra == 'dev'
35
35
  Requires-Dist: mkdocs-static-i18n==1.3.0; extra == 'dev'
36
36
  Requires-Dist: mkdocs==1.6.1; extra == 'dev'
37
37
  Requires-Dist: pymdown-extensions==10.16.1; extra == 'dev'
38
- Requires-Dist: ruff==0.12.10; extra == 'dev'
38
+ Requires-Dist: ruff==0.12.11; extra == 'dev'
39
39
  Requires-Dist: vermin==1.6.0; extra == 'dev'
40
40
  Provides-Extra: docker
41
41
  Requires-Dist: uvicorn==0.35.0; extra == 'docker'
@@ -48,7 +48,7 @@ Requires-Dist: websockets==15.0.1; extra == 'sync'
48
48
  Provides-Extra: test
49
49
  Requires-Dist: daphne==4.2.1; extra == 'test'
50
50
  Requires-Dist: factory-boy==3.3.3; extra == 'test'
51
- Requires-Dist: moto[s3]==5.1.10; extra == 'test'
51
+ Requires-Dist: moto[s3]==5.1.11; extra == 'test'
52
52
  Requires-Dist: playwright>=1.39; extra == 'test'
53
53
  Requires-Dist: pytest-django==4.11.1; extra == 'test'
54
54
  Requires-Dist: pytest-playwright==0.7.0; extra == 'test'
@@ -1,4 +1,4 @@
1
- umap/__init__.py,sha256=XR5V70-CcKGe7acoBLPVZiecGOP_E2HYEw-TWEmuZ0Q,18
1
+ umap/__init__.py,sha256=vV4bfYEs3TOb4gVNa58JkphnoCUIFIMbaMSuoX5gwAs,18
2
2
  umap/admin.py,sha256=YlK4CgEWb2eFYRKiklsKouxeiQ8z_b-H2Fv2XCaiGFQ,3014
3
3
  umap/apps.py,sha256=5ssKqPUuNJlapaBmr4LY_HDb7J1NFCT3wzythxQOOfs,109
4
4
  umap/asgi.py,sha256=sJkGqDLgMoPkq2nMRyRE_Hz3ZLJm1X5lgXiQJu6rYt0,660
@@ -277,13 +277,13 @@ umap/static/umap/js/modules/importers/openrouteservice.js,sha256=RGHMXDaDpgXg-6L
277
277
  umap/static/umap/js/modules/importers/overpass.js,sha256=cY2kb3Fs8tA6PqBjGyc5bI0mg7L1ijapIAkVGwEhSwI,3341
278
278
  umap/static/umap/js/modules/rendering/controls.js,sha256=7dPxGdfA3zhVfN26ZoTkO-Fg-Mp6QNUIbyoDznHBFN8,10631
279
279
  umap/static/umap/js/modules/rendering/icon.js,sha256=c4kTghfdjku03Ey825LIp9sZ9MS5e4MD8TsV8y33MOo,8910
280
- umap/static/umap/js/modules/rendering/map.js,sha256=zdBF7153X_vE-k0pZhcsNJKIc3nvLT3K0g_VHPfaMDE,12796
280
+ umap/static/umap/js/modules/rendering/map.js,sha256=frdccjuaoK9-PMCNAGGk0y_rG5DVUKWxPkeAQm_F_B4,12822
281
281
  umap/static/umap/js/modules/rendering/popup.js,sha256=OtQYpjhWCoW20XBFeeSKCXMqN-szohaX1TKWhPc9eBo,2577
282
282
  umap/static/umap/js/modules/rendering/template.js,sha256=n74YzbZOS_4CeK3-Jn7NXbkzqsh4zjCbEX9w15QxKu0,11468
283
- umap/static/umap/js/modules/rendering/ui.js,sha256=GzU3OW2fL5A4IgDk2mPEQ68ZWFUMqUwKJm1zqviSjnA,17559
283
+ umap/static/umap/js/modules/rendering/ui.js,sha256=paCAAAwtqwgLbgFUpRXEgObMyklkyK_BTaMbJJdI4-g,17613
284
284
  umap/static/umap/js/modules/rendering/layers/base.js,sha256=G9H41vTrh-6Yn5H9UhKj5BOx03Xp2jcevpZINTDCtHI,2528
285
285
  umap/static/umap/js/modules/rendering/layers/classified.js,sha256=CLktnkjf5_6CzkKVyZcx5wAKvhsRp4pRpCIBauwKeO0,15068
286
- umap/static/umap/js/modules/rendering/layers/cluster.js,sha256=y0wO6K3CMFxXLA4xub0wTJi5gQ3e9O7ZNf2pfVfx-cE,7789
286
+ umap/static/umap/js/modules/rendering/layers/cluster.js,sha256=YT1SPsYxRnIA6us48-oKC5Pl9NEb73krG7h7S1u8psY,7992
287
287
  umap/static/umap/js/modules/rendering/layers/heat.js,sha256=K_LsxnfpGImy2HlneV5nK0cBu1FxDmPNxR5VmsV4LaM,4975
288
288
  umap/static/umap/js/modules/sync/engine.js,sha256=LDB7HHCmfVb0Cz30yVXBSV0f-1CGG5bkzrPtaT5RePM,18390
289
289
  umap/static/umap/js/modules/sync/hlc.js,sha256=XeJz3x7qiDz7v-mcgGIynj5ks34FpWx_oSPUPFd_ZGA,2991
@@ -329,8 +329,8 @@ umap/static/umap/locale/fa_IR.js,sha256=cegs43aHAEsBXoMitji9KVhRLYX7aa7o9FYPMpD_
329
329
  umap/static/umap/locale/fa_IR.json,sha256=cRPc42Z0Rfelxc_Ebs3QEoiFrORBO5ZU1UfYLwv8o70,43132
330
330
  umap/static/umap/locale/fi.js,sha256=rfjcFAXpG1KHQphGys1l24hYPITYpZ6065J5utEyrVk,35706
331
331
  umap/static/umap/locale/fi.json,sha256=ks77grVEgGxcjbT0Re5gFrhXPB5wDtKHazCwqppn89E,35641
332
- umap/static/umap/locale/fr.js,sha256=wWtShv8yIokLC1y-eyucDlmsTzkrXCtfOPzq1yOqiPs,38350
333
- umap/static/umap/locale/fr.json,sha256=xaBCmTS5m5iRdO0QWFIcIYRBvOpU07PetlzUm5d4Q9g,38285
332
+ umap/static/umap/locale/fr.js,sha256=qSHGEQ5clGPrMY_4FE5NAn-qm_8-5ILLienZJdCJdII,38296
333
+ umap/static/umap/locale/fr.json,sha256=a4z-rjHqm-iybaM-eu49ltqKkDVDk9MVRRnGe8vJE74,38231
334
334
  umap/static/umap/locale/gl.js,sha256=UI2AACApwGhYluuJcGPE_f7389T6tEpytrwLsWawgKY,37745
335
335
  umap/static/umap/locale/gl.json,sha256=3LN5rMA1FB9KxR_4rolTJdr-k99qDUYYLK6vfMk1rig,37680
336
336
  umap/static/umap/locale/he.js,sha256=5GeT5SQloXbq-tAu_g19LungnjzMfg1yvJrDD4-22O8,38091
@@ -563,7 +563,7 @@ umap/tests/integration/test_caption.py,sha256=9JHQvTju2W-IoV2UBrEUAH4nV2W7eKN2hJ
563
563
  umap/tests/integration/test_categorized_layer.py,sha256=XCCK62fBljTEbt0EKoGsHf9hY2bCEIkyeuPxyhEGJDs,5381
564
564
  umap/tests/integration/test_choropleth.py,sha256=Lsd7tszSIua_GUeXhosB-JWk35zYN-3WKRVYI0ZrNSM,3777
565
565
  umap/tests/integration/test_circles_layer.py,sha256=PjYGmCvAd9qDnldnbiw6nomJs1YgUdX181a9xrWSUYE,2396
566
- umap/tests/integration/test_cluster.py,sha256=AK4t1k0nur2-gSSFPvkhnq7Ki81PgfvYv1AQcZmr5iQ,1680
566
+ umap/tests/integration/test_cluster.py,sha256=H-4sVmI3VnnRgaHYCEGxnUzCnXA0JB14bWQ4cHH5erY,3476
567
567
  umap/tests/integration/test_conditional_rules.py,sha256=D1vs3-fcxmLvlKK17Xf0i6dDkOK1UQWqBBFKodxfm0c,15657
568
568
  umap/tests/integration/test_dashboard.py,sha256=LClLBc8lgDM1-NGhkvUSUMLmMuKt3sR1ubt2Eo-Iq7A,1550
569
569
  umap/tests/integration/test_datalayer.py,sha256=CNxT97ZVB-pPjgXh77i3n3hJKgi4Sm0rYh5SbHB9ZWE,5752
@@ -602,8 +602,8 @@ umap/tests/integration/test_view_marker.py,sha256=NFCwNez__E_WsE1DuW5RuB0HVKDP4C
602
602
  umap/tests/integration/test_view_polygon.py,sha256=NMJC6Nt9VpQ8FIU9Pqq2OspHv49xsWlsoXCr8iBa0VA,2060
603
603
  umap/tests/integration/test_view_polyline.py,sha256=aJoXKmLhJaN0yhPdDCVskZNGx3q3mLDkjVPhZ30cadA,13959
604
604
  umap/tests/integration/test_websocket_sync.py,sha256=n3Nd9cDdYMfJjMIkGUidqeceAW2loM8nx17Bh57m0fo,28341
605
- umap_project-3.3.2.dist-info/METADATA,sha256=tKowCtiioD6jD3ihntyJxYw8nnHvxdSIXPMe_qZDrn8,5747
606
- umap_project-3.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
607
- umap_project-3.3.2.dist-info/entry_points.txt,sha256=gz-KDQfEsMLBae8ABOD3foJsCYGPW1tA4Y394R_1RW8,39
608
- umap_project-3.3.2.dist-info/licenses/LICENSE,sha256=kQtrtRKgiPhcl7aO0-lmvbrNAXu7WHyiXvPrUk-TD2Q,820
609
- umap_project-3.3.2.dist-info/RECORD,,
605
+ umap_project-3.3.3.dist-info/METADATA,sha256=tShpwvu_lDd8ZwrVa8NLgSTBf32Bn3DohUdSgOkzQ9k,5747
606
+ umap_project-3.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
607
+ umap_project-3.3.3.dist-info/entry_points.txt,sha256=gz-KDQfEsMLBae8ABOD3foJsCYGPW1tA4Y394R_1RW8,39
608
+ umap_project-3.3.3.dist-info/licenses/LICENSE,sha256=kQtrtRKgiPhcl7aO0-lmvbrNAXu7WHyiXvPrUk-TD2Q,820
609
+ umap_project-3.3.3.dist-info/RECORD,,