@mapsight/ui 7.1.0 → 7.2.1

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 (497) hide show
  1. package/README.md +95 -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/hooks/useFeatureListItemGroups.js +1 -1
  22. package/dist/components/feature-list/hooks/useFeatureListItemGroups.js.map +1 -1
  23. package/dist/components/feature-list/index.d.ts +3 -2
  24. package/dist/components/feature-list/index.d.ts.map +1 -1
  25. package/dist/components/feature-list/index.js +33 -42
  26. package/dist/components/feature-list/index.js.map +1 -1
  27. package/dist/components/feature-list/layer-switcher-control.d.ts +4 -0
  28. package/dist/components/feature-list/layer-switcher-control.d.ts.map +1 -0
  29. package/dist/components/feature-list/layer-switcher-control.js +11 -0
  30. package/dist/components/feature-list/layer-switcher-control.js.map +1 -0
  31. package/dist/components/feature-list/pagination.d.ts +1 -1
  32. package/dist/components/feature-list/pagination.d.ts.map +1 -1
  33. package/dist/components/feature-list/query-input.d.ts +1 -1
  34. package/dist/components/feature-list/query-input.d.ts.map +1 -1
  35. package/dist/components/feature-list/tag-switcher-control.d.ts +4 -0
  36. package/dist/components/feature-list/tag-switcher-control.d.ts.map +1 -0
  37. package/dist/components/feature-list/tag-switcher-control.js +10 -0
  38. package/dist/components/feature-list/tag-switcher-control.js.map +1 -0
  39. package/dist/components/feature-list-cycling/button.d.ts +1 -1
  40. package/dist/components/feature-list-cycling/button.d.ts.map +1 -1
  41. package/dist/components/feature-list-cycling/dot.d.ts +1 -1
  42. package/dist/components/feature-list-cycling/dot.d.ts.map +1 -1
  43. package/dist/components/feature-list-cycling/feature-list-cycling.d.ts +1 -1
  44. package/dist/components/feature-list-cycling/feature-list-cycling.d.ts.map +1 -1
  45. package/dist/components/feature-list-cycling/index.d.ts +1 -1
  46. package/dist/components/feature-list-item/icon.d.ts +8 -6
  47. package/dist/components/feature-list-item/icon.d.ts.map +1 -1
  48. package/dist/components/feature-list-item/icon.js +5 -13
  49. package/dist/components/feature-list-item/icon.js.map +1 -1
  50. package/dist/components/feature-list-item/index.d.ts +1 -1
  51. package/dist/components/feature-list-item/index.d.ts.map +1 -1
  52. package/dist/components/feature-list-sorting/feature-list-sorting.d.ts +1 -1
  53. package/dist/components/feature-list-sorting/feature-list-sorting.d.ts.map +1 -1
  54. package/dist/components/feature-list-sorting/feature-list-sorting.js +3 -12
  55. package/dist/components/feature-list-sorting/feature-list-sorting.js.map +1 -1
  56. package/dist/components/feature-list-sorting/index.d.ts +1 -1
  57. package/dist/components/feature-list-sorting/status-indicator.d.ts +1 -1
  58. package/dist/components/feature-list-sorting/status-indicator.d.ts.map +1 -1
  59. package/dist/components/feature-select-button.d.ts +1 -1
  60. package/dist/components/feature-select-button.d.ts.map +1 -1
  61. package/dist/components/feature-selection-info/close-button.d.ts +1 -1
  62. package/dist/components/feature-selection-info/close-button.d.ts.map +1 -1
  63. package/dist/components/feature-selection-info/container.d.ts +1 -1
  64. package/dist/components/feature-selection-info/container.d.ts.map +1 -1
  65. package/dist/components/feature-selection-info/header.d.ts +1 -1
  66. package/dist/components/feature-selection-info/header.d.ts.map +1 -1
  67. package/dist/components/feature-selection-info/index.d.ts +1 -1
  68. package/dist/components/feature-selection-info/index.d.ts.map +1 -1
  69. package/dist/components/feature-selection-info/with-sticky-header.d.ts +1 -1
  70. package/dist/components/feature-selection-info/with-sticky-header.d.ts.map +1 -1
  71. package/dist/components/feature-selection-info/without-sticky-header.d.ts +1 -1
  72. package/dist/components/feature-selection-info/without-sticky-header.d.ts.map +1 -1
  73. package/dist/components/filter-toggle-control/FilterToggleControl.d.ts +12 -0
  74. package/dist/components/filter-toggle-control/FilterToggleControl.d.ts.map +1 -0
  75. package/dist/components/filter-toggle-control/FilterToggleControl.js +20 -0
  76. package/dist/components/filter-toggle-control/FilterToggleControl.js.map +1 -0
  77. package/dist/components/helping/app-channel.d.ts +1 -1
  78. package/dist/components/helping/app-channel.d.ts.map +1 -1
  79. package/dist/components/helping/app-context.d.ts +1 -1
  80. package/dist/components/helping/app-context.d.ts.map +1 -1
  81. package/dist/components/instance.d.ts +1 -1
  82. package/dist/components/instance.d.ts.map +1 -1
  83. package/dist/components/layer-switcher/GroupedLayerSwitcher.d.ts +1 -1
  84. package/dist/components/layer-switcher/LayerSwitcher.d.ts +1 -1
  85. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts +4 -2
  86. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts.map +1 -1
  87. package/dist/components/layer-switcher/LayerSwitcherContainer.js +10 -4
  88. package/dist/components/layer-switcher/LayerSwitcherContainer.js.map +1 -1
  89. package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts +1 -1
  90. package/dist/components/layer-switcher/SplitBaseLayerSwitcher.d.ts +26 -0
  91. package/dist/components/layer-switcher/SplitBaseLayerSwitcher.d.ts.map +1 -0
  92. package/dist/components/layer-switcher/SplitBaseLayerSwitcher.js +48 -0
  93. package/dist/components/layer-switcher/SplitBaseLayerSwitcher.js.map +1 -0
  94. package/dist/components/layer-switcher/index.d.ts +1 -1
  95. package/dist/components/layer-switcher/index.d.ts.map +1 -1
  96. package/dist/components/layer-switcher/index.js +1 -0
  97. package/dist/components/layer-switcher/index.js.map +1 -1
  98. package/dist/components/layout/additional-container/content.d.ts +1 -1
  99. package/dist/components/layout/additional-container/content.d.ts.map +1 -1
  100. package/dist/components/layout/additional-container/index.d.ts +1 -1
  101. package/dist/components/layout/additional-container/index.d.ts.map +1 -1
  102. package/dist/components/layout/additional-container/marginal.d.ts +1 -1
  103. package/dist/components/layout/additional-container/marginal.d.ts.map +1 -1
  104. package/dist/components/layout/main-container.d.ts +1 -1
  105. package/dist/components/layout/main-container.d.ts.map +1 -1
  106. package/dist/components/layout/map-row.d.ts +1 -1
  107. package/dist/components/layout/map-row.d.ts.map +1 -1
  108. package/dist/components/layout/title-bar.d.ts +1 -1
  109. package/dist/components/layout/title-bar.d.ts.map +1 -1
  110. package/dist/components/layout/wrapper.d.ts +1 -1
  111. package/dist/components/layout/wrapper.d.ts.map +1 -1
  112. package/dist/components/link-share.d.ts +1 -1
  113. package/dist/components/link-share.d.ts.map +1 -1
  114. package/dist/components/main-panel/container.d.ts +1 -1
  115. package/dist/components/main-panel/container.d.ts.map +1 -1
  116. package/dist/components/main-panel/context.d.ts +1 -1
  117. package/dist/components/main-panel/context.d.ts.map +1 -1
  118. package/dist/components/main-panel/index.d.ts +1 -1
  119. package/dist/components/main-panel/index.d.ts.map +1 -1
  120. package/dist/components/main-panel/list-toggle-button.d.ts +1 -1
  121. package/dist/components/main-panel/list-toggle-button.d.ts.map +1 -1
  122. package/dist/components/map-overlay/attribution-entries.d.ts +1 -1
  123. package/dist/components/map-overlay/attribution-entries.d.ts.map +1 -1
  124. package/dist/components/map-overlay/attribution.d.ts +1 -1
  125. package/dist/components/map-overlay/attribution.d.ts.map +1 -1
  126. package/dist/components/map-overlay/combined-buttons.d.ts +1 -1
  127. package/dist/components/map-overlay/combined-buttons.d.ts.map +1 -1
  128. package/dist/components/map-overlay/index.d.ts +1 -1
  129. package/dist/components/map-overlay/index.d.ts.map +1 -1
  130. package/dist/components/map-overlay/info-overlay-left.d.ts +1 -1
  131. package/dist/components/map-overlay/info-overlay-left.d.ts.map +1 -1
  132. package/dist/components/map-overlay/info-overlay-modal.d.ts +1 -1
  133. package/dist/components/map-overlay/info-overlay-modal.d.ts.map +1 -1
  134. package/dist/components/map-overlay/info-overlay-right.d.ts +1 -1
  135. package/dist/components/map-overlay/info-overlay-right.d.ts.map +1 -1
  136. package/dist/components/map-overlay/layer-switcher-overlay.d.ts +1 -1
  137. package/dist/components/map-overlay/layer-switcher-overlay.d.ts.map +1 -1
  138. package/dist/components/map-overlay/legend.d.ts +1 -1
  139. package/dist/components/map-overlay/legend.d.ts.map +1 -1
  140. package/dist/components/map-overlay/logo.d.ts +1 -1
  141. package/dist/components/map-overlay/logo.d.ts.map +1 -1
  142. package/dist/components/map-overlay/measure-distance-button.d.ts +1 -1
  143. package/dist/components/map-overlay/measure-distance-button.d.ts.map +1 -1
  144. package/dist/components/map-overlay/measure-distance-overlay.d.ts +1 -1
  145. package/dist/components/map-overlay/measure-distance-overlay.d.ts.map +1 -1
  146. package/dist/components/map-overlay/search-overlay.d.ts +1 -1
  147. package/dist/components/map-overlay/search-overlay.d.ts.map +1 -1
  148. package/dist/components/map-overlay/share-position-link-button.d.ts +1 -1
  149. package/dist/components/map-overlay/share-position-link-button.d.ts.map +1 -1
  150. package/dist/components/map-overlay/tool-overlay.d.ts +1 -1
  151. package/dist/components/map-overlay/tool-overlay.d.ts.map +1 -1
  152. package/dist/components/map-overlay/zoom-buttons.d.ts +1 -1
  153. package/dist/components/map-overlay/zoom-buttons.d.ts.map +1 -1
  154. package/dist/components/map-synced-interlay/index.d.ts +1 -1
  155. package/dist/components/map-synced-interlay/map-synced-interlay.d.ts +1 -1
  156. package/dist/components/map-synced-interlay/map-synced-interlay.d.ts.map +1 -1
  157. package/dist/components/map-synced-interlay/tooltip.d.ts +1 -1
  158. package/dist/components/map-synced-interlay/tooltip.d.ts.map +1 -1
  159. package/dist/components/map-wrapper.d.ts +3 -3
  160. package/dist/components/map-wrapper.d.ts.map +1 -1
  161. package/dist/components/map-wrapper.js +4 -7
  162. package/dist/components/map-wrapper.js.map +1 -1
  163. package/dist/components/map.d.ts +1 -1
  164. package/dist/components/map.d.ts.map +1 -1
  165. package/dist/components/mapsight-icon/mapsight-icon.d.ts +10 -0
  166. package/dist/components/mapsight-icon/mapsight-icon.d.ts.map +1 -0
  167. package/dist/components/mapsight-icon/mapsight-icon.js +33 -0
  168. package/dist/components/mapsight-icon/mapsight-icon.js.map +1 -0
  169. package/dist/components/modal.d.ts +1 -1
  170. package/dist/components/modal.d.ts.map +1 -1
  171. package/dist/components/query-input-with-label.d.ts +1 -1
  172. package/dist/components/query-input-with-label.d.ts.map +1 -1
  173. package/dist/components/search/index.d.ts +1 -1
  174. package/dist/components/search/index.d.ts.map +1 -1
  175. package/dist/components/search/result-entry.d.ts +1 -1
  176. package/dist/components/search/result-entry.d.ts.map +1 -1
  177. package/dist/components/search/result.d.ts +1 -1
  178. package/dist/components/search/result.d.ts.map +1 -1
  179. package/dist/components/switcher/GroupedSwitcher.d.ts +1 -1
  180. package/dist/components/switcher/GroupedSwitcher.d.ts.map +1 -1
  181. package/dist/components/switcher/Switcher.d.ts +1 -1
  182. package/dist/components/switcher/Switcher.d.ts.map +1 -1
  183. package/dist/components/switcher/SwitcherButton.d.ts +1 -1
  184. package/dist/components/switcher/SwitcherButton.d.ts.map +1 -1
  185. package/dist/components/switcher/SwitcherEntry.d.ts +1 -1
  186. package/dist/components/switcher/SwitcherEntry.d.ts.map +1 -1
  187. package/dist/components/switcher/SwitcherHeader.d.ts +1 -1
  188. package/dist/components/switcher/SwitcherHeader.d.ts.map +1 -1
  189. package/dist/components/switcher/SwitcherStatusIcon.d.ts +1 -1
  190. package/dist/components/switcher/SwitcherStatusIcon.d.ts.map +1 -1
  191. package/dist/components/tag-switcher/TagSwitcher.d.ts +1 -1
  192. package/dist/components/tag-switcher/TagSwitcher.d.ts.map +1 -1
  193. package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts +1 -1
  194. package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts +1 -1
  195. package/dist/components/tag-switcher/index.d.ts +1 -1
  196. package/dist/components/time-filter.d.ts +1 -1
  197. package/dist/components/time-filter.d.ts.map +1 -1
  198. package/dist/components/view-toggle-button/desktop-button.d.ts +1 -1
  199. package/dist/components/view-toggle-button/desktop-button.d.ts.map +1 -1
  200. package/dist/components/view-toggle-button/index.d.ts +1 -1
  201. package/dist/components/view-toggle-button/mobile-button.d.ts +1 -1
  202. package/dist/components/view-toggle-button/mobile-button.d.ts.map +1 -1
  203. package/dist/components/view-toggle-button/view-toggle-button.d.ts +1 -1
  204. package/dist/components/view-toggle-button/view-toggle-button.d.ts.map +1 -1
  205. package/dist/components/view-toggle-button/viewport-button.d.ts +1 -1
  206. package/dist/components/view-toggle-button/viewport-button.d.ts.map +1 -1
  207. package/dist/config/feature/sources.d.ts +8 -5
  208. package/dist/config/feature/sources.d.ts.map +1 -1
  209. package/dist/config/feature/sources.js +7 -9
  210. package/dist/config/feature/sources.js.map +1 -1
  211. package/dist/config/index.d.ts +1 -1
  212. package/dist/config/map/featureInteractions.js.map +1 -1
  213. package/dist/config/map/layers.d.ts +16 -13
  214. package/dist/config/map/layers.d.ts.map +1 -1
  215. package/dist/config/map/layers.js.map +1 -1
  216. package/dist/config/schema/index.d.ts +197 -0
  217. package/dist/config/schema/index.d.ts.map +1 -0
  218. package/dist/config/schema/index.js +26 -0
  219. package/dist/config/schema/index.js.map +1 -0
  220. package/dist/config/schema/validate.d.ts +8 -0
  221. package/dist/config/schema/validate.d.ts.map +1 -0
  222. package/dist/config/schema/validate.js +7 -0
  223. package/dist/config/schema/validate.js.map +1 -0
  224. package/dist/controllers/defaults.d.ts.map +1 -1
  225. package/dist/controllers/defaults.js +5 -0
  226. package/dist/controllers/defaults.js.map +1 -1
  227. package/dist/filters/tag-filter.d.ts +7 -0
  228. package/dist/filters/tag-filter.d.ts.map +1 -1
  229. package/dist/filters/tag-filter.js +10 -0
  230. package/dist/filters/tag-filter.js.map +1 -1
  231. package/dist/filters/time-filter.d.ts +9 -0
  232. package/dist/filters/time-filter.d.ts.map +1 -1
  233. package/dist/filters/time-filter.js +10 -0
  234. package/dist/filters/time-filter.js.map +1 -1
  235. package/dist/helpers/i18n/de.d.ts.map +1 -1
  236. package/dist/helpers/i18n/de.js +3 -0
  237. package/dist/helpers/i18n/de.js.map +1 -1
  238. package/dist/helpers/i18n/en.d.ts.map +1 -1
  239. package/dist/helpers/i18n/en.js +3 -0
  240. package/dist/helpers/i18n/en.js.map +1 -1
  241. package/dist/helpers/sort-features-by-distance.d.ts +2 -7
  242. package/dist/helpers/sort-features-by-distance.d.ts.map +1 -1
  243. package/dist/helpers/sort-features-by-distance.js +27 -39
  244. package/dist/helpers/sort-features-by-distance.js.map +1 -1
  245. package/dist/hooks/useMapsightIcon.d.ts +8 -0
  246. package/dist/hooks/useMapsightIcon.d.ts.map +1 -0
  247. package/dist/hooks/useMapsightIcon.js +50 -0
  248. package/dist/hooks/useMapsightIcon.js.map +1 -0
  249. package/dist/index.d.ts +2 -2
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +15 -2
  252. package/dist/index.js.map +1 -1
  253. package/dist/plugins/browser-defaults.d.ts +2 -0
  254. package/dist/plugins/browser-defaults.d.ts.map +1 -1
  255. package/dist/plugins/browser-defaults.js +5 -0
  256. package/dist/plugins/browser-defaults.js.map +1 -1
  257. package/dist/plugins/common/combined-visible-layers.d.ts +15 -0
  258. package/dist/plugins/common/combined-visible-layers.d.ts.map +1 -0
  259. package/dist/plugins/common/combined-visible-layers.js +63 -0
  260. package/dist/plugins/common/combined-visible-layers.js.map +1 -0
  261. package/dist/plugins/common/runtime-icon-style.d.ts +12 -0
  262. package/dist/plugins/common/runtime-icon-style.d.ts.map +1 -0
  263. package/dist/plugins/common/runtime-icon-style.js +58 -0
  264. package/dist/plugins/common/runtime-icon-style.js.map +1 -0
  265. package/dist/react-modal-app-element.d.ts +6 -0
  266. package/dist/react-modal-app-element.d.ts.map +1 -0
  267. package/dist/react-modal-app-element.js +9 -0
  268. package/dist/react-modal-app-element.js.map +1 -0
  269. package/dist/store/actions.d.ts.map +1 -1
  270. package/dist/store/actions.js +6 -1
  271. package/dist/store/actions.js.map +1 -1
  272. package/dist/store/reducers.d.ts +75 -6
  273. package/dist/store/reducers.d.ts.map +1 -1
  274. package/dist/store/selectors.d.ts +75 -17
  275. package/dist/store/selectors.d.ts.map +1 -1
  276. package/dist/store/selectors.js +9 -1
  277. package/dist/store/selectors.js.map +1 -1
  278. package/dist/types.d.ts +21 -5
  279. package/dist/types.d.ts.map +1 -1
  280. package/package.json +24 -8
  281. package/src/scss/blocks/_features-sorting.scss +0 -13
  282. package/src/scss/blocks/_filter-button.scss +39 -8
  283. package/src/scss/blocks/_filter-toggle-control.scss +15 -0
  284. package/src/scss/default.scss +1 -0
  285. package/src/scss/themes/2022-03.scss +66 -0
  286. package/src/img/mapsight-ui/check-empty.svg +0 -1
  287. package/src/img/mapsight-ui/check.svg +0 -2
  288. package/src/img/mapsight-ui/close-list.svg +0 -1
  289. package/src/img/mapsight-ui/close.svg +0 -1
  290. package/src/img/mapsight-ui/error.svg +0 -1
  291. package/src/img/mapsight-ui/fullscreen-close.svg +0 -1
  292. package/src/img/mapsight-ui/fullscreen.svg +0 -1
  293. package/src/img/mapsight-ui/geo-active.svg +0 -1
  294. package/src/img/mapsight-ui/geo-error.svg +0 -1
  295. package/src/img/mapsight-ui/geo-inactive.svg +0 -1
  296. package/src/img/mapsight-ui/info.svg +0 -1
  297. package/src/img/mapsight-ui/layers.svg +0 -1
  298. package/src/img/mapsight-ui/loading.svg +0 -1
  299. package/src/img/mapsight-ui/map.svg +0 -1
  300. package/src/img/mapsight-ui/measure-distance.svg +0 -7
  301. package/src/img/mapsight-ui/open-list.svg +0 -1
  302. package/src/img/mapsight-ui/place-marker.svg +0 -4
  303. package/src/img/mapsight-ui/print.svg +0 -4
  304. package/src/img/mapsight-ui/reset-active.svg +0 -1
  305. package/src/img/mapsight-ui/reset.svg +0 -1
  306. package/src/img/mapsight-ui/search.svg +0 -1
  307. package/src/img/mapsight-ui/sharing.svg +0 -7
  308. package/src/img/mapsight-ui/sort-active.svg +0 -1
  309. package/src/img/mapsight-ui/sort.svg +0 -1
  310. package/src/img/mapsight-ui/watermark.svg +0 -1
  311. package/src/img/mapsight-ui/zoom-in.svg +0 -3
  312. package/src/img/mapsight-ui/zoom-out.svg +0 -3
  313. package/src/js/components/app.tsx +0 -232
  314. package/src/js/components/close-overlay-button.tsx +0 -27
  315. package/src/js/components/feature-details-content/feature-details-content-inner.tsx +0 -116
  316. package/src/js/components/feature-details-content/feature-details-content.jsx +0 -185
  317. package/src/js/components/feature-details-content/index.js +0 -16
  318. package/src/js/components/feature-details-content/share-feature-link-modal.jsx +0 -56
  319. package/src/js/components/feature-list/content.jsx +0 -42
  320. package/src/js/components/feature-list/context.tsx +0 -47
  321. package/src/js/components/feature-list/empty-message.jsx +0 -15
  322. package/src/js/components/feature-list/filter.jsx +0 -35
  323. package/src/js/components/feature-list/footer.jsx +0 -5
  324. package/src/js/components/feature-list/grouped-content.jsx +0 -74
  325. package/src/js/components/feature-list/header.jsx +0 -7
  326. package/src/js/components/feature-list/hooks/useAutoloadFeatureSource.ts +0 -25
  327. package/src/js/components/feature-list/hooks/useFeatureListFeatureSource.ts +0 -22
  328. package/src/js/components/feature-list/hooks/useFeatureListItemGroups.ts +0 -127
  329. package/src/js/components/feature-list/hooks/useFeatureListState.ts +0 -98
  330. package/src/js/components/feature-list/hooks/useKeyboardNavigation.js +0 -112
  331. package/src/js/components/feature-list/hooks/useMakeHeaderSticky.js +0 -40
  332. package/src/js/components/feature-list/hooks/usePaginatedFilteredFeatures.ts +0 -129
  333. package/src/js/components/feature-list/hooks/useRestoreDocumentScroll.js +0 -12
  334. package/src/js/components/feature-list/hooks/useSelectFeature.js +0 -88
  335. package/src/js/components/feature-list/index.jsx +0 -278
  336. package/src/js/components/feature-list/pagination.tsx +0 -57
  337. package/src/js/components/feature-list/query-input.jsx +0 -14
  338. package/src/js/components/feature-list-cycling/button.jsx +0 -13
  339. package/src/js/components/feature-list-cycling/dot.jsx +0 -43
  340. package/src/js/components/feature-list-cycling/feature-list-cycling.jsx +0 -153
  341. package/src/js/components/feature-list-cycling/index.js +0 -82
  342. package/src/js/components/feature-list-item/head.jsx +0 -131
  343. package/src/js/components/feature-list-item/hooks/useFeatureListItemScrollAndFocus.js +0 -51
  344. package/src/js/components/feature-list-item/hooks/useFeatureListItemState.ts +0 -75
  345. package/src/js/components/feature-list-item/icon.jsx +0 -35
  346. package/src/js/components/feature-list-item/index.jsx +0 -168
  347. package/src/js/components/feature-list-sorting/feature-list-sorting.tsx +0 -144
  348. package/src/js/components/feature-list-sorting/index.js +0 -22
  349. package/src/js/components/feature-list-sorting/status-indicator.jsx +0 -10
  350. package/src/js/components/feature-select-button.jsx +0 -70
  351. package/src/js/components/feature-selection-info/close-button.jsx +0 -64
  352. package/src/js/components/feature-selection-info/container.jsx +0 -9
  353. package/src/js/components/feature-selection-info/header.tsx +0 -27
  354. package/src/js/components/feature-selection-info/index.tsx +0 -81
  355. package/src/js/components/feature-selection-info/with-sticky-header.tsx +0 -76
  356. package/src/js/components/feature-selection-info/without-sticky-header.jsx +0 -19
  357. package/src/js/components/feature-selection-info/wrapper.jsx +0 -43
  358. package/src/js/components/helping/app-channel.tsx +0 -99
  359. package/src/js/components/helping/app-context.tsx +0 -32
  360. package/src/js/components/helping/visibility-wrapper.jsx +0 -23
  361. package/src/js/components/instance.tsx +0 -48
  362. package/src/js/components/layer-switcher/GroupedLayerSwitcher.js +0 -47
  363. package/src/js/components/layer-switcher/LayerSwitcher.ts +0 -34
  364. package/src/js/components/layer-switcher/LayerSwitcherContainer.tsx +0 -88
  365. package/src/js/components/layer-switcher/LayerSwitcherEntry.ts +0 -152
  366. package/src/js/components/layer-switcher/index.ts +0 -42
  367. package/src/js/components/layout/additional-container/content.jsx +0 -10
  368. package/src/js/components/layout/additional-container/index.jsx +0 -5
  369. package/src/js/components/layout/additional-container/marginal.jsx +0 -10
  370. package/src/js/components/layout/main-container.jsx +0 -5
  371. package/src/js/components/layout/map-row.jsx +0 -5
  372. package/src/js/components/layout/title-bar.tsx +0 -25
  373. package/src/js/components/layout/wrapper.jsx +0 -28
  374. package/src/js/components/link-share.jsx +0 -78
  375. package/src/js/components/main-panel/container.tsx +0 -23
  376. package/src/js/components/main-panel/context.tsx +0 -71
  377. package/src/js/components/main-panel/index.tsx +0 -46
  378. package/src/js/components/main-panel/list-toggle-button.jsx +0 -43
  379. package/src/js/components/map-overlay/area.jsx +0 -17
  380. package/src/js/components/map-overlay/attribution-entries.tsx +0 -33
  381. package/src/js/components/map-overlay/attribution.tsx +0 -25
  382. package/src/js/components/map-overlay/combined-buttons.jsx +0 -5
  383. package/src/js/components/map-overlay/index.jsx +0 -5
  384. package/src/js/components/map-overlay/info-overlay-left.jsx +0 -51
  385. package/src/js/components/map-overlay/info-overlay-modal.tsx +0 -49
  386. package/src/js/components/map-overlay/info-overlay-right.jsx +0 -46
  387. package/src/js/components/map-overlay/layer-switcher-overlay.tsx +0 -100
  388. package/src/js/components/map-overlay/legend.tsx +0 -22
  389. package/src/js/components/map-overlay/logo.jsx +0 -11
  390. package/src/js/components/map-overlay/measure-distance-button.tsx +0 -116
  391. package/src/js/components/map-overlay/measure-distance-overlay.jsx +0 -56
  392. package/src/js/components/map-overlay/mini-legend.jsx +0 -103
  393. package/src/js/components/map-overlay/region-selector.jsx +0 -63
  394. package/src/js/components/map-overlay/search-overlay.jsx +0 -79
  395. package/src/js/components/map-overlay/share-position-link-button.tsx +0 -144
  396. package/src/js/components/map-overlay/tool-overlay.tsx +0 -28
  397. package/src/js/components/map-overlay/user-geo-location-button.jsx +0 -89
  398. package/src/js/components/map-overlay/zoom-button.jsx +0 -98
  399. package/src/js/components/map-overlay/zoom-buttons.jsx +0 -26
  400. package/src/js/components/map-synced-interlay/index.ts +0 -15
  401. package/src/js/components/map-synced-interlay/map-synced-interlay.jsx +0 -22
  402. package/src/js/components/map-synced-interlay/tooltip-content.tsx +0 -22
  403. package/src/js/components/map-synced-interlay/tooltip.tsx +0 -199
  404. package/src/js/components/map-wrapper.tsx +0 -65
  405. package/src/js/components/map.tsx +0 -55
  406. package/src/js/components/modal.tsx +0 -40
  407. package/src/js/components/query-input-with-label.tsx +0 -71
  408. package/src/js/components/query-input.tsx +0 -81
  409. package/src/js/components/search/index.jsx +0 -83
  410. package/src/js/components/search/query-input.jsx +0 -20
  411. package/src/js/components/search/result-entry.jsx +0 -63
  412. package/src/js/components/search/result.jsx +0 -71
  413. package/src/js/components/switcher/GroupedSwitcher.jsx +0 -42
  414. package/src/js/components/switcher/Switcher.jsx +0 -54
  415. package/src/js/components/switcher/SwitcherButton.jsx +0 -23
  416. package/src/js/components/switcher/SwitcherEntry.tsx +0 -164
  417. package/src/js/components/switcher/SwitcherHeader.jsx +0 -58
  418. package/src/js/components/switcher/SwitcherStatusIcon.jsx +0 -36
  419. package/src/js/components/tag-switcher/TagSwitcher.tsx +0 -56
  420. package/src/js/components/tag-switcher/createTagSwitcherEntry.ts +0 -39
  421. package/src/js/components/tag-switcher/createTagSwitcherHeader.ts +0 -47
  422. package/src/js/components/tag-switcher/index.ts +0 -17
  423. package/src/js/components/time-filter.jsx +0 -187
  424. package/src/js/components/view-toggle-button/desktop-button.jsx +0 -13
  425. package/src/js/components/view-toggle-button/index.ts +0 -42
  426. package/src/js/components/view-toggle-button/mobile-button.tsx +0 -13
  427. package/src/js/components/view-toggle-button/view-toggle-button.jsx +0 -74
  428. package/src/js/components/view-toggle-button/viewport-button.tsx +0 -13
  429. package/src/js/config/constants/app.ts +0 -16
  430. package/src/js/config/constants/controllers.ts +0 -11
  431. package/src/js/config/feature/selections.ts +0 -13
  432. package/src/js/config/feature/sources.ts +0 -77
  433. package/src/js/config/index.ts +0 -133
  434. package/src/js/config/map/featureInteractions.ts +0 -53
  435. package/src/js/config/map/interactions.ts +0 -15
  436. package/src/js/config/map/layers.ts +0 -190
  437. package/src/js/controllers/defaults.ts +0 -36
  438. package/src/js/embed/browser.ts +0 -89
  439. package/src/js/embed/node.ts +0 -57
  440. package/src/js/filters/tag-filter.ts +0 -135
  441. package/src/js/filters/time-filter.ts +0 -53
  442. package/src/js/helpers/components.ts +0 -66
  443. package/src/js/helpers/create-action-watcher.ts +0 -35
  444. package/src/js/helpers/events.ts +0 -11
  445. package/src/js/helpers/get-feature-property.ts +0 -14
  446. package/src/js/helpers/i18n/de.ts +0 -145
  447. package/src/js/helpers/i18n/en.ts +0 -140
  448. package/src/js/helpers/i18n/index.ts +0 -41
  449. package/src/js/helpers/makeReplaceableComponent.ts +0 -0
  450. package/src/js/helpers/mod-classes.ts +0 -47
  451. package/src/js/helpers/react.ts +0 -14
  452. package/src/js/helpers/scroll-to-element-top.ts +0 -16
  453. package/src/js/helpers/sort-features-by-distance.ts +0 -102
  454. package/src/js/helpers/sticky.js +0 -143
  455. package/src/js/hooks/useCallbackRef.ts +0 -14
  456. package/src/js/hooks/useControllableState.ts +0 -50
  457. package/src/js/hooks/useDebounce.ts +0 -32
  458. package/src/js/hooks/useHandleEscapeKeyDown.ts +0 -27
  459. package/src/js/hooks/useMapsightPanel.ts +0 -40
  460. package/src/js/hooks/useMountable.ts +0 -47
  461. package/src/js/hooks/usePrevious.ts +0 -15
  462. package/src/js/hooks/useStickyHeader.ts +0 -50
  463. package/src/js/hooks/useUpdateMapSizeCallback.ts +0 -32
  464. package/src/js/hooks/useUpdateMapSizeOnRender.ts +0 -16
  465. package/src/js/hooks/useUpdateMapSizeOnTransitionEnd.ts +0 -40
  466. package/src/js/hooks/useUpdateMapSizeOnViewChange.ts +0 -36
  467. package/src/js/index.ts +0 -320
  468. package/src/js/plugins/browser/app-title.ts +0 -36
  469. package/src/js/plugins/browser/debug.ts +0 -37
  470. package/src/js/plugins/browser/feature-deep-link.ts +0 -223
  471. package/src/js/plugins/browser/local-storage.ts +0 -79
  472. package/src/js/plugins/browser/native-fullscreen.ts +0 -81
  473. package/src/js/plugins/browser/no-scroll.ts +0 -91
  474. package/src/js/plugins/browser/partial-content-changed-event.ts +0 -23
  475. package/src/js/plugins/browser/piwik-track-feature-selection-event.ts +0 -75
  476. package/src/js/plugins/browser/piwik-track-fullscreen-toggle-event.ts +0 -46
  477. package/src/js/plugins/browser/search.ts +0 -42
  478. package/src/js/plugins/browser/share-position-link.ts +0 -463
  479. package/src/js/plugins/browser/toggle-mobile-views.ts +0 -60
  480. package/src/js/plugins/browser/user-geolocation.ts +0 -142
  481. package/src/js/plugins/browser/views.ts +0 -141
  482. package/src/js/plugins/browser-defaults.ts +0 -101
  483. package/src/js/plugins/common/feature-selection-details-url.ts +0 -135
  484. package/src/js/plugins/common/lang.ts +0 -17
  485. package/src/js/plugins/common/measure-distance.ts +0 -223
  486. package/src/js/plugins/common/ol-proxy.ts +0 -68
  487. package/src/js/plugins/common/render-await-feature-details-loaded.ts +0 -154
  488. package/src/js/plugins/common/render-await-list-feature-sources-loaded.ts +0 -109
  489. package/src/js/plugins/server/feature-deep-link.ts +0 -67
  490. package/src/js/plugins/server-defaults.ts +0 -36
  491. package/src/js/renderer/browser-dom.tsx +0 -27
  492. package/src/js/renderer/server-string.tsx +0 -17
  493. package/src/js/server-handler.js +0 -39
  494. package/src/js/store/actions.ts +0 -662
  495. package/src/js/store/reducers.ts +0 -491
  496. package/src/js/store/selectors.ts +0 -483
  497. package/src/js/types.ts +0 -405
@@ -1,483 +0,0 @@
1
- import type {Selector} from "@reduxjs/toolkit";
2
- import {createSelector} from "@reduxjs/toolkit";
3
-
4
- import type {
5
- FeatureSelectionId,
6
- FeatureSelectionsState,
7
- } from "@mapsight/core/lib/feature-selections/selectors";
8
- import {
9
- createFeatureSelectionSelector,
10
- getFilteredFeatures,
11
- } from "@mapsight/core/lib/feature-selections/selectors";
12
- import {
13
- createTagsWithCountFromFeatureSourceSelector,
14
- findFeatureInFeatureSourcesById,
15
- mapFeaturesToFeatureSource,
16
- } from "@mapsight/core/lib/feature-sources/selectors";
17
- import type {
18
- FeatureSourceState,
19
- FeatureSourcesState,
20
- } from "@mapsight/core/lib/feature-sources/types";
21
- import {
22
- createListFeatureSelector,
23
- featureSourceIdSelector,
24
- } from "@mapsight/core/lib/list/selectors";
25
- import type {ListState} from "@mapsight/core/lib/list/types";
26
- import {visibleLayersWithMiniLegendsSelector} from "@mapsight/core/lib/map/selectors";
27
- import type {MapState} from "@mapsight/core/lib/map/types";
28
- import type {UserGeolocationState} from "@mapsight/core/lib/user-geolocation/selectors";
29
- import type {State} from "@mapsight/core/types";
30
-
31
- import type {MapsightUiPlacesData} from "../components/feature-list-sorting/feature-list-sorting";
32
- import type {View} from "../config/constants/app";
33
- import {
34
- DETAILS_CONTENT_STATE_KEY,
35
- VIEW_FULLSCREEN,
36
- VIEW_MAP_ONLY,
37
- VIEW_MOBILE,
38
- } from "../config/constants/app";
39
- import {
40
- FEATURE_LIST,
41
- FEATURE_SELECTIONS,
42
- FEATURE_SOURCES,
43
- MAP,
44
- TAG_FILTER,
45
- USER_GEOLOCATION,
46
- } from "../config/constants/controllers";
47
- import {
48
- FEATURE_SELECTION_HIGHLIGHT,
49
- FEATURE_SELECTION_PRESELECT,
50
- FEATURE_SELECTION_SELECT,
51
- } from "../config/feature/selections";
52
- import type {
53
- FetchTextState,
54
- FullUiState,
55
- LayerSwitcherConfigState,
56
- MainPanelContentType,
57
- MainPanelContextOptions,
58
- MapsightUiFeature,
59
- RegionState,
60
- UiState,
61
- } from "../types";
62
- import {
63
- FETCH_JSON_STATUS_ERROR,
64
- FETCH_JSON_STATUS_LOADING,
65
- FETCH_JSON_STATUS_SUCCESS,
66
- FETCH_TEXT_STATUS_ERROR,
67
- FETCH_TEXT_STATUS_SUCCESS,
68
- } from "./actions";
69
-
70
- type SEARCH_STATUS =
71
- | typeof SEARCH_STATUS_INACTIVE
72
- | typeof SEARCH_STATUS_EMPTY
73
- | typeof SEARCH_STATUS_FOUND
74
- | typeof SEARCH_STATUS_LOADING
75
- | typeof SEARCH_STATUS_ERROR;
76
-
77
- export const SEARCH_STATUS_INACTIVE = "inactive";
78
- export const SEARCH_STATUS_EMPTY = "empty";
79
- export const SEARCH_STATUS_FOUND = "found";
80
- export const SEARCH_STATUS_LOADING = "loading";
81
- export const SEARCH_STATUS_ERROR = "error";
82
-
83
- export type RootStateSlice = {
84
- app: UiState;
85
- [TAG_FILTER]: {
86
- featureSourceId: string;
87
- visibleTags: {
88
- [tagGroup: string]: {
89
- [tag: string]: boolean;
90
- };
91
- };
92
- visibleTagGroups: {
93
- [tagGroup: string]: boolean;
94
- };
95
- };
96
- };
97
-
98
- export const viewSelector = (state: RootStateSlice) => state.app.view!;
99
-
100
- export const isViewFullscreen = (view: View) => view === VIEW_FULLSCREEN;
101
-
102
- /**
103
- * returns `true` if view is "mobile" or "mapOnly"
104
- */
105
- export const isViewMobile = (view: View | undefined) =>
106
- view === VIEW_MOBILE || view === VIEW_MAP_ONLY;
107
-
108
- export const isViewMapOnly = (view: View) => view === VIEW_MAP_ONLY;
109
-
110
- export const isViewMobileOrMapOnlySelector: Selector<RootStateSlice, boolean> =
111
- createSelector(viewSelector, isViewMobile);
112
- export const isViewMapOnlySelector: Selector<RootStateSlice, boolean> =
113
- createSelector(viewSelector, isViewMapOnly);
114
- export const isFullscreenSelector: Selector<RootStateSlice, boolean> =
115
- createSelector(viewSelector, isViewFullscreen);
116
-
117
- export const mapVisible = (state: RootStateSlice) =>
118
- state.app.map?.show ?? false;
119
- export const listVisible = (state: RootStateSlice) =>
120
- state.app.list?.show ?? false;
121
- export const timeFilterVisible = (state: RootStateSlice) =>
122
- state.app.timeFilter?.show ?? false;
123
-
124
- export const mapAndListVisible: Selector<RootStateSlice, boolean> =
125
- createSelector(
126
- [mapVisible, listVisible],
127
- (map, list) => map !== undefined && list !== undefined,
128
- );
129
-
130
- export const viewBreakpointsSelector = (state: RootStateSlice) =>
131
- state.app.viewBreakpoints;
132
-
133
- export const titleSelector = (state: RootStateSlice) => state.app.title;
134
- export const isMapOutOfViewportSelector = (state: RootStateSlice) =>
135
- state.app.mapIsOutOfViewport;
136
-
137
- export const regionsSelector = (state: RootStateSlice) => state.app.regions;
138
-
139
- export const placesSelector = (state: RootStateSlice): MapsightUiPlacesData =>
140
- state.app.places as MapsightUiPlacesData;
141
-
142
- export const lastListScrollPositionSelector = (state: RootStateSlice) =>
143
- state.app.lastListScrollPosition;
144
- export const listSortingSelector = (state: RootStateSlice) =>
145
- state.app.listSorting;
146
- export const listQuerySelector = (state: RootStateSlice) => state.app.listQuery;
147
- export const listPageSelector = (state: RootStateSlice) =>
148
- state.app.listPage || 0;
149
-
150
- const placesWithGeoLocationSelector: Selector<
151
- RootStateSlice,
152
- MapsightUiPlacesData
153
- > = createSelector(
154
- [
155
- (state: State) => state[USER_GEOLOCATION] as UserGeolocationState,
156
- placesSelector,
157
- ],
158
- (userGeolocation, places) =>
159
- userGeolocation.longitude && userGeolocation.latitude
160
- ? {
161
- ...places,
162
- geolocation: {
163
- title: "",
164
- x: userGeolocation.longitude,
165
- y: userGeolocation.latitude,
166
- },
167
- }
168
- : places
169
- ? places
170
- : {},
171
- );
172
-
173
- export const listFilterOptionsSelector = (state: RootStateSlice) => ({
174
- query: listQuerySelector(state),
175
- sorting: listSortingSelector(state),
176
- places: placesWithGeoLocationSelector(state),
177
- });
178
-
179
- export const searchQuerySelector = (state: RootStateSlice) =>
180
- state.app.searchQuery;
181
- export const searchResultSelector = (state: RootStateSlice) =>
182
- state.app.searchResult;
183
- export const getSearchResultStatus = (
184
- searchResult?: FullUiState["searchResult"],
185
- ) => searchResult?.status;
186
-
187
- const getSearchResultFeatures = (searchResult?: FullUiState["searchResult"]) =>
188
- (searchResult?.data?.features ?? []) as MapsightUiFeature[];
189
- export const searchResultFeaturesSelector: Selector<
190
- RootStateSlice,
191
- MapsightUiFeature[]
192
- > = createSelector(searchResultSelector, getSearchResultFeatures);
193
-
194
- export const haveSearchInMapSelector = (state: RootStateSlice) =>
195
- state.app.searchInMap;
196
- export const isEmbeddedMapSelector = (state: RootStateSlice) =>
197
- state.app.embeddedMap;
198
-
199
- export const listUiOptionsSelector = (state: RootStateSlice) =>
200
- state.app.list || {};
201
- export const listUiOptionDetailsSelector = (state: RootStateSlice) =>
202
- state.app.list?.detailsInList;
203
- export const listUiOptionIntegratedSelector = (state: RootStateSlice) =>
204
- state.app.list?.integratedList;
205
- export const listUiOptionSelectedOnlySelector = (state: RootStateSlice) =>
206
- state.app.list?.showSelectedOnly;
207
-
208
- export const listUiOptionSelectionBehaviorSelector = (state: RootStateSlice) =>
209
- state.app.list?.selectionBehavior || {};
210
-
211
- export const listUiScrollToItemOnPreselectSelector = (state: RootStateSlice) =>
212
- state.app.list?.scrollToItemOnPreselect === true;
213
-
214
- export const listUiOptionSelectionSelectionSelector = (state: RootStateSlice) =>
215
- state.app.list?.selectionBehaviorSelection || FEATURE_SELECTION_SELECT;
216
- export const listUiOptionsShowVaryingInfoOnlySelector = (
217
- state: RootStateSlice,
218
- ) => state.app.list?.showVaryingListInfoOnly;
219
-
220
- export const layerSwitcherShowInternalSelector = (state: RootStateSlice) =>
221
- state.app.layerSwitcher?.show?.internal;
222
- export const layerSwitcherShowExternalSelector = (state: RootStateSlice) =>
223
- state.app.layerSwitcher?.show?.external;
224
- export const layerSwitcherConfigInternalSelector = (state: RootStateSlice) =>
225
- state.app.layerSwitcher?.internal as LayerSwitcherConfigState | undefined;
226
- export const layerSwitcherConfigExternalSelector = (state: RootStateSlice) =>
227
- state.app.layerSwitcher?.external as LayerSwitcherConfigState | undefined;
228
-
229
- export const pageTitleShowSelector = (state: RootStateSlice) =>
230
- state.app.pageTitle?.show ?? false;
231
-
232
- export const tagSwitcherShowSelector = (state: RootStateSlice) =>
233
- state.app.tagSwitcher?.show ?? false;
234
- export const tagSwitcherToggleableGroups = (state: RootStateSlice) =>
235
- state.app.tagSwitcher?.toggleableGroups;
236
- export const tagSwitcherSortTags = (state: RootStateSlice) =>
237
- state.app.tagSwitcher?.sortTags;
238
- export const tagSwitcherFeatureSourceIdSelector = (state: RootStateSlice) =>
239
- state.app.tagSwitcher?.featureSourceId;
240
- export const tagSwitcherFeatureSourcesControllerNameSelector = (
241
- state: RootStateSlice,
242
- ) => state.app.tagSwitcher?.featureSourcesControllerName;
243
- export const tagSwitcherTagsSelector = (state: RootStateSlice) => {
244
- const controllerName =
245
- tagSwitcherFeatureSourcesControllerNameSelector(state);
246
- const featureSourceId = tagSwitcherFeatureSourceIdSelector(state);
247
- if (!controllerName || !featureSourceId) {
248
- return {};
249
- }
250
-
251
- return createTagsWithCountFromFeatureSourceSelector(
252
- controllerName,
253
- featureSourceId,
254
- )(state);
255
- };
256
-
257
- export const viewToggleShowSelector = (state: RootStateSlice) =>
258
- state.app.viewToggle?.show;
259
- export const viewToggleOptionsSelector = (state: RootStateSlice) =>
260
- state.app.viewToggle;
261
-
262
- export const searchStatusSelector: Selector<RootStateSlice, SEARCH_STATUS> =
263
- createSelector(
264
- searchResultSelector,
265
- searchQuerySelector,
266
- createSelector(
267
- getSearchResultStatus,
268
- getSearchResultFeatures,
269
- (_: unknown, query: string | undefined) => !!query,
270
- (
271
- status: FullUiState["searchResult"]["status"],
272
- features: MapsightUiFeature[],
273
- hasQuery: boolean,
274
- ) => {
275
- switch (status) {
276
- case FETCH_JSON_STATUS_ERROR:
277
- return SEARCH_STATUS_ERROR;
278
- case FETCH_JSON_STATUS_LOADING:
279
- return SEARCH_STATUS_LOADING;
280
- case FETCH_JSON_STATUS_SUCCESS:
281
- return hasQuery
282
- ? features.length
283
- ? SEARCH_STATUS_FOUND
284
- : SEARCH_STATUS_EMPTY
285
- : SEARCH_STATUS_INACTIVE;
286
- }
287
- },
288
- ) as Selector<
289
- FullUiState["searchResult"],
290
- SEARCH_STATUS,
291
- [string | undefined]
292
- >,
293
- );
294
- export const userPreferenceListVisibleSelector = (state: RootStateSlice) =>
295
- state.app.userPreferenceListVisible;
296
-
297
- export const searchResultSelectionFeaturesSelector = (state: RootStateSlice) =>
298
- state.app.searchResultSelectionFeatures;
299
- export const searchResultSelectionFeatureSourceSelector: Selector<
300
- RootStateSlice,
301
- FeatureSourceState
302
- > = createSelector(
303
- searchResultSelectionFeaturesSelector,
304
- mapFeaturesToFeatureSource<MapsightUiFeature>,
305
- );
306
-
307
- export const featureDetailsSelector = (state: RootStateSlice) =>
308
- state.app[DETAILS_CONTENT_STATE_KEY] as FetchTextState;
309
- export const featureDetailsUrlSelector = (state: RootStateSlice) =>
310
- (state.app[DETAILS_CONTENT_STATE_KEY] as FetchTextState)?.url;
311
-
312
- export const featureDetailsHasErrorSelector: Selector<RootStateSlice, boolean> =
313
- createSelector(featureDetailsSelector, (detailsContent) =>
314
- detailsContent
315
- ? detailsContent.status === FETCH_TEXT_STATUS_ERROR
316
- : false,
317
- );
318
-
319
- export const featureDetailsHtmlSelector: Selector<
320
- RootStateSlice,
321
- string | null
322
- > = createSelector(featureDetailsSelector, (detailsContent) =>
323
- detailsContent?.status === FETCH_TEXT_STATUS_SUCCESS
324
- ? detailsContent.data
325
- : null,
326
- );
327
-
328
- export const createTagVisibleSelector =
329
- (featureSourceId: string, tagGroup: string, tag: string) =>
330
- (state: RootStateSlice) =>
331
- !!state[TAG_FILTER]?.visibleTags?.[featureSourceId]?.[tagGroup]?.[tag];
332
-
333
- export const createTagGroupVisibleSelector =
334
- (featureSourceId: string, tagGroup: string) => (state: RootStateSlice) =>
335
- !!state[TAG_FILTER]?.visibleTagGroups?.[featureSourceId]?.[tagGroup];
336
-
337
- export const isOverlayModalVisibleSelector = (state: RootStateSlice) =>
338
- state.app.isOverlayModalVisible === true;
339
-
340
- export const selectedRegionIdSelector = (state: RootStateSlice) =>
341
- state.app.selectedRegion || null;
342
-
343
- export const selectedRegionSelector: Selector<
344
- RootStateSlice,
345
- RegionState | null
346
- > = createSelector(selectedRegionIdSelector, regionsSelector, (id, regions) =>
347
- id !== null && regions !== undefined ? (regions[id] as RegionState) : null,
348
- );
349
-
350
- export const miniLegendLayerIdSelector: Selector<
351
- RootStateSlice,
352
- string | null
353
- > = createSelector(
354
- (state: RootStateSlice) =>
355
- visibleLayersWithMiniLegendsSelector(state[MAP] as MapState),
356
- (state: RootStateSlice) => state.app.miniLegendLayer,
357
- (visibleLayers, layerId) => {
358
- // no layers visible => return early
359
- if (!visibleLayers) {
360
- return null;
361
- }
362
-
363
- const visibleLayerIds = Object.keys(visibleLayers);
364
-
365
- // layer is defined and visible?
366
- if (layerId && visibleLayerIds.includes(layerId)) {
367
- return layerId;
368
- }
369
-
370
- // otherwise, default to first visible layer
371
- return visibleLayerIds[0] || null;
372
- },
373
- );
374
-
375
- export const selectedFeatureSelector: Selector<
376
- State,
377
- MapsightUiFeature | null
378
- > = createSelector(
379
- (state: State) =>
380
- (state[FEATURE_SELECTIONS] as FeatureSelectionsState)[
381
- FEATURE_SELECTION_SELECT
382
- ],
383
- (state: State) => state[FEATURE_SOURCES] as FeatureSourcesState,
384
- function getFeature(featureSelection, featureSources) {
385
- const features = getFilteredFeatures(featureSelection);
386
- const featureId = features && features[0];
387
- return featureId
388
- ? (findFeatureInFeatureSourcesById(
389
- featureSources,
390
- featureId,
391
- ) as MapsightUiFeature | null)
392
- : null;
393
- },
394
- );
395
-
396
- type MainPanelState = {
397
- feature: MapsightUiFeature | null;
398
- contentType: MainPanelContentType | null;
399
- collapsed: boolean;
400
- };
401
-
402
- export const createMainPanelContentTypeSelector = (
403
- options: Pick<
404
- MainPanelContextOptions,
405
- "showSelectionInfo" | "showList" | "collapsible"
406
- >,
407
- ): Selector<State, MainPanelState> =>
408
- createSelector(
409
- selectedFeatureSelector,
410
- userPreferenceListVisibleSelector,
411
- function getMainPanelState(feature, userPreferenceListVisible) {
412
- const {showSelectionInfo, showList, collapsible} = options;
413
-
414
- let contentType: MainPanelContentType = null;
415
- if (showSelectionInfo && feature) {
416
- contentType = "selectionInfo";
417
- } else if (showList) {
418
- contentType = "list";
419
- }
420
-
421
- return {
422
- feature: feature,
423
- contentType: contentType,
424
- collapsed:
425
- contentType === null ||
426
- (contentType === "list" &&
427
- collapsible &&
428
- !userPreferenceListVisible),
429
- } as const;
430
- },
431
- );
432
-
433
- export const createSelectionIndexSelector = (
434
- featureIds: Array<string>,
435
- targetSelection: FeatureSelectionId,
436
- ): Selector<State, number> =>
437
- createSelector(
438
- (state: State) =>
439
- (state[FEATURE_SELECTIONS] as FeatureSelectionsState)[
440
- targetSelection
441
- ]?.features,
442
- (selection) =>
443
- featureIds?.length && selection?.length
444
- ? featureIds.indexOf(selection[0]!)
445
- : -1,
446
- );
447
-
448
- export const featureSelectionInfoUiOptionsSelector = (state: RootStateSlice) =>
449
- state.app.featureSelectionInfo || {};
450
-
451
- export const selectSelectionSelector = createFeatureSelectionSelector(
452
- FEATURE_SELECTIONS,
453
- FEATURE_SELECTION_SELECT,
454
- );
455
- export const preselectSelectionSelector = createFeatureSelectionSelector(
456
- FEATURE_SELECTIONS,
457
- FEATURE_SELECTION_PRESELECT,
458
- );
459
- export const highlightSelectionSelector = createFeatureSelectionSelector(
460
- FEATURE_SELECTIONS,
461
- FEATURE_SELECTION_HIGHLIGHT,
462
- );
463
-
464
- export const createFeatureSourceSelector = (
465
- listControllerName = FEATURE_LIST,
466
- ): Selector<
467
- RootStateSlice,
468
- {featureSourceId?: string; featureSource?: FeatureSourceState}
469
- > => {
470
- const listFeatureSourceIdSelector = createSelector(
471
- (state: State) => state[listControllerName] as ListState,
472
- featureSourceIdSelector,
473
- );
474
- const listFeatureSourceSelector = createListFeatureSelector(
475
- listControllerName,
476
- FEATURE_SOURCES,
477
- );
478
-
479
- return (state) => ({
480
- featureSourceId: listFeatureSourceIdSelector(state),
481
- featureSource: listFeatureSourceSelector(state),
482
- });
483
- };