@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,223 +0,0 @@
|
|
|
1
|
-
import type {Store} from "@reduxjs/toolkit";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
deselectAll,
|
|
5
|
-
selectExclusively,
|
|
6
|
-
} from "@mapsight/core/lib/feature-selections/actions";
|
|
7
|
-
import {createFeatureSelectionSelector} from "@mapsight/core/lib/feature-selections/selectors";
|
|
8
|
-
import type {FeatureId} from "@mapsight/core/types";
|
|
9
|
-
|
|
10
|
-
import getQueryStringParameter from "@mapsight/lib-js/string/get-query-string-parameter";
|
|
11
|
-
import removeQueryStringParameter from "@mapsight/lib-js/string/remove-query-string-parameter";
|
|
12
|
-
import {observeStateOnce} from "@mapsight/lib-redux/observe-state";
|
|
13
|
-
|
|
14
|
-
import {VIEW_MAP_ONLY} from "../../config/constants/app";
|
|
15
|
-
import * as c from "../../config/constants/controllers";
|
|
16
|
-
import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
|
|
17
|
-
import {setView} from "../../store/actions";
|
|
18
|
-
import type {RootStateSlice} from "../../store/selectors";
|
|
19
|
-
import {isViewMobile, viewSelector} from "../../store/selectors";
|
|
20
|
-
import type {PluginInstance} from "../../types";
|
|
21
|
-
|
|
22
|
-
const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
|
|
23
|
-
const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
|
|
24
|
-
const defaultGetParameter = "feature";
|
|
25
|
-
const defaultAutoRemoveParameters = [defaultGetParameter, "cHash"];
|
|
26
|
-
|
|
27
|
-
function selectFeature(
|
|
28
|
-
store: Store,
|
|
29
|
-
featureSelectionsController: string,
|
|
30
|
-
featureSelection: string,
|
|
31
|
-
featureId: FeatureId,
|
|
32
|
-
setMapOnlyViewInMobile: boolean,
|
|
33
|
-
) {
|
|
34
|
-
store.dispatch(
|
|
35
|
-
selectExclusively(
|
|
36
|
-
featureSelectionsController,
|
|
37
|
-
featureSelection,
|
|
38
|
-
featureId,
|
|
39
|
-
),
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
setMapOnlyViewInMobile &&
|
|
44
|
-
isViewMobile(viewSelector(store.getState() as RootStateSlice))
|
|
45
|
-
) {
|
|
46
|
-
store.dispatch(setView(VIEW_MAP_ONLY));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Hooks into global window.history[fn] to react to
|
|
52
|
-
* history state changes from the app (as opposed to `window.onpopstate` which
|
|
53
|
-
* triggers when a browser ui actions causes a history state change).
|
|
54
|
-
*
|
|
55
|
-
* @param fn function name to patch (e.g. "pushState" or "replaceState")
|
|
56
|
-
* @param callback will get called _after_ that function has been called
|
|
57
|
-
*/
|
|
58
|
-
function patchWindowHistoryFunction(
|
|
59
|
-
fn: "pushState" | "replaceState",
|
|
60
|
-
callback: (state: unknown) => void,
|
|
61
|
-
) {
|
|
62
|
-
const originalFn = window.history[fn];
|
|
63
|
-
|
|
64
|
-
window.history[fn] = (state, ...rest) => {
|
|
65
|
-
const returnValue: unknown = originalFn.apply(window.history, [
|
|
66
|
-
state,
|
|
67
|
-
...rest,
|
|
68
|
-
]);
|
|
69
|
-
callback(state);
|
|
70
|
-
return returnValue;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* This plugin will select the feature identified by the defined get parameter and optionally remove parameters from the
|
|
76
|
-
* window.location using the history API.
|
|
77
|
-
*
|
|
78
|
-
* @param [options] options
|
|
79
|
-
* @param [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
|
|
80
|
-
* @param [options.featureSelection="select"] name of the feature selection to track
|
|
81
|
-
* @param [options.getParameter="feature"] name get parameter identifying the feature
|
|
82
|
-
* @param [options.setMapOnlyViewInMobile=true] will set MapOnly view on mobile if a feature has been linked
|
|
83
|
-
* @param [options.autoRemoveParameters] list of get parameters to remove once the feature
|
|
84
|
-
* has been selected, defaults to ["feature", "cHash"]. Pass false to disable.
|
|
85
|
-
* @param [options.clearMissingParameters] if set to true or an array clear if getParameter and the mentioned
|
|
86
|
-
* parameters are missing. don't clear if getParameter is missing, but one of the
|
|
87
|
-
* mentioned parameters is there. we keep this to be safe in race condition
|
|
88
|
-
* where ?feature is set but ?preselect is not where we want to keep the implicit
|
|
89
|
-
* preselect of the feature parameter
|
|
90
|
-
*
|
|
91
|
-
* @returns plugin instance
|
|
92
|
-
*/
|
|
93
|
-
export default function createPlugin(
|
|
94
|
-
options: {
|
|
95
|
-
featureSelectionsController?: string;
|
|
96
|
-
featureSelection?: string;
|
|
97
|
-
getParameter?: string;
|
|
98
|
-
setMapOnlyViewInMobile?: boolean;
|
|
99
|
-
autoRemoveParameters?: string[] | false;
|
|
100
|
-
clearMissingParameters?: string[] | false;
|
|
101
|
-
} = {},
|
|
102
|
-
): PluginInstance {
|
|
103
|
-
const {
|
|
104
|
-
featureSelectionsController = defaultFeatureSelectionsController,
|
|
105
|
-
featureSelection = defaultFeatureSelection,
|
|
106
|
-
getParameter = defaultGetParameter,
|
|
107
|
-
autoRemoveParameters = defaultAutoRemoveParameters,
|
|
108
|
-
setMapOnlyViewInMobile = true,
|
|
109
|
-
clearMissingParameters = null,
|
|
110
|
-
} = options;
|
|
111
|
-
const selectorSelectedFeatures = createFeatureSelectionSelector(
|
|
112
|
-
featureSelectionsController,
|
|
113
|
-
featureSelection,
|
|
114
|
-
);
|
|
115
|
-
|
|
116
|
-
let isHandled = false;
|
|
117
|
-
return {
|
|
118
|
-
afterRender: function handleFeatureDeepLink(context) {
|
|
119
|
-
if (isHandled) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
isHandled = true;
|
|
124
|
-
|
|
125
|
-
const {store} = context;
|
|
126
|
-
if (!store) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// We always do this action even if we should already have done that
|
|
131
|
-
// by re-hydrating the state as it may not have had the dynamic get parameter passed along
|
|
132
|
-
const featureId = getQueryStringParameter(
|
|
133
|
-
window.location.search,
|
|
134
|
-
getParameter,
|
|
135
|
-
);
|
|
136
|
-
if (featureId) {
|
|
137
|
-
selectFeature(
|
|
138
|
-
store,
|
|
139
|
-
featureSelectionsController,
|
|
140
|
-
featureSelection,
|
|
141
|
-
featureId,
|
|
142
|
-
setMapOnlyViewInMobile,
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
if (autoRemoveParameters && autoRemoveParameters.length) {
|
|
146
|
-
// if we can, remove initial feature id from url
|
|
147
|
-
// when the selection changes (e.g. panel is closed/different feature is selected)
|
|
148
|
-
observeStateOnce(store, selectorSelectedFeatures, () => {
|
|
149
|
-
let newUrl = window.location.href;
|
|
150
|
-
autoRemoveParameters.forEach((key) => {
|
|
151
|
-
newUrl = removeQueryStringParameter(newUrl, key);
|
|
152
|
-
});
|
|
153
|
-
window.history.pushState(
|
|
154
|
-
null,
|
|
155
|
-
window.document.title,
|
|
156
|
-
newUrl,
|
|
157
|
-
);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
} else {
|
|
161
|
-
if (clearMissingParameters) {
|
|
162
|
-
let found: string | null = null;
|
|
163
|
-
while (!found && clearMissingParameters[0]) {
|
|
164
|
-
found = getQueryStringParameter(
|
|
165
|
-
window.location.search,
|
|
166
|
-
clearMissingParameters.shift() as string,
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
if (!found) {
|
|
170
|
-
store.dispatch(
|
|
171
|
-
deselectAll(
|
|
172
|
-
featureSelectionsController,
|
|
173
|
-
featureSelection,
|
|
174
|
-
),
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// handle select via state at relaod
|
|
179
|
-
if (
|
|
180
|
-
window.history.state &&
|
|
181
|
-
"featureId" in window.history.state &&
|
|
182
|
-
window.history.state.featureId
|
|
183
|
-
) {
|
|
184
|
-
selectFeature(
|
|
185
|
-
store,
|
|
186
|
-
featureSelectionsController,
|
|
187
|
-
featureSelection,
|
|
188
|
-
window.history.state.featureId,
|
|
189
|
-
setMapOnlyViewInMobile,
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const handleHistoryStateChange = (state) => {
|
|
195
|
-
if (state && "featureId" in state) {
|
|
196
|
-
if (state.featureId) {
|
|
197
|
-
selectFeature(
|
|
198
|
-
store,
|
|
199
|
-
featureSelectionsController,
|
|
200
|
-
featureSelection,
|
|
201
|
-
state.featureId,
|
|
202
|
-
setMapOnlyViewInMobile,
|
|
203
|
-
);
|
|
204
|
-
} else if (state?.featureId === null) {
|
|
205
|
-
// test for null to inhibit action if featureId is simply omitted
|
|
206
|
-
store.dispatch(
|
|
207
|
-
deselectAll(
|
|
208
|
-
featureSelectionsController,
|
|
209
|
-
featureSelection,
|
|
210
|
-
),
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
patchWindowHistoryFunction("pushState", handleHistoryStateChange);
|
|
217
|
-
patchWindowHistoryFunction(
|
|
218
|
-
"replaceState",
|
|
219
|
-
handleHistoryStateChange,
|
|
220
|
-
);
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import merge from "lodash/merge";
|
|
2
|
-
|
|
3
|
-
import type {PathItem} from "@mapsight/core/lib/base/actions";
|
|
4
|
-
import {mergeAll} from "@mapsight/core/lib/base/actions";
|
|
5
|
-
import type {State} from "@mapsight/core/types";
|
|
6
|
-
|
|
7
|
-
import pickPaths from "@mapsight/lib-js/object/pickPaths";
|
|
8
|
-
import {createStorage} from "@mapsight/lib-redux/local-storage";
|
|
9
|
-
|
|
10
|
-
import type {PluginInstance} from "../../types";
|
|
11
|
-
|
|
12
|
-
const defaultLocalStorageKey = "mapsight--v3-ui";
|
|
13
|
-
const defaultLocalStoragePaths = [
|
|
14
|
-
//['app', 'isFullscreen'],
|
|
15
|
-
//['app', 'view'],
|
|
16
|
-
["app", "userPreferenceListVisible"],
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This plugin will synchronize some paths of the store with the browser's local storage and restored on initialization.
|
|
21
|
-
* See {CreateOptions.localStorageKey} and {CreateOptions.localStoragePaths} for configuration.
|
|
22
|
-
*
|
|
23
|
-
* @param [options] options
|
|
24
|
-
* @param [options.localStorageKey="mapsight--v3-ui"] storage key
|
|
25
|
-
* @param [options.localStoragePaths] paths to store
|
|
26
|
-
* @returns plugin instance
|
|
27
|
-
*/
|
|
28
|
-
export default function createPlugin({
|
|
29
|
-
localStorageKey = defaultLocalStorageKey,
|
|
30
|
-
localStoragePaths = defaultLocalStoragePaths,
|
|
31
|
-
} = {}): PluginInstance {
|
|
32
|
-
if (typeof window === "undefined") {
|
|
33
|
-
console.error("This plugin will only work as intended in the browser!");
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
let restoredState: Partial<State>;
|
|
37
|
-
let isRestored = false;
|
|
38
|
-
let storage: ReturnType<typeof createStorage>;
|
|
39
|
-
|
|
40
|
-
return {
|
|
41
|
-
afterInit: function localStorageInitPlugin({
|
|
42
|
-
initialState,
|
|
43
|
-
isStateReHydrated,
|
|
44
|
-
}) {
|
|
45
|
-
storage = createStorage(localStorageKey);
|
|
46
|
-
|
|
47
|
-
// override initial state from local storage
|
|
48
|
-
const savedState = storage.getLocalStorageState();
|
|
49
|
-
restoredState = pickPaths(savedState, localStoragePaths);
|
|
50
|
-
|
|
51
|
-
// We cannot change the state before we have not at least rendered the
|
|
52
|
-
// dehydrated html at least once to prevent a mixed up DOM when server-side
|
|
53
|
-
// state and client-side determined state mismatch or has changed
|
|
54
|
-
// since page load. If the app is not re-hydrated but initially rendered
|
|
55
|
-
// in the client we can omit the additional render and set the restored
|
|
56
|
-
// state on creation (before render).
|
|
57
|
-
if (!isStateReHydrated) {
|
|
58
|
-
isRestored = true;
|
|
59
|
-
merge(initialState, restoredState);
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
afterCreate: function localStorageCreatePlugin({store}) {
|
|
63
|
-
// sync local storage
|
|
64
|
-
if (store && localStoragePaths) {
|
|
65
|
-
storage.synchronizePathsToLocalStorage(
|
|
66
|
-
store,
|
|
67
|
-
localStoragePaths,
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
afterRender: function localStorageAfterRenderPlugin({store}) {
|
|
72
|
-
if (store && !isRestored) {
|
|
73
|
-
store.dispatch(
|
|
74
|
-
mergeAll(restoredState as Record<PathItem, unknown>),
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import {observeState} from "@mapsight/lib-redux/observe-state";
|
|
2
|
-
|
|
3
|
-
import type {View} from "../../config/constants/app";
|
|
4
|
-
import {viewSelector} from "../../store/selectors";
|
|
5
|
-
import type {PluginInstance} from "../../types";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* This plugin will request native fullscreen when entering one of the
|
|
9
|
-
* specified views.
|
|
10
|
-
*
|
|
11
|
-
* @param [options] options
|
|
12
|
-
* @param [options.views=['fullscreen']] views to enable native fullscreen on
|
|
13
|
-
* @param [options.checkInitially=true] if set the view will be checked on init and depending on the specified list may request native fullscreen
|
|
14
|
-
* @returns plugin
|
|
15
|
-
*/
|
|
16
|
-
export default function createNativeFullscreenPlugin(
|
|
17
|
-
options: {
|
|
18
|
-
elementSelector?: string;
|
|
19
|
-
views?: View[];
|
|
20
|
-
checkInitially?: boolean;
|
|
21
|
-
} = {},
|
|
22
|
-
): PluginInstance {
|
|
23
|
-
if (typeof window === "undefined") {
|
|
24
|
-
throw new Error(
|
|
25
|
-
"Cannot use native fullscreen plugin outside of browser!",
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const {
|
|
30
|
-
elementSelector = ".ms3-wrapper",
|
|
31
|
-
views = ["fullscreen"],
|
|
32
|
-
checkInitially = true,
|
|
33
|
-
} = options;
|
|
34
|
-
|
|
35
|
-
let reqFS: string;
|
|
36
|
-
let exitFS: string;
|
|
37
|
-
let fSElement: string;
|
|
38
|
-
if ("requestFullscreen" in document.documentElement) {
|
|
39
|
-
reqFS = "requestFullscreen";
|
|
40
|
-
exitFS = "exitFullscreen";
|
|
41
|
-
fSElement = "fullscreenElement";
|
|
42
|
-
} else if ("webkitRequestFullscreen" in document.documentElement) {
|
|
43
|
-
reqFS = "webkitRequestFullscreen";
|
|
44
|
-
exitFS = "webkitExitFullscreen";
|
|
45
|
-
fSElement = "webkitFullscreenElement";
|
|
46
|
-
} else {
|
|
47
|
-
return {}; // nothing to do
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const handleState = (view) => {
|
|
51
|
-
const element = document.querySelector(elementSelector);
|
|
52
|
-
if (!element) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const elementIsFullscreen = document[fSElement]
|
|
57
|
-
? element === document[fSElement]
|
|
58
|
-
: false;
|
|
59
|
-
const viewIsFullscreen = views.includes(view);
|
|
60
|
-
|
|
61
|
-
if (elementIsFullscreen !== viewIsFullscreen) {
|
|
62
|
-
if (viewIsFullscreen) {
|
|
63
|
-
element[reqFS]();
|
|
64
|
-
} else {
|
|
65
|
-
document[exitFS]();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
afterCreate: function nativeFullscreenPlugin({store}) {
|
|
72
|
-
if (!store) return;
|
|
73
|
-
|
|
74
|
-
if (checkInitially) {
|
|
75
|
-
handleState(viewSelector(store.getState()));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
observeState(store, viewSelector, handleState);
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import type {State} from "@mapsight/core/types";
|
|
2
|
-
|
|
3
|
-
import {getAndObserveState} from "@mapsight/lib-redux/observe-state";
|
|
4
|
-
|
|
5
|
-
import {VIEW_FULLSCREEN, VIEW_MAP_ONLY} from "../../config/constants/app";
|
|
6
|
-
import type {RootStateSlice} from "../../store/selectors";
|
|
7
|
-
import {viewSelector} from "../../store/selectors";
|
|
8
|
-
import type {PluginInstance} from "../../types";
|
|
9
|
-
|
|
10
|
-
function onTouchMoveNoScroll(e: TouchEvent) {
|
|
11
|
-
e.preventDefault();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* create a no-scroll-handler
|
|
16
|
-
*
|
|
17
|
-
* @param selector redux store selector to test if scroll should be inhibited
|
|
18
|
-
* @param [noScrollCssClass] class to set, default = 'ms3--map-no-scroll'
|
|
19
|
-
* @returns function to update no-scroll state.
|
|
20
|
-
*/
|
|
21
|
-
export function createNoScrollHandler(
|
|
22
|
-
selector: (state: unknown) => boolean,
|
|
23
|
-
noScrollCssClass = "ms3--map-no-scroll",
|
|
24
|
-
) {
|
|
25
|
-
return (state: State, forceAllow: boolean) => {
|
|
26
|
-
const isNoScroll = !forceAllow && selector(state);
|
|
27
|
-
if (isNoScroll) {
|
|
28
|
-
window.document.documentElement.classList.add(noScrollCssClass);
|
|
29
|
-
window.document.addEventListener("touchmove", onTouchMoveNoScroll);
|
|
30
|
-
} else {
|
|
31
|
-
window.document.documentElement.classList.remove(noScrollCssClass);
|
|
32
|
-
window.document.removeEventListener(
|
|
33
|
-
"touchmove",
|
|
34
|
-
onTouchMoveNoScroll,
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return isNoScroll;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export const defaultNoScrollHandler = createNoScrollHandler(
|
|
43
|
-
(state: RootStateSlice) => {
|
|
44
|
-
const view = viewSelector(state);
|
|
45
|
-
return view === VIEW_MAP_ONLY || view === VIEW_FULLSCREEN;
|
|
46
|
-
},
|
|
47
|
-
);
|
|
48
|
-
export const defaultNoScrollObserveSelector = viewSelector;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* This plugin will observe the state for changes to the view (default) and will call the defined handler.
|
|
52
|
-
* By default, this will disable scrolling the document and add a class to the document element
|
|
53
|
-
* when the view is in either "mapOnly" or "fullscreen" view.
|
|
54
|
-
*
|
|
55
|
-
* @param [options] options
|
|
56
|
-
* @param [options.noScrollHandler] handler to call (will be passed the current state)
|
|
57
|
-
* @param [options.noScrollObserveSelector] selector to observe state with
|
|
58
|
-
* @returns {import('../../types').PluginInstance} plugin instance
|
|
59
|
-
*/
|
|
60
|
-
export default function createPlugin(
|
|
61
|
-
options: {
|
|
62
|
-
noScrollCssClass?: string;
|
|
63
|
-
noScrollObserveSelector?: (state: State) => unknown;
|
|
64
|
-
noScrollHandler?: (state: State, forceAllow: boolean) => void;
|
|
65
|
-
} = {},
|
|
66
|
-
): PluginInstance {
|
|
67
|
-
const {
|
|
68
|
-
noScrollHandler = defaultNoScrollHandler,
|
|
69
|
-
noScrollObserveSelector = defaultNoScrollObserveSelector,
|
|
70
|
-
} = options;
|
|
71
|
-
|
|
72
|
-
if (typeof window === "undefined") {
|
|
73
|
-
console.info(
|
|
74
|
-
"This plugin might not work as intended, if not run in the browser!",
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return {
|
|
79
|
-
afterCreate: function noScrollPlugin(context) {
|
|
80
|
-
const {store} = context;
|
|
81
|
-
|
|
82
|
-
if (store) {
|
|
83
|
-
getAndObserveState<State>(
|
|
84
|
-
store,
|
|
85
|
-
noScrollObserveSelector,
|
|
86
|
-
(_old, _new, state) => noScrollHandler(state, false),
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {APP_EVENT_PARTIAL_CONTENT_CHANGED} from "../../components/helping/app-channel";
|
|
2
|
-
import type {PluginInstance} from "../../types";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This plugin will call the partialChangeHandler (@see {CreateOptions.partialChangeHandler}) when some partial content
|
|
6
|
-
* has changed in the mapsight ui controlled dom, allowing for manipulation of the changed dom (e.g. displaying charts in the
|
|
7
|
-
* feature selection info)
|
|
8
|
-
*
|
|
9
|
-
* @param [_options] options currently not used
|
|
10
|
-
* @returns plugin instance
|
|
11
|
-
*/
|
|
12
|
-
export default function createPlugin(_options = {}): PluginInstance {
|
|
13
|
-
return {
|
|
14
|
-
afterCreate: function partialContentChangedEventPlugin(context) {
|
|
15
|
-
if (context.createOptions.partialChangeHandler) {
|
|
16
|
-
context.appChannelListeners.push([
|
|
17
|
-
APP_EVENT_PARTIAL_CONTENT_CHANGED,
|
|
18
|
-
context.createOptions.partialChangeHandler,
|
|
19
|
-
]);
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createFeatureSelectionSelector,
|
|
3
|
-
getFilteredFeatures,
|
|
4
|
-
} from "@mapsight/core/lib/feature-selections/selectors";
|
|
5
|
-
|
|
6
|
-
import {trackEvent} from "@mapsight/lib-js/misc/piwik";
|
|
7
|
-
import {observeState} from "@mapsight/lib-redux/observe-state";
|
|
8
|
-
|
|
9
|
-
import * as c from "../../config/constants/controllers";
|
|
10
|
-
import {FEATURE_SELECTION_SELECT} from "../../config/feature/selections";
|
|
11
|
-
import type {PluginInstance} from "../../types";
|
|
12
|
-
|
|
13
|
-
const defaultCategory = "Mapsight";
|
|
14
|
-
const defaultAction = "SelectedFeature";
|
|
15
|
-
|
|
16
|
-
const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
|
|
17
|
-
const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This plugin will track piwik actions when the a feature is selected
|
|
21
|
-
*
|
|
22
|
-
* @see `@mapsight/lib-js/misc/piwik`
|
|
23
|
-
*
|
|
24
|
-
* @param [options] options
|
|
25
|
-
* @param [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
|
|
26
|
-
* @param [options.featureSelection="select"] name of the feature selection to track
|
|
27
|
-
* @param [options.category="Mapsight"] piwik category to track
|
|
28
|
-
* @param [options.action="SelectedFeature"] piwik action to track
|
|
29
|
-
* @returns plugin instance
|
|
30
|
-
*/
|
|
31
|
-
export default function createPlugin(
|
|
32
|
-
options: {
|
|
33
|
-
featureSelectionsController?: string;
|
|
34
|
-
featureSelection?: string;
|
|
35
|
-
category?: string;
|
|
36
|
-
action?: string;
|
|
37
|
-
} = {},
|
|
38
|
-
): PluginInstance {
|
|
39
|
-
const {
|
|
40
|
-
featureSelectionsController = defaultFeatureSelectionsController,
|
|
41
|
-
featureSelection = defaultFeatureSelection,
|
|
42
|
-
category = defaultCategory,
|
|
43
|
-
action = defaultAction,
|
|
44
|
-
} = options;
|
|
45
|
-
|
|
46
|
-
return {
|
|
47
|
-
afterCreate: function piwikTrackFullscreenToggleEvent(context) {
|
|
48
|
-
const {store} = context;
|
|
49
|
-
if (!store) return;
|
|
50
|
-
|
|
51
|
-
observeState(
|
|
52
|
-
store,
|
|
53
|
-
createFeatureSelectionSelector(
|
|
54
|
-
featureSelectionsController,
|
|
55
|
-
featureSelection,
|
|
56
|
-
),
|
|
57
|
-
(selection) => {
|
|
58
|
-
const filteredFeatures = getFilteredFeatures(selection);
|
|
59
|
-
if (!filteredFeatures) return;
|
|
60
|
-
|
|
61
|
-
const hasFeatures = !!filteredFeatures.length;
|
|
62
|
-
|
|
63
|
-
if (hasFeatures) {
|
|
64
|
-
trackEvent(
|
|
65
|
-
category,
|
|
66
|
-
action,
|
|
67
|
-
featureSelection,
|
|
68
|
-
JSON.stringify(filteredFeatures),
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
); // TODO: Check!
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {trackEvent} from "@mapsight/lib-js/misc/piwik";
|
|
2
|
-
import {observeState} from "@mapsight/lib-redux/observe-state";
|
|
3
|
-
|
|
4
|
-
import {isFullscreenSelector} from "../../store/selectors";
|
|
5
|
-
import type {PluginInstance} from "../../types";
|
|
6
|
-
|
|
7
|
-
const defaultCategory = "Mapsight";
|
|
8
|
-
const defaultActionEnabled = "FullscreenEnabled";
|
|
9
|
-
const defaultActionDisabled = "FullscreenDisabled";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* This plugin will track piwik actions when the fullscreen mode is en-/disabled.
|
|
13
|
-
*
|
|
14
|
-
* @see `@mapsight/lib-js/misc/piwik`
|
|
15
|
-
*
|
|
16
|
-
* @param [options] options
|
|
17
|
-
* @param [options.category="Mapsight"] piwik category to track
|
|
18
|
-
* @param [options.actionEnabled="FullscreenEnabled"] piwik action to track when enabling fullscreen
|
|
19
|
-
* @param [options.actionDisabled="FullscreenDisabled"] piwik action to track when disabling fullscreen
|
|
20
|
-
* @returns plugin instance
|
|
21
|
-
*/
|
|
22
|
-
export default function createPlugin(
|
|
23
|
-
options: {
|
|
24
|
-
category?: string;
|
|
25
|
-
actionEnabled?: string;
|
|
26
|
-
actionDisabled?: string;
|
|
27
|
-
} = {},
|
|
28
|
-
): PluginInstance {
|
|
29
|
-
const {
|
|
30
|
-
category = defaultCategory,
|
|
31
|
-
actionEnabled = defaultActionEnabled,
|
|
32
|
-
actionDisabled = defaultActionDisabled,
|
|
33
|
-
} = options;
|
|
34
|
-
|
|
35
|
-
return {
|
|
36
|
-
afterCreate: function piwikTrackFullscreenToggleEvent(context) {
|
|
37
|
-
const {store} = context;
|
|
38
|
-
if (!store) return;
|
|
39
|
-
|
|
40
|
-
// track fullscreen toggles
|
|
41
|
-
observeState(store, isFullscreenSelector, (newValue) =>
|
|
42
|
-
trackEvent(category, newValue ? actionEnabled : actionDisabled),
|
|
43
|
-
);
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import {FeatureSourcesController} from "@mapsight/core/lib/feature-sources/controller";
|
|
2
|
-
|
|
3
|
-
import * as c from "../../config/constants/controllers";
|
|
4
|
-
import {searchResultSelectionFeatureSourceSelector} from "../../store/selectors";
|
|
5
|
-
import type {PluginInstance} from "../../types";
|
|
6
|
-
|
|
7
|
-
const defaultFeatureSourceId = "searchResult";
|
|
8
|
-
const defaultFeatureSourcesControllerName = c.FEATURE_SOURCES;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* This plugin will bind the search result feature source to the mapsight ui state
|
|
12
|
-
*
|
|
13
|
-
* @param [options] options
|
|
14
|
-
* @param [options.featureSourceId] name of the feature source, default = "searchResult"
|
|
15
|
-
* @param [options.featureSourcesControllerName] name of the feature sources controller, defaults to mapsight ui default
|
|
16
|
-
* @returns plugin instance
|
|
17
|
-
*/
|
|
18
|
-
export default function createPlugin(
|
|
19
|
-
options: {
|
|
20
|
-
featureSourceId?: string;
|
|
21
|
-
featureSourcesControllerName?: string;
|
|
22
|
-
} = {},
|
|
23
|
-
): PluginInstance {
|
|
24
|
-
const {
|
|
25
|
-
featureSourceId = defaultFeatureSourceId,
|
|
26
|
-
featureSourcesControllerName = defaultFeatureSourcesControllerName,
|
|
27
|
-
} = options;
|
|
28
|
-
|
|
29
|
-
return {
|
|
30
|
-
afterCreate: function searchPlugin(context) {
|
|
31
|
-
const controller =
|
|
32
|
-
context.controllers?.[featureSourcesControllerName];
|
|
33
|
-
|
|
34
|
-
if (controller && controller instanceof FeatureSourcesController) {
|
|
35
|
-
controller.bindFeatureSourceToStore(
|
|
36
|
-
featureSourceId,
|
|
37
|
-
searchResultSelectionFeatureSourceSelector,
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
}
|