@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,223 +0,0 @@
1
- import type {Store} from "@reduxjs/toolkit";
2
-
3
- import {
4
- deselectAll,
5
- selectExclusively,
6
- } from "@mapsight/core/lib/feature-selections/actions";
7
- import {createFeatureSelectionSelector} from "@mapsight/core/lib/feature-selections/selectors";
8
- import type {FeatureId} from "@mapsight/core/types";
9
-
10
- import getQueryStringParameter from "@mapsight/lib-js/string/get-query-string-parameter";
11
- import removeQueryStringParameter from "@mapsight/lib-js/string/remove-query-string-parameter";
12
- import {observeStateOnce} from "@mapsight/lib-redux/observe-state";
13
-
14
- import {VIEW_MAP_ONLY} from "../../config/constants/app";
15
- import * as c from "../../config/constants/controllers";
16
- import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
17
- import {setView} from "../../store/actions";
18
- import type {RootStateSlice} from "../../store/selectors";
19
- import {isViewMobile, viewSelector} from "../../store/selectors";
20
- import type {PluginInstance} from "../../types";
21
-
22
- const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
23
- const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
24
- const defaultGetParameter = "feature";
25
- const defaultAutoRemoveParameters = [defaultGetParameter, "cHash"];
26
-
27
- function selectFeature(
28
- store: Store,
29
- featureSelectionsController: string,
30
- featureSelection: string,
31
- featureId: FeatureId,
32
- setMapOnlyViewInMobile: boolean,
33
- ) {
34
- store.dispatch(
35
- selectExclusively(
36
- featureSelectionsController,
37
- featureSelection,
38
- featureId,
39
- ),
40
- );
41
-
42
- if (
43
- setMapOnlyViewInMobile &&
44
- isViewMobile(viewSelector(store.getState() as RootStateSlice))
45
- ) {
46
- store.dispatch(setView(VIEW_MAP_ONLY));
47
- }
48
- }
49
-
50
- /**
51
- * Hooks into global window.history[fn] to react to
52
- * history state changes from the app (as opposed to `window.onpopstate` which
53
- * triggers when a browser ui actions causes a history state change).
54
- *
55
- * @param fn function name to patch (e.g. "pushState" or "replaceState")
56
- * @param callback will get called _after_ that function has been called
57
- */
58
- function patchWindowHistoryFunction(
59
- fn: "pushState" | "replaceState",
60
- callback: (state: unknown) => void,
61
- ) {
62
- const originalFn = window.history[fn];
63
-
64
- window.history[fn] = (state, ...rest) => {
65
- const returnValue: unknown = originalFn.apply(window.history, [
66
- state,
67
- ...rest,
68
- ]);
69
- callback(state);
70
- return returnValue;
71
- };
72
- }
73
-
74
- /**
75
- * This plugin will select the feature identified by the defined get parameter and optionally remove parameters from the
76
- * window.location using the history API.
77
- *
78
- * @param [options] options
79
- * @param [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
80
- * @param [options.featureSelection="select"] name of the feature selection to track
81
- * @param [options.getParameter="feature"] name get parameter identifying the feature
82
- * @param [options.setMapOnlyViewInMobile=true] will set MapOnly view on mobile if a feature has been linked
83
- * @param [options.autoRemoveParameters] list of get parameters to remove once the feature
84
- * has been selected, defaults to ["feature", "cHash"]. Pass false to disable.
85
- * @param [options.clearMissingParameters] if set to true or an array clear if getParameter and the mentioned
86
- * parameters are missing. don't clear if getParameter is missing, but one of the
87
- * mentioned parameters is there. we keep this to be safe in race condition
88
- * where ?feature is set but ?preselect is not where we want to keep the implicit
89
- * preselect of the feature parameter
90
- *
91
- * @returns plugin instance
92
- */
93
- export default function createPlugin(
94
- options: {
95
- featureSelectionsController?: string;
96
- featureSelection?: string;
97
- getParameter?: string;
98
- setMapOnlyViewInMobile?: boolean;
99
- autoRemoveParameters?: string[] | false;
100
- clearMissingParameters?: string[] | false;
101
- } = {},
102
- ): PluginInstance {
103
- const {
104
- featureSelectionsController = defaultFeatureSelectionsController,
105
- featureSelection = defaultFeatureSelection,
106
- getParameter = defaultGetParameter,
107
- autoRemoveParameters = defaultAutoRemoveParameters,
108
- setMapOnlyViewInMobile = true,
109
- clearMissingParameters = null,
110
- } = options;
111
- const selectorSelectedFeatures = createFeatureSelectionSelector(
112
- featureSelectionsController,
113
- featureSelection,
114
- );
115
-
116
- let isHandled = false;
117
- return {
118
- afterRender: function handleFeatureDeepLink(context) {
119
- if (isHandled) {
120
- return;
121
- }
122
-
123
- isHandled = true;
124
-
125
- const {store} = context;
126
- if (!store) {
127
- return;
128
- }
129
-
130
- // We always do this action even if we should already have done that
131
- // by re-hydrating the state as it may not have had the dynamic get parameter passed along
132
- const featureId = getQueryStringParameter(
133
- window.location.search,
134
- getParameter,
135
- );
136
- if (featureId) {
137
- selectFeature(
138
- store,
139
- featureSelectionsController,
140
- featureSelection,
141
- featureId,
142
- setMapOnlyViewInMobile,
143
- );
144
-
145
- if (autoRemoveParameters && autoRemoveParameters.length) {
146
- // if we can, remove initial feature id from url
147
- // when the selection changes (e.g. panel is closed/different feature is selected)
148
- observeStateOnce(store, selectorSelectedFeatures, () => {
149
- let newUrl = window.location.href;
150
- autoRemoveParameters.forEach((key) => {
151
- newUrl = removeQueryStringParameter(newUrl, key);
152
- });
153
- window.history.pushState(
154
- null,
155
- window.document.title,
156
- newUrl,
157
- );
158
- });
159
- }
160
- } else {
161
- if (clearMissingParameters) {
162
- let found: string | null = null;
163
- while (!found && clearMissingParameters[0]) {
164
- found = getQueryStringParameter(
165
- window.location.search,
166
- clearMissingParameters.shift() as string,
167
- );
168
- }
169
- if (!found) {
170
- store.dispatch(
171
- deselectAll(
172
- featureSelectionsController,
173
- featureSelection,
174
- ),
175
- );
176
- }
177
- }
178
- // handle select via state at relaod
179
- if (
180
- window.history.state &&
181
- "featureId" in window.history.state &&
182
- window.history.state.featureId
183
- ) {
184
- selectFeature(
185
- store,
186
- featureSelectionsController,
187
- featureSelection,
188
- window.history.state.featureId,
189
- setMapOnlyViewInMobile,
190
- );
191
- }
192
- }
193
-
194
- const handleHistoryStateChange = (state) => {
195
- if (state && "featureId" in state) {
196
- if (state.featureId) {
197
- selectFeature(
198
- store,
199
- featureSelectionsController,
200
- featureSelection,
201
- state.featureId,
202
- setMapOnlyViewInMobile,
203
- );
204
- } else if (state?.featureId === null) {
205
- // test for null to inhibit action if featureId is simply omitted
206
- store.dispatch(
207
- deselectAll(
208
- featureSelectionsController,
209
- featureSelection,
210
- ),
211
- );
212
- }
213
- }
214
- };
215
-
216
- patchWindowHistoryFunction("pushState", handleHistoryStateChange);
217
- patchWindowHistoryFunction(
218
- "replaceState",
219
- handleHistoryStateChange,
220
- );
221
- },
222
- };
223
- }
@@ -1,79 +0,0 @@
1
- import merge from "lodash/merge";
2
-
3
- import type {PathItem} from "@mapsight/core/lib/base/actions";
4
- import {mergeAll} from "@mapsight/core/lib/base/actions";
5
- import type {State} from "@mapsight/core/types";
6
-
7
- import pickPaths from "@mapsight/lib-js/object/pickPaths";
8
- import {createStorage} from "@mapsight/lib-redux/local-storage";
9
-
10
- import type {PluginInstance} from "../../types";
11
-
12
- const defaultLocalStorageKey = "mapsight--v3-ui";
13
- const defaultLocalStoragePaths = [
14
- //['app', 'isFullscreen'],
15
- //['app', 'view'],
16
- ["app", "userPreferenceListVisible"],
17
- ];
18
-
19
- /**
20
- * This plugin will synchronize some paths of the store with the browser's local storage and restored on initialization.
21
- * See {CreateOptions.localStorageKey} and {CreateOptions.localStoragePaths} for configuration.
22
- *
23
- * @param [options] options
24
- * @param [options.localStorageKey="mapsight--v3-ui"] storage key
25
- * @param [options.localStoragePaths] paths to store
26
- * @returns plugin instance
27
- */
28
- export default function createPlugin({
29
- localStorageKey = defaultLocalStorageKey,
30
- localStoragePaths = defaultLocalStoragePaths,
31
- } = {}): PluginInstance {
32
- if (typeof window === "undefined") {
33
- console.error("This plugin will only work as intended in the browser!");
34
- }
35
-
36
- let restoredState: Partial<State>;
37
- let isRestored = false;
38
- let storage: ReturnType<typeof createStorage>;
39
-
40
- return {
41
- afterInit: function localStorageInitPlugin({
42
- initialState,
43
- isStateReHydrated,
44
- }) {
45
- storage = createStorage(localStorageKey);
46
-
47
- // override initial state from local storage
48
- const savedState = storage.getLocalStorageState();
49
- restoredState = pickPaths(savedState, localStoragePaths);
50
-
51
- // We cannot change the state before we have not at least rendered the
52
- // dehydrated html at least once to prevent a mixed up DOM when server-side
53
- // state and client-side determined state mismatch or has changed
54
- // since page load. If the app is not re-hydrated but initially rendered
55
- // in the client we can omit the additional render and set the restored
56
- // state on creation (before render).
57
- if (!isStateReHydrated) {
58
- isRestored = true;
59
- merge(initialState, restoredState);
60
- }
61
- },
62
- afterCreate: function localStorageCreatePlugin({store}) {
63
- // sync local storage
64
- if (store && localStoragePaths) {
65
- storage.synchronizePathsToLocalStorage(
66
- store,
67
- localStoragePaths,
68
- );
69
- }
70
- },
71
- afterRender: function localStorageAfterRenderPlugin({store}) {
72
- if (store && !isRestored) {
73
- store.dispatch(
74
- mergeAll(restoredState as Record<PathItem, unknown>),
75
- );
76
- }
77
- },
78
- };
79
- }
@@ -1,81 +0,0 @@
1
- import {observeState} from "@mapsight/lib-redux/observe-state";
2
-
3
- import type {View} from "../../config/constants/app";
4
- import {viewSelector} from "../../store/selectors";
5
- import type {PluginInstance} from "../../types";
6
-
7
- /**
8
- * This plugin will request native fullscreen when entering one of the
9
- * specified views.
10
- *
11
- * @param [options] options
12
- * @param [options.views=['fullscreen']] views to enable native fullscreen on
13
- * @param [options.checkInitially=true] if set the view will be checked on init and depending on the specified list may request native fullscreen
14
- * @returns plugin
15
- */
16
- export default function createNativeFullscreenPlugin(
17
- options: {
18
- elementSelector?: string;
19
- views?: View[];
20
- checkInitially?: boolean;
21
- } = {},
22
- ): PluginInstance {
23
- if (typeof window === "undefined") {
24
- throw new Error(
25
- "Cannot use native fullscreen plugin outside of browser!",
26
- );
27
- }
28
-
29
- const {
30
- elementSelector = ".ms3-wrapper",
31
- views = ["fullscreen"],
32
- checkInitially = true,
33
- } = options;
34
-
35
- let reqFS: string;
36
- let exitFS: string;
37
- let fSElement: string;
38
- if ("requestFullscreen" in document.documentElement) {
39
- reqFS = "requestFullscreen";
40
- exitFS = "exitFullscreen";
41
- fSElement = "fullscreenElement";
42
- } else if ("webkitRequestFullscreen" in document.documentElement) {
43
- reqFS = "webkitRequestFullscreen";
44
- exitFS = "webkitExitFullscreen";
45
- fSElement = "webkitFullscreenElement";
46
- } else {
47
- return {}; // nothing to do
48
- }
49
-
50
- const handleState = (view) => {
51
- const element = document.querySelector(elementSelector);
52
- if (!element) {
53
- return;
54
- }
55
-
56
- const elementIsFullscreen = document[fSElement]
57
- ? element === document[fSElement]
58
- : false;
59
- const viewIsFullscreen = views.includes(view);
60
-
61
- if (elementIsFullscreen !== viewIsFullscreen) {
62
- if (viewIsFullscreen) {
63
- element[reqFS]();
64
- } else {
65
- document[exitFS]();
66
- }
67
- }
68
- };
69
-
70
- return {
71
- afterCreate: function nativeFullscreenPlugin({store}) {
72
- if (!store) return;
73
-
74
- if (checkInitially) {
75
- handleState(viewSelector(store.getState()));
76
- }
77
-
78
- observeState(store, viewSelector, handleState);
79
- },
80
- };
81
- }
@@ -1,91 +0,0 @@
1
- import type {State} from "@mapsight/core/types";
2
-
3
- import {getAndObserveState} from "@mapsight/lib-redux/observe-state";
4
-
5
- import {VIEW_FULLSCREEN, VIEW_MAP_ONLY} from "../../config/constants/app";
6
- import type {RootStateSlice} from "../../store/selectors";
7
- import {viewSelector} from "../../store/selectors";
8
- import type {PluginInstance} from "../../types";
9
-
10
- function onTouchMoveNoScroll(e: TouchEvent) {
11
- e.preventDefault();
12
- }
13
-
14
- /**
15
- * create a no-scroll-handler
16
- *
17
- * @param selector redux store selector to test if scroll should be inhibited
18
- * @param [noScrollCssClass] class to set, default = 'ms3--map-no-scroll'
19
- * @returns function to update no-scroll state.
20
- */
21
- export function createNoScrollHandler(
22
- selector: (state: unknown) => boolean,
23
- noScrollCssClass = "ms3--map-no-scroll",
24
- ) {
25
- return (state: State, forceAllow: boolean) => {
26
- const isNoScroll = !forceAllow && selector(state);
27
- if (isNoScroll) {
28
- window.document.documentElement.classList.add(noScrollCssClass);
29
- window.document.addEventListener("touchmove", onTouchMoveNoScroll);
30
- } else {
31
- window.document.documentElement.classList.remove(noScrollCssClass);
32
- window.document.removeEventListener(
33
- "touchmove",
34
- onTouchMoveNoScroll,
35
- );
36
- }
37
-
38
- return isNoScroll;
39
- };
40
- }
41
-
42
- export const defaultNoScrollHandler = createNoScrollHandler(
43
- (state: RootStateSlice) => {
44
- const view = viewSelector(state);
45
- return view === VIEW_MAP_ONLY || view === VIEW_FULLSCREEN;
46
- },
47
- );
48
- export const defaultNoScrollObserveSelector = viewSelector;
49
-
50
- /**
51
- * This plugin will observe the state for changes to the view (default) and will call the defined handler.
52
- * By default, this will disable scrolling the document and add a class to the document element
53
- * when the view is in either "mapOnly" or "fullscreen" view.
54
- *
55
- * @param [options] options
56
- * @param [options.noScrollHandler] handler to call (will be passed the current state)
57
- * @param [options.noScrollObserveSelector] selector to observe state with
58
- * @returns {import('../../types').PluginInstance} plugin instance
59
- */
60
- export default function createPlugin(
61
- options: {
62
- noScrollCssClass?: string;
63
- noScrollObserveSelector?: (state: State) => unknown;
64
- noScrollHandler?: (state: State, forceAllow: boolean) => void;
65
- } = {},
66
- ): PluginInstance {
67
- const {
68
- noScrollHandler = defaultNoScrollHandler,
69
- noScrollObserveSelector = defaultNoScrollObserveSelector,
70
- } = options;
71
-
72
- if (typeof window === "undefined") {
73
- console.info(
74
- "This plugin might not work as intended, if not run in the browser!",
75
- );
76
- }
77
-
78
- return {
79
- afterCreate: function noScrollPlugin(context) {
80
- const {store} = context;
81
-
82
- if (store) {
83
- getAndObserveState<State>(
84
- store,
85
- noScrollObserveSelector,
86
- (_old, _new, state) => noScrollHandler(state, false),
87
- );
88
- }
89
- },
90
- };
91
- }
@@ -1,23 +0,0 @@
1
- import {APP_EVENT_PARTIAL_CONTENT_CHANGED} from "../../components/helping/app-channel";
2
- import type {PluginInstance} from "../../types";
3
-
4
- /**
5
- * This plugin will call the partialChangeHandler (@see {CreateOptions.partialChangeHandler}) when some partial content
6
- * has changed in the mapsight ui controlled dom, allowing for manipulation of the changed dom (e.g. displaying charts in the
7
- * feature selection info)
8
- *
9
- * @param [_options] options currently not used
10
- * @returns plugin instance
11
- */
12
- export default function createPlugin(_options = {}): PluginInstance {
13
- return {
14
- afterCreate: function partialContentChangedEventPlugin(context) {
15
- if (context.createOptions.partialChangeHandler) {
16
- context.appChannelListeners.push([
17
- APP_EVENT_PARTIAL_CONTENT_CHANGED,
18
- context.createOptions.partialChangeHandler,
19
- ]);
20
- }
21
- },
22
- };
23
- }
@@ -1,75 +0,0 @@
1
- import {
2
- createFeatureSelectionSelector,
3
- getFilteredFeatures,
4
- } from "@mapsight/core/lib/feature-selections/selectors";
5
-
6
- import {trackEvent} from "@mapsight/lib-js/misc/piwik";
7
- import {observeState} from "@mapsight/lib-redux/observe-state";
8
-
9
- import * as c from "../../config/constants/controllers";
10
- import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
11
- import type {PluginInstance} from "../../types";
12
-
13
- const defaultCategory = "Mapsight";
14
- const defaultAction = "SelectedFeature";
15
-
16
- const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
17
- const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
18
-
19
- /**
20
- * This plugin will track piwik actions when the a feature is selected
21
- *
22
- * @see `@mapsight/lib-js/misc/piwik`
23
- *
24
- * @param [options] options
25
- * @param [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
26
- * @param [options.featureSelection="select"] name of the feature selection to track
27
- * @param [options.category="Mapsight"] piwik category to track
28
- * @param [options.action="SelectedFeature"] piwik action to track
29
- * @returns plugin instance
30
- */
31
- export default function createPlugin(
32
- options: {
33
- featureSelectionsController?: string;
34
- featureSelection?: string;
35
- category?: string;
36
- action?: string;
37
- } = {},
38
- ): PluginInstance {
39
- const {
40
- featureSelectionsController = defaultFeatureSelectionsController,
41
- featureSelection = defaultFeatureSelection,
42
- category = defaultCategory,
43
- action = defaultAction,
44
- } = options;
45
-
46
- return {
47
- afterCreate: function piwikTrackFullscreenToggleEvent(context) {
48
- const {store} = context;
49
- if (!store) return;
50
-
51
- observeState(
52
- store,
53
- createFeatureSelectionSelector(
54
- featureSelectionsController,
55
- featureSelection,
56
- ),
57
- (selection) => {
58
- const filteredFeatures = getFilteredFeatures(selection);
59
- if (!filteredFeatures) return;
60
-
61
- const hasFeatures = !!filteredFeatures.length;
62
-
63
- if (hasFeatures) {
64
- trackEvent(
65
- category,
66
- action,
67
- featureSelection,
68
- JSON.stringify(filteredFeatures),
69
- );
70
- }
71
- },
72
- ); // TODO: Check!
73
- },
74
- };
75
- }
@@ -1,46 +0,0 @@
1
- import {trackEvent} from "@mapsight/lib-js/misc/piwik";
2
- import {observeState} from "@mapsight/lib-redux/observe-state";
3
-
4
- import {isFullscreenSelector} from "../../store/selectors";
5
- import type {PluginInstance} from "../../types";
6
-
7
- const defaultCategory = "Mapsight";
8
- const defaultActionEnabled = "FullscreenEnabled";
9
- const defaultActionDisabled = "FullscreenDisabled";
10
-
11
- /**
12
- * This plugin will track piwik actions when the fullscreen mode is en-/disabled.
13
- *
14
- * @see `@mapsight/lib-js/misc/piwik`
15
- *
16
- * @param [options] options
17
- * @param [options.category="Mapsight"] piwik category to track
18
- * @param [options.actionEnabled="FullscreenEnabled"] piwik action to track when enabling fullscreen
19
- * @param [options.actionDisabled="FullscreenDisabled"] piwik action to track when disabling fullscreen
20
- * @returns plugin instance
21
- */
22
- export default function createPlugin(
23
- options: {
24
- category?: string;
25
- actionEnabled?: string;
26
- actionDisabled?: string;
27
- } = {},
28
- ): PluginInstance {
29
- const {
30
- category = defaultCategory,
31
- actionEnabled = defaultActionEnabled,
32
- actionDisabled = defaultActionDisabled,
33
- } = options;
34
-
35
- return {
36
- afterCreate: function piwikTrackFullscreenToggleEvent(context) {
37
- const {store} = context;
38
- if (!store) return;
39
-
40
- // track fullscreen toggles
41
- observeState(store, isFullscreenSelector, (newValue) =>
42
- trackEvent(category, newValue ? actionEnabled : actionDisabled),
43
- );
44
- },
45
- };
46
- }
@@ -1,42 +0,0 @@
1
- import {FeatureSourcesController} from "@mapsight/core/lib/feature-sources/controller";
2
-
3
- import * as c from "../../config/constants/controllers";
4
- import {searchResultSelectionFeatureSourceSelector} from "../../store/selectors";
5
- import type {PluginInstance} from "../../types";
6
-
7
- const defaultFeatureSourceId = "searchResult";
8
- const defaultFeatureSourcesControllerName = c.FEATURE_SOURCES;
9
-
10
- /**
11
- * This plugin will bind the search result feature source to the mapsight ui state
12
- *
13
- * @param [options] options
14
- * @param [options.featureSourceId] name of the feature source, default = "searchResult"
15
- * @param [options.featureSourcesControllerName] name of the feature sources controller, defaults to mapsight ui default
16
- * @returns plugin instance
17
- */
18
- export default function createPlugin(
19
- options: {
20
- featureSourceId?: string;
21
- featureSourcesControllerName?: string;
22
- } = {},
23
- ): PluginInstance {
24
- const {
25
- featureSourceId = defaultFeatureSourceId,
26
- featureSourcesControllerName = defaultFeatureSourcesControllerName,
27
- } = options;
28
-
29
- return {
30
- afterCreate: function searchPlugin(context) {
31
- const controller =
32
- context.controllers?.[featureSourcesControllerName];
33
-
34
- if (controller && controller instanceof FeatureSourcesController) {
35
- controller.bindFeatureSourceToStore(
36
- featureSourceId,
37
- searchResultSelectionFeatureSourceSelector,
38
- );
39
- }
40
- },
41
- };
42
- }