@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,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
- };