@mapsight/ui 7.0.3 → 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 +2 -2
- package/dist/components/app.d.ts.map +1 -1
- package/dist/components/app.js +7 -7
- package/dist/components/app.js.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/feature-details-content.js +2 -2
- package/dist/components/feature-details-content/feature-details-content.js.map +1 -1
- package/dist/components/feature-details-content/index.d.ts +4 -6
- package/dist/components/feature-details-content/index.js +6 -7
- package/dist/components/feature-details-content/index.js.map +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/filter.js +2 -2
- package/dist/components/feature-list/filter.js.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/hooks/useFeatureListState.d.ts.map +1 -1
- package/dist/components/feature-list/hooks/useFeatureListState.js +7 -2
- package/dist/components/feature-list/hooks/useFeatureListState.js.map +1 -1
- package/dist/components/feature-list/hooks/useRestoreDocumentScroll.js +1 -1
- package/dist/components/feature-list/hooks/useRestoreDocumentScroll.js.map +1 -1
- package/dist/components/feature-list/hooks/useSelectFeature.js +6 -6
- package/dist/components/feature-list/hooks/useSelectFeature.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 +34 -46
- 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 +4 -6
- package/dist/components/feature-list-cycling/index.js +1 -1
- package/dist/components/feature-list-cycling/index.js.map +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 +4 -16
- package/dist/components/feature-list-sorting/index.d.ts.map +1 -1
- package/dist/components/feature-list-sorting/index.js +6 -7
- package/dist/components/feature-list-sorting/index.js.map +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/index.js +2 -2
- package/dist/components/feature-selection-info/index.js.map +1 -1
- package/dist/components/feature-selection-info/with-sticky-header.d.ts +10 -7
- package/dist/components/feature-selection-info/with-sticky-header.d.ts.map +1 -1
- package/dist/components/feature-selection-info/with-sticky-header.js +4 -4
- package/dist/components/feature-selection-info/with-sticky-header.js.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 +2 -2
- 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/GroupedLayerSwitcher.js +1 -1
- package/dist/components/layer-switcher/GroupedLayerSwitcher.js.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcher.d.ts +13 -12
- package/dist/components/layer-switcher/LayerSwitcher.d.ts.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcher.js +1 -1
- package/dist/components/layer-switcher/LayerSwitcher.js.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts +16 -0
- package/dist/components/layer-switcher/LayerSwitcherContainer.d.ts.map +1 -0
- package/dist/components/layer-switcher/{LayerSwticherContainer.js → LayerSwitcherContainer.js} +4 -8
- package/dist/components/layer-switcher/LayerSwitcherContainer.js.map +1 -0
- package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts +28 -12
- package/dist/components/layer-switcher/LayerSwitcherEntry.d.ts.map +1 -1
- package/dist/components/layer-switcher/LayerSwitcherEntry.js +33 -35
- package/dist/components/layer-switcher/LayerSwitcherEntry.js.map +1 -1
- package/dist/components/layer-switcher/index.d.ts +9 -2
- package/dist/components/layer-switcher/index.d.ts.map +1 -1
- package/dist/components/layer-switcher/index.js +12 -21
- 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/layout/wrapper.js +1 -1
- package/dist/components/layout/wrapper.js.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 +6 -5
- package/dist/components/main-panel/context.d.ts.map +1 -1
- package/dist/components/main-panel/context.js +5 -13
- package/dist/components/main-panel/context.js.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/main-panel/list-toggle-button.js +2 -2
- package/dist/components/main-panel/list-toggle-button.js.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/attribution.js +1 -1
- package/dist/components/map-overlay/attribution.js.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-left.js +2 -2
- package/dist/components/map-overlay/info-overlay-left.js.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/info-overlay-right.js +2 -2
- package/dist/components/map-overlay/info-overlay-right.js.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/legend.js +1 -1
- package/dist/components/map-overlay/legend.js.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-button.js +1 -1
- package/dist/components/map-overlay/measure-distance-button.js.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/mini-legend.js +2 -2
- package/dist/components/map-overlay/mini-legend.js.map +1 -1
- package/dist/components/map-overlay/region-selector.js +2 -2
- package/dist/components/map-overlay/region-selector.js.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/search-overlay.js +1 -1
- package/dist/components/map-overlay/search-overlay.js.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/share-position-link-button.js +1 -1
- package/dist/components/map-overlay/share-position-link-button.js.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 +3 -6
- package/dist/components/map-synced-interlay/index.d.ts.map +1 -1
- package/dist/components/map-synced-interlay/index.js +5 -6
- package/dist/components/map-synced-interlay/index.js.map +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/map-synced-interlay.js +1 -1
- package/dist/components/map-synced-interlay/map-synced-interlay.js.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-synced-interlay/tooltip.js +1 -1
- package/dist/components/map-synced-interlay/tooltip.js.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 +6 -5
- package/dist/components/map.d.ts.map +1 -1
- package/dist/components/map.js +15 -5
- package/dist/components/map.js.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/index.js +2 -2
- package/dist/components/search/index.js.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-entry.js +1 -1
- package/dist/components/search/result-entry.js.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/search/result.js +1 -1
- package/dist/components/search/result.js.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 +21 -3
- package/dist/components/switcher/SwitcherEntry.d.ts.map +1 -1
- package/dist/components/switcher/SwitcherEntry.js +8 -9
- package/dist/components/switcher/SwitcherEntry.js.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 +3 -3
- package/dist/components/tag-switcher/TagSwitcher.d.ts.map +1 -1
- package/dist/components/tag-switcher/TagSwitcher.js.map +1 -1
- package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts +13 -11
- package/dist/components/tag-switcher/createTagSwitcherEntry.d.ts.map +1 -1
- package/dist/components/tag-switcher/createTagSwitcherEntry.js +6 -12
- package/dist/components/tag-switcher/createTagSwitcherEntry.js.map +1 -1
- package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts +12 -10
- package/dist/components/tag-switcher/createTagSwitcherHeader.d.ts.map +1 -1
- package/dist/components/tag-switcher/createTagSwitcherHeader.js +5 -5
- package/dist/components/tag-switcher/createTagSwitcherHeader.js.map +1 -1
- package/dist/components/tag-switcher/index.d.ts +3 -6
- package/dist/components/tag-switcher/index.d.ts.map +1 -1
- package/dist/components/tag-switcher/index.js +6 -7
- package/dist/components/tag-switcher/index.js.map +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 +7 -6
- package/dist/components/view-toggle-button/index.d.ts.map +1 -1
- package/dist/components/view-toggle-button/index.js +8 -8
- package/dist/components/view-toggle-button/index.js.map +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/mobile-button.js.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/view-toggle-button.js +1 -1
- package/dist/components/view-toggle-button/view-toggle-button.js.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/components/view-toggle-button/viewport-button.js.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/components.d.ts +1 -1
- package/dist/helpers/components.d.ts.map +1 -1
- package/dist/helpers/create-action-watcher.d.ts +1 -1
- package/dist/helpers/create-action-watcher.d.ts.map +1 -1
- package/dist/helpers/create-action-watcher.js +1 -1
- package/dist/helpers/create-action-watcher.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/hooks/useMountable.d.ts +2 -2
- package/dist/hooks/useMountable.d.ts.map +1 -1
- package/dist/hooks/useMountable.js +6 -0
- package/dist/hooks/useMountable.js.map +1 -1
- package/dist/hooks/useStickyHeader.d.ts +3 -3
- package/dist/hooks/useStickyHeader.d.ts.map +1 -1
- package/dist/hooks/useStickyHeader.js +3 -3
- package/dist/hooks/useStickyHeader.js.map +1 -1
- package/dist/hooks/useUpdateMapSizeCallback.d.ts +1 -1
- package/dist/hooks/useUpdateMapSizeCallback.d.ts.map +1 -1
- package/dist/hooks/useUpdateMapSizeOnRender.d.ts +1 -1
- package/dist/hooks/useUpdateMapSizeOnRender.d.ts.map +1 -1
- package/dist/hooks/useUpdateMapSizeOnTransitionEnd.d.ts +1 -1
- package/dist/hooks/useUpdateMapSizeOnTransitionEnd.d.ts.map +1 -1
- package/dist/hooks/useUpdateMapSizeOnViewChange.d.ts +1 -1
- package/dist/hooks/useUpdateMapSizeOnViewChange.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/plugins/browser/app-title.d.ts +1 -1
- package/dist/plugins/browser/app-title.d.ts.map +1 -1
- package/dist/plugins/browser/feature-deep-link.d.ts +1 -1
- package/dist/plugins/browser/feature-deep-link.d.ts.map +1 -1
- package/dist/plugins/browser/feature-deep-link.js.map +1 -1
- package/dist/plugins/browser/local-storage.d.ts +1 -1
- package/dist/plugins/browser/local-storage.d.ts.map +1 -1
- package/dist/plugins/browser/native-fullscreen.d.ts +2 -2
- package/dist/plugins/browser/native-fullscreen.d.ts.map +1 -1
- package/dist/plugins/browser/no-scroll.d.ts +3 -4
- package/dist/plugins/browser/no-scroll.d.ts.map +1 -1
- package/dist/plugins/browser/no-scroll.js.map +1 -1
- package/dist/plugins/browser/partial-content-changed-event.d.ts +1 -1
- package/dist/plugins/browser/partial-content-changed-event.d.ts.map +1 -1
- package/dist/plugins/browser/piwik-track-feature-selection-event.d.ts +1 -1
- package/dist/plugins/browser/piwik-track-feature-selection-event.d.ts.map +1 -1
- package/dist/plugins/browser/piwik-track-fullscreen-toggle-event.d.ts +1 -1
- package/dist/plugins/browser/piwik-track-fullscreen-toggle-event.d.ts.map +1 -1
- package/dist/plugins/browser/search.d.ts +1 -1
- package/dist/plugins/browser/search.d.ts.map +1 -1
- package/dist/plugins/browser/share-position-link.d.ts +1 -1
- package/dist/plugins/browser/share-position-link.d.ts.map +1 -1
- package/dist/plugins/browser/share-position-link.js +1 -1
- package/dist/plugins/browser/share-position-link.js.map +1 -1
- package/dist/plugins/browser/toggle-mobile-views.d.ts +1 -1
- package/dist/plugins/browser/toggle-mobile-views.d.ts.map +1 -1
- package/dist/plugins/browser/user-geolocation.d.ts +1 -1
- package/dist/plugins/browser/user-geolocation.d.ts.map +1 -1
- package/dist/plugins/browser/user-geolocation.js +7 -6
- package/dist/plugins/browser/user-geolocation.js.map +1 -1
- package/dist/plugins/browser/views.d.ts +1 -1
- package/dist/plugins/browser/views.d.ts.map +1 -1
- package/dist/plugins/browser-defaults.d.ts +15 -13
- package/dist/plugins/browser-defaults.d.ts.map +1 -1
- package/dist/plugins/browser-defaults.js +18 -13
- 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/feature-selection-details-url.d.ts +1 -1
- package/dist/plugins/common/feature-selection-details-url.d.ts.map +1 -1
- package/dist/plugins/common/measure-distance.d.ts +1 -1
- package/dist/plugins/common/measure-distance.d.ts.map +1 -1
- package/dist/plugins/common/measure-distance.js +1 -1
- package/dist/plugins/common/measure-distance.js.map +1 -1
- package/dist/plugins/common/ol-proxy.d.ts +1 -1
- package/dist/plugins/common/ol-proxy.d.ts.map +1 -1
- package/dist/plugins/common/render-await-feature-details-loaded.d.ts +1 -1
- package/dist/plugins/common/render-await-feature-details-loaded.d.ts.map +1 -1
- package/dist/plugins/common/render-await-feature-details-loaded.js +2 -1
- package/dist/plugins/common/render-await-feature-details-loaded.js.map +1 -1
- package/dist/plugins/common/render-await-list-feature-sources-loaded.d.ts +1 -1
- package/dist/plugins/common/render-await-list-feature-sources-loaded.d.ts.map +1 -1
- package/dist/plugins/common/render-await-list-feature-sources-loaded.js +2 -1
- package/dist/plugins/common/render-await-list-feature-sources-loaded.js.map +1 -1
- 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/plugins/server/feature-deep-link.d.ts +1 -1
- package/dist/plugins/server/feature-deep-link.d.ts.map +1 -1
- package/dist/plugins/server-defaults.d.ts +4 -4
- package/dist/plugins/server-defaults.d.ts.map +1 -1
- package/dist/plugins/server-defaults.js +4 -4
- package/dist/plugins/server-defaults.js.map +1 -1
- 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/renderer/browser-dom.d.ts.map +1 -1
- package/dist/renderer/browser-dom.js +6 -2
- package/dist/renderer/browser-dom.js.map +1 -1
- package/dist/renderer/server-string.js +2 -2
- package/dist/renderer/server-string.js.map +1 -1
- package/dist/store/actions.d.ts +4 -2
- package/dist/store/actions.d.ts.map +1 -1
- package/dist/store/actions.js +7 -2
- package/dist/store/actions.js.map +1 -1
- package/dist/store/reducers.d.ts +224 -9
- package/dist/store/reducers.d.ts.map +1 -1
- package/dist/store/reducers.js +1 -1
- package/dist/store/reducers.js.map +1 -1
- package/dist/store/selectors.d.ts +267 -243
- package/dist/store/selectors.d.ts.map +1 -1
- package/dist/store/selectors.js +58 -69
- package/dist/store/selectors.js.map +1 -1
- package/dist/types.d.ts +65 -36
- package/dist/types.d.ts.map +1 -1
- package/package.json +26 -11
- 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/dist/components/layer-switcher/LayerSwticherContainer.d.ts +0 -4
- package/dist/components/layer-switcher/LayerSwticherContainer.d.ts.map +0 -1
- package/dist/components/layer-switcher/LayerSwticherContainer.js.map +0 -1
- 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.jsx +0 -237
- 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 -20
- 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 -90
- 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 -25
- 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.jsx +0 -61
- 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.js +0 -27
- package/src/js/components/layer-switcher/LayerSwitcherEntry.js +0 -132
- package/src/js/components/layer-switcher/LayerSwticherContainer.jsx +0 -80
- package/src/js/components/layer-switcher/index.js +0 -47
- 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.jsx +0 -62
- 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.js +0 -17
- 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.jsx +0 -37
- 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.jsx +0 -143
- 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.jsx +0 -57
- package/src/js/components/tag-switcher/createTagSwitcherEntry.js +0 -41
- package/src/js/components/tag-switcher/createTagSwitcherHeader.js +0 -34
- package/src/js/components/tag-switcher/index.js +0 -20
- 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.js +0 -39
- package/src/js/components/view-toggle-button/mobile-button.jsx +0 -13
- package/src/js/components/view-toggle-button/view-toggle-button.jsx +0 -74
- package/src/js/components/view-toggle-button/viewport-button.jsx +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/global.d.ts +0 -7
- 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 -38
- package/src/js/hooks/usePrevious.ts +0 -15
- package/src/js/hooks/useStickyHeader.ts +0 -51
- 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 -319
- 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 -222
- 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 -90
- 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 -134
- 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 -153
- package/src/js/plugins/common/render-await-list-feature-sources-loaded.ts +0 -108
- 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 -23
- package/src/js/renderer/server-string.tsx +0 -17
- package/src/js/server-handler.js +0 -39
- package/src/js/store/actions.ts +0 -648
- package/src/js/store/reducers.ts +0 -491
- package/src/js/store/selectors.ts +0 -449
- package/src/js/types.ts +0 -381
package/src/js/index.ts
DELETED
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import merge from "lodash/merge";
|
|
2
|
-
import {applyMiddleware, compose} from "redux";
|
|
3
|
-
import thunk from "redux-thunk";
|
|
4
|
-
|
|
5
|
-
import {createMapsightStore} from "@mapsight/core";
|
|
6
|
-
import {layerIdsExternalSwitcherSelector} from "@mapsight/core/lib/map/selectors";
|
|
7
|
-
import {type State} from "@mapsight/core/types";
|
|
8
|
-
|
|
9
|
-
import * as nonNull from "@mapsight/lib-js/nonNullable";
|
|
10
|
-
import type {MapsightStyleFunction} from "@mapsight/lib-ol/style/styleFunction";
|
|
11
|
-
|
|
12
|
-
import {siteConfig} from "./config";
|
|
13
|
-
import {VIEW_MOBILE} from "./config/constants/app";
|
|
14
|
-
import * as c from "./config/constants/controllers";
|
|
15
|
-
import {createDefaultControllers} from "./controllers/defaults";
|
|
16
|
-
import uiReducers from "./store/reducers";
|
|
17
|
-
import type {
|
|
18
|
-
CreateOptions,
|
|
19
|
-
MapsightUiContext,
|
|
20
|
-
MapsightUiRenderer,
|
|
21
|
-
MapsightUiRendererProps,
|
|
22
|
-
MapsightUiStore,
|
|
23
|
-
PluginDefinition,
|
|
24
|
-
PluginPhase,
|
|
25
|
-
} from "./types";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Default mapsight ui renderer (Does nothing, but log a warning!).
|
|
29
|
-
*/
|
|
30
|
-
const defaultRenderer: MapsightUiRenderer<void> = (
|
|
31
|
-
_container,
|
|
32
|
-
_props,
|
|
33
|
-
_hydrate = false,
|
|
34
|
-
) => {
|
|
35
|
-
console.info("create has to be passed a renderer to render the app");
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
// FIXME: What's the point in having this if it's all undefined?
|
|
39
|
-
const defaultCreateOptions: CreateOptions = {
|
|
40
|
-
baseUrl: undefined,
|
|
41
|
-
imagesUrl: undefined,
|
|
42
|
-
// search
|
|
43
|
-
searchUrl: undefined,
|
|
44
|
-
searchQueryParameter: undefined,
|
|
45
|
-
reHydratedState: undefined,
|
|
46
|
-
uiState: {
|
|
47
|
-
isFullscreen: false,
|
|
48
|
-
listQuery: "",
|
|
49
|
-
listSorting: undefined,
|
|
50
|
-
listPage: 0, // current page
|
|
51
|
-
searchQuery: "",
|
|
52
|
-
searchResult: {},
|
|
53
|
-
searchResultSelectionFeatures: [],
|
|
54
|
-
title: "",
|
|
55
|
-
userPreferenceListVisible: true,
|
|
56
|
-
mapIsOutOfViewport: false,
|
|
57
|
-
|
|
58
|
-
// views
|
|
59
|
-
view: VIEW_MOBILE, // mobile first
|
|
60
|
-
viewBreakpoints: [],
|
|
61
|
-
|
|
62
|
-
embeddedMap: false, // map is embedded which switch some behaviours which would be annoying
|
|
63
|
-
searchInMap: true, // enable address search in map overlay
|
|
64
|
-
|
|
65
|
-
pageTitle: {
|
|
66
|
-
show: true, // show page title
|
|
67
|
-
},
|
|
68
|
-
tagSwitcher: {
|
|
69
|
-
show: false, // turn on tag switcher which will filter
|
|
70
|
-
featureSourceId: undefined,
|
|
71
|
-
featureSourcesControllerName: c.FEATURE_SOURCES,
|
|
72
|
-
toggleableGroups: false, // make group names (headers) buttons that toggle on/off groups
|
|
73
|
-
sortTags: false, // sort tags with locale sort, but not the tagGroups. to sort tagGroups add all tagGroups to first feature entry (but with empty tags if the entry doesn't have tags for a tagGroup)
|
|
74
|
-
},
|
|
75
|
-
viewToggle: {
|
|
76
|
-
show: true,
|
|
77
|
-
deselectFeaturesOnToggle: true,
|
|
78
|
-
},
|
|
79
|
-
layerSwitcher: {
|
|
80
|
-
show: {
|
|
81
|
-
internal: true,
|
|
82
|
-
external: false,
|
|
83
|
-
},
|
|
84
|
-
internal: {
|
|
85
|
-
layerIdsSelector: undefined, // implied default: layer ids of layers viewed in internal Selector
|
|
86
|
-
grouped: false,
|
|
87
|
-
},
|
|
88
|
-
external: {
|
|
89
|
-
// FIXME: function in redux state?
|
|
90
|
-
layerIdsSelector: layerIdsExternalSwitcherSelector,
|
|
91
|
-
grouped: true,
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
list: {
|
|
95
|
-
selectionBehavior: {
|
|
96
|
-
desktop: "scrollToMap", // always 'scrollToMap' for now
|
|
97
|
-
mobile: "expandInList", // either 'expandInList', 'scrollToMap', 'showInMapOnlyView'
|
|
98
|
-
},
|
|
99
|
-
detailsInList: false, // if true details will always be shown in list even if not on mobile
|
|
100
|
-
showSelectedOnly: false, // don't show list entries, only show the selected one (need some other kind of communication, cyclingControl or icons on the map)
|
|
101
|
-
highlightOnMouse: true, // highlights list item on mouse enter (and un-highlights on leave)
|
|
102
|
-
selectOnClick: true, // select on click to selected list item
|
|
103
|
-
deselectOnClick: false, // deselect on click to selected list item
|
|
104
|
-
cyclingControl: false, // show a control to select next or previous list entry
|
|
105
|
-
sortControl: true, // show sort control icon
|
|
106
|
-
filterControl: true, // show filter box
|
|
107
|
-
paginationControl: false, // show pagination
|
|
108
|
-
itemsPerPage: 10, // number of items per page
|
|
109
|
-
stickyHeader: true, // make list header sticky?
|
|
110
|
-
showVaryingListInfoOnly: true, // show info column only, if the contents vary (determined before list filter)
|
|
111
|
-
},
|
|
112
|
-
featureSelectionInfo: {
|
|
113
|
-
stickyHeader: false, // make feature selection info header sticky?
|
|
114
|
-
stuckHeaderHeight: 30, // px
|
|
115
|
-
},
|
|
116
|
-
regions: {},
|
|
117
|
-
places: {},
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
plugins: [],
|
|
121
|
-
renderer: defaultRenderer,
|
|
122
|
-
components: {},
|
|
123
|
-
renderBreakpoints: {
|
|
124
|
-
// NOTE: Keep in sync with css!
|
|
125
|
-
mobile: [0, 767],
|
|
126
|
-
tablet: [768, 1014],
|
|
127
|
-
desktop: [1015, -1],
|
|
128
|
-
},
|
|
129
|
-
partialChangeHandler: undefined,
|
|
130
|
-
|
|
131
|
-
// add additional reducers
|
|
132
|
-
reducers: {...uiReducers},
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Creates an mapsight ui instance
|
|
137
|
-
*
|
|
138
|
-
* @param container element the mapsight ui app should be rendered into
|
|
139
|
-
* @param styleFunction the mapsight core vector style function (see @mapsight/core)
|
|
140
|
-
* @param [baseMapsightConfig] base mapsight configuration TODO: document further
|
|
141
|
-
* @param [createOptions] ui creation options TODO: document further
|
|
142
|
-
* @returns mapsight ui instance
|
|
143
|
-
*/
|
|
144
|
-
export function create(
|
|
145
|
-
container: HTMLElement | null,
|
|
146
|
-
styleFunction: MapsightStyleFunction,
|
|
147
|
-
baseMapsightConfig: Partial<State> = {},
|
|
148
|
-
createOptions: CreateOptions = {},
|
|
149
|
-
): MapsightUiContext {
|
|
150
|
-
const context: MapsightUiContext = {
|
|
151
|
-
hasRendered: false,
|
|
152
|
-
container: container,
|
|
153
|
-
styleFunction: styleFunction,
|
|
154
|
-
baseMapsightConfig: baseMapsightConfig,
|
|
155
|
-
createOptions: merge({}, defaultCreateOptions, createOptions),
|
|
156
|
-
appChannelListeners: [],
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
// transfer some create options to global site config to make them available even outside of the redux context
|
|
160
|
-
// TODO: Replace this mechanic with an explicit API, e.g. exposing the site config directly as `@mapsight/ui/site-config` or
|
|
161
|
-
// make them local to the mapsight ui context to allow for several independent instances with different site configs
|
|
162
|
-
siteConfig.baseUrl = context.createOptions.baseUrl ?? siteConfig.baseUrl;
|
|
163
|
-
siteConfig.imagesUrl =
|
|
164
|
-
context.createOptions.imagesUrl || siteConfig.imagesUrl;
|
|
165
|
-
siteConfig.searchUrl =
|
|
166
|
-
context.createOptions.searchUrl || siteConfig.searchUrl;
|
|
167
|
-
siteConfig.searchQueryParameter =
|
|
168
|
-
context.createOptions.searchQueryParameter ||
|
|
169
|
-
siteConfig.searchQueryParameter;
|
|
170
|
-
|
|
171
|
-
// initial state
|
|
172
|
-
context.initialState = merge({}, context.baseMapsightConfig, {
|
|
173
|
-
app: context.createOptions.uiState,
|
|
174
|
-
});
|
|
175
|
-
delete context.createOptions.uiState;
|
|
176
|
-
|
|
177
|
-
// override initial state by re-hydration
|
|
178
|
-
context.isStateReHydrated = false;
|
|
179
|
-
if (context.createOptions.reHydratedState !== undefined) {
|
|
180
|
-
context.isStateReHydrated = true;
|
|
181
|
-
merge(context.initialState, context.createOptions.reHydratedState);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// setup controllers
|
|
185
|
-
context.controllers = Object.assign(
|
|
186
|
-
createDefaultControllers(context),
|
|
187
|
-
context.createOptions.controllers,
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
// store enhancer
|
|
191
|
-
const uiStoreEnhancer = applyMiddleware(thunk);
|
|
192
|
-
context.storeEnhancer = context.createOptions.storeEnhancer
|
|
193
|
-
? compose(uiStoreEnhancer, context.createOptions.storeEnhancer)
|
|
194
|
-
: uiStoreEnhancer;
|
|
195
|
-
|
|
196
|
-
// plugin: afterInit
|
|
197
|
-
callAndForgetPlugins(context, "afterInit");
|
|
198
|
-
|
|
199
|
-
context.store = createMapsightStore<MapsightUiStore>(
|
|
200
|
-
context.controllers,
|
|
201
|
-
Object.fromEntries(
|
|
202
|
-
Object.entries(context.createOptions.reducers ?? {})
|
|
203
|
-
.map(([name, reducer]) =>
|
|
204
|
-
nonNull.map(reducer, (reducer) => [name, reducer] as const),
|
|
205
|
-
)
|
|
206
|
-
.filter(nonNull.is),
|
|
207
|
-
),
|
|
208
|
-
context.initialState,
|
|
209
|
-
context.storeEnhancer,
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
// render
|
|
213
|
-
function internalRender(): unknown {
|
|
214
|
-
const hydrate = !context.hasRendered && context.isStateReHydrated;
|
|
215
|
-
nonNull.assert(context.store);
|
|
216
|
-
nonNull.assert(context.createOptions.renderer);
|
|
217
|
-
|
|
218
|
-
const props: MapsightUiRendererProps = {
|
|
219
|
-
store: context.store,
|
|
220
|
-
components: context.createOptions.components || {},
|
|
221
|
-
appChannelListeners: context.appChannelListeners,
|
|
222
|
-
...context.rendererProps,
|
|
223
|
-
};
|
|
224
|
-
context.renderRef = context.createOptions.renderer(
|
|
225
|
-
context.container,
|
|
226
|
-
props,
|
|
227
|
-
hydrate,
|
|
228
|
-
);
|
|
229
|
-
context.hasRendered = true;
|
|
230
|
-
|
|
231
|
-
callAndForgetPlugins(context, "afterRender");
|
|
232
|
-
|
|
233
|
-
return context.renderRef;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Render without waiting for plugins (for e.g. waiting on external data)
|
|
237
|
-
context.render = function mapsightUiRender(rendererProps) {
|
|
238
|
-
context.rendererProps = rendererProps;
|
|
239
|
-
context.canPluginsDelayRender = false;
|
|
240
|
-
|
|
241
|
-
callAndForgetPlugins(context, "beforeRender");
|
|
242
|
-
|
|
243
|
-
return internalRender();
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
// Render allowing plugins to delay render (for e.g. waiting on external data)
|
|
247
|
-
context.renderAsync = async function mapsightUiRenderAsync(rendererProps) {
|
|
248
|
-
context.rendererProps = rendererProps;
|
|
249
|
-
context.canPluginsDelayRender = true;
|
|
250
|
-
|
|
251
|
-
await callAndAwaitPlugins(context, "beforeRender");
|
|
252
|
-
|
|
253
|
-
return internalRender();
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
// plugin: afterCreate
|
|
257
|
-
callAndForgetPlugins(context, "afterCreate");
|
|
258
|
-
|
|
259
|
-
return context;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Overrides plugins with the same name (last to come wins), null unsets the plugin,
|
|
264
|
-
* Flattened order is in order of first occurrence of a name.
|
|
265
|
-
*
|
|
266
|
-
* @param plugins (sorted) array of plugin definitions to be flattened, null unsets
|
|
267
|
-
* @returns flattened plugin definitions
|
|
268
|
-
*/
|
|
269
|
-
function flattenPlugins(plugins: Array<PluginDefinition>) {
|
|
270
|
-
const pluginPositionByName: Record<string, number> = {};
|
|
271
|
-
const flattenedPlugins: Array<PluginDefinition> = [];
|
|
272
|
-
|
|
273
|
-
plugins.forEach(function filterPlugin(plugin) {
|
|
274
|
-
const [key] = plugin;
|
|
275
|
-
const position = pluginPositionByName[key];
|
|
276
|
-
if (position !== undefined) {
|
|
277
|
-
flattenedPlugins.splice(position, 1, plugin);
|
|
278
|
-
} else {
|
|
279
|
-
pluginPositionByName[key] = flattenedPlugins.length;
|
|
280
|
-
flattenedPlugins.push(plugin);
|
|
281
|
-
}
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
return flattenedPlugins.filter(([_, plugin]) => !!plugin);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* @param context context in which the plugin will be called
|
|
289
|
-
* @param phase phase of the plugin
|
|
290
|
-
* @returns array of plugin call return values
|
|
291
|
-
*/
|
|
292
|
-
function callPlugins(
|
|
293
|
-
context: MapsightUiContext,
|
|
294
|
-
phase: PluginPhase,
|
|
295
|
-
): Array<Promise<unknown>> {
|
|
296
|
-
return flattenPlugins(context.createOptions?.plugins ?? [])
|
|
297
|
-
.map(([_name, plugin]) => plugin?.[phase]?.(context) ?? undefined)
|
|
298
|
-
.filter(nonNull.is);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
@param context context in which the plugin will be called
|
|
303
|
-
@param phase phase of the plugin
|
|
304
|
-
*/
|
|
305
|
-
function callAndForgetPlugins(context: MapsightUiContext, phase: PluginPhase) {
|
|
306
|
-
Promise.allSettled(callPlugins(context, phase)).catch(() => {});
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* @param context context in which the plugin will be called
|
|
311
|
-
* @param phase phase of the plugin
|
|
312
|
-
* @returns promise that all plugins are resolved
|
|
313
|
-
*/
|
|
314
|
-
async function callAndAwaitPlugins(
|
|
315
|
-
context: MapsightUiContext,
|
|
316
|
-
phase: PluginPhase,
|
|
317
|
-
): Promise<void> {
|
|
318
|
-
await Promise.all(callPlugins(context, phase));
|
|
319
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {setAppTitle} from "../../store/actions";
|
|
2
|
-
import type {PluginInstance} from "../../types.ts";
|
|
3
|
-
|
|
4
|
-
const defaultRendererPropName = "title";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This plugin will apply a title on render passed as a prop to the renderer.
|
|
8
|
-
*
|
|
9
|
-
* @param [options] options currently not used
|
|
10
|
-
* @param [options.rendererPropName="title"] title property name passed to the renderer
|
|
11
|
-
* @returns plugin instance
|
|
12
|
-
*/
|
|
13
|
-
export default function createPlugin(
|
|
14
|
-
options: {
|
|
15
|
-
rendererPropName?: string;
|
|
16
|
-
} = {},
|
|
17
|
-
): PluginInstance {
|
|
18
|
-
const {rendererPropName = defaultRendererPropName} = options;
|
|
19
|
-
|
|
20
|
-
return {
|
|
21
|
-
beforeRender: function appTitleRenderPlugin(context) {
|
|
22
|
-
const {store, rendererProps} = context;
|
|
23
|
-
|
|
24
|
-
if (!store || !rendererProps) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
rendererPropName in rendererProps &&
|
|
30
|
-
rendererProps[rendererPropName]
|
|
31
|
-
) {
|
|
32
|
-
store.dispatch(setAppTitle(rendererProps[rendererPropName]));
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type {MapController} from "@mapsight/core/lib/map/controller";
|
|
2
|
-
import {getIdForLayer} from "@mapsight/core/lib/map/lib/tagLayer";
|
|
3
|
-
|
|
4
|
-
import type {PluginInstance} from "../../types";
|
|
5
|
-
|
|
6
|
-
const defaultGlobalVariableName = "MSUI";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* This plugin will make debug info available in a global variable.
|
|
10
|
-
*/
|
|
11
|
-
export default function createPlugin(
|
|
12
|
-
options: {
|
|
13
|
-
globalVariableName?: string;
|
|
14
|
-
} = {},
|
|
15
|
-
): PluginInstance {
|
|
16
|
-
const {globalVariableName = defaultGlobalVariableName} = options;
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
afterCreate: (ctx) => {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
21
|
-
// @ts-ignore
|
|
22
|
-
window[globalVariableName] = {
|
|
23
|
-
context: ctx,
|
|
24
|
-
getLayerObjects() {
|
|
25
|
-
const layerMap = {};
|
|
26
|
-
(ctx.controllers?.map as MapController)
|
|
27
|
-
.getMap()
|
|
28
|
-
?.getAllLayers()
|
|
29
|
-
.forEach((l, i) => {
|
|
30
|
-
layerMap[getIdForLayer(l) ?? "unnamed_" + i] = l;
|
|
31
|
-
});
|
|
32
|
-
return layerMap;
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import type {Store} from "redux";
|
|
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 {isViewMobile, viewSelector} from "../../store/selectors";
|
|
19
|
-
import type {PluginInstance, UiState} from "../../types.ts";
|
|
20
|
-
|
|
21
|
-
const defaultFeatureSelectionsController = c.FEATURE_SELECTIONS;
|
|
22
|
-
const defaultFeatureSelection = FEATURE_SELECTION_SELECT;
|
|
23
|
-
const defaultGetParameter = "feature";
|
|
24
|
-
const defaultAutoRemoveParameters = [defaultGetParameter, "cHash"];
|
|
25
|
-
|
|
26
|
-
function selectFeature(
|
|
27
|
-
store: Store,
|
|
28
|
-
featureSelectionsController: string,
|
|
29
|
-
featureSelection: string,
|
|
30
|
-
featureId: FeatureId,
|
|
31
|
-
setMapOnlyViewInMobile: boolean,
|
|
32
|
-
) {
|
|
33
|
-
store.dispatch(
|
|
34
|
-
selectExclusively(
|
|
35
|
-
featureSelectionsController,
|
|
36
|
-
featureSelection,
|
|
37
|
-
featureId,
|
|
38
|
-
),
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
setMapOnlyViewInMobile &&
|
|
43
|
-
isViewMobile(viewSelector(store.getState() as {app: UiState}))
|
|
44
|
-
) {
|
|
45
|
-
store.dispatch(setView(VIEW_MAP_ONLY));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Hooks into global window.history[fn] to react to
|
|
51
|
-
* history state changes from the app (as opposed to `window.onpopstate` which
|
|
52
|
-
* triggers when a browser ui actions causes a history state change).
|
|
53
|
-
*
|
|
54
|
-
* @param fn function name to patch (e.g. "pushState" or "replaceState")
|
|
55
|
-
* @param callback will get called _after_ that function has been called
|
|
56
|
-
*/
|
|
57
|
-
function patchWindowHistoryFunction(
|
|
58
|
-
fn: "pushState" | "replaceState",
|
|
59
|
-
callback: (state: unknown) => void,
|
|
60
|
-
) {
|
|
61
|
-
const originalFn = window.history[fn];
|
|
62
|
-
|
|
63
|
-
window.history[fn] = (state, ...rest) => {
|
|
64
|
-
const returnValue: unknown = originalFn.apply(window.history, [
|
|
65
|
-
state,
|
|
66
|
-
...rest,
|
|
67
|
-
]);
|
|
68
|
-
callback(state);
|
|
69
|
-
return returnValue;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* This plugin will select the feature identified by the defined get parameter and optionally remove parameters from the
|
|
75
|
-
* window.location using the history API.
|
|
76
|
-
*
|
|
77
|
-
* @param [options] options
|
|
78
|
-
* @param [options.featureSelectionsController] name of the feature selections controller, defaults to mapsight ui default
|
|
79
|
-
* @param [options.featureSelection="select"] name of the feature selection to track
|
|
80
|
-
* @param [options.getParameter="feature"] name get parameter identifying the feature
|
|
81
|
-
* @param [options.setMapOnlyViewInMobile=true] will set MapOnly view on mobile if a feature has been linked
|
|
82
|
-
* @param [options.autoRemoveParameters] list of get parameters to remove once the feature
|
|
83
|
-
* has been selected, defaults to ["feature", "cHash"]. Pass false to disable.
|
|
84
|
-
* @param [options.clearMissingParameters] if set to true or an array clear if getParameter and the mentioned
|
|
85
|
-
* parameters are missing. don't clear if getParameter is missing, but one of the
|
|
86
|
-
* mentioned parameters is there. we keep this to be safe in race condition
|
|
87
|
-
* where ?feature is set but ?preselect is not where we want to keep the implicit
|
|
88
|
-
* preselect of the feature parameter
|
|
89
|
-
*
|
|
90
|
-
* @returns plugin instance
|
|
91
|
-
*/
|
|
92
|
-
export default function createPlugin(
|
|
93
|
-
options: {
|
|
94
|
-
featureSelectionsController?: string;
|
|
95
|
-
featureSelection?: string;
|
|
96
|
-
getParameter?: string;
|
|
97
|
-
setMapOnlyViewInMobile?: boolean;
|
|
98
|
-
autoRemoveParameters?: string[] | false;
|
|
99
|
-
clearMissingParameters?: string[] | false;
|
|
100
|
-
} = {},
|
|
101
|
-
): PluginInstance {
|
|
102
|
-
const {
|
|
103
|
-
featureSelectionsController = defaultFeatureSelectionsController,
|
|
104
|
-
featureSelection = defaultFeatureSelection,
|
|
105
|
-
getParameter = defaultGetParameter,
|
|
106
|
-
autoRemoveParameters = defaultAutoRemoveParameters,
|
|
107
|
-
setMapOnlyViewInMobile = true,
|
|
108
|
-
clearMissingParameters = null,
|
|
109
|
-
} = options;
|
|
110
|
-
const selectorSelectedFeatures = createFeatureSelectionSelector(
|
|
111
|
-
featureSelectionsController,
|
|
112
|
-
featureSelection,
|
|
113
|
-
);
|
|
114
|
-
|
|
115
|
-
let isHandled = false;
|
|
116
|
-
return {
|
|
117
|
-
afterRender: function handleFeatureDeepLink(context) {
|
|
118
|
-
if (isHandled) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
isHandled = true;
|
|
123
|
-
|
|
124
|
-
const {store} = context;
|
|
125
|
-
if (!store) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// We always do this action even if we should already have done that
|
|
130
|
-
// by re-hydrating the state as it may not have had the dynamic get parameter passed along
|
|
131
|
-
const featureId = getQueryStringParameter(
|
|
132
|
-
window.location.search,
|
|
133
|
-
getParameter,
|
|
134
|
-
);
|
|
135
|
-
if (featureId) {
|
|
136
|
-
selectFeature(
|
|
137
|
-
store,
|
|
138
|
-
featureSelectionsController,
|
|
139
|
-
featureSelection,
|
|
140
|
-
featureId,
|
|
141
|
-
setMapOnlyViewInMobile,
|
|
142
|
-
);
|
|
143
|
-
|
|
144
|
-
if (autoRemoveParameters && autoRemoveParameters.length) {
|
|
145
|
-
// if we can, remove initial feature id from url
|
|
146
|
-
// when the selection changes (e.g. panel is closed/different feature is selected)
|
|
147
|
-
observeStateOnce(store, selectorSelectedFeatures, () => {
|
|
148
|
-
let newUrl = window.location.href;
|
|
149
|
-
autoRemoveParameters.forEach((key) => {
|
|
150
|
-
newUrl = removeQueryStringParameter(newUrl, key);
|
|
151
|
-
});
|
|
152
|
-
window.history.pushState(
|
|
153
|
-
null,
|
|
154
|
-
window.document.title,
|
|
155
|
-
newUrl,
|
|
156
|
-
);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
if (clearMissingParameters) {
|
|
161
|
-
let found: string | null = null;
|
|
162
|
-
while (!found && clearMissingParameters[0]) {
|
|
163
|
-
found = getQueryStringParameter(
|
|
164
|
-
window.location.search,
|
|
165
|
-
clearMissingParameters.shift() as string,
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
if (!found) {
|
|
169
|
-
store.dispatch(
|
|
170
|
-
deselectAll(
|
|
171
|
-
featureSelectionsController,
|
|
172
|
-
featureSelection,
|
|
173
|
-
),
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
// handle select via state at relaod
|
|
178
|
-
if (
|
|
179
|
-
window.history.state &&
|
|
180
|
-
"featureId" in window.history.state &&
|
|
181
|
-
window.history.state.featureId
|
|
182
|
-
) {
|
|
183
|
-
selectFeature(
|
|
184
|
-
store,
|
|
185
|
-
featureSelectionsController,
|
|
186
|
-
featureSelection,
|
|
187
|
-
window.history.state.featureId,
|
|
188
|
-
setMapOnlyViewInMobile,
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
const handleHistoryStateChange = (state) => {
|
|
194
|
-
if (state && "featureId" in state) {
|
|
195
|
-
if (state.featureId) {
|
|
196
|
-
selectFeature(
|
|
197
|
-
store,
|
|
198
|
-
featureSelectionsController,
|
|
199
|
-
featureSelection,
|
|
200
|
-
state.featureId,
|
|
201
|
-
setMapOnlyViewInMobile,
|
|
202
|
-
);
|
|
203
|
-
} else if (state?.featureId === null) {
|
|
204
|
-
// test for null to inhibit action if featureId is simply omitted
|
|
205
|
-
store.dispatch(
|
|
206
|
-
deselectAll(
|
|
207
|
-
featureSelectionsController,
|
|
208
|
-
featureSelection,
|
|
209
|
-
),
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
patchWindowHistoryFunction("pushState", handleHistoryStateChange);
|
|
216
|
-
patchWindowHistoryFunction(
|
|
217
|
-
"replaceState",
|
|
218
|
-
handleHistoryStateChange,
|
|
219
|
-
);
|
|
220
|
-
},
|
|
221
|
-
};
|
|
222
|
-
}
|
|
@@ -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.ts";
|
|
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
|
-
}
|