@igo2/geo 1.14.2 → 1.14.3
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/esm2020/igo2-geo.mjs +4 -4
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +300 -300
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +305 -305
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -246
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
- package/esm2020/lib/catalog/catalog.module.mjs +52 -52
- package/esm2020/lib/catalog/index.mjs +4 -4
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
- package/esm2020/lib/catalog/shared/index.mjs +4 -4
- package/esm2020/lib/datasource/datasource.module.mjs +21 -21
- package/esm2020/lib/datasource/index.mjs +2 -2
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
- package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
- package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
- package/esm2020/lib/datasource/shared/index.mjs +4 -4
- package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
- package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
- package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
- package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
- package/esm2020/lib/datasource/utils/index.mjs +2 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
- package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
- package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
- package/esm2020/lib/directions/directions-results/index.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
- package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
- package/esm2020/lib/directions/directions.component.mjs +310 -310
- package/esm2020/lib/directions/directions.module.mjs +101 -101
- package/esm2020/lib/directions/index.mjs +6 -6
- package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
- package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
- package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
- package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
- package/esm2020/lib/directions/shared/index.mjs +5 -5
- package/esm2020/lib/directions/shared/store.mjs +23 -23
- package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
- package/esm2020/lib/download/download-button/index.mjs +1 -1
- package/esm2020/lib/download/download.module.mjs +41 -41
- package/esm2020/lib/download/index.mjs +2 -2
- package/esm2020/lib/download/shared/download.interface.mjs +1 -1
- package/esm2020/lib/download/shared/download.service.mjs +64 -64
- package/esm2020/lib/download/shared/index.mjs +2 -2
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
- package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
- package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
- package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
- package/esm2020/lib/draw/index.mjs +2 -2
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
- package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
- package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
- package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
- package/esm2020/lib/draw/shared/index.mjs +5 -5
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
- package/esm2020/lib/feature/feature.module.mjs +27 -27
- package/esm2020/lib/feature/index.mjs +3 -3
- package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
- package/esm2020/lib/feature/shared/index.mjs +6 -6
- package/esm2020/lib/feature/shared/store.mjs +123 -123
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
- package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
- package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
- package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
- package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
- package/esm2020/lib/filter/filter.module.mjs +288 -288
- package/esm2020/lib/filter/index.mjs +15 -15
- package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
- package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
- package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
- package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
- package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
- package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
- package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
- package/esm2020/lib/filter/shared/index.mjs +11 -11
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
- package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
- package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
- package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
- package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
- package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
- package/esm2020/lib/geo.module.mjs +101 -101
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
- package/esm2020/lib/geometry/geometry.module.mjs +26 -26
- package/esm2020/lib/geometry/index.mjs +3 -3
- package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
- package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
- package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
- package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
- package/esm2020/lib/geometry/shared/index.mjs +4 -4
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
- package/esm2020/lib/import-export/export-button/index.mjs +1 -1
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
- package/esm2020/lib/import-export/import-export/index.mjs +1 -1
- package/esm2020/lib/import-export/import-export.module.mjs +95 -95
- package/esm2020/lib/import-export/index.mjs +4 -4
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
- package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
- package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.service.mjs +194 -194
- package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
- package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
- package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
- package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
- package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
- package/esm2020/lib/import-export/shared/index.mjs +10 -10
- package/esm2020/lib/import-export/style-list/index.mjs +4 -4
- package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
- package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
- package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
- package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
- package/esm2020/lib/layer/index.mjs +10 -10
- package/esm2020/lib/layer/layer-item/index.mjs +1 -1
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
- package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
- package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
- package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
- package/esm2020/lib/layer/layer-list/index.mjs +3 -3
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
- package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
- package/esm2020/lib/layer/layer.module.mjs +184 -184
- package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2020/lib/layer/shared/index.mjs +6 -6
- package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
- package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
- package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
- package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
- package/esm2020/lib/layer/shared/style.service.mjs +355 -355
- package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
- package/esm2020/lib/layer/style-modal/index.mjs +1 -1
- package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
- package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
- package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
- package/esm2020/lib/layer/utils/index.mjs +5 -5
- package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
- package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
- package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
- package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
- package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -142
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
- package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
- package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
- package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
- package/esm2020/lib/map/index.mjs +13 -13
- package/esm2020/lib/map/info-section/index.mjs +1 -1
- package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
- package/esm2020/lib/map/map-browser/index.mjs +1 -1
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
- package/esm2020/lib/map/map-center/index.mjs +1 -1
- package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
- package/esm2020/lib/map/map.module.mjs +126 -126
- package/esm2020/lib/map/menu-button/index.mjs +1 -1
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
- package/esm2020/lib/map/offline-button/index.mjs +1 -1
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
- package/esm2020/lib/map/rotation-button/index.mjs +1 -1
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
- package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
- package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
- package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
- package/esm2020/lib/map/shared/index.mjs +13 -13
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
- package/esm2020/lib/map/shared/map.enums.mjs +5 -5
- package/esm2020/lib/map/shared/map.interface.mjs +1 -1
- package/esm2020/lib/map/shared/map.mjs +406 -406
- package/esm2020/lib/map/shared/map.service.mjs +28 -28
- package/esm2020/lib/map/shared/map.utils.mjs +462 -462
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
- package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2020/lib/map/shared/projection.service.mjs +64 -64
- package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
- package/esm2020/lib/map/swipe-control/index.mjs +1 -1
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
- package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
- package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
- package/esm2020/lib/map/zoom-button/index.mjs +1 -1
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
- package/esm2020/lib/measure/index.mjs +3 -3
- package/esm2020/lib/measure/measure.module.mjs +19 -19
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
- package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
- package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
- package/esm2020/lib/measure/shared/index.mjs +3 -3
- package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
- package/esm2020/lib/metadata/index.mjs +2 -2
- package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
- package/esm2020/lib/metadata/metadata.module.mjs +54 -54
- package/esm2020/lib/metadata/shared/index.mjs +2 -2
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
- package/esm2020/lib/offline/geoDB/index.mjs +4 -4
- package/esm2020/lib/offline/index.mjs +2 -2
- package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
- package/esm2020/lib/offline/shared/index.mjs +1 -1
- package/esm2020/lib/overlay/index.mjs +1 -1
- package/esm2020/lib/overlay/overlay.module.mjs +22 -22
- package/esm2020/lib/overlay/shared/index.mjs +6 -6
- package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
- package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
- package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
- package/esm2020/lib/print/index.mjs +3 -3
- package/esm2020/lib/print/print/print.component.mjs +125 -125
- package/esm2020/lib/print/print-form/index.mjs +1 -1
- package/esm2020/lib/print/print-form/print-form.component.mjs +427 -427
- package/esm2020/lib/print/print.module.mjs +64 -64
- package/esm2020/lib/print/shared/geopdf.mjs +57 -57
- package/esm2020/lib/print/shared/index.mjs +4 -4
- package/esm2020/lib/print/shared/print.interface.mjs +1 -1
- package/esm2020/lib/print/shared/print.service.mjs +933 -933
- package/esm2020/lib/print/shared/print.type.mjs +29 -29
- package/esm2020/lib/query/index.mjs +1 -1
- package/esm2020/lib/query/query.module.mjs +28 -28
- package/esm2020/lib/query/shared/index.mjs +6 -6
- package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
- package/esm2020/lib/query/shared/query.directive.mjs +260 -260
- package/esm2020/lib/query/shared/query.enums.mjs +29 -29
- package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2020/lib/query/shared/query.service.mjs +732 -732
- package/esm2020/lib/query/shared/query.utils.mjs +36 -36
- package/esm2020/lib/search/index.mjs +11 -11
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +511 -511
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +117 -117
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +370 -370
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +123 -123
- package/esm2020/lib/search/search-results/search-results.component.mjs +339 -339
- package/esm2020/lib/search/search-results/search-results.module.mjs +103 -103
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +441 -441
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
- package/esm2020/lib/search/search.module.mjs +66 -66
- package/esm2020/lib/search/shared/index.mjs +8 -8
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
- package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
- package/esm2020/lib/search/shared/search.enums.mjs +3 -3
- package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/search.service.mjs +120 -120
- package/esm2020/lib/search/shared/search.utils.mjs +90 -90
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.mjs +152 -152
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.mjs +766 -766
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.mjs +319 -319
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
- package/esm2020/lib/search/shared/sources/index.mjs +17 -17
- package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.mjs +178 -178
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
- package/esm2020/lib/toast/index.mjs +1 -1
- package/esm2020/lib/toast/toast.component.mjs +112 -112
- package/esm2020/lib/toast/toast.module.mjs +44 -44
- package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
- package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
- package/esm2020/lib/utils/googleLinks.mjs +12 -12
- package/esm2020/lib/utils/id-generator.mjs +109 -109
- package/esm2020/lib/utils/index.mjs +5 -5
- package/esm2020/lib/utils/osmLinks.mjs +9 -9
- package/esm2020/lib/wkt/index.mjs +1 -1
- package/esm2020/lib/wkt/shared/index.mjs +1 -1
- package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
- package/esm2020/lib/wkt/wkt.module.mjs +21 -21
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
- package/esm2020/lib/workspace/index.mjs +7 -7
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
- package/esm2020/lib/workspace/shared/index.mjs +7 -7
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
- package/esm2020/lib/workspace/widgets/index.mjs +3 -3
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
- package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
- package/esm2020/lib/workspace/workspace.module.mjs +61 -61
- package/esm2020/public_api.mjs +54 -54
- package/fesm2015/igo2-geo.mjs +44986 -44986
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +43029 -43030
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -126
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -80
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
- package/lib/catalog/catalog.module.d.ts +14 -14
- package/lib/catalog/index.d.ts +4 -4
- package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
- package/lib/catalog/shared/catalog.enum.d.ts +14 -14
- package/lib/catalog/shared/catalog.interface.d.ts +66 -66
- package/lib/catalog/shared/catalog.service.d.ts +36 -36
- package/lib/catalog/shared/index.d.ts +4 -4
- package/lib/datasource/datasource.module.d.ts +8 -8
- package/lib/datasource/index.d.ts +2 -2
- package/lib/datasource/shared/capabilities.service.d.ts +37 -37
- package/lib/datasource/shared/datasource.service.d.ts +37 -37
- package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
- package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
- package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
- package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/index.d.ts +35 -35
- package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
- package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/index.d.ts +4 -4
- package/lib/datasource/shared/options/index.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
- package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
- package/lib/datasource/shared/options/options.service.d.ts +6 -6
- package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
- package/lib/datasource/utils/index.d.ts +2 -2
- package/lib/datasource/utils/tilegrid.d.ts +2 -2
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
- package/lib/directions/directions-buttons/index.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
- package/lib/directions/directions-inputs/index.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
- package/lib/directions/directions-results/index.d.ts +1 -1
- package/lib/directions/directions-sources/directions-source.d.ts +7 -7
- package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
- package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
- package/lib/directions/directions-sources/index.d.ts +4 -4
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
- package/lib/directions/directions.component.d.ts +56 -56
- package/lib/directions/directions.module.d.ts +26 -26
- package/lib/directions/index.d.ts +6 -6
- package/lib/directions/shared/directions-source.service.d.ts +11 -11
- package/lib/directions/shared/directions.enum.d.ts +22 -22
- package/lib/directions/shared/directions.interface.d.ts +126 -126
- package/lib/directions/shared/directions.service.d.ts +13 -13
- package/lib/directions/shared/directions.utils.d.ts +42 -42
- package/lib/directions/shared/index.d.ts +5 -5
- package/lib/directions/shared/store.d.ts +18 -18
- package/lib/download/download-button/download-button.component.d.ts +18 -18
- package/lib/download/download-button/index.d.ts +1 -1
- package/lib/download/download.module.d.ts +14 -14
- package/lib/download/index.d.ts +2 -2
- package/lib/download/shared/download.interface.d.ts +10 -10
- package/lib/download/shared/download.service.d.ts +11 -11
- package/lib/download/shared/index.d.ts +2 -2
- package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
- package/lib/draw/draw/draw-popup.component.d.ts +63 -63
- package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
- package/lib/draw/draw/draw.component.d.ts +239 -239
- package/lib/draw/draw/draw.module.d.ts +34 -34
- package/lib/draw/drawingTool.module.d.ts +7 -7
- package/lib/draw/index.d.ts +2 -2
- package/lib/draw/shared/draw-icon.service.d.ts +12 -12
- package/lib/draw/shared/draw-style.service.d.ts +36 -36
- package/lib/draw/shared/draw.enum.d.ts +32 -32
- package/lib/draw/shared/draw.interface.d.ts +40 -40
- package/lib/draw/shared/draw.utils.d.ts +35 -35
- package/lib/draw/shared/index.d.ts +5 -5
- package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
- package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
- package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
- package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
- package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
- package/lib/feature/feature.module.d.ts +9 -9
- package/lib/feature/index.d.ts +3 -3
- package/lib/feature/shared/feature.enums.d.ts +7 -7
- package/lib/feature/shared/feature.interfaces.d.ts +74 -74
- package/lib/feature/shared/feature.utils.d.ts +104 -104
- package/lib/feature/shared/index.d.ts +6 -6
- package/lib/feature/shared/store.d.ts +71 -71
- package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
- package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
- package/lib/feature/shared/strategies/index.d.ts +5 -5
- package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
- package/lib/feature/shared/strategies/loading.d.ts +75 -75
- package/lib/feature/shared/strategies/selection.d.ts +176 -176
- package/lib/feature/shared/strategies.utils.d.ts +17 -17
- package/lib/filter/filter.module.d.ts +53 -53
- package/lib/filter/index.d.ts +15 -15
- package/lib/filter/ogc-filter-button/index.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
- package/lib/filter/ogc-filter-form/index.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
- package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
- package/lib/filter/ogc-filter-time/index.d.ts +2 -2
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
- package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
- package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
- package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
- package/lib/filter/shared/index.d.ts +11 -11
- package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
- package/lib/filter/shared/ogc-filter.d.ts +29 -29
- package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
- package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
- package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
- package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
- package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
- package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
- package/lib/filter/shared/time-filter.enum.d.ts +10 -10
- package/lib/filter/shared/time-filter.interface.d.ts +29 -29
- package/lib/filter/shared/time-filter.service.d.ts +11 -11
- package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
- package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
- package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
- package/lib/filter/time-filter-button/index.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
- package/lib/filter/time-filter-form/index.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
- package/lib/filter/time-filter-item/index.d.ts +1 -1
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
- package/lib/filter/time-filter-list/index.d.ts +2 -2
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
- package/lib/geo.module.d.ts +28 -28
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
- package/lib/geometry/geometry.module.d.ts +8 -8
- package/lib/geometry/index.d.ts +3 -3
- package/lib/geometry/shared/controls/draw.d.ts +150 -150
- package/lib/geometry/shared/controls/index.d.ts +3 -3
- package/lib/geometry/shared/controls/modify.d.ts +228 -228
- package/lib/geometry/shared/controls/slice.d.ts +99 -99
- package/lib/geometry/shared/geometry.errors.d.ts +11 -11
- package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
- package/lib/geometry/shared/geometry.utils.d.ts +45 -45
- package/lib/geometry/shared/index.d.ts +4 -4
- package/lib/import-export/export-button/export-button.component.d.ts +16 -16
- package/lib/import-export/export-button/index.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +104 -104
- package/lib/import-export/import-export/index.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +26 -26
- package/lib/import-export/index.d.ts +4 -4
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
- package/lib/import-export/shared/export.errors.d.ts +8 -8
- package/lib/import-export/shared/export.interface.d.ts +11 -11
- package/lib/import-export/shared/export.service.d.ts +30 -30
- package/lib/import-export/shared/export.type.d.ts +16 -16
- package/lib/import-export/shared/export.utils.d.ts +19 -19
- package/lib/import-export/shared/import.errors.d.ts +20 -20
- package/lib/import-export/shared/import.interface.d.ts +8 -8
- package/lib/import-export/shared/import.service.d.ts +31 -31
- package/lib/import-export/shared/import.utils.d.ts +18 -18
- package/lib/import-export/shared/index.d.ts +10 -10
- package/lib/import-export/style-list/index.d.ts +4 -4
- package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
- package/lib/import-export/style-list/style-list.module.d.ts +8 -8
- package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
- package/lib/import-export/style-list/style-list.service.d.ts +18 -18
- package/lib/layer/index.d.ts +10 -10
- package/lib/layer/layer-item/index.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
- package/lib/layer/layer-legend/index.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
- package/lib/layer/layer-legend-item/index.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
- package/lib/layer/layer-legend-list/index.d.ts +2 -2
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
- package/lib/layer/layer-list/index.d.ts +3 -3
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
- package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
- package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
- package/lib/layer/layer-list-tool/index.d.ts +4 -4
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
- package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
- package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
- package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
- package/lib/layer/layer.module.d.ts +36 -36
- package/lib/layer/shared/clusterParam.d.ts +13 -13
- package/lib/layer/shared/index.d.ts +6 -6
- package/lib/layer/shared/layer.enums.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +30 -30
- package/lib/layer/shared/layers/any-layer.d.ts +6 -6
- package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
- package/lib/layer/shared/layers/image-layer.d.ts +22 -22
- package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
- package/lib/layer/shared/layers/index.d.ts +12 -12
- package/lib/layer/shared/layers/layer.d.ts +62 -62
- package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
- package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
- package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
- package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
- package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
- package/lib/layer/shared/style.service.d.ts +57 -57
- package/lib/layer/shared/vector-style.interface.d.ts +38 -38
- package/lib/layer/style-modal/index.d.ts +1 -1
- package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
- package/lib/layer/track-feature-button/index.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
- package/lib/layer/utils/image-watcher.d.ts +17 -17
- package/lib/layer/utils/index.d.ts +5 -5
- package/lib/layer/utils/layer.utils.d.ts +2 -2
- package/lib/layer/utils/outputLegend.d.ts +7 -7
- package/lib/layer/utils/tile-watcher.d.ts +14 -14
- package/lib/layer/utils/vector-watcher.d.ts +13 -13
- package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
- package/lib/map/baselayers-switcher/index.d.ts +2 -2
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
- package/lib/map/geolocate-button/index.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
- package/lib/map/home-extent-button/index.d.ts +1 -1
- package/lib/map/index.d.ts +13 -13
- package/lib/map/info-section/index.d.ts +1 -1
- package/lib/map/info-section/info-section.component.d.ts +7 -7
- package/lib/map/map-browser/index.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +25 -25
- package/lib/map/map-center/index.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +31 -31
- package/lib/map/map.module.d.ts +28 -28
- package/lib/map/menu-button/index.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +17 -17
- package/lib/map/offline-button/index.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +23 -23
- package/lib/map/rotation-button/index.d.ts +1 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
- package/lib/map/shared/controllers/controller.d.ts +29 -29
- package/lib/map/shared/controllers/geolocation.d.ts +112 -112
- package/lib/map/shared/controllers/index.d.ts +3 -3
- package/lib/map/shared/controllers/view.d.ts +200 -200
- package/lib/map/shared/hover-feature.directive.d.ts +132 -132
- package/lib/map/shared/index.d.ts +13 -13
- package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
- package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
- package/lib/map/shared/map.d.ts +135 -135
- package/lib/map/shared/map.enums.d.ts +4 -4
- package/lib/map/shared/map.interface.d.ts +57 -57
- package/lib/map/shared/map.service.d.ts +19 -19
- package/lib/map/shared/map.utils.d.ts +90 -90
- package/lib/map/shared/mapOffline.directive.d.ts +21 -21
- package/lib/map/shared/projection.interfaces.d.ts +29 -29
- package/lib/map/shared/projection.service.d.ts +19 -19
- package/lib/map/shared/projection.utils.d.ts +19 -19
- package/lib/map/swipe-control/index.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
- package/lib/map/utils/layer-watcher.d.ts +20 -20
- package/lib/map/wake-lock-button/index.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
- package/lib/map/zoom-button/index.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
- package/lib/measure/index.d.ts +3 -3
- package/lib/measure/measure.module.d.ts +7 -7
- package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
- package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
- package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
- package/lib/measure/measurer/measurer.component.d.ts +405 -405
- package/lib/measure/measurer/measurer.module.d.ts +25 -25
- package/lib/measure/shared/index.d.ts +3 -3
- package/lib/measure/shared/measure.enum.d.ts +33 -33
- package/lib/measure/shared/measure.interfaces.d.ts +21 -21
- package/lib/measure/shared/measure.utils.d.ts +180 -180
- package/lib/metadata/index.d.ts +2 -2
- package/lib/metadata/metadata-button/index.d.ts +1 -1
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
- package/lib/metadata/metadata.module.d.ts +15 -15
- package/lib/metadata/shared/index.d.ts +2 -2
- package/lib/metadata/shared/metadata.interface.d.ts +13 -13
- package/lib/metadata/shared/metadata.service.d.ts +8 -8
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
- package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
- package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
- package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
- package/lib/offline/geoDB/index.d.ts +4 -4
- package/lib/offline/index.d.ts +2 -2
- package/lib/offline/shared/geo-network.service.d.ts +28 -28
- package/lib/offline/shared/index.d.ts +1 -1
- package/lib/overlay/index.d.ts +1 -1
- package/lib/overlay/overlay.module.d.ts +9 -9
- package/lib/overlay/shared/index.d.ts +6 -6
- package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
- package/lib/overlay/shared/overlay.d.ts +81 -81
- package/lib/overlay/shared/overlay.directive.d.ts +18 -18
- package/lib/overlay/shared/overlay.enum.d.ts +6 -6
- package/lib/overlay/shared/overlay.service.d.ts +14 -14
- package/lib/overlay/shared/overlay.utils.d.ts +17 -17
- package/lib/print/index.d.ts +3 -3
- package/lib/print/print/print.component.d.ts +35 -35
- package/lib/print/print-form/index.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +97 -97
- package/lib/print/print.module.d.ts +19 -19
- package/lib/print/shared/geopdf.d.ts +1 -1
- package/lib/print/shared/index.d.ts +4 -4
- package/lib/print/shared/print.interface.d.ts +22 -22
- package/lib/print/shared/print.service.d.ts +168 -168
- package/lib/print/shared/print.type.d.ts +45 -45
- package/lib/query/index.d.ts +1 -1
- package/lib/query/query.module.d.ts +11 -11
- package/lib/query/shared/index.d.ts +6 -6
- package/lib/query/shared/query-search-source.d.ts +17 -17
- package/lib/query/shared/query-search-source.providers.d.ts +17 -17
- package/lib/query/shared/query.directive.d.ts +105 -105
- package/lib/query/shared/query.enums.d.ts +26 -26
- package/lib/query/shared/query.interfaces.d.ts +35 -35
- package/lib/query/shared/query.service.d.ts +56 -56
- package/lib/query/shared/query.utils.d.ts +27 -27
- package/lib/search/index.d.ts +11 -11
- package/lib/search/search-bar/search-bar.component.d.ts +230 -230
- package/lib/search/search-bar/search-bar.module.d.ts +23 -23
- package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
- package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
- package/lib/search/search-results/search-results-add-button.component.d.ts +76 -76
- package/lib/search/search-results/search-results-item.component.d.ts +47 -47
- package/lib/search/search-results/search-results.component.d.ts +161 -161
- package/lib/search/search-results/search-results.module.d.ts +28 -28
- package/lib/search/search-selector/search-selector.component.d.ts +58 -58
- package/lib/search/search-selector/search-selector.module.d.ts +19 -19
- package/lib/search/search-settings/search-settings.component.d.ts +102 -102
- package/lib/search/search-settings/search-settings.module.d.ts +20 -20
- package/lib/search/search.module.d.ts +14 -14
- package/lib/search/shared/index.d.ts +8 -8
- package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
- package/lib/search/shared/search-source-service.providers.d.ts +15 -15
- package/lib/search/shared/search-source.service.d.ts +32 -32
- package/lib/search/shared/search.enums.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +29 -29
- package/lib/search/shared/search.service.d.ts +53 -53
- package/lib/search/shared/search.utils.d.ts +39 -39
- package/lib/search/shared/sources/coordinates.d.ts +40 -40
- package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
- package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
- package/lib/search/shared/sources/icherche.d.ts +96 -96
- package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
- package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
- package/lib/search/shared/sources/ilayer.d.ts +55 -55
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
- package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
- package/lib/search/shared/sources/index.d.ts +17 -17
- package/lib/search/shared/sources/nominatim.d.ts +45 -45
- package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
- package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
- package/lib/search/shared/sources/source.d.ts +108 -108
- package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
- package/lib/search/shared/sources/storedqueries.d.ts +73 -73
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
- package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
- package/lib/toast/index.d.ts +1 -1
- package/lib/toast/toast.component.d.ts +33 -33
- package/lib/toast/toast.module.d.ts +14 -14
- package/lib/utils/commonVectorStyle.d.ts +14 -14
- package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
- package/lib/utils/googleLinks.d.ts +5 -5
- package/lib/utils/id-generator.d.ts +54 -54
- package/lib/utils/index.d.ts +5 -5
- package/lib/utils/osmLinks.d.ts +4 -4
- package/lib/wkt/index.d.ts +1 -1
- package/lib/wkt/shared/index.d.ts +1 -1
- package/lib/wkt/shared/wkt.service.d.ts +19 -19
- package/lib/wkt/wkt.module.d.ts +8 -8
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
- package/lib/workspace/confirmation-popup/index.d.ts +2 -2
- package/lib/workspace/index.d.ts +7 -7
- package/lib/workspace/shared/edition-workspace.d.ts +82 -82
- package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
- package/lib/workspace/shared/feature-workspace.d.ts +18 -18
- package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
- package/lib/workspace/shared/index.d.ts +7 -7
- package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
- package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
- package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
- package/lib/workspace/shared/workspace.utils.d.ts +10 -10
- package/lib/workspace/widgets/index.d.ts +3 -3
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
- package/lib/workspace/widgets/widgets.d.ts +9 -9
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
- package/lib/workspace/workspace.module.d.ts +14 -14
- package/package.json +4 -4
- package/public_api.d.ts +51 -51
|
@@ -1,322 +1,322 @@
|
|
|
1
|
-
import { Directive, Input, Self } from '@angular/core';
|
|
2
|
-
import olFeature from 'ol/Feature';
|
|
3
|
-
import { transform } from 'ol/proj';
|
|
4
|
-
import * as olstyle from 'ol/style';
|
|
5
|
-
import * as olgeom from 'ol/geom';
|
|
6
|
-
import OlGeoJSON from 'ol/format/GeoJSON';
|
|
7
|
-
import { EntityStore } from '@igo2/common';
|
|
8
|
-
import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
|
|
9
|
-
import { VectorLayer } from '../../layer/shared/layers/vector-layer';
|
|
10
|
-
import { take } from 'rxjs/operators';
|
|
11
|
-
import { tryBindStoreLayer } from '../../feature/shared/feature.utils';
|
|
12
|
-
import { FeatureStore } from '../../feature/shared/store';
|
|
13
|
-
import { FeatureMotion, FEATURE } from '../../feature/shared/feature.enums';
|
|
14
|
-
import { sourceCanReverseSearchAsSummary } from './search.utils';
|
|
15
|
-
import { unByKey } from 'ol/Observable';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "../../map/map-browser/map-browser.component";
|
|
18
|
-
import * as i2 from "./search.service";
|
|
19
|
-
import * as i3 from "./search-source.service";
|
|
20
|
-
import * as i4 from "@igo2/core";
|
|
21
|
-
/**
|
|
22
|
-
* This directive makes the mouse coordinate trigger a reverse search on available search sources.
|
|
23
|
-
* The search results are placed into a label, on a cross icon, representing the mouse coordinate.
|
|
24
|
-
* By default, no search sources. Config in config file must be defined.
|
|
25
|
-
* the layer level.
|
|
26
|
-
*/
|
|
27
|
-
export class SearchPointerSummaryDirective {
|
|
28
|
-
constructor(component, searchService, searchSourceService, mediaService) {
|
|
29
|
-
this.component = component;
|
|
30
|
-
this.searchService = searchService;
|
|
31
|
-
this.searchSourceService = searchSourceService;
|
|
32
|
-
this.mediaService = mediaService;
|
|
33
|
-
this.pointerSearchStore = new EntityStore([]);
|
|
34
|
-
this.reverseSearch$$ = [];
|
|
35
|
-
this.hasPointerReverseSearchSource = false;
|
|
36
|
-
this.searchPointerSummaryFeatureId = 'searchPointerSummaryFeatureId';
|
|
37
|
-
/**
|
|
38
|
-
* The delay where the mouse must be motionless before trigger the reverse search
|
|
39
|
-
*/
|
|
40
|
-
this.igoSearchPointerSummaryDelay = 1000;
|
|
41
|
-
/**
|
|
42
|
-
* If the user has enabled or not the directive
|
|
43
|
-
*/
|
|
44
|
-
this.igoSearchPointerSummaryEnabled = false;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* IGO map
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
get map() {
|
|
51
|
-
return this.component.map;
|
|
52
|
-
}
|
|
53
|
-
get mapProjection() {
|
|
54
|
-
return this.component.map.projection;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Start listening to pointermove and reverse search results.
|
|
58
|
-
* @internal
|
|
59
|
-
*/
|
|
60
|
-
ngOnInit() {
|
|
61
|
-
this.listenToMapPointerMove();
|
|
62
|
-
this.subscribeToPointerStore();
|
|
63
|
-
this.map.status$.pipe(take(1)).subscribe(() => {
|
|
64
|
-
this.store = new FeatureStore([], { map: this.map });
|
|
65
|
-
this.initStore();
|
|
66
|
-
});
|
|
67
|
-
// To handle context change without using the contextService.
|
|
68
|
-
this.layers$$ = this.map.layers$.subscribe((layers) => {
|
|
69
|
-
if (this.store && !layers.find(l => l.id === 'searchPointerSummaryId')) {
|
|
70
|
-
this.initStore();
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Initialize the pointer position store
|
|
76
|
-
* @internal
|
|
77
|
-
*/
|
|
78
|
-
initStore() {
|
|
79
|
-
const store = this.store;
|
|
80
|
-
const layer = new VectorLayer({
|
|
81
|
-
isIgoInternalLayer: true,
|
|
82
|
-
id: 'searchPointerSummaryId',
|
|
83
|
-
title: 'searchPointerSummary',
|
|
84
|
-
zIndex: 900,
|
|
85
|
-
source: new FeatureDataSource(),
|
|
86
|
-
showInLayerList: false,
|
|
87
|
-
exportable: false,
|
|
88
|
-
browsable: false,
|
|
89
|
-
style: pointerPositionSummaryMarker
|
|
90
|
-
});
|
|
91
|
-
tryBindStoreLayer(store, layer);
|
|
92
|
-
}
|
|
93
|
-
ngAfterContentChecked() {
|
|
94
|
-
if (!this.searchSourceService.getEnabledSources().filter(sourceCanReverseSearchAsSummary).length) {
|
|
95
|
-
this.hasPointerReverseSearchSource = false;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
this.hasPointerReverseSearchSource = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Stop listening to pointermove and reverse search results.
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
ngOnDestroy() {
|
|
106
|
-
this.unlistenToMapPointerMove();
|
|
107
|
-
this.unsubscribeToPointerStore();
|
|
108
|
-
this.unsubscribeReverseSearch();
|
|
109
|
-
this.layers$$.unsubscribe();
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Subscribe to pointermove result store
|
|
113
|
-
* @internal
|
|
114
|
-
*/
|
|
115
|
-
subscribeToPointerStore() {
|
|
116
|
-
this.store$$ = this.pointerSearchStore.entities$.subscribe(resultsUnderPointerPosition => {
|
|
117
|
-
this.entitiesToPointerOverlay(resultsUnderPointerPosition);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Build an object based on the closest feature by type (base on type and distance properties )
|
|
122
|
-
* @param results SearchResult[]
|
|
123
|
-
* @returns OL style function
|
|
124
|
-
*/
|
|
125
|
-
computeSummaryClosestFeature(results) {
|
|
126
|
-
const closestResultByType = {};
|
|
127
|
-
results.map(result => {
|
|
128
|
-
if (result.data.properties.type && result.data.properties.distance >= 0) {
|
|
129
|
-
if (closestResultByType.hasOwnProperty(result.data.properties.type)) {
|
|
130
|
-
const prevDistance = closestResultByType[result.data.properties.type].distance;
|
|
131
|
-
if (result.data.properties.distance < prevDistance) {
|
|
132
|
-
const title = result.meta.pointerSummaryTitle || result.meta.title;
|
|
133
|
-
closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
const title = result.meta.pointerSummaryTitle || result.meta.title;
|
|
138
|
-
closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
return closestResultByType;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* convert store entities to a pointer position overlay with label summary on.
|
|
146
|
-
* @param event OL map browser pointer event
|
|
147
|
-
*/
|
|
148
|
-
entitiesToPointerOverlay(resultsUnderPointerPosition) {
|
|
149
|
-
const closestResultByType = this.computeSummaryClosestFeature(resultsUnderPointerPosition);
|
|
150
|
-
const summarizedClosestType = Object.keys(closestResultByType);
|
|
151
|
-
const processedSummarizedClosestType = [];
|
|
152
|
-
const summary = [];
|
|
153
|
-
resultsUnderPointerPosition.map(result => {
|
|
154
|
-
const typeIndex = summarizedClosestType.indexOf(result.data.properties.type);
|
|
155
|
-
if (typeIndex !== -1) {
|
|
156
|
-
summary.push(closestResultByType[result.data.properties.type].title);
|
|
157
|
-
summarizedClosestType.splice(typeIndex, 1);
|
|
158
|
-
processedSummarizedClosestType.push(result.data.properties.type);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
if (processedSummarizedClosestType.indexOf(result.data.properties.type) === -1) {
|
|
162
|
-
summary.push(result.meta.pointerSummaryTitle || result.meta.title);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
if (summary.length) {
|
|
167
|
-
this.addPointerOverlay(summary.join('\n'));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* On map pointermove
|
|
172
|
-
*/
|
|
173
|
-
listenToMapPointerMove() {
|
|
174
|
-
this.pointerMoveListener = this.map.ol.on('pointermove', (event) => this.onMapEvent(event));
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Unsubscribe to pointer store.
|
|
178
|
-
* @internal
|
|
179
|
-
*/
|
|
180
|
-
unsubscribeToPointerStore() {
|
|
181
|
-
this.store$$.unsubscribe();
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Unsubscribe to reverse seatch store.
|
|
185
|
-
* @internal
|
|
186
|
-
*/
|
|
187
|
-
unsubscribeReverseSearch() {
|
|
188
|
-
this.reverseSearch$$.map(s => s.unsubscribe());
|
|
189
|
-
this.reverseSearch$$ = [];
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Stop listening for map pointermove
|
|
193
|
-
* @internal
|
|
194
|
-
*/
|
|
195
|
-
unlistenToMapPointerMove() {
|
|
196
|
-
unByKey(this.pointerMoveListener);
|
|
197
|
-
this.pointerMoveListener = undefined;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Trigger reverse search when the mouse is motionless during the defined delay (pointerMoveDelay).
|
|
201
|
-
* @param event OL map browser pointer event
|
|
202
|
-
*/
|
|
203
|
-
onMapEvent(event) {
|
|
204
|
-
if (event.dragging || !this.igoSearchPointerSummaryEnabled ||
|
|
205
|
-
!this.hasPointerReverseSearchSource || this.mediaService.isTouchScreen()) {
|
|
206
|
-
this.clearLayer();
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
if (typeof this.lastTimeoutRequest !== 'undefined') { // cancel timeout when the mouse moves
|
|
210
|
-
clearTimeout(this.lastTimeoutRequest);
|
|
211
|
-
this.clearLayer();
|
|
212
|
-
this.unsubscribeReverseSearch();
|
|
213
|
-
}
|
|
214
|
-
this.lonLat = transform(event.coordinate, this.mapProjection, 'EPSG:4326');
|
|
215
|
-
this.lastTimeoutRequest = setTimeout(() => {
|
|
216
|
-
this.onSearchCoordinate();
|
|
217
|
-
}, this.igoSearchPointerSummaryDelay);
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Sort the results by display order.
|
|
221
|
-
* @param r1 First result
|
|
222
|
-
* @param r2 Second result
|
|
223
|
-
*/
|
|
224
|
-
sortByOrder(r1, r2) {
|
|
225
|
-
return r1.source.displayOrder - r2.source.displayOrder;
|
|
226
|
-
}
|
|
227
|
-
onSearchCoordinate() {
|
|
228
|
-
this.pointerSearchStore.clear();
|
|
229
|
-
const results = this.searchService.reverseSearch(this.lonLat, { params: { geometry: 'false', icon: 'false' } }, true);
|
|
230
|
-
for (const i in results) {
|
|
231
|
-
if (results.length > 0) {
|
|
232
|
-
this.reverseSearch$$.push(results[i].request.subscribe((_results) => {
|
|
233
|
-
this.onSearch({ research: results[i], results: _results });
|
|
234
|
-
}));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
onSearch(event) {
|
|
239
|
-
const results = event.results;
|
|
240
|
-
const newResults = this.pointerSearchStore.all()
|
|
241
|
-
.filter((result) => result.source !== event.research.source)
|
|
242
|
-
.concat(results);
|
|
243
|
-
this.pointerSearchStore.load(newResults.sort(this.sortByOrder));
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Add a feature to the pointer store
|
|
247
|
-
* @param text string
|
|
248
|
-
*/
|
|
249
|
-
addPointerOverlay(text) {
|
|
250
|
-
this.clearLayer();
|
|
251
|
-
const geometry = new olgeom.Point(transform(this.lonLat, 'EPSG:4326', this.mapProjection));
|
|
252
|
-
const feature = new olFeature({ geometry });
|
|
253
|
-
const geojsonGeom = new OlGeoJSON().writeGeometryObject(geometry, {
|
|
254
|
-
featureProjection: this.mapProjection,
|
|
255
|
-
dataProjection: this.mapProjection
|
|
256
|
-
});
|
|
257
|
-
const f = {
|
|
258
|
-
type: FEATURE,
|
|
259
|
-
geometry: geojsonGeom,
|
|
260
|
-
projection: this.mapProjection,
|
|
261
|
-
properties: {
|
|
262
|
-
id: this.searchPointerSummaryFeatureId,
|
|
263
|
-
pointerSummary: text
|
|
264
|
-
},
|
|
265
|
-
meta: {
|
|
266
|
-
id: this.searchPointerSummaryFeatureId
|
|
267
|
-
},
|
|
268
|
-
ol: feature
|
|
269
|
-
};
|
|
270
|
-
this.store.setLayerFeatures([f], FeatureMotion.None);
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Clear the pointer store features
|
|
274
|
-
*/
|
|
275
|
-
clearLayer() {
|
|
276
|
-
if (this.store) {
|
|
277
|
-
this.store.clearLayer();
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
SearchPointerSummaryDirective.ɵfac = function SearchPointerSummaryDirective_Factory(t) { return new (t || SearchPointerSummaryDirective)(i0.ɵɵdirectiveInject(i1.MapBrowserComponent, 2), i0.ɵɵdirectiveInject(i2.SearchService), i0.ɵɵdirectiveInject(i3.SearchSourceService), i0.ɵɵdirectiveInject(i4.MediaService)); };
|
|
282
|
-
SearchPointerSummaryDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SearchPointerSummaryDirective, selectors: [["", "igoSearchPointerSummary", ""]], inputs: { igoSearchPointerSummaryDelay: "igoSearchPointerSummaryDelay", igoSearchPointerSummaryEnabled: "igoSearchPointerSummaryEnabled" } });
|
|
283
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchPointerSummaryDirective, [{
|
|
284
|
-
type: Directive,
|
|
285
|
-
args: [{
|
|
286
|
-
selector: '[igoSearchPointerSummary]'
|
|
287
|
-
}]
|
|
288
|
-
}], function () { return [{ type: i1.MapBrowserComponent, decorators: [{
|
|
289
|
-
type: Self
|
|
290
|
-
}] }, { type: i2.SearchService }, { type: i3.SearchSourceService }, { type: i4.MediaService }]; }, { igoSearchPointerSummaryDelay: [{
|
|
291
|
-
type: Input
|
|
292
|
-
}], igoSearchPointerSummaryEnabled: [{
|
|
293
|
-
type: Input
|
|
294
|
-
}] }); })();
|
|
295
|
-
/**
|
|
296
|
-
* Create a default style for the pointer position and it's label summary.
|
|
297
|
-
* @param feature OlFeature
|
|
298
|
-
* @returns OL style function
|
|
299
|
-
*/
|
|
300
|
-
export function pointerPositionSummaryMarker(feature, resolution) {
|
|
301
|
-
return new olstyle.Style({
|
|
302
|
-
image: new olstyle.Icon({
|
|
303
|
-
src: './assets/igo2/geo/icons/cross_black_18px.svg',
|
|
304
|
-
imgSize: [18, 18], // for ie
|
|
305
|
-
}),
|
|
306
|
-
text: new olstyle.Text({
|
|
307
|
-
text: feature.get('pointerSummary'),
|
|
308
|
-
textAlign: 'left',
|
|
309
|
-
textBaseline: 'bottom',
|
|
310
|
-
font: '12px Calibri,sans-serif',
|
|
311
|
-
fill: new olstyle.Fill({ color: '#000' }),
|
|
312
|
-
backgroundFill: new olstyle.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),
|
|
313
|
-
backgroundStroke: new olstyle.Stroke({ color: 'rgba(200, 200, 200, 0.75)', width: 2 }),
|
|
314
|
-
stroke: new olstyle.Stroke({ color: '#fff', width: 3 }),
|
|
315
|
-
overflow: true,
|
|
316
|
-
offsetX: 10,
|
|
317
|
-
offsetY: -10,
|
|
318
|
-
padding: [2.5, 2.5, 2.5, 2.5]
|
|
319
|
-
})
|
|
320
|
-
});
|
|
321
|
-
}
|
|
1
|
+
import { Directive, Input, Self } from '@angular/core';
|
|
2
|
+
import olFeature from 'ol/Feature';
|
|
3
|
+
import { transform } from 'ol/proj';
|
|
4
|
+
import * as olstyle from 'ol/style';
|
|
5
|
+
import * as olgeom from 'ol/geom';
|
|
6
|
+
import OlGeoJSON from 'ol/format/GeoJSON';
|
|
7
|
+
import { EntityStore } from '@igo2/common';
|
|
8
|
+
import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
|
|
9
|
+
import { VectorLayer } from '../../layer/shared/layers/vector-layer';
|
|
10
|
+
import { take } from 'rxjs/operators';
|
|
11
|
+
import { tryBindStoreLayer } from '../../feature/shared/feature.utils';
|
|
12
|
+
import { FeatureStore } from '../../feature/shared/store';
|
|
13
|
+
import { FeatureMotion, FEATURE } from '../../feature/shared/feature.enums';
|
|
14
|
+
import { sourceCanReverseSearchAsSummary } from './search.utils';
|
|
15
|
+
import { unByKey } from 'ol/Observable';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
import * as i1 from "../../map/map-browser/map-browser.component";
|
|
18
|
+
import * as i2 from "./search.service";
|
|
19
|
+
import * as i3 from "./search-source.service";
|
|
20
|
+
import * as i4 from "@igo2/core";
|
|
21
|
+
/**
|
|
22
|
+
* This directive makes the mouse coordinate trigger a reverse search on available search sources.
|
|
23
|
+
* The search results are placed into a label, on a cross icon, representing the mouse coordinate.
|
|
24
|
+
* By default, no search sources. Config in config file must be defined.
|
|
25
|
+
* the layer level.
|
|
26
|
+
*/
|
|
27
|
+
export class SearchPointerSummaryDirective {
|
|
28
|
+
constructor(component, searchService, searchSourceService, mediaService) {
|
|
29
|
+
this.component = component;
|
|
30
|
+
this.searchService = searchService;
|
|
31
|
+
this.searchSourceService = searchSourceService;
|
|
32
|
+
this.mediaService = mediaService;
|
|
33
|
+
this.pointerSearchStore = new EntityStore([]);
|
|
34
|
+
this.reverseSearch$$ = [];
|
|
35
|
+
this.hasPointerReverseSearchSource = false;
|
|
36
|
+
this.searchPointerSummaryFeatureId = 'searchPointerSummaryFeatureId';
|
|
37
|
+
/**
|
|
38
|
+
* The delay where the mouse must be motionless before trigger the reverse search
|
|
39
|
+
*/
|
|
40
|
+
this.igoSearchPointerSummaryDelay = 1000;
|
|
41
|
+
/**
|
|
42
|
+
* If the user has enabled or not the directive
|
|
43
|
+
*/
|
|
44
|
+
this.igoSearchPointerSummaryEnabled = false;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* IGO map
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
get map() {
|
|
51
|
+
return this.component.map;
|
|
52
|
+
}
|
|
53
|
+
get mapProjection() {
|
|
54
|
+
return this.component.map.projection;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Start listening to pointermove and reverse search results.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
ngOnInit() {
|
|
61
|
+
this.listenToMapPointerMove();
|
|
62
|
+
this.subscribeToPointerStore();
|
|
63
|
+
this.map.status$.pipe(take(1)).subscribe(() => {
|
|
64
|
+
this.store = new FeatureStore([], { map: this.map });
|
|
65
|
+
this.initStore();
|
|
66
|
+
});
|
|
67
|
+
// To handle context change without using the contextService.
|
|
68
|
+
this.layers$$ = this.map.layers$.subscribe((layers) => {
|
|
69
|
+
if (this.store && !layers.find(l => l.id === 'searchPointerSummaryId')) {
|
|
70
|
+
this.initStore();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Initialize the pointer position store
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
initStore() {
|
|
79
|
+
const store = this.store;
|
|
80
|
+
const layer = new VectorLayer({
|
|
81
|
+
isIgoInternalLayer: true,
|
|
82
|
+
id: 'searchPointerSummaryId',
|
|
83
|
+
title: 'searchPointerSummary',
|
|
84
|
+
zIndex: 900,
|
|
85
|
+
source: new FeatureDataSource(),
|
|
86
|
+
showInLayerList: false,
|
|
87
|
+
exportable: false,
|
|
88
|
+
browsable: false,
|
|
89
|
+
style: pointerPositionSummaryMarker
|
|
90
|
+
});
|
|
91
|
+
tryBindStoreLayer(store, layer);
|
|
92
|
+
}
|
|
93
|
+
ngAfterContentChecked() {
|
|
94
|
+
if (!this.searchSourceService.getEnabledSources().filter(sourceCanReverseSearchAsSummary).length) {
|
|
95
|
+
this.hasPointerReverseSearchSource = false;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.hasPointerReverseSearchSource = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Stop listening to pointermove and reverse search results.
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
ngOnDestroy() {
|
|
106
|
+
this.unlistenToMapPointerMove();
|
|
107
|
+
this.unsubscribeToPointerStore();
|
|
108
|
+
this.unsubscribeReverseSearch();
|
|
109
|
+
this.layers$$.unsubscribe();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Subscribe to pointermove result store
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
subscribeToPointerStore() {
|
|
116
|
+
this.store$$ = this.pointerSearchStore.entities$.subscribe(resultsUnderPointerPosition => {
|
|
117
|
+
this.entitiesToPointerOverlay(resultsUnderPointerPosition);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Build an object based on the closest feature by type (base on type and distance properties )
|
|
122
|
+
* @param results SearchResult[]
|
|
123
|
+
* @returns OL style function
|
|
124
|
+
*/
|
|
125
|
+
computeSummaryClosestFeature(results) {
|
|
126
|
+
const closestResultByType = {};
|
|
127
|
+
results.map(result => {
|
|
128
|
+
if (result.data.properties.type && result.data.properties.distance >= 0) {
|
|
129
|
+
if (closestResultByType.hasOwnProperty(result.data.properties.type)) {
|
|
130
|
+
const prevDistance = closestResultByType[result.data.properties.type].distance;
|
|
131
|
+
if (result.data.properties.distance < prevDistance) {
|
|
132
|
+
const title = result.meta.pointerSummaryTitle || result.meta.title;
|
|
133
|
+
closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const title = result.meta.pointerSummaryTitle || result.meta.title;
|
|
138
|
+
closestResultByType[result.data.properties.type] = { distance: result.data.properties.distance, title };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return closestResultByType;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* convert store entities to a pointer position overlay with label summary on.
|
|
146
|
+
* @param event OL map browser pointer event
|
|
147
|
+
*/
|
|
148
|
+
entitiesToPointerOverlay(resultsUnderPointerPosition) {
|
|
149
|
+
const closestResultByType = this.computeSummaryClosestFeature(resultsUnderPointerPosition);
|
|
150
|
+
const summarizedClosestType = Object.keys(closestResultByType);
|
|
151
|
+
const processedSummarizedClosestType = [];
|
|
152
|
+
const summary = [];
|
|
153
|
+
resultsUnderPointerPosition.map(result => {
|
|
154
|
+
const typeIndex = summarizedClosestType.indexOf(result.data.properties.type);
|
|
155
|
+
if (typeIndex !== -1) {
|
|
156
|
+
summary.push(closestResultByType[result.data.properties.type].title);
|
|
157
|
+
summarizedClosestType.splice(typeIndex, 1);
|
|
158
|
+
processedSummarizedClosestType.push(result.data.properties.type);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
if (processedSummarizedClosestType.indexOf(result.data.properties.type) === -1) {
|
|
162
|
+
summary.push(result.meta.pointerSummaryTitle || result.meta.title);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
if (summary.length) {
|
|
167
|
+
this.addPointerOverlay(summary.join('\n'));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* On map pointermove
|
|
172
|
+
*/
|
|
173
|
+
listenToMapPointerMove() {
|
|
174
|
+
this.pointerMoveListener = this.map.ol.on('pointermove', (event) => this.onMapEvent(event));
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Unsubscribe to pointer store.
|
|
178
|
+
* @internal
|
|
179
|
+
*/
|
|
180
|
+
unsubscribeToPointerStore() {
|
|
181
|
+
this.store$$.unsubscribe();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Unsubscribe to reverse seatch store.
|
|
185
|
+
* @internal
|
|
186
|
+
*/
|
|
187
|
+
unsubscribeReverseSearch() {
|
|
188
|
+
this.reverseSearch$$.map(s => s.unsubscribe());
|
|
189
|
+
this.reverseSearch$$ = [];
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Stop listening for map pointermove
|
|
193
|
+
* @internal
|
|
194
|
+
*/
|
|
195
|
+
unlistenToMapPointerMove() {
|
|
196
|
+
unByKey(this.pointerMoveListener);
|
|
197
|
+
this.pointerMoveListener = undefined;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Trigger reverse search when the mouse is motionless during the defined delay (pointerMoveDelay).
|
|
201
|
+
* @param event OL map browser pointer event
|
|
202
|
+
*/
|
|
203
|
+
onMapEvent(event) {
|
|
204
|
+
if (event.dragging || !this.igoSearchPointerSummaryEnabled ||
|
|
205
|
+
!this.hasPointerReverseSearchSource || this.mediaService.isTouchScreen()) {
|
|
206
|
+
this.clearLayer();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (typeof this.lastTimeoutRequest !== 'undefined') { // cancel timeout when the mouse moves
|
|
210
|
+
clearTimeout(this.lastTimeoutRequest);
|
|
211
|
+
this.clearLayer();
|
|
212
|
+
this.unsubscribeReverseSearch();
|
|
213
|
+
}
|
|
214
|
+
this.lonLat = transform(event.coordinate, this.mapProjection, 'EPSG:4326');
|
|
215
|
+
this.lastTimeoutRequest = setTimeout(() => {
|
|
216
|
+
this.onSearchCoordinate();
|
|
217
|
+
}, this.igoSearchPointerSummaryDelay);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Sort the results by display order.
|
|
221
|
+
* @param r1 First result
|
|
222
|
+
* @param r2 Second result
|
|
223
|
+
*/
|
|
224
|
+
sortByOrder(r1, r2) {
|
|
225
|
+
return r1.source.displayOrder - r2.source.displayOrder;
|
|
226
|
+
}
|
|
227
|
+
onSearchCoordinate() {
|
|
228
|
+
this.pointerSearchStore.clear();
|
|
229
|
+
const results = this.searchService.reverseSearch(this.lonLat, { params: { geometry: 'false', icon: 'false' } }, true);
|
|
230
|
+
for (const i in results) {
|
|
231
|
+
if (results.length > 0) {
|
|
232
|
+
this.reverseSearch$$.push(results[i].request.subscribe((_results) => {
|
|
233
|
+
this.onSearch({ research: results[i], results: _results });
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
onSearch(event) {
|
|
239
|
+
const results = event.results;
|
|
240
|
+
const newResults = this.pointerSearchStore.all()
|
|
241
|
+
.filter((result) => result.source !== event.research.source)
|
|
242
|
+
.concat(results);
|
|
243
|
+
this.pointerSearchStore.load(newResults.sort(this.sortByOrder));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Add a feature to the pointer store
|
|
247
|
+
* @param text string
|
|
248
|
+
*/
|
|
249
|
+
addPointerOverlay(text) {
|
|
250
|
+
this.clearLayer();
|
|
251
|
+
const geometry = new olgeom.Point(transform(this.lonLat, 'EPSG:4326', this.mapProjection));
|
|
252
|
+
const feature = new olFeature({ geometry });
|
|
253
|
+
const geojsonGeom = new OlGeoJSON().writeGeometryObject(geometry, {
|
|
254
|
+
featureProjection: this.mapProjection,
|
|
255
|
+
dataProjection: this.mapProjection
|
|
256
|
+
});
|
|
257
|
+
const f = {
|
|
258
|
+
type: FEATURE,
|
|
259
|
+
geometry: geojsonGeom,
|
|
260
|
+
projection: this.mapProjection,
|
|
261
|
+
properties: {
|
|
262
|
+
id: this.searchPointerSummaryFeatureId,
|
|
263
|
+
pointerSummary: text
|
|
264
|
+
},
|
|
265
|
+
meta: {
|
|
266
|
+
id: this.searchPointerSummaryFeatureId
|
|
267
|
+
},
|
|
268
|
+
ol: feature
|
|
269
|
+
};
|
|
270
|
+
this.store.setLayerFeatures([f], FeatureMotion.None);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Clear the pointer store features
|
|
274
|
+
*/
|
|
275
|
+
clearLayer() {
|
|
276
|
+
if (this.store) {
|
|
277
|
+
this.store.clearLayer();
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
SearchPointerSummaryDirective.ɵfac = function SearchPointerSummaryDirective_Factory(t) { return new (t || SearchPointerSummaryDirective)(i0.ɵɵdirectiveInject(i1.MapBrowserComponent, 2), i0.ɵɵdirectiveInject(i2.SearchService), i0.ɵɵdirectiveInject(i3.SearchSourceService), i0.ɵɵdirectiveInject(i4.MediaService)); };
|
|
282
|
+
SearchPointerSummaryDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SearchPointerSummaryDirective, selectors: [["", "igoSearchPointerSummary", ""]], inputs: { igoSearchPointerSummaryDelay: "igoSearchPointerSummaryDelay", igoSearchPointerSummaryEnabled: "igoSearchPointerSummaryEnabled" } });
|
|
283
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchPointerSummaryDirective, [{
|
|
284
|
+
type: Directive,
|
|
285
|
+
args: [{
|
|
286
|
+
selector: '[igoSearchPointerSummary]'
|
|
287
|
+
}]
|
|
288
|
+
}], function () { return [{ type: i1.MapBrowserComponent, decorators: [{
|
|
289
|
+
type: Self
|
|
290
|
+
}] }, { type: i2.SearchService }, { type: i3.SearchSourceService }, { type: i4.MediaService }]; }, { igoSearchPointerSummaryDelay: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], igoSearchPointerSummaryEnabled: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}] }); })();
|
|
295
|
+
/**
|
|
296
|
+
* Create a default style for the pointer position and it's label summary.
|
|
297
|
+
* @param feature OlFeature
|
|
298
|
+
* @returns OL style function
|
|
299
|
+
*/
|
|
300
|
+
export function pointerPositionSummaryMarker(feature, resolution) {
|
|
301
|
+
return new olstyle.Style({
|
|
302
|
+
image: new olstyle.Icon({
|
|
303
|
+
src: './assets/igo2/geo/icons/cross_black_18px.svg',
|
|
304
|
+
imgSize: [18, 18], // for ie
|
|
305
|
+
}),
|
|
306
|
+
text: new olstyle.Text({
|
|
307
|
+
text: feature.get('pointerSummary'),
|
|
308
|
+
textAlign: 'left',
|
|
309
|
+
textBaseline: 'bottom',
|
|
310
|
+
font: '12px Calibri,sans-serif',
|
|
311
|
+
fill: new olstyle.Fill({ color: '#000' }),
|
|
312
|
+
backgroundFill: new olstyle.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),
|
|
313
|
+
backgroundStroke: new olstyle.Stroke({ color: 'rgba(200, 200, 200, 0.75)', width: 2 }),
|
|
314
|
+
stroke: new olstyle.Stroke({ color: '#fff', width: 3 }),
|
|
315
|
+
overflow: true,
|
|
316
|
+
offsetX: 10,
|
|
317
|
+
offsetY: -10,
|
|
318
|
+
padding: [2.5, 2.5, 2.5, 2.5]
|
|
319
|
+
})
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
322
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLElBQUksRUFHTCxNQUFNLGVBQWUsQ0FBQztBQVd2QixPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBRXhDOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQXVDeEMsWUFDa0IsU0FBOEIsRUFD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QyxLQUFLLENBQUM7UUFDdkIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztZQUN0QixHQUFHLEVBQUUsOENBQThDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFTO1NBQzdCLENBQUM7UUFFRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JCLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQ25DLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxjQUFjLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLENBQUM7WUFDdkUsZ0JBQWdCLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0RixNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDOUIsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFNlbGYsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IE1hcEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tYXAvbWFwLWJyb3dzZXIvbWFwLWJyb3dzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgKiBhcyBvbHN0eWxlIGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCAqIGFzIG9sZ2VvbSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0LCBSZXNlYXJjaCB9IGZyb20gJy4vc2VhcmNoLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdHJ5QmluZFN0b3JlTGF5ZXIgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLnV0aWxzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24sIEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5IH0gZnJvbSAnLi9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgbWFrZXMgdGhlIG1vdXNlIGNvb3JkaW5hdGUgdHJpZ2dlciBhIHJldmVyc2Ugc2VhcmNoIG9uIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlcy5cbiAqIFRoZSBzZWFyY2ggcmVzdWx0cyBhcmUgcGxhY2VkIGludG8gYSBsYWJlbCwgb24gYSBjcm9zcyBpY29uLCByZXByZXNlbnRpbmcgdGhlIG1vdXNlIGNvb3JkaW5hdGUuXG4gKiBCeSBkZWZhdWx0LCBubyBzZWFyY2ggc291cmNlcy4gQ29uZmlnIGluIGNvbmZpZyBmaWxlIG11c3QgYmUgZGVmaW5lZC5cbiAqIHRoZSBsYXllciBsZXZlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5XSdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgcHVibGljIHN0b3JlOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT47XG4gIHByaXZhdGUgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdO1xuICBwcml2YXRlIHBvaW50ZXJTZWFyY2hTdG9yZTogRW50aXR5U3RvcmU8U2VhcmNoUmVzdWx0PiA9IG5ldyBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+KFtdKTtcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmV2ZXJzZVNlYXJjaCQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgcG9pbnRlck1vdmVMaXN0ZW5lcjtcblxuICBwcml2YXRlIHNlYXJjaFBvaW50ZXJTdW1tYXJ5RmVhdHVyZUlkOiBzdHJpbmcgPSAnc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQnO1xuICAvKipcbiAgICogVGhlIGRlbGF5IHdoZXJlIHRoZSBtb3VzZSBtdXN0IGJlIG1vdGlvbmxlc3MgYmVmb3JlIHRyaWdnZXIgdGhlIHJldmVyc2Ugc2VhcmNoXG4gICAqL1xuICBASW5wdXQoKSBpZ29TZWFyY2hQb2ludGVyU3VtbWFyeURlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgdXNlciBoYXMgZW5hYmxlZCBvciBub3QgdGhlIGRpcmVjdGl2ZVxuICAgKi9cbiAgQElucHV0KCkgaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElHTyBtYXBcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgbWFwKCk6IElnb01hcCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Lm1hcDtcbiAgfVxuXG4gIGdldCBtYXBQcm9qZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNvbXBvbmVudC5tYXAgYXMgSWdvTWFwKS5wcm9qZWN0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBwcml2YXRlIGNvbXBvbmVudDogTWFwQnJvd3NlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogU3RhcnQgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcblxuICAgIHRoaXMubWFwLnN0YXR1cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHttYXA6IHRoaXMubWFwfSk7XG4gICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gVG8gaGFuZGxlIGNvbnRleHQgY2hhbmdlIHdpdGhvdXQgdXNpbmcgdGhlIGNvbnRleHRTZXJ2aWNlLlxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yZSAmJiAhbGF5ZXJzLmZpbmQobCA9PiBsLmlkID09PSAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcpKSB7XG4gICAgICAgIHRoaXMuaW5pdFN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBwb2ludGVyIHBvc2l0aW9uIHN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U3RvcmUoKSB7XG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnN0b3JlO1xuXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgICAgaWQgOiAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcsXG4gICAgICB0aXRsZTogJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5JyxcbiAgICAgIHpJbmRleDogOTAwLFxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcbiAgICAgIGJyb3dzYWJsZTogZmFsc2UsXG4gICAgICBzdHlsZTogcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlclxuICAgIH0pO1xuICAgIHRyeUJpbmRTdG9yZUxheWVyKHN0b3JlLCBsYXllcik7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU291cmNlU2VydmljZS5nZXRFbmFibGVkU291cmNlcygpLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5KS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGxpc3RlbmluZyB0byBwb2ludGVybW92ZSBhbmQgcmV2ZXJzZSBzZWFyY2ggcmVzdWx0cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVSZXZlcnNlU2VhcmNoKCk7XG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBwb2ludGVybW92ZSByZXN1bHQgc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpIHtcbiAgICB0aGlzLnN0b3JlJCQgPSB0aGlzLnBvaW50ZXJTZWFyY2hTdG9yZS5lbnRpdGllcyQuc3Vic2NyaWJlKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbiA9PiB7XG4gICAgICB0aGlzLmVudGl0aWVzVG9Qb2ludGVyT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIG9iamVjdCBiYXNlZCBvbiB0aGUgY2xvc2VzdCBmZWF0dXJlIGJ5IHR5cGUgKGJhc2Ugb24gdHlwZSBhbmQgZGlzdGFuY2UgcHJvcGVydGllcyApXG4gICAqIEBwYXJhbSByZXN1bHRzIFNlYXJjaFJlc3VsdFtdXG4gICAqIEByZXR1cm5zIE9MIHN0eWxlIGZ1bmN0aW9uXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVTdW1tYXJ5Q2xvc2VzdEZlYXR1cmUocmVzdWx0czogU2VhcmNoUmVzdWx0W10pOiB7fSB7XG4gICAgY29uc3QgY2xvc2VzdFJlc3VsdEJ5VHlwZSA9IHt9O1xuXG4gICAgcmVzdWx0cy5tYXAocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUgJiYgcmVzdWx0LmRhdGEucHJvcGVydGllcy5kaXN0YW5jZSA+PSAwKSB7XG4gICAgICAgIGlmIChjbG9zZXN0UmVzdWx0QnlUeXBlLmhhc093blByb3BlcnR5KHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSkpIHtcbiAgICAgICAgICBjb25zdCBwcmV2RGlzdGFuY2UgPSBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0uZGlzdGFuY2U7XG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UgPCBwcmV2RGlzdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcbiAgICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHsgZGlzdGFuY2U6IHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UsIHRpdGxlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcbiAgICAgICAgICBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0gPSB7IGRpc3RhbmNlOiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlLCB0aXRsZSB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2xvc2VzdFJlc3VsdEJ5VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHN0b3JlIGVudGl0aWVzIHRvIGEgcG9pbnRlciBwb3NpdGlvbiBvdmVybGF5IHdpdGggbGFiZWwgc3VtbWFyeSBvbi5cbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgZW50aXRpZXNUb1BvaW50ZXJPdmVybGF5KHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbjogU2VhcmNoUmVzdWx0W10pIHtcbiAgICBjb25zdCBjbG9zZXN0UmVzdWx0QnlUeXBlID0gdGhpcy5jb21wdXRlU3VtbWFyeUNsb3Nlc3RGZWF0dXJlKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbik7XG4gICAgY29uc3Qgc3VtbWFyaXplZENsb3Nlc3RUeXBlID0gT2JqZWN0LmtleXMoY2xvc2VzdFJlc3VsdEJ5VHlwZSk7XG4gICAgY29uc3QgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlID0gW107XG4gICAgY29uc3Qgc3VtbWFyeSA9IFtdO1xuICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbi5tYXAocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IHR5cGVJbmRleCA9IHN1bW1hcml6ZWRDbG9zZXN0VHlwZS5pbmRleE9mKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSk7XG4gICAgICBpZiAodHlwZUluZGV4ICE9PSAtMSkge1xuICAgICAgICBzdW1tYXJ5LnB1c2goY2xvc2VzdFJlc3VsdEJ5VHlwZVtyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVdLnRpdGxlKTtcbiAgICAgICAgc3VtbWFyaXplZENsb3Nlc3RUeXBlLnNwbGljZSh0eXBlSW5kZXgsIDEpO1xuICAgICAgICBwcm9jZXNzZWRTdW1tYXJpemVkQ2xvc2VzdFR5cGUucHVzaChyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3NlZFN1bW1hcml6ZWRDbG9zZXN0VHlwZS5pbmRleE9mKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSkgPT09IC0xKSB7XG4gICAgICAgICAgc3VtbWFyeS5wdXNoKHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHN1bW1hcnkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFkZFBvaW50ZXJPdmVybGF5KHN1bW1hcnkuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgcG9pbnRlcm1vdmVcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdwb2ludGVybW92ZScsXG4gICAgICAoZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55PikgPT4gdGhpcy5vbk1hcEV2ZW50KGV2ZW50KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gcG9pbnRlciBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xuICAgIHRoaXMuc3RvcmUkJC51bnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byByZXZlcnNlIHNlYXRjaCBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVJldmVyc2VTZWFyY2goKSB7XG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoJCQubWFwKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnJldmVyc2VTZWFyY2gkJCA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgcmV2ZXJzZSBzZWFyY2ggd2hlbiB0aGUgbW91c2UgaXMgbW90aW9ubGVzcyBkdXJpbmcgdGhlIGRlZmluZWQgZGVsYXkgKHBvaW50ZXJNb3ZlRGVsYXkpLlxuICAgKiBAcGFyYW0gZXZlbnQgT0wgbWFwIGJyb3dzZXIgcG9pbnRlciBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1hcEV2ZW50KGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5kcmFnZ2luZyB8fCAhdGhpcy5pZ29TZWFyY2hQb2ludGVyU3VtbWFyeUVuYWJsZWQgfHxcbiAgICAgICF0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlIHx8IHRoaXMubWVkaWFTZXJ2aWNlLmlzVG91Y2hTY3JlZW4oKSkge1xuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7IC8vIGNhbmNlbCB0aW1lb3V0IHdoZW4gdGhlIG1vdXNlIG1vdmVzXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xuICAgIH1cblxuICAgIHRoaXMubG9uTGF0ID0gdHJhbnNmb3JtKGV2ZW50LmNvb3JkaW5hdGUsIHRoaXMubWFwUHJvamVjdGlvbiwgJ0VQU0c6NDMyNicpIGFzIFtudW1iZXIsIG51bWJlcl07XG5cbiAgICB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vblNlYXJjaENvb3JkaW5hdGUoKTtcbiAgICB9LCB0aGlzLmlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RGVsYXkpO1xuICB9XG5cbiAgICAvKipcbiAgICogU29ydCB0aGUgcmVzdWx0cyBieSBkaXNwbGF5IG9yZGVyLlxuICAgKiBAcGFyYW0gcjEgRmlyc3QgcmVzdWx0XG4gICAqIEBwYXJhbSByMiBTZWNvbmQgcmVzdWx0XG4gICAqL1xuICAgICBwcml2YXRlIHNvcnRCeU9yZGVyKHIxOiBTZWFyY2hSZXN1bHQsIHIyOiBTZWFyY2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiByMS5zb3VyY2UuZGlzcGxheU9yZGVyIC0gcjIuc291cmNlLmRpc3BsYXlPcmRlcjtcbiAgICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaENvb3JkaW5hdGUoKSB7XG4gICAgdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuY2xlYXIoKTtcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnJldmVyc2VTZWFyY2godGhpcy5sb25MYXQsIHsgcGFyYW1zOiB7IGdlb21ldHJ5OiAnZmFsc2UnLCBpY29uOiAnZmFsc2UnIH0gfSwgdHJ1ZSk7XG5cbiAgICBmb3IgKGNvbnN0IGkgaW4gcmVzdWx0cykge1xuICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnJldmVyc2VTZWFyY2gkJC5wdXNoKFxuICAgICAgICAgIHJlc3VsdHNbaV0ucmVxdWVzdC5zdWJzY3JpYmUoKF9yZXN1bHRzOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblNlYXJjaCh7IHJlc2VhcmNoOiByZXN1bHRzW2ldLCByZXN1bHRzOiBfcmVzdWx0cyB9KTtcbiAgICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaChldmVudDogeyByZXNlYXJjaDogUmVzZWFyY2g7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcbiAgICBjb25zdCByZXN1bHRzID0gZXZlbnQucmVzdWx0cztcbiAgICBjb25zdCBuZXdSZXN1bHRzID0gdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuYWxsKClcbiAgICAgIC5maWx0ZXIoKHJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiByZXN1bHQuc291cmNlICE9PSBldmVudC5yZXNlYXJjaC5zb3VyY2UpXG4gICAgICAuY29uY2F0KHJlc3VsdHMpO1xuICAgIHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmxvYWQobmV3UmVzdWx0cy5zb3J0KHRoaXMuc29ydEJ5T3JkZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRQb2ludGVyT3ZlcmxheSh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcblxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sZ2VvbS5Qb2ludChcbiAgICAgIHRyYW5zZm9ybSh0aGlzLmxvbkxhdCwgJ0VQU0c6NDMyNicsIHRoaXMubWFwUHJvamVjdGlvbilcbiAgICApO1xuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLm1hcFByb2plY3Rpb25cbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XG5cbiAgICBjb25zdCBmOiBGZWF0dXJlID0ge1xuICAgICAgdHlwZTogRkVBVFVSRSxcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcbiAgICAgIHByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaWQ6IHRoaXMuc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQsXG4gICAgICAgIHBvaW50ZXJTdW1tYXJ5OiB0ZXh0XG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBpZDogdGhpcy5zZWFyY2hQb2ludGVyU3VtbWFyeUZlYXR1cmVJZFxuICAgICAgfSxcbiAgICAgIG9sOiBmZWF0dXJlXG4gICAgfTtcbiAgICB0aGlzLnN0b3JlLnNldExheWVyRmVhdHVyZXMoW2ZdLCBGZWF0dXJlTW90aW9uLk5vbmUpO1xuICB9XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBvaW50ZXIgc3RvcmUgZmVhdHVyZXNcbiAqL1xucHJpdmF0ZSBjbGVhckxheWVyKCkge1xuICBpZiAodGhpcy5zdG9yZSkge1xuICAgIHRoaXMuc3RvcmUuY2xlYXJMYXllcigpO1xuICB9XG59XG5cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciB0aGUgcG9pbnRlciBwb3NpdGlvbiBhbmQgaXQncyBsYWJlbCBzdW1tYXJ5LlxuICogQHBhcmFtIGZlYXR1cmUgT2xGZWF0dXJlXG4gKiBAcmV0dXJucyBPTCBzdHlsZSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlcihmZWF0dXJlOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT4sIHJlc29sdXRpb246IG51bWJlcik6IG9sc3R5bGUuU3R5bGUge1xuICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgIGltYWdlOiBuZXcgb2xzdHlsZS5JY29uKHtcbiAgICAgIHNyYzogJy4vYXNzZXRzL2lnbzIvZ2VvL2ljb25zL2Nyb3NzX2JsYWNrXzE4cHguc3ZnJyxcbiAgICAgIGltZ1NpemU6IFsxOCwgMThdLCAvLyBmb3IgaWVcbiAgICB9KSxcblxuICAgIHRleHQ6IG5ldyBvbHN0eWxlLlRleHQoe1xuICAgICAgdGV4dDogZmVhdHVyZS5nZXQoJ3BvaW50ZXJTdW1tYXJ5JyksXG4gICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgIHRleHRCYXNlbGluZTogJ2JvdHRvbScsXG4gICAgICBmb250OiAnMTJweCBDYWxpYnJpLHNhbnMtc2VyaWYnLFxuICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7IGNvbG9yOiAnIzAwMCcgfSksXG4gICAgICBiYWNrZ3JvdW5kRmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9KSxcbiAgICAgIGJhY2tncm91bmRTdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7IGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAwLCAwLjc1KScsIHdpZHRoOiAyIH0pLFxuICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2UoeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9KSxcbiAgICAgIG92ZXJmbG93OiB0cnVlLFxuICAgICAgb2Zmc2V0WDogMTAsXG4gICAgICBvZmZzZXRZOiAtMTAsXG4gICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxuICAgIH0pXG4gIH0pO1xufVxuIl19
|