@mapsight/ui 7.0.3 → 7.1.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 (325) hide show
  1. package/dist/components/app.d.ts +2 -2
  2. package/dist/components/app.d.ts.map +1 -1
  3. package/dist/components/app.js +7 -7
  4. package/dist/components/app.js.map +1 -1
  5. package/dist/components/feature-details-content/feature-details-content.js +2 -2
  6. package/dist/components/feature-details-content/feature-details-content.js.map +1 -1
  7. package/dist/components/feature-details-content/index.d.ts +3 -5
  8. package/dist/components/feature-details-content/index.js +6 -7
  9. package/dist/components/feature-details-content/index.js.map +1 -1
  10. package/dist/components/feature-list/filter.js +2 -2
  11. package/dist/components/feature-list/filter.js.map +1 -1
  12. package/dist/components/feature-list/hooks/useFeatureListState.d.ts.map +1 -1
  13. package/dist/components/feature-list/hooks/useFeatureListState.js +7 -2
  14. package/dist/components/feature-list/hooks/useFeatureListState.js.map +1 -1
  15. package/dist/components/feature-list/hooks/useRestoreDocumentScroll.js +1 -1
  16. package/dist/components/feature-list/hooks/useRestoreDocumentScroll.js.map +1 -1
  17. package/dist/components/feature-list/hooks/useSelectFeature.js +6 -6
  18. package/dist/components/feature-list/hooks/useSelectFeature.js.map +1 -1
  19. package/dist/components/feature-list/index.js +4 -4
  20. package/dist/components/feature-list/index.js.map +1 -1
  21. package/dist/components/feature-list-cycling/index.d.ts +3 -5
  22. package/dist/components/feature-list-cycling/index.js +1 -1
  23. package/dist/components/feature-list-cycling/index.js.map +1 -1
  24. package/dist/components/feature-list-sorting/index.d.ts +4 -16
  25. package/dist/components/feature-list-sorting/index.d.ts.map +1 -1
  26. package/dist/components/feature-list-sorting/index.js +6 -7
  27. package/dist/components/feature-list-sorting/index.js.map +1 -1
  28. package/dist/components/feature-selection-info/index.js +2 -2
  29. package/dist/components/feature-selection-info/index.js.map +1 -1
  30. package/dist/components/feature-selection-info/with-sticky-header.d.ts +10 -7
  31. package/dist/components/feature-selection-info/with-sticky-header.d.ts.map +1 -1
  32. package/dist/components/feature-selection-info/with-sticky-header.js +4 -4
  33. package/dist/components/feature-selection-info/with-sticky-header.js.map +1 -1
  34. package/dist/components/helping/app-context.d.ts +1 -1
  35. package/dist/components/helping/app-context.d.ts.map +1 -1
  36. package/dist/components/layer-switcher/GroupedLayerSwitcher.js +1 -1
  37. package/dist/components/layer-switcher/GroupedLayerSwitcher.js.map +1 -1
  38. package/dist/components/layer-switcher/LayerSwitcher.d.ts +12 -11
  39. package/dist/components/layer-switcher/LayerSwitcher.d.ts.map +1 -1
  40. package/dist/components/layer-switcher/LayerSwitcher.js +1 -1
  41. package/dist/components/layer-switcher/LayerSwitcher.js.map +1 -1
  42. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts +15 -0
  43. package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts.map +1 -0
  44. package/dist/components/layer-switcher/{LayerSwticherContainer.js → LayerSwitcherContainer.js} +5 -9
  45. package/dist/components/layer-switcher/LayerSwitcherContainer.js.map +1 -0
  46. package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts +28 -12
  47. package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts.map +1 -1
  48. package/dist/components/layer-switcher/LayerSwitcherEntry.js +33 -35
  49. package/dist/components/layer-switcher/LayerSwitcherEntry.js.map +1 -1
  50. package/dist/components/layer-switcher/index.d.ts +9 -2
  51. package/dist/components/layer-switcher/index.d.ts.map +1 -1
  52. package/dist/components/layer-switcher/index.js +12 -21
  53. package/dist/components/layer-switcher/index.js.map +1 -1
  54. package/dist/components/layout/wrapper.js +1 -1
  55. package/dist/components/layout/wrapper.js.map +1 -1
  56. package/dist/components/main-panel/context.d.ts +6 -5
  57. package/dist/components/main-panel/context.d.ts.map +1 -1
  58. package/dist/components/main-panel/context.js +5 -13
  59. package/dist/components/main-panel/context.js.map +1 -1
  60. package/dist/components/main-panel/list-toggle-button.js +2 -2
  61. package/dist/components/main-panel/list-toggle-button.js.map +1 -1
  62. package/dist/components/map-overlay/attribution.js +1 -1
  63. package/dist/components/map-overlay/attribution.js.map +1 -1
  64. package/dist/components/map-overlay/info-overlay-left.js +2 -2
  65. package/dist/components/map-overlay/info-overlay-left.js.map +1 -1
  66. package/dist/components/map-overlay/info-overlay-right.js +2 -2
  67. package/dist/components/map-overlay/info-overlay-right.js.map +1 -1
  68. package/dist/components/map-overlay/legend.js +1 -1
  69. package/dist/components/map-overlay/legend.js.map +1 -1
  70. package/dist/components/map-overlay/measure-distance-button.js +1 -1
  71. package/dist/components/map-overlay/measure-distance-button.js.map +1 -1
  72. package/dist/components/map-overlay/mini-legend.js +2 -2
  73. package/dist/components/map-overlay/mini-legend.js.map +1 -1
  74. package/dist/components/map-overlay/region-selector.js +2 -2
  75. package/dist/components/map-overlay/region-selector.js.map +1 -1
  76. package/dist/components/map-overlay/search-overlay.js +1 -1
  77. package/dist/components/map-overlay/search-overlay.js.map +1 -1
  78. package/dist/components/map-overlay/share-position-link-button.js +1 -1
  79. package/dist/components/map-overlay/share-position-link-button.js.map +1 -1
  80. package/dist/components/map-synced-interlay/index.d.ts +2 -5
  81. package/dist/components/map-synced-interlay/index.d.ts.map +1 -1
  82. package/dist/components/map-synced-interlay/index.js +5 -6
  83. package/dist/components/map-synced-interlay/index.js.map +1 -1
  84. package/dist/components/map-synced-interlay/map-synced-interlay.js +1 -1
  85. package/dist/components/map-synced-interlay/map-synced-interlay.js.map +1 -1
  86. package/dist/components/map-synced-interlay/tooltip.js +1 -1
  87. package/dist/components/map-synced-interlay/tooltip.js.map +1 -1
  88. package/dist/components/map.d.ts +6 -5
  89. package/dist/components/map.d.ts.map +1 -1
  90. package/dist/components/map.js +15 -5
  91. package/dist/components/map.js.map +1 -1
  92. package/dist/components/search/index.js +2 -2
  93. package/dist/components/search/index.js.map +1 -1
  94. package/dist/components/search/result-entry.js +1 -1
  95. package/dist/components/search/result-entry.js.map +1 -1
  96. package/dist/components/search/result.js +1 -1
  97. package/dist/components/search/result.js.map +1 -1
  98. package/dist/components/switcher/SwitcherEntry.d.ts +21 -3
  99. package/dist/components/switcher/SwitcherEntry.d.ts.map +1 -1
  100. package/dist/components/switcher/SwitcherEntry.js +8 -9
  101. package/dist/components/switcher/SwitcherEntry.js.map +1 -1
  102. package/dist/components/tag-switcher/TagSwitcher.d.ts +2 -2
  103. package/dist/components/tag-switcher/TagSwitcher.d.ts.map +1 -1
  104. package/dist/components/tag-switcher/TagSwitcher.js.map +1 -1
  105. package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts +13 -11
  106. package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts.map +1 -1
  107. package/dist/components/tag-switcher/createTagSwitcherEntry.js +6 -12
  108. package/dist/components/tag-switcher/createTagSwitcherEntry.js.map +1 -1
  109. package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts +12 -10
  110. package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts.map +1 -1
  111. package/dist/components/tag-switcher/createTagSwitcherHeader.js +5 -5
  112. package/dist/components/tag-switcher/createTagSwitcherHeader.js.map +1 -1
  113. package/dist/components/tag-switcher/index.d.ts +2 -5
  114. package/dist/components/tag-switcher/index.d.ts.map +1 -1
  115. package/dist/components/tag-switcher/index.js +6 -7
  116. package/dist/components/tag-switcher/index.js.map +1 -1
  117. package/dist/components/view-toggle-button/index.d.ts +6 -5
  118. package/dist/components/view-toggle-button/index.d.ts.map +1 -1
  119. package/dist/components/view-toggle-button/index.js +8 -8
  120. package/dist/components/view-toggle-button/index.js.map +1 -1
  121. package/dist/components/view-toggle-button/mobile-button.d.ts +1 -1
  122. package/dist/components/view-toggle-button/mobile-button.d.ts.map +1 -1
  123. package/dist/components/view-toggle-button/mobile-button.js.map +1 -1
  124. package/dist/components/view-toggle-button/view-toggle-button.js +1 -1
  125. package/dist/components/view-toggle-button/view-toggle-button.js.map +1 -1
  126. package/dist/components/view-toggle-button/viewport-button.d.ts +1 -1
  127. package/dist/components/view-toggle-button/viewport-button.d.ts.map +1 -1
  128. package/dist/components/view-toggle-button/viewport-button.js.map +1 -1
  129. package/dist/helpers/components.d.ts +1 -1
  130. package/dist/helpers/components.d.ts.map +1 -1
  131. package/dist/helpers/create-action-watcher.d.ts +1 -1
  132. package/dist/helpers/create-action-watcher.d.ts.map +1 -1
  133. package/dist/helpers/create-action-watcher.js +1 -1
  134. package/dist/helpers/create-action-watcher.js.map +1 -1
  135. package/dist/hooks/useMountable.d.ts +2 -2
  136. package/dist/hooks/useMountable.d.ts.map +1 -1
  137. package/dist/hooks/useMountable.js +6 -0
  138. package/dist/hooks/useMountable.js.map +1 -1
  139. package/dist/hooks/useStickyHeader.d.ts +3 -3
  140. package/dist/hooks/useStickyHeader.d.ts.map +1 -1
  141. package/dist/hooks/useStickyHeader.js +3 -3
  142. package/dist/hooks/useStickyHeader.js.map +1 -1
  143. package/dist/hooks/useUpdateMapSizeCallback.d.ts +1 -1
  144. package/dist/hooks/useUpdateMapSizeCallback.d.ts.map +1 -1
  145. package/dist/hooks/useUpdateMapSizeOnRender.d.ts +1 -1
  146. package/dist/hooks/useUpdateMapSizeOnRender.d.ts.map +1 -1
  147. package/dist/hooks/useUpdateMapSizeOnTransitionEnd.d.ts +1 -1
  148. package/dist/hooks/useUpdateMapSizeOnTransitionEnd.d.ts.map +1 -1
  149. package/dist/hooks/useUpdateMapSizeOnViewChange.d.ts +1 -1
  150. package/dist/hooks/useUpdateMapSizeOnViewChange.d.ts.map +1 -1
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +4 -3
  153. package/dist/index.js.map +1 -1
  154. package/dist/plugins/browser/app-title.d.ts +1 -1
  155. package/dist/plugins/browser/app-title.d.ts.map +1 -1
  156. package/dist/plugins/browser/feature-deep-link.d.ts +1 -1
  157. package/dist/plugins/browser/feature-deep-link.d.ts.map +1 -1
  158. package/dist/plugins/browser/feature-deep-link.js.map +1 -1
  159. package/dist/plugins/browser/local-storage.d.ts +1 -1
  160. package/dist/plugins/browser/local-storage.d.ts.map +1 -1
  161. package/dist/plugins/browser/native-fullscreen.d.ts +2 -2
  162. package/dist/plugins/browser/native-fullscreen.d.ts.map +1 -1
  163. package/dist/plugins/browser/no-scroll.d.ts +3 -4
  164. package/dist/plugins/browser/no-scroll.d.ts.map +1 -1
  165. package/dist/plugins/browser/no-scroll.js.map +1 -1
  166. package/dist/plugins/browser/partial-content-changed-event.d.ts +1 -1
  167. package/dist/plugins/browser/partial-content-changed-event.d.ts.map +1 -1
  168. package/dist/plugins/browser/piwik-track-feature-selection-event.d.ts +1 -1
  169. package/dist/plugins/browser/piwik-track-feature-selection-event.d.ts.map +1 -1
  170. package/dist/plugins/browser/piwik-track-fullscreen-toggle-event.d.ts +1 -1
  171. package/dist/plugins/browser/piwik-track-fullscreen-toggle-event.d.ts.map +1 -1
  172. package/dist/plugins/browser/search.d.ts +1 -1
  173. package/dist/plugins/browser/search.d.ts.map +1 -1
  174. package/dist/plugins/browser/share-position-link.d.ts +1 -1
  175. package/dist/plugins/browser/share-position-link.d.ts.map +1 -1
  176. package/dist/plugins/browser/share-position-link.js +1 -1
  177. package/dist/plugins/browser/share-position-link.js.map +1 -1
  178. package/dist/plugins/browser/toggle-mobile-views.d.ts +1 -1
  179. package/dist/plugins/browser/toggle-mobile-views.d.ts.map +1 -1
  180. package/dist/plugins/browser/user-geolocation.d.ts +1 -1
  181. package/dist/plugins/browser/user-geolocation.d.ts.map +1 -1
  182. package/dist/plugins/browser/user-geolocation.js +7 -6
  183. package/dist/plugins/browser/user-geolocation.js.map +1 -1
  184. package/dist/plugins/browser/views.d.ts +1 -1
  185. package/dist/plugins/browser/views.d.ts.map +1 -1
  186. package/dist/plugins/browser-defaults.d.ts +13 -13
  187. package/dist/plugins/browser-defaults.d.ts.map +1 -1
  188. package/dist/plugins/browser-defaults.js +13 -13
  189. package/dist/plugins/browser-defaults.js.map +1 -1
  190. package/dist/plugins/common/feature-selection-details-url.d.ts +1 -1
  191. package/dist/plugins/common/feature-selection-details-url.d.ts.map +1 -1
  192. package/dist/plugins/common/measure-distance.d.ts +1 -1
  193. package/dist/plugins/common/measure-distance.d.ts.map +1 -1
  194. package/dist/plugins/common/measure-distance.js +1 -1
  195. package/dist/plugins/common/measure-distance.js.map +1 -1
  196. package/dist/plugins/common/ol-proxy.d.ts +1 -1
  197. package/dist/plugins/common/ol-proxy.d.ts.map +1 -1
  198. package/dist/plugins/common/render-await-feature-details-loaded.d.ts +1 -1
  199. package/dist/plugins/common/render-await-feature-details-loaded.d.ts.map +1 -1
  200. package/dist/plugins/common/render-await-feature-details-loaded.js +2 -1
  201. package/dist/plugins/common/render-await-feature-details-loaded.js.map +1 -1
  202. package/dist/plugins/common/render-await-list-feature-sources-loaded.d.ts +1 -1
  203. package/dist/plugins/common/render-await-list-feature-sources-loaded.d.ts.map +1 -1
  204. package/dist/plugins/common/render-await-list-feature-sources-loaded.js +2 -1
  205. package/dist/plugins/common/render-await-list-feature-sources-loaded.js.map +1 -1
  206. package/dist/plugins/server/feature-deep-link.d.ts +1 -1
  207. package/dist/plugins/server/feature-deep-link.d.ts.map +1 -1
  208. package/dist/plugins/server-defaults.d.ts +4 -4
  209. package/dist/plugins/server-defaults.d.ts.map +1 -1
  210. package/dist/plugins/server-defaults.js +4 -4
  211. package/dist/plugins/server-defaults.js.map +1 -1
  212. package/dist/renderer/browser-dom.d.ts.map +1 -1
  213. package/dist/renderer/browser-dom.js +6 -2
  214. package/dist/renderer/browser-dom.js.map +1 -1
  215. package/dist/renderer/server-string.js +2 -2
  216. package/dist/renderer/server-string.js.map +1 -1
  217. package/dist/store/actions.d.ts +4 -2
  218. package/dist/store/actions.d.ts.map +1 -1
  219. package/dist/store/actions.js +1 -1
  220. package/dist/store/actions.js.map +1 -1
  221. package/dist/store/reducers.d.ts +222 -9
  222. package/dist/store/reducers.d.ts.map +1 -1
  223. package/dist/store/reducers.js +1 -1
  224. package/dist/store/reducers.js.map +1 -1
  225. package/dist/store/selectors.d.ts +274 -243
  226. package/dist/store/selectors.d.ts.map +1 -1
  227. package/dist/store/selectors.js +49 -68
  228. package/dist/store/selectors.js.map +1 -1
  229. package/dist/types.d.ts +50 -35
  230. package/dist/types.d.ts.map +1 -1
  231. package/package.json +7 -8
  232. package/src/js/components/{app.jsx → app.tsx} +9 -14
  233. package/src/js/components/feature-details-content/feature-details-content.jsx +2 -2
  234. package/src/js/components/feature-details-content/index.js +7 -11
  235. package/src/js/components/feature-list/filter.jsx +2 -2
  236. package/src/js/components/feature-list/hooks/useAutoloadFeatureSource.ts +1 -1
  237. package/src/js/components/feature-list/hooks/useFeatureListState.ts +17 -9
  238. package/src/js/components/feature-list/hooks/useRestoreDocumentScroll.js +1 -1
  239. package/src/js/components/feature-list/hooks/useSelectFeature.js +6 -6
  240. package/src/js/components/feature-list/index.jsx +4 -4
  241. package/src/js/components/feature-list-cycling/index.js +1 -1
  242. package/src/js/components/feature-list-sorting/index.js +6 -9
  243. package/src/js/components/feature-selection-info/index.tsx +3 -3
  244. package/src/js/components/feature-selection-info/{with-sticky-header.jsx → with-sticky-header.tsx} +23 -8
  245. package/src/js/components/helping/app-context.tsx +1 -1
  246. package/src/js/components/layer-switcher/GroupedLayerSwitcher.js +1 -1
  247. package/src/js/components/layer-switcher/{LayerSwitcher.js → LayerSwitcher.ts} +11 -4
  248. package/src/js/components/layer-switcher/{LayerSwticherContainer.jsx → LayerSwitcherContainer.tsx} +22 -14
  249. package/src/js/components/layer-switcher/LayerSwitcherEntry.ts +152 -0
  250. package/src/js/components/layer-switcher/index.ts +42 -0
  251. package/src/js/components/layout/wrapper.jsx +1 -1
  252. package/src/js/components/main-panel/context.tsx +71 -0
  253. package/src/js/components/main-panel/list-toggle-button.jsx +2 -2
  254. package/src/js/components/map-overlay/attribution.tsx +1 -1
  255. package/src/js/components/map-overlay/info-overlay-left.jsx +2 -2
  256. package/src/js/components/map-overlay/info-overlay-right.jsx +2 -2
  257. package/src/js/components/map-overlay/legend.tsx +1 -1
  258. package/src/js/components/map-overlay/measure-distance-button.tsx +1 -1
  259. package/src/js/components/map-overlay/mini-legend.jsx +2 -2
  260. package/src/js/components/map-overlay/region-selector.jsx +2 -2
  261. package/src/js/components/map-overlay/search-overlay.jsx +1 -1
  262. package/src/js/components/map-overlay/share-position-link-button.tsx +1 -1
  263. package/src/js/components/map-synced-interlay/index.ts +15 -0
  264. package/src/js/components/map-synced-interlay/map-synced-interlay.jsx +1 -1
  265. package/src/js/components/map-synced-interlay/tooltip.tsx +1 -1
  266. package/src/js/components/map.tsx +55 -0
  267. package/src/js/components/search/index.jsx +2 -2
  268. package/src/js/components/search/result-entry.jsx +1 -1
  269. package/src/js/components/search/result.jsx +1 -1
  270. package/src/js/components/switcher/{SwitcherEntry.jsx → SwitcherEntry.tsx} +47 -26
  271. package/src/js/components/tag-switcher/{TagSwitcher.jsx → TagSwitcher.tsx} +1 -2
  272. package/src/js/components/tag-switcher/{createTagSwitcherEntry.js → createTagSwitcherEntry.ts} +14 -16
  273. package/src/js/components/tag-switcher/createTagSwitcherHeader.ts +47 -0
  274. package/src/js/components/tag-switcher/index.ts +17 -0
  275. package/src/js/components/view-toggle-button/{index.js → index.ts} +13 -10
  276. package/src/js/components/view-toggle-button/view-toggle-button.jsx +1 -1
  277. package/src/js/helpers/components.ts +1 -1
  278. package/src/js/helpers/create-action-watcher.ts +3 -3
  279. package/src/js/hooks/useMountable.ts +10 -1
  280. package/src/js/hooks/useStickyHeader.ts +7 -8
  281. package/src/js/hooks/useUpdateMapSizeCallback.ts +1 -1
  282. package/src/js/hooks/useUpdateMapSizeOnRender.ts +1 -1
  283. package/src/js/hooks/useUpdateMapSizeOnTransitionEnd.ts +1 -1
  284. package/src/js/hooks/useUpdateMapSizeOnViewChange.ts +1 -1
  285. package/src/js/index.ts +4 -3
  286. package/src/js/plugins/browser/app-title.ts +1 -1
  287. package/src/js/plugins/browser/feature-deep-link.ts +4 -3
  288. package/src/js/plugins/browser/local-storage.ts +1 -1
  289. package/src/js/plugins/browser/native-fullscreen.ts +2 -2
  290. package/src/js/plugins/browser/no-scroll.ts +3 -2
  291. package/src/js/plugins/browser/partial-content-changed-event.ts +1 -1
  292. package/src/js/plugins/browser/piwik-track-feature-selection-event.ts +1 -1
  293. package/src/js/plugins/browser/piwik-track-fullscreen-toggle-event.ts +1 -1
  294. package/src/js/plugins/browser/search.ts +1 -1
  295. package/src/js/plugins/browser/share-position-link.ts +2 -2
  296. package/src/js/plugins/browser/toggle-mobile-views.ts +1 -1
  297. package/src/js/plugins/browser/user-geolocation.ts +20 -12
  298. package/src/js/plugins/browser/views.ts +1 -1
  299. package/src/js/plugins/browser-defaults.ts +14 -14
  300. package/src/js/plugins/common/feature-selection-details-url.ts +1 -1
  301. package/src/js/plugins/common/measure-distance.ts +4 -4
  302. package/src/js/plugins/common/ol-proxy.ts +1 -1
  303. package/src/js/plugins/common/render-await-feature-details-loaded.ts +3 -2
  304. package/src/js/plugins/common/render-await-list-feature-sources-loaded.ts +3 -2
  305. package/src/js/plugins/server/feature-deep-link.ts +1 -1
  306. package/src/js/plugins/server-defaults.ts +5 -5
  307. package/src/js/renderer/browser-dom.tsx +8 -4
  308. package/src/js/renderer/server-string.tsx +2 -2
  309. package/src/js/store/actions.ts +24 -10
  310. package/src/js/store/reducers.ts +3 -3
  311. package/src/js/store/selectors.ts +192 -158
  312. package/src/js/types.ts +65 -41
  313. package/dist/components/layer-switcher/LayerSwticherContainer.d.ts +0 -4
  314. package/dist/components/layer-switcher/LayerSwticherContainer.d.ts.map +0 -1
  315. package/dist/components/layer-switcher/LayerSwticherContainer.js.map +0 -1
  316. package/src/js/components/layer-switcher/LayerSwitcherEntry.js +0 -132
  317. package/src/js/components/layer-switcher/index.js +0 -47
  318. package/src/js/components/main-panel/context.jsx +0 -62
  319. package/src/js/components/map-synced-interlay/index.js +0 -17
  320. package/src/js/components/map.jsx +0 -37
  321. package/src/js/components/tag-switcher/createTagSwitcherHeader.js +0 -34
  322. package/src/js/components/tag-switcher/index.js +0 -20
  323. package/src/js/global.d.ts +0 -7
  324. /package/src/js/components/view-toggle-button/{mobile-button.jsx → mobile-button.tsx} +0 -0
  325. /package/src/js/components/view-toggle-button/{viewport-button.jsx → viewport-button.tsx} +0 -0
@@ -1,4 +1,5 @@
1
- import {createSelector, createStructuredSelector} from "reselect";
1
+ import type {Selector} from "@reduxjs/toolkit";
2
+ import {createSelector} from "@reduxjs/toolkit";
2
3
 
3
4
  import type {
4
5
  FeatureSelectionId,
@@ -13,7 +14,10 @@ import {
13
14
  findFeatureInFeatureSourcesById,
14
15
  mapFeaturesToFeatureSource,
15
16
  } from "@mapsight/core/lib/feature-sources/selectors";
16
- import type {FeatureSourcesState} from "@mapsight/core/lib/feature-sources/types";
17
+ import type {
18
+ FeatureSourceState,
19
+ FeatureSourcesState,
20
+ } from "@mapsight/core/lib/feature-sources/types";
17
21
  import {
18
22
  createListFeatureSelector,
19
23
  featureSourceIdSelector,
@@ -24,9 +28,7 @@ import type {MapState} from "@mapsight/core/lib/map/types";
24
28
  import type {UserGeolocationState} from "@mapsight/core/lib/user-geolocation/selectors";
25
29
  import type {State} from "@mapsight/core/types";
26
30
 
27
- import getPath from "@mapsight/lib-js/object/getPath";
28
-
29
- import type {MapsightUiPlacesData} from "../components/feature-list-sorting/feature-list-sorting.tsx";
31
+ import type {MapsightUiPlacesData} from "../components/feature-list-sorting/feature-list-sorting";
30
32
  import type {View} from "../config/constants/app";
31
33
  import {
32
34
  DETAILS_CONTENT_STATE_KEY,
@@ -48,19 +50,29 @@ import {
48
50
  FEATURE_SELECTION_SELECT,
49
51
  } from "../config/feature/selections";
50
52
  import type {
53
+ FetchTextState,
51
54
  FullUiState,
55
+ LayerSwitcherConfigState,
52
56
  MainPanelContentType,
53
57
  MainPanelContextOptions,
54
58
  MapsightUiFeature,
59
+ RegionState,
55
60
  UiState,
56
- } from "../types.ts";
61
+ } from "../types";
57
62
  import {
58
63
  FETCH_JSON_STATUS_ERROR,
59
64
  FETCH_JSON_STATUS_LOADING,
60
65
  FETCH_JSON_STATUS_SUCCESS,
61
66
  FETCH_TEXT_STATUS_ERROR,
62
67
  FETCH_TEXT_STATUS_SUCCESS,
63
- } from "./actions.ts";
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;
64
76
 
65
77
  export const SEARCH_STATUS_INACTIVE = "inactive";
66
78
  export const SEARCH_STATUS_EMPTY = "empty";
@@ -68,8 +80,19 @@ export const SEARCH_STATUS_FOUND = "found";
68
80
  export const SEARCH_STATUS_LOADING = "loading";
69
81
  export const SEARCH_STATUS_ERROR = "error";
70
82
 
71
- type RootStateSlice = {
83
+ export type RootStateSlice = {
72
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
+ };
73
96
  };
74
97
 
75
98
  export const viewSelector = (state: RootStateSlice) => state.app.view!;
@@ -84,28 +107,25 @@ export const isViewMobile = (view: View | undefined) =>
84
107
 
85
108
  export const isViewMapOnly = (view: View) => view === VIEW_MAP_ONLY;
86
109
 
87
- export const isViewMobileOrMapOnlySelector = createSelector(
88
- viewSelector,
89
- isViewMobile,
90
- );
91
- export const isViewMapOnlySelector = createSelector(
92
- viewSelector,
93
- isViewMapOnly,
94
- );
95
- export const isFullscreenSelector = createSelector(
96
- viewSelector,
97
- isViewFullscreen,
98
- );
99
-
100
- export const mapVisible = (state: RootStateSlice) => state.app.map?.show;
101
- export const listVisible = (state: RootStateSlice) => state.app.list?.show;
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;
102
121
  export const timeFilterVisible = (state: RootStateSlice) =>
103
- state.app.timeFilter?.show;
122
+ state.app.timeFilter?.show ?? false;
104
123
 
105
- export const mapAndListVisible = createSelector(
106
- [mapVisible, listVisible],
107
- (map, list) => map && list,
108
- );
124
+ export const mapAndListVisible: Selector<RootStateSlice, boolean> =
125
+ createSelector(
126
+ [mapVisible, listVisible],
127
+ (map, list) => map !== undefined && list !== undefined,
128
+ );
109
129
 
110
130
  export const viewBreakpointsSelector = (state: RootStateSlice) =>
111
131
  state.app.viewBreakpoints;
@@ -126,45 +146,50 @@ export const listSortingSelector = (state: RootStateSlice) =>
126
146
  export const listQuerySelector = (state: RootStateSlice) => state.app.listQuery;
127
147
  export const listPageSelector = (state: RootStateSlice) =>
128
148
  state.app.listPage || 0;
129
- export const listFilterOptionsSelector = createStructuredSelector({
130
- query: listQuerySelector,
131
- sorting: listSortingSelector,
132
- places: createSelector(
133
- [
134
- (state: State) => state[USER_GEOLOCATION] as UserGeolocationState,
135
- placesSelector,
136
- ],
137
- (userGeolocation, places): MapsightUiPlacesData => {
138
- return userGeolocation.longitude && userGeolocation.latitude
139
- ? {
140
- ...places,
141
- geolocation: {
142
- title: "",
143
- x: userGeolocation.longitude,
144
- y: userGeolocation.latitude,
145
- },
146
- }
147
- : places
148
- ? places
149
- : {};
150
- },
151
- ),
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),
152
177
  });
153
178
 
154
179
  export const searchQuerySelector = (state: RootStateSlice) =>
155
180
  state.app.searchQuery;
156
181
  export const searchResultSelector = (state: RootStateSlice) =>
157
- getPath(state, ["app", "searchResult"]);
182
+ state.app.searchResult;
158
183
  export const getSearchResultStatus = (
159
184
  searchResult?: FullUiState["searchResult"],
160
185
  ) => searchResult?.status;
161
- export const getSearchResultFeatures = (
162
- searchResult?: FullUiState["searchResult"],
163
- ) => getPath(searchResult, ["data", "features"], []) as MapsightUiFeature[];
164
- export const searchResultFeaturesSelector = createSelector(
165
- searchResultSelector,
166
- getSearchResultFeatures,
167
- );
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);
168
193
 
169
194
  export const haveSearchInMapSelector = (state: RootStateSlice) =>
170
195
  state.app.searchInMap;
@@ -197,15 +222,15 @@ export const layerSwitcherShowInternalSelector = (state: RootStateSlice) =>
197
222
  export const layerSwitcherShowExternalSelector = (state: RootStateSlice) =>
198
223
  state.app.layerSwitcher?.show?.external;
199
224
  export const layerSwitcherConfigInternalSelector = (state: RootStateSlice) =>
200
- state.app.layerSwitcher?.internal;
225
+ state.app.layerSwitcher?.internal as LayerSwitcherConfigState | undefined;
201
226
  export const layerSwitcherConfigExternalSelector = (state: RootStateSlice) =>
202
- state.app.layerSwitcher?.external;
227
+ state.app.layerSwitcher?.external as LayerSwitcherConfigState | undefined;
203
228
 
204
229
  export const pageTitleShowSelector = (state: RootStateSlice) =>
205
- state.app.pageTitle?.show;
230
+ state.app.pageTitle?.show ?? false;
206
231
 
207
232
  export const tagSwitcherShowSelector = (state: RootStateSlice) =>
208
- state.app.tagSwitcher?.show;
233
+ state.app.tagSwitcher?.show ?? false;
209
234
  export const tagSwitcherToggleableGroups = (state: RootStateSlice) =>
210
235
  state.app.tagSwitcher?.toggleableGroups;
211
236
  export const tagSwitcherSortTags = (state: RootStateSlice) =>
@@ -234,76 +259,80 @@ export const viewToggleShowSelector = (state: RootStateSlice) =>
234
259
  export const viewToggleOptionsSelector = (state: RootStateSlice) =>
235
260
  state.app.viewToggle;
236
261
 
237
- export const searchStatusSelector = createSelector(
238
- searchResultSelector,
239
- searchQuerySelector,
262
+ export const searchStatusSelector: Selector<RootStateSlice, SEARCH_STATUS> =
240
263
  createSelector(
241
- getSearchResultStatus,
242
- getSearchResultFeatures,
243
- (_, query) => !!query,
244
- (status, features: MapsightUiFeature[], hasQuery: boolean) => {
245
- switch (status) {
246
- case FETCH_JSON_STATUS_ERROR:
247
- return SEARCH_STATUS_ERROR;
248
- case FETCH_JSON_STATUS_LOADING:
249
- return SEARCH_STATUS_LOADING;
250
- case FETCH_JSON_STATUS_SUCCESS:
251
- return hasQuery
252
- ? features.length
253
- ? SEARCH_STATUS_FOUND
254
- : SEARCH_STATUS_EMPTY
255
- : SEARCH_STATUS_INACTIVE;
256
- }
257
- },
258
- ),
259
- );
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
+ );
260
294
  export const userPreferenceListVisibleSelector = (state: RootStateSlice) =>
261
295
  state.app.userPreferenceListVisible;
262
296
 
263
297
  export const searchResultSelectionFeaturesSelector = (state: RootStateSlice) =>
264
298
  state.app.searchResultSelectionFeatures;
265
- export const searchResultSelectionFeatureSourceSelector = createSelector(
299
+ export const searchResultSelectionFeatureSourceSelector: Selector<
300
+ RootStateSlice,
301
+ FeatureSourceState
302
+ > = createSelector(
266
303
  searchResultSelectionFeaturesSelector,
267
304
  mapFeaturesToFeatureSource<MapsightUiFeature>,
268
305
  );
269
306
 
270
307
  export const featureDetailsSelector = (state: RootStateSlice) =>
271
- state.app[DETAILS_CONTENT_STATE_KEY];
308
+ state.app[DETAILS_CONTENT_STATE_KEY] as FetchTextState;
272
309
  export const featureDetailsUrlSelector = (state: RootStateSlice) =>
273
- state.app[DETAILS_CONTENT_STATE_KEY]?.url;
310
+ (state.app[DETAILS_CONTENT_STATE_KEY] as FetchTextState)?.url;
274
311
 
275
- export const featureDetailsHasErrorSelector = createSelector(
276
- featureDetailsSelector,
277
- (detailsContent) =>
278
- detailsContent && detailsContent.status === FETCH_TEXT_STATUS_ERROR,
279
- );
312
+ export const featureDetailsHasErrorSelector: Selector<RootStateSlice, boolean> =
313
+ createSelector(featureDetailsSelector, (detailsContent) =>
314
+ detailsContent
315
+ ? detailsContent.status === FETCH_TEXT_STATUS_ERROR
316
+ : false,
317
+ );
280
318
 
281
- export const featureDetailsHtmlSelector = createSelector(
282
- featureDetailsSelector,
283
- (detailsContent) =>
284
- detailsContent?.status === FETCH_TEXT_STATUS_SUCCESS
285
- ? detailsContent.data
286
- : null,
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,
287
326
  );
288
327
 
289
328
  export const createTagVisibleSelector =
290
- (featureSourceId, tagGroup, tag) => (state) =>
291
- !!getPath(state, [
292
- TAG_FILTER,
293
- "visibleTags",
294
- featureSourceId,
295
- tagGroup,
296
- tag,
297
- ]);
329
+ (featureSourceId: string, tagGroup: string, tag: string) =>
330
+ (state: RootStateSlice) =>
331
+ !!state[TAG_FILTER]?.visibleTags?.[featureSourceId]?.[tagGroup]?.[tag];
298
332
 
299
333
  export const createTagGroupVisibleSelector =
300
- (featureSourceId, tagGroup) => (state) =>
301
- !!getPath(state, [
302
- TAG_FILTER,
303
- "visibleTagGroups",
304
- featureSourceId,
305
- tagGroup,
306
- ]);
334
+ (featureSourceId: string, tagGroup: string) => (state: RootStateSlice) =>
335
+ !!state[TAG_FILTER]?.visibleTagGroups?.[featureSourceId]?.[tagGroup];
307
336
 
308
337
  export const isOverlayModalVisibleSelector = (state: RootStateSlice) =>
309
338
  state.app.isOverlayModalVisible === true;
@@ -311,14 +340,18 @@ export const isOverlayModalVisibleSelector = (state: RootStateSlice) =>
311
340
  export const selectedRegionIdSelector = (state: RootStateSlice) =>
312
341
  state.app.selectedRegion || null;
313
342
 
314
- export const selectedRegionSelector = createSelector(
315
- selectedRegionIdSelector,
316
- regionsSelector,
317
- (id, regions) => (id && regions && regions[id]) || null,
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,
318
348
  );
319
349
 
320
- export const miniLegendLayerIdSelector = createSelector(
321
- (state: State) =>
350
+ export const miniLegendLayerIdSelector: Selector<
351
+ RootStateSlice,
352
+ string | null
353
+ > = createSelector(
354
+ (state: RootStateSlice) =>
322
355
  visibleLayersWithMiniLegendsSelector(state[MAP] as MapState),
323
356
  (state: RootStateSlice) => state.app.miniLegendLayer,
324
357
  (visibleLayers, layerId) => {
@@ -339,7 +372,10 @@ export const miniLegendLayerIdSelector = createSelector(
339
372
  },
340
373
  );
341
374
 
342
- export const selectedFeatureSelector = createSelector(
375
+ export const selectedFeatureSelector: Selector<
376
+ State,
377
+ MapsightUiFeature | null
378
+ > = createSelector(
343
379
  (state: State) =>
344
380
  (state[FEATURE_SELECTIONS] as FeatureSelectionsState)[
345
381
  FEATURE_SELECTION_SELECT
@@ -349,17 +385,26 @@ export const selectedFeatureSelector = createSelector(
349
385
  const features = getFilteredFeatures(featureSelection);
350
386
  const featureId = features && features[0];
351
387
  return featureId
352
- ? findFeatureInFeatureSourcesById(featureSources, featureId)
388
+ ? (findFeatureInFeatureSourcesById(
389
+ featureSources,
390
+ featureId,
391
+ ) as MapsightUiFeature | null)
353
392
  : null;
354
393
  },
355
394
  );
356
395
 
396
+ type MainPanelState = {
397
+ feature: MapsightUiFeature | null;
398
+ contentType: MainPanelContentType | null;
399
+ collapsed: boolean;
400
+ };
401
+
357
402
  export const createMainPanelContentTypeSelector = (
358
403
  options: Pick<
359
404
  MainPanelContextOptions,
360
405
  "showSelectionInfo" | "showList" | "collapsible"
361
406
  >,
362
- ) =>
407
+ ): Selector<State, MainPanelState> =>
363
408
  createSelector(
364
409
  selectedFeatureSelector,
365
410
  userPreferenceListVisibleSelector,
@@ -381,15 +426,15 @@ export const createMainPanelContentTypeSelector = (
381
426
  (contentType === "list" &&
382
427
  collapsible &&
383
428
  !userPreferenceListVisible),
384
- };
429
+ } as const;
385
430
  },
386
431
  );
387
432
 
388
- export function createSelectionIndexSelector(
433
+ export const createSelectionIndexSelector = (
389
434
  featureIds: Array<string>,
390
435
  targetSelection: FeatureSelectionId,
391
- ) {
392
- return createSelector(
436
+ ): Selector<State, number> =>
437
+ createSelector(
393
438
  (state: State) =>
394
439
  (state[FEATURE_SELECTIONS] as FeatureSelectionsState)[
395
440
  targetSelection
@@ -399,51 +444,40 @@ export function createSelectionIndexSelector(
399
444
  ? featureIds.indexOf(selection[0]!)
400
445
  : -1,
401
446
  );
402
- }
403
447
 
404
448
  export const featureSelectionInfoUiOptionsSelector = (state: RootStateSlice) =>
405
449
  state.app.featureSelectionInfo || {};
406
- export const featureSelectionInfoStickyHeaderSelector = createSelector(
407
- featureSelectionInfoUiOptionsSelector,
408
- ({stickyHeader}) => stickyHeader,
409
- );
410
- export const featureSelectionInfoStuckHeaderHeightSelector = createSelector(
411
- featureSelectionInfoUiOptionsSelector,
412
- ({stuckHeaderHeight}) => stuckHeaderHeight,
413
- );
414
450
 
415
- const selectSelectionSelector = createFeatureSelectionSelector(
451
+ export const selectSelectionSelector = createFeatureSelectionSelector(
416
452
  FEATURE_SELECTIONS,
417
453
  FEATURE_SELECTION_SELECT,
418
454
  );
419
- const preselectSelectionSelector = createFeatureSelectionSelector(
455
+ export const preselectSelectionSelector = createFeatureSelectionSelector(
420
456
  FEATURE_SELECTIONS,
421
457
  FEATURE_SELECTION_PRESELECT,
422
458
  );
423
- const highlightSelectionSelector = createFeatureSelectionSelector(
459
+ export const highlightSelectionSelector = createFeatureSelectionSelector(
424
460
  FEATURE_SELECTIONS,
425
461
  FEATURE_SELECTION_HIGHLIGHT,
426
462
  );
427
463
 
428
- export const featureListContextSelector = createStructuredSelector({
429
- tagSwitcherShow: tagSwitcherShowSelector,
430
- layerSwitcherShowExternal: layerSwitcherShowExternalSelector,
431
- scrollPosition: lastListScrollPositionSelector,
432
- selectSelection: selectSelectionSelector,
433
- preselectSelection: preselectSelectionSelector,
434
- highlightSelection: highlightSelectionSelector,
435
- });
436
-
437
464
  export const createFeatureSourceSelector = (
438
465
  listControllerName = FEATURE_LIST,
439
- ) =>
440
- createStructuredSelector({
441
- featureSourceId: createSelector(
442
- (state: State) => state[listControllerName] as ListState,
443
- featureSourceIdSelector,
444
- ),
445
- featureSource: createListFeatureSelector(
446
- listControllerName,
447
- FEATURE_SOURCES,
448
- ),
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),
449
482
  });
483
+ };