@mapsight/ui 7.1.0 → 7.2.0

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 (484) hide show
  1. package/README.md +91 -2
  2. package/dist/components/app.d.ts +1 -1
  3. package/dist/components/app.d.ts.map +1 -1
  4. package/dist/components/feature-details-content/feature-details-content.d.ts +1 -1
  5. package/dist/components/feature-details-content/feature-details-content.d.ts.map +1 -1
  6. package/dist/components/feature-details-content/index.d.ts +1 -1
  7. package/dist/components/feature-details-content/share-feature-link-modal.d.ts +1 -1
  8. package/dist/components/feature-details-content/share-feature-link-modal.d.ts.map +1 -1
  9. package/dist/components/feature-list/context.d.ts +12 -4
  10. package/dist/components/feature-list/context.d.ts.map +1 -1
  11. package/dist/components/feature-list/context.js.map +1 -1
  12. package/dist/components/feature-list/empty-message.d.ts +1 -1
  13. package/dist/components/feature-list/empty-message.d.ts.map +1 -1
  14. package/dist/components/feature-list/filter.d.ts +1 -1
  15. package/dist/components/feature-list/filter.d.ts.map +1 -1
  16. package/dist/components/feature-list/footer.d.ts +1 -1
  17. package/dist/components/feature-list/footer.d.ts.map +1 -1
  18. package/dist/components/feature-list/hooks/useAutoloadFeatureSource.d.ts.map +1 -1
  19. package/dist/components/feature-list/hooks/useAutoloadFeatureSource.js +12 -3
  20. package/dist/components/feature-list/hooks/useAutoloadFeatureSource.js.map +1 -1
  21. package/dist/components/feature-list/index.d.ts +3 -2
  22. package/dist/components/feature-list/index.d.ts.map +1 -1
  23. package/dist/components/feature-list/index.js +30 -42
  24. package/dist/components/feature-list/index.js.map +1 -1
  25. package/dist/components/feature-list/pagination.d.ts +1 -1
  26. package/dist/components/feature-list/pagination.d.ts.map +1 -1
  27. package/dist/components/feature-list/query-input.d.ts +1 -1
  28. package/dist/components/feature-list/query-input.d.ts.map +1 -1
  29. package/dist/components/feature-list/tag-switcher-control.d.ts +4 -0
  30. package/dist/components/feature-list/tag-switcher-control.d.ts.map +1 -0
  31. package/dist/components/feature-list/tag-switcher-control.js +10 -0
  32. package/dist/components/feature-list/tag-switcher-control.js.map +1 -0
  33. package/dist/components/feature-list-cycling/button.d.ts +1 -1
  34. package/dist/components/feature-list-cycling/button.d.ts.map +1 -1
  35. package/dist/components/feature-list-cycling/dot.d.ts +1 -1
  36. package/dist/components/feature-list-cycling/dot.d.ts.map +1 -1
  37. package/dist/components/feature-list-cycling/feature-list-cycling.d.ts +1 -1
  38. package/dist/components/feature-list-cycling/feature-list-cycling.d.ts.map +1 -1
  39. package/dist/components/feature-list-cycling/index.d.ts +1 -1
  40. package/dist/components/feature-list-item/icon.d.ts +8 -6
  41. package/dist/components/feature-list-item/icon.d.ts.map +1 -1
  42. package/dist/components/feature-list-item/icon.js +5 -13
  43. package/dist/components/feature-list-item/icon.js.map +1 -1
  44. package/dist/components/feature-list-item/index.d.ts +1 -1
  45. package/dist/components/feature-list-item/index.d.ts.map +1 -1
  46. package/dist/components/feature-list-sorting/feature-list-sorting.d.ts +1 -1
  47. package/dist/components/feature-list-sorting/feature-list-sorting.d.ts.map +1 -1
  48. package/dist/components/feature-list-sorting/feature-list-sorting.js +3 -12
  49. package/dist/components/feature-list-sorting/feature-list-sorting.js.map +1 -1
  50. package/dist/components/feature-list-sorting/index.d.ts +1 -1
  51. package/dist/components/feature-list-sorting/status-indicator.d.ts +1 -1
  52. package/dist/components/feature-list-sorting/status-indicator.d.ts.map +1 -1
  53. package/dist/components/feature-select-button.d.ts +1 -1
  54. package/dist/components/feature-select-button.d.ts.map +1 -1
  55. package/dist/components/feature-selection-info/close-button.d.ts +1 -1
  56. package/dist/components/feature-selection-info/close-button.d.ts.map +1 -1
  57. package/dist/components/feature-selection-info/container.d.ts +1 -1
  58. package/dist/components/feature-selection-info/container.d.ts.map +1 -1
  59. package/dist/components/feature-selection-info/header.d.ts +1 -1
  60. package/dist/components/feature-selection-info/header.d.ts.map +1 -1
  61. package/dist/components/feature-selection-info/index.d.ts +1 -1
  62. package/dist/components/feature-selection-info/index.d.ts.map +1 -1
  63. package/dist/components/feature-selection-info/with-sticky-header.d.ts +1 -1
  64. package/dist/components/feature-selection-info/with-sticky-header.d.ts.map +1 -1
  65. package/dist/components/feature-selection-info/without-sticky-header.d.ts +1 -1
  66. package/dist/components/feature-selection-info/without-sticky-header.d.ts.map +1 -1
  67. package/dist/components/filter-toggle-control/FilterToggleControl.d.ts +12 -0
  68. package/dist/components/filter-toggle-control/FilterToggleControl.d.ts.map +1 -0
  69. package/dist/components/filter-toggle-control/FilterToggleControl.js +20 -0
  70. package/dist/components/filter-toggle-control/FilterToggleControl.js.map +1 -0
  71. package/dist/components/helping/app-channel.d.ts +1 -1
  72. package/dist/components/helping/app-channel.d.ts.map +1 -1
  73. package/dist/components/helping/app-context.d.ts +1 -1
  74. package/dist/components/helping/app-context.d.ts.map +1 -1
  75. package/dist/components/instance.d.ts +1 -1
  76. package/dist/components/instance.d.ts.map +1 -1
  77. package/dist/components/layer-switcher/GroupedLayerSwitcher.d.ts +1 -1
  78. package/dist/components/layer-switcher/LayerSwitcher.d.ts +1 -1
  79. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts +3 -2
  80. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts.map +1 -1
  81. package/dist/components/layer-switcher/LayerSwitcherContainer.js +2 -2
  82. package/dist/components/layer-switcher/LayerSwitcherContainer.js.map +1 -1
  83. package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts +1 -1
  84. package/dist/components/layer-switcher/index.d.ts +1 -1
  85. package/dist/components/layer-switcher/index.js.map +1 -1
  86. package/dist/components/layout/additional-container/content.d.ts +1 -1
  87. package/dist/components/layout/additional-container/content.d.ts.map +1 -1
  88. package/dist/components/layout/additional-container/index.d.ts +1 -1
  89. package/dist/components/layout/additional-container/index.d.ts.map +1 -1
  90. package/dist/components/layout/additional-container/marginal.d.ts +1 -1
  91. package/dist/components/layout/additional-container/marginal.d.ts.map +1 -1
  92. package/dist/components/layout/main-container.d.ts +1 -1
  93. package/dist/components/layout/main-container.d.ts.map +1 -1
  94. package/dist/components/layout/map-row.d.ts +1 -1
  95. package/dist/components/layout/map-row.d.ts.map +1 -1
  96. package/dist/components/layout/title-bar.d.ts +1 -1
  97. package/dist/components/layout/title-bar.d.ts.map +1 -1
  98. package/dist/components/layout/wrapper.d.ts +1 -1
  99. package/dist/components/layout/wrapper.d.ts.map +1 -1
  100. package/dist/components/link-share.d.ts +1 -1
  101. package/dist/components/link-share.d.ts.map +1 -1
  102. package/dist/components/main-panel/container.d.ts +1 -1
  103. package/dist/components/main-panel/container.d.ts.map +1 -1
  104. package/dist/components/main-panel/context.d.ts +1 -1
  105. package/dist/components/main-panel/context.d.ts.map +1 -1
  106. package/dist/components/main-panel/index.d.ts +1 -1
  107. package/dist/components/main-panel/index.d.ts.map +1 -1
  108. package/dist/components/main-panel/list-toggle-button.d.ts +1 -1
  109. package/dist/components/main-panel/list-toggle-button.d.ts.map +1 -1
  110. package/dist/components/map-overlay/attribution-entries.d.ts +1 -1
  111. package/dist/components/map-overlay/attribution-entries.d.ts.map +1 -1
  112. package/dist/components/map-overlay/attribution.d.ts +1 -1
  113. package/dist/components/map-overlay/attribution.d.ts.map +1 -1
  114. package/dist/components/map-overlay/combined-buttons.d.ts +1 -1
  115. package/dist/components/map-overlay/combined-buttons.d.ts.map +1 -1
  116. package/dist/components/map-overlay/index.d.ts +1 -1
  117. package/dist/components/map-overlay/index.d.ts.map +1 -1
  118. package/dist/components/map-overlay/info-overlay-left.d.ts +1 -1
  119. package/dist/components/map-overlay/info-overlay-left.d.ts.map +1 -1
  120. package/dist/components/map-overlay/info-overlay-modal.d.ts +1 -1
  121. package/dist/components/map-overlay/info-overlay-modal.d.ts.map +1 -1
  122. package/dist/components/map-overlay/info-overlay-right.d.ts +1 -1
  123. package/dist/components/map-overlay/info-overlay-right.d.ts.map +1 -1
  124. package/dist/components/map-overlay/layer-switcher-overlay.d.ts +1 -1
  125. package/dist/components/map-overlay/layer-switcher-overlay.d.ts.map +1 -1
  126. package/dist/components/map-overlay/legend.d.ts +1 -1
  127. package/dist/components/map-overlay/legend.d.ts.map +1 -1
  128. package/dist/components/map-overlay/logo.d.ts +1 -1
  129. package/dist/components/map-overlay/logo.d.ts.map +1 -1
  130. package/dist/components/map-overlay/measure-distance-button.d.ts +1 -1
  131. package/dist/components/map-overlay/measure-distance-button.d.ts.map +1 -1
  132. package/dist/components/map-overlay/measure-distance-overlay.d.ts +1 -1
  133. package/dist/components/map-overlay/measure-distance-overlay.d.ts.map +1 -1
  134. package/dist/components/map-overlay/search-overlay.d.ts +1 -1
  135. package/dist/components/map-overlay/search-overlay.d.ts.map +1 -1
  136. package/dist/components/map-overlay/share-position-link-button.d.ts +1 -1
  137. package/dist/components/map-overlay/share-position-link-button.d.ts.map +1 -1
  138. package/dist/components/map-overlay/tool-overlay.d.ts +1 -1
  139. package/dist/components/map-overlay/tool-overlay.d.ts.map +1 -1
  140. package/dist/components/map-overlay/zoom-buttons.d.ts +1 -1
  141. package/dist/components/map-overlay/zoom-buttons.d.ts.map +1 -1
  142. package/dist/components/map-synced-interlay/index.d.ts +1 -1
  143. package/dist/components/map-synced-interlay/map-synced-interlay.d.ts +1 -1
  144. package/dist/components/map-synced-interlay/map-synced-interlay.d.ts.map +1 -1
  145. package/dist/components/map-synced-interlay/tooltip.d.ts +1 -1
  146. package/dist/components/map-synced-interlay/tooltip.d.ts.map +1 -1
  147. package/dist/components/map-wrapper.d.ts +3 -3
  148. package/dist/components/map-wrapper.d.ts.map +1 -1
  149. package/dist/components/map-wrapper.js +4 -7
  150. package/dist/components/map-wrapper.js.map +1 -1
  151. package/dist/components/map.d.ts +1 -1
  152. package/dist/components/map.d.ts.map +1 -1
  153. package/dist/components/mapsight-icon/mapsight-icon.d.ts +10 -0
  154. package/dist/components/mapsight-icon/mapsight-icon.d.ts.map +1 -0
  155. package/dist/components/mapsight-icon/mapsight-icon.js +33 -0
  156. package/dist/components/mapsight-icon/mapsight-icon.js.map +1 -0
  157. package/dist/components/modal.d.ts +1 -1
  158. package/dist/components/modal.d.ts.map +1 -1
  159. package/dist/components/query-input-with-label.d.ts +1 -1
  160. package/dist/components/query-input-with-label.d.ts.map +1 -1
  161. package/dist/components/search/index.d.ts +1 -1
  162. package/dist/components/search/index.d.ts.map +1 -1
  163. package/dist/components/search/result-entry.d.ts +1 -1
  164. package/dist/components/search/result-entry.d.ts.map +1 -1
  165. package/dist/components/search/result.d.ts +1 -1
  166. package/dist/components/search/result.d.ts.map +1 -1
  167. package/dist/components/switcher/GroupedSwitcher.d.ts +1 -1
  168. package/dist/components/switcher/GroupedSwitcher.d.ts.map +1 -1
  169. package/dist/components/switcher/Switcher.d.ts +1 -1
  170. package/dist/components/switcher/Switcher.d.ts.map +1 -1
  171. package/dist/components/switcher/SwitcherButton.d.ts +1 -1
  172. package/dist/components/switcher/SwitcherButton.d.ts.map +1 -1
  173. package/dist/components/switcher/SwitcherEntry.d.ts +1 -1
  174. package/dist/components/switcher/SwitcherEntry.d.ts.map +1 -1
  175. package/dist/components/switcher/SwitcherHeader.d.ts +1 -1
  176. package/dist/components/switcher/SwitcherHeader.d.ts.map +1 -1
  177. package/dist/components/switcher/SwitcherStatusIcon.d.ts +1 -1
  178. package/dist/components/switcher/SwitcherStatusIcon.d.ts.map +1 -1
  179. package/dist/components/tag-switcher/TagSwitcher.d.ts +1 -1
  180. package/dist/components/tag-switcher/TagSwitcher.d.ts.map +1 -1
  181. package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts +1 -1
  182. package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts +1 -1
  183. package/dist/components/tag-switcher/index.d.ts +1 -1
  184. package/dist/components/time-filter.d.ts +1 -1
  185. package/dist/components/time-filter.d.ts.map +1 -1
  186. package/dist/components/view-toggle-button/desktop-button.d.ts +1 -1
  187. package/dist/components/view-toggle-button/desktop-button.d.ts.map +1 -1
  188. package/dist/components/view-toggle-button/index.d.ts +1 -1
  189. package/dist/components/view-toggle-button/mobile-button.d.ts +1 -1
  190. package/dist/components/view-toggle-button/mobile-button.d.ts.map +1 -1
  191. package/dist/components/view-toggle-button/view-toggle-button.d.ts +1 -1
  192. package/dist/components/view-toggle-button/view-toggle-button.d.ts.map +1 -1
  193. package/dist/components/view-toggle-button/viewport-button.d.ts +1 -1
  194. package/dist/components/view-toggle-button/viewport-button.d.ts.map +1 -1
  195. package/dist/config/feature/sources.d.ts +8 -5
  196. package/dist/config/feature/sources.d.ts.map +1 -1
  197. package/dist/config/feature/sources.js +10 -0
  198. package/dist/config/feature/sources.js.map +1 -1
  199. package/dist/config/index.d.ts +1 -1
  200. package/dist/config/map/featureInteractions.js.map +1 -1
  201. package/dist/config/map/layers.d.ts +16 -13
  202. package/dist/config/map/layers.d.ts.map +1 -1
  203. package/dist/config/map/layers.js.map +1 -1
  204. package/dist/config/schema/index.d.ts +195 -0
  205. package/dist/config/schema/index.d.ts.map +1 -0
  206. package/dist/config/schema/index.js +26 -0
  207. package/dist/config/schema/index.js.map +1 -0
  208. package/dist/config/schema/validate.d.ts +8 -0
  209. package/dist/config/schema/validate.d.ts.map +1 -0
  210. package/dist/config/schema/validate.js +7 -0
  211. package/dist/config/schema/validate.js.map +1 -0
  212. package/dist/controllers/defaults.d.ts.map +1 -1
  213. package/dist/controllers/defaults.js +5 -0
  214. package/dist/controllers/defaults.js.map +1 -1
  215. package/dist/filters/tag-filter.d.ts +7 -0
  216. package/dist/filters/tag-filter.d.ts.map +1 -1
  217. package/dist/filters/tag-filter.js +10 -0
  218. package/dist/filters/tag-filter.js.map +1 -1
  219. package/dist/filters/time-filter.d.ts +9 -0
  220. package/dist/filters/time-filter.d.ts.map +1 -1
  221. package/dist/filters/time-filter.js +10 -0
  222. package/dist/filters/time-filter.js.map +1 -1
  223. package/dist/helpers/i18n/de.d.ts.map +1 -1
  224. package/dist/helpers/i18n/de.js +1 -0
  225. package/dist/helpers/i18n/de.js.map +1 -1
  226. package/dist/helpers/i18n/en.d.ts.map +1 -1
  227. package/dist/helpers/i18n/en.js +1 -0
  228. package/dist/helpers/i18n/en.js.map +1 -1
  229. package/dist/helpers/sort-features-by-distance.d.ts +2 -7
  230. package/dist/helpers/sort-features-by-distance.d.ts.map +1 -1
  231. package/dist/helpers/sort-features-by-distance.js +27 -39
  232. package/dist/helpers/sort-features-by-distance.js.map +1 -1
  233. package/dist/hooks/useMapsightIcon.d.ts +8 -0
  234. package/dist/hooks/useMapsightIcon.d.ts.map +1 -0
  235. package/dist/hooks/useMapsightIcon.js +50 -0
  236. package/dist/hooks/useMapsightIcon.js.map +1 -0
  237. package/dist/index.d.ts +2 -2
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.js +12 -2
  240. package/dist/index.js.map +1 -1
  241. package/dist/plugins/browser-defaults.d.ts +2 -0
  242. package/dist/plugins/browser-defaults.d.ts.map +1 -1
  243. package/dist/plugins/browser-defaults.js +5 -0
  244. package/dist/plugins/browser-defaults.js.map +1 -1
  245. package/dist/plugins/common/combined-visible-layers.d.ts +15 -0
  246. package/dist/plugins/common/combined-visible-layers.d.ts.map +1 -0
  247. package/dist/plugins/common/combined-visible-layers.js +63 -0
  248. package/dist/plugins/common/combined-visible-layers.js.map +1 -0
  249. package/dist/plugins/common/runtime-icon-style.d.ts +12 -0
  250. package/dist/plugins/common/runtime-icon-style.d.ts.map +1 -0
  251. package/dist/plugins/common/runtime-icon-style.js +58 -0
  252. package/dist/plugins/common/runtime-icon-style.js.map +1 -0
  253. package/dist/react-modal-app-element.d.ts +6 -0
  254. package/dist/react-modal-app-element.d.ts.map +1 -0
  255. package/dist/react-modal-app-element.js +9 -0
  256. package/dist/react-modal-app-element.js.map +1 -0
  257. package/dist/store/actions.d.ts.map +1 -1
  258. package/dist/store/actions.js +6 -1
  259. package/dist/store/actions.js.map +1 -1
  260. package/dist/store/reducers.d.ts +8 -6
  261. package/dist/store/reducers.d.ts.map +1 -1
  262. package/dist/store/selectors.d.ts +10 -17
  263. package/dist/store/selectors.d.ts.map +1 -1
  264. package/dist/store/selectors.js +9 -1
  265. package/dist/store/selectors.js.map +1 -1
  266. package/dist/types.d.ts +19 -5
  267. package/dist/types.d.ts.map +1 -1
  268. package/package.json +24 -8
  269. package/src/scss/blocks/_features-sorting.scss +0 -13
  270. package/src/scss/blocks/_filter-button.scss +23 -0
  271. package/src/scss/blocks/_filter-toggle-control.scss +15 -0
  272. package/src/scss/default.scss +1 -0
  273. package/src/img/mapsight-ui/check-empty.svg +0 -1
  274. package/src/img/mapsight-ui/check.svg +0 -2
  275. package/src/img/mapsight-ui/close-list.svg +0 -1
  276. package/src/img/mapsight-ui/close.svg +0 -1
  277. package/src/img/mapsight-ui/error.svg +0 -1
  278. package/src/img/mapsight-ui/fullscreen-close.svg +0 -1
  279. package/src/img/mapsight-ui/fullscreen.svg +0 -1
  280. package/src/img/mapsight-ui/geo-active.svg +0 -1
  281. package/src/img/mapsight-ui/geo-error.svg +0 -1
  282. package/src/img/mapsight-ui/geo-inactive.svg +0 -1
  283. package/src/img/mapsight-ui/info.svg +0 -1
  284. package/src/img/mapsight-ui/layers.svg +0 -1
  285. package/src/img/mapsight-ui/loading.svg +0 -1
  286. package/src/img/mapsight-ui/map.svg +0 -1
  287. package/src/img/mapsight-ui/measure-distance.svg +0 -7
  288. package/src/img/mapsight-ui/open-list.svg +0 -1
  289. package/src/img/mapsight-ui/place-marker.svg +0 -4
  290. package/src/img/mapsight-ui/print.svg +0 -4
  291. package/src/img/mapsight-ui/reset-active.svg +0 -1
  292. package/src/img/mapsight-ui/reset.svg +0 -1
  293. package/src/img/mapsight-ui/search.svg +0 -1
  294. package/src/img/mapsight-ui/sharing.svg +0 -7
  295. package/src/img/mapsight-ui/sort-active.svg +0 -1
  296. package/src/img/mapsight-ui/sort.svg +0 -1
  297. package/src/img/mapsight-ui/watermark.svg +0 -1
  298. package/src/img/mapsight-ui/zoom-in.svg +0 -3
  299. package/src/img/mapsight-ui/zoom-out.svg +0 -3
  300. package/src/js/components/app.tsx +0 -232
  301. package/src/js/components/close-overlay-button.tsx +0 -27
  302. package/src/js/components/feature-details-content/feature-details-content-inner.tsx +0 -116
  303. package/src/js/components/feature-details-content/feature-details-content.jsx +0 -185
  304. package/src/js/components/feature-details-content/index.js +0 -16
  305. package/src/js/components/feature-details-content/share-feature-link-modal.jsx +0 -56
  306. package/src/js/components/feature-list/content.jsx +0 -42
  307. package/src/js/components/feature-list/context.tsx +0 -47
  308. package/src/js/components/feature-list/empty-message.jsx +0 -15
  309. package/src/js/components/feature-list/filter.jsx +0 -35
  310. package/src/js/components/feature-list/footer.jsx +0 -5
  311. package/src/js/components/feature-list/grouped-content.jsx +0 -74
  312. package/src/js/components/feature-list/header.jsx +0 -7
  313. package/src/js/components/feature-list/hooks/useAutoloadFeatureSource.ts +0 -25
  314. package/src/js/components/feature-list/hooks/useFeatureListFeatureSource.ts +0 -22
  315. package/src/js/components/feature-list/hooks/useFeatureListItemGroups.ts +0 -127
  316. package/src/js/components/feature-list/hooks/useFeatureListState.ts +0 -98
  317. package/src/js/components/feature-list/hooks/useKeyboardNavigation.js +0 -112
  318. package/src/js/components/feature-list/hooks/useMakeHeaderSticky.js +0 -40
  319. package/src/js/components/feature-list/hooks/usePaginatedFilteredFeatures.ts +0 -129
  320. package/src/js/components/feature-list/hooks/useRestoreDocumentScroll.js +0 -12
  321. package/src/js/components/feature-list/hooks/useSelectFeature.js +0 -88
  322. package/src/js/components/feature-list/index.jsx +0 -278
  323. package/src/js/components/feature-list/pagination.tsx +0 -57
  324. package/src/js/components/feature-list/query-input.jsx +0 -14
  325. package/src/js/components/feature-list-cycling/button.jsx +0 -13
  326. package/src/js/components/feature-list-cycling/dot.jsx +0 -43
  327. package/src/js/components/feature-list-cycling/feature-list-cycling.jsx +0 -153
  328. package/src/js/components/feature-list-cycling/index.js +0 -82
  329. package/src/js/components/feature-list-item/head.jsx +0 -131
  330. package/src/js/components/feature-list-item/hooks/useFeatureListItemScrollAndFocus.js +0 -51
  331. package/src/js/components/feature-list-item/hooks/useFeatureListItemState.ts +0 -75
  332. package/src/js/components/feature-list-item/icon.jsx +0 -35
  333. package/src/js/components/feature-list-item/index.jsx +0 -168
  334. package/src/js/components/feature-list-sorting/feature-list-sorting.tsx +0 -144
  335. package/src/js/components/feature-list-sorting/index.js +0 -22
  336. package/src/js/components/feature-list-sorting/status-indicator.jsx +0 -10
  337. package/src/js/components/feature-select-button.jsx +0 -70
  338. package/src/js/components/feature-selection-info/close-button.jsx +0 -64
  339. package/src/js/components/feature-selection-info/container.jsx +0 -9
  340. package/src/js/components/feature-selection-info/header.tsx +0 -27
  341. package/src/js/components/feature-selection-info/index.tsx +0 -81
  342. package/src/js/components/feature-selection-info/with-sticky-header.tsx +0 -76
  343. package/src/js/components/feature-selection-info/without-sticky-header.jsx +0 -19
  344. package/src/js/components/feature-selection-info/wrapper.jsx +0 -43
  345. package/src/js/components/helping/app-channel.tsx +0 -99
  346. package/src/js/components/helping/app-context.tsx +0 -32
  347. package/src/js/components/helping/visibility-wrapper.jsx +0 -23
  348. package/src/js/components/instance.tsx +0 -48
  349. package/src/js/components/layer-switcher/GroupedLayerSwitcher.js +0 -47
  350. package/src/js/components/layer-switcher/LayerSwitcher.ts +0 -34
  351. package/src/js/components/layer-switcher/LayerSwitcherContainer.tsx +0 -88
  352. package/src/js/components/layer-switcher/LayerSwitcherEntry.ts +0 -152
  353. package/src/js/components/layer-switcher/index.ts +0 -42
  354. package/src/js/components/layout/additional-container/content.jsx +0 -10
  355. package/src/js/components/layout/additional-container/index.jsx +0 -5
  356. package/src/js/components/layout/additional-container/marginal.jsx +0 -10
  357. package/src/js/components/layout/main-container.jsx +0 -5
  358. package/src/js/components/layout/map-row.jsx +0 -5
  359. package/src/js/components/layout/title-bar.tsx +0 -25
  360. package/src/js/components/layout/wrapper.jsx +0 -28
  361. package/src/js/components/link-share.jsx +0 -78
  362. package/src/js/components/main-panel/container.tsx +0 -23
  363. package/src/js/components/main-panel/context.tsx +0 -71
  364. package/src/js/components/main-panel/index.tsx +0 -46
  365. package/src/js/components/main-panel/list-toggle-button.jsx +0 -43
  366. package/src/js/components/map-overlay/area.jsx +0 -17
  367. package/src/js/components/map-overlay/attribution-entries.tsx +0 -33
  368. package/src/js/components/map-overlay/attribution.tsx +0 -25
  369. package/src/js/components/map-overlay/combined-buttons.jsx +0 -5
  370. package/src/js/components/map-overlay/index.jsx +0 -5
  371. package/src/js/components/map-overlay/info-overlay-left.jsx +0 -51
  372. package/src/js/components/map-overlay/info-overlay-modal.tsx +0 -49
  373. package/src/js/components/map-overlay/info-overlay-right.jsx +0 -46
  374. package/src/js/components/map-overlay/layer-switcher-overlay.tsx +0 -100
  375. package/src/js/components/map-overlay/legend.tsx +0 -22
  376. package/src/js/components/map-overlay/logo.jsx +0 -11
  377. package/src/js/components/map-overlay/measure-distance-button.tsx +0 -116
  378. package/src/js/components/map-overlay/measure-distance-overlay.jsx +0 -56
  379. package/src/js/components/map-overlay/mini-legend.jsx +0 -103
  380. package/src/js/components/map-overlay/region-selector.jsx +0 -63
  381. package/src/js/components/map-overlay/search-overlay.jsx +0 -79
  382. package/src/js/components/map-overlay/share-position-link-button.tsx +0 -144
  383. package/src/js/components/map-overlay/tool-overlay.tsx +0 -28
  384. package/src/js/components/map-overlay/user-geo-location-button.jsx +0 -89
  385. package/src/js/components/map-overlay/zoom-button.jsx +0 -98
  386. package/src/js/components/map-overlay/zoom-buttons.jsx +0 -26
  387. package/src/js/components/map-synced-interlay/index.ts +0 -15
  388. package/src/js/components/map-synced-interlay/map-synced-interlay.jsx +0 -22
  389. package/src/js/components/map-synced-interlay/tooltip-content.tsx +0 -22
  390. package/src/js/components/map-synced-interlay/tooltip.tsx +0 -199
  391. package/src/js/components/map-wrapper.tsx +0 -65
  392. package/src/js/components/map.tsx +0 -55
  393. package/src/js/components/modal.tsx +0 -40
  394. package/src/js/components/query-input-with-label.tsx +0 -71
  395. package/src/js/components/query-input.tsx +0 -81
  396. package/src/js/components/search/index.jsx +0 -83
  397. package/src/js/components/search/query-input.jsx +0 -20
  398. package/src/js/components/search/result-entry.jsx +0 -63
  399. package/src/js/components/search/result.jsx +0 -71
  400. package/src/js/components/switcher/GroupedSwitcher.jsx +0 -42
  401. package/src/js/components/switcher/Switcher.jsx +0 -54
  402. package/src/js/components/switcher/SwitcherButton.jsx +0 -23
  403. package/src/js/components/switcher/SwitcherEntry.tsx +0 -164
  404. package/src/js/components/switcher/SwitcherHeader.jsx +0 -58
  405. package/src/js/components/switcher/SwitcherStatusIcon.jsx +0 -36
  406. package/src/js/components/tag-switcher/TagSwitcher.tsx +0 -56
  407. package/src/js/components/tag-switcher/createTagSwitcherEntry.ts +0 -39
  408. package/src/js/components/tag-switcher/createTagSwitcherHeader.ts +0 -47
  409. package/src/js/components/tag-switcher/index.ts +0 -17
  410. package/src/js/components/time-filter.jsx +0 -187
  411. package/src/js/components/view-toggle-button/desktop-button.jsx +0 -13
  412. package/src/js/components/view-toggle-button/index.ts +0 -42
  413. package/src/js/components/view-toggle-button/mobile-button.tsx +0 -13
  414. package/src/js/components/view-toggle-button/view-toggle-button.jsx +0 -74
  415. package/src/js/components/view-toggle-button/viewport-button.tsx +0 -13
  416. package/src/js/config/constants/app.ts +0 -16
  417. package/src/js/config/constants/controllers.ts +0 -11
  418. package/src/js/config/feature/selections.ts +0 -13
  419. package/src/js/config/feature/sources.ts +0 -77
  420. package/src/js/config/index.ts +0 -133
  421. package/src/js/config/map/featureInteractions.ts +0 -53
  422. package/src/js/config/map/interactions.ts +0 -15
  423. package/src/js/config/map/layers.ts +0 -190
  424. package/src/js/controllers/defaults.ts +0 -36
  425. package/src/js/embed/browser.ts +0 -89
  426. package/src/js/embed/node.ts +0 -57
  427. package/src/js/filters/tag-filter.ts +0 -135
  428. package/src/js/filters/time-filter.ts +0 -53
  429. package/src/js/helpers/components.ts +0 -66
  430. package/src/js/helpers/create-action-watcher.ts +0 -35
  431. package/src/js/helpers/events.ts +0 -11
  432. package/src/js/helpers/get-feature-property.ts +0 -14
  433. package/src/js/helpers/i18n/de.ts +0 -145
  434. package/src/js/helpers/i18n/en.ts +0 -140
  435. package/src/js/helpers/i18n/index.ts +0 -41
  436. package/src/js/helpers/makeReplaceableComponent.ts +0 -0
  437. package/src/js/helpers/mod-classes.ts +0 -47
  438. package/src/js/helpers/react.ts +0 -14
  439. package/src/js/helpers/scroll-to-element-top.ts +0 -16
  440. package/src/js/helpers/sort-features-by-distance.ts +0 -102
  441. package/src/js/helpers/sticky.js +0 -143
  442. package/src/js/hooks/useCallbackRef.ts +0 -14
  443. package/src/js/hooks/useControllableState.ts +0 -50
  444. package/src/js/hooks/useDebounce.ts +0 -32
  445. package/src/js/hooks/useHandleEscapeKeyDown.ts +0 -27
  446. package/src/js/hooks/useMapsightPanel.ts +0 -40
  447. package/src/js/hooks/useMountable.ts +0 -47
  448. package/src/js/hooks/usePrevious.ts +0 -15
  449. package/src/js/hooks/useStickyHeader.ts +0 -50
  450. package/src/js/hooks/useUpdateMapSizeCallback.ts +0 -32
  451. package/src/js/hooks/useUpdateMapSizeOnRender.ts +0 -16
  452. package/src/js/hooks/useUpdateMapSizeOnTransitionEnd.ts +0 -40
  453. package/src/js/hooks/useUpdateMapSizeOnViewChange.ts +0 -36
  454. package/src/js/index.ts +0 -320
  455. package/src/js/plugins/browser/app-title.ts +0 -36
  456. package/src/js/plugins/browser/debug.ts +0 -37
  457. package/src/js/plugins/browser/feature-deep-link.ts +0 -223
  458. package/src/js/plugins/browser/local-storage.ts +0 -79
  459. package/src/js/plugins/browser/native-fullscreen.ts +0 -81
  460. package/src/js/plugins/browser/no-scroll.ts +0 -91
  461. package/src/js/plugins/browser/partial-content-changed-event.ts +0 -23
  462. package/src/js/plugins/browser/piwik-track-feature-selection-event.ts +0 -75
  463. package/src/js/plugins/browser/piwik-track-fullscreen-toggle-event.ts +0 -46
  464. package/src/js/plugins/browser/search.ts +0 -42
  465. package/src/js/plugins/browser/share-position-link.ts +0 -463
  466. package/src/js/plugins/browser/toggle-mobile-views.ts +0 -60
  467. package/src/js/plugins/browser/user-geolocation.ts +0 -142
  468. package/src/js/plugins/browser/views.ts +0 -141
  469. package/src/js/plugins/browser-defaults.ts +0 -101
  470. package/src/js/plugins/common/feature-selection-details-url.ts +0 -135
  471. package/src/js/plugins/common/lang.ts +0 -17
  472. package/src/js/plugins/common/measure-distance.ts +0 -223
  473. package/src/js/plugins/common/ol-proxy.ts +0 -68
  474. package/src/js/plugins/common/render-await-feature-details-loaded.ts +0 -154
  475. package/src/js/plugins/common/render-await-list-feature-sources-loaded.ts +0 -109
  476. package/src/js/plugins/server/feature-deep-link.ts +0 -67
  477. package/src/js/plugins/server-defaults.ts +0 -36
  478. package/src/js/renderer/browser-dom.tsx +0 -27
  479. package/src/js/renderer/server-string.tsx +0 -17
  480. package/src/js/server-handler.js +0 -39
  481. package/src/js/store/actions.ts +0 -662
  482. package/src/js/store/reducers.ts +0 -491
  483. package/src/js/store/selectors.ts +0 -483
  484. package/src/js/types.ts +0 -405
@@ -1,164 +0,0 @@
1
- import type {ElementType} from "react";
2
- import {Fragment, memo} from "react";
3
-
4
- import {
5
- type FeatureSourceStatus,
6
- STATUS_ERROR,
7
- STATUS_LOADING,
8
- STATUS_OK,
9
- } from "@mapsight/core/lib/feature-sources/selectors";
10
-
11
- import {translate} from "../../helpers/i18n";
12
- import SwitcherButton from "./SwitcherButton";
13
- import SwitcherStatusIcon from "./SwitcherStatusIcon";
14
-
15
- type SwitcherEntryStatus = "active" | "inactive" | "error" | "loading";
16
-
17
- export const STATUS_ACTIVE = "active";
18
- export const STATUS_INACTIVE = "inactive";
19
-
20
- const mapStatusClassName = (status: SwitcherEntryStatus) =>
21
- ({
22
- [STATUS_ERROR]: "error",
23
- [STATUS_LOADING]: "loading",
24
- [STATUS_ACTIVE]: "active",
25
- [STATUS_INACTIVE]: "inactive",
26
- })[status];
27
-
28
- const mapStatusLabel = (status: string) =>
29
- translate("ui.switcher.entry.label" + status);
30
-
31
- const determineDisplayStatus = (
32
- status?: FeatureSourceStatus,
33
- active: boolean = false,
34
- ): SwitcherEntryStatus => {
35
- if (!status || status === STATUS_OK) {
36
- return active ? STATUS_ACTIVE : STATUS_INACTIVE;
37
- }
38
-
39
- return status;
40
- };
41
-
42
- export type SwitcherEntryProps = {
43
- as?: ElementType;
44
- className?: string;
45
- baseClassName?: string;
46
- title: string;
47
- count?: number | null;
48
- toggleActive?: () => void;
49
- toggleActiveCheckbox?: () => void;
50
- toggleActiveText?: () => void;
51
- active?: boolean;
52
- activeCheckbox?: boolean;
53
- activeText?: boolean;
54
- status?: FeatureSourceStatus;
55
- locked?: boolean;
56
- };
57
-
58
- function SwitcherEntry({
59
- as: T = "li",
60
- className = "",
61
- baseClassName = "ms3-layer-switcher__entry", // TODO: Use generic class name
62
- title,
63
- count = null,
64
- toggleActive,
65
- toggleActiveCheckbox: _toggleActiveCheckbox,
66
- toggleActiveText: _toggleActiveText,
67
- active,
68
- activeCheckbox: _activeCheckbox,
69
- activeText: _activeText,
70
- status,
71
- locked = false,
72
- ...attributes
73
- }: SwitcherEntryProps) {
74
- // `toggleActive` manages the "split" mode. If `toggleActive` isn't set we switch to the
75
- // "split" mode, it's enabling split active statuses and toggle handlers for the checkbox and
76
- // text.
77
- const isSplit = !toggleActive;
78
- const activeCheckbox = isSplit ? (_activeCheckbox ?? false) : active;
79
- const activeText = isSplit ? (_activeText ?? false) : active;
80
- const toggleActiveCheckbox = isSplit ? _toggleActiveCheckbox : undefined;
81
- const toggleActiveText = isSplit ? _toggleActiveText : undefined;
82
-
83
- const checkboxDisplayStatus = determineDisplayStatus(
84
- status,
85
- activeCheckbox ?? false,
86
- );
87
- const checkboxStatusClass = mapStatusClassName(checkboxDisplayStatus);
88
- const checkboxStatusLabel = mapStatusLabel(checkboxDisplayStatus);
89
-
90
- const checkbox = (
91
- <SwitcherStatusIcon
92
- status={checkboxStatusClass}
93
- onClick={!toggleActive && toggleActiveCheckbox}
94
- active={activeCheckbox}
95
- >
96
- {checkboxStatusLabel}
97
- </SwitcherStatusIcon>
98
- );
99
-
100
- const text = (
101
- <Fragment>
102
- <span className={`${baseClassName}__label`}>{title}</span>
103
- {!!count && (
104
- <span
105
- className={`${baseClassName}__count`}
106
- data-ms3-count={count}
107
- >
108
- {count}
109
- </span>
110
- )}
111
- </Fragment>
112
- );
113
-
114
- return (
115
- <T
116
- // TODO: remove checkboxStatusClass
117
- className={`${className} [ ${baseClassName} ${baseClassName}--${checkboxStatusClass} ${baseClassName}--${
118
- isSplit ? "split" : "joint"
119
- } ${locked ? `${baseClassName}--locked` : ""} ]`}
120
- {...attributes}
121
- >
122
- {(() => {
123
- if (toggleActive) {
124
- return (
125
- <SwitcherButton
126
- status={checkboxStatusClass}
127
- toggleActive={toggleActive}
128
- active={active}
129
- >
130
- {checkbox}
131
- {text}
132
- </SwitcherButton>
133
- );
134
- } else {
135
- const textDisplayStatus = determineDisplayStatus(
136
- status,
137
- activeText ?? false,
138
- );
139
- const textStatusClass =
140
- mapStatusClassName(textDisplayStatus);
141
- const textStatusLabel = mapStatusLabel(textDisplayStatus);
142
-
143
- return (
144
- <Fragment>
145
- {checkbox}
146
- <button
147
- type="button"
148
- role="checkbox"
149
- onClick={toggleActiveText}
150
- className={`${baseClassName}__text-button ${baseClassName}__text-button--${textStatusClass}`}
151
- aria-checked={activeText ? "true" : "false"}
152
- aria-label={textStatusLabel}
153
- >
154
- {text}
155
- </button>
156
- </Fragment>
157
- );
158
- }
159
- })()}
160
- </T>
161
- );
162
- }
163
-
164
- export default memo(SwitcherEntry);
@@ -1,58 +0,0 @@
1
- import {Fragment, memo} from "react";
2
-
3
- import SwitcherButton from "./SwitcherButton";
4
-
5
- function SwitcherHeader(props) {
6
- const {
7
- as: T = "h3",
8
- baseClass = "ms3-switcher-header",
9
- label,
10
- toggleActive = null,
11
- active = true,
12
- count = null,
13
- ...attributes
14
- } = props;
15
-
16
- const activeClassModified = active ? "active" : "inactive";
17
- if (T !== Fragment) {
18
- attributes.className = `[ ${baseClass} ${baseClass}--${activeClassModified} ] ${
19
- attributes.className || ""
20
- }`;
21
- }
22
-
23
- if (toggleActive) {
24
- return (
25
- <T {...attributes}>
26
- <SwitcherButton
27
- status={activeClassModified}
28
- toggleActive={toggleActive}
29
- active={active}
30
- >
31
- <span className={`${baseClass}__label`}>{label}</span>
32
-
33
- {!!count && (
34
- <span
35
- className={`${baseClass}__count`}
36
- data-ms3-count={count}
37
- >
38
- {count}
39
- </span>
40
- )}
41
- </SwitcherButton>
42
- </T>
43
- );
44
- }
45
-
46
- return (
47
- <T {...attributes}>
48
- <span className={`${baseClass}__label`}>{label}</span>
49
- {!!count && (
50
- <span className={`${baseClass}__count`} data-ms3-count={count}>
51
- {count}
52
- </span>
53
- )}
54
- </T>
55
- );
56
- }
57
-
58
- export default memo(SwitcherHeader);
@@ -1,36 +0,0 @@
1
- function SwitcherStatusIcon(props) {
2
- const {
3
- baseClassName = "ms3-layer-switcher__status", // TODO: Use generic class name
4
- status,
5
- children,
6
- onClick,
7
- active,
8
- ...rest
9
- } = props;
10
-
11
- if (onClick) {
12
- return (
13
- <button
14
- type="button"
15
- role="checkbox"
16
- className={`${baseClassName} ${baseClassName}--${status}`}
17
- // FIXME: are we putting a ReactNode in a aria-label (which takes strings) O.0
18
- aria-label={children}
19
- aria-checked={active ? "true" : "false"}
20
- onClick={onClick}
21
- {...rest}
22
- />
23
- );
24
- } else {
25
- return (
26
- <span
27
- className={`${baseClassName} ${baseClassName}--${status}`}
28
- // FIXME: are we putting a ReactNode in a aria-label (which takes strings) O.0
29
- aria-label={children}
30
- {...rest}
31
- />
32
- );
33
- }
34
- }
35
-
36
- export default SwitcherStatusIcon;
@@ -1,56 +0,0 @@
1
- import {memo, useMemo} from "react";
2
-
3
- import {getDocumentLanguage} from "../../helpers/i18n";
4
- import GroupedSwitcher from "../switcher/GroupedSwitcher";
5
- import createTagSwitcherEntry from "./createTagSwitcherEntry";
6
- import createTagSwitcherHeader from "./createTagSwitcherHeader";
7
-
8
- function TagSwitcher({
9
- groupedTagData,
10
- featureSourceId,
11
- toggleableGroups = false,
12
- sortTags = true,
13
- }) {
14
- function renderEntry(id, group) {
15
- const E = createTagSwitcherEntry(featureSourceId, group, id);
16
- return <E key={id} count={groupedTagData[group].tags[id]} />;
17
- }
18
-
19
- function renderHeader(group, props) {
20
- const H = createTagSwitcherHeader(featureSourceId, group);
21
- return (
22
- <H
23
- {...props}
24
- count={groupedTagData[group].count}
25
- toggleable={toggleableGroups}
26
- />
27
- );
28
- }
29
-
30
- const locale = getDocumentLanguage();
31
-
32
- const groupedIds = useMemo(() => {
33
- // Object.fromEntries needs babel runtime core3
34
- const groupedIdsTmp = {};
35
- Object.keys(groupedTagData).forEach((group) => {
36
- groupedIdsTmp[group] = Object.keys(groupedTagData[group].tags);
37
- if (sortTags) {
38
- groupedIdsTmp[group].sort((a, b) =>
39
- a.localeCompare(b, locale, {numeric: true}),
40
- );
41
- }
42
- });
43
- return groupedIdsTmp;
44
- }, [groupedTagData, sortTags, locale]);
45
-
46
- return (
47
- <GroupedSwitcher
48
- className="ms3-tag-switcher"
49
- groupedIds={groupedIds}
50
- renderEntry={renderEntry}
51
- renderHeader={renderHeader}
52
- />
53
- );
54
- }
55
-
56
- export default memo(TagSwitcher);
@@ -1,39 +0,0 @@
1
- import {connect} from "react-redux";
2
-
3
- import {setTagVisible} from "../../store/actions";
4
- import type {RootStateSlice} from "../../store/selectors";
5
- import {createTagVisibleSelector} from "../../store/selectors";
6
- import SwitcherEntry from "../switcher/SwitcherEntry";
7
-
8
- export default function createTagSwitcherEntry(
9
- featureSourceId: string,
10
- tagGroup: string,
11
- tagName: string,
12
- ) {
13
- const visibilitySelector = createTagVisibleSelector(
14
- featureSourceId,
15
- tagGroup,
16
- tagName,
17
- );
18
-
19
- return connect(
20
- (state: RootStateSlice) => ({
21
- visibility: visibilitySelector(state),
22
- }),
23
- null,
24
- ({visibility}, {dispatch}, {...ownProps}) => ({
25
- title: tagName,
26
- active: visibility,
27
- toggleActive: () =>
28
- dispatch(
29
- setTagVisible(
30
- featureSourceId,
31
- tagGroup,
32
- tagName,
33
- !visibility,
34
- ),
35
- ),
36
- ...ownProps,
37
- }),
38
- )(SwitcherEntry);
39
- }
@@ -1,47 +0,0 @@
1
- import {connect} from "react-redux";
2
-
3
- import {setTagGroupVisible} from "../../store/actions";
4
- import {
5
- type RootStateSlice,
6
- createTagGroupVisibleSelector,
7
- } from "../../store/selectors";
8
- import SwitcherHeader from "../switcher/SwitcherHeader";
9
-
10
- type Props = {
11
- toggleable?: boolean;
12
- };
13
-
14
- export default function createTagSwitcherHeader(
15
- featureSourceId: string,
16
- tagGroup: string,
17
- ) {
18
- const visibilitySelector = createTagGroupVisibleSelector(
19
- featureSourceId,
20
- tagGroup,
21
- );
22
- return connect(
23
- (state: RootStateSlice) => ({
24
- visibility: visibilitySelector(state),
25
- }),
26
- null,
27
- (
28
- {visibility},
29
- {dispatch},
30
- {toggleable = false, ...ownProps}: Props,
31
- ) => ({
32
- label: tagGroup,
33
- active: !toggleable || visibility,
34
- toggleActive: toggleable
35
- ? () =>
36
- dispatch(
37
- setTagGroupVisible(
38
- featureSourceId,
39
- tagGroup,
40
- !visibility,
41
- ),
42
- )
43
- : undefined,
44
- ...ownProps,
45
- }),
46
- )(SwitcherHeader);
47
- }
@@ -1,17 +0,0 @@
1
- import {connect} from "react-redux";
2
-
3
- import type {RootStateSlice} from "../../store/selectors";
4
- import {
5
- tagSwitcherFeatureSourceIdSelector,
6
- tagSwitcherSortTags,
7
- tagSwitcherTagsSelector,
8
- tagSwitcherToggleableGroups,
9
- } from "../../store/selectors";
10
- import TagSwitcher from "./TagSwitcher";
11
-
12
- export default connect((state: RootStateSlice) => ({
13
- featureSourceId: tagSwitcherFeatureSourceIdSelector(state),
14
- groupedTagData: tagSwitcherTagsSelector(state),
15
- toggleableGroups: tagSwitcherToggleableGroups(state),
16
- sortTags: tagSwitcherSortTags(state),
17
- }))(TagSwitcher);
@@ -1,187 +0,0 @@
1
- import {mergeFilterOptions} from "@mapsight/core/lib/filter/actions";
2
-
3
- // TODO: Replace with generic tracking solution that does not rely on simplejs to be used globally
4
- import {trackEvent} from "@mapsight/lib-js/misc/piwik";
5
-
6
- // TODO: Make optional to reduce bundle size
7
- import flatpickr from "flatpickr";
8
-
9
- // TODO: Make optional to reduce bundle size
10
- // TODO: Support other languages
11
- import {German as flatpickrGermanLocale} from "flatpickr/dist/l10n/de";
12
- import { memo, useCallback, useEffect, useRef} from "react";
13
- import {useDispatch, useSelector} from "react-redux";
14
- import {TIME_FILTER} from "../config/constants/controllers";
15
-
16
- import {translate} from "../helpers/i18n";
17
-
18
- const ID_FROM = "ms3-timefilter__from";
19
- const ID_TO = "ms3-timefilter__to";
20
-
21
- const DATEPICKER_OPTIONS = {
22
- // TODO: Support other languages
23
- locale: flatpickrGermanLocale,
24
- dateFormat: "d.m.Y", // TODO: i18n
25
- };
26
-
27
- const leftPad = (str, padding) => (padding + str).substring(str.length);
28
-
29
- const parseDate = (str) => {
30
- const parts = str.replace(/\s/, "").match(/(\d+)/g);
31
- try {
32
- const date = new Date(parts[2], parts[1] - 1, parts[0]);
33
-
34
- return !isNaN(date.getTime()) ? date : null;
35
- } catch (_e) {
36
- return null;
37
- }
38
- };
39
-
40
- // FIXME i18n
41
- const formatDate = (date) => {
42
- if (!date) {
43
- return "";
44
- }
45
-
46
- const day = date.getDate();
47
- const monthIndex = date.getMonth();
48
- const year = date.getFullYear();
49
-
50
- return day + "." + leftPad(monthIndex + 1, "00") + "." + year;
51
- };
52
-
53
- function fromDateSelector(state) {
54
- return state[TIME_FILTER] && state[TIME_FILTER].fromDate;
55
- }
56
-
57
- function toDateSelector(state) {
58
- return state[TIME_FILTER] && state[TIME_FILTER].toDate;
59
- }
60
-
61
- function TimeFilter() {
62
- // FIXME: stop using hardcoded ids
63
- // TODO: use react input fields
64
-
65
- const dispatch = useDispatch();
66
-
67
- const fromDate = useSelector(fromDateSelector);
68
- const toDate = useSelector(toDateSelector);
69
-
70
- const fromInputRef = useRef();
71
- const toInputRef = useRef();
72
-
73
- useEffect(() => {
74
- // we need to use let because to and from reference each other
75
-
76
- let to;
77
-
78
- const from = flatpickr(fromInputRef.current, {
79
- ...DATEPICKER_OPTIONS,
80
- onChange: function onChange(selectedDates) {
81
- if (selectedDates.length) {
82
- to.set("minDate", selectedDates[0]);
83
- to.redraw();
84
- }
85
- },
86
- });
87
-
88
- to = flatpickr(toInputRef.current, {
89
- ...DATEPICKER_OPTIONS,
90
- onChange: function onChange(selectedDates) {
91
- if (selectedDates.length) {
92
- from.set("maxDate", selectedDates[0]);
93
- from.redraw();
94
- }
95
- },
96
- });
97
- }, []);
98
-
99
- const onSubmit = useCallback(
100
- /**
101
- * @param {MouseEvent<HTMLButtonElement>} e event
102
- */
103
- (e) => {
104
- e.preventDefault();
105
-
106
- // get values
107
- const myFromDate = parseDate(fromInputRef.current.value);
108
- const myToDate = parseDate(toInputRef.current.value);
109
-
110
- dispatch(
111
- mergeFilterOptions(TIME_FILTER, {
112
- fromDate: myFromDate && myFromDate.toISOString(),
113
- toDate: myToDate && myToDate.toISOString(),
114
- }),
115
- );
116
-
117
- trackEvent("Mapsight", "Filtered");
118
- },
119
- [dispatch],
120
- );
121
-
122
- const onReset = useCallback(
123
- /**
124
- * @param {MouseEvent<HTMLButtonElement>} _e event
125
- */
126
- (_e) => {
127
- [fromInputRef.current, toInputRef.current].forEach((element) => {
128
- element._flatpickr.clear();
129
- element._flatpickr.set("minDate", undefined);
130
- element._flatpickr.set("maxDate", undefined);
131
- });
132
-
133
- dispatch(
134
- mergeFilterOptions(TIME_FILTER, {
135
- fromDate: null,
136
- toDate: null,
137
- }),
138
- );
139
-
140
- trackEvent("Mapsight", "FilterCleared");
141
- },
142
- [dispatch],
143
- );
144
-
145
- return (
146
- <form onSubmit={onSubmit} className="ms3-timefilter">
147
- <h2>{translate("ui.time-filter.span")}</h2>
148
- <p>
149
- <label htmlFor={ID_FROM}>
150
- <span className="ms3-visuallyhidden">
151
- {translate("from")}
152
- </span>
153
- <input
154
- id={ID_FROM}
155
- name={ID_FROM}
156
- defaultValue={formatDate(fromDate)}
157
- ref={fromInputRef}
158
- />
159
- </label>
160
-
161
- <label htmlFor={ID_TO}>
162
- -
163
- <input
164
- id={ID_TO}
165
- name={ID_TO}
166
- defaultValue={formatDate(toDate)}
167
- ref={toInputRef}
168
- />
169
- </label>
170
-
171
- <button
172
- type="button"
173
- className="ms3-filter-button ms3-filter-button--secondary"
174
- onClick={onReset}
175
- >
176
- {translate("reset")}
177
- </button>
178
-
179
- <button type="submit" className="ms3-filter-button">
180
- {translate("show")}
181
- </button>
182
- </p>
183
- </form>
184
- );
185
- }
186
-
187
- export default memo(TimeFilter);
@@ -1,13 +0,0 @@
1
- import ViewToggleButton from "./index";
2
-
3
- function DesktopViewToggleButton() {
4
- return (
5
- <ViewToggleButton
6
- baseClass="ms3-map-overlay__button"
7
- additionalClasses="ms3-map-overlay__button--with-icon ms3-map-overlay__button--desktop-view-toggle"
8
- viewModifierClassPrefix="ms3-map-overlay__button--desktop-view-toggle--"
9
- />
10
- );
11
- }
12
-
13
- export default DesktopViewToggleButton;
@@ -1,42 +0,0 @@
1
- import {connect} from "react-redux";
2
-
3
- import {deselectAll} from "@mapsight/core/lib/feature-selections/actions";
4
-
5
- import type {View} from "../../config/constants/app";
6
- import {FEATURE_SELECTIONS} from "../../config/constants/controllers";
7
- import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
8
- import {setView} from "../../store/actions";
9
- import type {RootStateSlice} from "../../store/selectors";
10
- import {
11
- isMapOutOfViewportSelector,
12
- isViewMobile,
13
- viewSelector,
14
- viewToggleOptionsSelector,
15
- } from "../../store/selectors";
16
- import ViewToggleButton from "./view-toggle-button";
17
-
18
- export default connect(
19
- (state: RootStateSlice) => ({
20
- view: viewSelector(state),
21
- isMapOutOfViewport: isMapOutOfViewportSelector(state),
22
- options: viewToggleOptionsSelector(state),
23
- }),
24
- null,
25
- ({options, ...stateProps}, {dispatch}, ownProps) => ({
26
- ...stateProps,
27
- dispatch: dispatch,
28
- changeView: (currentView: View, nextView: View) => {
29
- dispatch(setView(nextView));
30
-
31
- if (
32
- options?.deselectFeaturesOnToggle &&
33
- isViewMobile(currentView)
34
- ) {
35
- dispatch(
36
- deselectAll(FEATURE_SELECTIONS, FEATURE_SELECTION_SELECT),
37
- );
38
- }
39
- },
40
- ...ownProps,
41
- }),
42
- )(ViewToggleButton);
@@ -1,13 +0,0 @@
1
- import ViewToggleButton from "./index";
2
-
3
- function MobileViewToggleButton() {
4
- return (
5
- <ViewToggleButton
6
- baseClass="ms3-map-overlay__button"
7
- additionalClasses="ms3-map-overlay__button--with-icon ms3-map-overlay__button--mobile-view-toggle"
8
- viewModifierClassPrefix="ms3-map-overlay__button--mobile-view-toggle--"
9
- />
10
- );
11
- }
12
-
13
- export default MobileViewToggleButton;