@igo2/geo 1.12.1 → 1.13.0-alpha.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/assets/icons/cross_black_18px.svg +88 -88
- package/assets/icons/place_blue_36px.svg +55 -55
- package/assets/icons/place_green_36px.svg +55 -55
- package/assets/icons/place_red_36px.svg +55 -55
- package/assets/icons/place_yellow_36px.svg +55 -55
- package/{esm2015/igo2-geo.js → esm2020/igo2-geo.mjs} +0 -0
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +299 -0
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +268 -0
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +244 -0
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +80 -0
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +209 -0
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +79 -0
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +217 -0
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +95 -0
- package/esm2020/lib/catalog/catalog.module.mjs +53 -0
- package/esm2020/lib/catalog/index.mjs +5 -0
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +95 -0
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +16 -0
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +2 -0
- package/esm2020/lib/catalog/shared/catalog.service.mjs +606 -0
- package/esm2020/lib/catalog/shared/index.mjs +5 -0
- package/esm2020/lib/datasource/datasource.module.mjs +22 -0
- package/esm2020/lib/datasource/index.mjs +3 -0
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +426 -0
- package/esm2020/lib/datasource/shared/datasource.service.mjs +236 -0
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +145 -0
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +3 -0
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +29 -0
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +57 -0
- package/esm2020/lib/datasource/shared/datasources/index.mjs +36 -0
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +49 -0
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +54 -0
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +74 -0
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +152 -0
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -0
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +207 -0
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
- package/esm2020/lib/datasource/shared/index.mjs +5 -0
- package/esm2020/lib/datasource/shared/options/index.mjs +5 -0
- package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +2 -0
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +15 -0
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +81 -0
- package/esm2020/lib/datasource/shared/options/options.service.mjs +3 -0
- package/esm2020/lib/datasource/utils/esri-style-generator.mjs +357 -0
- package/esm2020/lib/datasource/utils/index.mjs +3 -0
- package/esm2020/lib/datasource/utils/tilegrid.mjs +20 -0
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +224 -0
- package/esm2020/lib/directions/directions-buttons/index.mjs +2 -0
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +290 -0
- package/esm2020/lib/directions/directions-inputs/index.mjs +2 -0
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +196 -0
- package/esm2020/lib/directions/directions-results/index.mjs +2 -0
- package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +3 -0
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
- package/esm2020/lib/directions/directions-sources/index.mjs +5 -0
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +99 -0
- package/esm2020/lib/directions/directions.component.mjs +311 -0
- package/esm2020/lib/directions/directions.module.mjs +102 -0
- package/esm2020/lib/directions/index.mjs +7 -0
- package/esm2020/lib/directions/shared/directions-source.service.mjs +17 -0
- package/esm2020/lib/directions/shared/directions.enum.mjs +28 -0
- package/esm2020/lib/directions/shared/directions.interface.mjs +2 -0
- package/esm2020/lib/directions/shared/directions.service.mjs +29 -0
- package/esm2020/lib/directions/shared/directions.utils.mjs +510 -0
- package/esm2020/lib/directions/shared/index.mjs +6 -0
- package/esm2020/lib/directions/shared/store.mjs +24 -0
- package/esm2020/lib/download/download-button/download-button.component.mjs +61 -0
- package/esm2020/lib/download/download-button/index.mjs +2 -0
- package/esm2020/lib/download/download.module.mjs +42 -0
- package/esm2020/lib/download/index.mjs +3 -0
- package/esm2020/lib/download/shared/download.interface.mjs +2 -0
- package/esm2020/lib/download/shared/download.service.mjs +65 -0
- package/esm2020/lib/download/shared/index.mjs +3 -0
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +61 -0
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
- package/esm2020/lib/draw/draw/draw.component.mjs +714 -0
- package/esm2020/lib/draw/draw/draw.module.mjs +100 -0
- package/esm2020/lib/draw/drawingTool.module.mjs +20 -0
- package/esm2020/lib/draw/index.mjs +3 -0
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +27 -0
- package/esm2020/lib/draw/shared/draw-style.service.mjs +173 -0
- package/esm2020/lib/draw/shared/draw.enum.mjs +24 -0
- package/esm2020/lib/draw/shared/draw.interface.mjs +2 -0
- package/esm2020/lib/draw/shared/draw.utils.mjs +104 -0
- package/esm2020/lib/draw/shared/index.mjs +6 -0
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +377 -0
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +54 -0
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +48 -0
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +112 -0
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +34 -0
- package/esm2020/lib/feature/feature.module.mjs +28 -0
- package/esm2020/lib/feature/index.mjs +4 -0
- package/esm2020/lib/feature/shared/feature.enums.mjs +9 -0
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +2 -0
- package/esm2020/lib/feature/shared/feature.utils.mjs +348 -0
- package/esm2020/lib/feature/shared/index.mjs +7 -0
- package/esm2020/lib/feature/shared/store.mjs +112 -0
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +113 -0
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +94 -0
- package/esm2020/lib/feature/shared/strategies/index.mjs +6 -0
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +104 -0
- package/esm2020/lib/feature/shared/strategies/loading.mjs +133 -0
- package/esm2020/lib/feature/shared/strategies/selection.mjs +370 -0
- package/esm2020/lib/feature/shared/strategies.utils.mjs +37 -0
- package/esm2020/lib/filter/filter.module.mjs +289 -0
- package/esm2020/lib/filter/index.mjs +16 -0
- package/esm2020/lib/filter/ogc-filter-button/index.mjs +2 -0
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +140 -0
- package/esm2020/lib/filter/ogc-filter-form/index.mjs +2 -0
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +645 -0
- package/esm2020/lib/filter/ogc-filter-selection/index.mjs +2 -0
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1302 -0
- package/esm2020/lib/filter/ogc-filter-time/index.mjs +3 -0
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +177 -0
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +871 -0
- package/esm2020/lib/filter/ogc-filterable-form/index.mjs +2 -0
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +59 -0
- package/esm2020/lib/filter/ogc-filterable-item/index.mjs +2 -0
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +302 -0
- package/esm2020/lib/filter/ogc-filterable-list/index.mjs +3 -0
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +31 -0
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +31 -0
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
- package/esm2020/lib/filter/shared/index.mjs +12 -0
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +30 -0
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +2 -0
- package/esm2020/lib/filter/shared/ogc-filter.mjs +692 -0
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +46 -0
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +23 -0
- package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +2 -0
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +269 -0
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +13 -0
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +2 -0
- package/esm2020/lib/filter/shared/time-filter.service.mjs +107 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1076 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +208 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +144 -0
- package/esm2020/lib/filter/time-filter-button/index.mjs +2 -0
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +78 -0
- package/esm2020/lib/filter/time-filter-form/index.mjs +2 -0
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +734 -0
- package/esm2020/lib/filter/time-filter-item/index.mjs +2 -0
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +119 -0
- package/esm2020/lib/filter/time-filter-list/index.mjs +3 -0
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +31 -0
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +39 -0
- package/esm2020/lib/geo.module.mjs +102 -0
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +511 -0
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +189 -0
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +64 -0
- package/esm2020/lib/geometry/geometry.module.mjs +27 -0
- package/esm2020/lib/geometry/index.mjs +4 -0
- package/esm2020/lib/geometry/shared/controls/draw.mjs +271 -0
- package/esm2020/lib/geometry/shared/controls/index.mjs +4 -0
- package/esm2020/lib/geometry/shared/controls/modify.mjs +521 -0
- package/esm2020/lib/geometry/shared/controls/slice.mjs +177 -0
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +26 -0
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +2 -0
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +122 -0
- package/esm2020/lib/geometry/shared/index.mjs +5 -0
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +64 -0
- package/esm2020/lib/import-export/export-button/index.mjs +2 -0
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +1190 -0
- package/esm2020/lib/import-export/import-export/index.mjs +2 -0
- package/esm2020/lib/import-export/import-export.module.mjs +93 -0
- package/esm2020/lib/import-export/index.mjs +5 -0
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +135 -0
- package/esm2020/lib/import-export/shared/export.errors.mjs +15 -0
- package/esm2020/lib/import-export/shared/export.interface.mjs +2 -0
- package/esm2020/lib/import-export/shared/export.service.mjs +195 -0
- package/esm2020/lib/import-export/shared/export.type.mjs +4 -0
- package/esm2020/lib/import-export/shared/export.utils.mjs +55 -0
- package/esm2020/lib/import-export/shared/import.errors.mjs +39 -0
- package/esm2020/lib/import-export/shared/import.interface.mjs +2 -0
- package/esm2020/lib/import-export/shared/import.service.mjs +195 -0
- package/esm2020/lib/import-export/shared/import.utils.mjs +234 -0
- package/esm2020/lib/import-export/shared/index.mjs +11 -0
- package/esm2020/lib/import-export/style-list/index.mjs +5 -0
- package/esm2020/lib/import-export/style-list/style-list.interface.mjs +2 -0
- package/esm2020/lib/import-export/style-list/style-list.module.mjs +23 -0
- package/esm2020/lib/import-export/style-list/style-list.provider.mjs +21 -0
- package/esm2020/lib/import-export/style-list/style-list.service.mjs +51 -0
- package/esm2020/lib/layer/index.mjs +10 -0
- package/esm2020/lib/layer/layer-item/index.mjs +2 -0
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +300 -0
- package/esm2020/lib/layer/layer-legend/index.mjs +2 -0
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +382 -0
- package/esm2020/lib/layer/layer-legend-item/index.mjs +2 -0
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +84 -0
- package/esm2020/lib/layer/layer-legend-list/index.mjs +3 -0
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +48 -0
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +195 -0
- package/esm2020/lib/layer/layer-list/index.mjs +4 -0
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +59 -0
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1024 -0
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +19 -0
- package/esm2020/lib/layer/layer-list-tool/index.mjs +5 -0
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +165 -0
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
- package/esm2020/lib/layer/layer.module.mjs +173 -0
- package/esm2020/lib/layer/shared/clusterParam.mjs +2 -0
- package/esm2020/lib/layer/shared/index.mjs +7 -0
- package/esm2020/lib/layer/shared/layer.enums.mjs +2 -0
- package/esm2020/lib/layer/shared/layer.service.mjs +186 -0
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +68 -0
- package/esm2020/lib/layer/shared/layers/index.mjs +13 -0
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -0
- package/esm2020/lib/layer/shared/layers/layer.mjs +170 -0
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +47 -0
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +376 -0
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +104 -0
- package/esm2020/lib/layer/shared/style.service.mjs +356 -0
- package/esm2020/lib/layer/shared/vector-style.interface.mjs +2 -0
- package/esm2020/lib/layer/track-feature-button/index.mjs +2 -0
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +59 -0
- package/esm2020/lib/layer/utils/image-watcher.mjs +62 -0
- package/esm2020/lib/layer/utils/index.mjs +7 -0
- package/esm2020/lib/layer/utils/layer.utils.mjs +10 -0
- package/esm2020/lib/layer/utils/layerSync-watcher.mjs +242 -0
- package/esm2020/lib/layer/utils/outputLegend.mjs +27 -0
- package/esm2020/lib/layer/utils/tile-watcher.mjs +50 -0
- package/esm2020/lib/layer/utils/vector-watcher.mjs +48 -0
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +97 -0
- package/esm2020/lib/map/baselayers-switcher/index.mjs +3 -0
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +133 -0
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +76 -0
- package/esm2020/lib/map/geolocate-button/index.mjs +2 -0
- package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +63 -0
- package/{esm2015/lib/map/home-extent-button/index.js → esm2020/lib/map/home-extent-button/index.mjs} +0 -0
- package/esm2020/lib/map/index.mjs +14 -0
- package/esm2020/lib/map/info-section/index.mjs +2 -0
- package/esm2020/lib/map/info-section/info-section.component.mjs +30 -0
- package/esm2020/lib/map/map-browser/index.mjs +2 -0
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +66 -0
- package/esm2020/lib/map/map-center/index.mjs +2 -0
- package/esm2020/lib/map/map-center/map-center.component.mjs +50 -0
- package/esm2020/lib/map/map.module.mjs +127 -0
- package/esm2020/lib/map/menu-button/index.mjs +2 -0
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +62 -0
- package/esm2020/lib/map/offline-button/index.mjs +2 -0
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +76 -0
- package/esm2020/lib/map/rotation-button/index.mjs +2 -0
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +91 -0
- package/esm2020/lib/map/shared/controllers/controller.mjs +42 -0
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +308 -0
- package/esm2020/lib/map/shared/controllers/index.mjs +4 -0
- package/esm2020/lib/map/shared/controllers/view.mjs +342 -0
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +506 -0
- package/esm2020/lib/map/shared/index.mjs +13 -0
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +107 -0
- package/esm2020/lib/map/shared/map.enums.mjs +6 -0
- package/esm2020/lib/map/shared/map.interface.mjs +2 -0
- package/esm2020/lib/map/shared/map.mjs +417 -0
- package/esm2020/lib/map/shared/map.service.mjs +29 -0
- package/esm2020/lib/map/shared/map.utils.mjs +459 -0
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +163 -0
- package/esm2020/lib/map/shared/projection.interfaces.mjs +2 -0
- package/esm2020/lib/map/shared/projection.service.mjs +65 -0
- package/esm2020/lib/map/shared/projection.utils.mjs +64 -0
- package/esm2020/lib/map/swipe-control/index.mjs +2 -0
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +193 -0
- package/esm2020/lib/map/utils/layer-watcher.mjs +58 -0
- package/esm2020/lib/map/wake-lock-button/index.mjs +2 -0
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +114 -0
- package/esm2020/lib/map/zoom-button/index.mjs +2 -0
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +40 -0
- package/esm2020/lib/measure/index.mjs +4 -0
- package/esm2020/lib/measure/measure.module.mjs +20 -0
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +37 -0
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +180 -0
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +140 -0
- package/esm2020/lib/measure/measurer/measurer.component.mjs +1042 -0
- package/esm2020/lib/measure/measurer/measurer.module.mjs +94 -0
- package/esm2020/lib/measure/shared/index.mjs +4 -0
- package/esm2020/lib/measure/shared/measure.enum.mjs +37 -0
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +2 -0
- package/esm2020/lib/measure/shared/measure.utils.mjs +489 -0
- package/esm2020/lib/metadata/index.mjs +3 -0
- package/esm2020/lib/metadata/metadata-button/index.mjs +2 -0
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -0
- package/esm2020/lib/metadata/metadata.module.mjs +55 -0
- package/esm2020/lib/metadata/shared/index.mjs +3 -0
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +2 -0
- package/esm2020/lib/metadata/shared/metadata.service.mjs +19 -0
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +6 -0
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +2 -0
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +161 -0
- package/esm2020/lib/offline/geoDB/index.mjs +4 -0
- package/esm2020/lib/offline/index.mjs +3 -0
- package/esm2020/lib/offline/shared/geo-network.service.mjs +66 -0
- package/esm2020/lib/offline/shared/index.mjs +2 -0
- package/esm2020/lib/overlay/index.mjs +2 -0
- package/esm2020/lib/overlay/overlay.module.mjs +23 -0
- package/esm2020/lib/overlay/shared/index.mjs +7 -0
- package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +69 -0
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +33 -0
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +8 -0
- package/esm2020/lib/overlay/shared/overlay.mjs +130 -0
- package/esm2020/lib/overlay/shared/overlay.service.mjs +27 -0
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +103 -0
- package/esm2020/lib/print/index.mjs +4 -0
- package/esm2020/lib/print/print/print.component.mjs +123 -0
- package/esm2020/lib/print/print-form/index.mjs +2 -0
- package/esm2020/lib/print/print-form/print-form.component.mjs +405 -0
- package/esm2020/lib/print/print.module.mjs +65 -0
- package/esm2020/lib/print/shared/index.mjs +4 -0
- package/esm2020/lib/print/shared/print.interface.mjs +2 -0
- package/esm2020/lib/print/shared/print.service.mjs +807 -0
- package/esm2020/lib/print/shared/print.type.mjs +30 -0
- package/esm2020/lib/query/index.mjs +2 -0
- package/esm2020/lib/query/query.module.mjs +29 -0
- package/esm2020/lib/query/shared/index.mjs +7 -0
- package/esm2020/lib/query/shared/query-search-source.mjs +35 -0
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +22 -0
- package/esm2020/lib/query/shared/query.directive.mjs +261 -0
- package/esm2020/lib/query/shared/query.enums.mjs +30 -0
- package/esm2020/lib/query/shared/query.interfaces.mjs +2 -0
- package/esm2020/lib/query/shared/query.service.mjs +613 -0
- package/esm2020/lib/query/shared/query.utils.mjs +37 -0
- package/esm2020/lib/search/index.mjs +12 -0
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +489 -0
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +75 -0
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +35 -0
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +193 -0
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -0
- package/esm2020/lib/search/search-results/search-results.component.mjs +331 -0
- package/esm2020/lib/search/search-results/search-results.module.mjs +77 -0
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +123 -0
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +56 -0
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +418 -0
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +60 -0
- package/esm2020/lib/search/search.module.mjs +67 -0
- package/esm2020/lib/search/shared/index.mjs +9 -0
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +322 -0
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +20 -0
- package/esm2020/lib/search/shared/search-source.service.mjs +47 -0
- package/esm2020/lib/search/shared/search.enums.mjs +4 -0
- package/esm2020/lib/search/shared/search.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/search.service.mjs +118 -0
- package/esm2020/lib/search/shared/search.utils.mjs +78 -0
- package/esm2020/lib/search/shared/sources/cadastre.mjs +126 -0
- package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +23 -0
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/coordinates.mjs +147 -0
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +40 -0
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/icherche.mjs +755 -0
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +66 -0
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -0
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +40 -0
- package/esm2020/lib/search/shared/sources/index.mjs +20 -0
- package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/nominatim.mjs +253 -0
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +23 -0
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/source.mjs +179 -0
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +425 -0
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
- package/esm2020/lib/toast/index.mjs +2 -0
- package/esm2020/lib/toast/toast.component.mjs +113 -0
- package/esm2020/lib/toast/toast.module.mjs +45 -0
- package/esm2020/lib/utils/commonVectorStyle.interface.mjs +2 -0
- package/esm2020/lib/utils/commonVectorStyle.mjs +75 -0
- package/esm2020/lib/utils/googleLinks.mjs +13 -0
- package/esm2020/lib/utils/id-generator.mjs +110 -0
- package/esm2020/lib/utils/index.mjs +6 -0
- package/esm2020/lib/utils/osmLinks.mjs +10 -0
- package/esm2020/lib/wkt/index.mjs +2 -0
- package/esm2020/lib/wkt/shared/index.mjs +2 -0
- package/esm2020/lib/wkt/shared/wkt.service.mjs +239 -0
- package/esm2020/lib/wkt/wkt.module.mjs +22 -0
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +48 -0
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +3 -0
- package/esm2020/lib/workspace/index.mjs +8 -0
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +278 -0
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +642 -0
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +35 -0
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +150 -0
- package/esm2020/lib/workspace/shared/index.mjs +8 -0
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +35 -0
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +150 -0
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +261 -0
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +24 -0
- package/esm2020/lib/workspace/widgets/index.mjs +4 -0
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +47 -0
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +36 -0
- package/esm2020/lib/workspace/widgets/widgets.mjs +15 -0
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +133 -0
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +28 -0
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +113 -0
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +28 -0
- package/esm2020/lib/workspace/workspace.module.mjs +62 -0
- package/esm2020/public_api.mjs +55 -0
- package/fesm2015/igo2-geo.mjs +42904 -0
- package/fesm2015/igo2-geo.mjs.map +1 -0
- package/fesm2020/igo2-geo.mjs +41183 -0
- package/fesm2020/igo2-geo.mjs.map +1 -0
- package/{igo2-geo.d.ts → index.d.ts} +0 -0
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +1 -1
- package/lib/download/download-button/download-button.component.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +4 -4
- package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
- package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
- package/lib/feature/shared/feature.interfaces.d.ts +2 -2
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +4 -4
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -6
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +5 -5
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +4 -4
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +1 -1
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +5 -5
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
- package/lib/map/info-section/info-section.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +1 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
- package/lib/map/shared/mapOffline.directive.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +1 -1
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
- package/lib/overlay/shared/overlay.directive.d.ts +1 -1
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +17 -17
- package/lib/print/shared/print.service.d.ts +6 -1
- package/lib/query/shared/query.directive.d.ts +1 -1
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +1 -1
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/toast/toast.component.d.ts +1 -1
- package/lib/wkt/shared/wkt.service.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/ngcc.config.js +3 -3
- package/package.json +32 -19
- package/style/geo.theming.scss +12 -12
- package/bundles/igo2-geo.umd.js +0 -47639
- package/bundles/igo2-geo.umd.js.map +0 -1
- package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +0 -305
- package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +0 -274
- package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +0 -248
- package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +0 -82
- package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +0 -235
- package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +0 -85
- package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +0 -224
- package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +0 -97
- package/esm2015/lib/catalog/catalog.module.js +0 -55
- package/esm2015/lib/catalog/index.js +0 -5
- package/esm2015/lib/catalog/shared/catalog.abstract.js +0 -95
- package/esm2015/lib/catalog/shared/catalog.enum.js +0 -16
- package/esm2015/lib/catalog/shared/catalog.interface.js +0 -2
- package/esm2015/lib/catalog/shared/catalog.service.js +0 -606
- package/esm2015/lib/catalog/shared/index.js +0 -5
- package/esm2015/lib/datasource/datasource.module.js +0 -22
- package/esm2015/lib/datasource/index.js +0 -3
- package/esm2015/lib/datasource/shared/capabilities.service.js +0 -427
- package/esm2015/lib/datasource/shared/datasource.service.js +0 -236
- package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/any-datasource.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +0 -145
- package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +0 -109
- package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +0 -15
- package/esm2015/lib/datasource/shared/datasources/data.service.js +0 -3
- package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/datasource.js +0 -29
- package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +0 -43
- package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +0 -57
- package/esm2015/lib/datasource/shared/datasources/index.js +0 -36
- package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +0 -28
- package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +0 -12
- package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +0 -49
- package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +0 -15
- package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +0 -54
- package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +0 -74
- package/esm2015/lib/datasource/shared/datasources/wfs.service.js +0 -153
- package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +0 -205
- package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +0 -207
- package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +0 -16
- package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +0 -2
- package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +0 -9
- package/esm2015/lib/datasource/shared/index.js +0 -5
- package/esm2015/lib/datasource/shared/options/index.js +0 -5
- package/esm2015/lib/datasource/shared/options/options-api.interface.js +0 -2
- package/esm2015/lib/datasource/shared/options/options-api.providers.js +0 -15
- package/esm2015/lib/datasource/shared/options/options-api.service.js +0 -81
- package/esm2015/lib/datasource/shared/options/options.service.js +0 -3
- package/esm2015/lib/datasource/utils/esri-style-generator.js +0 -357
- package/esm2015/lib/datasource/utils/index.js +0 -3
- package/esm2015/lib/datasource/utils/tilegrid.js +0 -20
- package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +0 -229
- package/esm2015/lib/directions/directions-buttons/index.js +0 -2
- package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +0 -300
- package/esm2015/lib/directions/directions-inputs/index.js +0 -2
- package/esm2015/lib/directions/directions-results/directions-results.component.js +0 -204
- package/esm2015/lib/directions/directions-results/index.js +0 -2
- package/esm2015/lib/directions/directions-sources/directions-source.interface.js +0 -2
- package/esm2015/lib/directions/directions-sources/directions-source.js +0 -3
- package/esm2015/lib/directions/directions-sources/directions-source.provider.js +0 -16
- package/esm2015/lib/directions/directions-sources/index.js +0 -5
- package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +0 -99
- package/esm2015/lib/directions/directions.component.js +0 -316
- package/esm2015/lib/directions/directions.module.js +0 -104
- package/esm2015/lib/directions/index.js +0 -7
- package/esm2015/lib/directions/shared/directions-source.service.js +0 -17
- package/esm2015/lib/directions/shared/directions.enum.js +0 -28
- package/esm2015/lib/directions/shared/directions.interface.js +0 -2
- package/esm2015/lib/directions/shared/directions.service.js +0 -29
- package/esm2015/lib/directions/shared/directions.utils.js +0 -510
- package/esm2015/lib/directions/shared/index.js +0 -6
- package/esm2015/lib/directions/shared/store.js +0 -24
- package/esm2015/lib/download/download-button/download-button.component.js +0 -66
- package/esm2015/lib/download/download-button/index.js +0 -2
- package/esm2015/lib/download/download.module.js +0 -44
- package/esm2015/lib/download/index.js +0 -3
- package/esm2015/lib/download/shared/download.interface.js +0 -2
- package/esm2015/lib/download/shared/download.service.js +0 -65
- package/esm2015/lib/download/shared/index.js +0 -3
- package/esm2015/lib/draw/draw/draw-popup.component.js +0 -69
- package/esm2015/lib/draw/draw/draw-shorcuts.component.js +0 -64
- package/esm2015/lib/draw/draw/draw.component.js +0 -745
- package/esm2015/lib/draw/draw/draw.module.js +0 -102
- package/esm2015/lib/draw/drawingTool.module.js +0 -20
- package/esm2015/lib/draw/index.js +0 -3
- package/esm2015/lib/draw/shared/draw-icon.service.js +0 -27
- package/esm2015/lib/draw/shared/draw-style.service.js +0 -173
- package/esm2015/lib/draw/shared/draw.enum.js +0 -24
- package/esm2015/lib/draw/shared/draw.interface.js +0 -2
- package/esm2015/lib/draw/shared/draw.utils.js +0 -104
- package/esm2015/lib/draw/shared/index.js +0 -6
- package/esm2015/lib/feature/feature-details/feature-details.component.js +0 -393
- package/esm2015/lib/feature/feature-details/feature-details.directive.js +0 -54
- package/esm2015/lib/feature/feature-details/feature-details.module.js +0 -50
- package/esm2015/lib/feature/feature-form/feature-form.component.js +0 -117
- package/esm2015/lib/feature/feature-form/feature-form.module.js +0 -36
- package/esm2015/lib/feature/feature.module.js +0 -30
- package/esm2015/lib/feature/index.js +0 -4
- package/esm2015/lib/feature/shared/feature.enums.js +0 -9
- package/esm2015/lib/feature/shared/feature.interfaces.js +0 -2
- package/esm2015/lib/feature/shared/feature.utils.js +0 -348
- package/esm2015/lib/feature/shared/index.js +0 -7
- package/esm2015/lib/feature/shared/store.js +0 -112
- package/esm2015/lib/feature/shared/strategies/in-map-extent.js +0 -114
- package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +0 -94
- package/esm2015/lib/feature/shared/strategies/index.js +0 -6
- package/esm2015/lib/feature/shared/strategies/loading-layer.js +0 -104
- package/esm2015/lib/feature/shared/strategies/loading.js +0 -133
- package/esm2015/lib/feature/shared/strategies/selection.js +0 -370
- package/esm2015/lib/feature/shared/strategies.utils.js +0 -37
- package/esm2015/lib/filter/filter.module.js +0 -290
- package/esm2015/lib/filter/index.js +0 -16
- package/esm2015/lib/filter/ogc-filter-button/index.js +0 -2
- package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +0 -161
- package/esm2015/lib/filter/ogc-filter-form/index.js +0 -2
- package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +0 -657
- package/esm2015/lib/filter/ogc-filter-selection/index.js +0 -2
- package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +0 -1355
- package/esm2015/lib/filter/ogc-filter-time/index.js +0 -3
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +0 -185
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +0 -898
- package/esm2015/lib/filter/ogc-filterable-form/index.js +0 -2
- package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +0 -62
- package/esm2015/lib/filter/ogc-filterable-item/index.js +0 -2
- package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +0 -307
- package/esm2015/lib/filter/ogc-filterable-list/index.js +0 -3
- package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +0 -31
- package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +0 -35
- package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +0 -55
- package/esm2015/lib/filter/shared/index.js +0 -12
- package/esm2015/lib/filter/shared/ogc-filter-time.service.js +0 -73
- package/esm2015/lib/filter/shared/ogc-filter.enum.js +0 -30
- package/esm2015/lib/filter/shared/ogc-filter.interface.js +0 -2
- package/esm2015/lib/filter/shared/ogc-filter.js +0 -693
- package/esm2015/lib/filter/shared/ogc-filter.service.js +0 -46
- package/esm2015/lib/filter/shared/spatial-filter.enum.js +0 -23
- package/esm2015/lib/filter/shared/spatial-filter.interface.js +0 -2
- package/esm2015/lib/filter/shared/spatial-filter.service.js +0 -269
- package/esm2015/lib/filter/shared/time-filter.enum.js +0 -13
- package/esm2015/lib/filter/shared/time-filter.interface.js +0 -2
- package/esm2015/lib/filter/shared/time-filter.service.js +0 -107
- package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +0 -2
- package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +0 -1108
- package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +0 -2
- package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +0 -224
- package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +0 -2
- package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +0 -157
- package/esm2015/lib/filter/time-filter-button/index.js +0 -2
- package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +0 -83
- package/esm2015/lib/filter/time-filter-form/index.js +0 -2
- package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +0 -772
- package/esm2015/lib/filter/time-filter-item/index.js +0 -2
- package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +0 -126
- package/esm2015/lib/filter/time-filter-list/index.js +0 -3
- package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +0 -31
- package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +0 -43
- package/esm2015/lib/geo.module.js +0 -102
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +0 -515
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +0 -199
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +0 -66
- package/esm2015/lib/geometry/geometry.module.js +0 -29
- package/esm2015/lib/geometry/index.js +0 -4
- package/esm2015/lib/geometry/shared/controls/draw.js +0 -271
- package/esm2015/lib/geometry/shared/controls/index.js +0 -4
- package/esm2015/lib/geometry/shared/controls/modify.js +0 -521
- package/esm2015/lib/geometry/shared/controls/slice.js +0 -177
- package/esm2015/lib/geometry/shared/geometry.errors.js +0 -26
- package/esm2015/lib/geometry/shared/geometry.interfaces.js +0 -2
- package/esm2015/lib/geometry/shared/geometry.utils.js +0 -122
- package/esm2015/lib/geometry/shared/index.js +0 -5
- package/esm2015/lib/import-export/export-button/export-button.component.js +0 -70
- package/esm2015/lib/import-export/export-button/index.js +0 -2
- package/esm2015/lib/import-export/import-export/import-export.component.js +0 -1238
- package/esm2015/lib/import-export/import-export/index.js +0 -2
- package/esm2015/lib/import-export/import-export.module.js +0 -95
- package/esm2015/lib/import-export/index.js +0 -5
- package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +0 -136
- package/esm2015/lib/import-export/shared/export.errors.js +0 -15
- package/esm2015/lib/import-export/shared/export.interface.js +0 -2
- package/esm2015/lib/import-export/shared/export.service.js +0 -195
- package/esm2015/lib/import-export/shared/export.type.js +0 -4
- package/esm2015/lib/import-export/shared/export.utils.js +0 -55
- package/esm2015/lib/import-export/shared/import.errors.js +0 -39
- package/esm2015/lib/import-export/shared/import.interface.js +0 -2
- package/esm2015/lib/import-export/shared/import.service.js +0 -195
- package/esm2015/lib/import-export/shared/import.utils.js +0 -234
- package/esm2015/lib/import-export/shared/index.js +0 -11
- package/esm2015/lib/import-export/style-list/index.js +0 -5
- package/esm2015/lib/import-export/style-list/style-list.interface.js +0 -2
- package/esm2015/lib/import-export/style-list/style-list.module.js +0 -23
- package/esm2015/lib/import-export/style-list/style-list.provider.js +0 -21
- package/esm2015/lib/import-export/style-list/style-list.service.js +0 -51
- package/esm2015/lib/layer/index.js +0 -10
- package/esm2015/lib/layer/layer-item/index.js +0 -2
- package/esm2015/lib/layer/layer-item/layer-item.component.js +0 -305
- package/esm2015/lib/layer/layer-legend/index.js +0 -2
- package/esm2015/lib/layer/layer-legend/layer-legend.component.js +0 -395
- package/esm2015/lib/layer/layer-legend-item/index.js +0 -2
- package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +0 -91
- package/esm2015/lib/layer/layer-legend-list/index.js +0 -3
- package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +0 -48
- package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +0 -200
- package/esm2015/lib/layer/layer-list/index.js +0 -4
- package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +0 -59
- package/esm2015/lib/layer/layer-list/layer-list.component.js +0 -1043
- package/esm2015/lib/layer/layer-list/layer-list.enum.js +0 -19
- package/esm2015/lib/layer/layer-list-tool/index.js +0 -5
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +0 -176
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +0 -7
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +0 -2
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +0 -22
- package/esm2015/lib/layer/layer.module.js +0 -174
- package/esm2015/lib/layer/shared/clusterParam.js +0 -2
- package/esm2015/lib/layer/shared/index.js +0 -7
- package/esm2015/lib/layer/shared/layer.enums.js +0 -2
- package/esm2015/lib/layer/shared/layer.service.js +0 -186
- package/esm2015/lib/layer/shared/layers/any-layer.interface.js +0 -2
- package/esm2015/lib/layer/shared/layers/any-layer.js +0 -2
- package/esm2015/lib/layer/shared/layers/image-layer.interface.js +0 -2
- package/esm2015/lib/layer/shared/layers/image-layer.js +0 -68
- package/esm2015/lib/layer/shared/layers/index.js +0 -13
- package/esm2015/lib/layer/shared/layers/layer.interface.js +0 -17
- package/esm2015/lib/layer/shared/layers/layer.js +0 -169
- package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +0 -2
- package/esm2015/lib/layer/shared/layers/tile-layer.js +0 -47
- package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +0 -2
- package/esm2015/lib/layer/shared/layers/vector-layer.js +0 -376
- package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +0 -2
- package/esm2015/lib/layer/shared/layers/vectortile-layer.js +0 -104
- package/esm2015/lib/layer/shared/style.service.js +0 -358
- package/esm2015/lib/layer/shared/vector-style.interface.js +0 -2
- package/esm2015/lib/layer/track-feature-button/index.js +0 -2
- package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +0 -64
- package/esm2015/lib/layer/utils/image-watcher.js +0 -62
- package/esm2015/lib/layer/utils/index.js +0 -7
- package/esm2015/lib/layer/utils/layer.utils.js +0 -11
- package/esm2015/lib/layer/utils/layerSync-watcher.js +0 -249
- package/esm2015/lib/layer/utils/outputLegend.js +0 -27
- package/esm2015/lib/layer/utils/tile-watcher.js +0 -50
- package/esm2015/lib/layer/utils/vector-watcher.js +0 -48
- package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +0 -20
- package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +0 -105
- package/esm2015/lib/map/baselayers-switcher/index.js +0 -3
- package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +0 -137
- package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +0 -82
- package/esm2015/lib/map/geolocate-button/index.js +0 -2
- package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +0 -69
- package/esm2015/lib/map/index.js +0 -14
- package/esm2015/lib/map/info-section/index.js +0 -2
- package/esm2015/lib/map/info-section/info-section.component.js +0 -36
- package/esm2015/lib/map/map-browser/index.js +0 -2
- package/esm2015/lib/map/map-browser/map-browser.component.js +0 -70
- package/esm2015/lib/map/map-center/index.js +0 -2
- package/esm2015/lib/map/map-center/map-center.component.js +0 -55
- package/esm2015/lib/map/map.module.js +0 -129
- package/esm2015/lib/map/menu-button/index.js +0 -2
- package/esm2015/lib/map/menu-button/menu-button.component.js +0 -66
- package/esm2015/lib/map/offline-button/index.js +0 -2
- package/esm2015/lib/map/offline-button/offline-button.component.js +0 -84
- package/esm2015/lib/map/rotation-button/index.js +0 -2
- package/esm2015/lib/map/rotation-button/rotation-button.component.js +0 -97
- package/esm2015/lib/map/shared/controllers/controller.js +0 -42
- package/esm2015/lib/map/shared/controllers/geolocation.js +0 -310
- package/esm2015/lib/map/shared/controllers/index.js +0 -4
- package/esm2015/lib/map/shared/controllers/view.js +0 -342
- package/esm2015/lib/map/shared/hover-feature.directive.js +0 -509
- package/esm2015/lib/map/shared/index.js +0 -13
- package/esm2015/lib/map/shared/map-pointer-position.directive.js +0 -107
- package/esm2015/lib/map/shared/map.enums.js +0 -6
- package/esm2015/lib/map/shared/map.interface.js +0 -2
- package/esm2015/lib/map/shared/map.js +0 -418
- package/esm2015/lib/map/shared/map.service.js +0 -29
- package/esm2015/lib/map/shared/map.utils.js +0 -459
- package/esm2015/lib/map/shared/mapOffline.directive.js +0 -163
- package/esm2015/lib/map/shared/projection.interfaces.js +0 -2
- package/esm2015/lib/map/shared/projection.service.js +0 -65
- package/esm2015/lib/map/shared/projection.utils.js +0 -64
- package/esm2015/lib/map/swipe-control/index.js +0 -2
- package/esm2015/lib/map/swipe-control/swipe-control.component.js +0 -199
- package/esm2015/lib/map/utils/layer-watcher.js +0 -58
- package/esm2015/lib/map/wake-lock-button/index.js +0 -2
- package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +0 -122
- package/esm2015/lib/map/zoom-button/index.js +0 -2
- package/esm2015/lib/map/zoom-button/zoom-button.component.js +0 -46
- package/esm2015/lib/measure/index.js +0 -4
- package/esm2015/lib/measure/measure.module.js +0 -20
- package/esm2015/lib/measure/measurer/measure-format.pipe.js +0 -37
- package/esm2015/lib/measure/measurer/measurer-dialog.component.js +0 -220
- package/esm2015/lib/measure/measurer/measurer-item.component.js +0 -148
- package/esm2015/lib/measure/measurer/measurer.component.js +0 -1053
- package/esm2015/lib/measure/measurer/measurer.module.js +0 -96
- package/esm2015/lib/measure/shared/index.js +0 -4
- package/esm2015/lib/measure/shared/measure.enum.js +0 -37
- package/esm2015/lib/measure/shared/measure.interfaces.js +0 -2
- package/esm2015/lib/measure/shared/measure.utils.js +0 -489
- package/esm2015/lib/metadata/index.js +0 -3
- package/esm2015/lib/metadata/metadata-button/index.js +0 -2
- package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +0 -146
- package/esm2015/lib/metadata/metadata.module.js +0 -57
- package/esm2015/lib/metadata/shared/index.js +0 -3
- package/esm2015/lib/metadata/shared/metadata.interface.js +0 -2
- package/esm2015/lib/metadata/shared/metadata.service.js +0 -19
- package/esm2015/lib/offline/geoDB/geoDB.enums.js +0 -6
- package/esm2015/lib/offline/geoDB/geoDB.interface.js +0 -2
- package/esm2015/lib/offline/geoDB/geoDB.service.js +0 -161
- package/esm2015/lib/offline/geoDB/index.js +0 -4
- package/esm2015/lib/offline/index.js +0 -3
- package/esm2015/lib/offline/shared/geo-network.service.js +0 -66
- package/esm2015/lib/offline/shared/index.js +0 -2
- package/esm2015/lib/overlay/index.js +0 -2
- package/esm2015/lib/overlay/overlay.module.js +0 -23
- package/esm2015/lib/overlay/shared/index.js +0 -7
- package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +0 -69
- package/esm2015/lib/overlay/shared/overlay.directive.js +0 -33
- package/esm2015/lib/overlay/shared/overlay.enum.js +0 -8
- package/esm2015/lib/overlay/shared/overlay.js +0 -130
- package/esm2015/lib/overlay/shared/overlay.service.js +0 -27
- package/esm2015/lib/overlay/shared/overlay.utils.js +0 -103
- package/esm2015/lib/print/index.js +0 -4
- package/esm2015/lib/print/print/print.component.js +0 -126
- package/esm2015/lib/print/print-form/index.js +0 -2
- package/esm2015/lib/print/print-form/print-form.component.js +0 -447
- package/esm2015/lib/print/print.module.js +0 -67
- package/esm2015/lib/print/shared/index.js +0 -4
- package/esm2015/lib/print/shared/print.interface.js +0 -2
- package/esm2015/lib/print/shared/print.service.js +0 -820
- package/esm2015/lib/print/shared/print.type.js +0 -30
- package/esm2015/lib/query/index.js +0 -2
- package/esm2015/lib/query/query.module.js +0 -29
- package/esm2015/lib/query/shared/index.js +0 -7
- package/esm2015/lib/query/shared/query-search-source.js +0 -35
- package/esm2015/lib/query/shared/query-search-source.providers.js +0 -22
- package/esm2015/lib/query/shared/query.directive.js +0 -261
- package/esm2015/lib/query/shared/query.enums.js +0 -30
- package/esm2015/lib/query/shared/query.interfaces.js +0 -2
- package/esm2015/lib/query/shared/query.service.js +0 -619
- package/esm2015/lib/query/shared/query.utils.js +0 -37
- package/esm2015/lib/search/index.js +0 -12
- package/esm2015/lib/search/search-bar/search-bar.component.js +0 -496
- package/esm2015/lib/search/search-bar/search-bar.module.js +0 -77
- package/esm2015/lib/search/search-bar/search-url-param.directive.js +0 -35
- package/esm2015/lib/search/search-results/search-results-add-button.component.js +0 -198
- package/esm2015/lib/search/search-results/search-results-item.component.js +0 -129
- package/esm2015/lib/search/search-results/search-results.component.js +0 -337
- package/esm2015/lib/search/search-results/search-results.module.js +0 -79
- package/esm2015/lib/search/search-selector/search-selector.component.js +0 -132
- package/esm2015/lib/search/search-selector/search-selector.module.js +0 -58
- package/esm2015/lib/search/search-settings/search-settings.component.js +0 -435
- package/esm2015/lib/search/search-settings/search-settings.module.js +0 -62
- package/esm2015/lib/search/search.module.js +0 -69
- package/esm2015/lib/search/shared/index.js +0 -9
- package/esm2015/lib/search/shared/search-pointer-summary.directive.js +0 -322
- package/esm2015/lib/search/shared/search-source-service.providers.js +0 -20
- package/esm2015/lib/search/shared/search-source.service.js +0 -47
- package/esm2015/lib/search/shared/search.enums.js +0 -4
- package/esm2015/lib/search/shared/search.interfaces.js +0 -2
- package/esm2015/lib/search/shared/search.service.js +0 -118
- package/esm2015/lib/search/shared/search.utils.js +0 -78
- package/esm2015/lib/search/shared/sources/cadastre.js +0 -126
- package/esm2015/lib/search/shared/sources/cadastre.providers.js +0 -23
- package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/coordinates.js +0 -147
- package/esm2015/lib/search/shared/sources/coordinates.providers.js +0 -40
- package/esm2015/lib/search/shared/sources/icherche.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/icherche.js +0 -756
- package/esm2015/lib/search/shared/sources/icherche.providers.js +0 -66
- package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/ilayer.js +0 -320
- package/esm2015/lib/search/shared/sources/ilayer.providers.js +0 -40
- package/esm2015/lib/search/shared/sources/index.js +0 -20
- package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/nominatim.js +0 -253
- package/esm2015/lib/search/shared/sources/nominatim.providers.js +0 -23
- package/esm2015/lib/search/shared/sources/source.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/source.js +0 -179
- package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +0 -2
- package/esm2015/lib/search/shared/sources/storedqueries.js +0 -425
- package/esm2015/lib/search/shared/sources/storedqueries.providers.js +0 -41
- package/esm2015/lib/toast/index.js +0 -2
- package/esm2015/lib/toast/toast.component.js +0 -119
- package/esm2015/lib/toast/toast.module.js +0 -47
- package/esm2015/lib/utils/commonVectorStyle.interface.js +0 -2
- package/esm2015/lib/utils/commonVectorStyle.js +0 -75
- package/esm2015/lib/utils/googleLinks.js +0 -13
- package/esm2015/lib/utils/id-generator.js +0 -110
- package/esm2015/lib/utils/index.js +0 -6
- package/esm2015/lib/utils/osmLinks.js +0 -10
- package/esm2015/lib/wkt/index.js +0 -2
- package/esm2015/lib/wkt/shared/index.js +0 -2
- package/esm2015/lib/wkt/shared/wkt.service.js +0 -239
- package/esm2015/lib/wkt/wkt.module.js +0 -22
- package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +0 -56
- package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +0 -38
- package/esm2015/lib/workspace/confirmation-popup/index.js +0 -3
- package/esm2015/lib/workspace/index.js +0 -8
- package/esm2015/lib/workspace/shared/edition-workspace.js +0 -279
- package/esm2015/lib/workspace/shared/edition-workspace.service.js +0 -646
- package/esm2015/lib/workspace/shared/feature-workspace.js +0 -37
- package/esm2015/lib/workspace/shared/feature-workspace.service.js +0 -151
- package/esm2015/lib/workspace/shared/index.js +0 -8
- package/esm2015/lib/workspace/shared/wfs-workspace.js +0 -37
- package/esm2015/lib/workspace/shared/wfs-workspace.service.js +0 -151
- package/esm2015/lib/workspace/shared/wms-workspace.service.js +0 -263
- package/esm2015/lib/workspace/shared/workspace.utils.js +0 -24
- package/esm2015/lib/workspace/widgets/index.js +0 -4
- package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +0 -52
- package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +0 -38
- package/esm2015/lib/workspace/widgets/widgets.js +0 -15
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +0 -135
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +0 -30
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +0 -116
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +0 -30
- package/esm2015/lib/workspace/workspace.module.js +0 -64
- package/esm2015/public_api.js +0 -55
- package/fesm2015/igo2-geo.js +0 -42102
- package/fesm2015/igo2-geo.js.map +0 -1
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
import OlFeature from 'ol/Feature';
|
|
2
|
+
import OlVectorSource from 'ol/source/Vector';
|
|
3
|
+
import OlVectorLayer from 'ol/layer/Vector';
|
|
4
|
+
import OlModify from 'ol/interaction/Modify';
|
|
5
|
+
import OlTranslate from 'ol/interaction/Translate';
|
|
6
|
+
import OlDraw from 'ol/interaction/Draw';
|
|
7
|
+
import OlPolygon from 'ol/geom/Polygon';
|
|
8
|
+
import OlLinearRing from 'ol/geom/LinearRing';
|
|
9
|
+
import OlDragBoxInteraction from 'ol/interaction/DragBox';
|
|
10
|
+
import { unByKey } from 'ol/Observable';
|
|
11
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
12
|
+
import { addLinearRingToOlPolygon, createDrawHoleInteractionStyle, getMousePositionFromOlGeometryEvent } from '../geometry.utils';
|
|
13
|
+
/**
|
|
14
|
+
* Control to modify geometries
|
|
15
|
+
*/
|
|
16
|
+
export class ModifyControl {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.options = options;
|
|
19
|
+
/**
|
|
20
|
+
* Modify start observable
|
|
21
|
+
*/
|
|
22
|
+
this.start$ = new Subject();
|
|
23
|
+
/**
|
|
24
|
+
* Modify end observable
|
|
25
|
+
*/
|
|
26
|
+
this.end$ = new Subject();
|
|
27
|
+
/**
|
|
28
|
+
* Geometry changes observable
|
|
29
|
+
*/
|
|
30
|
+
this.changes$ = new Subject();
|
|
31
|
+
this.olModifyInteractionIsActive = false;
|
|
32
|
+
this.olTranslateInteractionIsActive = false;
|
|
33
|
+
this.olDrawInteractionIsActive = false;
|
|
34
|
+
this.removedOlInteractions = [];
|
|
35
|
+
/**
|
|
36
|
+
* Whether a modify control should be available
|
|
37
|
+
*/
|
|
38
|
+
this.modify = true;
|
|
39
|
+
/**
|
|
40
|
+
* Whether a translate control should be available
|
|
41
|
+
*/
|
|
42
|
+
this.translate = true;
|
|
43
|
+
if (options.modify !== undefined) {
|
|
44
|
+
this.modify = options.modify;
|
|
45
|
+
}
|
|
46
|
+
if (options.translate !== undefined) {
|
|
47
|
+
this.translate = options.translate;
|
|
48
|
+
}
|
|
49
|
+
if (options.layer !== undefined) {
|
|
50
|
+
this.olOverlayLayer = options.layer;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.olOverlayLayer = this.createOlInnerOverlayLayer();
|
|
54
|
+
}
|
|
55
|
+
this.olLinearRingsLayer = this.createOlLinearRingsLayer();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Wheter the control is active
|
|
59
|
+
*/
|
|
60
|
+
get active() {
|
|
61
|
+
return this.olMap !== undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* OL overlay source
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
get olOverlaySource() {
|
|
68
|
+
return this.olOverlayLayer.getSource();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* OL linear rings source
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
get olLinearRingsSource() {
|
|
75
|
+
return this.olLinearRingsLayer.getSource();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Add or remove this control to/from a map.
|
|
79
|
+
* @param map OL Map
|
|
80
|
+
*/
|
|
81
|
+
setOlMap(olMap) {
|
|
82
|
+
if (olMap === undefined) {
|
|
83
|
+
this.clearOlInnerOverlaySource();
|
|
84
|
+
this.removeOlInnerOverlayLayer();
|
|
85
|
+
this.removeOlModifyInteraction();
|
|
86
|
+
this.removeOlTranslateInteraction();
|
|
87
|
+
this.removeOlDrawInteraction();
|
|
88
|
+
this.olMap = olMap;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this.olMap = olMap;
|
|
92
|
+
this.addOlInnerOverlayLayer();
|
|
93
|
+
// The order in which these interactions
|
|
94
|
+
// are added is important
|
|
95
|
+
if (this.modify === true) {
|
|
96
|
+
this.addOlDrawInteraction();
|
|
97
|
+
}
|
|
98
|
+
if (this.translate === true) {
|
|
99
|
+
this.addOlTranslateInteraction();
|
|
100
|
+
this.activateTranslateInteraction();
|
|
101
|
+
}
|
|
102
|
+
if (this.modify === true) {
|
|
103
|
+
this.addOlModifyInteraction();
|
|
104
|
+
this.activateModifyInteraction();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Return the overlay source
|
|
109
|
+
*/
|
|
110
|
+
getSource() {
|
|
111
|
+
return this.olOverlaySource;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Add an OL geometry to the overlay and start modifying it
|
|
115
|
+
* @param olGeometry Ol Geometry
|
|
116
|
+
*/
|
|
117
|
+
setOlGeometry(olGeometry) {
|
|
118
|
+
const olFeature = new OlFeature({ geometry: olGeometry });
|
|
119
|
+
this.olOverlaySource.clear();
|
|
120
|
+
this.olOverlaySource.addFeature(olFeature);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Create an overlay source if none is defined in the options
|
|
124
|
+
*/
|
|
125
|
+
createOlInnerOverlayLayer() {
|
|
126
|
+
return new OlVectorLayer({
|
|
127
|
+
source: this.options.source ? this.options.source : new OlVectorSource(),
|
|
128
|
+
style: this.options.layerStyle,
|
|
129
|
+
zIndex: 500
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Add the overlay layer if it wasn't defined in the options
|
|
134
|
+
*/
|
|
135
|
+
addOlInnerOverlayLayer() {
|
|
136
|
+
if (this.options.layer === undefined) {
|
|
137
|
+
this.olMap.addLayer(this.olOverlayLayer);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Clear the overlay layer if it wasn't defined in the options
|
|
142
|
+
*/
|
|
143
|
+
removeOlInnerOverlayLayer() {
|
|
144
|
+
if (this.options.layer === undefined && this.olMap !== undefined) {
|
|
145
|
+
this.olMap.removeLayer(this.olOverlayLayer);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Clear the overlay source if it wasn't defined in the options
|
|
150
|
+
*/
|
|
151
|
+
clearOlInnerOverlaySource() {
|
|
152
|
+
if (this.options.layer === undefined && this.options.source === undefined) {
|
|
153
|
+
this.olOverlaySource.clear(true);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
createOlLinearRingsLayer() {
|
|
157
|
+
return new OlVectorLayer({
|
|
158
|
+
source: new OlVectorSource(),
|
|
159
|
+
style: createDrawHoleInteractionStyle(),
|
|
160
|
+
zIndex: 500
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Add the linear rings layer
|
|
165
|
+
*/
|
|
166
|
+
addOlLinearRingsLayer() {
|
|
167
|
+
this.olMap.addLayer(this.olLinearRingsLayer);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Clear the linear rings layer
|
|
171
|
+
*/
|
|
172
|
+
removeOlLinearRingsLayer() {
|
|
173
|
+
this.olMap.removeLayer(this.olLinearRingsLayer);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Clear the linear rings source
|
|
177
|
+
*/
|
|
178
|
+
clearOlLinearRingsSource() {
|
|
179
|
+
this.olLinearRingsSource.clear(true);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Add a modify interaction to the map an set up some listeners
|
|
183
|
+
*/
|
|
184
|
+
addOlModifyInteraction() {
|
|
185
|
+
const olModifyInteraction = new OlModify({
|
|
186
|
+
source: this.olOverlaySource,
|
|
187
|
+
style: this.options.drawStyle
|
|
188
|
+
});
|
|
189
|
+
this.olModifyInteraction = olModifyInteraction;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Remove the modify interaction
|
|
193
|
+
*/
|
|
194
|
+
removeOlModifyInteraction() {
|
|
195
|
+
if (this.olModifyInteraction === undefined) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this.deactivateModifyInteraction();
|
|
199
|
+
this.olModifyInteraction = undefined;
|
|
200
|
+
}
|
|
201
|
+
activateModifyInteraction() {
|
|
202
|
+
if (this.olModifyInteractionIsActive === true) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
this.olModifyInteractionIsActive = true;
|
|
206
|
+
this.onModifyStartKey = this.olModifyInteraction.on('modifystart', (event) => this.onModifyStart(event));
|
|
207
|
+
this.onModifyEndKey = this.olModifyInteraction.on('modifyend', (event) => this.onModifyEnd(event));
|
|
208
|
+
this.olMap.addInteraction(this.olModifyInteraction);
|
|
209
|
+
}
|
|
210
|
+
deactivateModifyInteraction() {
|
|
211
|
+
if (this.olModifyInteractionIsActive === false) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
this.olModifyInteractionIsActive = false;
|
|
215
|
+
unByKey([this.onModifyStartKey, this.onModifyEndKey, this.onModifyKey]);
|
|
216
|
+
if (this.olMap !== undefined) {
|
|
217
|
+
this.olMap.removeInteraction(this.olModifyInteraction);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* When modifying starts, clear the overlay and start watching for changes
|
|
222
|
+
* @param event Modify start event
|
|
223
|
+
*/
|
|
224
|
+
onModifyStart(event) {
|
|
225
|
+
const olGeometry = event.features.item(0).getGeometry();
|
|
226
|
+
this.start$.next(olGeometry);
|
|
227
|
+
this.onModifyKey = olGeometry.on('change', (olGeometryEvent) => {
|
|
228
|
+
this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
|
|
229
|
+
this.changes$.next(olGeometryEvent.target);
|
|
230
|
+
});
|
|
231
|
+
this.subscribeToKeyDown();
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* When modifying ends, update the geometry observable and stop watching for changes
|
|
235
|
+
* @param event Modify end event
|
|
236
|
+
*/
|
|
237
|
+
onModifyEnd(event) {
|
|
238
|
+
unByKey(this.onModifyKey);
|
|
239
|
+
this.end$.next(event.features.item(0).getGeometry());
|
|
240
|
+
this.unsubscribeToKeyDown();
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Subscribe to space key down to pan the map
|
|
244
|
+
*/
|
|
245
|
+
subscribeToKeyDown() {
|
|
246
|
+
this.keyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
|
|
247
|
+
if (event.key === ' ') {
|
|
248
|
+
// On space bar, pan to the current mouse position
|
|
249
|
+
this.olMap.getView().animate({
|
|
250
|
+
center: this.mousePosition,
|
|
251
|
+
duration: 0
|
|
252
|
+
});
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Unsubscribe to key down
|
|
259
|
+
*/
|
|
260
|
+
unsubscribeToKeyDown() {
|
|
261
|
+
if (this.keyDown$$ !== undefined) {
|
|
262
|
+
this.keyDown$$.unsubscribe();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Add a translate interaction to the map an set up some listeners
|
|
267
|
+
*/
|
|
268
|
+
addOlTranslateInteraction() {
|
|
269
|
+
const olTranslateInteraction = new OlTranslate({
|
|
270
|
+
layers: [this.olOverlayLayer]
|
|
271
|
+
});
|
|
272
|
+
this.olTranslateInteraction = olTranslateInteraction;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Remove the translate interaction
|
|
276
|
+
*/
|
|
277
|
+
removeOlTranslateInteraction() {
|
|
278
|
+
if (this.olTranslateInteraction === undefined) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
this.deactivateTranslateInteraction();
|
|
282
|
+
this.olTranslateInteraction = undefined;
|
|
283
|
+
}
|
|
284
|
+
activateTranslateInteraction() {
|
|
285
|
+
if (this.olTranslateInteractionIsActive === true) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
this.olTranslateInteractionIsActive = true;
|
|
289
|
+
this.onTranslateStartKey = this.olTranslateInteraction.on('translatestart', (event) => this.onTranslateStart(event));
|
|
290
|
+
this.onTranslateEndKey = this.olTranslateInteraction.on('translateend', (event) => this.onTranslateEnd(event));
|
|
291
|
+
this.olMap.addInteraction(this.olTranslateInteraction);
|
|
292
|
+
}
|
|
293
|
+
deactivateTranslateInteraction() {
|
|
294
|
+
if (this.olTranslateInteractionIsActive === false) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
this.olTranslateInteractionIsActive = false;
|
|
298
|
+
unByKey([
|
|
299
|
+
this.onTranslateStartKey,
|
|
300
|
+
this.onTranslateEndKey,
|
|
301
|
+
this.onTranslateKey
|
|
302
|
+
]);
|
|
303
|
+
if (this.olMap !== undefined) {
|
|
304
|
+
this.olMap.removeInteraction(this.olTranslateInteraction);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* When translation starts, clear the overlay and start watching for changes
|
|
309
|
+
* @param event Translate start event
|
|
310
|
+
*/
|
|
311
|
+
onTranslateStart(event) {
|
|
312
|
+
const olGeometry = event.features.item(0).getGeometry();
|
|
313
|
+
this.start$.next(olGeometry);
|
|
314
|
+
this.onTranslateKey = olGeometry.on('change', (olGeometryEvent) => {
|
|
315
|
+
// this.changes$.next(olGeometryEvent.target);
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* When translation ends, update the geometry observable and stop watchign for changes
|
|
320
|
+
* @param event Translate end event
|
|
321
|
+
*/
|
|
322
|
+
onTranslateEnd(event) {
|
|
323
|
+
unByKey(this.onTranslateKey);
|
|
324
|
+
this.end$.next(event.features.item(0).getGeometry());
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Add a draw interaction to the map an set up some listeners
|
|
328
|
+
*/
|
|
329
|
+
addOlDrawInteraction() {
|
|
330
|
+
const olDrawInteraction = new OlDraw({
|
|
331
|
+
type: 'Polygon',
|
|
332
|
+
source: this.olLinearRingsSource,
|
|
333
|
+
stopClick: true,
|
|
334
|
+
style: createDrawHoleInteractionStyle(),
|
|
335
|
+
condition: (event) => {
|
|
336
|
+
const olOuterGeometry = this.olOuterGeometry || this.getOlGeometry();
|
|
337
|
+
const intersects = olOuterGeometry.intersectsCoordinate(event.coordinate);
|
|
338
|
+
return intersects;
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
this.olDrawInteraction = olDrawInteraction;
|
|
342
|
+
this.subscribeToDrawKeyDown();
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Subscribe to CTRL key down to activate the draw control
|
|
346
|
+
*/
|
|
347
|
+
subscribeToDrawKeyDown() {
|
|
348
|
+
this.drawKeyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
|
|
349
|
+
if (event.key !== 'Control') {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
this.unsubscribeToDrawKeyDown();
|
|
353
|
+
const olGeometry = this.getOlGeometry();
|
|
354
|
+
if (!olGeometry || !(olGeometry instanceof OlPolygon)) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
this.subscribeToDrawKeyUp();
|
|
358
|
+
this.deactivateModifyInteraction();
|
|
359
|
+
this.deactivateTranslateInteraction();
|
|
360
|
+
this.activateDrawInteraction();
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Subscribe to CTRL key up to deactivate the draw control
|
|
365
|
+
*/
|
|
366
|
+
subscribeToDrawKeyUp() {
|
|
367
|
+
this.drawKeyUp$$ = fromEvent(document, 'keyup').subscribe((event) => {
|
|
368
|
+
if (event.key !== 'Control') {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
this.unsubscribeToDrawKeyUp();
|
|
372
|
+
this.unsubscribeToKeyDown();
|
|
373
|
+
this.deactivateDrawInteraction();
|
|
374
|
+
this.activateModifyInteraction();
|
|
375
|
+
if (this.translate === true) {
|
|
376
|
+
this.activateTranslateInteraction();
|
|
377
|
+
}
|
|
378
|
+
this.subscribeToDrawKeyDown();
|
|
379
|
+
this.olOuterGeometry = undefined;
|
|
380
|
+
this.clearOlLinearRingsSource();
|
|
381
|
+
this.end$.next(this.getOlGeometry());
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Unsubscribe to draw key down
|
|
386
|
+
*/
|
|
387
|
+
unsubscribeToDrawKeyDown() {
|
|
388
|
+
if (this.drawKeyDown$$ !== undefined) {
|
|
389
|
+
this.drawKeyDown$$.unsubscribe();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Unsubscribe to key up
|
|
394
|
+
*/
|
|
395
|
+
unsubscribeToDrawKeyUp() {
|
|
396
|
+
if (this.drawKeyUp$$ !== undefined) {
|
|
397
|
+
this.drawKeyUp$$.unsubscribe();
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Remove the draw interaction
|
|
402
|
+
*/
|
|
403
|
+
removeOlDrawInteraction() {
|
|
404
|
+
if (this.olDrawInteraction === undefined) {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
this.unsubscribeToKeyDown();
|
|
408
|
+
this.unsubscribeToDrawKeyUp();
|
|
409
|
+
this.unsubscribeToDrawKeyDown();
|
|
410
|
+
this.deactivateDrawInteraction();
|
|
411
|
+
this.clearOlLinearRingsSource();
|
|
412
|
+
this.olDrawInteraction = undefined;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Activate the draw interaction
|
|
416
|
+
*/
|
|
417
|
+
activateDrawInteraction() {
|
|
418
|
+
if (this.olDrawInteractionIsActive === true) {
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
this.clearOlLinearRingsSource();
|
|
422
|
+
this.addOlLinearRingsLayer();
|
|
423
|
+
this.olMap.getInteractions().forEach((olInteraction) => {
|
|
424
|
+
if (olInteraction instanceof OlDragBoxInteraction) {
|
|
425
|
+
this.olMap.removeInteraction(olInteraction);
|
|
426
|
+
this.removedOlInteractions.push(olInteraction);
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
this.olDrawInteractionIsActive = true;
|
|
430
|
+
this.onDrawStartKey = this.olDrawInteraction.on('drawstart', (event) => this.onDrawStart(event));
|
|
431
|
+
this.onDrawEndKey = this.olDrawInteraction.on('drawend', (event) => this.onDrawEnd(event));
|
|
432
|
+
this.olMap.addInteraction(this.olDrawInteraction);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Deactivate the draw interaction
|
|
436
|
+
*/
|
|
437
|
+
deactivateDrawInteraction() {
|
|
438
|
+
if (this.olDrawInteractionIsActive === false) {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
this.removeOlLinearRingsLayer();
|
|
442
|
+
this.removedOlInteractions.forEach((olInteraction) => {
|
|
443
|
+
this.olMap.addInteraction(olInteraction);
|
|
444
|
+
});
|
|
445
|
+
this.removedOlInteractions = [];
|
|
446
|
+
this.olDrawInteractionIsActive = false;
|
|
447
|
+
unByKey([this.onDrawStartKey, this.onDrawEndKey, this.onDrawKey]);
|
|
448
|
+
if (this.olMap !== undefined) {
|
|
449
|
+
this.olMap.removeInteraction(this.olDrawInteraction);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* When draw start, add a new linerar ring to the geometry and start watching for changes
|
|
454
|
+
* @param event Draw start event
|
|
455
|
+
*/
|
|
456
|
+
onDrawStart(event) {
|
|
457
|
+
const olGeometry = event.feature.getGeometry();
|
|
458
|
+
this.olOuterGeometry = this.getOlGeometry().clone();
|
|
459
|
+
const linearRingCoordinates = olGeometry.getLinearRing().getCoordinates();
|
|
460
|
+
this.addLinearRingToOlGeometry(linearRingCoordinates);
|
|
461
|
+
this.start$.next(this.getOlGeometry());
|
|
462
|
+
this.onDrawKey = olGeometry.on('change', (olGeometryEvent) => {
|
|
463
|
+
this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
|
|
464
|
+
const olGeometryTarget = olGeometryEvent.target;
|
|
465
|
+
const _linearRingCoordinates = olGeometryTarget
|
|
466
|
+
.getLinearRing(0)
|
|
467
|
+
.getCoordinates();
|
|
468
|
+
this.updateLinearRingOfOlGeometry(_linearRingCoordinates);
|
|
469
|
+
this.changes$.next(this.getOlGeometry());
|
|
470
|
+
});
|
|
471
|
+
this.subscribeToKeyDown();
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* When translation ends, update the geometry observable and stop watchign for changes
|
|
475
|
+
* @param event Draw end event
|
|
476
|
+
*/
|
|
477
|
+
onDrawEnd(event) {
|
|
478
|
+
unByKey(this.onDrawKey);
|
|
479
|
+
this.olOuterGeometry = undefined;
|
|
480
|
+
const linearRingCoordinates = event.feature
|
|
481
|
+
.getGeometry()
|
|
482
|
+
.getLinearRing()
|
|
483
|
+
.getCoordinates();
|
|
484
|
+
this.updateLinearRingOfOlGeometry(linearRingCoordinates);
|
|
485
|
+
this.clearOlLinearRingsSource();
|
|
486
|
+
this.end$.next(this.getOlGeometry());
|
|
487
|
+
this.unsubscribeToKeyDown();
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Add a linear ring to the geometry being modified
|
|
491
|
+
* @param coordinates Linear ring coordinates
|
|
492
|
+
*/
|
|
493
|
+
addLinearRingToOlGeometry(coordinates) {
|
|
494
|
+
const olGeometry = this.getOlGeometry();
|
|
495
|
+
const olLinearRing = new OlLinearRing(coordinates);
|
|
496
|
+
addLinearRingToOlPolygon(olGeometry, olLinearRing);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Update the last linear ring of the geometry being modified
|
|
500
|
+
* @param coordinates Linear ring coordinates
|
|
501
|
+
*/
|
|
502
|
+
updateLinearRingOfOlGeometry(coordinates) {
|
|
503
|
+
const olGeometry = this.getOlGeometry();
|
|
504
|
+
// Remove the last linear ring (the one we are updating)
|
|
505
|
+
const olLinearRings = olGeometry.getLinearRings().slice(0, -1);
|
|
506
|
+
const newCoordinates = olLinearRings.map((olLinearRing) => {
|
|
507
|
+
return olLinearRing.getCoordinates();
|
|
508
|
+
});
|
|
509
|
+
newCoordinates.push(coordinates);
|
|
510
|
+
olGeometry.setCoordinates(newCoordinates);
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Get the geometry being modified
|
|
514
|
+
* @returns OL Geometry
|
|
515
|
+
*/
|
|
516
|
+
getOlGeometry() {
|
|
517
|
+
const olFeatures = this.olOverlaySource.getFeatures();
|
|
518
|
+
return olFeatures.length > 0 ? olFeatures[0].getGeometry() : undefined;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvc2hhcmVkL2NvbnRyb2xzL21vZGlmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFHbkMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxTQUFTLE1BQU0saUJBQWlCLENBQUM7QUFHeEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxvQkFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDcEMsTUFBTSxtQkFBbUIsQ0FBQztBQVczQjs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBK0V4QixZQUFvQixPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQTlFakQ7O1dBRUc7UUFDSSxXQUFNLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFbkQ7O1dBRUc7UUFDSSxTQUFJLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDSSxhQUFRLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFRN0MsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBSzdDLG1DQUE4QixHQUFZLEtBQUssQ0FB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QUcsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUN0RSxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RELE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcclxuaW1wb3J0IHsgU3R5bGVMaWtlIGFzIE9sU3R5bGVMaWtlIH0gZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xyXG5pbXBvcnQgT2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcbmltcG9ydCBPbFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XHJcbmltcG9ydCBPbE1vZGlmeSBmcm9tICdvbC9pbnRlcmFjdGlvbi9Nb2RpZnknO1xyXG5pbXBvcnQgT2xUcmFuc2xhdGUgZnJvbSAnb2wvaW50ZXJhY3Rpb24vVHJhbnNsYXRlJztcclxuaW1wb3J0IE9sRHJhdyBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcclxuaW1wb3J0IE9sUG9seWdvbiBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xyXG5pbXBvcnQgT2xMaW5lU3RyaW5nIGZyb20gJ29sL2dlb20vTGluZVN0cmluZyc7XHJcbmltcG9ydCBPbENpcmNsZSBmcm9tICdvbC9nZW9tL0NpcmNsZSc7XHJcbmltcG9ydCBPbExpbmVhclJpbmcgZnJvbSAnb2wvZ2VvbS9MaW5lYXJSaW5nJztcclxuaW1wb3J0IE9sSW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24vSW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgT2xEcmFnQm94SW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XHJcbmltcG9ydCBNYXBCcm93c2VyRXZlbnQgZnJvbSAnb2wvTWFwQnJvd3NlckV2ZW50JztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IEJhc2ljRXZlbnQgZnJvbSAnb2wvZXZlbnRzL0V2ZW50JztcclxuaW1wb3J0IHsgTW9kaWZ5RXZlbnQgYXMgT2xNb2RpZnlFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUV2ZW50IGFzIE9sVHJhbnNsYXRlRXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9UcmFuc2xhdGUnO1xyXG5pbXBvcnQgeyBEcmF3RXZlbnQgYXMgT2xEcmF3RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcclxuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgYWRkTGluZWFyUmluZ1RvT2xQb2x5Z29uLFxyXG4gIGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSxcclxuICBnZXRNb3VzZVBvc2l0aW9uRnJvbU9sR2VvbWV0cnlFdmVudFxyXG59IGZyb20gJy4uL2dlb21ldHJ5LnV0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTW9kaWZ5Q29udHJvbE9wdGlvbnMge1xyXG4gIHNvdXJjZT86IE9sVmVjdG9yU291cmNlPGFueT47XHJcbiAgbGF5ZXI/OiBPbFZlY3RvckxheWVyPGFueT47XHJcbiAgbGF5ZXJTdHlsZT86IE9sU3R5bGVMaWtlO1xyXG4gIGRyYXdTdHlsZT86IE9sU3R5bGVMaWtlO1xyXG4gIG1vZGlmeT86IGJvb2xlYW47XHJcbiAgdHJhbnNsYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnRyb2wgdG8gbW9kaWZ5IGdlb21ldHJpZXNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlDb250cm9sIHtcclxuICAvKipcclxuICAgKiBNb2RpZnkgc3RhcnQgb2JzZXJ2YWJsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGFydCQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBNb2RpZnkgZW5kIG9ic2VydmFibGVcclxuICAgKi9cclxuICBwdWJsaWMgZW5kJDogU3ViamVjdDxPbEdlb21ldHJ5PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlb21ldHJ5IGNoYW5nZXMgb2JzZXJ2YWJsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VzJDogU3ViamVjdDxPbEdlb21ldHJ5PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgb2xNYXA6IE9sTWFwO1xyXG4gIHByaXZhdGUgb2xPdmVybGF5TGF5ZXI6IE9sVmVjdG9yTGF5ZXI8YW55PjtcclxuICBwdWJsaWMgb2xNb2RpZnlJbnRlcmFjdGlvbjogT2xNb2RpZnk7XHJcbiAgcHJpdmF0ZSBvbk1vZGlmeVN0YXJ0S2V5OiBhbnk7XHJcbiAgcHJpdmF0ZSBvbk1vZGlmeUVuZEtleTogYW55O1xyXG4gIHByaXZhdGUgb25Nb2RpZnlLZXk6IGFueTtcclxuICBwcml2YXRlIG9sTW9kaWZ5SW50ZXJhY3Rpb25Jc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgb2xUcmFuc2xhdGVJbnRlcmFjdGlvbjogT2xUcmFuc2xhdGU7XHJcbiAgcHJpdmF0ZSBvblRyYW5zbGF0ZVN0YXJ0S2V5OiBhbnk7XHJcbiAgcHJpdmF0ZSBvblRyYW5zbGF0ZUVuZEtleTogYW55O1xyXG4gIHByaXZhdGUgb25UcmFuc2xhdGVLZXk6IGFueTtcclxuICBwcml2YXRlIG9sVHJhbnNsYXRlSW50ZXJhY3Rpb25Jc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgb2xEcmF3SW50ZXJhY3Rpb246IE9sRHJhdztcclxuICBwcml2YXRlIG9uRHJhd1N0YXJ0S2V5OiBhbnk7XHJcbiAgcHJpdmF0ZSBvbkRyYXdFbmRLZXk6IGFueTtcclxuICBwcml2YXRlIG9uRHJhd0tleTogYW55O1xyXG4gIHByaXZhdGUgb2xEcmF3SW50ZXJhY3Rpb25Jc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIG1vdXNlUG9zaXRpb246IFtudW1iZXIsIG51bWJlcl07XHJcblxyXG4gIHByaXZhdGUga2V5RG93biQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBkcmF3S2V5VXAkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgZHJhd0tleURvd24kJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIHJlbW92ZWRPbEludGVyYWN0aW9uczogT2xJbnRlcmFjdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBvbExpbmVhclJpbmdzTGF5ZXI6IE9sVmVjdG9yTGF5ZXI8YW55PjtcclxuXHJcbiAgLy8gVGhpcyBpcyB0aGUgZ2VvbWV0cnkgdG8gdGVzdCBhZ2FpbnN0IHdoZW4gZHJhd2luZyBob2xlc1xyXG4gIHByaXZhdGUgb2xPdXRlckdlb21ldHJ5OiBPbEdlb21ldHJ5O1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0ZXIgdGhlIGNvbnRyb2wgaXMgYWN0aXZlXHJcbiAgICovXHJcbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPTCBvdmVybGF5IHNvdXJjZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBvbE92ZXJsYXlTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5vbE92ZXJsYXlMYXllci5nZXRTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9MIGxpbmVhciByaW5ncyBzb3VyY2VcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgb2xMaW5lYXJSaW5nc1NvdXJjZSgpOiBPbFZlY3RvclNvdXJjZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLm9sTGluZWFyUmluZ3NMYXllci5nZXRTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgYSBtb2RpZnkgY29udHJvbCBzaG91bGQgYmUgYXZhaWxhYmxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtb2RpZnk6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIGEgdHJhbnNsYXRlIGNvbnRyb2wgc2hvdWxkIGJlIGF2YWlsYWJsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBNb2RpZnlDb250cm9sT3B0aW9ucykge1xyXG4gICAgaWYgKG9wdGlvbnMubW9kaWZ5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5tb2RpZnkgPSBvcHRpb25zLm1vZGlmeTtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLnRyYW5zbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlID0gb3B0aW9ucy50cmFuc2xhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMubGF5ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLm9sT3ZlcmxheUxheWVyID0gb3B0aW9ucy5sYXllcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub2xPdmVybGF5TGF5ZXIgPSB0aGlzLmNyZWF0ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcclxuICAgIH1cclxuICAgIHRoaXMub2xMaW5lYXJSaW5nc0xheWVyID0gdGhpcy5jcmVhdGVPbExpbmVhclJpbmdzTGF5ZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBvciByZW1vdmUgdGhpcyBjb250cm9sIHRvL2Zyb20gYSBtYXAuXHJcbiAgICogQHBhcmFtIG1hcCBPTCBNYXBcclxuICAgKi9cclxuICBzZXRPbE1hcChvbE1hcDogT2xNYXAgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChvbE1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJPbElubmVyT3ZlcmxheVNvdXJjZSgpO1xyXG4gICAgICB0aGlzLnJlbW92ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcclxuICAgICAgdGhpcy5yZW1vdmVPbE1vZGlmeUludGVyYWN0aW9uKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlT2xUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xyXG4gICAgICB0aGlzLnJlbW92ZU9sRHJhd0ludGVyYWN0aW9uKCk7XHJcbiAgICAgIHRoaXMub2xNYXAgPSBvbE1hcDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2xNYXAgPSBvbE1hcDtcclxuICAgIHRoaXMuYWRkT2xJbm5lck92ZXJsYXlMYXllcigpO1xyXG5cclxuICAgIC8vIFRoZSBvcmRlciBpbiB3aGljaCB0aGVzZSBpbnRlcmFjdGlvbnNcclxuICAgIC8vIGFyZSBhZGRlZCBpcyBpbXBvcnRhbnRcclxuICAgIGlmICh0aGlzLm1vZGlmeSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmFkZE9sRHJhd0ludGVyYWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuYWRkT2xUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlVHJhbnNsYXRlSW50ZXJhY3Rpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RpZnkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5hZGRPbE1vZGlmeUludGVyYWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVNb2RpZnlJbnRlcmFjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRoZSBvdmVybGF5IHNvdXJjZVxyXG4gICAqL1xyXG4gIGdldFNvdXJjZSgpOiBPbFZlY3RvclNvdXJjZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLm9sT3ZlcmxheVNvdXJjZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhbiBPTCBnZW9tZXRyeSB0byB0aGUgb3ZlcmxheSBhbmQgc3RhcnQgbW9kaWZ5aW5nIGl0XHJcbiAgICogQHBhcmFtIG9sR2VvbWV0cnkgT2wgR2VvbWV0cnlcclxuICAgKi9cclxuICBzZXRPbEdlb21ldHJ5KG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkpIHtcclxuICAgIGNvbnN0IG9sRmVhdHVyZSA9IG5ldyBPbEZlYXR1cmUoeyBnZW9tZXRyeTogb2xHZW9tZXRyeSB9KTtcclxuICAgIHRoaXMub2xPdmVybGF5U291cmNlLmNsZWFyKCk7XHJcbiAgICB0aGlzLm9sT3ZlcmxheVNvdXJjZS5hZGRGZWF0dXJlKG9sRmVhdHVyZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYW4gb3ZlcmxheSBzb3VyY2UgaWYgbm9uZSBpcyBkZWZpbmVkIGluIHRoZSBvcHRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVPbElubmVyT3ZlcmxheUxheWVyKCk6IE9sVmVjdG9yTGF5ZXI8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IE9sVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2UgPyB0aGlzLm9wdGlvbnMuc291cmNlIDogbmV3IE9sVmVjdG9yU291cmNlKCksXHJcbiAgICAgIHN0eWxlOiB0aGlzLm9wdGlvbnMubGF5ZXJTdHlsZSxcclxuICAgICAgekluZGV4OiA1MDBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBvdmVybGF5IGxheWVyIGlmIGl0IHdhc24ndCBkZWZpbmVkIGluIHRoZSBvcHRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRPbElubmVyT3ZlcmxheUxheWVyKCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sYXllciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub2xNYXAuYWRkTGF5ZXIodGhpcy5vbE92ZXJsYXlMYXllcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgb3ZlcmxheSBsYXllciBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlT2xJbm5lck92ZXJsYXlMYXllcigpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubGF5ZXIgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbE1hcC5yZW1vdmVMYXllcih0aGlzLm9sT3ZlcmxheUxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBvdmVybGF5IHNvdXJjZSBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xlYXJPbElubmVyT3ZlcmxheVNvdXJjZSgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubGF5ZXIgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm9wdGlvbnMuc291cmNlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbE92ZXJsYXlTb3VyY2UuY2xlYXIodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU9sTGluZWFyUmluZ3NMYXllcigpOiBPbFZlY3RvckxheWVyPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPbFZlY3RvckxheWVyKHtcclxuICAgICAgc291cmNlOiBuZXcgT2xWZWN0b3JTb3VyY2UoKSxcclxuICAgICAgc3R5bGU6IGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSgpLFxyXG4gICAgICB6SW5kZXg6IDUwMFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIGxpbmVhciByaW5ncyBsYXllclxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkT2xMaW5lYXJSaW5nc0xheWVyKCkge1xyXG4gICAgdGhpcy5vbE1hcC5hZGRMYXllcih0aGlzLm9sTGluZWFyUmluZ3NMYXllcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgbGluZWFyIHJpbmdzIGxheWVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVPbExpbmVhclJpbmdzTGF5ZXIoKSB7XHJcbiAgICB0aGlzLm9sTWFwLnJlbW92ZUxheWVyKHRoaXMub2xMaW5lYXJSaW5nc0xheWVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBsaW5lYXIgcmluZ3Mgc291cmNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKSB7XHJcbiAgICB0aGlzLm9sTGluZWFyUmluZ3NTb3VyY2UuY2xlYXIodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gdGhlIG1hcCBhbiBzZXQgdXAgc29tZSBsaXN0ZW5lcnNcclxuICAgKi9cclxuICBwcml2YXRlIGFkZE9sTW9kaWZ5SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBjb25zdCBvbE1vZGlmeUludGVyYWN0aW9uID0gbmV3IE9sTW9kaWZ5KHtcclxuICAgICAgc291cmNlOiB0aGlzLm9sT3ZlcmxheVNvdXJjZSxcclxuICAgICAgc3R5bGU6IHRoaXMub3B0aW9ucy5kcmF3U3R5bGUgYXMgT2xTdHlsZS5TdHlsZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24gPSBvbE1vZGlmeUludGVyYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBtb2RpZnkgaW50ZXJhY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZU9sTW9kaWZ5SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGVhY3RpdmF0ZU1vZGlmeUludGVyYWN0aW9uKCk7XHJcbiAgICB0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlTW9kaWZ5SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbE1vZGlmeUludGVyYWN0aW9uSXNBY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbklzQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMub25Nb2RpZnlTdGFydEtleSA9IHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbi5vbihcclxuICAgICAgJ21vZGlmeXN0YXJ0JyxcclxuICAgICAgKGV2ZW50OiBPbE1vZGlmeUV2ZW50KSA9PiB0aGlzLm9uTW9kaWZ5U3RhcnQoZXZlbnQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbk1vZGlmeUVuZEtleSA9IHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbi5vbihcclxuICAgICAgJ21vZGlmeWVuZCcsXHJcbiAgICAgIChldmVudDogT2xNb2RpZnlFdmVudCkgPT4gdGhpcy5vbk1vZGlmeUVuZChldmVudClcclxuICAgICk7XHJcbiAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlYWN0aXZhdGVNb2RpZnlJbnRlcmFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb25Jc0FjdGl2ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbklzQWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgdW5CeUtleShbdGhpcy5vbk1vZGlmeVN0YXJ0S2V5LCB0aGlzLm9uTW9kaWZ5RW5kS2V5LCB0aGlzLm9uTW9kaWZ5S2V5XSk7XHJcbiAgICBpZiAodGhpcy5vbE1hcCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbE1vZGlmeUludGVyYWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gbW9kaWZ5aW5nIHN0YXJ0cywgY2xlYXIgdGhlIG92ZXJsYXkgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIGV2ZW50IE1vZGlmeSBzdGFydCBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25Nb2RpZnlTdGFydChldmVudDogT2xNb2RpZnlFdmVudCkge1xyXG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmVzLml0ZW0oMCkuZ2V0R2VvbWV0cnkoKSBhcyBPbEdlb21ldHJ5O1xyXG4gICAgdGhpcy5zdGFydCQubmV4dChvbEdlb21ldHJ5KTtcclxuICAgIHRoaXMub25Nb2RpZnlLZXkgPSBvbEdlb21ldHJ5Lm9uKFxyXG4gICAgICAnY2hhbmdlJyxcclxuICAgICAgKG9sR2VvbWV0cnlFdmVudDogQmFzaWNFdmVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW91c2VQb3NpdGlvbiA9IGdldE1vdXNlUG9zaXRpb25Gcm9tT2xHZW9tZXRyeUV2ZW50KFxyXG4gICAgICAgICAgb2xHZW9tZXRyeUV2ZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNoYW5nZXMkLm5leHQob2xHZW9tZXRyeUV2ZW50LnRhcmdldCBhcyBPbExpbmVTdHJpbmcgfCBPbENpcmNsZSB8IE9sUG9seWdvbik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvS2V5RG93bigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBtb2RpZnlpbmcgZW5kcywgdXBkYXRlIHRoZSBnZW9tZXRyeSBvYnNlcnZhYmxlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIGV2ZW50IE1vZGlmeSBlbmQgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTW9kaWZ5RW5kKGV2ZW50OiBPbE1vZGlmeUV2ZW50KSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMub25Nb2RpZnlLZXkpO1xyXG4gICAgdGhpcy5lbmQkLm5leHQoZXZlbnQuZmVhdHVyZXMuaXRlbSgwKS5nZXRHZW9tZXRyeSgpIGFzIE9sR2VvbWV0cnkpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVRvS2V5RG93bigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlIHRvIHNwYWNlIGtleSBkb3duIHRvIHBhbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0tleURvd24oKSB7XHJcbiAgICB0aGlzLmtleURvd24kJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoXHJcbiAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICAgICAgLy8gT24gc3BhY2UgYmFyLCBwYW4gdG8gdGhlIGN1cnJlbnQgbW91c2UgcG9zaXRpb25cclxuICAgICAgICAgIHRoaXMub2xNYXAuZ2V0VmlldygpLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICBjZW50ZXI6IHRoaXMubW91c2VQb3NpdGlvbixcclxuICAgICAgICAgICAgZHVyYXRpb246IDBcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIGtleSBkb3duXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZVRvS2V5RG93bigpIHtcclxuICAgIGlmICh0aGlzLmtleURvd24kJCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMua2V5RG93biQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSB0cmFuc2xhdGUgaW50ZXJhY3Rpb24gdG8gdGhlIG1hcCBhbiBzZXQgdXAgc29tZSBsaXN0ZW5lcnNcclxuICAgKi9cclxuICBwcml2YXRlIGFkZE9sVHJhbnNsYXRlSW50ZXJhY3Rpb24oKSB7XHJcbiAgICBjb25zdCBvbFRyYW5zbGF0ZUludGVyYWN0aW9uID0gbmV3IE9sVHJhbnNsYXRlKHtcclxuICAgICAgbGF5ZXJzOiBbdGhpcy5vbE92ZXJsYXlMYXllcl1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uID0gb2xUcmFuc2xhdGVJbnRlcmFjdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgdHJhbnNsYXRlIGludGVyYWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVPbFRyYW5zbGF0ZUludGVyYWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRlYWN0aXZhdGVUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xyXG4gICAgdGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmF0ZVRyYW5zbGF0ZUludGVyYWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbklzQWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb25Jc0FjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRlU3RhcnRLZXkgPSB0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICd0cmFuc2xhdGVzdGFydCcsXHJcbiAgICAgIChldmVudDogT2xUcmFuc2xhdGVFdmVudCkgPT4gdGhpcy5vblRyYW5zbGF0ZVN0YXJ0KGV2ZW50KVxyXG4gICAgKTtcclxuICAgIHRoaXMub25UcmFuc2xhdGVFbmRLZXkgPSB0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICd0cmFuc2xhdGVlbmQnLFxyXG4gICAgICAoZXZlbnQ6IE9sVHJhbnNsYXRlRXZlbnQpID0+IHRoaXMub25UcmFuc2xhdGVFbmQoZXZlbnQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbih0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWFjdGl2YXRlVHJhbnNsYXRlSW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uSXNBY3RpdmUgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb25Jc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdW5CeUtleShbXHJcbiAgICAgIHRoaXMub25UcmFuc2xhdGVTdGFydEtleSxcclxuICAgICAgdGhpcy5vblRyYW5zbGF0ZUVuZEtleSxcclxuICAgICAgdGhpcy5vblRyYW5zbGF0ZUtleVxyXG4gICAgXSk7XHJcbiAgICBpZiAodGhpcy5vbE1hcCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJhbnNsYXRpb24gc3RhcnRzLCBjbGVhciB0aGUgb3ZlcmxheSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gZXZlbnQgVHJhbnNsYXRlIHN0YXJ0IGV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblRyYW5zbGF0ZVN0YXJ0KGV2ZW50OiBPbFRyYW5zbGF0ZUV2ZW50KSB7XHJcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuaXRlbSgwKS5nZXRHZW9tZXRyeSgpIGFzIE9sR2VvbWV0cnk7XHJcbiAgICB0aGlzLnN0YXJ0JC5uZXh0KG9sR2VvbWV0cnkpO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0ZUtleSA9IG9sR2VvbWV0cnkub24oXHJcbiAgICAgICdjaGFuZ2UnLFxyXG4gICAgICAob2xHZW9tZXRyeUV2ZW50OiBCYXNpY0V2ZW50KSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5jaGFuZ2VzJC5uZXh0KG9sR2VvbWV0cnlFdmVudC50YXJnZXQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiB0cmFuc2xhdGlvbiBlbmRzLCB1cGRhdGUgdGhlIGdlb21ldHJ5IG9ic2VydmFibGUgYW5kIHN0b3Agd2F0Y2hpZ24gZm9yIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gZXZlbnQgVHJhbnNsYXRlIGVuZCBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25UcmFuc2xhdGVFbmQoZXZlbnQ6IE9sVHJhbnNsYXRlRXZlbnQpIHtcclxuICAgIHVuQnlLZXkodGhpcy5vblRyYW5zbGF0ZUtleSk7XHJcbiAgICB0aGlzLmVuZCQubmV4dChldmVudC5mZWF0dXJlcy5pdGVtKDApLmdldEdlb21ldHJ5KCkgYXMgT2xHZW9tZXRyeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBkcmF3IGludGVyYWN0aW9uIHRvIHRoZSBtYXAgYW4gc2V0IHVwIHNvbWUgbGlzdGVuZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRPbERyYXdJbnRlcmFjdGlvbigpIHtcclxuICAgIGNvbnN0IG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XHJcbiAgICAgIHR5cGU6ICdQb2x5Z29uJyxcclxuICAgICAgc291cmNlOiB0aGlzLm9sTGluZWFyUmluZ3NTb3VyY2UsXHJcbiAgICAgIHN0b3BDbGljazogdHJ1ZSxcclxuICAgICAgc3R5bGU6IGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSgpLFxyXG4gICAgICBjb25kaXRpb246IChldmVudDogTWFwQnJvd3NlckV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICBjb25zdCBvbE91dGVyR2VvbWV0cnkgPSB0aGlzLm9sT3V0ZXJHZW9tZXRyeSB8fCB0aGlzLmdldE9sR2VvbWV0cnkoKTtcclxuICAgICAgICBjb25zdCBpbnRlcnNlY3RzID0gb2xPdXRlckdlb21ldHJ5LmludGVyc2VjdHNDb29yZGluYXRlKFxyXG4gICAgICAgICAgZXZlbnQuY29vcmRpbmF0ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGludGVyc2VjdHM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPSBvbERyYXdJbnRlcmFjdGlvbjtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9EcmF3S2V5RG93bigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlIHRvIENUUkwga2V5IGRvd24gdG8gYWN0aXZhdGUgdGhlIGRyYXcgY29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9EcmF3S2V5RG93bigpIHtcclxuICAgIHRoaXMuZHJhd0tleURvd24kJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoXHJcbiAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgIT09ICdDb250cm9sJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZVRvRHJhd0tleURvd24oKTtcclxuXHJcbiAgICAgICAgY29uc3Qgb2xHZW9tZXRyeSA9IHRoaXMuZ2V0T2xHZW9tZXRyeSgpO1xyXG4gICAgICAgIGlmICghb2xHZW9tZXRyeSB8fCAhKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvbHlnb24pKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvRHJhd0tleVVwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZU1vZGlmeUludGVyYWN0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlVHJhbnNsYXRlSW50ZXJhY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlRHJhd0ludGVyYWN0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gQ1RSTCBrZXkgdXAgdG8gZGVhY3RpdmF0ZSB0aGUgZHJhdyBjb250cm9sXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0RyYXdLZXlVcCgpIHtcclxuICAgIHRoaXMuZHJhd0tleVVwJCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXl1cCcpLnN1YnNjcmliZShcclxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0NvbnRyb2wnKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlVG9EcmF3S2V5VXAoKTtcclxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlVG9LZXlEb3duKCk7XHJcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlRHJhd0ludGVyYWN0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVNb2RpZnlJbnRlcmFjdGlvbigpO1xyXG4gICAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZVRyYW5zbGF0ZUludGVyYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9EcmF3S2V5RG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLm9sT3V0ZXJHZW9tZXRyeSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmNsZWFyT2xMaW5lYXJSaW5nc1NvdXJjZSgpO1xyXG4gICAgICAgIHRoaXMuZW5kJC5uZXh0KHRoaXMuZ2V0T2xHZW9tZXRyeSgpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIGRyYXcga2V5IGRvd25cclxuICAgKi9cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlVG9EcmF3S2V5RG93bigpIHtcclxuICAgIGlmICh0aGlzLmRyYXdLZXlEb3duJCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmRyYXdLZXlEb3duJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIGtleSB1cFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVUb0RyYXdLZXlVcCgpIHtcclxuICAgIGlmICh0aGlzLmRyYXdLZXlVcCQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5kcmF3S2V5VXAkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBkcmF3IGludGVyYWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVPbERyYXdJbnRlcmFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm9sRHJhd0ludGVyYWN0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudW5zdWJzY3JpYmVUb0tleURvd24oKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVUb0RyYXdLZXlVcCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVRvRHJhd0tleURvd24oKTtcclxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdJbnRlcmFjdGlvbigpO1xyXG4gICAgdGhpcy5jbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKTtcclxuICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgZHJhdyBpbnRlcmFjdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZhdGVEcmF3SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyT2xMaW5lYXJSaW5nc1NvdXJjZSgpO1xyXG4gICAgdGhpcy5hZGRPbExpbmVhclJpbmdzTGF5ZXIoKTtcclxuXHJcbiAgICB0aGlzLm9sTWFwLmdldEludGVyYWN0aW9ucygpLmZvckVhY2goKG9sSW50ZXJhY3Rpb246IE9sSW50ZXJhY3Rpb24pID0+IHtcclxuICAgICAgaWYgKG9sSW50ZXJhY3Rpb24gaW5zdGFuY2VvZiBPbERyYWdCb3hJbnRlcmFjdGlvbikge1xyXG4gICAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24ob2xJbnRlcmFjdGlvbik7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVkT2xJbnRlcmFjdGlvbnMucHVzaChvbEludGVyYWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID0gdHJ1ZTtcclxuICAgIHRoaXMub25EcmF3U3RhcnRLZXkgPSB0aGlzLm9sRHJhd0ludGVyYWN0aW9uLm9uKFxyXG4gICAgICAnZHJhd3N0YXJ0JyxcclxuICAgICAgKGV2ZW50OiBPbERyYXdFdmVudCkgPT4gdGhpcy5vbkRyYXdTdGFydChldmVudClcclxuICAgICk7XHJcbiAgICB0aGlzLm9uRHJhd0VuZEtleSA9IHRoaXMub2xEcmF3SW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICdkcmF3ZW5kJyxcclxuICAgICAgKGV2ZW50OiBPbERyYXdFdmVudCkgPT4gdGhpcy5vbkRyYXdFbmQoZXZlbnQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbih0aGlzLm9sRHJhd0ludGVyYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIGRyYXcgaW50ZXJhY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIGRlYWN0aXZhdGVEcmF3SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW1vdmVPbExpbmVhclJpbmdzTGF5ZXIoKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZWRPbEludGVyYWN0aW9ucy5mb3JFYWNoKChvbEludGVyYWN0aW9uOiBPbEludGVyYWN0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMub2xNYXAuYWRkSW50ZXJhY3Rpb24ob2xJbnRlcmFjdGlvbik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVtb3ZlZE9sSW50ZXJhY3Rpb25zID0gW107XHJcblxyXG4gICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID0gZmFsc2U7XHJcbiAgICB1bkJ5S2V5KFt0aGlzLm9uRHJhd1N0YXJ0S2V5LCB0aGlzLm9uRHJhd0VuZEtleSwgdGhpcy5vbkRyYXdLZXldKTtcclxuICAgIGlmICh0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbE1hcC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm9sRHJhd0ludGVyYWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZHJhdyBzdGFydCwgYWRkIGEgbmV3IGxpbmVyYXIgcmluZyB0byB0aGUgZ2VvbWV0cnkgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIGV2ZW50IERyYXcgc3RhcnQgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uRHJhd1N0YXJ0KGV2ZW50OiBPbERyYXdFdmVudCkge1xyXG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcclxuICAgIHRoaXMub2xPdXRlckdlb21ldHJ5ID0gdGhpcy5nZXRPbEdlb21ldHJ5KCkuY2xvbmUoKTtcclxuXHJcbiAgICBjb25zdCBsaW5lYXJSaW5nQ29vcmRpbmF0ZXMgPSAoKG9sR2VvbWV0cnkgYXMgYW55KS5nZXRMaW5lYXJSaW5nKCkgYXMgYW55KS5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgdGhpcy5hZGRMaW5lYXJSaW5nVG9PbEdlb21ldHJ5KGxpbmVhclJpbmdDb29yZGluYXRlcyk7XHJcbiAgICB0aGlzLnN0YXJ0JC5uZXh0KHRoaXMuZ2V0T2xHZW9tZXRyeSgpKTtcclxuXHJcbiAgICB0aGlzLm9uRHJhd0tleSA9IG9sR2VvbWV0cnkub24oXHJcbiAgICAgICdjaGFuZ2UnLFxyXG4gICAgICAob2xHZW9tZXRyeUV2ZW50OiBCYXNpY0V2ZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uID0gZ2V0TW91c2VQb3NpdGlvbkZyb21PbEdlb21ldHJ5RXZlbnQoXHJcbiAgICAgICAgICBvbEdlb21ldHJ5RXZlbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IG9sR2VvbWV0cnlUYXJnZXQgPSBvbEdlb21ldHJ5RXZlbnQudGFyZ2V0IGFzIE9sUG9seWdvbjtcclxuICAgICAgICBjb25zdCBfbGluZWFyUmluZ0Nvb3JkaW5hdGVzID0gb2xHZW9tZXRyeVRhcmdldFxyXG4gICAgICAgICAgLmdldExpbmVhclJpbmcoMClcclxuICAgICAgICAgIC5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGluZWFyUmluZ09mT2xHZW9tZXRyeShfbGluZWFyUmluZ0Nvb3JkaW5hdGVzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZXMkLm5leHQodGhpcy5nZXRPbEdlb21ldHJ5KCkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0tleURvd24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJhbnNsYXRpb24gZW5kcywgdXBkYXRlIHRoZSBnZW9tZXRyeSBvYnNlcnZhYmxlIGFuZCBzdG9wIHdhdGNoaWduIGZvciBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIGV2ZW50IERyYXcgZW5kIGV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkRyYXdFbmQoZXZlbnQ6IE9sRHJhd0V2ZW50KSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMub25EcmF3S2V5KTtcclxuICAgIHRoaXMub2xPdXRlckdlb21ldHJ5ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0IGxpbmVhclJpbmdDb29yZGluYXRlcyA9ICgoZXZlbnQuZmVhdHVyZVxyXG4gICAgICAuZ2V0R2VvbWV0cnkoKSBhcyBhbnkpXHJcbiAgICAgIC5nZXRMaW5lYXJSaW5nKCkgYXMgYW55KVxyXG4gICAgICAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgIHRoaXMudXBkYXRlTGluZWFyUmluZ09mT2xHZW9tZXRyeShsaW5lYXJSaW5nQ29vcmRpbmF0ZXMpO1xyXG4gICAgdGhpcy5jbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKTtcclxuICAgIHRoaXMuZW5kJC5uZXh0KHRoaXMuZ2V0T2xHZW9tZXRyeSgpKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVUb0tleURvd24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIGxpbmVhciByaW5nIHRvIHRoZSBnZW9tZXRyeSBiZWluZyBtb2RpZmllZFxyXG4gICAqIEBwYXJhbSBjb29yZGluYXRlcyBMaW5lYXIgcmluZyBjb29yZGluYXRlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkTGluZWFyUmluZ1RvT2xHZW9tZXRyeShjb29yZGluYXRlczogbnVtYmVyW10pIHtcclxuICAgIGNvbnN0IG9sR2VvbWV0cnkgPSB0aGlzLmdldE9sR2VvbWV0cnkoKSBhcyBPbFBvbHlnb247XHJcbiAgICBjb25zdCBvbExpbmVhclJpbmcgPSBuZXcgT2xMaW5lYXJSaW5nKGNvb3JkaW5hdGVzKTtcclxuICAgIGFkZExpbmVhclJpbmdUb09sUG9seWdvbihvbEdlb21ldHJ5LCBvbExpbmVhclJpbmcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBsYXN0IGxpbmVhciByaW5nIG9mIHRoZSBnZW9tZXRyeSBiZWluZyBtb2RpZmllZFxyXG4gICAqIEBwYXJhbSBjb29yZGluYXRlcyBMaW5lYXIgcmluZyBjb29yZGluYXRlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlTGluZWFyUmluZ09mT2xHZW9tZXRyeShjb29yZGluYXRlczogbnVtYmVyW11bXSkge1xyXG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IHRoaXMuZ2V0T2xHZW9tZXRyeSgpIGFzIE9sUG9seWdvbjtcclxuICAgIC8vIFJlbW92ZSB0aGUgbGFzdCBsaW5lYXIgcmluZyAodGhlIG9uZSB3ZSBhcmUgdXBkYXRpbmcpXHJcbiAgICBjb25zdCBvbExpbmVhclJpbmdzID0gb2xHZW9tZXRyeS5nZXRMaW5lYXJSaW5ncygpLnNsaWNlKDAsIC0xKTtcclxuICAgIGNvbnN0IG5ld0Nvb3JkaW5hdGVzID0gb2xMaW5lYXJSaW5ncy5tYXAoKG9sTGluZWFyUmluZzogT2xMaW5lYXJSaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiBvbExpbmVhclJpbmcuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgIH0pO1xyXG4gICAgbmV3Q29vcmRpbmF0ZXMucHVzaChjb29yZGluYXRlcyk7XHJcbiAgICBvbEdlb21ldHJ5LnNldENvb3JkaW5hdGVzKG5ld0Nvb3JkaW5hdGVzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZ2VvbWV0cnkgYmVpbmcgbW9kaWZpZWRcclxuICAgKiBAcmV0dXJucyBPTCBHZW9tZXRyeVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0T2xHZW9tZXRyeSgpOiBPbEdlb21ldHJ5IHtcclxuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSB0aGlzLm9sT3ZlcmxheVNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgcmV0dXJuIG9sRmVhdHVyZXMubGVuZ3RoID4gMCA/IG9sRmVhdHVyZXNbMF0uZ2V0R2VvbWV0cnkoKSA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
|