umap-project 2.7.3__py3-none-any.whl → 2.8.0a0__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 (279) hide show
  1. umap/__init__.py +1 -1
  2. umap/forms.py +4 -14
  3. umap/locale/am_ET/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/am_ET/LC_MESSAGES/django.po +278 -151
  5. umap/locale/ar/LC_MESSAGES/django.mo +0 -0
  6. umap/locale/ar/LC_MESSAGES/django.po +335 -141
  7. umap/locale/bg/LC_MESSAGES/django.mo +0 -0
  8. umap/locale/bg/LC_MESSAGES/django.po +279 -152
  9. umap/locale/br/LC_MESSAGES/django.mo +0 -0
  10. umap/locale/br/LC_MESSAGES/django.po +95 -79
  11. umap/locale/ca/LC_MESSAGES/django.mo +0 -0
  12. umap/locale/ca/LC_MESSAGES/django.po +85 -68
  13. umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  14. umap/locale/cs_CZ/LC_MESSAGES/django.po +78 -66
  15. umap/locale/da/LC_MESSAGES/django.mo +0 -0
  16. umap/locale/da/LC_MESSAGES/django.po +280 -153
  17. umap/locale/de/LC_MESSAGES/django.mo +0 -0
  18. umap/locale/de/LC_MESSAGES/django.po +80 -64
  19. umap/locale/el/LC_MESSAGES/django.mo +0 -0
  20. umap/locale/el/LC_MESSAGES/django.po +82 -66
  21. umap/locale/en/LC_MESSAGES/django.po +73 -61
  22. umap/locale/es/LC_MESSAGES/django.mo +0 -0
  23. umap/locale/es/LC_MESSAGES/django.po +75 -63
  24. umap/locale/et/LC_MESSAGES/django.mo +0 -0
  25. umap/locale/et/LC_MESSAGES/django.po +280 -153
  26. umap/locale/eu/LC_MESSAGES/django.mo +0 -0
  27. umap/locale/eu/LC_MESSAGES/django.po +82 -66
  28. umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
  29. umap/locale/fa_IR/LC_MESSAGES/django.po +80 -64
  30. umap/locale/fi/LC_MESSAGES/django.mo +0 -0
  31. umap/locale/fi/LC_MESSAGES/django.po +278 -151
  32. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  33. umap/locale/fr/LC_MESSAGES/django.po +75 -63
  34. umap/locale/gl/LC_MESSAGES/django.mo +0 -0
  35. umap/locale/gl/LC_MESSAGES/django.po +280 -153
  36. umap/locale/he/LC_MESSAGES/django.mo +0 -0
  37. umap/locale/he/LC_MESSAGES/django.po +281 -154
  38. umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  39. umap/locale/hu/LC_MESSAGES/django.po +80 -64
  40. umap/locale/is/LC_MESSAGES/django.mo +0 -0
  41. umap/locale/is/LC_MESSAGES/django.po +280 -153
  42. umap/locale/it/LC_MESSAGES/django.mo +0 -0
  43. umap/locale/it/LC_MESSAGES/django.po +82 -66
  44. umap/locale/ja/LC_MESSAGES/django.mo +0 -0
  45. umap/locale/ja/LC_MESSAGES/django.po +280 -153
  46. umap/locale/ko/LC_MESSAGES/django.mo +0 -0
  47. umap/locale/ko/LC_MESSAGES/django.po +280 -153
  48. umap/locale/lt/LC_MESSAGES/django.mo +0 -0
  49. umap/locale/lt/LC_MESSAGES/django.po +280 -153
  50. umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  51. umap/locale/ms/LC_MESSAGES/django.po +82 -66
  52. umap/locale/nl/LC_MESSAGES/django.mo +0 -0
  53. umap/locale/nl/LC_MESSAGES/django.po +280 -153
  54. umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  55. umap/locale/pl/LC_MESSAGES/django.po +82 -66
  56. umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  57. umap/locale/pt/LC_MESSAGES/django.po +75 -63
  58. umap/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  59. umap/locale/pt_BR/LC_MESSAGES/django.po +280 -153
  60. umap/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  61. umap/locale/pt_PT/LC_MESSAGES/django.po +280 -153
  62. umap/locale/ru/LC_MESSAGES/django.mo +0 -0
  63. umap/locale/ru/LC_MESSAGES/django.po +280 -153
  64. umap/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  65. umap/locale/sk_SK/LC_MESSAGES/django.po +280 -153
  66. umap/locale/sl/LC_MESSAGES/django.mo +0 -0
  67. umap/locale/sl/LC_MESSAGES/django.po +280 -153
  68. umap/locale/sr/LC_MESSAGES/django.mo +0 -0
  69. umap/locale/sr/LC_MESSAGES/django.po +280 -153
  70. umap/locale/sv/LC_MESSAGES/django.mo +0 -0
  71. umap/locale/sv/LC_MESSAGES/django.po +81 -65
  72. umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
  73. umap/locale/th_TH/LC_MESSAGES/django.po +257 -185
  74. umap/locale/tr/LC_MESSAGES/django.mo +0 -0
  75. umap/locale/tr/LC_MESSAGES/django.po +280 -153
  76. umap/locale/uk_UA/LC_MESSAGES/django.mo +0 -0
  77. umap/locale/uk_UA/LC_MESSAGES/django.po +280 -153
  78. umap/locale/vi/LC_MESSAGES/django.mo +0 -0
  79. umap/locale/vi/LC_MESSAGES/django.po +278 -151
  80. umap/locale/zh/LC_MESSAGES/django.mo +0 -0
  81. umap/locale/zh/LC_MESSAGES/django.po +278 -151
  82. umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  83. umap/locale/zh_TW/LC_MESSAGES/django.po +97 -81
  84. umap/management/commands/empty_trash.py +32 -0
  85. umap/management/commands/migrate_to_S3.py +29 -0
  86. umap/migrations/0023_alter_datalayer_uuid.py +19 -0
  87. umap/migrations/0024_alter_map_share_status.py +30 -0
  88. umap/migrations/0025_alter_datalayer_geojson.py +24 -0
  89. umap/models.py +68 -116
  90. umap/settings/base.py +22 -2
  91. umap/static/umap/base.css +3 -603
  92. umap/static/umap/content.css +5 -3
  93. umap/static/umap/css/bar.css +202 -0
  94. umap/static/umap/css/form.css +617 -0
  95. umap/static/umap/css/icon.css +21 -1
  96. umap/static/umap/css/popup.css +125 -0
  97. umap/static/umap/img/16-white.svg +16 -4
  98. umap/static/umap/img/16.svg +1 -1
  99. umap/static/umap/img/source/16-white.svg +46 -45
  100. umap/static/umap/img/source/16.svg +1 -753
  101. umap/static/umap/js/components/fragment.js +3 -1
  102. umap/static/umap/js/modules/browser.js +20 -19
  103. umap/static/umap/js/modules/caption.js +21 -22
  104. umap/static/umap/js/modules/data/features.js +101 -74
  105. umap/static/umap/js/modules/data/layer.js +157 -137
  106. umap/static/umap/js/modules/facets.js +9 -9
  107. umap/static/umap/js/modules/formatter.js +5 -5
  108. umap/static/umap/js/modules/global.js +4 -52
  109. umap/static/umap/js/modules/help.js +18 -21
  110. umap/static/umap/js/modules/importer.js +71 -39
  111. umap/static/umap/js/modules/importers/cadastrefr.js +4 -0
  112. umap/static/umap/js/modules/importers/geodatamine.js +3 -3
  113. umap/static/umap/js/modules/importers/overpass.js +5 -0
  114. umap/static/umap/js/modules/permissions.js +85 -87
  115. umap/static/umap/js/modules/rendering/layers/base.js +15 -15
  116. umap/static/umap/js/modules/rendering/layers/classified.js +1 -1
  117. umap/static/umap/js/modules/rendering/layers/cluster.js +1 -1
  118. umap/static/umap/js/modules/rendering/layers/heat.js +1 -1
  119. umap/static/umap/js/modules/rendering/map.js +390 -0
  120. umap/static/umap/js/modules/rendering/popup.js +10 -9
  121. umap/static/umap/js/modules/rendering/template.js +35 -12
  122. umap/static/umap/js/modules/rendering/ui.js +57 -12
  123. umap/static/umap/js/modules/rules.js +22 -25
  124. umap/static/umap/js/modules/saving.js +47 -0
  125. umap/static/umap/js/modules/schema.js +5 -0
  126. umap/static/umap/js/modules/share.js +21 -24
  127. umap/static/umap/js/modules/slideshow.js +24 -20
  128. umap/static/umap/js/modules/sync/updaters.js +7 -9
  129. umap/static/umap/js/modules/tableeditor.js +20 -19
  130. umap/static/umap/js/modules/ui/bar.js +196 -0
  131. umap/static/umap/js/modules/ui/panel.js +10 -9
  132. umap/static/umap/js/modules/umap.js +1668 -0
  133. umap/static/umap/js/modules/urls.js +2 -2
  134. umap/static/umap/js/modules/utils.js +20 -6
  135. umap/static/umap/js/umap.controls.js +74 -301
  136. umap/static/umap/js/umap.core.js +29 -50
  137. umap/static/umap/js/umap.forms.js +34 -27
  138. umap/static/umap/keycloak.png +0 -0
  139. umap/static/umap/locale/am_ET.js +26 -10
  140. umap/static/umap/locale/am_ET.json +26 -10
  141. umap/static/umap/locale/ar.js +26 -10
  142. umap/static/umap/locale/ar.json +26 -10
  143. umap/static/umap/locale/ast.js +26 -10
  144. umap/static/umap/locale/ast.json +26 -10
  145. umap/static/umap/locale/bg.js +26 -10
  146. umap/static/umap/locale/bg.json +26 -10
  147. umap/static/umap/locale/br.js +27 -20
  148. umap/static/umap/locale/br.json +27 -20
  149. umap/static/umap/locale/ca.js +32 -29
  150. umap/static/umap/locale/ca.json +32 -29
  151. umap/static/umap/locale/cs_CZ.js +24 -17
  152. umap/static/umap/locale/cs_CZ.json +24 -17
  153. umap/static/umap/locale/da.js +26 -10
  154. umap/static/umap/locale/da.json +26 -10
  155. umap/static/umap/locale/de.js +21 -14
  156. umap/static/umap/locale/de.json +21 -14
  157. umap/static/umap/locale/el.js +28 -12
  158. umap/static/umap/locale/el.json +28 -12
  159. umap/static/umap/locale/en.js +12 -9
  160. umap/static/umap/locale/en.json +12 -9
  161. umap/static/umap/locale/en_US.json +26 -10
  162. umap/static/umap/locale/es.js +16 -13
  163. umap/static/umap/locale/es.json +16 -13
  164. umap/static/umap/locale/et.js +26 -10
  165. umap/static/umap/locale/et.json +26 -10
  166. umap/static/umap/locale/eu.js +16 -9
  167. umap/static/umap/locale/eu.json +16 -9
  168. umap/static/umap/locale/fa_IR.js +16 -9
  169. umap/static/umap/locale/fa_IR.json +16 -9
  170. umap/static/umap/locale/fi.js +26 -10
  171. umap/static/umap/locale/fi.json +26 -10
  172. umap/static/umap/locale/fr.js +12 -9
  173. umap/static/umap/locale/fr.json +12 -9
  174. umap/static/umap/locale/gl.js +26 -10
  175. umap/static/umap/locale/gl.json +26 -10
  176. umap/static/umap/locale/he.js +26 -10
  177. umap/static/umap/locale/he.json +26 -10
  178. umap/static/umap/locale/hr.js +26 -10
  179. umap/static/umap/locale/hr.json +26 -10
  180. umap/static/umap/locale/hu.js +16 -9
  181. umap/static/umap/locale/hu.json +16 -9
  182. umap/static/umap/locale/id.js +26 -10
  183. umap/static/umap/locale/id.json +26 -10
  184. umap/static/umap/locale/is.js +26 -10
  185. umap/static/umap/locale/is.json +26 -10
  186. umap/static/umap/locale/it.js +26 -10
  187. umap/static/umap/locale/it.json +26 -10
  188. umap/static/umap/locale/ja.js +26 -10
  189. umap/static/umap/locale/ja.json +26 -10
  190. umap/static/umap/locale/ko.js +26 -10
  191. umap/static/umap/locale/ko.json +26 -10
  192. umap/static/umap/locale/lt.js +26 -10
  193. umap/static/umap/locale/lt.json +26 -10
  194. umap/static/umap/locale/ms.js +28 -12
  195. umap/static/umap/locale/ms.json +28 -12
  196. umap/static/umap/locale/nl.js +28 -12
  197. umap/static/umap/locale/nl.json +28 -12
  198. umap/static/umap/locale/no.js +26 -10
  199. umap/static/umap/locale/no.json +26 -10
  200. umap/static/umap/locale/pl.js +28 -12
  201. umap/static/umap/locale/pl.json +28 -12
  202. umap/static/umap/locale/pl_PL.json +26 -10
  203. umap/static/umap/locale/pt.js +16 -9
  204. umap/static/umap/locale/pt.json +16 -9
  205. umap/static/umap/locale/pt_BR.js +26 -10
  206. umap/static/umap/locale/pt_BR.json +26 -10
  207. umap/static/umap/locale/pt_PT.js +16 -9
  208. umap/static/umap/locale/pt_PT.json +16 -9
  209. umap/static/umap/locale/ro.js +26 -10
  210. umap/static/umap/locale/ro.json +26 -10
  211. umap/static/umap/locale/ru.js +26 -10
  212. umap/static/umap/locale/ru.json +26 -10
  213. umap/static/umap/locale/si.js +7 -7
  214. umap/static/umap/locale/si.json +7 -7
  215. umap/static/umap/locale/sk_SK.js +26 -10
  216. umap/static/umap/locale/sk_SK.json +26 -10
  217. umap/static/umap/locale/sl.js +26 -10
  218. umap/static/umap/locale/sl.json +26 -10
  219. umap/static/umap/locale/sr.js +26 -10
  220. umap/static/umap/locale/sr.json +26 -10
  221. umap/static/umap/locale/sv.js +27 -11
  222. umap/static/umap/locale/sv.json +27 -11
  223. umap/static/umap/locale/th_TH.js +28 -12
  224. umap/static/umap/locale/th_TH.json +28 -12
  225. umap/static/umap/locale/tr.js +26 -10
  226. umap/static/umap/locale/tr.json +26 -10
  227. umap/static/umap/locale/uk_UA.js +26 -10
  228. umap/static/umap/locale/uk_UA.json +26 -10
  229. umap/static/umap/locale/vi.js +26 -10
  230. umap/static/umap/locale/vi.json +26 -10
  231. umap/static/umap/locale/vi_VN.json +26 -10
  232. umap/static/umap/locale/zh.js +26 -10
  233. umap/static/umap/locale/zh.json +26 -10
  234. umap/static/umap/locale/zh_CN.json +26 -10
  235. umap/static/umap/locale/zh_TW.Big5.json +26 -10
  236. umap/static/umap/locale/zh_TW.js +34 -27
  237. umap/static/umap/locale/zh_TW.json +34 -27
  238. umap/static/umap/map.css +5 -364
  239. umap/static/umap/unittests/URLs.js +15 -15
  240. umap/static/umap/unittests/utils.js +23 -1
  241. umap/static/umap/vars.css +2 -0
  242. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +5 -1
  243. umap/storage.py +152 -0
  244. umap/templates/registration/login.html +7 -6
  245. umap/templates/umap/css.html +3 -0
  246. umap/templates/umap/js.html +1 -2
  247. umap/templates/umap/map_init.html +4 -5
  248. umap/templates/umap/user_dashboard.html +18 -19
  249. umap/tests/base.py +5 -1
  250. umap/tests/integration/conftest.py +2 -1
  251. umap/tests/integration/test_anonymous_owned_map.py +18 -10
  252. umap/tests/integration/test_browser.py +16 -1
  253. umap/tests/integration/test_dashboard.py +1 -1
  254. umap/tests/integration/test_edit_datalayer.py +18 -7
  255. umap/tests/integration/test_import.py +8 -5
  256. umap/tests/integration/test_optimistic_merge.py +31 -8
  257. umap/tests/integration/test_owned_map.py +22 -16
  258. umap/tests/integration/test_popup.py +44 -0
  259. umap/tests/integration/test_save.py +35 -0
  260. umap/tests/integration/test_view_marker.py +12 -0
  261. umap/tests/integration/test_view_polyline.py +257 -0
  262. umap/tests/integration/test_websocket_sync.py +81 -9
  263. umap/tests/test_datalayer.py +6 -7
  264. umap/tests/test_datalayer_s3.py +135 -0
  265. umap/tests/test_datalayer_views.py +28 -10
  266. umap/tests/test_empty_trash.py +34 -0
  267. umap/tests/test_map.py +12 -3
  268. umap/tests/test_map_views.py +69 -37
  269. umap/tests/test_views.py +53 -0
  270. umap/urls.py +3 -3
  271. umap/views.py +107 -76
  272. {umap_project-2.7.3.dist-info → umap_project-2.8.0a0.dist-info}/METADATA +16 -13
  273. {umap_project-2.7.3.dist-info → umap_project-2.8.0a0.dist-info}/RECORD +276 -262
  274. umap/management/commands/purge_purgatory.py +0 -28
  275. umap/static/umap/js/umap.js +0 -1903
  276. umap/tests/test_purge_purgatory.py +0 -25
  277. {umap_project-2.7.3.dist-info → umap_project-2.8.0a0.dist-info}/WHEEL +0 -0
  278. {umap_project-2.7.3.dist-info → umap_project-2.8.0a0.dist-info}/entry_points.txt +0 -0
  279. {umap_project-2.7.3.dist-info → umap_project-2.8.0a0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,196 @@
1
+ import { DomEvent } from '../../../vendors/leaflet/leaflet-src.esm.js'
2
+ import { translate } from '../i18n.js'
3
+ import { WithTemplate } from '../utils.js'
4
+ import ContextMenu from './contextmenu.js'
5
+
6
+ const TOP_BAR_TEMPLATE = `
7
+ <div class="umap-main-edit-toolbox with-transition dark">
8
+ <div class="umap-left-edit-toolbox" data-ref="left">
9
+ <div class="logo"><a class="" href="/" title="${translate('Go to the homepage')}">uMap</a></div>
10
+ <button class="map-name" type="button" data-ref="name"></button>
11
+ <button class="share-status" type="button" data-ref="share"></button>
12
+ </div>
13
+ <div class="umap-right-edit-toolbox" data-ref="right">
14
+ <button class="connected-peers round" type="button" data-ref="peers">
15
+ <i class="icon icon-16 icon-peers icon-black"></i>
16
+ <span></span>
17
+ </button>
18
+ <button class="umap-user flat" type="button" data-ref="user">
19
+ <i class="icon icon-16 icon-profile"></i>
20
+ <span class="username" data-ref="username"></span>
21
+ </button>
22
+ <button class="umap-help-link" type="button" title="${translate('Help')}" data-ref="help">${translate('Help')}</button>
23
+ <button class="edit-cancel round" type="button" data-ref="cancel">
24
+ <i class="icon icon-16 icon-restore"></i>
25
+ <span class="">${translate('Cancel edits')}</span>
26
+ </button>
27
+ <button class="edit-disable round" type="button" data-ref="view">
28
+ <i class="icon icon-16 icon-eye"></i>
29
+ <span class="">${translate('View')}</span>
30
+ </button>
31
+ <button class="edit-save button round" type="button" data-ref="save">
32
+ <i class="icon icon-16 icon-save"></i>
33
+ <i class="icon icon-16 icon-save-disabled"></i>
34
+ <span hidden data-ref="saveLabel">${translate('Save')}</span>
35
+ <span hidden data-ref="saveDraftLabel">${translate('Save draft')}</span>
36
+ </button>
37
+ </div>
38
+ </div>`
39
+
40
+ export class TopBar extends WithTemplate {
41
+ constructor(umap, parent) {
42
+ super()
43
+ this._umap = umap
44
+ this._menu = new ContextMenu({ className: 'dark', fixed: true })
45
+ this.loadTemplate(TOP_BAR_TEMPLATE)
46
+ this.parent = parent
47
+ }
48
+
49
+ setup() {
50
+ this.parent.appendChild(this.element)
51
+ this.elements.name.addEventListener('mouseover', () => {
52
+ this._umap.tooltip.open({
53
+ content: translate('Edit the title of the map'),
54
+ anchor: this.elements.name,
55
+ position: 'bottom',
56
+ delay: 500,
57
+ duration: 5000,
58
+ })
59
+ })
60
+ this.elements.share.addEventListener('mouseover', () => {
61
+ this._umap.tooltip.open({
62
+ content: translate('Update who can see and edit the map'),
63
+ anchor: this.elements.share,
64
+ position: 'bottom',
65
+ delay: 500,
66
+ duration: 5000,
67
+ })
68
+ })
69
+ if (this._umap.properties.editMode === 'advanced') {
70
+ this.elements.name.addEventListener('click', () => this._umap.editCaption())
71
+ this.elements.share.addEventListener('click', () => this._umap.permissions.edit())
72
+ }
73
+ this.elements.user.addEventListener('click', () => {
74
+ if (this._umap.properties.user?.id) {
75
+ const actions = [
76
+ {
77
+ label: translate('New map'),
78
+ action: this._umap.urls.get('map_new'),
79
+ },
80
+ {
81
+ label: translate('My maps'),
82
+ action: this._umap.urls.get('user_dashboard'),
83
+ },
84
+ {
85
+ label: translate('My teams'),
86
+ action: this._umap.urls.get('user_teams'),
87
+ },
88
+ ]
89
+ if (this._umap.urls.has('user_profile')) {
90
+ actions.push({
91
+ label: translate('My profile'),
92
+ action: this._umap.urls.get('user_profile'),
93
+ })
94
+ }
95
+ this._menu.openBelow(this.elements.user, actions)
96
+ }
97
+ })
98
+
99
+ const connectedPeers = this._umap.sync.getNumberOfConnectedPeers()
100
+ this.elements.peers.addEventListener('mouseover', () => {
101
+ if (!connectedPeers) return
102
+ this._umap.tooltip.open({
103
+ content: translate('{connectedPeers} peer(s) currently connected to this map', {
104
+ connectedPeers: connectedPeers,
105
+ }),
106
+ anchor: this.elements.peers,
107
+ position: 'bottom',
108
+ delay: 500,
109
+ duration: 5000,
110
+ })
111
+ })
112
+
113
+ this.elements.help.addEventListener('click', () => this._umap.showGetStarted())
114
+ this.elements.cancel.addEventListener('click', () => this._umap.askForReset())
115
+ this.elements.cancel.addEventListener('mouseover', () => {
116
+ this._umap.tooltip.open({
117
+ content: this._umap.help.displayLabel('CANCEL'),
118
+ anchor: this.elements.cancel,
119
+ position: 'bottom',
120
+ delay: 500,
121
+ duration: 5000,
122
+ })
123
+ })
124
+ this.elements.view.addEventListener('click', () => this._umap.disableEdit())
125
+ this.elements.view.addEventListener('mouseover', () => {
126
+ this._umap.tooltip.open({
127
+ content: this._umap.help.displayLabel('PREVIEW'),
128
+ anchor: this.elements.view,
129
+ position: 'bottom',
130
+ delay: 500,
131
+ duration: 5000,
132
+ })
133
+ })
134
+ this.elements.save.addEventListener('click', () => this._umap.saveAll())
135
+ this.elements.save.addEventListener('mouseover', () => {
136
+ this._umap.tooltip.open({
137
+ content: this._umap.help.displayLabel('SAVE'),
138
+ anchor: this.elements.save,
139
+ position: 'bottom',
140
+ delay: 500,
141
+ duration: 5000,
142
+ })
143
+ })
144
+ this.redraw()
145
+ }
146
+
147
+ redraw() {
148
+ this.elements.peers.hidden = !this._umap.getProperty('syncEnabled')
149
+ this.elements.saveLabel.hidden = this._umap.permissions.isDraft()
150
+ this.elements.saveDraftLabel.hidden = !this._umap.permissions.isDraft()
151
+ }
152
+ }
153
+
154
+ const BOTTOM_BAR_TEMPLATE = `
155
+ <div class="umap-caption-bar">
156
+ <h3 class="map-name"></h3>
157
+ <span data-ref="author"></span>
158
+ <button class="umap-about-link flat" type="button" title="${translate('Open caption')}" data-ref="caption">${translate('Open caption')}</button>
159
+ <button class="umap-open-browser-link flat" type="button" title="${translate('Browse data')}" data-ref="browse">${translate('Browse data')}</button>
160
+ <button class="umap-open-browser-link flat" type="button" title="${translate('Filter data')}" data-ref="filter">${translate('Filter data')}</button>
161
+ </div>
162
+ `
163
+
164
+ export class BottomBar extends WithTemplate {
165
+ constructor(umap, slideshow, parent) {
166
+ super()
167
+ this._umap = umap
168
+ this._slideshow = slideshow
169
+ this.loadTemplate(BOTTOM_BAR_TEMPLATE)
170
+ this.parent = parent
171
+ }
172
+
173
+ setup() {
174
+ this.parent.appendChild(this.element)
175
+ DomEvent.disableClickPropagation(this.element)
176
+ this._umap.addAuthorLink(this.elements.author)
177
+ this.elements.caption.addEventListener('click', () => this._umap.openCaption())
178
+ this.elements.browse.addEventListener('click', () => this._umap.openBrowser('data'))
179
+ this.elements.filter.addEventListener('click', () =>
180
+ this._umap.openBrowser('filters')
181
+ )
182
+ this._slideshow.renderToolbox(this.element)
183
+ this.redraw()
184
+ }
185
+
186
+ redraw() {
187
+ const hasSlideshow = this._slideshow.isEnabled()
188
+ const barEnabled = this._umap.properties.captionBar || hasSlideshow
189
+ document.body.classList.toggle('umap-caption-bar-enabled', barEnabled)
190
+ document.body.classList.toggle('umap-slideshow-enabled', hasSlideshow)
191
+ const showMenus = this._umap.getProperty('captionMenus')
192
+ this.elements.caption.hidden = !showMenus
193
+ this.elements.browse.hidden = !showMenus
194
+ this.elements.filter.hidden = !showMenus || !this._umap.properties.facetKey
195
+ }
196
+ }
@@ -2,9 +2,10 @@ import { DomEvent, DomUtil } from '../../../vendors/leaflet/leaflet-src.esm.js'
2
2
  import { translate } from '../i18n.js'
3
3
 
4
4
  export class Panel {
5
- constructor(map) {
6
- this.parent = map._controlContainer
7
- this.map = map
5
+ constructor(umap, leafletMap) {
6
+ this.parent = leafletMap._controlContainer
7
+ this._umap = umap
8
+ this._leafletMap = leafletMap
8
9
  this.container = DomUtil.create('div', '', this.parent)
9
10
  // This will be set once according to the panel configurated at load
10
11
  // or by using panels as popups
@@ -80,26 +81,26 @@ export class Panel {
80
81
  onClose() {
81
82
  if (DomUtil.hasClass(this.container, 'on')) {
82
83
  DomUtil.removeClass(this.container, 'on')
83
- this.map.invalidateSize({ pan: false })
84
+ this._leafletMap.invalidateSize({ pan: false })
84
85
  }
85
86
  }
86
87
  }
87
88
 
88
89
  export class EditPanel extends Panel {
89
- constructor(map) {
90
- super(map)
90
+ constructor(umap, leafletMap) {
91
+ super(umap, leafletMap)
91
92
  this.className = 'right dark'
92
93
  }
93
94
 
94
95
  onClose() {
95
96
  super.onClose()
96
- this.map.editedFeature = null
97
+ this._umap.editedFeature = null
97
98
  }
98
99
  }
99
100
 
100
101
  export class FullPanel extends Panel {
101
- constructor(map) {
102
- super(map)
102
+ constructor(umap, leafletMap) {
103
+ super(umap, leafletMap)
103
104
  this.className = 'full dark'
104
105
  this.mode = 'expanded'
105
106
  }