@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,140 +0,0 @@
1
- import {
2
- STATUS_ERROR,
3
- STATUS_LOADING,
4
- } from "@mapsight/core/lib/feature-sources/selectors";
5
-
6
- import {
7
- STATUS_ACTIVE,
8
- STATUS_INACTIVE,
9
- } from "../../components/switcher/SwitcherEntry";
10
- import {
11
- VIEW_DESKTOP,
12
- VIEW_FULLSCREEN,
13
- VIEW_MAP_ONLY,
14
- VIEW_MOBILE,
15
- ZOOM_IN,
16
- ZOOM_OUT,
17
- } from "../../config/constants/app";
18
-
19
- /* eslint quote-props: 0 */
20
-
21
- const en: Record<string, string> = {
22
- open: "open",
23
- close: "close",
24
- reset: "reset",
25
- show: "show",
26
- from: "from",
27
- nextEntry: "next entry",
28
- prevEntry: "previous entry",
29
-
30
- "ui.query-input.reset": "reset search",
31
-
32
- "ui.feature-details.share-link.head": "share link ...",
33
- "ui.feature-details.share-link.place": "link to choosen location:",
34
- "ui.feature-details.share-link.close": "close dialog to share a link",
35
-
36
- "ui.feature-details.content-inner.error": "error at loading details",
37
- "ui.feature-details.content-inner.gotoPage": "jump to page",
38
- "ui.feature-details.content-inner.loading": "loading details …",
39
-
40
- "ui.main-panel.list-toggle.open": "open list",
41
- "ui.main-panel.list-toggle.close": "close list",
42
-
43
- "ui.feature-list.sorting.byDistance": "sort announcements by distance:",
44
- "ui.feature-list.sorting.choose": "choose your location",
45
- "ui.feature-list.sorting.own": "use device location",
46
- "ui.feature-list.sorting.announcements": "sort announcements …",
47
-
48
- "ui.feature-list.content.noListSelected": "no list selected",
49
- "ui.feature-list.content.noEntries": "no entries in list",
50
- "ui.feature-details.content.title": "title",
51
- "ui.feature-details.content.description": "description",
52
-
53
- "ui.feature-list.query-input.search": "text search in list below",
54
- "ui.feature-list.query-input.placeholder": "search in list …",
55
-
56
- "ui.time-filter.span": "set preview period", // FIXME prüfen
57
-
58
- "ui.search.send": "search",
59
-
60
- "ui.search.result.error": "error at loading search results",
61
- "ui.search.result.empty": "no search results",
62
-
63
- "ui.search.query-input.label": "street or location",
64
- "ui.search.query-input.placeholder": "street or location ...",
65
-
66
- "ui.feature-selection-info.close": "close information dialog",
67
-
68
- "ui.map-overlay.search.open": "open search",
69
- "ui.map-overlay.search.close": "close search",
70
- "ui.map-overlay.search.modal.label": "Search function",
71
- "ui.map-overlay.search.modal.headline": "Search",
72
-
73
- "ui.map-overlay.logo.copyright": "The map is based on Mapsight",
74
-
75
- "ui.map-overlay.info.modal.label": "Citations and Information",
76
- "ui.map-overlay.info.modal.headline": "Citations and Information",
77
- "ui.map-overlay.info.closeSources":
78
- "Close Citations and Information dialog",
79
- "ui.map-overlay.info.legend": "legend",
80
- "ui.map-overlay.info.closeLegend": "close legend",
81
- "ui.map-overlay.info.open":
82
- "open source disclosures and further information",
83
-
84
- "ui.map-overlay.layer-switcher.modal.label": "Layers",
85
- "ui.map-overlay.layer-switcher.layers": "layers",
86
- "ui.map-overlay.layer-switcher.closeLayers": "close layer picker",
87
- "ui.map-overlay.layer-switcher.openLayers": "open layer picker",
88
-
89
- "ui.map.usage.heading": "Keyboard shortcuts for map usage",
90
- "ui.map.usage.html":
91
- '<dl class="ms3-map-usage">' +
92
- '<dt><kbd aria-label="Arrow right">→</kbd></dt><dd>move right</dd>' +
93
- '<dt><kbd aria-label="Arrow left">←</kbd></dt><dd>move left</dd>' +
94
- '<dt><kbd aria-label="Arrow down">↓</kbd></dt><dd>move down</dd>' +
95
- '<dt><kbd aria-label="Arrow up">↑</kbd></dt><dd>move up</dd>' +
96
- "<dt><kbd>+</kbd></dt><dd>zoom in</dd>" +
97
- "<dt><kbd>-</kbd></dt><dd>zoom out</dd>" +
98
- "</dl>",
99
- "ui.map.visuallyhidden": "This part of the page shows a geographical map.",
100
-
101
- [`ui.view-toggle-button.ariaLabel${VIEW_MAP_ONLY}`]: "show map only",
102
- [`ui.view-toggle-button.ariaLabel${VIEW_FULLSCREEN}`]:
103
- "switch to full screen",
104
- [`ui.view-toggle-button.ariaLabel${VIEW_DESKTOP}`]: "close full screen",
105
- [`ui.view-toggle-button.ariaLabel${VIEW_MOBILE}`]: "switch to list",
106
-
107
- [`ui.view-toggle-button.label${VIEW_MAP_ONLY}`]: "map",
108
- [`ui.view-toggle-button.label${VIEW_FULLSCREEN}`]: "full screen",
109
- [`ui.view-toggle-button.label${VIEW_DESKTOP}`]: "full screen",
110
- [`ui.view-toggle-button.label${VIEW_MOBILE}`]: "list",
111
-
112
- [`ui.zoom-button.ariaLabel${ZOOM_OUT}`]: "zoom in",
113
- [`ui.zoom-button.ariaLabel${ZOOM_IN}`]: "zoom out",
114
-
115
- [`ui.zoom-button.label${ZOOM_OUT}`]: "zoom in",
116
- [`ui.zoom-button.label${ZOOM_IN}`]: "zoom out",
117
-
118
- [`ui.switcher.entry.label${STATUS_ERROR}`]: "error at loading",
119
- [`ui.switcher.entry.label${STATUS_LOADING}`]: "loading",
120
- [`ui.switcher.entry.label${STATUS_ACTIVE}`]: "active",
121
- [`ui.switcher.entry.label${STATUS_INACTIVE}`]: "inactive",
122
-
123
- "ui.user-geo-location-button.label": "jump to your location",
124
- "ui.user-geo-location-button.ariaLabel": "jump to your location",
125
-
126
- "ui.pagination.nextPage": ">",
127
- "ui.pagination.prevPage": "<",
128
- "ui.pagination.nextPageLabel": "Go to next page",
129
- "ui.pagination.prevPageLabel": "Go to previous page",
130
- "ui.pagination.goToSelectedPageLabel": "You are on page {page}",
131
- "ui.pagination.goToPageLabel": "Go to page {page}",
132
-
133
- "ui.share-position-link.title": "Share position",
134
- "ui.share-position-link.instructions":
135
- "Click on the map to share a position.",
136
- "ui.share-position-link.shareTitle": "Share marked position",
137
- "ui.share-position-link.shareButtonLabel": "Share marked position",
138
- };
139
-
140
- export default en;
@@ -1,41 +0,0 @@
1
- // TODO: https://www.npmjs.com/package/i18next ?
2
- import de from "./de";
3
- import en from "./en";
4
-
5
- const DEFAULT_LANGUAGE = "de";
6
- let documentLanguage =
7
- (typeof document !== "undefined" &&
8
- document.documentElement &&
9
- document.documentElement.lang) ||
10
- DEFAULT_LANGUAGE;
11
-
12
- const DICTIONARY: Record<string, Record<string, string>> = {de, en};
13
-
14
- // use this to make dictionary expandable/overwritable by clients
15
- export function getDictionary() {
16
- return DICTIONARY;
17
- }
18
-
19
- export function setDocumentLanguage(value) {
20
- documentLanguage = value;
21
- }
22
-
23
- export function getDocumentLanguage() {
24
- return documentLanguage;
25
- }
26
-
27
- /**
28
- * @param key key
29
- * @param language language
30
- * @returns translation
31
- */
32
- export function translate(
33
- key: string,
34
- language: string = documentLanguage,
35
- ): string {
36
- return (
37
- DICTIONARY[language]?.[key] ??
38
- DICTIONARY[DEFAULT_LANGUAGE]?.[key] ??
39
- key
40
- );
41
- }
File without changes
@@ -1,47 +0,0 @@
1
- import {unreachableValue} from "@mapsight/lib-js/unreachable";
2
-
3
- /**
4
- * @param name Name of block or element
5
- * @param mods modifiers
6
- * @returns class string
7
- */
8
- export default function modClasses(
9
- name: string,
10
- mods:
11
- | Record<string, boolean>
12
- | Array<string | false | null | undefined>
13
- | string
14
- | false
15
- | null
16
- | undefined,
17
- ): string {
18
- const modsArr = (() => {
19
- // string to array
20
- if (typeof mods === "string") {
21
- return [mods];
22
- }
23
-
24
- // object to array
25
- if (mods !== null && typeof mods === "object" && !Array.isArray(mods)) {
26
- return Object.entries(mods)
27
- .filter(([_, val]) => val === true)
28
- .map(([key, _]) => key);
29
- }
30
-
31
- if (Array.isArray(mods)) {
32
- return mods.filter(isNotFalsy);
33
- }
34
-
35
- if (mods === null || mods === false || mods === undefined) {
36
- return [];
37
- }
38
-
39
- unreachableValue(mods);
40
- })();
41
-
42
- return [name, ...modsArr.map((mod) => `${name}--${mod}`)].join(" ");
43
- }
44
-
45
- function isNotFalsy<T>(val: T | false | null | undefined): val is T {
46
- return val !== false && val !== null && val !== undefined;
47
- }
@@ -1,14 +0,0 @@
1
- import type {ForwardedRef, RefObject} from "react";
2
-
3
- export function forwardRefValue<T>(
4
- source: RefObject<T>,
5
- dest: ForwardedRef<T>,
6
- ): void {
7
- if (dest !== null) {
8
- if (typeof dest === "function") {
9
- dest(source.current);
10
- } else {
11
- dest.current = source.current;
12
- }
13
- }
14
- }
@@ -1,16 +0,0 @@
1
- export default function scrollToElementTop(
2
- selector: string,
3
- offsetTop: number = 0,
4
- immediate: boolean = false,
5
- ): void {
6
- if (selector && typeof window !== "undefined") {
7
- const element = window.document.querySelector(selector);
8
- if (element) {
9
- window.scrollBy({
10
- left: 0,
11
- top: element.getBoundingClientRect().top - offsetTop,
12
- behavior: !immediate ? "smooth" : "auto",
13
- });
14
- }
15
- }
16
- }
@@ -1,102 +0,0 @@
1
- import {getDistance} from "ol/sphere";
2
-
3
- import type {
4
- MapsightUiPlace,
5
- MapsightUiPlaceGroup,
6
- MapsightUiPlacesData,
7
- } from "../components/feature-list-sorting/feature-list-sorting";
8
- import type {MapsightUiFeature} from "../types";
9
-
10
- /**
11
- * @param feature feature object
12
- * @returns anchor
13
- */
14
- function defaultFeatureAnchorSelector(
15
- feature: MapsightUiFeature,
16
- ): [undefined | null | number, undefined | null | number] {
17
- if (!feature) {
18
- return [null, null];
19
- }
20
-
21
- // TODO: document/collect magic property names
22
- const bbox = feature.bbox;
23
-
24
- const x = bbox && bbox[0] && bbox[2] && (bbox[0] + bbox[2]) / 2;
25
- const y = bbox && bbox[1] && bbox[3] && (bbox[1] + bbox[3]) / 2;
26
-
27
- return [x, y];
28
- }
29
-
30
- /**
31
- * @param sorting sorting state
32
- * @param places places
33
- * @returns place to sort by or null
34
- */
35
- function findPlaceForSorting(
36
- sorting: string,
37
- places: MapsightUiPlacesData,
38
- ): MapsightUiPlace | null {
39
- const sortingKeys = sorting.split(",");
40
-
41
- let placePointer:
42
- | MapsightUiPlacesData
43
- | MapsightUiPlace
44
- | MapsightUiPlaceGroup = places;
45
-
46
- for (const key of sortingKeys) {
47
- if (!placePointer[key]) {
48
- return null;
49
- }
50
-
51
- placePointer = placePointer[key];
52
-
53
- if ("entries" in placePointer) {
54
- placePointer = placePointer.entries;
55
- }
56
- }
57
-
58
- if ("x" in placePointer && "y" in placePointer) {
59
- return placePointer as MapsightUiPlace;
60
- }
61
-
62
- return null;
63
- }
64
-
65
- /**
66
- * sorts features by distance
67
- *
68
- * @param features features
69
- * @param places places
70
- * @param sorting sorting state
71
- * @param settings settings
72
- * @returns sorted features
73
- */
74
- export default function sortFeaturesByDistance(
75
- features: Array<MapsightUiFeature>,
76
- places: MapsightUiPlacesData,
77
- sorting: null | undefined | string,
78
- {
79
- featureAnchorSelector = defaultFeatureAnchorSelector,
80
- }: {
81
- // featureAnchorSelector?(feature: MapsightUiFeature): Array<number>;
82
- featureAnchorSelector?: (feature: MapsightUiFeature) => Array<any>;
83
- } = {},
84
- ): Array<MapsightUiFeature> {
85
- if (!sorting) {
86
- return features;
87
- }
88
-
89
- const placePointer = findPlaceForSorting(sorting, places);
90
- if (placePointer) {
91
- const placeCoords = [placePointer.x, placePointer.y];
92
- return features
93
- .slice()
94
- .sort(
95
- (a, b) =>
96
- getDistance(placeCoords, featureAnchorSelector(a)) -
97
- getDistance(placeCoords, featureAnchorSelector(b)),
98
- );
99
- }
100
-
101
- return features;
102
- }
@@ -1,143 +0,0 @@
1
- const parentClass = "js-sticky-parent";
2
- const willStickClass = "js-will-stick";
3
- const stickyClass = "js-is-sticky";
4
- const stuckClass = "js-is-stuck";
5
-
6
- const DEFAULT_OPTIONS = {
7
- offset: 0,
8
- verticalPosition: "top",
9
- onChange: (_state) => undefined,
10
- };
11
-
12
- function getStickPositionValue() {
13
- const prefix = ["", "-webkit-"];
14
- const test = document.head.style;
15
- for (let i = 0; i < prefix.length; i += 1) {
16
- test.position = `${prefix[i]}sticky`;
17
- }
18
- let stickyProp = "fixed";
19
- if (typeof test.position !== "undefined") {
20
- stickyProp = test.position;
21
- }
22
- test.position = "";
23
- return stickyProp;
24
- }
25
-
26
- export default function makeSticky(
27
- targetElement,
28
- scrollElement = window,
29
- options = {},
30
- ) {
31
- if (typeof window === "undefined") {
32
- return () => undefined;
33
- }
34
-
35
- const positionValue = getStickPositionValue();
36
- const useFixed = positionValue === "fixed";
37
-
38
- options = {...DEFAULT_OPTIONS, ...options};
39
-
40
- let state = "default";
41
-
42
- if (options.verticalPosition === "top") {
43
- targetElement.style[options.verticalPosition] = `${options.offset}px`;
44
- }
45
-
46
- if (!useFixed) {
47
- targetElement.style.position = positionValue;
48
- }
49
-
50
- targetElement.classList.add(willStickClass);
51
-
52
- const isWindow = scrollElement === window;
53
- const delay = (isWindow && window.requestAnimationFrame) || ((f) => f());
54
- const parentElement = targetElement.parentNode;
55
- parentElement.className += ` ${parentClass}`;
56
-
57
- const isFixedWithOffset = !isWindow && positionValue === "fixed";
58
- const scrollElementOffset = isFixedWithOffset
59
- ? scrollElement.getBoundingClientRect().top
60
- : 0;
61
- const offset = scrollElementOffset + options.offset;
62
- const parentOffset = parentElement.getBoundingClientRect().top;
63
- const parentHeight = parentElement.offsetHeight;
64
- const targetHeight = targetElement.offsetHeight;
65
- const stickyStart = parentOffset - scrollElementOffset - offset;
66
- const stickyStop =
67
- parentOffset + parentHeight - scrollElementOffset - targetHeight;
68
- const scrollListener = () => {
69
- const scroll = isWindow
70
- ? window.scrollY || window.pageYOffset
71
- : scrollElement.scrollTop;
72
-
73
- const isBelow = scroll >= stickyStop;
74
- if (isBelow && state === "sticky") {
75
- state = "stuck";
76
-
77
- delay(() => {
78
- targetElement.classList.remove(stickyClass);
79
- targetElement.classList.add(stuckClass);
80
-
81
- if (useFixed) {
82
- targetElement.style.top = "";
83
- targetElement.style.bottom = "0";
84
- targetElement.style.position = "absolute";
85
- }
86
-
87
- options.onChange(state);
88
- });
89
-
90
- return;
91
- }
92
-
93
- const isAbove = scroll <= stickyStart;
94
- if (!isAbove && !isBelow) {
95
- if (state !== "sticky") {
96
- state = "sticky";
97
-
98
- delay(() => {
99
- targetElement.classList.remove(willStickClass);
100
- targetElement.classList.remove(stuckClass);
101
- targetElement.classList.add(stickyClass);
102
- targetElement.style.position = positionValue;
103
- targetElement.style.bottom = "";
104
- targetElement.style[options.verticalPosition] =
105
- `${options.offset}px`;
106
-
107
- options.onChange(state);
108
- });
109
- }
110
-
111
- return;
112
- }
113
-
114
- if (state !== "default") {
115
- state = "default";
116
-
117
- delay(() => {
118
- targetElement.classList.remove(stickyClass);
119
- targetElement.classList.remove(stuckClass);
120
- targetElement.classList.add(willStickClass);
121
-
122
- if (useFixed) {
123
- targetElement.style.position = "";
124
- }
125
-
126
- options.onChange(state);
127
- });
128
- }
129
- };
130
- scrollElement.addEventListener("scroll", scrollListener, {passive: true});
131
-
132
- return function cleanup() {
133
- scrollElement.removeEventListener("scroll", scrollListener, {
134
- passive: true,
135
- });
136
- targetElement.style.position = "";
137
- targetElement.style[options.verticalPosition] = "";
138
- targetElement.classList.remove(stickyClass);
139
- targetElement.classList.remove(stuckClass);
140
- targetElement.classList.remove(willStickClass);
141
- targetElement.parentNode.classList.remove(parentClass);
142
- };
143
- }
@@ -1,14 +0,0 @@
1
- import {useEffect, useMemo, useRef} from "react";
2
-
3
- export default function useCallbackRef<
4
- T extends (...args: unknown[]) => unknown,
5
- >(callback: T | undefined): T {
6
- const ref = useRef(callback);
7
-
8
- useEffect(() => {
9
- ref.current = callback;
10
- });
11
-
12
- // See https://github.com/facebook/react/issues/19240#issuecomment-652945246
13
- return useMemo(() => ((...args) => ref.current?.(...args)) as T, []);
14
- }
@@ -1,50 +0,0 @@
1
- import type {Dispatch, SetStateAction} from "react";
2
- import {useCallback, useEffect, useState} from "react";
3
-
4
- import useCallbackRef from "./useCallbackRef";
5
- import usePrevious from "./usePrevious";
6
-
7
- const noop = () => {
8
- // empty
9
- };
10
-
11
- export default function useControllableState<T>({
12
- prop,
13
- defaultProp,
14
- onChange = noop,
15
- }: {
16
- prop?: T | undefined;
17
- defaultProp?: T | undefined;
18
- onChange?: (state: T) => void;
19
- }) {
20
- const [state, setState] = useState<T | undefined>(defaultProp);
21
- const handleChange = useCallbackRef(onChange);
22
-
23
- const prevState = usePrevious(state);
24
- useEffect(() => {
25
- if (prevState !== state) {
26
- handleChange(state as T);
27
- }
28
- }, [state, prevState, handleChange]);
29
-
30
- const isControlled = prop !== undefined;
31
- const value = isControlled ? prop : state;
32
-
33
- const setValue: Dispatch<SetStateAction<T | undefined>> = useCallback(
34
- (nextValue) => {
35
- if (isControlled) {
36
- const controlledValue =
37
- typeof nextValue === "function"
38
- ? (nextValue as (prevState?: T) => T)(prop)
39
- : nextValue;
40
- if (controlledValue !== prop)
41
- handleChange(controlledValue as T);
42
- } else {
43
- setState(nextValue);
44
- }
45
- },
46
- [isControlled, prop, setState, handleChange],
47
- );
48
-
49
- return [value, setValue] as const;
50
- }
@@ -1,32 +0,0 @@
1
- import {useEffect, useState} from "react";
2
-
3
- // https://usehooks.com/useDebounce/
4
- /**
5
- * @param value value to debounce
6
- * @param delay debounce delay
7
- * @returns debounced value
8
- */
9
- export default function useDebounce<T>(value: T, delay: number): T {
10
- // State and setters for debounced value
11
- const [debouncedValue, setDebouncedValue] = useState(value);
12
-
13
- useEffect(
14
- () => {
15
- // Update debounced value after delay
16
- const handler = setTimeout(() => {
17
- setDebouncedValue(value);
18
- }, delay);
19
-
20
- // Cancel the timeout if value changes (also on delay change or unmount)
21
- // This is how we prevent debounced value from updating if value is changed ...
22
- // .. within the delay period. Timeout gets cleared and restarted.
23
- return () => {
24
- clearTimeout(handler);
25
- };
26
- },
27
- // Only re-call effect if value or delay changes
28
- [value, delay],
29
- );
30
-
31
- return debouncedValue;
32
- }
@@ -1,27 +0,0 @@
1
- import type {RefObject} from "react";
2
- import {useEffect} from "react";
3
-
4
- import {isEventWithNoModKeys} from "../helpers/events";
5
-
6
- export default function useHandleEscapeKeyDown(
7
- ref: RefObject<HTMLElement>,
8
- onEscape: () => void,
9
- ): void {
10
- useEffect(() => {
11
- const elem = ref.current;
12
- if (elem === null) {
13
- return;
14
- }
15
-
16
- const handleEsc = (ev: KeyboardEvent): void => {
17
- if (isEventWithNoModKeys(ev) && ev.key === "Escape") {
18
- onEscape();
19
- }
20
- };
21
-
22
- elem.addEventListener("keydown", handleEsc);
23
- return () => {
24
- elem.removeEventListener("keydown", handleEsc);
25
- };
26
- }, [ref.current, onEscape]);
27
- }
@@ -1,40 +0,0 @@
1
- import type {RefObject} from "react";
2
- import {useEffect, useRef} from "react";
3
- import {useDispatch} from "react-redux";
4
-
5
- import {setViewportAnchor} from "@mapsight/core/lib/map/actions";
6
-
7
- import {MAP} from "../config/constants/controllers";
8
- import type {MainPanelPosition} from "../types";
9
- import useUpdateMapSizeOnTransitionEnd from "./useUpdateMapSizeOnTransitionEnd";
10
-
11
- function useMapsightPanel(
12
- containerRef: RefObject<Element | null>,
13
- panelPosition: MainPanelPosition,
14
- collapsed: boolean,
15
- ) {
16
- const previousPositionRef = useRef<MainPanelPosition | null>(null);
17
- const previousCollapsedRef = useRef<boolean>(false);
18
- const dispatch = useDispatch();
19
-
20
- useEffect(() => {
21
- if (
22
- previousPositionRef.current &&
23
- (previousPositionRef.current !== panelPosition ||
24
- previousCollapsedRef.current !== collapsed)
25
- ) {
26
- dispatch(setViewportAnchor(MAP, "right"));
27
- }
28
-
29
- previousPositionRef.current = panelPosition;
30
- previousCollapsedRef.current = collapsed;
31
- }, [collapsed, dispatch, panelPosition]);
32
-
33
- useUpdateMapSizeOnTransitionEnd(
34
- containerRef.current ?? undefined,
35
- dispatch,
36
- previousPositionRef,
37
- );
38
- }
39
-
40
- export default useMapsightPanel;