@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,144 +0,0 @@
1
- import {Fragment, useCallback, useEffect, useMemo} from "react";
2
- import {useDispatch, useSelector} from "react-redux";
3
-
4
- import {createSelector} from "@reduxjs/toolkit";
5
-
6
- import {removeAllFeatures} from "@mapsight/core/lib/feature-sources/actions";
7
- import {createFilteredFeatureSourceSelector} from "@mapsight/core/lib/feature-sources/selectors";
8
-
9
- import {FEATURE_SOURCES, MAP} from "../../config/constants/controllers";
10
- import {translate} from "../../helpers/i18n";
11
- import useControllableState from "../../hooks/useControllableState";
12
- import {
13
- createActivateAction,
14
- createDeactivateAction,
15
- } from "../../plugins/browser/share-position-link";
16
- import LinkShare from "../link-share";
17
- import ToolOverlay from "./tool-overlay";
18
-
19
- const applyPrecisionToCoordinates = (num) =>
20
- Number.parseFloat(num).toPrecision(6);
21
-
22
- /*
23
- TODO: aria? abort on escape key press?
24
- */
25
- type SharePositionLinkButtonProps = {
26
- pluginName?: string;
27
- opened?: boolean;
28
- onOpenedChange?: (opened: boolean) => void;
29
- };
30
-
31
- const SharePositionLinkButton = ({
32
- pluginName = "sharePositionLink",
33
- opened,
34
- onOpenedChange,
35
- }: SharePositionLinkButtonProps) => {
36
- const [isOpened = false, setIsOpened] = useControllableState({
37
- prop: opened,
38
- defaultProp: false,
39
- onChange: onOpenedChange,
40
- });
41
-
42
- const activate = useMemo(
43
- () => createActivateAction(MAP, pluginName),
44
- [pluginName],
45
- );
46
- const deactivate = useMemo(
47
- () => createDeactivateAction(MAP, pluginName),
48
- [pluginName],
49
- );
50
- const resetAction = useMemo(
51
- () => removeAllFeatures(FEATURE_SOURCES, `${pluginName}_featureSource`),
52
- [pluginName],
53
- );
54
- const featureSelector = useMemo(
55
- () =>
56
- createSelector(
57
- createFilteredFeatureSourceSelector(
58
- FEATURE_SOURCES,
59
- `${pluginName}_featureSource`,
60
- MAP,
61
- ),
62
- (featureSourceState) => featureSourceState?.data?.features?.[0],
63
- ),
64
- [pluginName],
65
- );
66
-
67
- const dispatch = useDispatch();
68
- const feature = useSelector(featureSelector);
69
-
70
- const coords =
71
- feature?.geometry?.type === "Point"
72
- ? feature.geometry.coordinates
73
- : undefined;
74
- const shareUrl = useMemo(() => {
75
- if (coords) {
76
- const url = new URL(location.href);
77
- url.protocol = "https:";
78
- url.hash = `#lm=${applyPrecisionToCoordinates(
79
- coords[1],
80
- )}/${applyPrecisionToCoordinates(coords[0])}`;
81
- return url.href;
82
- }
83
-
84
- return null;
85
- }, [coords]);
86
-
87
- const toggle = useCallback(() => {
88
- setIsOpened(!isOpened);
89
- }, [isOpened, setIsOpened]);
90
-
91
- const close = useCallback(() => {
92
- setIsOpened(false);
93
- }, [setIsOpened]);
94
-
95
- useEffect(() => {
96
- dispatch(isOpened ? activate : deactivate);
97
- }, [dispatch, deactivate, isOpened, activate]);
98
-
99
- const closeAndReset = useCallback(
100
- function () {
101
- dispatch(resetAction);
102
- close();
103
- },
104
- [close, dispatch, resetAction],
105
- );
106
-
107
- return (
108
- <Fragment>
109
- <button
110
- className="ms3-map-overlay__button ms3-map-overlay__button--with-icon ms3-map-overlay__button--share-link"
111
- type="button"
112
- onClick={toggle}
113
- >
114
- <span className="ms3-map-overlay__button__label">
115
- {translate("ui.share-position-link.title")}
116
- </span>
117
- </button>
118
-
119
- {isOpened && (
120
- <ToolOverlay
121
- label={translate("ui.share-position-link.title")}
122
- onClose={closeAndReset}
123
- text={translate("ui.share-position-link.instructions")}
124
- >
125
- {feature && (
126
- <LinkShare
127
- url={shareUrl}
128
- title={translate(
129
- "ui.share-position-link.shareTitle",
130
- )}
131
- buttonLabel={translate(
132
- "ui.share-position-link.shareButtonLabel",
133
- )}
134
- onFinished={close}
135
- onError={undefined}
136
- />
137
- )}
138
- </ToolOverlay>
139
- )}
140
- </Fragment>
141
- );
142
- };
143
-
144
- export default SharePositionLinkButton;
@@ -1,28 +0,0 @@
1
- import type {PropsWithChildren, ReactNode} from "react";
2
-
3
- import CloseOverlayButton from "../close-overlay-button";
4
-
5
- type Props = {
6
- text: ReactNode;
7
- label: ReactNode;
8
- onClose: () => void;
9
- };
10
-
11
- const ToolOverlay = ({
12
- text,
13
- children,
14
- label,
15
- onClose,
16
- }: PropsWithChildren<Props>) => {
17
- // TODO: Aria role, focus trap, close on escape etc.?
18
- return (
19
- <div className="ms3-tool-overlay">
20
- <CloseOverlayButton onClose={onClose} />
21
- <h3 className="ms3-tool-overlay__header">{label}</h3>
22
- {text && <p className="ms3-tool-overlay__text">{text}</p>}
23
- {children}
24
- </div>
25
- );
26
- };
27
-
28
- export default ToolOverlay;
@@ -1,89 +0,0 @@
1
- import {hasGeolocationSupport} from "@mapsight/core/lib/helpers";
2
- import {animate} from "@mapsight/core/lib/map/actions";
3
- import {getGeolocation} from "@mapsight/core/lib/user-geolocation/actions";
4
- import {createUserGeolocationSelector} from "@mapsight/core/lib/user-geolocation/selectors";
5
-
6
- import proj4 from "proj4";
7
- import {memo, useCallback, useEffect, useState} from "react";
8
- import {useDispatch, useSelector} from "react-redux";
9
- import * as c from "../../config/constants/controllers";
10
-
11
- import {translate} from "../../helpers/i18n";
12
- import modClasses from "../../helpers/mod-classes";
13
-
14
- const geoLocSelector = createUserGeolocationSelector(c.USER_GEOLOCATION);
15
-
16
- const UserGeoLocationButton = memo(
17
- /**
18
- * @param {{
19
- * additionalClasses?: string
20
- * }} props props
21
- * @returns {import('react').ReactElement} element
22
- */
23
- function UserGeoLocationButton({additionalClasses = ""}) {
24
- const dispatch = useDispatch();
25
- const {longitude, latitude, error, isEnabled, isRequesting} =
26
- useSelector(geoLocSelector);
27
- const [moveToGeoLoc, setMoveToGeoLoc] = useState(false);
28
- const [showButton, setShowButton] = useState(true);
29
-
30
- useEffect(() => {
31
- setShowButton(hasGeolocationSupport);
32
- }, []);
33
-
34
- useEffect(() => {
35
- if (moveToGeoLoc && longitude && latitude) {
36
- // move only once per click
37
- setMoveToGeoLoc(false);
38
- dispatch(
39
- animate(c.MAP, {
40
- center: proj4("WGS84", "EPSG:3857", [
41
- longitude,
42
- latitude,
43
- ]),
44
- duration: 500,
45
- }),
46
- );
47
- }
48
- }, [dispatch, longitude, latitude, moveToGeoLoc]);
49
-
50
- const onClick = useCallback(
51
- /** @param {React.MouseEvent} e event */
52
- function onClick(e) {
53
- e.stopPropagation();
54
- setMoveToGeoLoc(true);
55
- dispatch(getGeolocation());
56
- },
57
- [dispatch],
58
- );
59
-
60
- if (!showButton) {
61
- return null;
62
- }
63
-
64
- return (
65
- <button
66
- type="button"
67
- className={
68
- modClasses("ms3-map-overlay__button", {
69
- "with-icon": true,
70
- "geo-location": true,
71
- "geo-location--active": isEnabled,
72
- "geo-location--inactive": !isEnabled,
73
- "geo-location--requesting": isRequesting,
74
- "geo-location--error": !!error,
75
- }) +
76
- " " +
77
- additionalClasses
78
- }
79
- onClick={onClick}
80
- aria-label={translate("ui.user-geo-location-button.ariaLabel")}
81
- >
82
- <span className="ms3-map-overlay__button__label">
83
- {translate("ui.user-geo-location-button.label")}
84
- </span>
85
- </button>
86
- );
87
- },
88
- );
89
- export default UserGeoLocationButton;
@@ -1,98 +0,0 @@
1
- import {animate} from "@mapsight/core/lib/map/actions";
2
- import {memo, useCallback} from "react";
3
- import {useDispatch, useSelector} from "react-redux";
4
- import {ZOOM_IN, ZOOM_OUT} from "../../config/constants/app";
5
- import * as c from "../../config/constants/controllers";
6
-
7
- import {translate} from "../../helpers/i18n";
8
-
9
- const zoomSelector = (state) =>
10
- (state && state[c.MAP] && state[c.MAP].view && state[c.MAP].view.zoom) || 0;
11
-
12
- /**
13
- * @param {ZOOM_IN | ZOOM_OUT} action action
14
- * @returns {string} label
15
- */
16
- function getAriaLabel(action) {
17
- return translate("ui.zoom-button.ariaLabel" + action);
18
- }
19
-
20
- /**
21
- * @param {ZOOM_IN | ZOOM_OUT} action action
22
- * @returns {string} label
23
- */
24
- function getLabel(action) {
25
- return translate("ui.zoom-button.label" + action);
26
- }
27
-
28
- /**
29
- * @param {{
30
- * action: ZOOM_IN | ZOOM_OUT,
31
- * style?: import('react').CSSProperties,
32
- * additionalClasses?: string,
33
- * baseClass?: string,
34
- * zoomModifierClassPrefix?: string
35
- * }} props props
36
- * @returns {import('react').ReactElement} element
37
- */
38
- function ZoomButton(props) {
39
- const {
40
- action,
41
-
42
- // no need for separation of concerns, we just pass everything into the "component"
43
- additionalClasses = "",
44
- baseClass = "button",
45
- zoomModifierClassPrefix = "button--",
46
- style = {},
47
- } = props;
48
-
49
- const dispatch = useDispatch();
50
- const zoom = useSelector(zoomSelector);
51
-
52
- const onClick = useCallback(
53
- /** @param {import('react').MouseEvent} e event */
54
- function onClick(e) {
55
- e.stopPropagation();
56
-
57
- switch (action) {
58
- case ZOOM_IN:
59
- dispatch(
60
- animate(c.MAP, {
61
- zoom: zoom + 1,
62
- duration: 200,
63
- }),
64
- );
65
- break;
66
-
67
- case ZOOM_OUT:
68
- dispatch(
69
- animate(c.MAP, {
70
- zoom: zoom - 1,
71
- duration: 200,
72
- }),
73
- );
74
- break;
75
-
76
- default:
77
- throw new Error("Unsupported action");
78
- }
79
- },
80
- [dispatch, action, zoom],
81
- );
82
-
83
- const className = `${baseClass} ${zoomModifierClassPrefix}${action} ${additionalClasses}`;
84
-
85
- return (
86
- <button
87
- type="button"
88
- className={className}
89
- onClick={onClick}
90
- aria-label={getAriaLabel(action)}
91
- style={style}
92
- >
93
- <span className={`${baseClass}__label`}>{getLabel(action)}</span>
94
- </button>
95
- );
96
- }
97
-
98
- export default memo(ZoomButton);
@@ -1,26 +0,0 @@
1
- import {memo} from "react";
2
-
3
- import {ZOOM_IN, ZOOM_OUT} from "../../config/constants/app";
4
-
5
- import CombinedButtons from "./combined-buttons";
6
- import ZoomButton from "./zoom-button";
7
-
8
- const ZoomButtons = memo(function ZoomButtons() {
9
- return (
10
- <CombinedButtons>
11
- <ZoomButton
12
- baseClass="ms3-map-overlay__button"
13
- additionalClasses="ms3-map-overlay__button--with-icon ms3-map-overlay__button--zoom"
14
- zoomModifierClassPrefix="ms3-map-overlay__button--zoom--"
15
- action={ZOOM_IN}
16
- />
17
- <ZoomButton
18
- baseClass="ms3-map-overlay__button"
19
- additionalClasses="ms3-map-overlay__button--with-icon ms3-map-overlay__button--zoom"
20
- zoomModifierClassPrefix="ms3-map-overlay__button--zoom--"
21
- action={ZOOM_OUT}
22
- />
23
- </CombinedButtons>
24
- );
25
- });
26
- export default ZoomButtons;
@@ -1,15 +0,0 @@
1
- import {connect} from "react-redux";
2
-
3
- import {mapSizeSelector} from "@mapsight/core/lib/map/selectors";
4
- import type {MapState} from "@mapsight/core/lib/map/types";
5
-
6
- import {MAP} from "../../config/constants/controllers";
7
- import type {RootStateSlice} from "../../store/selectors";
8
- import {viewSelector} from "../../store/selectors";
9
- import MapSyncedInterlay from "./map-synced-interlay";
10
-
11
- export default connect((state: RootStateSlice) => ({
12
- view: viewSelector(state),
13
- size: mapSizeSelector(state[MAP] as MapState),
14
- //pendingUpdateSize: state[MAP].pendingUpdateSize || false,
15
- }))(MapSyncedInterlay);
@@ -1,22 +0,0 @@
1
- import {memo} from "react";
2
- import {useSelector} from "react-redux";
3
-
4
- import {isViewMobileOrMapOnlySelector} from "../../store/selectors";
5
-
6
- import Tooltip from "./tooltip";
7
-
8
- function MapSyncedInterlay({size}) {
9
- const isViewMobileOrMapOnly = useSelector(isViewMobileOrMapOnlySelector);
10
- const [width = "100%", height = "100%"] = size || [];
11
-
12
- return (
13
- <div
14
- className="ms3-map-synced-interlay"
15
- style={{width: width, height: height}}
16
- >
17
- {!isViewMobileOrMapOnly && <Tooltip />}
18
- </div>
19
- );
20
- }
21
-
22
- export default memo(MapSyncedInterlay);
@@ -1,22 +0,0 @@
1
- import type {PropsWithChildren} from "react";
2
-
3
- import {makeReplaceableComponent} from "../../helpers/components";
4
- import type {MapsightUiFeature} from "../../types";
5
-
6
- export type Props = PropsWithChildren<{
7
- feature: MapsightUiFeature;
8
- html: string;
9
- text: string;
10
- }>;
11
-
12
- function TooltipContent({children}: Props) {
13
- return <>{children}</>;
14
- }
15
-
16
- export default makeReplaceableComponent("TooltipContent", TooltipContent);
17
-
18
- declare module "../../helpers/components" {
19
- interface ComponentProps {
20
- TooltipContent: Props;
21
- }
22
- }
@@ -1,199 +0,0 @@
1
- import {
2
- type CSSProperties,
3
- type ReactElement,
4
- type RefObject,
5
- memo,
6
- useEffect,
7
- useRef,
8
- useState,
9
- } from "react";
10
- import {useSelector} from "react-redux";
11
-
12
- import {createSelector} from "@reduxjs/toolkit";
13
-
14
- import {
15
- type FeatureSelectionState,
16
- createFeatureSelectionSelector,
17
- getFilteredFeatures,
18
- } from "@mapsight/core/lib/feature-selections/selectors";
19
- import {findFeatureInFeatureSourcesById} from "@mapsight/core/lib/feature-sources/selectors";
20
- import type {FeatureSourcesState} from "@mapsight/core/lib/feature-sources/types";
21
- import {mapSizeSelector as getMapSize} from "@mapsight/core/lib/map/selectors";
22
- import type {MapState} from "@mapsight/core/lib/map/types";
23
- import type {Feature, State} from "@mapsight/core/types";
24
-
25
- import {
26
- FEATURE_SELECTIONS,
27
- FEATURE_SOURCES,
28
- MAP,
29
- } from "../../config/constants/controllers";
30
- import {FEATURE_SELECTION_HIGHLIGHT} from "../../config/feature/selections";
31
- import getFeatureProperty from "../../helpers/get-feature-property";
32
- import type {MapsightUiFeature} from "../../types";
33
- import TooltipContent from "./tooltip-content";
34
-
35
- const featureSelector = createSelector(
36
- (state) => state[FEATURE_SOURCES] as FeatureSourcesState,
37
- createFeatureSelectionSelector(
38
- FEATURE_SELECTIONS,
39
- FEATURE_SELECTION_HIGHLIGHT,
40
- ),
41
- (
42
- featureSources: FeatureSourcesState,
43
- selection: FeatureSelectionState | undefined,
44
- ) => {
45
- const features = getFilteredFeatures(selection);
46
- const featureId = features && features[0];
47
- if (featureId) {
48
- return findFeatureInFeatureSourcesById(featureSources, featureId);
49
- }
50
-
51
- return null;
52
- },
53
- );
54
-
55
- function mapSizeSelector(state: State) {
56
- return getMapSize(state[MAP] as MapState);
57
- }
58
-
59
- export type Position = null | {
60
- left: number;
61
- right: number;
62
- top: number;
63
- bottom: number;
64
- };
65
-
66
- /**
67
- * @param feature feature
68
- * @param tooltipElementRef feature
69
- * @returns position and withTransition
70
- */
71
- function useGetPositionWithTransition(
72
- feature: Feature | null,
73
- tooltipElementRef: RefObject<HTMLElement | null>,
74
- ): [Position, boolean] {
75
- const [withTransition, setWithTransition] = useState(true);
76
-
77
- const mapSize = useSelector(mapSizeSelector);
78
-
79
- const [position, setPosition] = useState<null | Position>(null);
80
-
81
- useEffect(() => {
82
- setWithTransition(false);
83
- }, [mapSize]);
84
-
85
- useEffect(() => {
86
- const mapElNull = tooltipElementRef.current
87
- ?.closest(".ms3-map-wrapper")
88
- ?.querySelector(".ms3-map-target");
89
-
90
- if (!mapElNull || !feature) {
91
- return undefined;
92
- }
93
-
94
- const mapEl = mapElNull;
95
-
96
- function onMouseMove(e: MouseEvent) {
97
- const x = e.clientX;
98
- const y = e.clientY;
99
- const {left, right, top, bottom} = mapEl.getBoundingClientRect();
100
- setPosition({
101
- left: x - left,
102
- right: right - x,
103
- top: y - top,
104
- bottom: bottom - y,
105
- });
106
- setWithTransition(true);
107
- }
108
-
109
- function onMouseOut() {
110
- setPosition(null);
111
- setWithTransition(true);
112
- }
113
-
114
- mapEl.addEventListener("mousemove", onMouseMove);
115
- mapEl.addEventListener("mouseout", onMouseOut);
116
-
117
- return () => {
118
- setPosition(null);
119
- setWithTransition(true);
120
-
121
- mapEl.removeEventListener("mousemove", onMouseMove);
122
- mapEl.removeEventListener("mouseout", onMouseOut);
123
- };
124
- }, [feature, setPosition, tooltipElementRef]);
125
-
126
- return [position, withTransition];
127
- }
128
-
129
- function Tooltip() {
130
- const tooltipElementRef = useRef<HTMLDivElement>(null);
131
- const feature = useSelector(featureSelector) as MapsightUiFeature | null;
132
-
133
- // Keeping the last feature to allow fade out without losing the content
134
- const [lastFeature, setLastFeature] = useState<MapsightUiFeature | null>(
135
- null,
136
- );
137
-
138
- useEffect(() => {
139
- if (!feature) {
140
- setLastFeature(feature);
141
- }
142
- }, [feature, setLastFeature]);
143
-
144
- const [position, withTransition] = useGetPositionWithTransition(
145
- feature,
146
- tooltipElementRef,
147
- );
148
-
149
- const localFeature = feature || lastFeature;
150
- if (!localFeature) {
151
- return;
152
- }
153
-
154
- const classes = `ms3-tooltip ms3-tooltip--${
155
- feature ? "active" : "inactive"
156
- }`;
157
- const classesInner = `ms3-tooltip__inner ms3-tooltip__inner--${
158
- feature ? "active" : "inactive"
159
- }`;
160
-
161
- const styles: CSSProperties = {};
162
-
163
- if (position) {
164
- styles.transform = `translate(${-position.right}px, ${position.top}px)`;
165
- } else {
166
- styles.display = "none";
167
- }
168
-
169
- if (!withTransition) {
170
- styles.transition = "none";
171
- }
172
-
173
- const html = getFeatureProperty(localFeature, "tooltip", "") as string;
174
- const text = html
175
- ? ""
176
- : (getFeatureProperty(localFeature, "name", "") as string);
177
-
178
- let content: null | ReactElement = null;
179
- if (html) {
180
- content = (
181
- <div
182
- className={classesInner}
183
- dangerouslySetInnerHTML={{__html: html}}
184
- />
185
- );
186
- } else if (text) {
187
- content = <div className={classesInner}>{text}</div>;
188
- }
189
-
190
- return (
191
- <div className={classes} style={styles} ref={tooltipElementRef}>
192
- <TooltipContent feature={localFeature} html={html} text={text}>
193
- {content}
194
- </TooltipContent>
195
- </div>
196
- );
197
- }
198
-
199
- export default memo(Tooltip);