@igo2/geo 1.15.4 → 16.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/igo2-geo.mjs +5 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +320 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +319 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +278 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +78 -0
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +223 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +89 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +230 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +91 -0
- package/esm2022/lib/catalog/catalog.module.mjs +48 -0
- package/esm2022/lib/catalog/index.mjs +5 -0
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
- package/esm2022/lib/catalog/shared/catalog.service.mjs +666 -0
- package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
- package/esm2022/lib/catalog/shared/index.mjs +5 -0
- package/esm2022/lib/datasource/datasource.module.mjs +22 -0
- package/esm2022/lib/datasource/index.mjs +3 -0
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +448 -0
- package/esm2022/lib/datasource/shared/datasource.service.mjs +259 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +212 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +34 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +61 -0
- package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +51 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +55 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +79 -0
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +169 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +218 -0
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +222 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
- package/esm2022/lib/datasource/shared/index.mjs +5 -0
- package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
- package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
- package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
- package/esm2022/lib/datasource/utils/index.mjs +2 -0
- package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +265 -0
- package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +294 -0
- package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +215 -0
- package/esm2022/lib/directions/directions-results/index.mjs +2 -0
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
- package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +128 -0
- package/esm2022/lib/directions/directions.component.mjs +349 -0
- package/esm2022/lib/directions/directions.module.mjs +102 -0
- package/esm2022/lib/directions/index.mjs +7 -0
- package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
- package/esm2022/lib/directions/shared/directions.enum.mjs +28 -0
- package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
- package/esm2022/lib/directions/shared/directions.service.mjs +202 -0
- package/esm2022/lib/directions/shared/directions.utils.mjs +559 -0
- package/esm2022/lib/directions/shared/index.mjs +6 -0
- package/esm2022/lib/directions/shared/store.mjs +21 -0
- package/esm2022/lib/download/download-button/download-button.component.mjs +65 -0
- package/esm2022/lib/download/download-button/index.mjs +2 -0
- package/esm2022/lib/download/download.module.mjs +42 -0
- package/esm2022/lib/download/index.mjs +3 -0
- package/esm2022/lib/download/shared/download.interface.mjs +2 -0
- package/esm2022/lib/download/shared/download.service.mjs +67 -0
- package/esm2022/lib/download/shared/index.mjs +3 -0
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +57 -0
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +677 -0
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
- package/esm2022/lib/draw/draw/draw.component.mjs +1369 -0
- package/esm2022/lib/draw/draw/draw.module.mjs +117 -0
- package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
- package/esm2022/lib/draw/index.mjs +3 -0
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
- package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
- package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
- package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
- package/esm2022/lib/draw/shared/index.mjs +5 -0
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +440 -0
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +57 -0
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +40 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +120 -0
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +23 -0
- package/esm2022/lib/feature/feature.module.mjs +21 -0
- package/esm2022/lib/feature/index.mjs +4 -0
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +27 -0
- package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
- package/esm2022/lib/feature/shared/feature.utils.mjs +333 -0
- package/esm2022/lib/feature/shared/index.mjs +8 -0
- package/esm2022/lib/feature/shared/store.mjs +143 -0
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +115 -0
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +96 -0
- package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +104 -0
- package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
- package/esm2022/lib/feature/shared/strategies/search.mjs +159 -0
- package/esm2022/lib/feature/shared/strategies/selection.mjs +384 -0
- package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
- package/esm2022/lib/filter/filter.module.mjs +300 -0
- package/esm2022/lib/filter/index.mjs +16 -0
- package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +153 -0
- package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +663 -0
- package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1344 -0
- package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +226 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +936 -0
- package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +63 -0
- package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +320 -0
- package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +36 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +47 -0
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
- package/esm2022/lib/filter/shared/index.mjs +12 -0
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +73 -0
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/ogc-filter.mjs +699 -0
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +48 -0
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
- package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +280 -0
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/time-filter.service.mjs +108 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1150 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +244 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +157 -0
- package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +82 -0
- package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +755 -0
- package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +124 -0
- package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +36 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +40 -0
- package/esm2022/lib/geo.module.mjs +106 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +563 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +218 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +56 -0
- package/esm2022/lib/geometry/geometry.module.mjs +20 -0
- package/esm2022/lib/geometry/index.mjs +4 -0
- package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
- package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
- package/esm2022/lib/geometry/shared/controls/modify.mjs +541 -0
- package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +26 -0
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +122 -0
- package/esm2022/lib/geometry/shared/index.mjs +5 -0
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +66 -0
- package/esm2022/lib/import-export/export-button/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +1350 -0
- package/esm2022/lib/import-export/import-export/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export.module.mjs +98 -0
- package/esm2022/lib/import-export/index.mjs +4 -0
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +174 -0
- package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
- package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/export.service.mjs +205 -0
- package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
- package/esm2022/lib/import-export/shared/export.utils.mjs +47 -0
- package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
- package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
- package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
- package/esm2022/lib/import-export/shared/index.mjs +11 -0
- package/esm2022/lib/layer/index.mjs +10 -0
- package/esm2022/lib/layer/layer-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +324 -0
- package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +429 -0
- package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +93 -0
- package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +201 -0
- package/esm2022/lib/layer/layer-list/index.mjs +4 -0
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +69 -0
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +1022 -0
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +19 -0
- package/esm2022/lib/layer/layer-list-tool/index.mjs +5 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +157 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
- package/esm2022/lib/layer/layer.module.mjs +175 -0
- package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
- package/esm2022/lib/layer/shared/index.mjs +5 -0
- package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
- package/esm2022/lib/layer/shared/layer.service.mjs +268 -0
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +70 -0
- package/esm2022/lib/layer/shared/layers/index.mjs +13 -0
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +17 -0
- package/esm2022/lib/layer/shared/layers/layer.mjs +184 -0
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +50 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +562 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +107 -0
- package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +60 -0
- package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
- package/esm2022/lib/layer/utils/index.mjs +6 -0
- package/esm2022/lib/layer/utils/layer.utils.mjs +11 -0
- package/esm2022/lib/layer/utils/outputLegend.mjs +28 -0
- package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
- package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +16 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +120 -0
- package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +155 -0
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +87 -0
- package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +80 -0
- package/esm2022/lib/map/home-extent-button/index.mjs +2 -0
- package/esm2022/lib/map/index.mjs +14 -0
- package/esm2022/lib/map/info-section/index.mjs +2 -0
- package/esm2022/lib/map/info-section/info-section.component.mjs +29 -0
- package/esm2022/lib/map/map-browser/index.mjs +2 -0
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +74 -0
- package/esm2022/lib/map/map-center/index.mjs +2 -0
- package/esm2022/lib/map/map-center/map-center.component.mjs +61 -0
- package/esm2022/lib/map/map.module.mjs +120 -0
- package/esm2022/lib/map/menu-button/index.mjs +2 -0
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +66 -0
- package/esm2022/lib/map/offline-button/index.mjs +2 -0
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +55 -0
- package/esm2022/lib/map/rotation-button/index.mjs +2 -0
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +73 -0
- package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
- package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
- package/esm2022/lib/map/shared/controllers/view.mjs +360 -0
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +493 -0
- package/esm2022/lib/map/shared/index.mjs +15 -0
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +248 -0
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +121 -0
- package/esm2022/lib/map/shared/map.abstract.mjs +23 -0
- package/esm2022/lib/map/shared/map.enums.mjs +6 -0
- package/esm2022/lib/map/shared/map.interface.mjs +2 -0
- package/esm2022/lib/map/shared/map.mjs +434 -0
- package/esm2022/lib/map/shared/map.service.mjs +30 -0
- package/esm2022/lib/map/shared/map.utils.mjs +456 -0
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +107 -0
- package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
- package/esm2022/lib/map/shared/projection.service.mjs +67 -0
- package/esm2022/lib/map/shared/projection.utils.mjs +64 -0
- package/esm2022/lib/map/swipe-control/index.mjs +2 -0
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +219 -0
- package/esm2022/lib/map/utils/layer-watcher.mjs +78 -0
- package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +106 -0
- package/esm2022/lib/map/zoom-button/index.mjs +2 -0
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +49 -0
- package/esm2022/lib/measure/index.mjs +4 -0
- package/esm2022/lib/measure/measure.module.mjs +18 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +39 -0
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +184 -0
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +162 -0
- package/esm2022/lib/measure/measurer/measurer.component.mjs +1121 -0
- package/esm2022/lib/measure/measurer/measurer.module.mjs +95 -0
- package/esm2022/lib/measure/shared/index.mjs +4 -0
- package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
- package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
- package/esm2022/lib/metadata/index.mjs +3 -0
- package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +140 -0
- package/esm2022/lib/metadata/metadata.module.mjs +47 -0
- package/esm2022/lib/metadata/shared/index.mjs +3 -0
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
- package/esm2022/lib/metadata/shared/metadata.service.mjs +19 -0
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +128 -0
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +175 -0
- package/esm2022/lib/offline/geoDB/index.mjs +5 -0
- package/esm2022/lib/offline/index.mjs +4 -0
- package/esm2022/lib/offline/layerDB/index.mjs +3 -0
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +84 -0
- package/esm2022/lib/offline/shared/geo-network.service.mjs +87 -0
- package/esm2022/lib/offline/shared/index.mjs +2 -0
- package/esm2022/lib/overlay/index.mjs +2 -0
- package/esm2022/lib/overlay/overlay.module.mjs +23 -0
- package/esm2022/lib/overlay/shared/index.mjs +6 -0
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +38 -0
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
- package/esm2022/lib/overlay/shared/overlay.mjs +138 -0
- package/esm2022/lib/overlay/shared/overlay.service.mjs +26 -0
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
- package/esm2022/lib/print/index.mjs +4 -0
- package/esm2022/lib/print/print/print.component.mjs +122 -0
- package/esm2022/lib/print/print-form/index.mjs +2 -0
- package/esm2022/lib/print/print-form/print-form.component.mjs +580 -0
- package/esm2022/lib/print/print.module.mjs +65 -0
- package/esm2022/lib/print/shared/geopdf.mjs +68 -0
- package/esm2022/lib/print/shared/index.mjs +5 -0
- package/esm2022/lib/print/shared/print.interface.mjs +2 -0
- package/esm2022/lib/print/shared/print.service.mjs +1093 -0
- package/esm2022/lib/print/shared/print.type.mjs +30 -0
- package/esm2022/lib/query/index.mjs +2 -0
- package/esm2022/lib/query/query.module.mjs +29 -0
- package/esm2022/lib/query/shared/index.mjs +7 -0
- package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
- package/esm2022/lib/query/shared/query.directive.mjs +285 -0
- package/esm2022/lib/query/shared/query.enums.mjs +30 -0
- package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
- package/esm2022/lib/query/shared/query.service.mjs +753 -0
- package/esm2022/lib/query/shared/query.utils.mjs +41 -0
- package/esm2022/lib/search/index.mjs +12 -0
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +559 -0
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +73 -0
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +40 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +132 -0
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +456 -0
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +166 -0
- package/esm2022/lib/search/search-results/search-results.component.mjs +480 -0
- package/esm2022/lib/search/search-results/search-results.module.mjs +104 -0
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +133 -0
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +56 -0
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +448 -0
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +60 -0
- package/esm2022/lib/search/search.module.mjs +67 -0
- package/esm2022/lib/search/shared/index.mjs +9 -0
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +337 -0
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
- package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
- package/esm2022/lib/search/shared/search.enums.mjs +4 -0
- package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/search.service.mjs +130 -0
- package/esm2022/lib/search/shared/search.utils.mjs +92 -0
- package/esm2022/lib/search/shared/sources/cadastre.mjs +139 -0
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +23 -0
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/coordinates.mjs +166 -0
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +40 -0
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/icherche.mjs +796 -0
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +66 -0
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/ilayer.mjs +335 -0
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +46 -0
- package/esm2022/lib/search/shared/sources/index.mjs +23 -0
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +23 -0
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/source.mjs +220 -0
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +455 -0
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/workspace.mjs +191 -0
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +22 -0
- package/esm2022/lib/style/index.mjs +5 -0
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +359 -0
- package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
- package/esm2022/lib/style/shared/feature/feature-style.mjs +161 -0
- package/esm2022/lib/style/shared/feature/index.mjs +2 -0
- package/esm2022/lib/style/shared/font.enum.mjs +17 -0
- package/esm2022/lib/style/shared/index.mjs +5 -0
- package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +45 -0
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
- package/esm2022/lib/style/shared/vector/index.mjs +4 -0
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/index.mjs +5 -0
- package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
- package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
- package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
- package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
- package/esm2022/lib/style/style-modal/index.mjs +5 -0
- package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +182 -0
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +48 -0
- package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
- package/esm2022/lib/style/style-service/draw-style.service.mjs +256 -0
- package/esm2022/lib/style/style-service/index.mjs +3 -0
- package/esm2022/lib/style/style-service/style.service.mjs +393 -0
- package/esm2022/lib/style/style.module.mjs +92 -0
- package/esm2022/lib/toast/index.mjs +2 -0
- package/esm2022/lib/toast/toast.component.mjs +119 -0
- package/esm2022/lib/toast/toast.module.mjs +45 -0
- package/esm2022/lib/utils/googleLinks.mjs +13 -0
- package/esm2022/lib/utils/id-generator.mjs +110 -0
- package/esm2022/lib/utils/index.mjs +5 -0
- package/esm2022/lib/utils/osmLinks.mjs +9 -0
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
- package/esm2022/lib/wkt/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/wkt.service.mjs +236 -0
- package/esm2022/lib/wkt/wkt.module.mjs +22 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +52 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
- package/esm2022/lib/workspace/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +304 -0
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +711 -0
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +109 -0
- package/esm2022/lib/workspace/shared/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +102 -0
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +225 -0
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +185 -0
- package/esm2022/lib/workspace/widgets/index.mjs +4 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +52 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +25 -0
- package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +167 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +22 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +135 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +22 -0
- package/esm2022/lib/workspace/workspace.module.mjs +58 -0
- package/esm2022/public_api.mjs +57 -0
- package/fesm2022/igo2-geo.mjs +48131 -0
- package/fesm2022/igo2-geo.mjs.map +1 -0
- package/geo-theme.scss +21 -0
- package/index.d.ts +5 -5
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +117 -117
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +77 -77
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +99 -99
- 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 +64 -64
- 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 +41 -50
- package/lib/catalog/shared/catalog.enum.d.ts +14 -14
- package/lib/catalog/shared/catalog.interface.d.ts +76 -76
- package/lib/catalog/shared/catalog.service.d.ts +36 -36
- package/lib/catalog/shared/catalogs.d.ts +35 -0
- 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 +113 -113
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +23 -23
- 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 +45 -31
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +37 -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/index.d.ts +1 -1
- package/lib/datasource/utils/tilegrid.d.ts +2 -2
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +35 -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/directions-results.theming.scss +10 -0
- 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 +24 -23
- package/lib/directions/directions.component.d.ts +56 -56
- package/lib/directions/directions.module.d.ts +26 -26
- package/lib/directions/directions.theming.scss +6 -0
- 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 +28 -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 +10 -10
- 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 +240 -240
- package/lib/draw/draw/draw.module.d.ts +33 -34
- package/lib/draw/draw.theming.scss +32 -0
- 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.enum.d.ts +17 -17
- 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 +4 -4
- 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-details/feature-details.theming.scss +16 -0
- 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/feature.theming.scss +4 -0
- package/lib/feature/index.d.ts +3 -3
- package/lib/feature/shared/feature-store.utils.d.ts +10 -0
- package/lib/feature/shared/feature.enums.d.ts +7 -7
- package/lib/feature/shared/feature.interfaces.d.ts +82 -79
- package/lib/feature/shared/feature.utils.d.ts +97 -106
- package/lib/feature/shared/index.d.ts +7 -6
- package/lib/feature/shared/store.d.ts +78 -78
- package/lib/feature/shared/strategies/geo-properties.d.ts +61 -0
- 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 +7 -6
- 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/search.d.ts +55 -55
- 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/filter.theming.scss +16 -0
- 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-selection/ogc-filter-selection.theming.scss +18 -0
- 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-slider.theming.scss +15 -0
- 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 +15 -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 +57 -57
- 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-form/time-filter-form.theming.scss +5 -0
- 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 +29 -29
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +202 -202
- 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 +109 -109
- package/lib/import-export/import-export/index.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +25 -25
- package/lib/import-export/index.d.ts +3 -3
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +39 -39
- 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 +10 -10
- package/lib/import-export/shared/import.service.d.ts +31 -31
- package/lib/import-export/shared/import.utils.d.ts +20 -20
- package/lib/import-export/shared/index.d.ts +10 -10
- package/lib/layer/index.d.ts +9 -9
- 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/layer-legend.theming.scss +10 -0
- 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-list-tool/layer-list-tool.theming.scss +22 -0
- package/lib/layer/layer.module.d.ts +34 -35
- package/lib/layer/layer.theming.scss +24 -0
- package/lib/layer/shared/clusterParam.d.ts +13 -13
- package/lib/layer/shared/index.d.ts +4 -4
- package/lib/layer/shared/layer.enums.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +33 -33
- 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 +21 -21
- 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 +66 -66
- package/lib/layer/shared/layers/layer.interface.d.ts +90 -109
- package/lib/layer/shared/layers/legend.interface.d.ts +22 -0
- 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 +94 -94
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +42 -42
- package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +16 -16
- 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 +16 -16
- 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 +22 -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-browser/map-browser.theming.scss +46 -0
- 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/map.theming.scss +9 -0
- 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/menu-button/menu-button.theming.scss +24 -0
- package/lib/map/offline-button/index.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +15 -15
- 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 +95 -127
- package/lib/map/shared/controllers/geolocation.interface.d.ts +30 -0
- package/lib/map/shared/controllers/index.d.ts +4 -3
- package/lib/map/shared/controllers/view.d.ts +200 -200
- package/lib/map/shared/hover-feature.directive.d.ts +124 -124
- package/lib/map/shared/index.d.ts +14 -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.abstract.d.ts +59 -0
- package/lib/map/shared/map.d.ts +140 -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 +18 -18
- 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 +27 -27
- package/lib/map/zoom-button/index.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
- package/lib/map/zoom-button/zoom-button.theming.scss +32 -0
- package/lib/measure/index.d.ts +3 -3
- package/lib/measure/measure.module.d.ts +7 -7
- package/lib/measure/measure.theming.scss +5 -0
- 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 +26 -25
- package/lib/measure/measurer/measurer.theming.scss +26 -0
- 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 +3 -3
- package/lib/offline/layerDB/index.d.ts +2 -2
- package/lib/offline/layerDB/layerDB.interface.d.ts +7 -7
- package/lib/offline/layerDB/layerDB.service.d.ts +36 -36
- 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 +5 -5
- 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 +6 -6
- 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 +99 -99
- 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 +171 -174
- 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 +231 -230
- package/lib/search/search-bar/search-bar.module.d.ts +24 -23
- package/lib/search/search-bar/search-bar.theming.scss +36 -0
- 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 +84 -84
- package/lib/search/search-results/search-results-item.component.d.ts +52 -52
- package/lib/search/search-results/search-results.component.d.ts +165 -165
- package/lib/search/search-results/search-results.module.d.ts +29 -29
- 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/search.theming.scss +5 -0
- package/lib/search/shared/index.d.ts +8 -8
- package/lib/search/shared/search-pointer-summary.directive.d.ts +125 -124
- package/lib/search/shared/search-source-service.providers.d.ts +15 -15
- package/lib/search/shared/search-source.service.d.ts +39 -39
- package/lib/search/shared/search.enums.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +54 -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/cadastre.d.ts +34 -33
- package/lib/search/shared/sources/cadastre.providers.d.ts +18 -18
- 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 +98 -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 +56 -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 +22 -22
- package/lib/search/shared/sources/nominatim.d.ts +46 -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 +86 -114
- package/lib/search/shared/sources/source.interfaces.d.ts +54 -47
- package/lib/search/shared/sources/storedqueries.d.ts +75 -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/search/shared/sources/workspace.d.ts +33 -33
- package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -9
- package/lib/search/shared/sources/workspace.providers.d.ts +17 -17
- package/lib/style/index.d.ts +4 -4
- package/lib/style/shared/datasource/esri-style-generator.d.ts +21 -21
- package/lib/style/shared/datasource/index.d.ts +1 -1
- package/lib/style/shared/feature/feature-style.d.ts +18 -18
- package/lib/style/shared/feature/index.d.ts +1 -1
- package/lib/style/shared/font.enum.d.ts +15 -15
- package/lib/style/shared/index.d.ts +4 -4
- package/lib/style/shared/overlay/index.d.ts +2 -2
- package/lib/style/shared/overlay/overlay-marker-style.utils.d.ts +11 -11
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -19
- package/lib/style/shared/vector/commonVectorStyle.d.ts +14 -14
- package/lib/style/shared/vector/conversion.utils.d.ts +22 -22
- package/lib/style/shared/vector/index.d.ts +3 -3
- package/lib/style/shared/vector/vector-style.interface.d.ts +69 -69
- package/lib/style/style-list/index.d.ts +4 -4
- package/lib/style/style-list/style-list.interface.d.ts +6 -6
- package/lib/style/style-list/style-list.module.d.ts +8 -8
- package/lib/style/style-list/style-list.provider.d.ts +15 -15
- package/lib/style/style-list/style-list.service.d.ts +18 -18
- package/lib/style/style-modal/drawing/index.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +33 -31
- package/lib/style/style-modal/index.d.ts +4 -4
- package/lib/style/style-modal/layer/index.d.ts +1 -1
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +32 -30
- package/lib/style/style-modal/layer-button/index.d.ts +1 -1
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -14
- package/lib/style/style-modal/shared/index.d.ts +1 -1
- package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -17
- package/lib/style/style-service/draw-style.service.d.ts +35 -35
- package/lib/style/style-service/index.d.ts +2 -2
- package/lib/style/style-service/style.service.d.ts +57 -57
- package/lib/style/style.module.d.ts +23 -22
- 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/googleLinks.d.ts +5 -5
- package/lib/utils/id-generator.d.ts +54 -54
- package/lib/utils/index.d.ts +4 -3
- package/lib/utils/osmLinks.d.ts +4 -4
- package/lib/utils/propertyTypeDetector/index.d.ts +2 -0
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.d.ts +5 -0
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +15 -0
- 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/confirmation-popup.theming.scss +14 -0
- 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 +84 -82
- package/lib/workspace/shared/edition-workspace.service.d.ts +50 -51
- package/lib/workspace/shared/feature-workspace.d.ts +18 -18
- package/lib/workspace/shared/feature-workspace.service.d.ts +22 -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 +22 -19
- package/lib/workspace/shared/wms-workspace.service.d.ts +24 -22
- package/lib/workspace/shared/workspace.utils.d.ts +23 -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/lib/workspace/workspace.theming.scss +6 -0
- package/locale/en.geo.json +807 -0
- package/locale/fr.geo.json +808 -0
- package/package.json +38 -38
- package/public_api.d.ts +53 -53
- package/style/style.css +350 -0
- package/esm2020/igo2-geo.mjs +0 -5
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -303
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -306
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -250
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -80
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -209
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -79
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +0 -212
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +0 -95
- package/esm2020/lib/catalog/catalog.module.mjs +0 -53
- package/esm2020/lib/catalog/index.mjs +0 -5
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +0 -95
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +0 -16
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +0 -2
- package/esm2020/lib/catalog/shared/catalog.service.mjs +0 -604
- package/esm2020/lib/catalog/shared/index.mjs +0 -5
- package/esm2020/lib/datasource/datasource.module.mjs +0 -22
- package/esm2020/lib/datasource/index.mjs +0 -3
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +0 -431
- package/esm2020/lib/datasource/shared/datasource.service.mjs +0 -232
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -145
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +0 -109
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -15
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +0 -3
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +0 -29
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +0 -43
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -57
- package/esm2020/lib/datasource/shared/datasources/index.mjs +0 -36
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -28
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +0 -12
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -49
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -15
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -54
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -72
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +0 -152
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +0 -206
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -207
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -16
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -9
- package/esm2020/lib/datasource/shared/index.mjs +0 -5
- package/esm2020/lib/datasource/shared/options/index.mjs +0 -5
- package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +0 -15
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +0 -81
- package/esm2020/lib/datasource/shared/options/options.service.mjs +0 -3
- package/esm2020/lib/datasource/utils/index.mjs +0 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +0 -20
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -218
- package/esm2020/lib/directions/directions-buttons/index.mjs +0 -2
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -290
- package/esm2020/lib/directions/directions-inputs/index.mjs +0 -2
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +0 -196
- package/esm2020/lib/directions/directions-results/index.mjs +0 -2
- package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +0 -2
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +0 -3
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +0 -16
- package/esm2020/lib/directions/directions-sources/index.mjs +0 -5
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +0 -99
- package/esm2020/lib/directions/directions.component.mjs +0 -311
- package/esm2020/lib/directions/directions.module.mjs +0 -102
- package/esm2020/lib/directions/index.mjs +0 -7
- package/esm2020/lib/directions/shared/directions-source.service.mjs +0 -17
- package/esm2020/lib/directions/shared/directions.enum.mjs +0 -28
- package/esm2020/lib/directions/shared/directions.interface.mjs +0 -2
- package/esm2020/lib/directions/shared/directions.service.mjs +0 -29
- package/esm2020/lib/directions/shared/directions.utils.mjs +0 -509
- package/esm2020/lib/directions/shared/index.mjs +0 -6
- package/esm2020/lib/directions/shared/store.mjs +0 -24
- package/esm2020/lib/download/download-button/download-button.component.mjs +0 -61
- package/esm2020/lib/download/download-button/index.mjs +0 -2
- package/esm2020/lib/download/download.module.mjs +0 -42
- package/esm2020/lib/download/index.mjs +0 -3
- package/esm2020/lib/download/shared/download.interface.mjs +0 -2
- package/esm2020/lib/download/shared/download.service.mjs +0 -62
- package/esm2020/lib/download/shared/index.mjs +0 -3
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +0 -55
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +0 -591
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +0 -48
- package/esm2020/lib/draw/draw/draw.component.mjs +0 -1300
- package/esm2020/lib/draw/draw/draw.module.mjs +0 -113
- package/esm2020/lib/draw/drawingTool.module.mjs +0 -20
- package/esm2020/lib/draw/index.mjs +0 -3
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +0 -27
- package/esm2020/lib/draw/shared/draw.enum.mjs +0 -21
- package/esm2020/lib/draw/shared/draw.interface.mjs +0 -2
- package/esm2020/lib/draw/shared/draw.utils.mjs +0 -122
- package/esm2020/lib/draw/shared/index.mjs +0 -5
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +0 -404
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +0 -54
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +0 -48
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +0 -112
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +0 -34
- package/esm2020/lib/feature/feature.module.mjs +0 -28
- package/esm2020/lib/feature/index.mjs +0 -4
- package/esm2020/lib/feature/shared/feature.enums.mjs +0 -9
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +0 -2
- package/esm2020/lib/feature/shared/feature.utils.mjs +0 -349
- package/esm2020/lib/feature/shared/index.mjs +0 -7
- package/esm2020/lib/feature/shared/store.mjs +0 -133
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +0 -113
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +0 -94
- package/esm2020/lib/feature/shared/strategies/index.mjs +0 -7
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +0 -104
- package/esm2020/lib/feature/shared/strategies/loading.mjs +0 -133
- package/esm2020/lib/feature/shared/strategies/search.mjs +0 -150
- package/esm2020/lib/feature/shared/strategies/selection.mjs +0 -370
- package/esm2020/lib/feature/shared/strategies.utils.mjs +0 -37
- package/esm2020/lib/filter/filter.module.mjs +0 -289
- package/esm2020/lib/filter/index.mjs +0 -16
- package/esm2020/lib/filter/ogc-filter-button/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -140
- package/esm2020/lib/filter/ogc-filter-form/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -645
- package/esm2020/lib/filter/ogc-filter-selection/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -1302
- package/esm2020/lib/filter/ogc-filter-time/index.mjs +0 -3
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -177
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -898
- package/esm2020/lib/filter/ogc-filterable-form/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -59
- package/esm2020/lib/filter/ogc-filterable-item/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -307
- package/esm2020/lib/filter/ogc-filterable-list/index.mjs +0 -3
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -31
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -44
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +0 -55
- package/esm2020/lib/filter/shared/index.mjs +0 -12
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +0 -30
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/ogc-filter.mjs +0 -692
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +0 -46
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +0 -23
- package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +0 -269
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +0 -13
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/time-filter.service.mjs +0 -107
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -1089
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -207
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -144
- package/esm2020/lib/filter/time-filter-button/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -78
- package/esm2020/lib/filter/time-filter-form/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -734
- package/esm2020/lib/filter/time-filter-item/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -119
- package/esm2020/lib/filter/time-filter-list/index.mjs +0 -3
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -31
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -39
- package/esm2020/lib/geo.module.mjs +0 -106
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -522
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -189
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -64
- package/esm2020/lib/geometry/geometry.module.mjs +0 -27
- package/esm2020/lib/geometry/index.mjs +0 -4
- package/esm2020/lib/geometry/shared/controls/draw.mjs +0 -314
- package/esm2020/lib/geometry/shared/controls/index.mjs +0 -4
- package/esm2020/lib/geometry/shared/controls/modify.mjs +0 -521
- package/esm2020/lib/geometry/shared/controls/slice.mjs +0 -177
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +0 -26
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +0 -2
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +0 -122
- package/esm2020/lib/geometry/shared/index.mjs +0 -5
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +0 -64
- package/esm2020/lib/import-export/export-button/index.mjs +0 -2
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +0 -1228
- package/esm2020/lib/import-export/import-export/index.mjs +0 -2
- package/esm2020/lib/import-export/import-export.module.mjs +0 -92
- package/esm2020/lib/import-export/index.mjs +0 -4
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +0 -152
- package/esm2020/lib/import-export/shared/export.errors.mjs +0 -15
- package/esm2020/lib/import-export/shared/export.interface.mjs +0 -2
- package/esm2020/lib/import-export/shared/export.service.mjs +0 -195
- package/esm2020/lib/import-export/shared/export.type.mjs +0 -4
- package/esm2020/lib/import-export/shared/export.utils.mjs +0 -46
- package/esm2020/lib/import-export/shared/import.errors.mjs +0 -39
- package/esm2020/lib/import-export/shared/import.interface.mjs +0 -2
- package/esm2020/lib/import-export/shared/import.service.mjs +0 -215
- package/esm2020/lib/import-export/shared/import.utils.mjs +0 -202
- package/esm2020/lib/import-export/shared/index.mjs +0 -11
- package/esm2020/lib/layer/index.mjs +0 -10
- package/esm2020/lib/layer/layer-item/index.mjs +0 -2
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +0 -300
- package/esm2020/lib/layer/layer-legend/index.mjs +0 -2
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +0 -388
- package/esm2020/lib/layer/layer-legend-item/index.mjs +0 -2
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -84
- package/esm2020/lib/layer/layer-legend-list/index.mjs +0 -3
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -48
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -195
- package/esm2020/lib/layer/layer-list/index.mjs +0 -4
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -59
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +0 -1009
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +0 -19
- package/esm2020/lib/layer/layer-list-tool/index.mjs +0 -5
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -165
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -2
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -22
- package/esm2020/lib/layer/layer.module.mjs +0 -180
- package/esm2020/lib/layer/shared/clusterParam.mjs +0 -2
- package/esm2020/lib/layer/shared/index.mjs +0 -5
- package/esm2020/lib/layer/shared/layer.enums.mjs +0 -2
- package/esm2020/lib/layer/shared/layer.service.mjs +0 -237
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +0 -67
- package/esm2020/lib/layer/shared/layers/index.mjs +0 -13
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +0 -17
- package/esm2020/lib/layer/shared/layers/layer.mjs +0 -166
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +0 -47
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +0 -527
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +0 -104
- package/esm2020/lib/layer/track-feature-button/index.mjs +0 -2
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -59
- package/esm2020/lib/layer/utils/image-watcher.mjs +0 -59
- package/esm2020/lib/layer/utils/index.mjs +0 -6
- package/esm2020/lib/layer/utils/layer.utils.mjs +0 -10
- package/esm2020/lib/layer/utils/outputLegend.mjs +0 -28
- package/esm2020/lib/layer/utils/tile-watcher.mjs +0 -50
- package/esm2020/lib/layer/utils/vector-watcher.mjs +0 -48
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -97
- package/esm2020/lib/map/baselayers-switcher/index.mjs +0 -3
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -142
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +0 -79
- package/esm2020/lib/map/geolocate-button/index.mjs +0 -2
- package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +0 -63
- package/esm2020/lib/map/home-extent-button/index.mjs +0 -2
- package/esm2020/lib/map/index.mjs +0 -14
- package/esm2020/lib/map/info-section/index.mjs +0 -2
- package/esm2020/lib/map/info-section/info-section.component.mjs +0 -30
- package/esm2020/lib/map/map-browser/index.mjs +0 -2
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +0 -66
- package/esm2020/lib/map/map-center/index.mjs +0 -2
- package/esm2020/lib/map/map-center/map-center.component.mjs +0 -50
- package/esm2020/lib/map/map.module.mjs +0 -127
- package/esm2020/lib/map/menu-button/index.mjs +0 -2
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +0 -62
- package/esm2020/lib/map/offline-button/index.mjs +0 -2
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +0 -53
- package/esm2020/lib/map/rotation-button/index.mjs +0 -2
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +0 -70
- package/esm2020/lib/map/shared/controllers/controller.mjs +0 -42
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +0 -423
- package/esm2020/lib/map/shared/controllers/index.mjs +0 -4
- package/esm2020/lib/map/shared/controllers/view.mjs +0 -351
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +0 -454
- package/esm2020/lib/map/shared/index.mjs +0 -14
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +0 -240
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +0 -107
- package/esm2020/lib/map/shared/map.enums.mjs +0 -6
- package/esm2020/lib/map/shared/map.interface.mjs +0 -2
- package/esm2020/lib/map/shared/map.mjs +0 -409
- package/esm2020/lib/map/shared/map.service.mjs +0 -29
- package/esm2020/lib/map/shared/map.utils.mjs +0 -463
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +0 -98
- package/esm2020/lib/map/shared/projection.interfaces.mjs +0 -2
- package/esm2020/lib/map/shared/projection.service.mjs +0 -65
- package/esm2020/lib/map/shared/projection.utils.mjs +0 -64
- package/esm2020/lib/map/swipe-control/index.mjs +0 -2
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +0 -193
- package/esm2020/lib/map/utils/layer-watcher.mjs +0 -79
- package/esm2020/lib/map/wake-lock-button/index.mjs +0 -2
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
- package/esm2020/lib/map/zoom-button/index.mjs +0 -2
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +0 -40
- package/esm2020/lib/measure/index.mjs +0 -4
- package/esm2020/lib/measure/measure.module.mjs +0 -20
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +0 -37
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +0 -180
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +0 -140
- package/esm2020/lib/measure/measurer/measurer.component.mjs +0 -1042
- package/esm2020/lib/measure/measurer/measurer.module.mjs +0 -94
- package/esm2020/lib/measure/shared/index.mjs +0 -4
- package/esm2020/lib/measure/shared/measure.enum.mjs +0 -37
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +0 -2
- package/esm2020/lib/measure/shared/measure.utils.mjs +0 -489
- package/esm2020/lib/metadata/index.mjs +0 -3
- package/esm2020/lib/metadata/metadata-button/index.mjs +0 -2
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +0 -134
- package/esm2020/lib/metadata/metadata.module.mjs +0 -55
- package/esm2020/lib/metadata/shared/index.mjs +0 -3
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +0 -2
- package/esm2020/lib/metadata/shared/metadata.service.mjs +0 -19
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -105
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +0 -6
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +0 -2
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +0 -167
- package/esm2020/lib/offline/geoDB/index.mjs +0 -5
- package/esm2020/lib/offline/index.mjs +0 -4
- package/esm2020/lib/offline/layerDB/index.mjs +0 -3
- package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +0 -2
- package/esm2020/lib/offline/layerDB/layerDB.service.mjs +0 -76
- package/esm2020/lib/offline/shared/geo-network.service.mjs +0 -66
- package/esm2020/lib/offline/shared/index.mjs +0 -2
- package/esm2020/lib/overlay/index.mjs +0 -2
- package/esm2020/lib/overlay/overlay.module.mjs +0 -23
- package/esm2020/lib/overlay/shared/index.mjs +0 -6
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +0 -33
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +0 -8
- package/esm2020/lib/overlay/shared/overlay.mjs +0 -130
- package/esm2020/lib/overlay/shared/overlay.service.mjs +0 -27
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +0 -17
- package/esm2020/lib/print/index.mjs +0 -4
- package/esm2020/lib/print/print/print.component.mjs +0 -112
- package/esm2020/lib/print/print-form/index.mjs +0 -2
- package/esm2020/lib/print/print-form/print-form.component.mjs +0 -514
- package/esm2020/lib/print/print.module.mjs +0 -65
- package/esm2020/lib/print/shared/geopdf.mjs +0 -58
- package/esm2020/lib/print/shared/index.mjs +0 -5
- package/esm2020/lib/print/shared/print.interface.mjs +0 -2
- package/esm2020/lib/print/shared/print.service.mjs +0 -984
- package/esm2020/lib/print/shared/print.type.mjs +0 -30
- package/esm2020/lib/query/index.mjs +0 -2
- package/esm2020/lib/query/query.module.mjs +0 -29
- package/esm2020/lib/query/shared/index.mjs +0 -7
- package/esm2020/lib/query/shared/query-search-source.mjs +0 -35
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +0 -22
- package/esm2020/lib/query/shared/query.directive.mjs +0 -261
- package/esm2020/lib/query/shared/query.enums.mjs +0 -30
- package/esm2020/lib/query/shared/query.interfaces.mjs +0 -2
- package/esm2020/lib/query/shared/query.service.mjs +0 -731
- package/esm2020/lib/query/shared/query.utils.mjs +0 -37
- package/esm2020/lib/search/index.mjs +0 -12
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +0 -512
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +0 -75
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +0 -35
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +0 -118
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +0 -429
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +0 -147
- package/esm2020/lib/search/search-results/search-results.component.mjs +0 -454
- package/esm2020/lib/search/search-results/search-results.module.mjs +0 -108
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +0 -123
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +0 -56
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +0 -440
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +0 -60
- package/esm2020/lib/search/search.module.mjs +0 -67
- package/esm2020/lib/search/shared/index.mjs +0 -9
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +0 -295
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +0 -20
- package/esm2020/lib/search/shared/search-source.service.mjs +0 -55
- package/esm2020/lib/search/shared/search.enums.mjs +0 -4
- package/esm2020/lib/search/shared/search.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/search.service.mjs +0 -121
- package/esm2020/lib/search/shared/search.utils.mjs +0 -91
- package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
- package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/coordinates.mjs +0 -153
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +0 -40
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/icherche.mjs +0 -767
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +0 -66
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/ilayer.mjs +0 -320
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +0 -40
- package/esm2020/lib/search/shared/sources/index.mjs +0 -23
- package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/nominatim.mjs +0 -253
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +0 -23
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/source.mjs +0 -209
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +0 -425
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +0 -41
- package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/workspace.mjs +0 -186
- package/esm2020/lib/search/shared/sources/workspace.providers.mjs +0 -26
- package/esm2020/lib/style/index.mjs +0 -5
- package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +0 -357
- package/esm2020/lib/style/shared/datasource/index.mjs +0 -2
- package/esm2020/lib/style/shared/feature/feature-style.mjs +0 -141
- package/esm2020/lib/style/shared/feature/index.mjs +0 -2
- package/esm2020/lib/style/shared/font.enum.mjs +0 -17
- package/esm2020/lib/style/shared/index.mjs +0 -5
- package/esm2020/lib/style/shared/overlay/index.mjs +0 -3
- package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -43
- package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
- package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +0 -75
- package/esm2020/lib/style/shared/vector/conversion.utils.mjs +0 -27
- package/esm2020/lib/style/shared/vector/index.mjs +0 -4
- package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +0 -2
- package/esm2020/lib/style/style-list/index.mjs +0 -5
- package/esm2020/lib/style/style-list/style-list.interface.mjs +0 -2
- package/esm2020/lib/style/style-list/style-list.module.mjs +0 -23
- package/esm2020/lib/style/style-list/style-list.provider.mjs +0 -21
- package/esm2020/lib/style/style-list/style-list.service.mjs +0 -51
- package/esm2020/lib/style/style-modal/drawing/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -288
- package/esm2020/lib/style/style-modal/index.mjs +0 -5
- package/esm2020/lib/style/style-modal/layer/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -187
- package/esm2020/lib/style/style-modal/layer-button/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
- package/esm2020/lib/style/style-modal/shared/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
- package/esm2020/lib/style/style-service/draw-style.service.mjs +0 -187
- package/esm2020/lib/style/style-service/index.mjs +0 -3
- package/esm2020/lib/style/style-service/style.service.mjs +0 -356
- package/esm2020/lib/style/style.module.mjs +0 -74
- package/esm2020/lib/toast/index.mjs +0 -2
- package/esm2020/lib/toast/toast.component.mjs +0 -113
- package/esm2020/lib/toast/toast.module.mjs +0 -45
- package/esm2020/lib/utils/googleLinks.mjs +0 -13
- package/esm2020/lib/utils/id-generator.mjs +0 -110
- package/esm2020/lib/utils/index.mjs +0 -4
- package/esm2020/lib/utils/osmLinks.mjs +0 -10
- package/esm2020/lib/wkt/index.mjs +0 -2
- package/esm2020/lib/wkt/shared/index.mjs +0 -2
- package/esm2020/lib/wkt/shared/wkt.service.mjs +0 -239
- package/esm2020/lib/wkt/wkt.module.mjs +0 -22
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -48
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -36
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +0 -3
- package/esm2020/lib/workspace/index.mjs +0 -8
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +0 -280
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +0 -642
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +0 -35
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +0 -157
- package/esm2020/lib/workspace/shared/index.mjs +0 -8
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +0 -35
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +0 -150
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +0 -260
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +0 -24
- package/esm2020/lib/workspace/widgets/index.mjs +0 -4
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -47
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -36
- package/esm2020/lib/workspace/widgets/widgets.mjs +0 -15
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -133
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -28
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -113
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -28
- package/esm2020/lib/workspace/workspace.module.mjs +0 -62
- package/esm2020/public_api.mjs +0 -57
- package/fesm2015/igo2-geo.mjs +0 -46894
- package/fesm2015/igo2-geo.mjs.map +0 -1
- package/fesm2020/igo2-geo.mjs +0 -44993
- package/fesm2020/igo2-geo.mjs.map +0 -1
- package/ngcc.config.js +0 -3
- package/style/geo.theming.scss +0 -12
|
@@ -1,767 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable, Inject } from '@angular/core';
|
|
3
|
-
import { HttpParams } from '@angular/common/http';
|
|
4
|
-
import { of, BehaviorSubject } from 'rxjs';
|
|
5
|
-
import { map, catchError } from 'rxjs/operators';
|
|
6
|
-
import { AuthService } from '@igo2/auth';
|
|
7
|
-
import { ObjectUtils } from '@igo2/utils';
|
|
8
|
-
import pointOnFeature from '@turf/point-on-feature';
|
|
9
|
-
import { FEATURE } from '../../../feature';
|
|
10
|
-
import { GoogleLinks } from './../../../utils/googleLinks';
|
|
11
|
-
import { SearchSource } from './source';
|
|
12
|
-
import { computeTermSimilarity } from '../search.utils';
|
|
13
|
-
import { Cacheable } from 'ts-cacheable';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@igo2/core";
|
|
16
|
-
import * as i2 from "@angular/common/http";
|
|
17
|
-
export class IChercheSearchResultFormatter {
|
|
18
|
-
constructor(languageService) {
|
|
19
|
-
this.languageService = languageService;
|
|
20
|
-
}
|
|
21
|
-
formatResult(result) {
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
IChercheSearchResultFormatter.ɵfac = function IChercheSearchResultFormatter_Factory(t) { return new (t || IChercheSearchResultFormatter)(i0.ɵɵinject(i1.LanguageService)); };
|
|
26
|
-
IChercheSearchResultFormatter.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheSearchResultFormatter, factory: IChercheSearchResultFormatter.ɵfac });
|
|
27
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheSearchResultFormatter, [{
|
|
28
|
-
type: Injectable
|
|
29
|
-
}], function () { return [{ type: i1.LanguageService }]; }, null); })();
|
|
30
|
-
// Fix the "+" is replaced with space " " in a query string
|
|
31
|
-
// https://github.com/angular/angular/issues/11058
|
|
32
|
-
export class IgoHttpParameterCodec {
|
|
33
|
-
encodeKey(key) {
|
|
34
|
-
return encodeURIComponent(key);
|
|
35
|
-
}
|
|
36
|
-
encodeValue(value) {
|
|
37
|
-
return encodeURIComponent(value);
|
|
38
|
-
}
|
|
39
|
-
decodeKey(key) {
|
|
40
|
-
return decodeURIComponent(key);
|
|
41
|
-
}
|
|
42
|
-
decodeValue(value) {
|
|
43
|
-
return decodeURIComponent(value);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* ICherche search source
|
|
48
|
-
*/
|
|
49
|
-
export class IChercheSearchSource extends SearchSource {
|
|
50
|
-
constructor(http, languageService, storageService, options, formatter, injector) {
|
|
51
|
-
super(options, storageService);
|
|
52
|
-
this.http = http;
|
|
53
|
-
this.languageService = languageService;
|
|
54
|
-
this.formatter = formatter;
|
|
55
|
-
this.title$ = new BehaviorSubject('');
|
|
56
|
-
this.hashtagsLieuxToKeep = [];
|
|
57
|
-
const authService = injector.get(AuthService);
|
|
58
|
-
if (this.settings.length) {
|
|
59
|
-
if (!authService) {
|
|
60
|
-
this.getAllowedTypes();
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
authService.authenticate$.subscribe(() => {
|
|
64
|
-
this.getAllowedTypes();
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
this.languageService.language$.subscribe(() => {
|
|
69
|
-
this.title$.next(this.languageService.translate.instant(this.options.title));
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
get title() {
|
|
73
|
-
return this.title$.getValue();
|
|
74
|
-
}
|
|
75
|
-
getId() {
|
|
76
|
-
return IChercheSearchSource.id;
|
|
77
|
-
}
|
|
78
|
-
getType() {
|
|
79
|
-
return IChercheSearchSource.type;
|
|
80
|
-
}
|
|
81
|
-
getDefaultOptions() {
|
|
82
|
-
const limit = this.options.params && this.options.params.limit
|
|
83
|
-
? Number(this.options.params.limit)
|
|
84
|
-
: undefined;
|
|
85
|
-
const ecmax = this.options.params && this.options.params.ecmax
|
|
86
|
-
? Number(this.options.params.ecmax)
|
|
87
|
-
: undefined;
|
|
88
|
-
const types = this.options.params?.type
|
|
89
|
-
? this.options.params.type.replace(/\s/g, '').toLowerCase().split(',')
|
|
90
|
-
: [
|
|
91
|
-
'adresses',
|
|
92
|
-
'codes-postaux',
|
|
93
|
-
'routes',
|
|
94
|
-
'intersections',
|
|
95
|
-
'municipalites',
|
|
96
|
-
'mrc',
|
|
97
|
-
'regadmin',
|
|
98
|
-
'lieux'
|
|
99
|
-
];
|
|
100
|
-
return {
|
|
101
|
-
title: 'igo.geo.search.icherche.name',
|
|
102
|
-
searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche',
|
|
103
|
-
settings: [
|
|
104
|
-
{
|
|
105
|
-
type: 'checkbox',
|
|
106
|
-
title: 'results type',
|
|
107
|
-
name: 'type',
|
|
108
|
-
values: [
|
|
109
|
-
{
|
|
110
|
-
title: 'igo.geo.search.icherche.type.address',
|
|
111
|
-
value: 'adresses',
|
|
112
|
-
enabled: types.indexOf('adresses') !== -1,
|
|
113
|
-
hashtags: ['adresse']
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
title: 'igo.geo.search.icherche.type.oldAddress',
|
|
117
|
-
value: 'anciennes-adresses',
|
|
118
|
-
enabled: types.indexOf('anciennes-adresses') !== -1,
|
|
119
|
-
hashtags: ['anciennes-adresses']
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
title: 'igo.geo.search.icherche.type.oldCity',
|
|
123
|
-
value: 'anciennes-municipalites',
|
|
124
|
-
enabled: types.indexOf('anciennes-municipalites') !== -1,
|
|
125
|
-
hashtags: ['anciennes-municipalites']
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
title: 'igo.geo.search.icherche.type.cn',
|
|
129
|
-
value: 'bornes-cn',
|
|
130
|
-
enabled: types.indexOf('bornes-cn') !== -1,
|
|
131
|
-
hashtags: ['borne', 'bornes', 'cn']
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
title: 'igo.geo.search.icherche.type.sumi',
|
|
135
|
-
value: 'bornes-sumi',
|
|
136
|
-
enabled: types.indexOf('bornes-sumi') !== -1,
|
|
137
|
-
hashtags: ['borne', 'bornes', 'sumi']
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
title: 'igo.geo.search.icherche.type.cadastre',
|
|
141
|
-
value: 'cadastre',
|
|
142
|
-
enabled: types.indexOf('cadastre') !== -1,
|
|
143
|
-
hashtags: ['cadastre']
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
title: 'igo.geo.search.icherche.type.postalCode',
|
|
147
|
-
value: 'codes-postaux',
|
|
148
|
-
enabled: types.indexOf('codes-postaux') !== -1,
|
|
149
|
-
hashtags: ['code-postal']
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
title: 'igo.geo.search.icherche.type.entreprise',
|
|
153
|
-
value: 'entreprises',
|
|
154
|
-
enabled: types.indexOf('entreprises') !== -1,
|
|
155
|
-
available: false,
|
|
156
|
-
hashtags: ['entreprise']
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
title: 'igo.geo.search.icherche.type.cycleStop',
|
|
160
|
-
value: 'haltes_cyclables',
|
|
161
|
-
enabled: types.indexOf('haltes_cyclables') !== -1,
|
|
162
|
-
hashtags: ['haltevelo', 'haltes_cyclables']
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
title: 'igo.geo.search.icherche.type.restArea',
|
|
166
|
-
value: 'haltes_routieres',
|
|
167
|
-
enabled: types.indexOf('haltes_routieres') !== -1,
|
|
168
|
-
hashtags: ['halteroute', 'haltes_routieres']
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
title: 'igo.geo.search.icherche.type.hq',
|
|
172
|
-
value: 'hq',
|
|
173
|
-
enabled: types.indexOf('hq') !== -1,
|
|
174
|
-
hashtags: ['hq']
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
title: 'igo.geo.search.icherche.type.intersection',
|
|
178
|
-
value: 'intersections',
|
|
179
|
-
enabled: types.indexOf('intersections') !== -1,
|
|
180
|
-
hashtags: ['intersection', '+']
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
title: 'igo.geo.search.icherche.type.place',
|
|
184
|
-
value: 'lieux',
|
|
185
|
-
enabled: types.indexOf('lieux') !== -1,
|
|
186
|
-
hashtags: ['lieu']
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
title: 'igo.geo.search.icherche.type.mrc',
|
|
190
|
-
value: 'mrc',
|
|
191
|
-
enabled: types.indexOf('mrc') !== -1,
|
|
192
|
-
hashtags: ['mrc']
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
title: 'igo.geo.search.icherche.type.city',
|
|
196
|
-
value: 'municipalites',
|
|
197
|
-
enabled: types.indexOf('municipalites') !== -1,
|
|
198
|
-
hashtags: ['municipalité', 'mun']
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
title: 'igo.geo.search.icherche.type.regadmin',
|
|
202
|
-
value: 'regadmin',
|
|
203
|
-
enabled: types.indexOf('regadmin') !== -1,
|
|
204
|
-
hashtags: ['région-administrative', 'regadmin']
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
title: 'igo.geo.search.icherche.type.gcc',
|
|
208
|
-
value: 'bornes-gcc',
|
|
209
|
-
enabled: types.indexOf('bornes-gcc') !== -1,
|
|
210
|
-
hashtags: ['borne', 'bornes', 'repère', 'gcc', 'ccg']
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
title: 'igo.geo.search.icherche.type.km',
|
|
214
|
-
value: 'bornes-km',
|
|
215
|
-
enabled: types.indexOf('bornes-km') !== -1,
|
|
216
|
-
hashtags: ['borne', 'bornes', 'repère', 'km']
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
title: 'igo.geo.search.icherche.type.road',
|
|
220
|
-
value: 'routes',
|
|
221
|
-
enabled: types.indexOf('routes') !== -1,
|
|
222
|
-
hashtags: ['route']
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
title: 'igo.geo.search.icherche.type.exit',
|
|
226
|
-
value: 'sorties-autoroute',
|
|
227
|
-
enabled: types.indexOf('sorties-autoroute') !== -1,
|
|
228
|
-
hashtags: ['sortie', 'sorties', 'exit']
|
|
229
|
-
}
|
|
230
|
-
]
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
type: 'radiobutton',
|
|
234
|
-
title: 'results limit',
|
|
235
|
-
name: 'limit',
|
|
236
|
-
values: [
|
|
237
|
-
{
|
|
238
|
-
title: '1',
|
|
239
|
-
value: 1,
|
|
240
|
-
enabled: limit === 1
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
title: '5',
|
|
244
|
-
value: 5,
|
|
245
|
-
enabled: limit === 5 || !limit
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
title: '10',
|
|
249
|
-
value: 10,
|
|
250
|
-
enabled: limit === 10
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
title: '25',
|
|
254
|
-
value: 25,
|
|
255
|
-
enabled: limit === 25
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
title: '50',
|
|
259
|
-
value: 50,
|
|
260
|
-
enabled: limit === 50
|
|
261
|
-
}
|
|
262
|
-
]
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
type: 'radiobutton',
|
|
266
|
-
title: 'ecmax',
|
|
267
|
-
name: 'ecmax',
|
|
268
|
-
values: [
|
|
269
|
-
{
|
|
270
|
-
title: '10 %',
|
|
271
|
-
value: 10,
|
|
272
|
-
enabled: ecmax === 10
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
title: '30 %',
|
|
276
|
-
value: 30,
|
|
277
|
-
enabled: ecmax === 30 || !ecmax
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
title: '50 %',
|
|
281
|
-
value: 50,
|
|
282
|
-
enabled: ecmax === 50
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
title: '75 %',
|
|
286
|
-
value: 75,
|
|
287
|
-
enabled: ecmax === 75
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
title: '100 %',
|
|
291
|
-
value: 100,
|
|
292
|
-
enabled: ecmax === 100
|
|
293
|
-
}
|
|
294
|
-
]
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
type: 'radiobutton',
|
|
298
|
-
title: 'restrictExtent',
|
|
299
|
-
name: 'loc',
|
|
300
|
-
values: [
|
|
301
|
-
{
|
|
302
|
-
title: 'igo.geo.search.icherche.restrictExtent.map',
|
|
303
|
-
value: 'true',
|
|
304
|
-
enabled: false
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
title: 'igo.geo.search.icherche.restrictExtent.quebec',
|
|
308
|
-
value: 'false',
|
|
309
|
-
enabled: true
|
|
310
|
-
}
|
|
311
|
-
]
|
|
312
|
-
}
|
|
313
|
-
]
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Search a location by name or keyword
|
|
318
|
-
* @param term Location name or keyword
|
|
319
|
-
* @returns Observable of <SearchResult<Feature>[]
|
|
320
|
-
*/
|
|
321
|
-
search(term, options) {
|
|
322
|
-
const params = this.computeRequestParams(term, options || {});
|
|
323
|
-
if (!params.get('type').length) {
|
|
324
|
-
return of([]);
|
|
325
|
-
}
|
|
326
|
-
this.options.params.page = params.get('page') || '1';
|
|
327
|
-
return this.http.get(`${this.searchUrl}/geocode`, { params }).pipe(map((response) => this.extractResults(response, term)), catchError((err) => {
|
|
328
|
-
err.error.toDisplay = true;
|
|
329
|
-
err.error.title = this.languageService.translate.instant(this.getDefaultOptions().title);
|
|
330
|
-
throw err;
|
|
331
|
-
}));
|
|
332
|
-
}
|
|
333
|
-
getAllowedTypes() {
|
|
334
|
-
return this.http
|
|
335
|
-
.get(`${this.searchUrl}/types`)
|
|
336
|
-
.subscribe((types) => {
|
|
337
|
-
const typeSetting = this.settings.find((s) => s.name === 'type');
|
|
338
|
-
typeSetting.values.forEach((v) => {
|
|
339
|
-
const regex = new RegExp(`^${v.value}(\\.|$)`);
|
|
340
|
-
const typesMatched = types.filter((value) => regex.test(value));
|
|
341
|
-
v.available = typesMatched.length > 0;
|
|
342
|
-
if (v.value === 'lieux') {
|
|
343
|
-
this.hashtagsLieuxToKeep = [
|
|
344
|
-
...new Set(typesMatched
|
|
345
|
-
.map((t) => t.split('.'))
|
|
346
|
-
.reduce((a, b) => a.concat(b))
|
|
347
|
-
.filter((t) => t !== 'lieux'))
|
|
348
|
-
];
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
this.setParamFromSetting(typeSetting, false);
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
computeRequestParams(term, options) {
|
|
355
|
-
const queryParams = Object.assign({
|
|
356
|
-
geometry: true,
|
|
357
|
-
bbox: true,
|
|
358
|
-
icon: true,
|
|
359
|
-
type: 'adresses,codes-postaux,municipalites,mrc,regadmin,lieux,entreprises,bornes-sumi'
|
|
360
|
-
}, this.params, this.computeOptionsParam(term, options || {}).params, {
|
|
361
|
-
q: this.computeTerm(term),
|
|
362
|
-
page: options.page
|
|
363
|
-
});
|
|
364
|
-
if (queryParams.loc === 'true') {
|
|
365
|
-
const [xMin, yMin, xMax, yMax] = options.extent;
|
|
366
|
-
queryParams.loc = `${xMin},${yMin};${xMax},${yMin};${xMax},${yMax};${xMin},${yMax};${xMin},${yMin}`;
|
|
367
|
-
}
|
|
368
|
-
else if (queryParams.loc === 'false') {
|
|
369
|
-
delete queryParams.loc;
|
|
370
|
-
}
|
|
371
|
-
if (/#[A-Za-z]+/.test(queryParams.q)) {
|
|
372
|
-
queryParams.type = 'lieux';
|
|
373
|
-
}
|
|
374
|
-
return new HttpParams({
|
|
375
|
-
fromObject: ObjectUtils.removeUndefined(queryParams),
|
|
376
|
-
encoder: new IgoHttpParameterCodec()
|
|
377
|
-
});
|
|
378
|
-
}
|
|
379
|
-
extractResults(response, term) {
|
|
380
|
-
return response.features.map((data) => {
|
|
381
|
-
return this.formatter.formatResult(this.dataToResult(data, term, response));
|
|
382
|
-
});
|
|
383
|
-
}
|
|
384
|
-
dataToResult(data, term, response) {
|
|
385
|
-
const properties = this.computeProperties(data);
|
|
386
|
-
const id = [this.getId(), properties.type, properties.code].join('.');
|
|
387
|
-
const titleHtml = data.highlight.title || data.properties.nom;
|
|
388
|
-
const subtitleHtml = data.highlight.title2
|
|
389
|
-
? ' <small> ' + data.highlight.title2 + '</small>'
|
|
390
|
-
: '';
|
|
391
|
-
const subtitleHtml2 = data.highlight.title3
|
|
392
|
-
? '<br><small> ' + data.highlight.title3 + '</small>'
|
|
393
|
-
: '';
|
|
394
|
-
return {
|
|
395
|
-
source: this,
|
|
396
|
-
data: {
|
|
397
|
-
type: FEATURE,
|
|
398
|
-
projection: 'EPSG:4326',
|
|
399
|
-
geometry: data.geometry,
|
|
400
|
-
extent: data.bbox,
|
|
401
|
-
properties,
|
|
402
|
-
meta: {
|
|
403
|
-
id,
|
|
404
|
-
title: data.properties.nom
|
|
405
|
-
}
|
|
406
|
-
},
|
|
407
|
-
meta: {
|
|
408
|
-
dataType: FEATURE,
|
|
409
|
-
id,
|
|
410
|
-
title: data.properties.nom,
|
|
411
|
-
titleHtml: titleHtml + subtitleHtml + subtitleHtml2,
|
|
412
|
-
icon: data.icon || 'map-marker',
|
|
413
|
-
score: data.score || computeTermSimilarity(term.trim(), data.properties.nom),
|
|
414
|
-
nextPage: response.features.length % +this.options.params.limit === 0 &&
|
|
415
|
-
+this.options.params.page < 10
|
|
416
|
-
}
|
|
417
|
-
};
|
|
418
|
-
}
|
|
419
|
-
computeProperties(data) {
|
|
420
|
-
const properties = ObjectUtils.removeKeys(data.properties, IChercheSearchSource.propertiesBlacklist);
|
|
421
|
-
if (!data.geometry) {
|
|
422
|
-
return Object.assign({ type: data.index }, properties);
|
|
423
|
-
}
|
|
424
|
-
const googleLinksProperties = {
|
|
425
|
-
GoogleMaps: ''
|
|
426
|
-
};
|
|
427
|
-
let googleMaps;
|
|
428
|
-
if (data.geometry.type === 'Point') {
|
|
429
|
-
googleMaps = GoogleLinks.getGoogleMapsCoordLink(data.geometry.coordinates[0], data.geometry.coordinates[1]);
|
|
430
|
-
}
|
|
431
|
-
else {
|
|
432
|
-
const point = pointOnFeature(data.geometry);
|
|
433
|
-
googleMaps = GoogleLinks.getGoogleMapsCoordLink(point.geometry.coordinates[0], point.geometry.coordinates[1]);
|
|
434
|
-
}
|
|
435
|
-
let googleMapsNom;
|
|
436
|
-
if (data.index === 'routes') {
|
|
437
|
-
googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ', ' + data.properties.municipalite);
|
|
438
|
-
}
|
|
439
|
-
else if (data.index === 'municipalites') {
|
|
440
|
-
googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ', ' + 'ville');
|
|
441
|
-
}
|
|
442
|
-
else if (data.index === 'mrc') {
|
|
443
|
-
googleMapsNom = GoogleLinks.getGoogleMapsNameLink('mrc+' + data.properties.nom);
|
|
444
|
-
}
|
|
445
|
-
else if (data.index === 'regadmin') {
|
|
446
|
-
googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ',+QC');
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom || data.highlight.title);
|
|
450
|
-
}
|
|
451
|
-
googleLinksProperties.GoogleMaps =
|
|
452
|
-
'<a href=' +
|
|
453
|
-
googleMaps +
|
|
454
|
-
' target="_blank">' +
|
|
455
|
-
this.languageService.translate.instant('igo.geo.searchByCoord') +
|
|
456
|
-
'</a> <br /> <a href=' +
|
|
457
|
-
googleMapsNom +
|
|
458
|
-
' target="_blank">' +
|
|
459
|
-
this.languageService.translate.instant('igo.geo.searchByName') +
|
|
460
|
-
'</a>';
|
|
461
|
-
if (data.geometry.type === 'Point') {
|
|
462
|
-
googleLinksProperties.GoogleStreetView = GoogleLinks.getGoogleStreetViewLink(data.geometry.coordinates[0], data.geometry.coordinates[1]);
|
|
463
|
-
}
|
|
464
|
-
const routing = {
|
|
465
|
-
Route: '<span class="routing"> <u>' +
|
|
466
|
-
this.languageService.translate.instant('igo.geo.seeRouting') +
|
|
467
|
-
'</u> </span>'
|
|
468
|
-
};
|
|
469
|
-
return Object.assign({ type: data.index }, properties, googleLinksProperties, routing);
|
|
470
|
-
}
|
|
471
|
-
/**
|
|
472
|
-
* Remove hashtag from query
|
|
473
|
-
* @param term Query with hashtag
|
|
474
|
-
*/
|
|
475
|
-
computeTerm(term) {
|
|
476
|
-
// Keep hashtags for "lieux"
|
|
477
|
-
const hashtags = term.match(/(#[A-Za-z]+)/g) || [];
|
|
478
|
-
let keep = false;
|
|
479
|
-
keep = hashtags.some((hashtag) => {
|
|
480
|
-
const hashtagKey = hashtag.substring(1);
|
|
481
|
-
return this.hashtagsLieuxToKeep.some((h) => h
|
|
482
|
-
.toLowerCase()
|
|
483
|
-
.normalize('NFD')
|
|
484
|
-
.replace(/[\u0300-\u036f]/g, '') ===
|
|
485
|
-
hashtagKey
|
|
486
|
-
.toLowerCase()
|
|
487
|
-
.normalize('NFD')
|
|
488
|
-
.replace(/[\u0300-\u036f]/g, ''));
|
|
489
|
-
});
|
|
490
|
-
if (!keep) {
|
|
491
|
-
term = term.replace(/(#[A-Za-z]+)/g, '');
|
|
492
|
-
}
|
|
493
|
-
return term.replace(/[^\wÀ-ÿ !\-\+\(\)\.\/½¼¾,'#]+/g, '');
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Add hashtag to param if valid
|
|
497
|
-
* @param term Query with hashtag
|
|
498
|
-
* @param options TextSearchOptions
|
|
499
|
-
*/
|
|
500
|
-
computeOptionsParam(term, options) {
|
|
501
|
-
const hashtags = super.getHashtagsValid(term, 'type');
|
|
502
|
-
if (hashtags) {
|
|
503
|
-
options.params = Object.assign(options.params || {}, {
|
|
504
|
-
type: hashtags.join(',')
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
return options;
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
IChercheSearchSource.id = 'icherche';
|
|
511
|
-
IChercheSearchSource.type = FEATURE;
|
|
512
|
-
IChercheSearchSource.propertiesBlacklist = [];
|
|
513
|
-
IChercheSearchSource.ɵfac = function IChercheSearchSource_Factory(t) { return new (t || IChercheSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(IChercheSearchResultFormatter), i0.ɵɵinject(i0.Injector)); };
|
|
514
|
-
IChercheSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheSearchSource, factory: IChercheSearchSource.ɵfac });
|
|
515
|
-
__decorate([
|
|
516
|
-
Cacheable({
|
|
517
|
-
maxCacheCount: 20
|
|
518
|
-
})
|
|
519
|
-
], IChercheSearchSource.prototype, "search", null);
|
|
520
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheSearchSource, [{
|
|
521
|
-
type: Injectable
|
|
522
|
-
}], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
|
|
523
|
-
type: Inject,
|
|
524
|
-
args: ['options']
|
|
525
|
-
}] }, { type: IChercheSearchResultFormatter, decorators: [{
|
|
526
|
-
type: Inject,
|
|
527
|
-
args: [IChercheSearchResultFormatter]
|
|
528
|
-
}] }, { type: i0.Injector }]; }, { search: [] }); })();
|
|
529
|
-
/**
|
|
530
|
-
* IChercheReverse search source
|
|
531
|
-
*/
|
|
532
|
-
export class IChercheReverseSearchSource extends SearchSource {
|
|
533
|
-
constructor(http, languageService, storageService, options, injector) {
|
|
534
|
-
super(options, storageService);
|
|
535
|
-
this.http = http;
|
|
536
|
-
this.languageService = languageService;
|
|
537
|
-
this.title$ = new BehaviorSubject('');
|
|
538
|
-
this.languageService.language$.subscribe(() => {
|
|
539
|
-
this.title$.next(this.languageService.translate.instant(this.options.title));
|
|
540
|
-
});
|
|
541
|
-
const authService = injector.get(AuthService);
|
|
542
|
-
if (this.settings.length) {
|
|
543
|
-
if (!authService) {
|
|
544
|
-
this.getAllowedTypes();
|
|
545
|
-
}
|
|
546
|
-
else {
|
|
547
|
-
authService.authenticate$.subscribe(() => {
|
|
548
|
-
this.getAllowedTypes();
|
|
549
|
-
});
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
get title() {
|
|
554
|
-
return this.title$.getValue();
|
|
555
|
-
}
|
|
556
|
-
getId() {
|
|
557
|
-
return IChercheReverseSearchSource.id;
|
|
558
|
-
}
|
|
559
|
-
getType() {
|
|
560
|
-
return IChercheReverseSearchSource.type;
|
|
561
|
-
}
|
|
562
|
-
getDefaultOptions() {
|
|
563
|
-
const types = this.options.params && this.options.params.type
|
|
564
|
-
? this.options.params.type.replace(/\s/g, '').toLowerCase().split(',')
|
|
565
|
-
: ['adresses', 'municipalites', 'mrc', 'regadmin'];
|
|
566
|
-
return {
|
|
567
|
-
title: 'igo.geo.search.ichercheReverse.name',
|
|
568
|
-
searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/terrapi',
|
|
569
|
-
settings: [
|
|
570
|
-
{
|
|
571
|
-
type: 'checkbox',
|
|
572
|
-
title: 'results type',
|
|
573
|
-
name: 'type',
|
|
574
|
-
values: [
|
|
575
|
-
{
|
|
576
|
-
title: 'igo.geo.search.icherche.type.address',
|
|
577
|
-
value: 'adresses',
|
|
578
|
-
enabled: types.indexOf('adresses') !== -1
|
|
579
|
-
},
|
|
580
|
-
{
|
|
581
|
-
title: 'igo.geo.search.icherche.type.road',
|
|
582
|
-
value: 'routes',
|
|
583
|
-
enabled: types.indexOf('routes') !== -1,
|
|
584
|
-
available: false
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
title: 'igo.geo.search.icherche.type.district',
|
|
588
|
-
value: 'arrondissements',
|
|
589
|
-
enabled: types.indexOf('arrondissements') !== -1
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
title: 'igo.geo.search.icherche.type.city',
|
|
593
|
-
value: 'municipalites',
|
|
594
|
-
enabled: types.indexOf('municipalites') !== -1
|
|
595
|
-
},
|
|
596
|
-
{
|
|
597
|
-
title: 'igo.geo.search.icherche.type.mrc',
|
|
598
|
-
value: 'mrc',
|
|
599
|
-
enabled: types.indexOf('mrc') !== -1
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
title: 'igo.geo.search.icherche.type.regadmin',
|
|
603
|
-
value: 'regadmin',
|
|
604
|
-
enabled: types.indexOf('regadmin') !== -1
|
|
605
|
-
}
|
|
606
|
-
]
|
|
607
|
-
},
|
|
608
|
-
{
|
|
609
|
-
type: 'radiobutton',
|
|
610
|
-
title: 'radius',
|
|
611
|
-
name: 'bufferInput',
|
|
612
|
-
values: [
|
|
613
|
-
{
|
|
614
|
-
title: '100 m',
|
|
615
|
-
value: 100,
|
|
616
|
-
enabled: !this.options.distance || this.options.distance === 100
|
|
617
|
-
},
|
|
618
|
-
{
|
|
619
|
-
title: '500 m',
|
|
620
|
-
value: 500,
|
|
621
|
-
enabled: this.options.distance === 500
|
|
622
|
-
},
|
|
623
|
-
{
|
|
624
|
-
title: '1 km',
|
|
625
|
-
value: 1000,
|
|
626
|
-
enabled: this.options.distance === 1000
|
|
627
|
-
},
|
|
628
|
-
{
|
|
629
|
-
title: '2 km',
|
|
630
|
-
value: 2000,
|
|
631
|
-
enabled: this.options.distance === 2000
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
title: '5 km',
|
|
635
|
-
value: 5000,
|
|
636
|
-
enabled: this.options.distance === 5000
|
|
637
|
-
}
|
|
638
|
-
]
|
|
639
|
-
}
|
|
640
|
-
]
|
|
641
|
-
};
|
|
642
|
-
}
|
|
643
|
-
/**
|
|
644
|
-
* Search a location by coordinates
|
|
645
|
-
* @param lonLat Location coordinates
|
|
646
|
-
* @param distance Search raidus around lonLat
|
|
647
|
-
* @returns Observable of <SearchResult<Feature>[]
|
|
648
|
-
*/
|
|
649
|
-
reverseSearch(lonLat, options) {
|
|
650
|
-
const params = this.computeRequestParams(lonLat, options || {});
|
|
651
|
-
if (!params.get('type').length) {
|
|
652
|
-
return of([]);
|
|
653
|
-
}
|
|
654
|
-
return this.http.get(`${this.searchUrl}/locate`, { params }).pipe(map((response) => {
|
|
655
|
-
return this.extractResults(response);
|
|
656
|
-
}));
|
|
657
|
-
}
|
|
658
|
-
getAllowedTypes() {
|
|
659
|
-
return this.http
|
|
660
|
-
.get(`${this.searchUrl}/types`)
|
|
661
|
-
.subscribe((types) => {
|
|
662
|
-
const typeSetting = this.settings.find((s) => s.name === 'type');
|
|
663
|
-
typeSetting.values.forEach((v) => {
|
|
664
|
-
v.available = types.indexOf(v.value) > -1;
|
|
665
|
-
});
|
|
666
|
-
this.setParamFromSetting(typeSetting, false);
|
|
667
|
-
});
|
|
668
|
-
}
|
|
669
|
-
computeRequestParams(lonLat, options) {
|
|
670
|
-
if (options.distance || this.options.distance) {
|
|
671
|
-
options.params = Object.assign(options.params || {}, {
|
|
672
|
-
bufferInput: options.distance || this.options.distance
|
|
673
|
-
});
|
|
674
|
-
}
|
|
675
|
-
return new HttpParams({
|
|
676
|
-
fromObject: Object.assign({
|
|
677
|
-
loc: lonLat.join(','),
|
|
678
|
-
sort: 'distance',
|
|
679
|
-
geometry: true,
|
|
680
|
-
icon: true
|
|
681
|
-
}, options.params || {}, this.params)
|
|
682
|
-
});
|
|
683
|
-
}
|
|
684
|
-
extractResults(response) {
|
|
685
|
-
return response.features.map((data) => {
|
|
686
|
-
return this.dataToResult(data);
|
|
687
|
-
});
|
|
688
|
-
}
|
|
689
|
-
getSubtitle(data) {
|
|
690
|
-
if (!this.settings.length) {
|
|
691
|
-
return '';
|
|
692
|
-
}
|
|
693
|
-
let subtitle = '';
|
|
694
|
-
switch (data.properties.type) {
|
|
695
|
-
case 'arrondissements':
|
|
696
|
-
subtitle = data.properties.municipalite + ' (Arrondissement)';
|
|
697
|
-
break;
|
|
698
|
-
default:
|
|
699
|
-
const typeSetting = this.settings.find((s) => s.name === 'type');
|
|
700
|
-
const type = typeSetting.values.find((t) => t.value === data.properties.type);
|
|
701
|
-
if (type) {
|
|
702
|
-
subtitle = this.languageService.translate.instant(type.title);
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
|
-
return subtitle;
|
|
706
|
-
}
|
|
707
|
-
dataToResult(data) {
|
|
708
|
-
const properties = this.computeProperties(data);
|
|
709
|
-
const extent = this.computeExtent(data);
|
|
710
|
-
const id = [this.getId(), properties.type, properties.code].join('.');
|
|
711
|
-
const titleHtml = data.properties.nom;
|
|
712
|
-
const subtitleHtml = ' <small> ' + this.getSubtitle(data) + '</small>';
|
|
713
|
-
return {
|
|
714
|
-
source: this,
|
|
715
|
-
data: {
|
|
716
|
-
type: FEATURE,
|
|
717
|
-
projection: 'EPSG:4326',
|
|
718
|
-
geometry: data.geometry,
|
|
719
|
-
extent,
|
|
720
|
-
properties,
|
|
721
|
-
meta: {
|
|
722
|
-
id,
|
|
723
|
-
title: data.properties.nom
|
|
724
|
-
}
|
|
725
|
-
},
|
|
726
|
-
meta: {
|
|
727
|
-
dataType: FEATURE,
|
|
728
|
-
id,
|
|
729
|
-
title: data.properties.nom,
|
|
730
|
-
titleHtml: titleHtml + subtitleHtml,
|
|
731
|
-
icon: data.icon || 'map-marker',
|
|
732
|
-
pointerSummaryTitle: this.getSubtitle(data) + ': ' + data.properties.nom
|
|
733
|
-
}
|
|
734
|
-
};
|
|
735
|
-
}
|
|
736
|
-
computeProperties(data) {
|
|
737
|
-
const properties = ObjectUtils.removeKeys(data.properties, IChercheReverseSearchSource.propertiesBlacklist);
|
|
738
|
-
const routing = {
|
|
739
|
-
Route: '<span class="routing"> <u>' +
|
|
740
|
-
this.languageService.translate.instant('igo.geo.seeRouting') +
|
|
741
|
-
'</u> </span>'
|
|
742
|
-
};
|
|
743
|
-
return Object.assign(properties, routing);
|
|
744
|
-
}
|
|
745
|
-
computeExtent(data) {
|
|
746
|
-
return data.bbox
|
|
747
|
-
? [data.bbox[0], data.bbox[2], data.bbox[1], data.bbox[3]]
|
|
748
|
-
: undefined;
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
|
-
IChercheReverseSearchSource.id = 'icherchereverse';
|
|
752
|
-
IChercheReverseSearchSource.type = FEATURE;
|
|
753
|
-
IChercheReverseSearchSource.propertiesBlacklist = [];
|
|
754
|
-
IChercheReverseSearchSource.ɵfac = function IChercheReverseSearchSource_Factory(t) { return new (t || IChercheReverseSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(i0.Injector)); };
|
|
755
|
-
IChercheReverseSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheReverseSearchSource, factory: IChercheReverseSearchSource.ɵfac });
|
|
756
|
-
__decorate([
|
|
757
|
-
Cacheable({
|
|
758
|
-
maxCacheCount: 20
|
|
759
|
-
})
|
|
760
|
-
], IChercheReverseSearchSource.prototype, "reverseSearch", null);
|
|
761
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheReverseSearchSource, [{
|
|
762
|
-
type: Injectable
|
|
763
|
-
}], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
|
|
764
|
-
type: Inject,
|
|
765
|
-
args: ['options']
|
|
766
|
-
}] }, { type: i0.Injector }]; }, { reverseSearch: [] }); })();
|
|
767
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvaWNoZXJjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxVQUFVLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFbEYsT0FBTyxFQUFjLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUE2QixNQUFNLFVBQVUsQ0FBQztBQVluRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBR3pDLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsTUFBNkI7UUFDeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MEdBTFUsNkJBQTZCO21GQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCO3VGQUE3Qiw2QkFBNkI7Y0FEekMsVUFBVTs7QUFTWCwy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SUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7O0FBaFJNLDhCQUFFLEdBQUcsaUJBQWlCLENBQUM7QUFDdkIsZ0NBQUksR0FBRyxPQUFPLENBQUM7QUFDZiwrQ0FBbUIsR0FBYSxFQUFHLENBQUE7c0dBSi9CLDJCQUEyQiwyR0FnQjVCLFNBQVM7aUZBaEJSLDJCQUEyQixXQUEzQiwyQkFBMkI7O0lBdUlyQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDO2dFQWNEO3VGQXZKVSwyQkFBMkI7Y0FEdkMsVUFBVTs7c0JBaUJOLE1BQU07dUJBQUMsU0FBUzsrQ0EwSG5CLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBQYXJhbWV0ZXJDb2RlYyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IEZFQVRVUkUsIEZlYXR1cmUgfSBmcm9tICcuLi8uLi8uLi9mZWF0dXJlJztcclxuaW1wb3J0IHsgR29vZ2xlTGlua3MgfSBmcm9tICcuLy4uLy4uLy4uL3V0aWxzL2dvb2dsZUxpbmtzJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlLCBUZXh0U2VhcmNoLCBSZXZlcnNlU2VhcmNoIH0gZnJvbSAnLi9zb3VyY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFNvdXJjZU9wdGlvbnMsXHJcbiAgVGV4dFNlYXJjaE9wdGlvbnMsXHJcbiAgUmV2ZXJzZVNlYXJjaE9wdGlvbnNcclxufSBmcm9tICcuL3NvdXJjZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBJQ2hlcmNoZURhdGEsXHJcbiAgSUNoZXJjaGVSZXNwb25zZSxcclxuICBJQ2hlcmNoZVJldmVyc2VEYXRhLFxyXG4gIElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlXHJcbn0gZnJvbSAnLi9pY2hlcmNoZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgY29tcHV0ZVRlcm1TaW1pbGFyaXR5IH0gZnJvbSAnLi4vc2VhcmNoLnV0aWxzJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7fVxyXG5cclxuICBmb3JtYXRSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4pOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZpeCB0aGUgXCIrXCIgaXMgcmVwbGFjZWQgd2l0aCBzcGFjZSBcIiBcIiBpbiBhIHF1ZXJ5IHN0cmluZ1xyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMTA1OFxyXG5leHBvcnQgY2xhc3MgSWdvSHR0cFBhcmFtZXRlckNvZGVjIGltcGxlbWVudHMgSHR0cFBhcmFtZXRlckNvZGVjIHtcclxuICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gIH1cclxuXHJcbiAgZW5jb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGRlY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIElDaGVyY2hlIHNlYXJjaCBzb3VyY2VcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlU2VhcmNoU291cmNlIGV4dGVuZHMgU2VhcmNoU291cmNlIGltcGxlbWVudHMgVGV4dFNlYXJjaCB7XHJcbiAgc3RhdGljIGlkID0gJ2ljaGVyY2hlJztcclxuICBzdGF0aWMgdHlwZSA9IEZFQVRVUkU7XHJcbiAgc3RhdGljIHByb3BlcnRpZXNCbGFja2xpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgdGl0bGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcblxyXG4gIHByaXZhdGUgaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtdO1xyXG5cclxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRpdGxlJC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IFNlYXJjaFNvdXJjZU9wdGlvbnMsXHJcbiAgICBASW5qZWN0KElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKVxyXG4gICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcihvcHRpb25zLCBzdG9yYWdlU2VydmljZSk7XHJcblxyXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UpO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGVuZ3RoKSB7XHJcbiAgICAgIGlmICghYXV0aFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0QWxsb3dlZFR5cGVzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxhbmd1YWdlU2VydmljZS5sYW5ndWFnZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy50aXRsZSQubmV4dCh0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aGlzLm9wdGlvbnMudGl0bGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJQ2hlcmNoZVNlYXJjaFNvdXJjZS5pZDtcclxuICB9XHJcblxyXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJQ2hlcmNoZVNlYXJjaFNvdXJjZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGltaXQgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXRcclxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0KVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgZWNtYXggPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMuZWNtYXhcclxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmVjbWF4KVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5vcHRpb25zLnBhcmFtcz8udHlwZVxyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXHJcbiAgICAgICAgOiBbXHJcbiAgICAgICAgICAgICdhZHJlc3NlcycsXHJcbiAgICAgICAgICAgICdjb2Rlcy1wb3N0YXV4JyxcclxuICAgICAgICAgICAgJ3JvdXRlcycsXHJcbiAgICAgICAgICAgICdpbnRlcnNlY3Rpb25zJyxcclxuICAgICAgICAgICAgJ211bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAnbXJjJyxcclxuICAgICAgICAgICAgJ3JlZ2FkbWluJyxcclxuICAgICAgICAgICAgJ2xpZXV4J1xyXG4gICAgICAgICAgXTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLm5hbWUnLFxyXG4gICAgICBzZWFyY2hVcmw6ICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9hcGlzL2ljaGVyY2hlJyxcclxuICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIHR5cGUnLFxyXG4gICAgICAgICAgbmFtZTogJ3R5cGUnLFxyXG4gICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuYWRkcmVzcycsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdhZHJlc3NlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignYWRyZXNzZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYWRyZXNzZSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUub2xkQWRkcmVzcycsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdhbmNpZW5uZXMtYWRyZXNzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FuY2llbm5lcy1hZHJlc3NlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydhbmNpZW5uZXMtYWRyZXNzZXMnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLm9sZENpdHknLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYW5jaWVubmVzLW11bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FuY2llbm5lcy1tdW5pY2lwYWxpdGVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2FuY2llbm5lcy1tdW5pY2lwYWxpdGVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdib3JuZXMtY24nLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1jbicpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydib3JuZScsICdib3JuZXMnLCAnY24nXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnN1bWknLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLXN1bWknLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1zdW1pJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2Jvcm5lJywgJ2Jvcm5lcycsICdzdW1pJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jYWRhc3RyZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdjYWRhc3RyZScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignY2FkYXN0cmUnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnY2FkYXN0cmUnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnBvc3RhbENvZGUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnY29kZXMtcG9zdGF1eCcsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignY29kZXMtcG9zdGF1eCcpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydjb2RlLXBvc3RhbCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZW50cmVwcmlzZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbnRyZXByaXNlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignZW50cmVwcmlzZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgYXZhaWxhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydlbnRyZXByaXNlJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jeWNsZVN0b3AnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnaGFsdGVzX2N5Y2xhYmxlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignaGFsdGVzX2N5Y2xhYmxlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydoYWx0ZXZlbG8nLCdoYWx0ZXNfY3ljbGFibGVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZXN0QXJlYScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdoYWx0ZXNfcm91dGllcmVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdoYWx0ZXNfcm91dGllcmVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2hhbHRlcm91dGUnLCdoYWx0ZXNfcm91dGllcmVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5ocScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdocScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignaHEnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaHEnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmludGVyc2VjdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdpbnRlcnNlY3Rpb25zJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdpbnRlcnNlY3Rpb25zJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2ludGVyc2VjdGlvbicsICcrJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5wbGFjZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdsaWV1eCcsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbGlldXgnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnbGlldSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ21yYycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbXJjJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ21yYyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2l0eScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdtdW5pY2lwYWxpdGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtdW5pY2lwYWxpdGVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ211bmljaXBhbGl0w6knLCAnbXVuJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncmVnYWRtaW4nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncsOpZ2lvbi1hZG1pbmlzdHJhdGl2ZScsICdyZWdhZG1pbiddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZ2NjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2Jvcm5lcy1nY2MnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1nY2MnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAnZ2NjJywgJ2NjZyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUua20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLWttJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMta20nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAna20nXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJvYWQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAncm91dGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyb3V0ZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncm91dGUnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmV4aXQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnc29ydGllcy1hdXRvcm91dGUnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3NvcnRpZXMtYXV0b3JvdXRlJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ3NvcnRpZScsICdzb3J0aWVzJywgJ2V4aXQnXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIGxpbWl0JyxcclxuICAgICAgICAgIG5hbWU6ICdsaW1pdCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnNScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDUsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDUgfHwgIWxpbWl0XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzEwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDEwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzI1JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMjUsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDI1XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDUwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXHJcbiAgICAgICAgICB0aXRsZTogJ2VjbWF4JyxcclxuICAgICAgICAgIG5hbWU6ICdlY21heCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAgJScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAxMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICczMCAlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMzAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDMwIHx8ICFlY21heFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MCAlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDUwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzc1ICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gNzVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAwICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN0cmljdEV4dGVudCcsXHJcbiAgICAgICAgICBuYW1lOiAnbG9jJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS5yZXN0cmljdEV4dGVudC5tYXAnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUucmVzdHJpY3RFeHRlbnQucXVlYmVjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggYSBsb2NhdGlvbiBieSBuYW1lIG9yIGtleXdvcmRcclxuICAgKiBAcGFyYW0gdGVybSBMb2NhdGlvbiBuYW1lIG9yIGtleXdvcmRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIDxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXVxyXG4gICAqL1xyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIHNlYXJjaChcclxuICAgIHRlcm06IHN0cmluZyxcclxuICAgIG9wdGlvbnM/OiBUZXh0U2VhcmNoT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcHV0ZVJlcXVlc3RQYXJhbXModGVybSwgb3B0aW9ucyB8fCB7fSk7XHJcbiAgICBpZiAoIXBhcmFtcy5nZXQoJ3R5cGUnKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucy5wYXJhbXMucGFnZSA9IHBhcmFtcy5nZXQoJ3BhZ2UnKSB8fCAnMSc7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L2dlb2NvZGVgLCB7IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBJQ2hlcmNoZVJlc3BvbnNlKSA9PiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlLCB0ZXJtKSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGVyci5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgIGVyci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgdGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLnRpdGxlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBbGxvd2VkVHlwZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L3R5cGVzYClcclxuICAgICAgLnN1YnNjcmliZSgodHlwZXM6IHN0cmluZ1tdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdHlwZVNldHRpbmcgPSB0aGlzLnNldHRpbmdzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gJ3R5cGUnKTtcclxuICAgICAgICB0eXBlU2V0dGluZy52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHt2LnZhbHVlfShcXFxcLnwkKWApO1xyXG4gICAgICAgICAgY29uc3QgdHlwZXNNYXRjaGVkID0gdHlwZXMuZmlsdGVyKCh2YWx1ZSkgPT4gcmVnZXgudGVzdCh2YWx1ZSkpO1xyXG4gICAgICAgICAgdi5hdmFpbGFibGUgPSB0eXBlc01hdGNoZWQubGVuZ3RoID4gMDtcclxuICAgICAgICAgIGlmICh2LnZhbHVlID09PSAnbGlldXgnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtcclxuICAgICAgICAgICAgICAuLi4obmV3IFNldChcclxuICAgICAgICAgICAgICAgIHR5cGVzTWF0Y2hlZFxyXG4gICAgICAgICAgICAgICAgICAubWFwKCh0KSA9PiB0LnNwbGl0KCcuJykpXHJcbiAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpKVxyXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKCh0KSA9PiB0ICE9PSAnbGlldXgnKVxyXG4gICAgICAgICAgICAgICkgYXMgYW55KVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0UGFyYW1Gcm9tU2V0dGluZyh0eXBlU2V0dGluZywgZmFsc2UpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVJlcXVlc3RQYXJhbXMoXHJcbiAgICB0ZXJtOiBzdHJpbmcsXHJcbiAgICBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9uc1xyXG4gICk6IEh0dHBQYXJhbXMge1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IGFueSA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICBnZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICBiYm94OiB0cnVlLFxyXG4gICAgICAgIGljb246IHRydWUsXHJcbiAgICAgICAgdHlwZTpcclxuICAgICAgICAgICdhZHJlc3Nlcyxjb2Rlcy1wb3N0YXV4LG11bmljaXBhbGl0ZXMsbXJjLHJlZ2FkbWluLGxpZXV4LGVudHJlcHJpc2VzLGJvcm5lcy1zdW1pJ1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLnBhcmFtcyxcclxuICAgICAgdGhpcy5jb21wdXRlT3B0aW9uc1BhcmFtKHRlcm0sIG9wdGlvbnMgfHwge30pLnBhcmFtcyxcclxuICAgICAge1xyXG4gICAgICAgIHE6IHRoaXMuY29tcHV0ZVRlcm0odGVybSksXHJcbiAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zLmxvYyA9PT0gJ3RydWUnKSB7XHJcbiAgICAgIGNvbnN0IFt4TWluLCB5TWluLCB4TWF4LCB5TWF4XSA9IG9wdGlvbnMuZXh0ZW50O1xyXG4gICAgICBxdWVyeVBhcmFtcy5sb2MgPSBgJHt4TWlufSwke3lNaW59OyR7eE1heH0sJHt5TWlufTske3hNYXh9LCR7eU1heH07JHt4TWlufSwke3lNYXh9OyR7eE1pbn0sJHt5TWlufWA7XHJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLmxvYyA9PT0gJ2ZhbHNlJykge1xyXG4gICAgICBkZWxldGUgcXVlcnlQYXJhbXMubG9jO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgvI1tBLVphLXpdKy8udGVzdChxdWVyeVBhcmFtcy5xKSkge1xyXG4gICAgICBxdWVyeVBhcmFtcy50eXBlID0gJ2xpZXV4JztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQocXVlcnlQYXJhbXMpLFxyXG4gICAgICBlbmNvZGVyOiBuZXcgSWdvSHR0cFBhcmFtZXRlckNvZGVjKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0UmVzdWx0cyhyZXNwb25zZTogSUNoZXJjaGVSZXNwb25zZSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10ge1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmZlYXR1cmVzLm1hcCgoZGF0YTogSUNoZXJjaGVEYXRhKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5mb3JtYXRSZXN1bHQodGhpcy5kYXRhVG9SZXN1bHQoZGF0YSwgdGVybSwgcmVzcG9uc2UpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoXHJcbiAgICBkYXRhOiBJQ2hlcmNoZURhdGEsXHJcbiAgICB0ZXJtOiBzdHJpbmcsXHJcbiAgICByZXNwb25zZT86IElDaGVyY2hlUmVzcG9uc2VcclxuICApOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuY29tcHV0ZVByb3BlcnRpZXMoZGF0YSk7XHJcbiAgICBjb25zdCBpZCA9IFt0aGlzLmdldElkKCksIHByb3BlcnRpZXMudHlwZSwgcHJvcGVydGllcy5jb2RlXS5qb2luKCcuJyk7XHJcblxyXG4gICAgY29uc3QgdGl0bGVIdG1sID0gZGF0YS5oaWdobGlnaHQudGl0bGUgfHwgZGF0YS5wcm9wZXJ0aWVzLm5vbTtcclxuICAgIGNvbnN0IHN1YnRpdGxlSHRtbCA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlMlxyXG4gICAgICA/ICcgPHNtYWxsPiAnICsgZGF0YS5oaWdobGlnaHQudGl0bGUyICsgJzwvc21hbGw+J1xyXG4gICAgICA6ICcnO1xyXG4gICAgY29uc3Qgc3VidGl0bGVIdG1sMiA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlM1xyXG4gICAgICA/ICc8YnI+PHNtYWxsPiAnICsgZGF0YS5oaWdobGlnaHQudGl0bGUzICsgJzwvc21hbGw+J1xyXG4gICAgICA6ICcnO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNvdXJjZTogdGhpcyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXHJcbiAgICAgICAgZXh0ZW50OiBkYXRhLmJib3gsXHJcbiAgICAgICAgcHJvcGVydGllcyxcclxuICAgICAgICBtZXRhOiB7XHJcbiAgICAgICAgICBpZCxcclxuICAgICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMubm9tXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBtZXRhOiB7XHJcbiAgICAgICAgZGF0YVR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub20sXHJcbiAgICAgICAgdGl0bGVIdG1sOiB0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwyLFxyXG4gICAgICAgIGljb246IGRhdGEuaWNvbiB8fCAnbWFwLW1hcmtlcicsXHJcbiAgICAgICAgc2NvcmU6IGRhdGEuc2NvcmUgfHwgY29tcHV0ZVRlcm1TaW1pbGFyaXR5KHRlcm0udHJpbSgpLCBkYXRhLnByb3BlcnRpZXMubm9tKSxcclxuICAgICAgICBuZXh0UGFnZTpcclxuICAgICAgICAgIHJlc3BvbnNlLmZlYXR1cmVzLmxlbmd0aCAlICt0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0ID09PSAwICYmXHJcbiAgICAgICAgICArdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlIDwgMTBcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVByb3BlcnRpZXMoZGF0YTogSUNoZXJjaGVEYXRhKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0VXRpbHMucmVtb3ZlS2V5cyhcclxuICAgICAgZGF0YS5wcm9wZXJ0aWVzLFxyXG4gICAgICBJQ2hlcmNoZVNlYXJjaFNvdXJjZS5wcm9wZXJ0aWVzQmxhY2tsaXN0XHJcbiAgICApO1xyXG5cclxuICAgIGlmICghZGF0YS5nZW9tZXRyeSkge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IHR5cGU6IGRhdGEuaW5kZXggfSwgcHJvcGVydGllcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzOiB7XHJcbiAgICAgIEdvb2dsZU1hcHM6IHN0cmluZztcclxuICAgICAgR29vZ2xlU3RyZWV0Vmlldz86IHN0cmluZztcclxuICAgIH0gPSB7XHJcbiAgICAgIEdvb2dsZU1hcHM6ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBnb29nbGVNYXBzO1xyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVNYXBzID0gR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc0Nvb3JkTGluayhcclxuICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIGRhdGEuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUoZGF0YS5nZW9tZXRyeSk7XHJcbiAgICAgIGdvb2dsZU1hcHMgPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzQ29vcmRMaW5rKFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdvb2dsZU1hcHNOb207XHJcbiAgICBpZiAoZGF0YS5pbmRleCA9PT0gJ3JvdXRlcycpIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tICsgJywgJyArIGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5pbmRleCA9PT0gJ211bmljaXBhbGl0ZXMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsICcgKyAndmlsbGUnXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEuaW5kZXggPT09ICdtcmMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgJ21yYysnICsgZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLmluZGV4ID09PSAncmVnYWRtaW4nKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsK1FDJ1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tIHx8IGRhdGEuaGlnaGxpZ2h0LnRpdGxlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzLkdvb2dsZU1hcHMgPVxyXG4gICAgICAnPGEgaHJlZj0nICtcclxuICAgICAgZ29vZ2xlTWFwcyArXHJcbiAgICAgICcgdGFyZ2V0PVwiX2JsYW5rXCI+JyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaEJ5Q29vcmQnKSArXHJcbiAgICAgICc8L2E+IDxiciAvPiA8YSBocmVmPScgK1xyXG4gICAgICBnb29nbGVNYXBzTm9tICtcclxuICAgICAgJyB0YXJnZXQ9XCJfYmxhbmtcIj4nICtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoQnlOYW1lJykgK1xyXG4gICAgICAnPC9hPic7XHJcblxyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVMaW5rc1Byb3BlcnRpZXMuR29vZ2xlU3RyZWV0VmlldyA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZVN0cmVldFZpZXdMaW5rKFxyXG4gICAgICAgIGRhdGEuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvdXRpbmc6IHtcclxuICAgICAgUm91dGU6IHN0cmluZztcclxuICAgIH0gPSB7XHJcbiAgICAgIFJvdXRlOlxyXG4gICAgICAgICc8c3BhbiBjbGFzcz1cInJvdXRpbmdcIj4gPHU+JyArXHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VlUm91dGluZycpICtcclxuICAgICAgICAnPC91PiA8L3NwYW4+J1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcclxuICAgICAgeyB0eXBlOiBkYXRhLmluZGV4IH0sXHJcbiAgICAgIHByb3BlcnRpZXMsXHJcbiAgICAgIGdvb2dsZUxpbmtzUHJvcGVydGllcyxcclxuICAgICAgcm91dGluZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBoYXNodGFnIGZyb20gcXVlcnlcclxuICAgKiBAcGFyYW0gdGVybSBRdWVyeSB3aXRoIGhhc2h0YWdcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVUZXJtKHRlcm06IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBLZWVwIGhhc2h0YWdzIGZvciBcImxpZXV4XCJcclxuICAgIGNvbnN0IGhhc2h0YWdzID0gdGVybS5tYXRjaCgvKCNbQS1aYS16XSspL2cpIHx8IFtdO1xyXG4gICAgbGV0IGtlZXAgPSBmYWxzZTtcclxuICAgIGtlZXAgPSBoYXNodGFncy5zb21lKChoYXNodGFnKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc2h0YWdLZXkgPSBoYXNodGFnLnN1YnN0cmluZygxKTtcclxuICAgICAgcmV0dXJuIHRoaXMuaGFzaHRhZ3NMaWV1eFRvS2VlcC5zb21lKFxyXG4gICAgICAgIChoKSA9PlxyXG4gICAgICAgICAgaFxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpID09PVxyXG4gICAgICAgICAgaGFzaHRhZ0tleVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoIWtlZXApIHtcclxuICAgICAgdGVybSA9IHRlcm0ucmVwbGFjZSgvKCNbQS1aYS16XSspL2csICcnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGVybS5yZXBsYWNlKC9bXlxcd8OALcO/ICFcXC1cXCtcXChcXClcXC5cXC/CvcK8wr4sJyNdKy9nLCAnJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgaGFzaHRhZyB0byBwYXJhbSBpZiB2YWxpZFxyXG4gICAqIEBwYXJhbSB0ZXJtIFF1ZXJ5IHdpdGggaGFzaHRhZ1xyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRleHRTZWFyY2hPcHRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wdXRlT3B0aW9uc1BhcmFtKFxyXG4gICAgdGVybTogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogVGV4dFNlYXJjaE9wdGlvbnNcclxuICApOiBUZXh0U2VhcmNoT3B0aW9ucyB7XHJcbiAgICBjb25zdCBoYXNodGFncyA9IHN1cGVyLmdldEhhc2h0YWdzVmFsaWQodGVybSwgJ3R5cGUnKTtcclxuICAgIGlmIChoYXNodGFncykge1xyXG4gICAgICBvcHRpb25zLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucy5wYXJhbXMgfHwge30sIHtcclxuICAgICAgICB0eXBlOiBoYXNodGFncy5qb2luKCcsJylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSUNoZXJjaGVSZXZlcnNlIHNlYXJjaCBzb3VyY2VcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZSBleHRlbmRzIFNlYXJjaFNvdXJjZVxyXG4gIGltcGxlbWVudHMgUmV2ZXJzZVNlYXJjaCB7XHJcbiAgc3RhdGljIGlkID0gJ2ljaGVyY2hlcmV2ZXJzZSc7XHJcbiAgc3RhdGljIHR5cGUgPSBGRUFUVVJFO1xyXG4gIHN0YXRpYyBwcm9wZXJ0aWVzQmxhY2tsaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICB0aXRsZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZSQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBTZWFyY2hTb3VyY2VPcHRpb25zLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UpO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGVuZ3RoKSB7XHJcbiAgICAgIGlmICghYXV0aFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0QWxsb3dlZFR5cGVzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgdHlwZXMgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMudHlwZVxyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXHJcbiAgICAgICAgOiBbJ2FkcmVzc2VzJywgJ211bmljaXBhbGl0ZXMnLCAnbXJjJywgJ3JlZ2FkbWluJ107XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZVJldmVyc2UubmFtZScsXHJcbiAgICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL2FwaXMvdGVycmFwaScsXHJcbiAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyB0eXBlJyxcclxuICAgICAgICAgIG5hbWU6ICd0eXBlJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmFkZHJlc3MnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYWRyZXNzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FkcmVzc2VzJykgIT09IC0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUucm9hZCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyb3V0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3JvdXRlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBhdmFpbGFibGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZGlzdHJpY3QnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYXJyb25kaXNzZW1lbnRzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhcnJvbmRpc3NlbWVudHMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jaXR5JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ211bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ211bmljaXBhbGl0ZXMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5tcmMnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnbXJjJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtcmMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncmVnYWRtaW4nKSAhPT0gLTFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ3JhZGlvYnV0dG9uJyxcclxuICAgICAgICAgIHRpdGxlOiAncmFkaXVzJyxcclxuICAgICAgICAgIG5hbWU6ICdidWZmZXJJbnB1dCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAwIG0nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogIXRoaXMub3B0aW9ucy5kaXN0YW5jZSB8fCB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDEwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MDAgbScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDUwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDUwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcxIGttJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDEwMDBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMiBrbScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDIwMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSAyMDAwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUga20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA1MDAwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMub3B0aW9ucy5kaXN0YW5jZSA9PT0gNTAwMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIGEgbG9jYXRpb24gYnkgY29vcmRpbmF0ZXNcclxuICAgKiBAcGFyYW0gbG9uTGF0IExvY2F0aW9uIGNvb3JkaW5hdGVzXHJcbiAgICogQHBhcmFtIGRpc3RhbmNlIFNlYXJjaCByYWlkdXMgYXJvdW5kIGxvbkxhdFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdXHJcbiAgICovXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgcmV2ZXJzZVNlYXJjaChcclxuICAgIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcclxuICAgIG9wdGlvbnM/OiBSZXZlcnNlU2VhcmNoT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcHV0ZVJlcXVlc3RQYXJhbXMobG9uTGF0LCBvcHRpb25zIHx8IHt9KTtcclxuICAgIGlmICghcGFyYW1zLmdldCgndHlwZScpLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L2xvY2F0ZWAsIHsgcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFJlc3VsdHMocmVzcG9uc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWxsb3dlZFR5cGVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMuc2VhcmNoVXJsfS90eXBlc2ApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHR5cGVTZXR0aW5nID0gdGhpcy5zZXR0aW5ncy5maW5kKChzKSA9PiBzLm5hbWUgPT09ICd0eXBlJyk7XHJcbiAgICAgICAgdHlwZVNldHRpbmcudmFsdWVzLmZvckVhY2goKHYpID0+IHtcclxuICAgICAgICAgIHYuYXZhaWxhYmxlID0gdHlwZXMuaW5kZXhPZih2LnZhbHVlIGFzIHN0cmluZykgPiAtMTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNldFBhcmFtRnJvbVNldHRpbmcodHlwZVNldHRpbmcsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVSZXF1ZXN0UGFyYW1zKFxyXG4gICAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgb3B0aW9ucz86IFJldmVyc2VTZWFyY2hPcHRpb25zXHJcbiAgKTogSHR0cFBhcmFtcyB7XHJcbiAgICBpZiAob3B0aW9ucy5kaXN0YW5jZSB8fCB0aGlzLm9wdGlvbnMuZGlzdGFuY2UpIHtcclxuICAgICAgb3B0aW9ucy5wYXJhbXMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMucGFyYW1zIHx8IHt9LCB7XHJcbiAgICAgICAgYnVmZmVySW5wdXQ6IG9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbG9jOiBsb25MYXQuam9pbignLCcpLFxyXG4gICAgICAgICAgc29ydDogJ2Rpc3RhbmNlJyxcclxuICAgICAgICAgIGdlb21ldHJ5OiB0cnVlLFxyXG4gICAgICAgICAgaWNvbjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3B0aW9ucy5wYXJhbXMgfHwge30sXHJcbiAgICAgICAgdGhpcy5wYXJhbXNcclxuICAgICAgKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RSZXN1bHRzKFxyXG4gICAgcmVzcG9uc2U6IElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlXHJcbiAgKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10ge1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmZlYXR1cmVzLm1hcCgoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhVG9SZXN1bHQoZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3VidGl0bGUoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSkge1xyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBsZXQgc3VidGl0bGUgPSAnJztcclxuICAgIHN3aXRjaCAoZGF0YS5wcm9wZXJ0aWVzLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYXJyb25kaXNzZW1lbnRzJzpcclxuICAgICAgICBzdWJ0aXRsZSA9IGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGUgKyAnIChBcnJvbmRpc3NlbWVudCknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnN0IHR5cGVTZXR0aW5nID0gdGhpcy5zZXR0aW5ncy5maW5kKChzKSA9PiBzLm5hbWUgPT09ICd0eXBlJyk7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IHR5cGVTZXR0aW5nLnZhbHVlcy5maW5kKFxyXG4gICAgICAgICAgKHQpID0+IHQudmFsdWUgPT09IGRhdGEucHJvcGVydGllcy50eXBlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgc3VidGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0eXBlLnRpdGxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VidGl0bGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFUb1Jlc3VsdChkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcclxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmNvbXB1dGVQcm9wZXJ0aWVzKGRhdGEpO1xyXG4gICAgY29uc3QgZXh0ZW50ID0gdGhpcy5jb21wdXRlRXh0ZW50KGRhdGEpO1xyXG4gICAgY29uc3QgaWQgPSBbdGhpcy5nZXRJZCgpLCBwcm9wZXJ0aWVzLnR5cGUsIHByb3BlcnRpZXMuY29kZV0uam9pbignLicpO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlSHRtbCA9IGRhdGEucHJvcGVydGllcy5ub207XHJcbiAgICBjb25zdCBzdWJ0aXRsZUh0bWwgPSAnIDxzbWFsbD4gJyArIHRoaXMuZ2V0U3VidGl0bGUoZGF0YSkgKyAnPC9zbWFsbD4nO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNvdXJjZTogdGhpcyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXHJcbiAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgIHByb3BlcnRpZXMsXHJcbiAgICAgICAgbWV0YToge1xyXG4gICAgICAgICAgaWQsXHJcbiAgICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbWV0YToge1xyXG4gICAgICAgIGRhdGFUeXBlOiBGRUFUVVJFLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMubm9tLFxyXG4gICAgICAgIHRpdGxlSHRtbDogdGl0bGVIdG1sICsgc3VidGl0bGVIdG1sLFxyXG4gICAgICAgIGljb246IGRhdGEuaWNvbiB8fCAnbWFwLW1hcmtlcicsXHJcbiAgICAgICAgcG9pbnRlclN1bW1hcnlUaXRsZTogdGhpcy5nZXRTdWJ0aXRsZShkYXRhKSsgJzogJyArIGRhdGEucHJvcGVydGllcy5ub21cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVByb3BlcnRpZXMoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdFV0aWxzLnJlbW92ZUtleXMoXHJcbiAgICAgIGRhdGEucHJvcGVydGllcyxcclxuICAgICAgSUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlLnByb3BlcnRpZXNCbGFja2xpc3RcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgcm91dGluZzoge1xyXG4gICAgICBSb3V0ZTogc3RyaW5nO1xyXG4gICAgfSA9IHtcclxuICAgICAgUm91dGU6XHJcbiAgICAgICAgJzxzcGFuIGNsYXNzPVwicm91dGluZ1wiPiA8dT4nICtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWVSb3V0aW5nJykgK1xyXG4gICAgICAgICc8L3U+IDwvc3Bhbj4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHByb3BlcnRpZXMsIHJvdXRpbmcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlRXh0ZW50KFxyXG4gICAgZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YVxyXG4gICk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBkYXRhLmJib3hcclxuICAgICAgPyBbZGF0YS5iYm94WzBdLCBkYXRhLmJib3hbMl0sIGRhdGEuYmJveFsxXSwgZGF0YS5iYm94WzNdXVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
|