@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.
- package/README.md +91 -2
- package/dist/components/app.d.ts +1 -1
- package/dist/components/app.d.ts.map +1 -1
- package/dist/components/feature-details-content/feature-details-content.d.ts +1 -1
- package/dist/components/feature-details-content/feature-details-content.d.ts.map +1 -1
- package/dist/components/feature-details-content/index.d.ts +1 -1
- package/dist/components/feature-details-content/share-feature-link-modal.d.ts +1 -1
- package/dist/components/feature-details-content/share-feature-link-modal.d.ts.map +1 -1
- package/dist/components/feature-list/context.d.ts +12 -4
- package/dist/components/feature-list/context.d.ts.map +1 -1
- package/dist/components/feature-list/context.js.map +1 -1
- package/dist/components/feature-list/empty-message.d.ts +1 -1
- package/dist/components/feature-list/empty-message.d.ts.map +1 -1
- package/dist/components/feature-list/filter.d.ts +1 -1
- package/dist/components/feature-list/filter.d.ts.map +1 -1
- package/dist/components/feature-list/footer.d.ts +1 -1
- package/dist/components/feature-list/footer.d.ts.map +1 -1
- package/dist/components/feature-list/hooks/useAutoloadFeatureSource.d.ts.map +1 -1
- package/dist/components/feature-list/hooks/useAutoloadFeatureSource.js +12 -3
- package/dist/components/feature-list/hooks/useAutoloadFeatureSource.js.map +1 -1
- package/dist/components/feature-list/index.d.ts +3 -2
- package/dist/components/feature-list/index.d.ts.map +1 -1
- package/dist/components/feature-list/index.js +30 -42
- package/dist/components/feature-list/index.js.map +1 -1
- package/dist/components/feature-list/pagination.d.ts +1 -1
- package/dist/components/feature-list/pagination.d.ts.map +1 -1
- package/dist/components/feature-list/query-input.d.ts +1 -1
- package/dist/components/feature-list/query-input.d.ts.map +1 -1
- package/dist/components/feature-list/tag-switcher-control.d.ts +4 -0
- package/dist/components/feature-list/tag-switcher-control.d.ts.map +1 -0
- package/dist/components/feature-list/tag-switcher-control.js +10 -0
- package/dist/components/feature-list/tag-switcher-control.js.map +1 -0
- package/dist/components/feature-list-cycling/button.d.ts +1 -1
- package/dist/components/feature-list-cycling/button.d.ts.map +1 -1
- package/dist/components/feature-list-cycling/dot.d.ts +1 -1
- package/dist/components/feature-list-cycling/dot.d.ts.map +1 -1
- package/dist/components/feature-list-cycling/feature-list-cycling.d.ts +1 -1
- package/dist/components/feature-list-cycling/feature-list-cycling.d.ts.map +1 -1
- package/dist/components/feature-list-cycling/index.d.ts +1 -1
- package/dist/components/feature-list-item/icon.d.ts +8 -6
- package/dist/components/feature-list-item/icon.d.ts.map +1 -1
- package/dist/components/feature-list-item/icon.js +5 -13
- package/dist/components/feature-list-item/icon.js.map +1 -1
- package/dist/components/feature-list-item/index.d.ts +1 -1
- package/dist/components/feature-list-item/index.d.ts.map +1 -1
- package/dist/components/feature-list-sorting/feature-list-sorting.d.ts +1 -1
- package/dist/components/feature-list-sorting/feature-list-sorting.d.ts.map +1 -1
- package/dist/components/feature-list-sorting/feature-list-sorting.js +3 -12
- package/dist/components/feature-list-sorting/feature-list-sorting.js.map +1 -1
- package/dist/components/feature-list-sorting/index.d.ts +1 -1
- package/dist/components/feature-list-sorting/status-indicator.d.ts +1 -1
- package/dist/components/feature-list-sorting/status-indicator.d.ts.map +1 -1
- package/dist/components/feature-select-button.d.ts +1 -1
- package/dist/components/feature-select-button.d.ts.map +1 -1
- package/dist/components/feature-selection-info/close-button.d.ts +1 -1
- package/dist/components/feature-selection-info/close-button.d.ts.map +1 -1
- package/dist/components/feature-selection-info/container.d.ts +1 -1
- package/dist/components/feature-selection-info/container.d.ts.map +1 -1
- package/dist/components/feature-selection-info/header.d.ts +1 -1
- package/dist/components/feature-selection-info/header.d.ts.map +1 -1
- package/dist/components/feature-selection-info/index.d.ts +1 -1
- package/dist/components/feature-selection-info/index.d.ts.map +1 -1
- package/dist/components/feature-selection-info/with-sticky-header.d.ts +1 -1
- package/dist/components/feature-selection-info/with-sticky-header.d.ts.map +1 -1
- package/dist/components/feature-selection-info/without-sticky-header.d.ts +1 -1
- package/dist/components/feature-selection-info/without-sticky-header.d.ts.map +1 -1
- package/dist/components/filter-toggle-control/FilterToggleControl.d.ts +12 -0
- package/dist/components/filter-toggle-control/FilterToggleControl.d.ts.map +1 -0
- package/dist/components/filter-toggle-control/FilterToggleControl.js +20 -0
- package/dist/components/filter-toggle-control/FilterToggleControl.js.map +1 -0
- package/dist/components/helping/app-channel.d.ts +1 -1
- package/dist/components/helping/app-channel.d.ts.map +1 -1
- package/dist/components/helping/app-context.d.ts +1 -1
- package/dist/components/helping/app-context.d.ts.map +1 -1
- package/dist/components/instance.d.ts +1 -1
- package/dist/components/instance.d.ts.map +1 -1
- package/dist/components/layer-switcher/GroupedLayerSwitcher.d.ts +1 -1
- package/dist/components/layer-switcher/LayerSwitcher.d.ts +1 -1
- package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts +3 -2
- package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcherContainer.js +2 -2
- package/dist/components/layer-switcher/LayerSwitcherContainer.js.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts +1 -1
- package/dist/components/layer-switcher/index.d.ts +1 -1
- package/dist/components/layer-switcher/index.js.map +1 -1
- package/dist/components/layout/additional-container/content.d.ts +1 -1
- package/dist/components/layout/additional-container/content.d.ts.map +1 -1
- package/dist/components/layout/additional-container/index.d.ts +1 -1
- package/dist/components/layout/additional-container/index.d.ts.map +1 -1
- package/dist/components/layout/additional-container/marginal.d.ts +1 -1
- package/dist/components/layout/additional-container/marginal.d.ts.map +1 -1
- package/dist/components/layout/main-container.d.ts +1 -1
- package/dist/components/layout/main-container.d.ts.map +1 -1
- package/dist/components/layout/map-row.d.ts +1 -1
- package/dist/components/layout/map-row.d.ts.map +1 -1
- package/dist/components/layout/title-bar.d.ts +1 -1
- package/dist/components/layout/title-bar.d.ts.map +1 -1
- package/dist/components/layout/wrapper.d.ts +1 -1
- package/dist/components/layout/wrapper.d.ts.map +1 -1
- package/dist/components/link-share.d.ts +1 -1
- package/dist/components/link-share.d.ts.map +1 -1
- package/dist/components/main-panel/container.d.ts +1 -1
- package/dist/components/main-panel/container.d.ts.map +1 -1
- package/dist/components/main-panel/context.d.ts +1 -1
- package/dist/components/main-panel/context.d.ts.map +1 -1
- package/dist/components/main-panel/index.d.ts +1 -1
- package/dist/components/main-panel/index.d.ts.map +1 -1
- package/dist/components/main-panel/list-toggle-button.d.ts +1 -1
- package/dist/components/main-panel/list-toggle-button.d.ts.map +1 -1
- package/dist/components/map-overlay/attribution-entries.d.ts +1 -1
- package/dist/components/map-overlay/attribution-entries.d.ts.map +1 -1
- package/dist/components/map-overlay/attribution.d.ts +1 -1
- package/dist/components/map-overlay/attribution.d.ts.map +1 -1
- package/dist/components/map-overlay/combined-buttons.d.ts +1 -1
- package/dist/components/map-overlay/combined-buttons.d.ts.map +1 -1
- package/dist/components/map-overlay/index.d.ts +1 -1
- package/dist/components/map-overlay/index.d.ts.map +1 -1
- package/dist/components/map-overlay/info-overlay-left.d.ts +1 -1
- package/dist/components/map-overlay/info-overlay-left.d.ts.map +1 -1
- package/dist/components/map-overlay/info-overlay-modal.d.ts +1 -1
- package/dist/components/map-overlay/info-overlay-modal.d.ts.map +1 -1
- package/dist/components/map-overlay/info-overlay-right.d.ts +1 -1
- package/dist/components/map-overlay/info-overlay-right.d.ts.map +1 -1
- package/dist/components/map-overlay/layer-switcher-overlay.d.ts +1 -1
- package/dist/components/map-overlay/layer-switcher-overlay.d.ts.map +1 -1
- package/dist/components/map-overlay/legend.d.ts +1 -1
- package/dist/components/map-overlay/legend.d.ts.map +1 -1
- package/dist/components/map-overlay/logo.d.ts +1 -1
- package/dist/components/map-overlay/logo.d.ts.map +1 -1
- package/dist/components/map-overlay/measure-distance-button.d.ts +1 -1
- package/dist/components/map-overlay/measure-distance-button.d.ts.map +1 -1
- package/dist/components/map-overlay/measure-distance-overlay.d.ts +1 -1
- package/dist/components/map-overlay/measure-distance-overlay.d.ts.map +1 -1
- package/dist/components/map-overlay/search-overlay.d.ts +1 -1
- package/dist/components/map-overlay/search-overlay.d.ts.map +1 -1
- package/dist/components/map-overlay/share-position-link-button.d.ts +1 -1
- package/dist/components/map-overlay/share-position-link-button.d.ts.map +1 -1
- package/dist/components/map-overlay/tool-overlay.d.ts +1 -1
- package/dist/components/map-overlay/tool-overlay.d.ts.map +1 -1
- package/dist/components/map-overlay/zoom-buttons.d.ts +1 -1
- package/dist/components/map-overlay/zoom-buttons.d.ts.map +1 -1
- package/dist/components/map-synced-interlay/index.d.ts +1 -1
- package/dist/components/map-synced-interlay/map-synced-interlay.d.ts +1 -1
- package/dist/components/map-synced-interlay/map-synced-interlay.d.ts.map +1 -1
- package/dist/components/map-synced-interlay/tooltip.d.ts +1 -1
- package/dist/components/map-synced-interlay/tooltip.d.ts.map +1 -1
- package/dist/components/map-wrapper.d.ts +3 -3
- package/dist/components/map-wrapper.d.ts.map +1 -1
- package/dist/components/map-wrapper.js +4 -7
- package/dist/components/map-wrapper.js.map +1 -1
- package/dist/components/map.d.ts +1 -1
- package/dist/components/map.d.ts.map +1 -1
- package/dist/components/mapsight-icon/mapsight-icon.d.ts +10 -0
- package/dist/components/mapsight-icon/mapsight-icon.d.ts.map +1 -0
- package/dist/components/mapsight-icon/mapsight-icon.js +33 -0
- package/dist/components/mapsight-icon/mapsight-icon.js.map +1 -0
- package/dist/components/modal.d.ts +1 -1
- package/dist/components/modal.d.ts.map +1 -1
- package/dist/components/query-input-with-label.d.ts +1 -1
- package/dist/components/query-input-with-label.d.ts.map +1 -1
- package/dist/components/search/index.d.ts +1 -1
- package/dist/components/search/index.d.ts.map +1 -1
- package/dist/components/search/result-entry.d.ts +1 -1
- package/dist/components/search/result-entry.d.ts.map +1 -1
- package/dist/components/search/result.d.ts +1 -1
- package/dist/components/search/result.d.ts.map +1 -1
- package/dist/components/switcher/GroupedSwitcher.d.ts +1 -1
- package/dist/components/switcher/GroupedSwitcher.d.ts.map +1 -1
- package/dist/components/switcher/Switcher.d.ts +1 -1
- package/dist/components/switcher/Switcher.d.ts.map +1 -1
- package/dist/components/switcher/SwitcherButton.d.ts +1 -1
- package/dist/components/switcher/SwitcherButton.d.ts.map +1 -1
- package/dist/components/switcher/SwitcherEntry.d.ts +1 -1
- package/dist/components/switcher/SwitcherEntry.d.ts.map +1 -1
- package/dist/components/switcher/SwitcherHeader.d.ts +1 -1
- package/dist/components/switcher/SwitcherHeader.d.ts.map +1 -1
- package/dist/components/switcher/SwitcherStatusIcon.d.ts +1 -1
- package/dist/components/switcher/SwitcherStatusIcon.d.ts.map +1 -1
- package/dist/components/tag-switcher/TagSwitcher.d.ts +1 -1
- package/dist/components/tag-switcher/TagSwitcher.d.ts.map +1 -1
- package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts +1 -1
- package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts +1 -1
- package/dist/components/tag-switcher/index.d.ts +1 -1
- package/dist/components/time-filter.d.ts +1 -1
- package/dist/components/time-filter.d.ts.map +1 -1
- package/dist/components/view-toggle-button/desktop-button.d.ts +1 -1
- package/dist/components/view-toggle-button/desktop-button.d.ts.map +1 -1
- package/dist/components/view-toggle-button/index.d.ts +1 -1
- package/dist/components/view-toggle-button/mobile-button.d.ts +1 -1
- package/dist/components/view-toggle-button/mobile-button.d.ts.map +1 -1
- package/dist/components/view-toggle-button/view-toggle-button.d.ts +1 -1
- package/dist/components/view-toggle-button/view-toggle-button.d.ts.map +1 -1
- package/dist/components/view-toggle-button/viewport-button.d.ts +1 -1
- package/dist/components/view-toggle-button/viewport-button.d.ts.map +1 -1
- package/dist/config/feature/sources.d.ts +8 -5
- package/dist/config/feature/sources.d.ts.map +1 -1
- package/dist/config/feature/sources.js +10 -0
- package/dist/config/feature/sources.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/map/featureInteractions.js.map +1 -1
- package/dist/config/map/layers.d.ts +16 -13
- package/dist/config/map/layers.d.ts.map +1 -1
- package/dist/config/map/layers.js.map +1 -1
- package/dist/config/schema/index.d.ts +195 -0
- package/dist/config/schema/index.d.ts.map +1 -0
- package/dist/config/schema/index.js +26 -0
- package/dist/config/schema/index.js.map +1 -0
- package/dist/config/schema/validate.d.ts +8 -0
- package/dist/config/schema/validate.d.ts.map +1 -0
- package/dist/config/schema/validate.js +7 -0
- package/dist/config/schema/validate.js.map +1 -0
- package/dist/controllers/defaults.d.ts.map +1 -1
- package/dist/controllers/defaults.js +5 -0
- package/dist/controllers/defaults.js.map +1 -1
- package/dist/filters/tag-filter.d.ts +7 -0
- package/dist/filters/tag-filter.d.ts.map +1 -1
- package/dist/filters/tag-filter.js +10 -0
- package/dist/filters/tag-filter.js.map +1 -1
- package/dist/filters/time-filter.d.ts +9 -0
- package/dist/filters/time-filter.d.ts.map +1 -1
- package/dist/filters/time-filter.js +10 -0
- package/dist/filters/time-filter.js.map +1 -1
- package/dist/helpers/i18n/de.d.ts.map +1 -1
- package/dist/helpers/i18n/de.js +1 -0
- package/dist/helpers/i18n/de.js.map +1 -1
- package/dist/helpers/i18n/en.d.ts.map +1 -1
- package/dist/helpers/i18n/en.js +1 -0
- package/dist/helpers/i18n/en.js.map +1 -1
- package/dist/helpers/sort-features-by-distance.d.ts +2 -7
- package/dist/helpers/sort-features-by-distance.d.ts.map +1 -1
- package/dist/helpers/sort-features-by-distance.js +27 -39
- package/dist/helpers/sort-features-by-distance.js.map +1 -1
- package/dist/hooks/useMapsightIcon.d.ts +8 -0
- package/dist/hooks/useMapsightIcon.d.ts.map +1 -0
- package/dist/hooks/useMapsightIcon.js +50 -0
- package/dist/hooks/useMapsightIcon.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/plugins/browser-defaults.d.ts +2 -0
- package/dist/plugins/browser-defaults.d.ts.map +1 -1
- package/dist/plugins/browser-defaults.js +5 -0
- package/dist/plugins/browser-defaults.js.map +1 -1
- package/dist/plugins/common/combined-visible-layers.d.ts +15 -0
- package/dist/plugins/common/combined-visible-layers.d.ts.map +1 -0
- package/dist/plugins/common/combined-visible-layers.js +63 -0
- package/dist/plugins/common/combined-visible-layers.js.map +1 -0
- package/dist/plugins/common/runtime-icon-style.d.ts +12 -0
- package/dist/plugins/common/runtime-icon-style.d.ts.map +1 -0
- package/dist/plugins/common/runtime-icon-style.js +58 -0
- package/dist/plugins/common/runtime-icon-style.js.map +1 -0
- package/dist/react-modal-app-element.d.ts +6 -0
- package/dist/react-modal-app-element.d.ts.map +1 -0
- package/dist/react-modal-app-element.js +9 -0
- package/dist/react-modal-app-element.js.map +1 -0
- package/dist/store/actions.d.ts.map +1 -1
- package/dist/store/actions.js +6 -1
- package/dist/store/actions.js.map +1 -1
- package/dist/store/reducers.d.ts +8 -6
- package/dist/store/reducers.d.ts.map +1 -1
- package/dist/store/selectors.d.ts +10 -17
- package/dist/store/selectors.d.ts.map +1 -1
- package/dist/store/selectors.js +9 -1
- package/dist/store/selectors.js.map +1 -1
- package/dist/types.d.ts +19 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +24 -8
- package/src/scss/blocks/_features-sorting.scss +0 -13
- package/src/scss/blocks/_filter-button.scss +23 -0
- package/src/scss/blocks/_filter-toggle-control.scss +15 -0
- package/src/scss/default.scss +1 -0
- package/src/img/mapsight-ui/check-empty.svg +0 -1
- package/src/img/mapsight-ui/check.svg +0 -2
- package/src/img/mapsight-ui/close-list.svg +0 -1
- package/src/img/mapsight-ui/close.svg +0 -1
- package/src/img/mapsight-ui/error.svg +0 -1
- package/src/img/mapsight-ui/fullscreen-close.svg +0 -1
- package/src/img/mapsight-ui/fullscreen.svg +0 -1
- package/src/img/mapsight-ui/geo-active.svg +0 -1
- package/src/img/mapsight-ui/geo-error.svg +0 -1
- package/src/img/mapsight-ui/geo-inactive.svg +0 -1
- package/src/img/mapsight-ui/info.svg +0 -1
- package/src/img/mapsight-ui/layers.svg +0 -1
- package/src/img/mapsight-ui/loading.svg +0 -1
- package/src/img/mapsight-ui/map.svg +0 -1
- package/src/img/mapsight-ui/measure-distance.svg +0 -7
- package/src/img/mapsight-ui/open-list.svg +0 -1
- package/src/img/mapsight-ui/place-marker.svg +0 -4
- package/src/img/mapsight-ui/print.svg +0 -4
- package/src/img/mapsight-ui/reset-active.svg +0 -1
- package/src/img/mapsight-ui/reset.svg +0 -1
- package/src/img/mapsight-ui/search.svg +0 -1
- package/src/img/mapsight-ui/sharing.svg +0 -7
- package/src/img/mapsight-ui/sort-active.svg +0 -1
- package/src/img/mapsight-ui/sort.svg +0 -1
- package/src/img/mapsight-ui/watermark.svg +0 -1
- package/src/img/mapsight-ui/zoom-in.svg +0 -3
- package/src/img/mapsight-ui/zoom-out.svg +0 -3
- package/src/js/components/app.tsx +0 -232
- package/src/js/components/close-overlay-button.tsx +0 -27
- package/src/js/components/feature-details-content/feature-details-content-inner.tsx +0 -116
- package/src/js/components/feature-details-content/feature-details-content.jsx +0 -185
- package/src/js/components/feature-details-content/index.js +0 -16
- package/src/js/components/feature-details-content/share-feature-link-modal.jsx +0 -56
- package/src/js/components/feature-list/content.jsx +0 -42
- package/src/js/components/feature-list/context.tsx +0 -47
- package/src/js/components/feature-list/empty-message.jsx +0 -15
- package/src/js/components/feature-list/filter.jsx +0 -35
- package/src/js/components/feature-list/footer.jsx +0 -5
- package/src/js/components/feature-list/grouped-content.jsx +0 -74
- package/src/js/components/feature-list/header.jsx +0 -7
- package/src/js/components/feature-list/hooks/useAutoloadFeatureSource.ts +0 -25
- package/src/js/components/feature-list/hooks/useFeatureListFeatureSource.ts +0 -22
- package/src/js/components/feature-list/hooks/useFeatureListItemGroups.ts +0 -127
- package/src/js/components/feature-list/hooks/useFeatureListState.ts +0 -98
- package/src/js/components/feature-list/hooks/useKeyboardNavigation.js +0 -112
- package/src/js/components/feature-list/hooks/useMakeHeaderSticky.js +0 -40
- package/src/js/components/feature-list/hooks/usePaginatedFilteredFeatures.ts +0 -129
- package/src/js/components/feature-list/hooks/useRestoreDocumentScroll.js +0 -12
- package/src/js/components/feature-list/hooks/useSelectFeature.js +0 -88
- package/src/js/components/feature-list/index.jsx +0 -278
- package/src/js/components/feature-list/pagination.tsx +0 -57
- package/src/js/components/feature-list/query-input.jsx +0 -14
- package/src/js/components/feature-list-cycling/button.jsx +0 -13
- package/src/js/components/feature-list-cycling/dot.jsx +0 -43
- package/src/js/components/feature-list-cycling/feature-list-cycling.jsx +0 -153
- package/src/js/components/feature-list-cycling/index.js +0 -82
- package/src/js/components/feature-list-item/head.jsx +0 -131
- package/src/js/components/feature-list-item/hooks/useFeatureListItemScrollAndFocus.js +0 -51
- package/src/js/components/feature-list-item/hooks/useFeatureListItemState.ts +0 -75
- package/src/js/components/feature-list-item/icon.jsx +0 -35
- package/src/js/components/feature-list-item/index.jsx +0 -168
- package/src/js/components/feature-list-sorting/feature-list-sorting.tsx +0 -144
- package/src/js/components/feature-list-sorting/index.js +0 -22
- package/src/js/components/feature-list-sorting/status-indicator.jsx +0 -10
- package/src/js/components/feature-select-button.jsx +0 -70
- package/src/js/components/feature-selection-info/close-button.jsx +0 -64
- package/src/js/components/feature-selection-info/container.jsx +0 -9
- package/src/js/components/feature-selection-info/header.tsx +0 -27
- package/src/js/components/feature-selection-info/index.tsx +0 -81
- package/src/js/components/feature-selection-info/with-sticky-header.tsx +0 -76
- package/src/js/components/feature-selection-info/without-sticky-header.jsx +0 -19
- package/src/js/components/feature-selection-info/wrapper.jsx +0 -43
- package/src/js/components/helping/app-channel.tsx +0 -99
- package/src/js/components/helping/app-context.tsx +0 -32
- package/src/js/components/helping/visibility-wrapper.jsx +0 -23
- package/src/js/components/instance.tsx +0 -48
- package/src/js/components/layer-switcher/GroupedLayerSwitcher.js +0 -47
- package/src/js/components/layer-switcher/LayerSwitcher.ts +0 -34
- package/src/js/components/layer-switcher/LayerSwitcherContainer.tsx +0 -88
- package/src/js/components/layer-switcher/LayerSwitcherEntry.ts +0 -152
- package/src/js/components/layer-switcher/index.ts +0 -42
- package/src/js/components/layout/additional-container/content.jsx +0 -10
- package/src/js/components/layout/additional-container/index.jsx +0 -5
- package/src/js/components/layout/additional-container/marginal.jsx +0 -10
- package/src/js/components/layout/main-container.jsx +0 -5
- package/src/js/components/layout/map-row.jsx +0 -5
- package/src/js/components/layout/title-bar.tsx +0 -25
- package/src/js/components/layout/wrapper.jsx +0 -28
- package/src/js/components/link-share.jsx +0 -78
- package/src/js/components/main-panel/container.tsx +0 -23
- package/src/js/components/main-panel/context.tsx +0 -71
- package/src/js/components/main-panel/index.tsx +0 -46
- package/src/js/components/main-panel/list-toggle-button.jsx +0 -43
- package/src/js/components/map-overlay/area.jsx +0 -17
- package/src/js/components/map-overlay/attribution-entries.tsx +0 -33
- package/src/js/components/map-overlay/attribution.tsx +0 -25
- package/src/js/components/map-overlay/combined-buttons.jsx +0 -5
- package/src/js/components/map-overlay/index.jsx +0 -5
- package/src/js/components/map-overlay/info-overlay-left.jsx +0 -51
- package/src/js/components/map-overlay/info-overlay-modal.tsx +0 -49
- package/src/js/components/map-overlay/info-overlay-right.jsx +0 -46
- package/src/js/components/map-overlay/layer-switcher-overlay.tsx +0 -100
- package/src/js/components/map-overlay/legend.tsx +0 -22
- package/src/js/components/map-overlay/logo.jsx +0 -11
- package/src/js/components/map-overlay/measure-distance-button.tsx +0 -116
- package/src/js/components/map-overlay/measure-distance-overlay.jsx +0 -56
- package/src/js/components/map-overlay/mini-legend.jsx +0 -103
- package/src/js/components/map-overlay/region-selector.jsx +0 -63
- package/src/js/components/map-overlay/search-overlay.jsx +0 -79
- package/src/js/components/map-overlay/share-position-link-button.tsx +0 -144
- package/src/js/components/map-overlay/tool-overlay.tsx +0 -28
- package/src/js/components/map-overlay/user-geo-location-button.jsx +0 -89
- package/src/js/components/map-overlay/zoom-button.jsx +0 -98
- package/src/js/components/map-overlay/zoom-buttons.jsx +0 -26
- package/src/js/components/map-synced-interlay/index.ts +0 -15
- package/src/js/components/map-synced-interlay/map-synced-interlay.jsx +0 -22
- package/src/js/components/map-synced-interlay/tooltip-content.tsx +0 -22
- package/src/js/components/map-synced-interlay/tooltip.tsx +0 -199
- package/src/js/components/map-wrapper.tsx +0 -65
- package/src/js/components/map.tsx +0 -55
- package/src/js/components/modal.tsx +0 -40
- package/src/js/components/query-input-with-label.tsx +0 -71
- package/src/js/components/query-input.tsx +0 -81
- package/src/js/components/search/index.jsx +0 -83
- package/src/js/components/search/query-input.jsx +0 -20
- package/src/js/components/search/result-entry.jsx +0 -63
- package/src/js/components/search/result.jsx +0 -71
- package/src/js/components/switcher/GroupedSwitcher.jsx +0 -42
- package/src/js/components/switcher/Switcher.jsx +0 -54
- package/src/js/components/switcher/SwitcherButton.jsx +0 -23
- package/src/js/components/switcher/SwitcherEntry.tsx +0 -164
- package/src/js/components/switcher/SwitcherHeader.jsx +0 -58
- package/src/js/components/switcher/SwitcherStatusIcon.jsx +0 -36
- package/src/js/components/tag-switcher/TagSwitcher.tsx +0 -56
- package/src/js/components/tag-switcher/createTagSwitcherEntry.ts +0 -39
- package/src/js/components/tag-switcher/createTagSwitcherHeader.ts +0 -47
- package/src/js/components/tag-switcher/index.ts +0 -17
- package/src/js/components/time-filter.jsx +0 -187
- package/src/js/components/view-toggle-button/desktop-button.jsx +0 -13
- package/src/js/components/view-toggle-button/index.ts +0 -42
- package/src/js/components/view-toggle-button/mobile-button.tsx +0 -13
- package/src/js/components/view-toggle-button/view-toggle-button.jsx +0 -74
- package/src/js/components/view-toggle-button/viewport-button.tsx +0 -13
- package/src/js/config/constants/app.ts +0 -16
- package/src/js/config/constants/controllers.ts +0 -11
- package/src/js/config/feature/selections.ts +0 -13
- package/src/js/config/feature/sources.ts +0 -77
- package/src/js/config/index.ts +0 -133
- package/src/js/config/map/featureInteractions.ts +0 -53
- package/src/js/config/map/interactions.ts +0 -15
- package/src/js/config/map/layers.ts +0 -190
- package/src/js/controllers/defaults.ts +0 -36
- package/src/js/embed/browser.ts +0 -89
- package/src/js/embed/node.ts +0 -57
- package/src/js/filters/tag-filter.ts +0 -135
- package/src/js/filters/time-filter.ts +0 -53
- package/src/js/helpers/components.ts +0 -66
- package/src/js/helpers/create-action-watcher.ts +0 -35
- package/src/js/helpers/events.ts +0 -11
- package/src/js/helpers/get-feature-property.ts +0 -14
- package/src/js/helpers/i18n/de.ts +0 -145
- package/src/js/helpers/i18n/en.ts +0 -140
- package/src/js/helpers/i18n/index.ts +0 -41
- package/src/js/helpers/makeReplaceableComponent.ts +0 -0
- package/src/js/helpers/mod-classes.ts +0 -47
- package/src/js/helpers/react.ts +0 -14
- package/src/js/helpers/scroll-to-element-top.ts +0 -16
- package/src/js/helpers/sort-features-by-distance.ts +0 -102
- package/src/js/helpers/sticky.js +0 -143
- package/src/js/hooks/useCallbackRef.ts +0 -14
- package/src/js/hooks/useControllableState.ts +0 -50
- package/src/js/hooks/useDebounce.ts +0 -32
- package/src/js/hooks/useHandleEscapeKeyDown.ts +0 -27
- package/src/js/hooks/useMapsightPanel.ts +0 -40
- package/src/js/hooks/useMountable.ts +0 -47
- package/src/js/hooks/usePrevious.ts +0 -15
- package/src/js/hooks/useStickyHeader.ts +0 -50
- package/src/js/hooks/useUpdateMapSizeCallback.ts +0 -32
- package/src/js/hooks/useUpdateMapSizeOnRender.ts +0 -16
- package/src/js/hooks/useUpdateMapSizeOnTransitionEnd.ts +0 -40
- package/src/js/hooks/useUpdateMapSizeOnViewChange.ts +0 -36
- package/src/js/index.ts +0 -320
- package/src/js/plugins/browser/app-title.ts +0 -36
- package/src/js/plugins/browser/debug.ts +0 -37
- package/src/js/plugins/browser/feature-deep-link.ts +0 -223
- package/src/js/plugins/browser/local-storage.ts +0 -79
- package/src/js/plugins/browser/native-fullscreen.ts +0 -81
- package/src/js/plugins/browser/no-scroll.ts +0 -91
- package/src/js/plugins/browser/partial-content-changed-event.ts +0 -23
- package/src/js/plugins/browser/piwik-track-feature-selection-event.ts +0 -75
- package/src/js/plugins/browser/piwik-track-fullscreen-toggle-event.ts +0 -46
- package/src/js/plugins/browser/search.ts +0 -42
- package/src/js/plugins/browser/share-position-link.ts +0 -463
- package/src/js/plugins/browser/toggle-mobile-views.ts +0 -60
- package/src/js/plugins/browser/user-geolocation.ts +0 -142
- package/src/js/plugins/browser/views.ts +0 -141
- package/src/js/plugins/browser-defaults.ts +0 -101
- package/src/js/plugins/common/feature-selection-details-url.ts +0 -135
- package/src/js/plugins/common/lang.ts +0 -17
- package/src/js/plugins/common/measure-distance.ts +0 -223
- package/src/js/plugins/common/ol-proxy.ts +0 -68
- package/src/js/plugins/common/render-await-feature-details-loaded.ts +0 -154
- package/src/js/plugins/common/render-await-list-feature-sources-loaded.ts +0 -109
- package/src/js/plugins/server/feature-deep-link.ts +0 -67
- package/src/js/plugins/server-defaults.ts +0 -36
- package/src/js/renderer/browser-dom.tsx +0 -27
- package/src/js/renderer/server-string.tsx +0 -17
- package/src/js/server-handler.js +0 -39
- package/src/js/store/actions.ts +0 -662
- package/src/js/store/reducers.ts +0 -491
- package/src/js/store/selectors.ts +0 -483
- package/src/js/types.ts +0 -405
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import throttle from "lodash/throttle";
|
|
2
|
-
|
|
3
|
-
import {VIEW_DESKTOP, VIEW_MOBILE, type View} from "../../config/constants/app";
|
|
4
|
-
import {setViewBreakpoints} from "../../store/actions";
|
|
5
|
-
import type {
|
|
6
|
-
MapsightUiContext,
|
|
7
|
-
MapsightUiView,
|
|
8
|
-
PluginInstance,
|
|
9
|
-
} from "../../types";
|
|
10
|
-
|
|
11
|
-
const getViewportWidth = () =>
|
|
12
|
-
Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
|
|
13
|
-
|
|
14
|
-
const defaultResizeThrottleWait = 100;
|
|
15
|
-
|
|
16
|
-
function defaultDetermineInitialClientRenderingView(
|
|
17
|
-
currentBreakpoints: string[],
|
|
18
|
-
_context: MapsightUiContext,
|
|
19
|
-
): View {
|
|
20
|
-
// NOTE: This will only be used for client side only rendering, otherwise INITIAL view will be determined by server!
|
|
21
|
-
return currentBreakpoints.indexOf("mobile") > -1
|
|
22
|
-
? VIEW_MOBILE
|
|
23
|
-
: VIEW_DESKTOP;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* This plugin will dispatch breakpoint changes for the specified renderBreakpoints (@see {CreateOptions.renderBreakpoints})
|
|
28
|
-
*
|
|
29
|
-
* @param [options] options
|
|
30
|
-
* @param [options.determineInitialView] function to determine the INITIAL view breakpoint for
|
|
31
|
-
* the given currently active render breakpoints. Used for client-side rendering ONLY! Otherwise the initial view
|
|
32
|
-
* is determined server side.
|
|
33
|
-
* @param [options.resizeThrottleWait=100] ms to wait between window resize events before updating breakpoints
|
|
34
|
-
* @returns plugin instance
|
|
35
|
-
*/
|
|
36
|
-
export default function createPlugin(
|
|
37
|
-
options: {
|
|
38
|
-
determineInitialView?: (
|
|
39
|
-
currentBreakpoints: string[],
|
|
40
|
-
context: MapsightUiContext,
|
|
41
|
-
) => View;
|
|
42
|
-
resizeThrottleWait?: number;
|
|
43
|
-
} = {},
|
|
44
|
-
): PluginInstance {
|
|
45
|
-
const {
|
|
46
|
-
determineInitialView = defaultDetermineInitialClientRenderingView,
|
|
47
|
-
resizeThrottleWait = defaultResizeThrottleWait,
|
|
48
|
-
} = options;
|
|
49
|
-
|
|
50
|
-
// sorted {label: [min (included), max (included)]}
|
|
51
|
-
// -1 = Infinity
|
|
52
|
-
let currentBreakpoints: MapsightUiView[] = [];
|
|
53
|
-
let currentWidth: number;
|
|
54
|
-
let renderBreakpoints: Record<string, [number, number]> = {};
|
|
55
|
-
|
|
56
|
-
if (typeof window === "undefined") {
|
|
57
|
-
console.error("This plugin will only work as intended in the browser!");
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
let isInitialSetDone = false;
|
|
61
|
-
return {
|
|
62
|
-
afterInit: function viewsInitPlugin(context) {
|
|
63
|
-
currentWidth = getViewportWidth();
|
|
64
|
-
renderBreakpoints = context.createOptions.renderBreakpoints ?? {};
|
|
65
|
-
currentBreakpoints = calculateCurrentBreakpoints(
|
|
66
|
-
renderBreakpoints,
|
|
67
|
-
currentWidth,
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
if (!context.isStateReHydrated && context.initialState?.app) {
|
|
71
|
-
context.initialState.app.view = determineInitialView(
|
|
72
|
-
currentBreakpoints,
|
|
73
|
-
context,
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
afterCreate: function viewsCreatePlugin(context) {
|
|
78
|
-
// We cannot change the state before we have not at least rendered the dehydrated html at least once
|
|
79
|
-
// to prevent a mixed up DOM when predicted (server-side) view and client-side determined view mismatch or has changed
|
|
80
|
-
// since page load. If the app is not rehydrated but initially rendered in the client we can omit the additional render
|
|
81
|
-
// and set the view breakpoints on creation (before render).
|
|
82
|
-
if (!context.isStateReHydrated) {
|
|
83
|
-
isInitialSetDone = true;
|
|
84
|
-
context.store?.dispatch(setViewBreakpoints(currentBreakpoints));
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
window.addEventListener(
|
|
88
|
-
"resize",
|
|
89
|
-
throttle(function handleWindowResize() {
|
|
90
|
-
const widthBefore = currentWidth;
|
|
91
|
-
currentWidth = getViewportWidth();
|
|
92
|
-
if (widthBefore === currentWidth) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const breakpointsBefore = currentBreakpoints;
|
|
97
|
-
currentBreakpoints = calculateCurrentBreakpoints(
|
|
98
|
-
renderBreakpoints,
|
|
99
|
-
currentWidth,
|
|
100
|
-
);
|
|
101
|
-
if (
|
|
102
|
-
(context.hasRendered &&
|
|
103
|
-
diffBreakpoints(
|
|
104
|
-
breakpointsBefore,
|
|
105
|
-
currentBreakpoints,
|
|
106
|
-
).length) ||
|
|
107
|
-
diffBreakpoints(currentBreakpoints, breakpointsBefore)
|
|
108
|
-
.length
|
|
109
|
-
) {
|
|
110
|
-
context.store?.dispatch(
|
|
111
|
-
setViewBreakpoints(currentBreakpoints),
|
|
112
|
-
);
|
|
113
|
-
isInitialSetDone = true;
|
|
114
|
-
}
|
|
115
|
-
}, resizeThrottleWait),
|
|
116
|
-
);
|
|
117
|
-
},
|
|
118
|
-
afterRender: function (context) {
|
|
119
|
-
if (!isInitialSetDone) {
|
|
120
|
-
isInitialSetDone = true;
|
|
121
|
-
context.store?.dispatch(setViewBreakpoints(currentBreakpoints));
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function diffBreakpoints(a: string[], b: string[]): string[] {
|
|
128
|
-
return a.filter((x) => !b.includes(x));
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function calculateCurrentBreakpoints(
|
|
132
|
-
breakpoints: Record<MapsightUiView, [number, number]>,
|
|
133
|
-
currentWidth: number,
|
|
134
|
-
) {
|
|
135
|
-
return Object.keys(breakpoints).filter((key: MapsightUiView) => {
|
|
136
|
-
const from = breakpoints[key][0];
|
|
137
|
-
const end = breakpoints[key][1];
|
|
138
|
-
|
|
139
|
-
return from <= currentWidth && (end === -1 || end >= currentWidth);
|
|
140
|
-
}) as MapsightUiView[];
|
|
141
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import {FEATURE_SELECTION_PRESELECT} from "../config/feature/selections";
|
|
2
|
-
import type {PluginDefinition} from "../types";
|
|
3
|
-
import createAppTitlePlugin from "./browser/app-title";
|
|
4
|
-
import createFeatureDeepLinkPlugin from "./browser/feature-deep-link";
|
|
5
|
-
import createLocalStoragePlugin from "./browser/local-storage";
|
|
6
|
-
import createNoScrollPlugin from "./browser/no-scroll";
|
|
7
|
-
import createPiwikTrackFeatureSelectionEventPlugin from "./browser/piwik-track-feature-selection-event";
|
|
8
|
-
import createPiwikTrackFullscreenToggleEventPlugin from "./browser/piwik-track-fullscreen-toggle-event";
|
|
9
|
-
//import createQuitFullscreenOnRenderPlugin from './browser/quit-fullscreen-on-render';
|
|
10
|
-
import createSearchPlugin from "./browser/search";
|
|
11
|
-
import createToggleMobileViewsPlugin from "./browser/toggle-mobile-views";
|
|
12
|
-
import createUserGeolocationPlugin from "./browser/user-geolocation";
|
|
13
|
-
import createViewsPlugin from "./browser/views";
|
|
14
|
-
import createFeatureSelectionDetailsUrlPlugin from "./common/feature-selection-details-url";
|
|
15
|
-
import createLangPlugin from "./common/lang";
|
|
16
|
-
import createOlProxyPlugin from "./common/ol-proxy";
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Create the default set of plugins for use in the browser IN ORDER!
|
|
20
|
-
*
|
|
21
|
-
* @param options options map for default plugins
|
|
22
|
-
* @returns sorted list of plugins
|
|
23
|
-
*/
|
|
24
|
-
export default function createDefaultPlugins(
|
|
25
|
-
options: {
|
|
26
|
-
olProxy?: Parameters<typeof createOlProxyPlugin>[0];
|
|
27
|
-
appTitle?: Parameters<typeof createAppTitlePlugin>[0];
|
|
28
|
-
featurePreselectDeepLink?: Parameters<
|
|
29
|
-
typeof createFeatureDeepLinkPlugin
|
|
30
|
-
>[0];
|
|
31
|
-
featureDeepLink?: Parameters<typeof createFeatureDeepLinkPlugin>[0];
|
|
32
|
-
featureSelectionDetailsUrl?: Parameters<
|
|
33
|
-
typeof createFeatureSelectionDetailsUrlPlugin
|
|
34
|
-
>[0];
|
|
35
|
-
localStoragePlugin?: Parameters<typeof createLocalStoragePlugin>[0];
|
|
36
|
-
noScroll?: Parameters<typeof createNoScrollPlugin>[0];
|
|
37
|
-
piwikTrackFeatureSelectionEvent?: Parameters<
|
|
38
|
-
typeof createPiwikTrackFeatureSelectionEventPlugin
|
|
39
|
-
>[0];
|
|
40
|
-
piwikTrackFullscreenToggleEvent?: Parameters<
|
|
41
|
-
typeof createPiwikTrackFullscreenToggleEventPlugin
|
|
42
|
-
>[0];
|
|
43
|
-
search?: Parameters<typeof createSearchPlugin>[0];
|
|
44
|
-
toggleMobileViews?: Parameters<typeof createToggleMobileViewsPlugin>[0];
|
|
45
|
-
userGeolocation?: Parameters<typeof createUserGeolocationPlugin>[0];
|
|
46
|
-
views?: Parameters<typeof createViewsPlugin>[0];
|
|
47
|
-
} = {},
|
|
48
|
-
): PluginDefinition[] {
|
|
49
|
-
return [
|
|
50
|
-
["lang", createLangPlugin()],
|
|
51
|
-
["olProxy", createOlProxyPlugin(options.olProxy)],
|
|
52
|
-
["appTitle", createAppTitlePlugin(options.appTitle)],
|
|
53
|
-
[
|
|
54
|
-
"featurePreselectDeepLink",
|
|
55
|
-
createFeatureDeepLinkPlugin({
|
|
56
|
-
getParameter: "preselect",
|
|
57
|
-
featureSelection: FEATURE_SELECTION_PRESELECT,
|
|
58
|
-
clearMissingParameters: ["feature"],
|
|
59
|
-
...(options.featurePreselectDeepLink || {}),
|
|
60
|
-
}),
|
|
61
|
-
],
|
|
62
|
-
[
|
|
63
|
-
"featureDeepLink",
|
|
64
|
-
createFeatureDeepLinkPlugin(options.featureDeepLink),
|
|
65
|
-
],
|
|
66
|
-
[
|
|
67
|
-
"featureSelectionDetailsUrl",
|
|
68
|
-
createFeatureSelectionDetailsUrlPlugin(
|
|
69
|
-
options.featureSelectionDetailsUrl,
|
|
70
|
-
),
|
|
71
|
-
],
|
|
72
|
-
[
|
|
73
|
-
"localStoragePlugin",
|
|
74
|
-
createLocalStoragePlugin(options.localStoragePlugin),
|
|
75
|
-
],
|
|
76
|
-
["noScroll", createNoScrollPlugin(options.noScroll)],
|
|
77
|
-
[
|
|
78
|
-
"piwikTrackFeatureSelectionEvent",
|
|
79
|
-
createPiwikTrackFeatureSelectionEventPlugin(
|
|
80
|
-
options.piwikTrackFeatureSelectionEvent,
|
|
81
|
-
),
|
|
82
|
-
],
|
|
83
|
-
[
|
|
84
|
-
"piwikTrackFullscreenToggleEvent",
|
|
85
|
-
createPiwikTrackFullscreenToggleEventPlugin(
|
|
86
|
-
options.piwikTrackFullscreenToggleEvent,
|
|
87
|
-
),
|
|
88
|
-
],
|
|
89
|
-
["search", createSearchPlugin(options.search)],
|
|
90
|
-
//['quitFullscreenOnRender', createQuitFullscreenOnRenderPlugin(options.quitFullscreenOnRender)],
|
|
91
|
-
[
|
|
92
|
-
"toggleMobileViews",
|
|
93
|
-
createToggleMobileViewsPlugin(options.toggleMobileViews),
|
|
94
|
-
],
|
|
95
|
-
[
|
|
96
|
-
"userGeolocation",
|
|
97
|
-
createUserGeolocationPlugin(options.userGeolocation),
|
|
98
|
-
],
|
|
99
|
-
["views", createViewsPlugin(options.views)],
|
|
100
|
-
];
|
|
101
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import {createFeatureSelectionSelector} from "@mapsight/core/lib/feature-selections/selectors";
|
|
2
|
-
import {findFeatureInFeatureSourcesById} from "@mapsight/core/lib/feature-sources/selectors";
|
|
3
|
-
import type {FeatureSourcesState} from "@mapsight/core/lib/feature-sources/types";
|
|
4
|
-
import type {State} from "@mapsight/core/types";
|
|
5
|
-
|
|
6
|
-
import {getAndObserveState} from "@mapsight/lib-redux/observe-state";
|
|
7
|
-
|
|
8
|
-
import * as c from "../../config/constants/controllers";
|
|
9
|
-
import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
|
|
10
|
-
import getFeatureProperty from "../../helpers/get-feature-property";
|
|
11
|
-
import {setFeatureDetailsUrl} from "../../store/actions";
|
|
12
|
-
import type {
|
|
13
|
-
MapsightUiFeature,
|
|
14
|
-
MapsightUiFeatureProperty,
|
|
15
|
-
PluginInstance,
|
|
16
|
-
} from "../../types";
|
|
17
|
-
|
|
18
|
-
const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
|
|
19
|
-
const defaultFeatureSourcesController = c.FEATURE_SOURCES;
|
|
20
|
-
const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
|
|
21
|
-
const defaultFeaturePropertyDetailsUrl: MapsightUiFeatureProperty =
|
|
22
|
-
"detailsUrl";
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* This plugin will load the dispatch the details url on feature selection.
|
|
26
|
-
*
|
|
27
|
-
* @param {object} [options] options
|
|
28
|
-
* @param {string} [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
|
|
29
|
-
* @param {string} [options.featureSelection="select"] name of the feature selection to track
|
|
30
|
-
* @param {string} [options.featureSourcesController] name of the feature sources controller, defaults to mapsight ui default
|
|
31
|
-
* @param {string} [options.featurePropertyDetailsUrl="detailsUrl"] feature property to get the details url from
|
|
32
|
-
* @returns {import('../../types').PluginInstance} plugin instance
|
|
33
|
-
*/
|
|
34
|
-
export default function createPlugin(
|
|
35
|
-
options: {
|
|
36
|
-
featureSelectionsController?: string;
|
|
37
|
-
featureSelection?: string;
|
|
38
|
-
featureSourcesController?: string;
|
|
39
|
-
featurePropertyDetailsUrl?: MapsightUiFeatureProperty;
|
|
40
|
-
} = {},
|
|
41
|
-
): PluginInstance {
|
|
42
|
-
const {
|
|
43
|
-
featureSelectionsController = defaultFeatureSelectionsController,
|
|
44
|
-
featureSelection = defaultFeatureSelection,
|
|
45
|
-
featureSourcesController = defaultFeatureSourcesController,
|
|
46
|
-
featurePropertyDetailsUrl = defaultFeaturePropertyDetailsUrl,
|
|
47
|
-
} = options;
|
|
48
|
-
const selectorSelectedFeatures = createFeatureSelectionSelector(
|
|
49
|
-
featureSelectionsController,
|
|
50
|
-
featureSelection,
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
return {
|
|
54
|
-
beforeRender: function setupFeatureSelection(context) {
|
|
55
|
-
const {store} = context;
|
|
56
|
-
if (!store) return;
|
|
57
|
-
|
|
58
|
-
let unsubscribeObserveSelectedFeature: undefined | (() => void);
|
|
59
|
-
|
|
60
|
-
const handleFeatureSelection = () => {
|
|
61
|
-
if (unsubscribeObserveSelectedFeature) {
|
|
62
|
-
unsubscribeObserveSelectedFeature();
|
|
63
|
-
unsubscribeObserveSelectedFeature = undefined;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const state = store.getState();
|
|
67
|
-
const selection = selectorSelectedFeatures(state);
|
|
68
|
-
const featureIds = selection?.features;
|
|
69
|
-
|
|
70
|
-
if (!featureIds || !featureIds.length) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Anmerkung: Dieser Code ignoriert den Sonderfall, dass sich die URL eines bereits selektierten POI _nach_ dem Select und nach dem ersten Load aufgrund eines Reloads ändert
|
|
75
|
-
// Der Code in fetchText sieht zudem kein Refresh der Inhalte vor. Der angezeigte Text ist also auch aus anderen Gründen potentiell veraltet.
|
|
76
|
-
// In Beiden Fällen kann der User das Aktualsiseren auslösen indem er den POI deselektiert (Feature-Details schließt) und wieder selektiert.
|
|
77
|
-
// → diese Sonderfälle werden zu Recht ignoriert. Wo man das automatische Aktualisieren braucht, schreibe man die Description direkt in die geojson.
|
|
78
|
-
|
|
79
|
-
const detailsUrlSelector = (state: State) => {
|
|
80
|
-
const selectedFeature = findFeatureInFeatureSourcesById(
|
|
81
|
-
state[featureSourcesController] as FeatureSourcesState,
|
|
82
|
-
featureIds[0]!,
|
|
83
|
-
);
|
|
84
|
-
if (selectedFeature) {
|
|
85
|
-
return getFeatureProperty(
|
|
86
|
-
selectedFeature as MapsightUiFeature,
|
|
87
|
-
featurePropertyDetailsUrl,
|
|
88
|
-
) as string | null;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return null;
|
|
92
|
-
};
|
|
93
|
-
const detailsUrl = detailsUrlSelector(state);
|
|
94
|
-
if (detailsUrl) {
|
|
95
|
-
// im Normalfall setzt der User das Select und da ist das Feature schon geladen.
|
|
96
|
-
store.dispatch(setFeatureDetailsUrl(detailsUrl));
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// wenn das feature anderweitig, zB. über einen Url-Parameter gesetzt wird, ist es noch nicht geladen
|
|
101
|
-
// dann und nur dann darauf warten.
|
|
102
|
-
// das betrifft aber nicht den SSR-Fall, dafür ist render-await-... zuständig.
|
|
103
|
-
|
|
104
|
-
const updateFeatureDetailsUrl = () => {
|
|
105
|
-
const updatedState = store.getState();
|
|
106
|
-
const updatedSelection =
|
|
107
|
-
selectorSelectedFeatures(updatedState);
|
|
108
|
-
const updatedFeatureIds = updatedSelection?.features ?? [];
|
|
109
|
-
const updatedDetailsUrl = detailsUrlSelector(
|
|
110
|
-
store.getState(),
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
if (
|
|
114
|
-
updatedDetailsUrl &&
|
|
115
|
-
featureIds[0] === updatedFeatureIds[0] // entprellen, falls updateFeatureDetailsUrl zB. beim unsubscribe aufgerufen wird und inzwischen ein anderer poi selektiert ist
|
|
116
|
-
) {
|
|
117
|
-
store.dispatch(setFeatureDetailsUrl(updatedDetailsUrl));
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
unsubscribeObserveSelectedFeature = getAndObserveState(
|
|
122
|
-
store,
|
|
123
|
-
detailsUrlSelector,
|
|
124
|
-
updateFeatureDetailsUrl,
|
|
125
|
-
);
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
getAndObserveState(
|
|
129
|
-
store,
|
|
130
|
-
selectorSelectedFeatures,
|
|
131
|
-
handleFeatureSelection,
|
|
132
|
-
);
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {setDocumentLanguage} from "../../helpers/i18n";
|
|
2
|
-
import type {PluginInstance} from "../../types";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This plugin will apply a lang from the embedOptions to i18n
|
|
6
|
-
*
|
|
7
|
-
* @param [_options] options
|
|
8
|
-
* @returns plugin instance
|
|
9
|
-
*/
|
|
10
|
-
export default function createLangPlugin(_options = {}): PluginInstance {
|
|
11
|
-
return {
|
|
12
|
-
beforeRender: function pluginLangBeforeRender(context) {
|
|
13
|
-
const {lang} = context.createOptions;
|
|
14
|
-
if (lang) setDocumentLanguage(lang);
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
}
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import {createSelector} from "@reduxjs/toolkit";
|
|
2
|
-
|
|
3
|
-
import {mergeAll} from "@mapsight/core/lib/base/actions";
|
|
4
|
-
import {createFilteredFeatureSourceSelector} from "@mapsight/core/lib/feature-sources/selectors";
|
|
5
|
-
import {
|
|
6
|
-
activateInteraction,
|
|
7
|
-
deactivateInteraction,
|
|
8
|
-
} from "@mapsight/core/lib/map/actions";
|
|
9
|
-
import {
|
|
10
|
-
DEFAULT_DISPLAY_STYLE,
|
|
11
|
-
DEFAULT_PROJECTION,
|
|
12
|
-
} from "@mapsight/core/mixins/EditorMixin";
|
|
13
|
-
import type {Definition} from "@mapsight/core/ol-proxy";
|
|
14
|
-
import {di} from "@mapsight/core/ol-proxy";
|
|
15
|
-
import DrawInteraction from "@mapsight/core/ol-proxy/definitions/interaction/DrawInteraction";
|
|
16
|
-
import type {EnhancedStore} from "@mapsight/core/types";
|
|
17
|
-
|
|
18
|
-
import {observeState} from "@mapsight/lib-redux/observe-state";
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
FEATURE_SELECTIONS,
|
|
22
|
-
FEATURE_SOURCES,
|
|
23
|
-
MAP,
|
|
24
|
-
} from "../../config/constants/controllers";
|
|
25
|
-
import {getDictionary} from "../../helpers/i18n";
|
|
26
|
-
import type {PluginInstance} from "../../types";
|
|
27
|
-
|
|
28
|
-
export const createActivateAction = (mapController: string, name: string) =>
|
|
29
|
-
activateInteraction(mapController, `${name}_drawInteraction`);
|
|
30
|
-
export const createDeactivateAction = (mapController: string, name: string) =>
|
|
31
|
-
deactivateInteraction(mapController, `${name}_drawInteraction`);
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @param options options
|
|
35
|
-
* @param options.store store
|
|
36
|
-
* @param options.name name name of the editor (must be unique per mapsight instance)
|
|
37
|
-
* @param options.mapControllerName map controller name
|
|
38
|
-
* @param options.featureSourcesControllerName feature sources controller name
|
|
39
|
-
* @param options.featureSelectionsControllerName feature selections controller name
|
|
40
|
-
* @param options.displayStyle style for finished draw
|
|
41
|
-
* @param options.drawStyle style while drawing
|
|
42
|
-
*/
|
|
43
|
-
function setupDrawInteraction({
|
|
44
|
-
store,
|
|
45
|
-
name,
|
|
46
|
-
featureSourcesControllerName,
|
|
47
|
-
featureSelectionsControllerName,
|
|
48
|
-
mapControllerName,
|
|
49
|
-
drawStyle,
|
|
50
|
-
displayStyle,
|
|
51
|
-
}: {
|
|
52
|
-
store: EnhancedStore;
|
|
53
|
-
name: string;
|
|
54
|
-
featureSourcesControllerName: string;
|
|
55
|
-
featureSelectionsControllerName: string;
|
|
56
|
-
mapControllerName: string;
|
|
57
|
-
drawStyle: string;
|
|
58
|
-
displayStyle: string;
|
|
59
|
-
}) {
|
|
60
|
-
const fSId = `${name}_featureSource`;
|
|
61
|
-
const drawLayerId = `${name}_drawLayer`;
|
|
62
|
-
const interactionId = `${name}_drawInteraction`;
|
|
63
|
-
|
|
64
|
-
const vFS = {
|
|
65
|
-
type: "VectorFeatureSource",
|
|
66
|
-
options: {
|
|
67
|
-
projection: DEFAULT_PROJECTION,
|
|
68
|
-
featureSourceId: fSId,
|
|
69
|
-
featureSourcesControllerName: featureSourcesControllerName,
|
|
70
|
-
featureSelectionsControllerName: featureSelectionsControllerName,
|
|
71
|
-
canAnimate: false,
|
|
72
|
-
canCluster: false,
|
|
73
|
-
featureSelections: [],
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
store.dispatch(
|
|
78
|
-
mergeAll({
|
|
79
|
-
[mapControllerName]: {
|
|
80
|
-
interactions: {
|
|
81
|
-
[interactionId]: {
|
|
82
|
-
type: "DrawInteraction",
|
|
83
|
-
options: {
|
|
84
|
-
active: false,
|
|
85
|
-
type: "LineString",
|
|
86
|
-
style: drawStyle,
|
|
87
|
-
replacePrevious: true,
|
|
88
|
-
clearOnStart: true,
|
|
89
|
-
source: vFS,
|
|
90
|
-
stopClick: true,
|
|
91
|
-
measure: {
|
|
92
|
-
active: true,
|
|
93
|
-
keepLabel: true,
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
layers: {
|
|
99
|
-
[drawLayerId]: {
|
|
100
|
-
type: "VectorLayer",
|
|
101
|
-
options: {
|
|
102
|
-
visible: true,
|
|
103
|
-
style: displayStyle,
|
|
104
|
-
renderBuffer: 200,
|
|
105
|
-
selections: [],
|
|
106
|
-
source: vFS,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
[featureSourcesControllerName]: {
|
|
112
|
-
[fSId]: {
|
|
113
|
-
enableHistory: false,
|
|
114
|
-
data: {},
|
|
115
|
-
isLoading: true,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
}),
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
const featuresSelector = createSelector(
|
|
122
|
-
createFilteredFeatureSourceSelector(
|
|
123
|
-
featureSourcesControllerName,
|
|
124
|
-
fSId,
|
|
125
|
-
mapControllerName,
|
|
126
|
-
),
|
|
127
|
-
(featureSourceState) => featureSourceState?.data?.features,
|
|
128
|
-
);
|
|
129
|
-
const deactivate = createDeactivateAction(mapControllerName, name);
|
|
130
|
-
|
|
131
|
-
observeState(store, featuresSelector, (createdFeatures) => {
|
|
132
|
-
if (createdFeatures?.[0]?.geometry?.type === "Point") {
|
|
133
|
-
store.dispatch(deactivate);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const translations = {
|
|
139
|
-
de: {
|
|
140
|
-
"ui.measure-distance.title": "Strecke messen",
|
|
141
|
-
"ui.measure-distance.instructions":
|
|
142
|
-
"Klicken Sie auf die Karte um Punkte hinzuzufügen. Ein Doppelklick schließt die Strecke ab.",
|
|
143
|
-
"ui.measure-distance.instructions-done":
|
|
144
|
-
"Klicken Sie auf die Karte um eine neue Strecke zu messen.",
|
|
145
|
-
"ui.measure-distance.measurement": "Streckenlänge",
|
|
146
|
-
},
|
|
147
|
-
en: {
|
|
148
|
-
"ui.measure-distance.title": "Measure distance",
|
|
149
|
-
"ui.measure-distance.instructions":
|
|
150
|
-
"Click on the map to add points. Double click to end the line.",
|
|
151
|
-
"ui.measure-distance.instructions-done":
|
|
152
|
-
"Click on the map to start measuring a new line.",
|
|
153
|
-
"ui.measure-distance.measurement": "Distance",
|
|
154
|
-
},
|
|
155
|
-
} as const;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* This plugin will allow drawing a link maker (to be used with the appropriate component)
|
|
159
|
-
* and/or display such a measurement.
|
|
160
|
-
*
|
|
161
|
-
* @param {object} [options] options
|
|
162
|
-
* @param [options.name="measureDistance"] name name of the editor (must be unique per mapsight instance)
|
|
163
|
-
* @param [options.mapControllerName="map"] map controller name
|
|
164
|
-
* @param [options.featureSourcesControllerName="featureSources"] feature sources controller name
|
|
165
|
-
* @param [options.featureSelectionsControllerName="featureSelections"] feature selections controller name
|
|
166
|
-
* @param [options.enableDrawing=true] enable drawing
|
|
167
|
-
* @param [options.displayStyle="features"] style for finished draw
|
|
168
|
-
* @param [options.drawStyle="drawMeasure"] style while drawing
|
|
169
|
-
* @param [options.drawInteraction] draw interaction
|
|
170
|
-
* @returns {import('../../types').PluginInstance} plugin
|
|
171
|
-
*/
|
|
172
|
-
export default function createMeasureDistancePlugin(
|
|
173
|
-
options: {
|
|
174
|
-
name?: string;
|
|
175
|
-
enableDrawing?: boolean;
|
|
176
|
-
mapControllerName?: string;
|
|
177
|
-
featureSourcesControllerName?: string;
|
|
178
|
-
featureSelectionsControllerName?: string;
|
|
179
|
-
displayStyle?: string;
|
|
180
|
-
drawStyle?: string;
|
|
181
|
-
drawInteraction?: Definition | null;
|
|
182
|
-
} = {},
|
|
183
|
-
): PluginInstance {
|
|
184
|
-
const {
|
|
185
|
-
name = "measureDistance",
|
|
186
|
-
enableDrawing = true,
|
|
187
|
-
mapControllerName = MAP,
|
|
188
|
-
featureSourcesControllerName = FEATURE_SOURCES,
|
|
189
|
-
featureSelectionsControllerName = FEATURE_SELECTIONS,
|
|
190
|
-
displayStyle = DEFAULT_DISPLAY_STYLE,
|
|
191
|
-
drawStyle = "drawMeasure",
|
|
192
|
-
drawInteraction = DrawInteraction,
|
|
193
|
-
} = options;
|
|
194
|
-
|
|
195
|
-
const dict = getDictionary();
|
|
196
|
-
|
|
197
|
-
Object.entries(translations).forEach(([key, obj]) => {
|
|
198
|
-
Object.assign((dict[key] ??= {}), obj);
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
return {
|
|
202
|
-
afterCreate: function measureDistancePlugin({store}) {
|
|
203
|
-
if (!enableDrawing || !store) {
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (drawInteraction) {
|
|
208
|
-
di.injectDefinitions([drawInteraction]);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
setupDrawInteraction({
|
|
212
|
-
name: name,
|
|
213
|
-
store: store,
|
|
214
|
-
mapControllerName: mapControllerName,
|
|
215
|
-
featureSourcesControllerName: featureSourcesControllerName,
|
|
216
|
-
featureSelectionsControllerName:
|
|
217
|
-
featureSelectionsControllerName,
|
|
218
|
-
drawStyle: drawStyle,
|
|
219
|
-
displayStyle: displayStyle,
|
|
220
|
-
});
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type {Definition} from "@mapsight/core/ol-proxy";
|
|
2
|
-
import {di} from "@mapsight/core/ol-proxy";
|
|
3
|
-
import GeoJSONFormat from "@mapsight/core/ol-proxy/definitions/format/GeoJSONFormat";
|
|
4
|
-
import DoubleClickZoomInteraction from "@mapsight/core/ol-proxy/definitions/interaction/DoubleClickZoomInteraction";
|
|
5
|
-
import DragPanInteraction from "@mapsight/core/ol-proxy/definitions/interaction/DragPanInteraction";
|
|
6
|
-
import KeyboardPanInteraction from "@mapsight/core/ol-proxy/definitions/interaction/KeyboardPanInteraction";
|
|
7
|
-
import KeyboardZoomInteraction from "@mapsight/core/ol-proxy/definitions/interaction/KeyboardZoomInteraction";
|
|
8
|
-
import MouseWheelZoomInteraction from "@mapsight/core/ol-proxy/definitions/interaction/MouseWheelZoomInteraction";
|
|
9
|
-
import PinchZoomInteraction from "@mapsight/core/ol-proxy/definitions/interaction/PinchZoomInteraction";
|
|
10
|
-
import SelectInteraction from "@mapsight/core/ol-proxy/definitions/interaction/SelectInteraction";
|
|
11
|
-
import TileLayer from "@mapsight/core/ol-proxy/definitions/layer/TileLayer";
|
|
12
|
-
import VectorLayer from "@mapsight/core/ol-proxy/definitions/layer/VectorLayer";
|
|
13
|
-
import VectorOverlayLayer from "@mapsight/core/ol-proxy/definitions/layer/VectorOverlayLayer";
|
|
14
|
-
import OSMSource from "@mapsight/core/ol-proxy/definitions/source/OsmSource";
|
|
15
|
-
import TileWMSSource from "@mapsight/core/ol-proxy/definitions/source/TileWMSSource";
|
|
16
|
-
import VectorFeatureSource from "@mapsight/core/ol-proxy/definitions/source/VectorFeatureSource";
|
|
17
|
-
import VectorSource from "@mapsight/core/ol-proxy/definitions/source/VectorSource";
|
|
18
|
-
|
|
19
|
-
import type {PluginInstance} from "../../types";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* This plugin will inject the ol-proxy dependencies required by default.
|
|
23
|
-
*
|
|
24
|
-
* @param {object} [options] options
|
|
25
|
-
* @param {Array<import('@mapsight/core/ol-proxy').Definition<any>>} [options.dependencies={}] add or override dependencies
|
|
26
|
-
* @returns {import('../../types').PluginInstance} plugin instance
|
|
27
|
-
*/
|
|
28
|
-
export default function createPlugin({
|
|
29
|
-
dependencies = {},
|
|
30
|
-
}: {
|
|
31
|
-
dependencies?: Definition[] | Record<string, Definition>;
|
|
32
|
-
} = {}): PluginInstance {
|
|
33
|
-
return {
|
|
34
|
-
afterInit(_context) {
|
|
35
|
-
di.injectDefinitions([
|
|
36
|
-
// layer
|
|
37
|
-
TileLayer,
|
|
38
|
-
VectorLayer,
|
|
39
|
-
VectorOverlayLayer,
|
|
40
|
-
|
|
41
|
-
// source
|
|
42
|
-
VectorSource,
|
|
43
|
-
// TODO: Make optional to reduce bundle size
|
|
44
|
-
TileWMSSource,
|
|
45
|
-
OSMSource,
|
|
46
|
-
VectorFeatureSource,
|
|
47
|
-
|
|
48
|
-
// format
|
|
49
|
-
GeoJSONFormat,
|
|
50
|
-
// interaction
|
|
51
|
-
SelectInteraction,
|
|
52
|
-
DragPanInteraction,
|
|
53
|
-
DoubleClickZoomInteraction,
|
|
54
|
-
PinchZoomInteraction,
|
|
55
|
-
MouseWheelZoomInteraction,
|
|
56
|
-
KeyboardPanInteraction,
|
|
57
|
-
KeyboardZoomInteraction,
|
|
58
|
-
]);
|
|
59
|
-
|
|
60
|
-
if (Array.isArray(dependencies)) {
|
|
61
|
-
di.injectDefinitions(dependencies);
|
|
62
|
-
} else {
|
|
63
|
-
// workaround for legacy code
|
|
64
|
-
di.injectDefinitions(Object.values(dependencies));
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
}
|