@igo2/geo 1.15.4 → 16.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/igo2-geo.mjs +5 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +320 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +319 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +278 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +78 -0
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +223 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +89 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +230 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +91 -0
- package/esm2022/lib/catalog/catalog.module.mjs +48 -0
- package/esm2022/lib/catalog/index.mjs +5 -0
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
- package/esm2022/lib/catalog/shared/catalog.service.mjs +666 -0
- package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
- package/esm2022/lib/catalog/shared/index.mjs +5 -0
- package/esm2022/lib/datasource/datasource.module.mjs +22 -0
- package/esm2022/lib/datasource/index.mjs +3 -0
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +448 -0
- package/esm2022/lib/datasource/shared/datasource.service.mjs +259 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +212 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +34 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +61 -0
- package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +51 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +55 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +79 -0
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +169 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +218 -0
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +222 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
- package/esm2022/lib/datasource/shared/index.mjs +5 -0
- package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
- package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
- package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
- package/esm2022/lib/datasource/utils/index.mjs +2 -0
- package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +265 -0
- package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +294 -0
- package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +215 -0
- package/esm2022/lib/directions/directions-results/index.mjs +2 -0
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
- package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +128 -0
- package/esm2022/lib/directions/directions.component.mjs +374 -0
- package/esm2022/lib/directions/directions.module.mjs +106 -0
- package/esm2022/lib/directions/index.mjs +7 -0
- package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
- package/esm2022/lib/directions/shared/directions.enum.mjs +28 -0
- package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
- package/esm2022/lib/directions/shared/directions.service.mjs +202 -0
- package/esm2022/lib/directions/shared/directions.utils.mjs +559 -0
- package/esm2022/lib/directions/shared/index.mjs +6 -0
- package/esm2022/lib/directions/shared/store.mjs +21 -0
- package/esm2022/lib/download/download-button/download-button.component.mjs +65 -0
- package/esm2022/lib/download/download-button/index.mjs +2 -0
- package/esm2022/lib/download/download.module.mjs +42 -0
- package/esm2022/lib/download/index.mjs +3 -0
- package/esm2022/lib/download/shared/download.interface.mjs +2 -0
- package/esm2022/lib/download/shared/download.service.mjs +67 -0
- package/esm2022/lib/download/shared/index.mjs +3 -0
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +57 -0
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +677 -0
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
- package/esm2022/lib/draw/draw/draw.component.mjs +1369 -0
- package/esm2022/lib/draw/draw/draw.module.mjs +117 -0
- package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
- package/esm2022/lib/draw/index.mjs +3 -0
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
- package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
- package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
- package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
- package/esm2022/lib/draw/shared/index.mjs +5 -0
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +440 -0
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +57 -0
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +40 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +120 -0
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +23 -0
- package/esm2022/lib/feature/feature.module.mjs +21 -0
- package/esm2022/lib/feature/index.mjs +4 -0
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +27 -0
- package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
- package/esm2022/lib/feature/shared/feature.utils.mjs +333 -0
- package/esm2022/lib/feature/shared/index.mjs +8 -0
- package/esm2022/lib/feature/shared/store.mjs +143 -0
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +115 -0
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +96 -0
- package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +104 -0
- package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
- package/esm2022/lib/feature/shared/strategies/search.mjs +159 -0
- package/esm2022/lib/feature/shared/strategies/selection.mjs +384 -0
- package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
- package/esm2022/lib/filter/filter.module.mjs +300 -0
- package/esm2022/lib/filter/index.mjs +16 -0
- package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +153 -0
- package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +663 -0
- package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1344 -0
- package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +226 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +936 -0
- package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +83 -0
- package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +320 -0
- package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +36 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +47 -0
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
- package/esm2022/lib/filter/shared/index.mjs +12 -0
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +73 -0
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/ogc-filter.mjs +699 -0
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +48 -0
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
- package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +280 -0
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/time-filter.service.mjs +108 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1150 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +244 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +157 -0
- package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +82 -0
- package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +755 -0
- package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +124 -0
- package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +36 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +40 -0
- package/esm2022/lib/geo.module.mjs +106 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +563 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +218 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +56 -0
- package/esm2022/lib/geometry/geometry.module.mjs +20 -0
- package/esm2022/lib/geometry/index.mjs +4 -0
- package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
- package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
- package/esm2022/lib/geometry/shared/controls/modify.mjs +541 -0
- package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +26 -0
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +122 -0
- package/esm2022/lib/geometry/shared/index.mjs +5 -0
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +66 -0
- package/esm2022/lib/import-export/export-button/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +1350 -0
- package/esm2022/lib/import-export/import-export/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export.module.mjs +98 -0
- package/esm2022/lib/import-export/index.mjs +4 -0
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +174 -0
- package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
- package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/export.service.mjs +205 -0
- package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
- package/esm2022/lib/import-export/shared/export.utils.mjs +47 -0
- package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
- package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
- package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
- package/esm2022/lib/import-export/shared/index.mjs +11 -0
- package/esm2022/lib/layer/index.mjs +10 -0
- package/esm2022/lib/layer/layer-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +324 -0
- package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +429 -0
- package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +93 -0
- package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +201 -0
- package/esm2022/lib/layer/layer-list/index.mjs +4 -0
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +69 -0
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +1022 -0
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +19 -0
- package/esm2022/lib/layer/layer-list-tool/index.mjs +5 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +157 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
- package/esm2022/lib/layer/layer.module.mjs +175 -0
- package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
- package/esm2022/lib/layer/shared/index.mjs +5 -0
- package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
- package/esm2022/lib/layer/shared/layer.service.mjs +268 -0
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +70 -0
- package/esm2022/lib/layer/shared/layers/index.mjs +13 -0
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +17 -0
- package/esm2022/lib/layer/shared/layers/layer.mjs +184 -0
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +50 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +562 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +107 -0
- package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +60 -0
- package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
- package/esm2022/lib/layer/utils/index.mjs +6 -0
- package/esm2022/lib/layer/utils/layer.utils.mjs +11 -0
- package/esm2022/lib/layer/utils/outputLegend.mjs +28 -0
- package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
- package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +16 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +120 -0
- package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +155 -0
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +87 -0
- package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +80 -0
- package/esm2022/lib/map/home-extent-button/index.mjs +2 -0
- package/esm2022/lib/map/index.mjs +14 -0
- package/esm2022/lib/map/info-section/index.mjs +2 -0
- package/esm2022/lib/map/info-section/info-section.component.mjs +29 -0
- package/esm2022/lib/map/map-browser/index.mjs +2 -0
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +74 -0
- package/esm2022/lib/map/map-center/index.mjs +2 -0
- package/esm2022/lib/map/map-center/map-center.component.mjs +61 -0
- package/esm2022/lib/map/map.module.mjs +120 -0
- package/esm2022/lib/map/menu-button/index.mjs +2 -0
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +55 -0
- package/esm2022/lib/map/offline-button/index.mjs +2 -0
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +55 -0
- package/esm2022/lib/map/rotation-button/index.mjs +2 -0
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +73 -0
- package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
- package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
- package/esm2022/lib/map/shared/controllers/view.mjs +360 -0
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +493 -0
- package/esm2022/lib/map/shared/index.mjs +15 -0
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +248 -0
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +121 -0
- package/esm2022/lib/map/shared/map.abstract.mjs +23 -0
- package/esm2022/lib/map/shared/map.enums.mjs +6 -0
- package/esm2022/lib/map/shared/map.interface.mjs +2 -0
- package/esm2022/lib/map/shared/map.mjs +434 -0
- package/esm2022/lib/map/shared/map.service.mjs +30 -0
- package/esm2022/lib/map/shared/map.utils.mjs +456 -0
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +107 -0
- package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
- package/esm2022/lib/map/shared/projection.service.mjs +67 -0
- package/esm2022/lib/map/shared/projection.utils.mjs +64 -0
- package/esm2022/lib/map/swipe-control/index.mjs +2 -0
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +219 -0
- package/esm2022/lib/map/utils/layer-watcher.mjs +78 -0
- package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +106 -0
- package/esm2022/lib/map/zoom-button/index.mjs +2 -0
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +49 -0
- package/esm2022/lib/measure/index.mjs +4 -0
- package/esm2022/lib/measure/measure.module.mjs +18 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +39 -0
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +184 -0
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +162 -0
- package/esm2022/lib/measure/measurer/measurer.component.mjs +1121 -0
- package/esm2022/lib/measure/measurer/measurer.module.mjs +95 -0
- package/esm2022/lib/measure/shared/index.mjs +4 -0
- package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
- package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
- package/esm2022/lib/metadata/index.mjs +3 -0
- package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +140 -0
- package/esm2022/lib/metadata/metadata.module.mjs +47 -0
- package/esm2022/lib/metadata/shared/index.mjs +3 -0
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
- package/esm2022/lib/metadata/shared/metadata.service.mjs +19 -0
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +128 -0
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +175 -0
- package/esm2022/lib/offline/geoDB/index.mjs +5 -0
- package/esm2022/lib/offline/index.mjs +4 -0
- package/esm2022/lib/offline/layerDB/index.mjs +3 -0
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +84 -0
- package/esm2022/lib/offline/shared/geo-network.service.mjs +87 -0
- package/esm2022/lib/offline/shared/index.mjs +2 -0
- package/esm2022/lib/overlay/index.mjs +2 -0
- package/esm2022/lib/overlay/overlay.module.mjs +23 -0
- package/esm2022/lib/overlay/shared/index.mjs +6 -0
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +38 -0
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
- package/esm2022/lib/overlay/shared/overlay.mjs +138 -0
- package/esm2022/lib/overlay/shared/overlay.service.mjs +26 -0
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
- package/esm2022/lib/print/index.mjs +4 -0
- package/esm2022/lib/print/print/print.component.mjs +122 -0
- package/esm2022/lib/print/print-form/index.mjs +2 -0
- package/esm2022/lib/print/print-form/print-form.component.mjs +580 -0
- package/esm2022/lib/print/print.module.mjs +65 -0
- package/esm2022/lib/print/shared/geopdf.mjs +68 -0
- package/esm2022/lib/print/shared/index.mjs +5 -0
- package/esm2022/lib/print/shared/print.interface.mjs +2 -0
- package/esm2022/lib/print/shared/print.service.mjs +1093 -0
- package/esm2022/lib/print/shared/print.type.mjs +30 -0
- package/esm2022/lib/query/index.mjs +2 -0
- package/esm2022/lib/query/query.module.mjs +29 -0
- package/esm2022/lib/query/shared/index.mjs +7 -0
- package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
- package/esm2022/lib/query/shared/query.directive.mjs +285 -0
- package/esm2022/lib/query/shared/query.enums.mjs +30 -0
- package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
- package/esm2022/lib/query/shared/query.service.mjs +753 -0
- package/esm2022/lib/query/shared/query.utils.mjs +41 -0
- package/esm2022/lib/search/index.mjs +12 -0
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +559 -0
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +73 -0
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +40 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +132 -0
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +456 -0
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +166 -0
- package/esm2022/lib/search/search-results/search-results.component.mjs +480 -0
- package/esm2022/lib/search/search-results/search-results.module.mjs +104 -0
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +133 -0
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +56 -0
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +448 -0
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +60 -0
- package/esm2022/lib/search/search.module.mjs +67 -0
- package/esm2022/lib/search/shared/index.mjs +9 -0
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +337 -0
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
- package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
- package/esm2022/lib/search/shared/search.enums.mjs +4 -0
- package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/search.service.mjs +130 -0
- package/esm2022/lib/search/shared/search.utils.mjs +92 -0
- package/esm2022/lib/search/shared/sources/cadastre.mjs +139 -0
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +23 -0
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/coordinates.mjs +166 -0
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +40 -0
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/icherche.mjs +796 -0
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +66 -0
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/ilayer.mjs +335 -0
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +46 -0
- package/esm2022/lib/search/shared/sources/index.mjs +23 -0
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +23 -0
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/source.mjs +220 -0
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +455 -0
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/workspace.mjs +191 -0
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +22 -0
- package/esm2022/lib/style/index.mjs +5 -0
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +359 -0
- package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
- package/esm2022/lib/style/shared/feature/feature-style.mjs +161 -0
- package/esm2022/lib/style/shared/feature/index.mjs +2 -0
- package/esm2022/lib/style/shared/font.enum.mjs +17 -0
- package/esm2022/lib/style/shared/index.mjs +5 -0
- package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +45 -0
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
- package/esm2022/lib/style/shared/vector/index.mjs +4 -0
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/index.mjs +5 -0
- package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
- package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
- package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
- package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
- package/esm2022/lib/style/style-modal/index.mjs +5 -0
- package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +182 -0
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +48 -0
- package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
- package/esm2022/lib/style/style-service/draw-style.service.mjs +256 -0
- package/esm2022/lib/style/style-service/index.mjs +3 -0
- package/esm2022/lib/style/style-service/style.service.mjs +393 -0
- package/esm2022/lib/style/style.module.mjs +92 -0
- package/esm2022/lib/toast/index.mjs +2 -0
- package/esm2022/lib/toast/toast.component.mjs +119 -0
- package/esm2022/lib/toast/toast.module.mjs +45 -0
- package/esm2022/lib/utils/googleLinks.mjs +13 -0
- package/esm2022/lib/utils/id-generator.mjs +110 -0
- package/esm2022/lib/utils/index.mjs +5 -0
- package/esm2022/lib/utils/osmLinks.mjs +9 -0
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
- package/esm2022/lib/wkt/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/wkt.service.mjs +236 -0
- package/esm2022/lib/wkt/wkt.module.mjs +22 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +52 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
- package/esm2022/lib/workspace/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +304 -0
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +711 -0
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +109 -0
- package/esm2022/lib/workspace/shared/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +102 -0
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +225 -0
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +185 -0
- package/esm2022/lib/workspace/widgets/index.mjs +4 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +52 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +25 -0
- package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +167 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +22 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +135 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +22 -0
- package/esm2022/lib/workspace/workspace.module.mjs +58 -0
- package/esm2022/public_api.mjs +57 -0
- package/fesm2022/igo2-geo.mjs +48164 -0
- package/fesm2022/igo2-geo.mjs.map +1 -0
- package/geo-theme.scss +21 -0
- package/index.d.ts +5 -5
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +117 -117
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +77 -77
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +99 -99
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +64 -64
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
- package/lib/catalog/catalog.module.d.ts +14 -14
- package/lib/catalog/index.d.ts +4 -4
- package/lib/catalog/shared/catalog.abstract.d.ts +41 -50
- package/lib/catalog/shared/catalog.enum.d.ts +14 -14
- package/lib/catalog/shared/catalog.interface.d.ts +76 -76
- package/lib/catalog/shared/catalog.service.d.ts +36 -36
- package/lib/catalog/shared/catalogs.d.ts +35 -0
- package/lib/catalog/shared/index.d.ts +4 -4
- package/lib/datasource/datasource.module.d.ts +8 -8
- package/lib/datasource/index.d.ts +2 -2
- package/lib/datasource/shared/capabilities.service.d.ts +37 -37
- package/lib/datasource/shared/datasource.service.d.ts +37 -37
- package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
- package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
- package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
- package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +113 -113
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +23 -23
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/index.d.ts +35 -35
- package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +45 -31
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +37 -32
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
- package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/index.d.ts +4 -4
- package/lib/datasource/shared/options/index.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
- package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
- package/lib/datasource/shared/options/options.service.d.ts +6 -6
- package/lib/datasource/utils/index.d.ts +1 -1
- package/lib/datasource/utils/tilegrid.d.ts +2 -2
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +35 -30
- package/lib/directions/directions-buttons/index.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
- package/lib/directions/directions-inputs/index.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
- package/lib/directions/directions-results/directions-results.theming.scss +10 -0
- package/lib/directions/directions-results/index.d.ts +1 -1
- package/lib/directions/directions-sources/directions-source.d.ts +7 -7
- package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
- package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
- package/lib/directions/directions-sources/index.d.ts +4 -4
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +24 -23
- package/lib/directions/directions.component.d.ts +64 -56
- package/lib/directions/directions.module.d.ts +27 -26
- package/lib/directions/directions.theming.scss +6 -0
- package/lib/directions/index.d.ts +6 -6
- package/lib/directions/shared/directions-source.service.d.ts +11 -11
- package/lib/directions/shared/directions.enum.d.ts +22 -22
- package/lib/directions/shared/directions.interface.d.ts +126 -126
- package/lib/directions/shared/directions.service.d.ts +28 -13
- package/lib/directions/shared/directions.utils.d.ts +42 -42
- package/lib/directions/shared/index.d.ts +5 -5
- package/lib/directions/shared/store.d.ts +18 -18
- package/lib/download/download-button/download-button.component.d.ts +18 -18
- package/lib/download/download-button/index.d.ts +1 -1
- package/lib/download/download.module.d.ts +14 -14
- package/lib/download/index.d.ts +2 -2
- package/lib/download/shared/download.interface.d.ts +10 -10
- package/lib/download/shared/download.service.d.ts +10 -10
- package/lib/download/shared/index.d.ts +2 -2
- package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
- package/lib/draw/draw/draw-popup.component.d.ts +63 -63
- package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
- package/lib/draw/draw/draw.component.d.ts +240 -240
- package/lib/draw/draw/draw.module.d.ts +33 -34
- package/lib/draw/draw.theming.scss +32 -0
- package/lib/draw/drawingTool.module.d.ts +7 -7
- package/lib/draw/index.d.ts +2 -2
- package/lib/draw/shared/draw-icon.service.d.ts +12 -12
- package/lib/draw/shared/draw.enum.d.ts +17 -17
- package/lib/draw/shared/draw.interface.d.ts +40 -40
- package/lib/draw/shared/draw.utils.d.ts +35 -35
- package/lib/draw/shared/index.d.ts +4 -4
- package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
- package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
- package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
- package/lib/feature/feature-details/feature-details.theming.scss +16 -0
- package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
- package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
- package/lib/feature/feature.module.d.ts +9 -9
- package/lib/feature/feature.theming.scss +4 -0
- package/lib/feature/index.d.ts +3 -3
- package/lib/feature/shared/feature-store.utils.d.ts +10 -0
- package/lib/feature/shared/feature.enums.d.ts +7 -7
- package/lib/feature/shared/feature.interfaces.d.ts +82 -79
- package/lib/feature/shared/feature.utils.d.ts +97 -106
- package/lib/feature/shared/index.d.ts +7 -6
- package/lib/feature/shared/store.d.ts +78 -78
- package/lib/feature/shared/strategies/geo-properties.d.ts +61 -0
- package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
- package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
- package/lib/feature/shared/strategies/index.d.ts +7 -6
- package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
- package/lib/feature/shared/strategies/loading.d.ts +75 -75
- package/lib/feature/shared/strategies/search.d.ts +55 -55
- package/lib/feature/shared/strategies/selection.d.ts +176 -176
- package/lib/feature/shared/strategies.utils.d.ts +17 -17
- package/lib/filter/filter.module.d.ts +53 -53
- package/lib/filter/filter.theming.scss +16 -0
- package/lib/filter/index.d.ts +15 -15
- package/lib/filter/ogc-filter-button/index.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
- package/lib/filter/ogc-filter-form/index.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
- package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -0
- package/lib/filter/ogc-filter-time/index.d.ts +2 -2
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +15 -0
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
- package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
- package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
- package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
- package/lib/filter/shared/index.d.ts +11 -11
- package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
- package/lib/filter/shared/ogc-filter.d.ts +29 -29
- package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
- package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
- package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
- package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
- package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
- package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
- package/lib/filter/shared/time-filter.enum.d.ts +10 -10
- package/lib/filter/shared/time-filter.interface.d.ts +15 -29
- package/lib/filter/shared/time-filter.service.d.ts +11 -11
- package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
- package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +57 -57
- package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
- package/lib/filter/time-filter-button/index.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
- package/lib/filter/time-filter-form/index.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
- package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -0
- package/lib/filter/time-filter-item/index.d.ts +1 -1
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
- package/lib/filter/time-filter-list/index.d.ts +2 -2
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
- package/lib/geo.module.d.ts +29 -29
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +202 -202
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
- package/lib/geometry/geometry.module.d.ts +8 -8
- package/lib/geometry/index.d.ts +3 -3
- package/lib/geometry/shared/controls/draw.d.ts +150 -150
- package/lib/geometry/shared/controls/index.d.ts +3 -3
- package/lib/geometry/shared/controls/modify.d.ts +228 -228
- package/lib/geometry/shared/controls/slice.d.ts +99 -99
- package/lib/geometry/shared/geometry.errors.d.ts +11 -11
- package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
- package/lib/geometry/shared/geometry.utils.d.ts +45 -45
- package/lib/geometry/shared/index.d.ts +4 -4
- package/lib/import-export/export-button/export-button.component.d.ts +16 -16
- package/lib/import-export/export-button/index.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +109 -109
- package/lib/import-export/import-export/index.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +25 -25
- package/lib/import-export/index.d.ts +3 -3
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +39 -39
- package/lib/import-export/shared/export.errors.d.ts +8 -8
- package/lib/import-export/shared/export.interface.d.ts +11 -11
- package/lib/import-export/shared/export.service.d.ts +30 -30
- package/lib/import-export/shared/export.type.d.ts +16 -16
- package/lib/import-export/shared/export.utils.d.ts +19 -19
- package/lib/import-export/shared/import.errors.d.ts +20 -20
- package/lib/import-export/shared/import.interface.d.ts +10 -10
- package/lib/import-export/shared/import.service.d.ts +31 -31
- package/lib/import-export/shared/import.utils.d.ts +20 -20
- package/lib/import-export/shared/index.d.ts +10 -10
- package/lib/layer/index.d.ts +9 -9
- package/lib/layer/layer-item/index.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
- package/lib/layer/layer-legend/index.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
- package/lib/layer/layer-legend/layer-legend.theming.scss +10 -0
- package/lib/layer/layer-legend-item/index.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
- package/lib/layer/layer-legend-list/index.d.ts +2 -2
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
- package/lib/layer/layer-list/index.d.ts +3 -3
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
- package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
- package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
- package/lib/layer/layer-list-tool/index.d.ts +4 -4
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
- package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
- package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
- package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
- package/lib/layer/layer-list-tool/layer-list-tool.theming.scss +22 -0
- package/lib/layer/layer.module.d.ts +34 -35
- package/lib/layer/layer.theming.scss +24 -0
- package/lib/layer/shared/clusterParam.d.ts +13 -13
- package/lib/layer/shared/index.d.ts +4 -4
- package/lib/layer/shared/layer.enums.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +33 -33
- package/lib/layer/shared/layers/any-layer.d.ts +6 -6
- package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
- package/lib/layer/shared/layers/image-layer.d.ts +21 -21
- package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
- package/lib/layer/shared/layers/index.d.ts +12 -12
- package/lib/layer/shared/layers/layer.d.ts +66 -66
- package/lib/layer/shared/layers/layer.interface.d.ts +90 -109
- package/lib/layer/shared/layers/legend.interface.d.ts +22 -0
- package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
- package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
- package/lib/layer/shared/layers/vector-layer.d.ts +94 -94
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +42 -42
- package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +16 -16
- package/lib/layer/track-feature-button/index.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
- package/lib/layer/utils/image-watcher.d.ts +16 -16
- package/lib/layer/utils/index.d.ts +5 -5
- package/lib/layer/utils/layer.utils.d.ts +2 -2
- package/lib/layer/utils/outputLegend.d.ts +7 -7
- package/lib/layer/utils/tile-watcher.d.ts +14 -14
- package/lib/layer/utils/vector-watcher.d.ts +13 -13
- package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +22 -21
- package/lib/map/baselayers-switcher/index.d.ts +2 -2
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
- package/lib/map/geolocate-button/index.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
- package/lib/map/home-extent-button/index.d.ts +1 -1
- package/lib/map/index.d.ts +13 -13
- package/lib/map/info-section/index.d.ts +1 -1
- package/lib/map/info-section/info-section.component.d.ts +7 -7
- package/lib/map/map-browser/index.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +25 -25
- package/lib/map/map-browser/map-browser.theming.scss +46 -0
- package/lib/map/map-center/index.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +31 -31
- package/lib/map/map.module.d.ts +28 -28
- package/lib/map/map.theming.scss +9 -0
- package/lib/map/menu-button/index.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +17 -17
- package/lib/map/menu-button/menu-button.theming.scss +20 -0
- package/lib/map/offline-button/index.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +15 -15
- package/lib/map/rotation-button/index.d.ts +1 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
- package/lib/map/shared/controllers/controller.d.ts +29 -29
- package/lib/map/shared/controllers/geolocation.d.ts +95 -127
- package/lib/map/shared/controllers/geolocation.interface.d.ts +30 -0
- package/lib/map/shared/controllers/index.d.ts +4 -3
- package/lib/map/shared/controllers/view.d.ts +200 -200
- package/lib/map/shared/hover-feature.directive.d.ts +124 -124
- package/lib/map/shared/index.d.ts +14 -13
- package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
- package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
- package/lib/map/shared/map.abstract.d.ts +59 -0
- package/lib/map/shared/map.d.ts +140 -135
- package/lib/map/shared/map.enums.d.ts +4 -4
- package/lib/map/shared/map.interface.d.ts +57 -57
- package/lib/map/shared/map.service.d.ts +19 -19
- package/lib/map/shared/map.utils.d.ts +90 -90
- package/lib/map/shared/mapOffline.directive.d.ts +18 -18
- package/lib/map/shared/projection.interfaces.d.ts +29 -29
- package/lib/map/shared/projection.service.d.ts +19 -19
- package/lib/map/shared/projection.utils.d.ts +19 -19
- package/lib/map/swipe-control/index.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
- package/lib/map/utils/layer-watcher.d.ts +20 -20
- package/lib/map/wake-lock-button/index.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +27 -27
- package/lib/map/zoom-button/index.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
- package/lib/map/zoom-button/zoom-button.theming.scss +32 -0
- package/lib/measure/index.d.ts +3 -3
- package/lib/measure/measure.module.d.ts +7 -7
- package/lib/measure/measure.theming.scss +5 -0
- package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
- package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
- package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
- package/lib/measure/measurer/measurer.component.d.ts +405 -405
- package/lib/measure/measurer/measurer.module.d.ts +26 -25
- package/lib/measure/measurer/measurer.theming.scss +26 -0
- package/lib/measure/shared/index.d.ts +3 -3
- package/lib/measure/shared/measure.enum.d.ts +33 -33
- package/lib/measure/shared/measure.interfaces.d.ts +21 -21
- package/lib/measure/shared/measure.utils.d.ts +180 -180
- package/lib/metadata/index.d.ts +2 -2
- package/lib/metadata/metadata-button/index.d.ts +1 -1
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
- package/lib/metadata/metadata.module.d.ts +15 -15
- package/lib/metadata/shared/index.d.ts +2 -2
- package/lib/metadata/shared/metadata.interface.d.ts +13 -13
- package/lib/metadata/shared/metadata.service.d.ts +8 -8
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
- package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
- package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
- package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
- package/lib/offline/geoDB/index.d.ts +4 -4
- package/lib/offline/index.d.ts +3 -3
- package/lib/offline/layerDB/index.d.ts +2 -2
- package/lib/offline/layerDB/layerDB.interface.d.ts +7 -7
- package/lib/offline/layerDB/layerDB.service.d.ts +36 -36
- package/lib/offline/shared/geo-network.service.d.ts +28 -28
- package/lib/offline/shared/index.d.ts +1 -1
- package/lib/overlay/index.d.ts +1 -1
- package/lib/overlay/overlay.module.d.ts +9 -9
- package/lib/overlay/shared/index.d.ts +5 -5
- package/lib/overlay/shared/overlay.d.ts +81 -81
- package/lib/overlay/shared/overlay.directive.d.ts +18 -18
- package/lib/overlay/shared/overlay.enum.d.ts +6 -6
- package/lib/overlay/shared/overlay.service.d.ts +14 -14
- package/lib/overlay/shared/overlay.utils.d.ts +6 -6
- package/lib/print/index.d.ts +3 -3
- package/lib/print/print/print.component.d.ts +35 -35
- package/lib/print/print-form/index.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +99 -99
- package/lib/print/print.module.d.ts +19 -19
- package/lib/print/shared/geopdf.d.ts +1 -1
- package/lib/print/shared/index.d.ts +4 -4
- package/lib/print/shared/print.interface.d.ts +22 -22
- package/lib/print/shared/print.service.d.ts +171 -174
- package/lib/print/shared/print.type.d.ts +45 -45
- package/lib/query/index.d.ts +1 -1
- package/lib/query/query.module.d.ts +11 -11
- package/lib/query/shared/index.d.ts +6 -6
- package/lib/query/shared/query-search-source.d.ts +17 -17
- package/lib/query/shared/query-search-source.providers.d.ts +17 -17
- package/lib/query/shared/query.directive.d.ts +105 -105
- package/lib/query/shared/query.enums.d.ts +26 -26
- package/lib/query/shared/query.interfaces.d.ts +35 -35
- package/lib/query/shared/query.service.d.ts +56 -56
- package/lib/query/shared/query.utils.d.ts +27 -27
- package/lib/search/index.d.ts +11 -11
- package/lib/search/search-bar/search-bar.component.d.ts +231 -230
- package/lib/search/search-bar/search-bar.module.d.ts +24 -23
- package/lib/search/search-bar/search-bar.theming.scss +36 -0
- package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
- package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
- package/lib/search/search-results/search-results-add-button.component.d.ts +84 -84
- package/lib/search/search-results/search-results-item.component.d.ts +52 -52
- package/lib/search/search-results/search-results.component.d.ts +165 -165
- package/lib/search/search-results/search-results.module.d.ts +29 -29
- package/lib/search/search-selector/search-selector.component.d.ts +58 -58
- package/lib/search/search-selector/search-selector.module.d.ts +19 -19
- package/lib/search/search-settings/search-settings.component.d.ts +102 -102
- package/lib/search/search-settings/search-settings.module.d.ts +20 -20
- package/lib/search/search.module.d.ts +14 -14
- package/lib/search/search.theming.scss +5 -0
- package/lib/search/shared/index.d.ts +8 -8
- package/lib/search/shared/search-pointer-summary.directive.d.ts +125 -124
- package/lib/search/shared/search-source-service.providers.d.ts +15 -15
- package/lib/search/shared/search-source.service.d.ts +39 -39
- package/lib/search/shared/search.enums.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +54 -29
- package/lib/search/shared/search.service.d.ts +53 -53
- package/lib/search/shared/search.utils.d.ts +39 -39
- package/lib/search/shared/sources/cadastre.d.ts +34 -33
- package/lib/search/shared/sources/cadastre.providers.d.ts +18 -18
- package/lib/search/shared/sources/coordinates.d.ts +40 -40
- package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
- package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
- package/lib/search/shared/sources/icherche.d.ts +98 -96
- package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
- package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
- package/lib/search/shared/sources/ilayer.d.ts +56 -55
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
- package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
- package/lib/search/shared/sources/index.d.ts +22 -22
- package/lib/search/shared/sources/nominatim.d.ts +46 -45
- package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
- package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
- package/lib/search/shared/sources/source.d.ts +86 -114
- package/lib/search/shared/sources/source.interfaces.d.ts +54 -47
- package/lib/search/shared/sources/storedqueries.d.ts +75 -73
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
- package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
- package/lib/search/shared/sources/workspace.d.ts +33 -33
- package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -9
- package/lib/search/shared/sources/workspace.providers.d.ts +17 -17
- package/lib/style/index.d.ts +4 -4
- package/lib/style/shared/datasource/esri-style-generator.d.ts +21 -21
- package/lib/style/shared/datasource/index.d.ts +1 -1
- package/lib/style/shared/feature/feature-style.d.ts +18 -18
- package/lib/style/shared/feature/index.d.ts +1 -1
- package/lib/style/shared/font.enum.d.ts +15 -15
- package/lib/style/shared/index.d.ts +4 -4
- package/lib/style/shared/overlay/index.d.ts +2 -2
- package/lib/style/shared/overlay/overlay-marker-style.utils.d.ts +11 -11
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -19
- package/lib/style/shared/vector/commonVectorStyle.d.ts +14 -14
- package/lib/style/shared/vector/conversion.utils.d.ts +22 -22
- package/lib/style/shared/vector/index.d.ts +3 -3
- package/lib/style/shared/vector/vector-style.interface.d.ts +69 -69
- package/lib/style/style-list/index.d.ts +4 -4
- package/lib/style/style-list/style-list.interface.d.ts +6 -6
- package/lib/style/style-list/style-list.module.d.ts +8 -8
- package/lib/style/style-list/style-list.provider.d.ts +15 -15
- package/lib/style/style-list/style-list.service.d.ts +18 -18
- package/lib/style/style-modal/drawing/index.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +33 -31
- package/lib/style/style-modal/index.d.ts +4 -4
- package/lib/style/style-modal/layer/index.d.ts +1 -1
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +32 -30
- package/lib/style/style-modal/layer-button/index.d.ts +1 -1
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -14
- package/lib/style/style-modal/shared/index.d.ts +1 -1
- package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -17
- package/lib/style/style-service/draw-style.service.d.ts +35 -35
- package/lib/style/style-service/index.d.ts +2 -2
- package/lib/style/style-service/style.service.d.ts +57 -57
- package/lib/style/style.module.d.ts +23 -22
- package/lib/toast/index.d.ts +1 -1
- package/lib/toast/toast.component.d.ts +33 -33
- package/lib/toast/toast.module.d.ts +14 -14
- package/lib/utils/googleLinks.d.ts +5 -5
- package/lib/utils/id-generator.d.ts +54 -54
- package/lib/utils/index.d.ts +4 -3
- package/lib/utils/osmLinks.d.ts +4 -4
- package/lib/utils/propertyTypeDetector/index.d.ts +2 -0
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.d.ts +5 -0
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +15 -0
- package/lib/wkt/index.d.ts +1 -1
- package/lib/wkt/shared/index.d.ts +1 -1
- package/lib/wkt/shared/wkt.service.d.ts +19 -19
- package/lib/wkt/wkt.module.d.ts +8 -8
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
- package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -0
- package/lib/workspace/confirmation-popup/index.d.ts +2 -2
- package/lib/workspace/index.d.ts +7 -7
- package/lib/workspace/shared/edition-workspace.d.ts +84 -82
- package/lib/workspace/shared/edition-workspace.service.d.ts +50 -51
- package/lib/workspace/shared/feature-workspace.d.ts +18 -18
- package/lib/workspace/shared/feature-workspace.service.d.ts +22 -19
- package/lib/workspace/shared/index.d.ts +7 -7
- package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
- package/lib/workspace/shared/wfs-workspace.service.d.ts +22 -19
- package/lib/workspace/shared/wms-workspace.service.d.ts +24 -22
- package/lib/workspace/shared/workspace.utils.d.ts +23 -10
- package/lib/workspace/widgets/index.d.ts +3 -3
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
- package/lib/workspace/widgets/widgets.d.ts +9 -9
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
- package/lib/workspace/workspace.module.d.ts +14 -14
- package/lib/workspace/workspace.theming.scss +6 -0
- package/locale/en.geo.json +808 -0
- package/locale/fr.geo.json +809 -0
- package/package.json +38 -38
- package/public_api.d.ts +53 -53
- package/style/style.css +350 -0
- package/esm2020/igo2-geo.mjs +0 -5
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -303
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -306
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -250
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -80
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -209
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -79
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +0 -212
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +0 -95
- package/esm2020/lib/catalog/catalog.module.mjs +0 -53
- package/esm2020/lib/catalog/index.mjs +0 -5
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +0 -95
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +0 -16
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +0 -2
- package/esm2020/lib/catalog/shared/catalog.service.mjs +0 -604
- package/esm2020/lib/catalog/shared/index.mjs +0 -5
- package/esm2020/lib/datasource/datasource.module.mjs +0 -22
- package/esm2020/lib/datasource/index.mjs +0 -3
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +0 -431
- package/esm2020/lib/datasource/shared/datasource.service.mjs +0 -232
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -145
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +0 -109
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -15
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +0 -3
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +0 -29
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +0 -43
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -57
- package/esm2020/lib/datasource/shared/datasources/index.mjs +0 -36
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -28
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +0 -12
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -49
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -15
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -54
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -72
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +0 -152
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +0 -206
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -207
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -16
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -9
- package/esm2020/lib/datasource/shared/index.mjs +0 -5
- package/esm2020/lib/datasource/shared/options/index.mjs +0 -5
- package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +0 -2
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +0 -15
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +0 -81
- package/esm2020/lib/datasource/shared/options/options.service.mjs +0 -3
- package/esm2020/lib/datasource/utils/index.mjs +0 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +0 -20
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -218
- package/esm2020/lib/directions/directions-buttons/index.mjs +0 -2
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -290
- package/esm2020/lib/directions/directions-inputs/index.mjs +0 -2
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +0 -196
- package/esm2020/lib/directions/directions-results/index.mjs +0 -2
- package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +0 -2
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +0 -3
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +0 -16
- package/esm2020/lib/directions/directions-sources/index.mjs +0 -5
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +0 -99
- package/esm2020/lib/directions/directions.component.mjs +0 -311
- package/esm2020/lib/directions/directions.module.mjs +0 -102
- package/esm2020/lib/directions/index.mjs +0 -7
- package/esm2020/lib/directions/shared/directions-source.service.mjs +0 -17
- package/esm2020/lib/directions/shared/directions.enum.mjs +0 -28
- package/esm2020/lib/directions/shared/directions.interface.mjs +0 -2
- package/esm2020/lib/directions/shared/directions.service.mjs +0 -29
- package/esm2020/lib/directions/shared/directions.utils.mjs +0 -509
- package/esm2020/lib/directions/shared/index.mjs +0 -6
- package/esm2020/lib/directions/shared/store.mjs +0 -24
- package/esm2020/lib/download/download-button/download-button.component.mjs +0 -61
- package/esm2020/lib/download/download-button/index.mjs +0 -2
- package/esm2020/lib/download/download.module.mjs +0 -42
- package/esm2020/lib/download/index.mjs +0 -3
- package/esm2020/lib/download/shared/download.interface.mjs +0 -2
- package/esm2020/lib/download/shared/download.service.mjs +0 -62
- package/esm2020/lib/download/shared/index.mjs +0 -3
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +0 -55
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +0 -591
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +0 -48
- package/esm2020/lib/draw/draw/draw.component.mjs +0 -1300
- package/esm2020/lib/draw/draw/draw.module.mjs +0 -113
- package/esm2020/lib/draw/drawingTool.module.mjs +0 -20
- package/esm2020/lib/draw/index.mjs +0 -3
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +0 -27
- package/esm2020/lib/draw/shared/draw.enum.mjs +0 -21
- package/esm2020/lib/draw/shared/draw.interface.mjs +0 -2
- package/esm2020/lib/draw/shared/draw.utils.mjs +0 -122
- package/esm2020/lib/draw/shared/index.mjs +0 -5
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +0 -404
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +0 -54
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +0 -48
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +0 -112
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +0 -34
- package/esm2020/lib/feature/feature.module.mjs +0 -28
- package/esm2020/lib/feature/index.mjs +0 -4
- package/esm2020/lib/feature/shared/feature.enums.mjs +0 -9
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +0 -2
- package/esm2020/lib/feature/shared/feature.utils.mjs +0 -349
- package/esm2020/lib/feature/shared/index.mjs +0 -7
- package/esm2020/lib/feature/shared/store.mjs +0 -133
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +0 -113
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +0 -94
- package/esm2020/lib/feature/shared/strategies/index.mjs +0 -7
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +0 -104
- package/esm2020/lib/feature/shared/strategies/loading.mjs +0 -133
- package/esm2020/lib/feature/shared/strategies/search.mjs +0 -150
- package/esm2020/lib/feature/shared/strategies/selection.mjs +0 -370
- package/esm2020/lib/feature/shared/strategies.utils.mjs +0 -37
- package/esm2020/lib/filter/filter.module.mjs +0 -289
- package/esm2020/lib/filter/index.mjs +0 -16
- package/esm2020/lib/filter/ogc-filter-button/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -140
- package/esm2020/lib/filter/ogc-filter-form/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -645
- package/esm2020/lib/filter/ogc-filter-selection/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -1302
- package/esm2020/lib/filter/ogc-filter-time/index.mjs +0 -3
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -177
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -898
- package/esm2020/lib/filter/ogc-filterable-form/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -59
- package/esm2020/lib/filter/ogc-filterable-item/index.mjs +0 -2
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -307
- package/esm2020/lib/filter/ogc-filterable-list/index.mjs +0 -3
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -31
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -44
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +0 -55
- package/esm2020/lib/filter/shared/index.mjs +0 -12
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +0 -30
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/ogc-filter.mjs +0 -692
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +0 -46
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +0 -23
- package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +0 -269
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +0 -13
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +0 -2
- package/esm2020/lib/filter/shared/time-filter.service.mjs +0 -107
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -1089
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -207
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -144
- package/esm2020/lib/filter/time-filter-button/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -78
- package/esm2020/lib/filter/time-filter-form/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -734
- package/esm2020/lib/filter/time-filter-item/index.mjs +0 -2
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -119
- package/esm2020/lib/filter/time-filter-list/index.mjs +0 -3
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -31
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -39
- package/esm2020/lib/geo.module.mjs +0 -106
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -522
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -189
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -64
- package/esm2020/lib/geometry/geometry.module.mjs +0 -27
- package/esm2020/lib/geometry/index.mjs +0 -4
- package/esm2020/lib/geometry/shared/controls/draw.mjs +0 -314
- package/esm2020/lib/geometry/shared/controls/index.mjs +0 -4
- package/esm2020/lib/geometry/shared/controls/modify.mjs +0 -521
- package/esm2020/lib/geometry/shared/controls/slice.mjs +0 -177
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +0 -26
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +0 -2
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +0 -122
- package/esm2020/lib/geometry/shared/index.mjs +0 -5
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +0 -64
- package/esm2020/lib/import-export/export-button/index.mjs +0 -2
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +0 -1228
- package/esm2020/lib/import-export/import-export/index.mjs +0 -2
- package/esm2020/lib/import-export/import-export.module.mjs +0 -92
- package/esm2020/lib/import-export/index.mjs +0 -4
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +0 -152
- package/esm2020/lib/import-export/shared/export.errors.mjs +0 -15
- package/esm2020/lib/import-export/shared/export.interface.mjs +0 -2
- package/esm2020/lib/import-export/shared/export.service.mjs +0 -195
- package/esm2020/lib/import-export/shared/export.type.mjs +0 -4
- package/esm2020/lib/import-export/shared/export.utils.mjs +0 -46
- package/esm2020/lib/import-export/shared/import.errors.mjs +0 -39
- package/esm2020/lib/import-export/shared/import.interface.mjs +0 -2
- package/esm2020/lib/import-export/shared/import.service.mjs +0 -215
- package/esm2020/lib/import-export/shared/import.utils.mjs +0 -202
- package/esm2020/lib/import-export/shared/index.mjs +0 -11
- package/esm2020/lib/layer/index.mjs +0 -10
- package/esm2020/lib/layer/layer-item/index.mjs +0 -2
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +0 -300
- package/esm2020/lib/layer/layer-legend/index.mjs +0 -2
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +0 -388
- package/esm2020/lib/layer/layer-legend-item/index.mjs +0 -2
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -84
- package/esm2020/lib/layer/layer-legend-list/index.mjs +0 -3
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -48
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -195
- package/esm2020/lib/layer/layer-list/index.mjs +0 -4
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -59
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +0 -1009
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +0 -19
- package/esm2020/lib/layer/layer-list-tool/index.mjs +0 -5
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -165
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -2
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -22
- package/esm2020/lib/layer/layer.module.mjs +0 -180
- package/esm2020/lib/layer/shared/clusterParam.mjs +0 -2
- package/esm2020/lib/layer/shared/index.mjs +0 -5
- package/esm2020/lib/layer/shared/layer.enums.mjs +0 -2
- package/esm2020/lib/layer/shared/layer.service.mjs +0 -237
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +0 -67
- package/esm2020/lib/layer/shared/layers/index.mjs +0 -13
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +0 -17
- package/esm2020/lib/layer/shared/layers/layer.mjs +0 -166
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +0 -47
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +0 -527
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +0 -104
- package/esm2020/lib/layer/track-feature-button/index.mjs +0 -2
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -59
- package/esm2020/lib/layer/utils/image-watcher.mjs +0 -59
- package/esm2020/lib/layer/utils/index.mjs +0 -6
- package/esm2020/lib/layer/utils/layer.utils.mjs +0 -10
- package/esm2020/lib/layer/utils/outputLegend.mjs +0 -28
- package/esm2020/lib/layer/utils/tile-watcher.mjs +0 -50
- package/esm2020/lib/layer/utils/vector-watcher.mjs +0 -48
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -97
- package/esm2020/lib/map/baselayers-switcher/index.mjs +0 -3
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -142
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +0 -79
- package/esm2020/lib/map/geolocate-button/index.mjs +0 -2
- package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +0 -63
- package/esm2020/lib/map/home-extent-button/index.mjs +0 -2
- package/esm2020/lib/map/index.mjs +0 -14
- package/esm2020/lib/map/info-section/index.mjs +0 -2
- package/esm2020/lib/map/info-section/info-section.component.mjs +0 -30
- package/esm2020/lib/map/map-browser/index.mjs +0 -2
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +0 -66
- package/esm2020/lib/map/map-center/index.mjs +0 -2
- package/esm2020/lib/map/map-center/map-center.component.mjs +0 -50
- package/esm2020/lib/map/map.module.mjs +0 -127
- package/esm2020/lib/map/menu-button/index.mjs +0 -2
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +0 -62
- package/esm2020/lib/map/offline-button/index.mjs +0 -2
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +0 -53
- package/esm2020/lib/map/rotation-button/index.mjs +0 -2
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +0 -70
- package/esm2020/lib/map/shared/controllers/controller.mjs +0 -42
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +0 -423
- package/esm2020/lib/map/shared/controllers/index.mjs +0 -4
- package/esm2020/lib/map/shared/controllers/view.mjs +0 -351
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +0 -454
- package/esm2020/lib/map/shared/index.mjs +0 -14
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +0 -240
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +0 -107
- package/esm2020/lib/map/shared/map.enums.mjs +0 -6
- package/esm2020/lib/map/shared/map.interface.mjs +0 -2
- package/esm2020/lib/map/shared/map.mjs +0 -409
- package/esm2020/lib/map/shared/map.service.mjs +0 -29
- package/esm2020/lib/map/shared/map.utils.mjs +0 -463
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +0 -98
- package/esm2020/lib/map/shared/projection.interfaces.mjs +0 -2
- package/esm2020/lib/map/shared/projection.service.mjs +0 -65
- package/esm2020/lib/map/shared/projection.utils.mjs +0 -64
- package/esm2020/lib/map/swipe-control/index.mjs +0 -2
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +0 -193
- package/esm2020/lib/map/utils/layer-watcher.mjs +0 -79
- package/esm2020/lib/map/wake-lock-button/index.mjs +0 -2
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
- package/esm2020/lib/map/zoom-button/index.mjs +0 -2
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +0 -40
- package/esm2020/lib/measure/index.mjs +0 -4
- package/esm2020/lib/measure/measure.module.mjs +0 -20
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +0 -37
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +0 -180
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +0 -140
- package/esm2020/lib/measure/measurer/measurer.component.mjs +0 -1042
- package/esm2020/lib/measure/measurer/measurer.module.mjs +0 -94
- package/esm2020/lib/measure/shared/index.mjs +0 -4
- package/esm2020/lib/measure/shared/measure.enum.mjs +0 -37
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +0 -2
- package/esm2020/lib/measure/shared/measure.utils.mjs +0 -489
- package/esm2020/lib/metadata/index.mjs +0 -3
- package/esm2020/lib/metadata/metadata-button/index.mjs +0 -2
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +0 -134
- package/esm2020/lib/metadata/metadata.module.mjs +0 -55
- package/esm2020/lib/metadata/shared/index.mjs +0 -3
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +0 -2
- package/esm2020/lib/metadata/shared/metadata.service.mjs +0 -19
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -105
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +0 -6
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +0 -2
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +0 -167
- package/esm2020/lib/offline/geoDB/index.mjs +0 -5
- package/esm2020/lib/offline/index.mjs +0 -4
- package/esm2020/lib/offline/layerDB/index.mjs +0 -3
- package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +0 -2
- package/esm2020/lib/offline/layerDB/layerDB.service.mjs +0 -76
- package/esm2020/lib/offline/shared/geo-network.service.mjs +0 -66
- package/esm2020/lib/offline/shared/index.mjs +0 -2
- package/esm2020/lib/overlay/index.mjs +0 -2
- package/esm2020/lib/overlay/overlay.module.mjs +0 -23
- package/esm2020/lib/overlay/shared/index.mjs +0 -6
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +0 -33
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +0 -8
- package/esm2020/lib/overlay/shared/overlay.mjs +0 -130
- package/esm2020/lib/overlay/shared/overlay.service.mjs +0 -27
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +0 -17
- package/esm2020/lib/print/index.mjs +0 -4
- package/esm2020/lib/print/print/print.component.mjs +0 -112
- package/esm2020/lib/print/print-form/index.mjs +0 -2
- package/esm2020/lib/print/print-form/print-form.component.mjs +0 -514
- package/esm2020/lib/print/print.module.mjs +0 -65
- package/esm2020/lib/print/shared/geopdf.mjs +0 -58
- package/esm2020/lib/print/shared/index.mjs +0 -5
- package/esm2020/lib/print/shared/print.interface.mjs +0 -2
- package/esm2020/lib/print/shared/print.service.mjs +0 -984
- package/esm2020/lib/print/shared/print.type.mjs +0 -30
- package/esm2020/lib/query/index.mjs +0 -2
- package/esm2020/lib/query/query.module.mjs +0 -29
- package/esm2020/lib/query/shared/index.mjs +0 -7
- package/esm2020/lib/query/shared/query-search-source.mjs +0 -35
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +0 -22
- package/esm2020/lib/query/shared/query.directive.mjs +0 -261
- package/esm2020/lib/query/shared/query.enums.mjs +0 -30
- package/esm2020/lib/query/shared/query.interfaces.mjs +0 -2
- package/esm2020/lib/query/shared/query.service.mjs +0 -731
- package/esm2020/lib/query/shared/query.utils.mjs +0 -37
- package/esm2020/lib/search/index.mjs +0 -12
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +0 -512
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +0 -75
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +0 -35
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +0 -118
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +0 -429
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +0 -147
- package/esm2020/lib/search/search-results/search-results.component.mjs +0 -454
- package/esm2020/lib/search/search-results/search-results.module.mjs +0 -108
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +0 -123
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +0 -56
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +0 -440
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +0 -60
- package/esm2020/lib/search/search.module.mjs +0 -67
- package/esm2020/lib/search/shared/index.mjs +0 -9
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +0 -295
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +0 -20
- package/esm2020/lib/search/shared/search-source.service.mjs +0 -55
- package/esm2020/lib/search/shared/search.enums.mjs +0 -4
- package/esm2020/lib/search/shared/search.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/search.service.mjs +0 -121
- package/esm2020/lib/search/shared/search.utils.mjs +0 -91
- package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
- package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/coordinates.mjs +0 -153
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +0 -40
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/icherche.mjs +0 -767
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +0 -66
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/ilayer.mjs +0 -320
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +0 -40
- package/esm2020/lib/search/shared/sources/index.mjs +0 -23
- package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/nominatim.mjs +0 -253
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +0 -23
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/source.mjs +0 -209
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +0 -425
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +0 -41
- package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
- package/esm2020/lib/search/shared/sources/workspace.mjs +0 -186
- package/esm2020/lib/search/shared/sources/workspace.providers.mjs +0 -26
- package/esm2020/lib/style/index.mjs +0 -5
- package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +0 -357
- package/esm2020/lib/style/shared/datasource/index.mjs +0 -2
- package/esm2020/lib/style/shared/feature/feature-style.mjs +0 -141
- package/esm2020/lib/style/shared/feature/index.mjs +0 -2
- package/esm2020/lib/style/shared/font.enum.mjs +0 -17
- package/esm2020/lib/style/shared/index.mjs +0 -5
- package/esm2020/lib/style/shared/overlay/index.mjs +0 -3
- package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -43
- package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
- package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +0 -75
- package/esm2020/lib/style/shared/vector/conversion.utils.mjs +0 -27
- package/esm2020/lib/style/shared/vector/index.mjs +0 -4
- package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +0 -2
- package/esm2020/lib/style/style-list/index.mjs +0 -5
- package/esm2020/lib/style/style-list/style-list.interface.mjs +0 -2
- package/esm2020/lib/style/style-list/style-list.module.mjs +0 -23
- package/esm2020/lib/style/style-list/style-list.provider.mjs +0 -21
- package/esm2020/lib/style/style-list/style-list.service.mjs +0 -51
- package/esm2020/lib/style/style-modal/drawing/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -288
- package/esm2020/lib/style/style-modal/index.mjs +0 -5
- package/esm2020/lib/style/style-modal/layer/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -187
- package/esm2020/lib/style/style-modal/layer-button/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
- package/esm2020/lib/style/style-modal/shared/index.mjs +0 -2
- package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
- package/esm2020/lib/style/style-service/draw-style.service.mjs +0 -187
- package/esm2020/lib/style/style-service/index.mjs +0 -3
- package/esm2020/lib/style/style-service/style.service.mjs +0 -356
- package/esm2020/lib/style/style.module.mjs +0 -74
- package/esm2020/lib/toast/index.mjs +0 -2
- package/esm2020/lib/toast/toast.component.mjs +0 -113
- package/esm2020/lib/toast/toast.module.mjs +0 -45
- package/esm2020/lib/utils/googleLinks.mjs +0 -13
- package/esm2020/lib/utils/id-generator.mjs +0 -110
- package/esm2020/lib/utils/index.mjs +0 -4
- package/esm2020/lib/utils/osmLinks.mjs +0 -10
- package/esm2020/lib/wkt/index.mjs +0 -2
- package/esm2020/lib/wkt/shared/index.mjs +0 -2
- package/esm2020/lib/wkt/shared/wkt.service.mjs +0 -239
- package/esm2020/lib/wkt/wkt.module.mjs +0 -22
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -48
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -36
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +0 -3
- package/esm2020/lib/workspace/index.mjs +0 -8
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +0 -280
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +0 -642
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +0 -35
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +0 -157
- package/esm2020/lib/workspace/shared/index.mjs +0 -8
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +0 -35
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +0 -150
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +0 -260
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +0 -24
- package/esm2020/lib/workspace/widgets/index.mjs +0 -4
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -47
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -36
- package/esm2020/lib/workspace/widgets/widgets.mjs +0 -15
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -133
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -28
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -113
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -28
- package/esm2020/lib/workspace/workspace.module.mjs +0 -62
- package/esm2020/public_api.mjs +0 -57
- package/fesm2015/igo2-geo.mjs +0 -46894
- package/fesm2015/igo2-geo.mjs.map +0 -1
- package/fesm2020/igo2-geo.mjs +0 -44993
- package/fesm2020/igo2-geo.mjs.map +0 -1
- package/ngcc.config.js +0 -3
- package/style/geo.theming.scss +0 -12
package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs
ADDED
|
@@ -0,0 +1,1150 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { SpatialFilterQueryType, SpatialFilterType } from '../../shared/spatial-filter.enum';
|
|
3
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
4
|
+
import { IgoMap } from '../../../map/shared';
|
|
5
|
+
import { SpatialFilterItemType } from './../../shared/spatial-filter.enum';
|
|
6
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import * as olStyle from 'ol/style';
|
|
9
|
+
import * as olproj from 'ol/proj';
|
|
10
|
+
import { MatTreeNestedDataSource } from '@angular/material/tree';
|
|
11
|
+
import { SpatialFilterService } from '../../shared/spatial-filter.service';
|
|
12
|
+
import { MeasureLengthUnit } from '../../../measure';
|
|
13
|
+
import { EntityStoreFilterSelectionStrategy, EntityStoreWithStrategy, EntityTableColumnRenderer } from '@igo2/common';
|
|
14
|
+
import { VectorLayer } from '../../../layer/shared';
|
|
15
|
+
import { NestedTreeControl } from '@angular/cdk/tree';
|
|
16
|
+
import { MessageService, LanguageService } from '@igo2/core';
|
|
17
|
+
import { debounceTime } from 'rxjs/operators';
|
|
18
|
+
import { FeatureMotion, FeatureStoreSelectionStrategy } from '../../../feature';
|
|
19
|
+
import { FeatureDataSource } from '../../../datasource/shared';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../../shared/spatial-filter.service";
|
|
22
|
+
import * as i2 from "@igo2/core";
|
|
23
|
+
function SpatialFilterItemComponent_mat_slide_toggle_5_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
25
|
+
i0.ɵɵelementStart(0, "mat-slide-toggle", 17);
|
|
26
|
+
i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_5_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onDrawControlChange()); });
|
|
27
|
+
i0.ɵɵtext(1);
|
|
28
|
+
i0.ɵɵpipe(2, "translate");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
32
|
+
i0.ɵɵproperty("checked", ctx_r0.drawControlIsActive)("labelPosition", "before");
|
|
33
|
+
i0.ɵɵadvance(1);
|
|
34
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.spatialFilter.drawControl"), " ");
|
|
35
|
+
} }
|
|
36
|
+
function SpatialFilterItemComponent_mat_slide_toggle_6_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
38
|
+
i0.ɵɵelementStart(0, "mat-slide-toggle", 17);
|
|
39
|
+
i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_slide_toggle_6_Template_mat_slide_toggle_change_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onfreehandControlChange()); });
|
|
40
|
+
i0.ɵɵtext(1);
|
|
41
|
+
i0.ɵɵpipe(2, "translate");
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
} if (rf & 2) {
|
|
44
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
45
|
+
i0.ɵɵproperty("checked", ctx_r1.freehandDrawIsActive)("labelPosition", "before");
|
|
46
|
+
i0.ɵɵadvance(1);
|
|
47
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 3, "igo.geo.spatialFilter.freehandControl"), " ");
|
|
48
|
+
} }
|
|
49
|
+
function SpatialFilterItemComponent_div_7_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelementStart(0, "mat-option", 6);
|
|
51
|
+
i0.ɵɵtext(1);
|
|
52
|
+
i0.ɵɵpipe(2, "translate");
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const measureUnit_r15 = ctx.$implicit;
|
|
56
|
+
i0.ɵɵproperty("value", measureUnit_r15);
|
|
57
|
+
i0.ɵɵadvance(1);
|
|
58
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r15), " ");
|
|
59
|
+
} }
|
|
60
|
+
function SpatialFilterItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
62
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "form", 19)(2, "mat-form-field", 20);
|
|
63
|
+
i0.ɵɵelement(3, "input", 21);
|
|
64
|
+
i0.ɵɵpipe(4, "translate");
|
|
65
|
+
i0.ɵɵelementEnd()();
|
|
66
|
+
i0.ɵɵelementStart(5, "mat-form-field", 22)(6, "mat-select", 23);
|
|
67
|
+
i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_7_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.onMeasureUnitChange($event.value)); });
|
|
68
|
+
i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_7_mat_option_7_Template, 3, 4, "mat-option", 24);
|
|
69
|
+
i0.ɵɵelementEnd()()();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
72
|
+
i0.ɵɵadvance(3);
|
|
73
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 6, "igo.geo.spatialFilter.buffer"));
|
|
74
|
+
i0.ɵɵproperty("formControl", ctx_r2.bufferFormControl)("value", 0)("readonly", ctx_r2.formControl.value === null);
|
|
75
|
+
i0.ɵɵadvance(3);
|
|
76
|
+
i0.ɵɵproperty("value", ctx_r2.measureUnit);
|
|
77
|
+
i0.ɵɵadvance(1);
|
|
78
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.measureUnits);
|
|
79
|
+
} }
|
|
80
|
+
function SpatialFilterItemComponent_div_8_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵelementStart(0, "mat-option", 6);
|
|
82
|
+
i0.ɵɵtext(1);
|
|
83
|
+
i0.ɵɵpipe(2, "translate");
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
} if (rf & 2) {
|
|
86
|
+
const measureUnit_r19 = ctx.$implicit;
|
|
87
|
+
i0.ɵɵproperty("value", measureUnit_r19);
|
|
88
|
+
i0.ɵɵadvance(1);
|
|
89
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.measure." + measureUnit_r19), " ");
|
|
90
|
+
} }
|
|
91
|
+
function SpatialFilterItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
93
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "form", 26)(2, "mat-form-field", 27)(3, "input", 28);
|
|
94
|
+
i0.ɵɵlistener("input", function SpatialFilterItemComponent_div_8_Template_input_input_3_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.getRadius()); });
|
|
95
|
+
i0.ɵɵpipe(4, "translate");
|
|
96
|
+
i0.ɵɵelementEnd()()();
|
|
97
|
+
i0.ɵɵelementStart(5, "mat-form-field", 22)(6, "mat-select", 23);
|
|
98
|
+
i0.ɵɵlistener("selectionChange", function SpatialFilterItemComponent_div_8_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.onMeasureUnitChange($event.value)); });
|
|
99
|
+
i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_8_mat_option_7_Template, 3, 4, "mat-option", 24);
|
|
100
|
+
i0.ɵɵelementEnd()()();
|
|
101
|
+
} if (rf & 2) {
|
|
102
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
103
|
+
i0.ɵɵadvance(3);
|
|
104
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 6, "igo.geo.spatialFilter.radius"));
|
|
105
|
+
i0.ɵɵproperty("formControl", ctx_r3.radiusFormControl)("value", 1000)("readonly", ctx_r3.freehandDrawIsActive && ctx_r3.formControl.value === null);
|
|
106
|
+
i0.ɵɵadvance(3);
|
|
107
|
+
i0.ɵɵproperty("value", ctx_r3.measureUnit);
|
|
108
|
+
i0.ɵɵadvance(1);
|
|
109
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.measureUnits);
|
|
110
|
+
} }
|
|
111
|
+
function SpatialFilterItemComponent_mat_radio_button_13_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
const _r25 = i0.ɵɵgetCurrentView();
|
|
113
|
+
i0.ɵɵelementStart(0, "mat-radio-button", 29);
|
|
114
|
+
i0.ɵɵlistener("change", function SpatialFilterItemComponent_mat_radio_button_13_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r24.onItemTypeChange($event)); });
|
|
115
|
+
i0.ɵɵtext(1);
|
|
116
|
+
i0.ɵɵpipe(2, "translate");
|
|
117
|
+
i0.ɵɵelementEnd();
|
|
118
|
+
} if (rf & 2) {
|
|
119
|
+
const item_r23 = ctx.$implicit;
|
|
120
|
+
i0.ɵɵproperty("value", item_r23);
|
|
121
|
+
i0.ɵɵadvance(1);
|
|
122
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter." + item_r23), " ");
|
|
123
|
+
} }
|
|
124
|
+
function SpatialFilterItemComponent_div_14_mat_header_cell_3_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelementStart(0, "mat-header-cell", 40);
|
|
126
|
+
i0.ɵɵtext(1);
|
|
127
|
+
i0.ɵɵpipe(2, "translate");
|
|
128
|
+
i0.ɵɵelementEnd();
|
|
129
|
+
} if (rf & 2) {
|
|
130
|
+
i0.ɵɵadvance(1);
|
|
131
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "igo.geo.spatialFilter.Thematics"));
|
|
132
|
+
} }
|
|
133
|
+
function SpatialFilterItemComponent_div_14_mat_header_cell_5_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
+
const _r33 = i0.ɵɵgetCurrentView();
|
|
135
|
+
i0.ɵɵelementStart(0, "mat-header-cell", 41)(1, "mat-checkbox", 42);
|
|
136
|
+
i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_header_cell_5_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(2); return i0.ɵɵresetView($event ? ctx_r32.masterToggle() : null); });
|
|
137
|
+
i0.ɵɵelementEnd()();
|
|
138
|
+
} if (rf & 2) {
|
|
139
|
+
const ctx_r27 = i0.ɵɵnextContext(2);
|
|
140
|
+
i0.ɵɵadvance(1);
|
|
141
|
+
i0.ɵɵproperty("checked", ctx_r27.isAllSelected())("indeterminate", ctx_r27.selectedThematics.hasValue() && !ctx_r27.isAllSelected());
|
|
142
|
+
} }
|
|
143
|
+
function SpatialFilterItemComponent_div_14_mat_header_row_6_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
i0.ɵɵelement(0, "mat-header-row");
|
|
145
|
+
} }
|
|
146
|
+
function SpatialFilterItemComponent_div_14_mat_row_7_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
+
i0.ɵɵelement(0, "mat-row");
|
|
148
|
+
} }
|
|
149
|
+
function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
const _r38 = i0.ɵɵgetCurrentView();
|
|
151
|
+
i0.ɵɵelementStart(0, "mat-tree-node", 43)(1, "li", 44);
|
|
152
|
+
i0.ɵɵelement(2, "button", 45);
|
|
153
|
+
i0.ɵɵtext(3);
|
|
154
|
+
i0.ɵɵelementStart(4, "mat-checkbox", 46);
|
|
155
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_click_4_listener($event) { return $event.stopPropagation(); })("change", function SpatialFilterItemComponent_div_14_mat_tree_node_9_Template_mat_checkbox_change_4_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r38); const node_r35 = restoredCtx.$implicit; const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView($event ? ctx_r37.onToggleChange(node_r35) : null); });
|
|
156
|
+
i0.ɵɵelementEnd()()();
|
|
157
|
+
} if (rf & 2) {
|
|
158
|
+
const node_r35 = ctx.$implicit;
|
|
159
|
+
const ctx_r30 = i0.ɵɵnextContext(2);
|
|
160
|
+
i0.ɵɵadvance(3);
|
|
161
|
+
i0.ɵɵtextInterpolate1(" ", node_r35.name, " ");
|
|
162
|
+
i0.ɵɵadvance(1);
|
|
163
|
+
i0.ɵɵproperty("checked", ctx_r30.selectedThematics.isSelected(node_r35));
|
|
164
|
+
} }
|
|
165
|
+
function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
const _r41 = i0.ɵɵgetCurrentView();
|
|
167
|
+
i0.ɵɵelementStart(0, "mat-nested-tree-node")(1, "div", 44)(2, "button", 47);
|
|
168
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r41); const node_r39 = restoredCtx.$implicit; const ctx_r40 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r40.onToggleClick(node_r39)); });
|
|
169
|
+
i0.ɵɵelement(3, "mat-icon", 48);
|
|
170
|
+
i0.ɵɵelementEnd();
|
|
171
|
+
i0.ɵɵtext(4);
|
|
172
|
+
i0.ɵɵelementStart(5, "mat-checkbox", 49);
|
|
173
|
+
i0.ɵɵlistener("change", function SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template_mat_checkbox_change_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r41); const node_r39 = restoredCtx.$implicit; const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView($event ? ctx_r42.childrensToggle(node_r39) : null); });
|
|
174
|
+
i0.ɵɵelementEnd()();
|
|
175
|
+
i0.ɵɵelementStart(6, "ul", 50);
|
|
176
|
+
i0.ɵɵelementContainer(7, 51);
|
|
177
|
+
i0.ɵɵelementEnd()();
|
|
178
|
+
} if (rf & 2) {
|
|
179
|
+
const node_r39 = ctx.$implicit;
|
|
180
|
+
const ctx_r31 = i0.ɵɵnextContext(2);
|
|
181
|
+
i0.ɵɵadvance(3);
|
|
182
|
+
i0.ɵɵproperty("svgIcon", ctx_r31.treeControl.isExpanded(node_r39) ? "chevron-down" : "chevron-right");
|
|
183
|
+
i0.ɵɵadvance(1);
|
|
184
|
+
i0.ɵɵtextInterpolate1(" ", node_r39.name, " ");
|
|
185
|
+
i0.ɵɵadvance(1);
|
|
186
|
+
i0.ɵɵproperty("checked", ctx_r31.isAllSelected(node_r39))("indeterminate", ctx_r31.hasChildrenSelected(node_r39) && !ctx_r31.isAllSelected(node_r39));
|
|
187
|
+
i0.ɵɵadvance(1);
|
|
188
|
+
i0.ɵɵclassProp("example-tree-invisible", !ctx_r31.treeControl.isExpanded(node_r39));
|
|
189
|
+
} }
|
|
190
|
+
function SpatialFilterItemComponent_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
191
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "mat-table");
|
|
192
|
+
i0.ɵɵelementContainerStart(2, 31);
|
|
193
|
+
i0.ɵɵtemplate(3, SpatialFilterItemComponent_div_14_mat_header_cell_3_Template, 3, 3, "mat-header-cell", 32);
|
|
194
|
+
i0.ɵɵelementContainerEnd();
|
|
195
|
+
i0.ɵɵelementContainerStart(4, 33);
|
|
196
|
+
i0.ɵɵtemplate(5, SpatialFilterItemComponent_div_14_mat_header_cell_5_Template, 2, 2, "mat-header-cell", 34);
|
|
197
|
+
i0.ɵɵelementContainerEnd();
|
|
198
|
+
i0.ɵɵtemplate(6, SpatialFilterItemComponent_div_14_mat_header_row_6_Template, 1, 0, "mat-header-row", 35);
|
|
199
|
+
i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_14_mat_row_7_Template, 1, 0, "mat-row", 36);
|
|
200
|
+
i0.ɵɵelementEnd();
|
|
201
|
+
i0.ɵɵelementStart(8, "mat-tree", 37);
|
|
202
|
+
i0.ɵɵtemplate(9, SpatialFilterItemComponent_div_14_mat_tree_node_9_Template, 5, 2, "mat-tree-node", 38);
|
|
203
|
+
i0.ɵɵtemplate(10, SpatialFilterItemComponent_div_14_mat_nested_tree_node_10_Template, 8, 6, "mat-nested-tree-node", 39);
|
|
204
|
+
i0.ɵɵelementEnd()();
|
|
205
|
+
} if (rf & 2) {
|
|
206
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
207
|
+
i0.ɵɵadvance(6);
|
|
208
|
+
i0.ɵɵproperty("matHeaderRowDef", ctx_r5.displayedColumns);
|
|
209
|
+
i0.ɵɵadvance(1);
|
|
210
|
+
i0.ɵɵproperty("matRowDefColumns", ctx_r5.displayedColumns);
|
|
211
|
+
i0.ɵɵadvance(1);
|
|
212
|
+
i0.ɵɵproperty("dataSource", ctx_r5.dataSource)("treeControl", ctx_r5.treeControl);
|
|
213
|
+
i0.ɵɵadvance(2);
|
|
214
|
+
i0.ɵɵproperty("matTreeNodeDefWhen", ctx_r5.hasChild);
|
|
215
|
+
} }
|
|
216
|
+
function SpatialFilterItemComponent_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
+
const _r44 = i0.ɵɵgetCurrentView();
|
|
218
|
+
i0.ɵɵelementStart(0, "button", 52);
|
|
219
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.clearSearch()); });
|
|
220
|
+
i0.ɵɵtext(1);
|
|
221
|
+
i0.ɵɵpipe(2, "translate");
|
|
222
|
+
i0.ɵɵelementEnd();
|
|
223
|
+
} if (rf & 2) {
|
|
224
|
+
const ctx_r6 = i0.ɵɵnextContext();
|
|
225
|
+
i0.ɵɵproperty("disabled", ctx_r6.disabledClearSearch());
|
|
226
|
+
i0.ɵɵadvance(1);
|
|
227
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter.clearSearch"), " ");
|
|
228
|
+
} }
|
|
229
|
+
function SpatialFilterItemComponent_button_17_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
const _r46 = i0.ɵɵgetCurrentView();
|
|
231
|
+
i0.ɵɵelementStart(0, "button", 53);
|
|
232
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r45.clearDrawZone()); });
|
|
233
|
+
i0.ɵɵtext(1);
|
|
234
|
+
i0.ɵɵpipe(2, "translate");
|
|
235
|
+
i0.ɵɵelementEnd();
|
|
236
|
+
} if (rf & 2) {
|
|
237
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
238
|
+
i0.ɵɵproperty("disabled", ctx_r7.formControl.value === null);
|
|
239
|
+
i0.ɵɵadvance(1);
|
|
240
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialFilter.clearForm"), " ");
|
|
241
|
+
} }
|
|
242
|
+
function SpatialFilterItemComponent_button_27_Template(rf, ctx) { if (rf & 1) {
|
|
243
|
+
const _r48 = i0.ɵɵgetCurrentView();
|
|
244
|
+
i0.ɵɵelementStart(0, "button", 54);
|
|
245
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_button_27_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const ctx_r47 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r47.toggleVisibleList()); });
|
|
246
|
+
i0.ɵɵpipe(1, "translate");
|
|
247
|
+
i0.ɵɵelement(2, "mat-icon", 55);
|
|
248
|
+
i0.ɵɵelementEnd();
|
|
249
|
+
} if (rf & 2) {
|
|
250
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.spatialFilter.showSearchResults"));
|
|
251
|
+
} }
|
|
252
|
+
function SpatialFilterItemComponent_div_28_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
253
|
+
const _r51 = i0.ɵɵgetCurrentView();
|
|
254
|
+
i0.ɵɵelementStart(0, "button", 59);
|
|
255
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_div_28_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.toggleVisibleList()); });
|
|
256
|
+
i0.ɵɵpipe(1, "translate");
|
|
257
|
+
i0.ɵɵelement(2, "mat-icon", 60);
|
|
258
|
+
i0.ɵɵelementEnd();
|
|
259
|
+
} if (rf & 2) {
|
|
260
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.spatialFilter.hideSearchResults"));
|
|
261
|
+
} }
|
|
262
|
+
function SpatialFilterItemComponent_div_28_Template(rf, ctx) { if (rf & 1) {
|
|
263
|
+
const _r53 = i0.ɵɵgetCurrentView();
|
|
264
|
+
i0.ɵɵelementStart(0, "div", 56);
|
|
265
|
+
i0.ɵɵtemplate(1, SpatialFilterItemComponent_div_28_button_1_Template, 3, 3, "button", 57);
|
|
266
|
+
i0.ɵɵelementStart(2, "igo-entity-table", 58);
|
|
267
|
+
i0.ɵɵlistener("entitySelectChange", function SpatialFilterItemComponent_div_28_Template_igo_entity_table_entitySelectChange_2_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r52.entityChange.emit($event)); });
|
|
268
|
+
i0.ɵɵelementEnd()();
|
|
269
|
+
} if (rf & 2) {
|
|
270
|
+
const ctx_r9 = i0.ɵɵnextContext();
|
|
271
|
+
i0.ɵɵadvance(1);
|
|
272
|
+
i0.ɵɵproperty("ngIf", ctx_r9.listIsVisible);
|
|
273
|
+
i0.ɵɵadvance(1);
|
|
274
|
+
i0.ɵɵproperty("template", ctx_r9.tableTemplate)("store", ctx_r9.store);
|
|
275
|
+
} }
|
|
276
|
+
/**
|
|
277
|
+
* Spatial-Filter-Item (search parameters)
|
|
278
|
+
*/
|
|
279
|
+
export class SpatialFilterItemComponent {
|
|
280
|
+
cdRef;
|
|
281
|
+
spatialFilterService;
|
|
282
|
+
messageService;
|
|
283
|
+
languageService;
|
|
284
|
+
map;
|
|
285
|
+
get type() {
|
|
286
|
+
return this._type;
|
|
287
|
+
}
|
|
288
|
+
set type(type) {
|
|
289
|
+
this._type = type;
|
|
290
|
+
const index = this.geometryTypes.findIndex((geom) => geom === this.type);
|
|
291
|
+
this.geometryType = this.geometryTypes[index];
|
|
292
|
+
this.formControl.reset();
|
|
293
|
+
this.radius = undefined;
|
|
294
|
+
this.drawGuide$.next(null);
|
|
295
|
+
this.drawStyle$.next(undefined);
|
|
296
|
+
// Necessary to keep reference to the geometry form field input
|
|
297
|
+
if (this.type === SpatialFilterType.Predefined) {
|
|
298
|
+
const geojson = {
|
|
299
|
+
type: 'Point',
|
|
300
|
+
coordinates: ''
|
|
301
|
+
};
|
|
302
|
+
this.formControl.setValue(geojson);
|
|
303
|
+
}
|
|
304
|
+
// Necessary to apply the right style when geometry type is Point
|
|
305
|
+
if (this.type === SpatialFilterType.Point) {
|
|
306
|
+
this.radius = 1000; // Base radius
|
|
307
|
+
this.radiusFormControl.setValue(this.radius);
|
|
308
|
+
this.PointStyle = (feature, resolution) => {
|
|
309
|
+
const geom = feature.getGeometry();
|
|
310
|
+
const coordinates = olproj.transform(geom.getCoordinates(), this.map.projection, 'EPSG:4326');
|
|
311
|
+
return new olStyle.Style({
|
|
312
|
+
image: new olStyle.Circle({
|
|
313
|
+
radius: this.radius /
|
|
314
|
+
Math.cos((Math.PI / 180) * coordinates[1]) /
|
|
315
|
+
resolution,
|
|
316
|
+
stroke: new olStyle.Stroke({
|
|
317
|
+
width: 2,
|
|
318
|
+
color: 'rgba(0, 153, 255)'
|
|
319
|
+
}),
|
|
320
|
+
fill: new olStyle.Fill({
|
|
321
|
+
color: 'rgba(0, 153, 255, 0.2)'
|
|
322
|
+
})
|
|
323
|
+
})
|
|
324
|
+
});
|
|
325
|
+
};
|
|
326
|
+
this.overlayStyle = this.PointStyle;
|
|
327
|
+
this.drawStyle$.next(this.overlayStyle);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
// If geometry types is Polygon
|
|
331
|
+
this.radius = undefined;
|
|
332
|
+
this.PolyStyle = () => {
|
|
333
|
+
return new olStyle.Style({
|
|
334
|
+
stroke: new olStyle.Stroke({
|
|
335
|
+
width: 2,
|
|
336
|
+
color: 'rgba(0, 153, 255)'
|
|
337
|
+
}),
|
|
338
|
+
fill: new olStyle.Fill({
|
|
339
|
+
color: 'rgba(0, 153, 255, 0.2)'
|
|
340
|
+
})
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
const color = [0, 153, 255];
|
|
344
|
+
const drawStyle = () => {
|
|
345
|
+
return new olStyle.Style({
|
|
346
|
+
image: new olStyle.Circle({
|
|
347
|
+
radius: 8,
|
|
348
|
+
stroke: new olStyle.Stroke({
|
|
349
|
+
width: 2,
|
|
350
|
+
color: 'rgba(0, 153, 255)'
|
|
351
|
+
}),
|
|
352
|
+
fill: new olStyle.Fill({
|
|
353
|
+
color: 'rgba(0, 153, 255, 0.2)'
|
|
354
|
+
})
|
|
355
|
+
}),
|
|
356
|
+
stroke: new olStyle.Stroke({
|
|
357
|
+
color: color.concat([1]),
|
|
358
|
+
width: 2
|
|
359
|
+
}),
|
|
360
|
+
fill: new olStyle.Fill({
|
|
361
|
+
color: color.concat([0.2])
|
|
362
|
+
})
|
|
363
|
+
});
|
|
364
|
+
};
|
|
365
|
+
this.overlayStyle = this.PolyStyle;
|
|
366
|
+
this.drawStyle$.next(drawStyle);
|
|
367
|
+
}
|
|
368
|
+
this.overlayStyle$.next(this.overlayStyle);
|
|
369
|
+
}
|
|
370
|
+
_type;
|
|
371
|
+
queryType;
|
|
372
|
+
zone;
|
|
373
|
+
loading;
|
|
374
|
+
get store() {
|
|
375
|
+
return this._store;
|
|
376
|
+
}
|
|
377
|
+
set store(store) {
|
|
378
|
+
this._store = store;
|
|
379
|
+
this._store.entities$.subscribe(() => {
|
|
380
|
+
this.cdRef.detectChanges();
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
_store;
|
|
384
|
+
/**
|
|
385
|
+
* Available measure units for the measure type given
|
|
386
|
+
* @internal
|
|
387
|
+
*/
|
|
388
|
+
get measureUnits() {
|
|
389
|
+
return [MeasureLengthUnit.Meters, MeasureLengthUnit.Kilometers];
|
|
390
|
+
}
|
|
391
|
+
layers = [];
|
|
392
|
+
allLayers = [];
|
|
393
|
+
get thematicLength() {
|
|
394
|
+
return this._thematicLength;
|
|
395
|
+
}
|
|
396
|
+
set thematicLength(value) {
|
|
397
|
+
this._thematicLength = value;
|
|
398
|
+
}
|
|
399
|
+
_thematicLength;
|
|
400
|
+
toggleSearch = new EventEmitter();
|
|
401
|
+
itemTypeChange = new EventEmitter();
|
|
402
|
+
thematicChange = new EventEmitter();
|
|
403
|
+
drawZoneEvent = new EventEmitter();
|
|
404
|
+
bufferEvent = new EventEmitter();
|
|
405
|
+
zoneWithBufferChange = new EventEmitter();
|
|
406
|
+
measureUnitChange = new EventEmitter();
|
|
407
|
+
radiusEvent = new EventEmitter();
|
|
408
|
+
freehandControl = new EventEmitter();
|
|
409
|
+
predefinedRadius = new EventEmitter();
|
|
410
|
+
clearButtonEvent = new EventEmitter();
|
|
411
|
+
clearSearchEvent = new EventEmitter();
|
|
412
|
+
export = new EventEmitter();
|
|
413
|
+
openWorkspace = new EventEmitter();
|
|
414
|
+
entityChange = new EventEmitter();
|
|
415
|
+
itemType = [
|
|
416
|
+
SpatialFilterItemType.Address,
|
|
417
|
+
SpatialFilterItemType.Thematics
|
|
418
|
+
];
|
|
419
|
+
selectedItemType = SpatialFilterItemType.Address;
|
|
420
|
+
selectedSourceAddress;
|
|
421
|
+
treeControl = new NestedTreeControl((node) => node.children);
|
|
422
|
+
// For thematics and results tables
|
|
423
|
+
displayedColumns = ['name', 'select'];
|
|
424
|
+
childrens = [];
|
|
425
|
+
groups = [];
|
|
426
|
+
thematics = [];
|
|
427
|
+
dataSource = new MatTreeNestedDataSource();
|
|
428
|
+
selectedThematics = new SelectionModel(true, []);
|
|
429
|
+
// For geometry form field input
|
|
430
|
+
value$ = new BehaviorSubject(undefined);
|
|
431
|
+
drawGuide$ = new BehaviorSubject(null);
|
|
432
|
+
overlayStyle$ = new BehaviorSubject(undefined);
|
|
433
|
+
drawStyle$ = new BehaviorSubject(undefined);
|
|
434
|
+
value$$;
|
|
435
|
+
radiusChanges$$;
|
|
436
|
+
bufferChanges$$;
|
|
437
|
+
formControl = new UntypedFormControl();
|
|
438
|
+
geometryType;
|
|
439
|
+
geometryTypeField = false;
|
|
440
|
+
geometryTypes = ['Point', 'Polygon'];
|
|
441
|
+
drawGuideField = false;
|
|
442
|
+
drawGuide = null;
|
|
443
|
+
drawGuidePlaceholder = '';
|
|
444
|
+
measure = false;
|
|
445
|
+
drawControlIsActive = true;
|
|
446
|
+
freehandDrawIsActive = false;
|
|
447
|
+
drawStyle;
|
|
448
|
+
drawZone;
|
|
449
|
+
overlayStyle;
|
|
450
|
+
PointStyle;
|
|
451
|
+
PolyStyle;
|
|
452
|
+
radius;
|
|
453
|
+
buffer = 0;
|
|
454
|
+
radiusFormControl = new UntypedFormControl();
|
|
455
|
+
bufferFormControl = new UntypedFormControl();
|
|
456
|
+
measureUnit = MeasureLengthUnit.Meters;
|
|
457
|
+
zoneWithBuffer;
|
|
458
|
+
listIsVisible = true;
|
|
459
|
+
tableTemplate;
|
|
460
|
+
constructor(cdRef, spatialFilterService, messageService, languageService) {
|
|
461
|
+
this.cdRef = cdRef;
|
|
462
|
+
this.spatialFilterService = spatialFilterService;
|
|
463
|
+
this.messageService = messageService;
|
|
464
|
+
this.languageService = languageService;
|
|
465
|
+
}
|
|
466
|
+
ngOnInit() {
|
|
467
|
+
this.spatialFilterService
|
|
468
|
+
.loadThematicsList()
|
|
469
|
+
.subscribe((items) => {
|
|
470
|
+
for (const item of items) {
|
|
471
|
+
this.childrens.push(item);
|
|
472
|
+
this.childrens.sort((a, b) => {
|
|
473
|
+
return a.name.localeCompare(b.name);
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
this.groups.push(this.languageService.translate.instant('igo.geo.terrapi.limites'));
|
|
477
|
+
const limits = {
|
|
478
|
+
name: this.groups[0],
|
|
479
|
+
children: []
|
|
480
|
+
};
|
|
481
|
+
this.thematics.push(limits);
|
|
482
|
+
this.childrens.forEach((child) => {
|
|
483
|
+
if (child.group && this.groups.indexOf(child.group) === -1) {
|
|
484
|
+
this.groups.push(child.group);
|
|
485
|
+
const thematic = {
|
|
486
|
+
name: child.group,
|
|
487
|
+
children: []
|
|
488
|
+
};
|
|
489
|
+
this.thematics.push(thematic);
|
|
490
|
+
}
|
|
491
|
+
if (!child.group) {
|
|
492
|
+
if (child.name ===
|
|
493
|
+
this.languageService.translate.instant('igo.geo.terrapi.AdmRegion') ||
|
|
494
|
+
child.name ===
|
|
495
|
+
this.languageService.translate.instant('igo.geo.terrapi.Mun') ||
|
|
496
|
+
child.name ===
|
|
497
|
+
this.languageService.translate.instant('igo.geo.terrapi.Arrond') ||
|
|
498
|
+
child.name ===
|
|
499
|
+
this.languageService.translate.instant('igo.geo.terrapi.CircFed') ||
|
|
500
|
+
child.name ===
|
|
501
|
+
this.languageService.translate.instant('igo.geo.terrapi.CircProv') ||
|
|
502
|
+
child.name ===
|
|
503
|
+
this.languageService.translate.instant('igo.geo.terrapi.DirReg') ||
|
|
504
|
+
child.name ===
|
|
505
|
+
this.languageService.translate.instant('igo.geo.terrapi.MRC') ||
|
|
506
|
+
child.name ===
|
|
507
|
+
this.languageService.translate.instant('igo.geo.terrapi.RegTour')) {
|
|
508
|
+
child.group = limits.name;
|
|
509
|
+
}
|
|
510
|
+
else if (child.name ===
|
|
511
|
+
this.languageService.translate.instant('igo.geo.terrapi.routes')) {
|
|
512
|
+
child.group = this.languageService.translate.instant('igo.geo.spatialFilter.group.transport');
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
const thematic = {
|
|
516
|
+
name: child.name,
|
|
517
|
+
children: [],
|
|
518
|
+
source: child.source
|
|
519
|
+
};
|
|
520
|
+
this.thematics.push(thematic);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
this.thematics.sort((a, b) => {
|
|
524
|
+
return a.name.localeCompare(b.name);
|
|
525
|
+
});
|
|
526
|
+
});
|
|
527
|
+
this.thematics.forEach((thematic) => {
|
|
528
|
+
for (const child of this.childrens) {
|
|
529
|
+
if (child.group === thematic.name) {
|
|
530
|
+
thematic.children.push(child);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
});
|
|
535
|
+
this.dataSource.data = this.thematics;
|
|
536
|
+
this.drawGuide$.next(null);
|
|
537
|
+
this.value$.next(this.formControl.value ? this.formControl.value : undefined);
|
|
538
|
+
this.value$$ = this.formControl.valueChanges.subscribe((value) => {
|
|
539
|
+
if (value) {
|
|
540
|
+
this.value$.next(value);
|
|
541
|
+
this.drawZone = this.formControl.value;
|
|
542
|
+
if (this.buffer !== 0) {
|
|
543
|
+
this.drawZoneEvent.emit(this.drawZone);
|
|
544
|
+
this.bufferFormControl.setValue(this.buffer);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
this.value$.next(undefined);
|
|
549
|
+
this.drawZone = undefined;
|
|
550
|
+
}
|
|
551
|
+
});
|
|
552
|
+
this.value$.subscribe(() => {
|
|
553
|
+
this.getRadius();
|
|
554
|
+
this.cdRef.detectChanges();
|
|
555
|
+
});
|
|
556
|
+
this.radiusChanges$$ = this.radiusFormControl.valueChanges.subscribe(() => {
|
|
557
|
+
this.getRadius();
|
|
558
|
+
this.cdRef.detectChanges();
|
|
559
|
+
});
|
|
560
|
+
this.bufferChanges$$ = this.bufferFormControl.valueChanges
|
|
561
|
+
.pipe(debounceTime(500))
|
|
562
|
+
.subscribe((value) => {
|
|
563
|
+
if (this.measureUnit === MeasureLengthUnit.Meters &&
|
|
564
|
+
value > 0 &&
|
|
565
|
+
value <= 100000) {
|
|
566
|
+
this.buffer = value;
|
|
567
|
+
this.bufferEvent.emit(value);
|
|
568
|
+
this.spatialFilterService
|
|
569
|
+
.loadBufferGeometry(this.drawZone, SpatialFilterType.Polygon, value)
|
|
570
|
+
.subscribe((featureGeom) => {
|
|
571
|
+
this.zoneWithBuffer = featureGeom;
|
|
572
|
+
this.zoneWithBufferChange.emit(this.zoneWithBuffer);
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
else if (this.measureUnit === MeasureLengthUnit.Kilometers &&
|
|
576
|
+
value > 0 &&
|
|
577
|
+
value <= 100) {
|
|
578
|
+
this.buffer = value;
|
|
579
|
+
this.bufferEvent.emit(value);
|
|
580
|
+
this.spatialFilterService
|
|
581
|
+
.loadBufferGeometry(this.drawZone, SpatialFilterType.Polygon, value * 1000)
|
|
582
|
+
.subscribe((featureGeom) => {
|
|
583
|
+
this.zoneWithBuffer = featureGeom;
|
|
584
|
+
this.zoneWithBufferChange.emit(this.zoneWithBuffer);
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
else if (value === 0) {
|
|
588
|
+
this.buffer = value;
|
|
589
|
+
this.bufferEvent.emit(value);
|
|
590
|
+
this.drawZoneEvent.emit(this.drawZone);
|
|
591
|
+
}
|
|
592
|
+
else if (value < 0 ||
|
|
593
|
+
(this.measureUnit === MeasureLengthUnit.Meters && value > 100000) ||
|
|
594
|
+
(this.measureUnit === MeasureLengthUnit.Kilometers && value > 100)) {
|
|
595
|
+
this.bufferFormControl.setValue(0);
|
|
596
|
+
this.buffer = 0;
|
|
597
|
+
this.messageService.alert('igo.geo.spatialFilter.bufferAlert', 'igo.geo.spatialFilter.warning');
|
|
598
|
+
}
|
|
599
|
+
});
|
|
600
|
+
const selectedRecordStrategy = new EntityStoreFilterSelectionStrategy({});
|
|
601
|
+
const selectionStrategy = new FeatureStoreSelectionStrategy({
|
|
602
|
+
layer: new VectorLayer({
|
|
603
|
+
zIndex: 300,
|
|
604
|
+
source: new FeatureDataSource(),
|
|
605
|
+
style: undefined,
|
|
606
|
+
showInLayerList: false,
|
|
607
|
+
exportable: false,
|
|
608
|
+
browsable: false
|
|
609
|
+
}),
|
|
610
|
+
map: this.map,
|
|
611
|
+
hitTolerance: 15,
|
|
612
|
+
motion: FeatureMotion.Default,
|
|
613
|
+
many: true,
|
|
614
|
+
dragBox: true
|
|
615
|
+
});
|
|
616
|
+
this.store.addStrategy(selectionStrategy, true);
|
|
617
|
+
this.store.addStrategy(selectedRecordStrategy, false);
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Unsubscribe to the value stream
|
|
621
|
+
* @internal
|
|
622
|
+
*/
|
|
623
|
+
ngOnDestroy() {
|
|
624
|
+
this.value$$.unsubscribe();
|
|
625
|
+
this.radiusChanges$$.unsubscribe();
|
|
626
|
+
this.bufferChanges$$.unsubscribe();
|
|
627
|
+
this.cdRef.detach();
|
|
628
|
+
if (this.radiusChanges$$) {
|
|
629
|
+
this.radiusChanges$$.unsubscribe();
|
|
630
|
+
}
|
|
631
|
+
if (this.value$$) {
|
|
632
|
+
this.value$$.unsubscribe();
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
onItemTypeChange(event) {
|
|
636
|
+
this.selectedItemType = event.value;
|
|
637
|
+
this.itemTypeChange.emit(this.selectedItemType);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Set the measure unit
|
|
641
|
+
* @internal
|
|
642
|
+
*/
|
|
643
|
+
onMeasureUnitChange(unit) {
|
|
644
|
+
if (unit === this.measureUnit) {
|
|
645
|
+
return;
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
this.measureUnit = unit;
|
|
649
|
+
this.measureUnitChange.emit(this.measureUnit);
|
|
650
|
+
if (this.isPolygon()) {
|
|
651
|
+
this.measureUnit === MeasureLengthUnit.Meters
|
|
652
|
+
? this.bufferFormControl.setValue(this.bufferFormControl.value * 1000)
|
|
653
|
+
: this.bufferFormControl.setValue(this.bufferFormControl.value / 1000);
|
|
654
|
+
}
|
|
655
|
+
else if (this.isPoint()) {
|
|
656
|
+
this.measureUnit === MeasureLengthUnit.Meters
|
|
657
|
+
? this.radiusFormControl.setValue(this.radiusFormControl.value * 1000)
|
|
658
|
+
: this.radiusFormControl.setValue(this.radiusFormControl.value / 1000);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
isPredefined() {
|
|
663
|
+
return this.type === SpatialFilterType.Predefined;
|
|
664
|
+
}
|
|
665
|
+
isPolygon() {
|
|
666
|
+
return this.type === SpatialFilterType.Polygon;
|
|
667
|
+
}
|
|
668
|
+
isPoint() {
|
|
669
|
+
return this.type === SpatialFilterType.Point;
|
|
670
|
+
}
|
|
671
|
+
hasChild(_, node) {
|
|
672
|
+
if (node.children) {
|
|
673
|
+
return node.children.length;
|
|
674
|
+
}
|
|
675
|
+
return false;
|
|
676
|
+
}
|
|
677
|
+
onToggleClick(node) {
|
|
678
|
+
this.treeControl.isExpanded(node)
|
|
679
|
+
? this.treeControl.collapse(node)
|
|
680
|
+
: this.treeControl.expand(node);
|
|
681
|
+
}
|
|
682
|
+
isAllSelected(node) {
|
|
683
|
+
let numSelected;
|
|
684
|
+
let numNodes = 0;
|
|
685
|
+
if (!node) {
|
|
686
|
+
numSelected = this.selectedThematics.selected.length;
|
|
687
|
+
this.thematics.forEach((thematic) => {
|
|
688
|
+
if (this.groups.indexOf(thematic.name) === -1) {
|
|
689
|
+
numNodes++;
|
|
690
|
+
}
|
|
691
|
+
});
|
|
692
|
+
this.childrens.forEach((children) => {
|
|
693
|
+
if (!this.thematics.find((thematic) => thematic.source === children.source)) {
|
|
694
|
+
numNodes++;
|
|
695
|
+
}
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
else {
|
|
699
|
+
numSelected = node.children.length;
|
|
700
|
+
node.children.forEach((children) => {
|
|
701
|
+
if (this.selectedThematics.selected.find((thematic) => thematic === children)) {
|
|
702
|
+
numNodes++;
|
|
703
|
+
}
|
|
704
|
+
});
|
|
705
|
+
}
|
|
706
|
+
if (numNodes >= 1) {
|
|
707
|
+
return numSelected === numNodes;
|
|
708
|
+
}
|
|
709
|
+
else {
|
|
710
|
+
return false;
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
hasChildrenSelected(node) {
|
|
714
|
+
let bool = false;
|
|
715
|
+
node.children.forEach((child) => {
|
|
716
|
+
if (this.selectedThematics.selected.find((thematic) => thematic.source === child.source)) {
|
|
717
|
+
bool = true;
|
|
718
|
+
}
|
|
719
|
+
});
|
|
720
|
+
return bool;
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Apply header checkbox
|
|
724
|
+
*/
|
|
725
|
+
masterToggle() {
|
|
726
|
+
this.isAllSelected() ? this.selectedThematics.clear() : this.selectAll();
|
|
727
|
+
const selectedThematicsName = [];
|
|
728
|
+
for (const thematic of this.selectedThematics.selected) {
|
|
729
|
+
selectedThematicsName.push(thematic);
|
|
730
|
+
}
|
|
731
|
+
if (this.isAllSelected()) {
|
|
732
|
+
this.thematics.forEach((thematic) => {
|
|
733
|
+
if (this.hasChild(0, thematic)) {
|
|
734
|
+
this.treeControl.expand(thematic);
|
|
735
|
+
}
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
else {
|
|
739
|
+
this.thematics.forEach((thematic) => {
|
|
740
|
+
if (this.hasChild(0, thematic)) {
|
|
741
|
+
this.treeControl.collapse(thematic);
|
|
742
|
+
}
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
this.thematicChange.emit(selectedThematicsName);
|
|
746
|
+
}
|
|
747
|
+
selectAll(node) {
|
|
748
|
+
if (!node) {
|
|
749
|
+
this.thematics.forEach((thematic) => {
|
|
750
|
+
if (this.groups.indexOf(thematic.name) === -1) {
|
|
751
|
+
this.selectedThematics.select(thematic);
|
|
752
|
+
}
|
|
753
|
+
});
|
|
754
|
+
this.childrens.forEach((children) => {
|
|
755
|
+
if (!this.selectedThematics.selected.find((thematic) => thematic.source === children.source)) {
|
|
756
|
+
this.selectedThematics.select(children);
|
|
757
|
+
}
|
|
758
|
+
});
|
|
759
|
+
}
|
|
760
|
+
else {
|
|
761
|
+
if (this.hasChild(0, node)) {
|
|
762
|
+
node.children.forEach((children) => this.selectedThematics.select(children));
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
childrensToggle(node) {
|
|
767
|
+
this.isAllSelected(node)
|
|
768
|
+
? node.children.forEach((child) => this.selectedThematics.deselect(child))
|
|
769
|
+
: this.selectAll(node);
|
|
770
|
+
const selectedThematicsName = [];
|
|
771
|
+
for (const thematic of this.selectedThematics.selected) {
|
|
772
|
+
selectedThematicsName.push(thematic);
|
|
773
|
+
}
|
|
774
|
+
this.treeControl.expand(node);
|
|
775
|
+
this.thematicChange.emit(selectedThematicsName);
|
|
776
|
+
}
|
|
777
|
+
/**
|
|
778
|
+
* Apply changes to the thematics selected tree and emit event
|
|
779
|
+
*/
|
|
780
|
+
onToggleChange(nodeSelected) {
|
|
781
|
+
let selected = false;
|
|
782
|
+
if (this.selectedThematics.selected.find((thematic) => thematic.source === nodeSelected.source) !== undefined) {
|
|
783
|
+
selected = true;
|
|
784
|
+
}
|
|
785
|
+
this.childrens.forEach((children) => {
|
|
786
|
+
if (children === nodeSelected && selected === false) {
|
|
787
|
+
this.selectedThematics.select(children);
|
|
788
|
+
}
|
|
789
|
+
if (children === nodeSelected && selected === true) {
|
|
790
|
+
this.selectedThematics.deselect(children);
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
this.thematics.forEach((thematic) => {
|
|
794
|
+
if (thematic === nodeSelected && selected === false) {
|
|
795
|
+
this.selectedThematics.select(thematic);
|
|
796
|
+
}
|
|
797
|
+
if (thematic === nodeSelected && selected === true) {
|
|
798
|
+
this.selectedThematics.deselect(thematic);
|
|
799
|
+
}
|
|
800
|
+
});
|
|
801
|
+
const selectedThematicsName = [];
|
|
802
|
+
for (const thematic of this.selectedThematics.selected) {
|
|
803
|
+
selectedThematicsName.push(thematic);
|
|
804
|
+
}
|
|
805
|
+
this.thematicChange.emit(selectedThematicsName);
|
|
806
|
+
}
|
|
807
|
+
onDrawControlChange() {
|
|
808
|
+
this.drawControlIsActive = !this.drawControlIsActive;
|
|
809
|
+
}
|
|
810
|
+
onfreehandControlChange() {
|
|
811
|
+
this.freehandDrawIsActive = !this.freehandDrawIsActive;
|
|
812
|
+
this.freehandControl.emit(this.freehandDrawIsActive);
|
|
813
|
+
if (this.isPoint()) {
|
|
814
|
+
this.predefinedRadius.emit(!this.freehandDrawIsActive);
|
|
815
|
+
if (this.freehandDrawIsActive) {
|
|
816
|
+
this.overlayStyle$.next(undefined);
|
|
817
|
+
this.drawStyle$.next(undefined);
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
else {
|
|
821
|
+
this.predefinedRadius.emit(false);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* Launch search button
|
|
826
|
+
*/
|
|
827
|
+
toggleSearchButton() {
|
|
828
|
+
if (!this.isPredefined()) {
|
|
829
|
+
if (this.buffer > 0) {
|
|
830
|
+
this.zoneWithBuffer.meta = {
|
|
831
|
+
id: undefined,
|
|
832
|
+
title: 'Zone'
|
|
833
|
+
};
|
|
834
|
+
this.zoneWithBuffer.properties = {
|
|
835
|
+
nom: 'Zone',
|
|
836
|
+
type: this.type
|
|
837
|
+
};
|
|
838
|
+
this.drawZoneEvent.emit(this.zoneWithBuffer);
|
|
839
|
+
}
|
|
840
|
+
else {
|
|
841
|
+
this.drawZone.meta = {
|
|
842
|
+
id: undefined,
|
|
843
|
+
title: 'Zone'
|
|
844
|
+
};
|
|
845
|
+
this.drawZone.properties = {
|
|
846
|
+
nom: 'Zone',
|
|
847
|
+
type: this.type
|
|
848
|
+
};
|
|
849
|
+
this.drawZoneEvent.emit(this.drawZone);
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
if (this.isPoint()) {
|
|
853
|
+
this.radiusEvent.emit(this.radius);
|
|
854
|
+
}
|
|
855
|
+
else if (this.isPolygon()) {
|
|
856
|
+
this.bufferEvent.emit(this.buffer);
|
|
857
|
+
}
|
|
858
|
+
this.toggleSearch.emit();
|
|
859
|
+
this.store.entities$.pipe(debounceTime(500)).subscribe((value) => {
|
|
860
|
+
if (value.length && this.layers.length === this.thematicLength + 1) {
|
|
861
|
+
this.openWorkspace.emit();
|
|
862
|
+
this.createTableTemplate();
|
|
863
|
+
}
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Launch clear button (clear store and map layers)
|
|
868
|
+
*/
|
|
869
|
+
clearButton() {
|
|
870
|
+
this.loading = true;
|
|
871
|
+
if (this.store) {
|
|
872
|
+
this.store.clear();
|
|
873
|
+
}
|
|
874
|
+
if (this.isPoint() || this.isPolygon()) {
|
|
875
|
+
this.drawZone = undefined;
|
|
876
|
+
this.formControl.reset();
|
|
877
|
+
}
|
|
878
|
+
this.bufferFormControl.setValue(0);
|
|
879
|
+
this.buffer = 0;
|
|
880
|
+
this.bufferEvent.emit(0);
|
|
881
|
+
this.clearButtonEvent.emit();
|
|
882
|
+
this.loading = false;
|
|
883
|
+
this.tableTemplate = undefined;
|
|
884
|
+
}
|
|
885
|
+
clearDrawZone() {
|
|
886
|
+
this.formControl.reset();
|
|
887
|
+
this.bufferFormControl.setValue(0);
|
|
888
|
+
this.buffer = 0;
|
|
889
|
+
}
|
|
890
|
+
/**
|
|
891
|
+
* Launch clear search (clear field if type is predefined)
|
|
892
|
+
*/
|
|
893
|
+
clearSearch() {
|
|
894
|
+
this.selectedThematics.clear();
|
|
895
|
+
this.bufferFormControl.setValue(0);
|
|
896
|
+
this.buffer = 0;
|
|
897
|
+
this.bufferEvent.emit(0);
|
|
898
|
+
this.thematicChange.emit([]);
|
|
899
|
+
this.clearSearchEvent.emit();
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Verify conditions of incomplete fields or busy service
|
|
903
|
+
*/
|
|
904
|
+
disableSearchButton() {
|
|
905
|
+
if (this.type === SpatialFilterType.Predefined) {
|
|
906
|
+
if (this.selectedItemType === SpatialFilterItemType.Address) {
|
|
907
|
+
if (this.queryType !== undefined && this.zone !== undefined) {
|
|
908
|
+
return this.loading;
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
if (this.selectedItemType === SpatialFilterItemType.Thematics) {
|
|
912
|
+
if (this.queryType !== undefined &&
|
|
913
|
+
this.zone !== undefined &&
|
|
914
|
+
this.selectedThematics.selected.length > 0) {
|
|
915
|
+
return this.loading;
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
if (this.type === SpatialFilterType.Polygon ||
|
|
920
|
+
this.type === SpatialFilterType.Point) {
|
|
921
|
+
if (this.selectedItemType === SpatialFilterItemType.Address &&
|
|
922
|
+
this.formControl.value !== null) {
|
|
923
|
+
return this.loading;
|
|
924
|
+
}
|
|
925
|
+
if (this.selectedItemType === SpatialFilterItemType.Thematics) {
|
|
926
|
+
if (this.selectedThematics.selected.length > 0 &&
|
|
927
|
+
this.formControl.value !== null) {
|
|
928
|
+
return this.loading;
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
return true;
|
|
933
|
+
}
|
|
934
|
+
disabledClearSearch() {
|
|
935
|
+
let disable = true;
|
|
936
|
+
this.selectedItemType === SpatialFilterItemType.Address
|
|
937
|
+
? (disable = this.queryType === undefined)
|
|
938
|
+
: (disable =
|
|
939
|
+
this.queryType === undefined &&
|
|
940
|
+
this.selectedThematics.selected.length === 0);
|
|
941
|
+
return disable;
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* Manage radius value at user change
|
|
945
|
+
*/
|
|
946
|
+
getRadius() {
|
|
947
|
+
let formValue;
|
|
948
|
+
if (this.formControl.value !== null) {
|
|
949
|
+
this.measureUnit === MeasureLengthUnit.Meters
|
|
950
|
+
? (formValue = this.formControl.value.radius)
|
|
951
|
+
: (formValue = this.formControl.value.radius / 1000);
|
|
952
|
+
}
|
|
953
|
+
else {
|
|
954
|
+
formValue = undefined;
|
|
955
|
+
}
|
|
956
|
+
if (this.type === SpatialFilterType.Point) {
|
|
957
|
+
if (!this.freehandDrawIsActive) {
|
|
958
|
+
if (this.radiusFormControl.value < 0 ||
|
|
959
|
+
(this.measureUnit === MeasureLengthUnit.Meters &&
|
|
960
|
+
this.radiusFormControl.value >= 100000) ||
|
|
961
|
+
(this.measureUnit === MeasureLengthUnit.Kilometers &&
|
|
962
|
+
this.radiusFormControl.value >= 100)) {
|
|
963
|
+
this.messageService.alert('igo.geo.spatialFilter.radiusAlert', 'igo.geo.spatialFilter.warning');
|
|
964
|
+
this.radius = 1000;
|
|
965
|
+
this.measureUnit === MeasureLengthUnit.Meters
|
|
966
|
+
? this.radiusFormControl.setValue(this.radius)
|
|
967
|
+
: this.radiusFormControl.setValue(this.radius / 1000);
|
|
968
|
+
this.drawGuide$.next(this.radius);
|
|
969
|
+
return;
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
else {
|
|
973
|
+
if (formValue) {
|
|
974
|
+
if (formValue >= 100000) {
|
|
975
|
+
this.messageService.alert('igo.geo.spatialFilter.radiusAlert', 'igo.geo.spatialFilter.warning');
|
|
976
|
+
this.formControl.reset();
|
|
977
|
+
return;
|
|
978
|
+
}
|
|
979
|
+
if (formValue !== this.radiusFormControl.value) {
|
|
980
|
+
this.radiusFormControl.setValue(formValue);
|
|
981
|
+
return;
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
if (this.measureUnit === MeasureLengthUnit.Meters) {
|
|
986
|
+
this.radius = this.radiusFormControl.value;
|
|
987
|
+
this.drawGuide$.next(this.radius);
|
|
988
|
+
}
|
|
989
|
+
else {
|
|
990
|
+
this.radius = this.radiusFormControl.value * 1000;
|
|
991
|
+
this.drawGuide$.next(this.radius * 1000);
|
|
992
|
+
}
|
|
993
|
+
this.overlayStyle$.next(this.PointStyle);
|
|
994
|
+
this.drawStyle$.next(this.PointStyle);
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
toggleVisibleList() {
|
|
998
|
+
this.listIsVisible = !this.listIsVisible;
|
|
999
|
+
}
|
|
1000
|
+
createTableTemplate() {
|
|
1001
|
+
const typeColumn = {
|
|
1002
|
+
name: 'meta.title',
|
|
1003
|
+
title: this.languageService.translate.instant('igo.geo.spatialFilter.type'),
|
|
1004
|
+
renderer: EntityTableColumnRenderer.UnsanitizedHTML
|
|
1005
|
+
};
|
|
1006
|
+
const nameColumn = {
|
|
1007
|
+
name: 'properties.nom',
|
|
1008
|
+
title: this.languageService.translate.instant('igo.geo.spatialFilter.searchResults'),
|
|
1009
|
+
renderer: EntityTableColumnRenderer.UnsanitizedHTML
|
|
1010
|
+
};
|
|
1011
|
+
const columns = [typeColumn, nameColumn];
|
|
1012
|
+
this.tableTemplate = {
|
|
1013
|
+
selection: true,
|
|
1014
|
+
sort: true,
|
|
1015
|
+
columns
|
|
1016
|
+
};
|
|
1017
|
+
}
|
|
1018
|
+
static ɵfac = function SpatialFilterItemComponent_Factory(t) { return new (t || SpatialFilterItemComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.SpatialFilterService), i0.ɵɵdirectiveInject(i2.MessageService), i0.ɵɵdirectiveInject(i2.LanguageService)); };
|
|
1019
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SpatialFilterItemComponent, selectors: [["igo-spatial-filter-item"]], inputs: { map: "map", type: "type", queryType: "queryType", zone: "zone", loading: "loading", store: "store", layers: "layers", allLayers: "allLayers", thematicLength: "thematicLength" }, outputs: { toggleSearch: "toggleSearch", itemTypeChange: "itemTypeChange", thematicChange: "thematicChange", drawZoneEvent: "drawZoneEvent", bufferEvent: "bufferEvent", zoneWithBufferChange: "zoneWithBufferChange", measureUnitChange: "measureUnitChange", radiusEvent: "radiusEvent", freehandControl: "freehandControl", predefinedRadius: "predefinedRadius", clearButtonEvent: "clearButtonEvent", clearSearchEvent: "clearSearchEvent", export: "export", openWorkspace: "openWorkspace", entityChange: "entityChange" }, decls: 29, vars: 43, consts: [[3, "formControl", "map", "geometryType", "drawGuide", "measure", "drawControlIsActive", "freehandDrawIsActive", "drawStyle", "overlayStyle", "radius", "predefinedRadius"], [1, "header"], [3, "checked", "labelPosition", "change", 4, "ngIf"], ["class", "buffer-unit", 4, "ngIf"], ["class", "radius-unit", 4, "ngIf"], [1, "title", "mat-typography"], [3, "value"], [3, "value", "change", 4, "ngFor", "ngForOf"], ["class", "thematics", 4, "ngIf"], [1, "buttons"], ["mat-raised-button", "", "class", "clear-search-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "class", "clear-form-button", 3, "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "color", "primary", 1, "search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "remove-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "export-button", 3, "disabled", "click"], ["class", "chevron-down", "mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], ["class", "results", 4, "ngIf"], [3, "checked", "labelPosition", "change"], [1, "buffer-unit"], [1, "buffer-form"], [1, "buffer"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly"], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [1, "radius-unit"], [1, "radius-form"], [1, "radius"], ["type", "number", "matInput", "", 3, "placeholder", "formControl", "value", "readonly", "input"], [3, "value", "change"], [1, "thematics"], ["matColumnDef", "name"], ["class", "thematics-header", 4, "matHeaderCellDef"], ["matColumnDef", "select"], ["class", "checks-header", 4, "matHeaderCellDef"], [4, "matHeaderRowDef"], [4, "matRowDef", "matRowDefColumns"], [3, "dataSource", "treeControl"], ["matTreeNodeToggle", "", 4, "matTreeNodeDef"], [4, "matTreeNodeDef", "matTreeNodeDefWhen"], [1, "thematics-header"], [1, "checks-header"], [3, "checked", "indeterminate", "change"], ["matTreeNodeToggle", ""], [1, "mat-tree-node"], ["mat-icon-button", "", "disabled", ""], [1, "tree-check", 3, "checked", "click", "change"], ["mat-icon-button", "", 3, "click"], [3, "svgIcon"], [1, "tree-check-2", 3, "checked", "indeterminate", "change"], [1, "tree-ul"], ["matTreeNodeOutlet", ""], ["mat-raised-button", "", 1, "clear-search-button", 3, "disabled", "click"], ["mat-raised-button", "", 1, "clear-form-button", 3, "disabled", "click"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 1, "chevron-down", 3, "matTooltip", "click"], ["svgIcon", "chevron-down"], [1, "results"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click", 4, "ngIf"], [1, "results-list", 3, "template", "store", "entitySelectChange"], ["mat-icon-button", "", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"]], template: function SpatialFilterItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1020
|
+
i0.ɵɵelement(0, "igo-geometry-form-field-input", 0);
|
|
1021
|
+
i0.ɵɵpipe(1, "async");
|
|
1022
|
+
i0.ɵɵpipe(2, "async");
|
|
1023
|
+
i0.ɵɵpipe(3, "async");
|
|
1024
|
+
i0.ɵɵelementStart(4, "div", 1);
|
|
1025
|
+
i0.ɵɵtemplate(5, SpatialFilterItemComponent_mat_slide_toggle_5_Template, 3, 5, "mat-slide-toggle", 2);
|
|
1026
|
+
i0.ɵɵtemplate(6, SpatialFilterItemComponent_mat_slide_toggle_6_Template, 3, 5, "mat-slide-toggle", 2);
|
|
1027
|
+
i0.ɵɵelementEnd();
|
|
1028
|
+
i0.ɵɵtemplate(7, SpatialFilterItemComponent_div_7_Template, 8, 8, "div", 3);
|
|
1029
|
+
i0.ɵɵtemplate(8, SpatialFilterItemComponent_div_8_Template, 8, 8, "div", 4);
|
|
1030
|
+
i0.ɵɵelementStart(9, "mat-label", 5);
|
|
1031
|
+
i0.ɵɵtext(10);
|
|
1032
|
+
i0.ɵɵpipe(11, "translate");
|
|
1033
|
+
i0.ɵɵelementEnd();
|
|
1034
|
+
i0.ɵɵelementStart(12, "mat-radio-group", 6);
|
|
1035
|
+
i0.ɵɵtemplate(13, SpatialFilterItemComponent_mat_radio_button_13_Template, 3, 4, "mat-radio-button", 7);
|
|
1036
|
+
i0.ɵɵelementEnd();
|
|
1037
|
+
i0.ɵɵtemplate(14, SpatialFilterItemComponent_div_14_Template, 11, 5, "div", 8);
|
|
1038
|
+
i0.ɵɵelementStart(15, "div", 9);
|
|
1039
|
+
i0.ɵɵtemplate(16, SpatialFilterItemComponent_button_16_Template, 3, 4, "button", 10);
|
|
1040
|
+
i0.ɵɵtemplate(17, SpatialFilterItemComponent_button_17_Template, 3, 4, "button", 11);
|
|
1041
|
+
i0.ɵɵelementStart(18, "button", 12);
|
|
1042
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_Template_button_click_18_listener() { return ctx.toggleSearchButton(); });
|
|
1043
|
+
i0.ɵɵtext(19);
|
|
1044
|
+
i0.ɵɵpipe(20, "translate");
|
|
1045
|
+
i0.ɵɵelementEnd();
|
|
1046
|
+
i0.ɵɵelementStart(21, "button", 13);
|
|
1047
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_Template_button_click_21_listener() { return ctx.clearButton(); });
|
|
1048
|
+
i0.ɵɵtext(22);
|
|
1049
|
+
i0.ɵɵpipe(23, "translate");
|
|
1050
|
+
i0.ɵɵelementEnd();
|
|
1051
|
+
i0.ɵɵelementStart(24, "button", 14);
|
|
1052
|
+
i0.ɵɵlistener("click", function SpatialFilterItemComponent_Template_button_click_24_listener() { return ctx.export.emit(); });
|
|
1053
|
+
i0.ɵɵtext(25);
|
|
1054
|
+
i0.ɵɵpipe(26, "translate");
|
|
1055
|
+
i0.ɵɵelementEnd()();
|
|
1056
|
+
i0.ɵɵtemplate(27, SpatialFilterItemComponent_button_27_Template, 3, 3, "button", 15);
|
|
1057
|
+
i0.ɵɵtemplate(28, SpatialFilterItemComponent_div_28_Template, 3, 3, "div", 16);
|
|
1058
|
+
} if (rf & 2) {
|
|
1059
|
+
i0.ɵɵproperty("formControl", ctx.formControl)("map", ctx.map)("geometryType", ctx.geometryType)("drawGuide", i0.ɵɵpipeBind1(1, 29, ctx.drawGuide$))("measure", ctx.measure)("drawControlIsActive", ctx.drawControlIsActive)("freehandDrawIsActive", ctx.freehandDrawIsActive)("drawStyle", i0.ɵɵpipeBind1(2, 31, ctx.drawStyle$))("overlayStyle", i0.ɵɵpipeBind1(3, 33, ctx.overlayStyle$))("radius", ctx.radius)("predefinedRadius", ctx.predefinedRadius);
|
|
1060
|
+
i0.ɵɵadvance(5);
|
|
1061
|
+
i0.ɵɵproperty("ngIf", !ctx.isPredefined());
|
|
1062
|
+
i0.ɵɵadvance(1);
|
|
1063
|
+
i0.ɵɵproperty("ngIf", !ctx.isPredefined());
|
|
1064
|
+
i0.ɵɵadvance(1);
|
|
1065
|
+
i0.ɵɵproperty("ngIf", ctx.isPolygon());
|
|
1066
|
+
i0.ɵɵadvance(1);
|
|
1067
|
+
i0.ɵɵproperty("ngIf", ctx.isPoint());
|
|
1068
|
+
i0.ɵɵadvance(2);
|
|
1069
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(11, 35, "igo.geo.spatialFilter.search"), " :\n");
|
|
1070
|
+
i0.ɵɵadvance(2);
|
|
1071
|
+
i0.ɵɵproperty("value", ctx.selectedItemType);
|
|
1072
|
+
i0.ɵɵadvance(1);
|
|
1073
|
+
i0.ɵɵproperty("ngForOf", ctx.itemType);
|
|
1074
|
+
i0.ɵɵadvance(1);
|
|
1075
|
+
i0.ɵɵproperty("ngIf", ctx.selectedItemType === "Thematics" && !ctx.tableTemplate || ctx.selectedItemType === "Thematics" && ctx.tableTemplate && !ctx.listIsVisible);
|
|
1076
|
+
i0.ɵɵadvance(2);
|
|
1077
|
+
i0.ɵɵproperty("ngIf", ctx.isPredefined());
|
|
1078
|
+
i0.ɵɵadvance(1);
|
|
1079
|
+
i0.ɵɵproperty("ngIf", ctx.isPolygon() || ctx.isPoint());
|
|
1080
|
+
i0.ɵɵadvance(1);
|
|
1081
|
+
i0.ɵɵproperty("disabled", ctx.disableSearchButton());
|
|
1082
|
+
i0.ɵɵadvance(1);
|
|
1083
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 37, "igo.geo.spatialFilter.goSearch"), " ");
|
|
1084
|
+
i0.ɵɵadvance(2);
|
|
1085
|
+
i0.ɵɵproperty("disabled", ctx.allLayers.length === 0);
|
|
1086
|
+
i0.ɵɵadvance(1);
|
|
1087
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 39, "igo.geo.spatialFilter.removeLayer"), " ");
|
|
1088
|
+
i0.ɵɵadvance(2);
|
|
1089
|
+
i0.ɵɵproperty("disabled", !ctx.store.entities$.getValue().length);
|
|
1090
|
+
i0.ɵɵadvance(1);
|
|
1091
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 41, "igo.geo.spatialFilter.exportLayer"), " ");
|
|
1092
|
+
i0.ɵɵadvance(2);
|
|
1093
|
+
i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && !ctx.listIsVisible);
|
|
1094
|
+
i0.ɵɵadvance(1);
|
|
1095
|
+
i0.ɵɵproperty("ngIf", ctx.store.all().length && ctx.tableTemplate && ctx.listIsVisible);
|
|
1096
|
+
} }, styles: ["[_nghost-%COMP%] .header[_ngcontent-%COMP%]{margin-top:5px;width:100%}[_nghost-%COMP%] .mat-mdc-slide-toggle[_ngcontent-%COMP%]{padding:5px;width:100%}[_nghost-%COMP%] .mat-mdc-slide-toggle[_ngcontent-%COMP%] .mdc-form-field{width:100%}[_nghost-%COMP%] .mat-mdc-slide-toggle[_ngcontent-%COMP%] .mdc-label{margin-left:0;width:calc(100% - 60px)}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{margin-left:5px;font-size:initial}[_nghost-%COMP%] .mat-mdc-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .mat-mdc-radio-button[_ngcontent-%COMP%]{display:inline-flex;position:relative;margin-left:12px}[_nghost-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{margin-top:5px}[_nghost-%COMP%] .mat-column-select[_ngcontent-%COMP%]{overflow:auto}[_nghost-%COMP%] .buttons[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0}[_nghost-%COMP%] .thematics[_ngcontent-%COMP%]{max-height:35%;overflow:auto;margin-top:5px;width:98%}[_nghost-%COMP%] .results[_ngcontent-%COMP%]{overflow:auto;max-height:250px;width:98%}[_nghost-%COMP%] .mat-column-typeResults[_ngcontent-%COMP%]{max-width:100px;margin-right:5px}[_nghost-%COMP%] .buffer-unit[_ngcontent-%COMP%], [_nghost-%COMP%] .radius-unit[_ngcontent-%COMP%]{display:flex;width:100%;padding:5px;box-sizing:border-box}[_nghost-%COMP%] .radius[_ngcontent-%COMP%], [_nghost-%COMP%] .buffer[_ngcontent-%COMP%]{display:flex;flex-flow:column nowrap;width:110%}[_nghost-%COMP%] .unit-field[_ngcontent-%COMP%]{width:110px;margin-left:30px}[_nghost-%COMP%] .example-tree-invisible[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .tree-ul[_ngcontent-%COMP%]{margin:0;padding:0 0 0 20px;list-style-type:none}[_nghost-%COMP%] .tree-check[_ngcontent-%COMP%], [_nghost-%COMP%] .tree-check-2[_ngcontent-%COMP%]{position:relative;margin-left:auto;margin-right:5px}[_nghost-%COMP%] .thematics-header[_ngcontent-%COMP%]{max-width:250px}[_nghost-%COMP%] .checks-header[_ngcontent-%COMP%]{padding:none;max-width:calc(100% - 316px);overflow:hidden}[_nghost-%COMP%] .mat-mdc-checkbox[_ngcontent-%COMP%]{padding:5px}[_nghost-%COMP%] .mat-tree-node[_ngcontent-%COMP%]{position:relative;min-height:42px;width:280px}[_nghost-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{height:56px}[_nghost-%COMP%] .results[_ngcontent-%COMP%]{max-height:45%;width:98%}[_nghost-%COMP%] .results[_ngcontent-%COMP%] igo-entity-table[_ngcontent-%COMP%] div.table-container{overflow:unset}"], changeDetection: 0 });
|
|
1097
|
+
}
|
|
1098
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterItemComponent, [{
|
|
1099
|
+
type: Component,
|
|
1100
|
+
args: [{ selector: 'igo-spatial-filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-geometry-form-field-input\n [formControl]=\"formControl\"\n [map]=\"map\"\n [geometryType]=\"geometryType\"\n [drawGuide]=\"drawGuide$ | async\"\n [measure]=\"measure\"\n [drawControlIsActive]=\"drawControlIsActive\"\n [freehandDrawIsActive]=\"freehandDrawIsActive\"\n [drawStyle]=\"drawStyle$ | async\"\n [overlayStyle]=\"overlayStyle$ | async\"\n [radius]=\"radius\"\n [predefinedRadius]=\"predefinedRadius\"\n>\n</igo-geometry-form-field-input>\n\n<div class=\"header\">\n <mat-slide-toggle\n *ngIf=\"!isPredefined()\"\n [checked]=\"drawControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onDrawControlChange()\"\n >\n {{ 'igo.geo.spatialFilter.drawControl' | translate }}\n </mat-slide-toggle>\n <mat-slide-toggle\n *ngIf=\"!isPredefined()\"\n [checked]=\"freehandDrawIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onfreehandControlChange()\"\n >\n {{ 'igo.geo.spatialFilter.freehandControl' | translate }}\n </mat-slide-toggle>\n</div>\n\n<div class=\"buffer-unit\" *ngIf=\"isPolygon()\">\n <form class=\"buffer-form\">\n <mat-form-field class=\"buffer\">\n <input\n type=\"number\"\n matInput\n placeholder=\"{{ 'igo.geo.spatialFilter.buffer' | translate }}\"\n [formControl]=\"bufferFormControl\"\n [value]=\"0\"\n [readonly]=\"this.formControl.value === null\"\n />\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\"\n >\n <mat-option\n *ngFor=\"let measureUnit of measureUnits\"\n [value]=\"measureUnit\"\n >\n {{ 'igo.geo.measure.' + measureUnit | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<div class=\"radius-unit\" *ngIf=\"isPoint()\">\n <form class=\"radius-form\">\n <mat-form-field class=\"radius\">\n <input\n type=\"number\"\n matInput\n placeholder=\"{{ 'igo.geo.spatialFilter.radius' | translate }}\"\n [formControl]=\"radiusFormControl\"\n [value]=\"1000\"\n (input)=\"getRadius()\"\n [readonly]=\"\n this.freehandDrawIsActive && this.formControl.value === null\n \"\n />\n </mat-form-field>\n </form>\n\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"measureUnit\"\n (selectionChange)=\"onMeasureUnitChange($event.value)\"\n >\n <mat-option\n *ngFor=\"let measureUnit of measureUnits\"\n [value]=\"measureUnit\"\n >\n {{ 'igo.geo.measure.' + measureUnit | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n\n<mat-label class=\"title mat-typography\"\n >{{ 'igo.geo.spatialFilter.search' | translate }} :\n</mat-label>\n<mat-radio-group [value]=\"selectedItemType\">\n <mat-radio-button\n *ngFor=\"let item of itemType\"\n [value]=\"item\"\n (change)=\"onItemTypeChange($event)\"\n >\n {{ 'igo.geo.spatialFilter.' + item | translate }}\n </mat-radio-button>\n</mat-radio-group>\n\n<div\n class=\"thematics\"\n *ngIf=\"\n (selectedItemType === 'Thematics' && !tableTemplate) ||\n (selectedItemType === 'Thematics' && tableTemplate && !listIsVisible)\n \"\n>\n <mat-table>\n <!-- Name Column -->\n <ng-container matColumnDef=\"name\">\n <mat-header-cell *matHeaderCellDef class=\"thematics-header\">{{\n 'igo.geo.spatialFilter.Thematics' | translate\n }}</mat-header-cell>\n </ng-container>\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef class=\"checks-header\">\n <mat-checkbox\n (change)=\"$event ? masterToggle() : null\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"selectedThematics.hasValue() && !isAllSelected()\"\n >\n </mat-checkbox>\n </mat-header-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n </mat-table>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\n <li class=\"mat-tree-node\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n {{ node.name }}\n <mat-checkbox\n class=\"tree-check\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? onToggleChange(node) : null\"\n [checked]=\"selectedThematics.isSelected(node)\"\n >\n </mat-checkbox>\n </li>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\n <div class=\"mat-tree-node\">\n <button mat-icon-button (click)=\"onToggleClick(node)\">\n <mat-icon\n [svgIcon]=\"\n treeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right'\n \"\n ></mat-icon>\n </button>\n {{ node.name }}\n <mat-checkbox\n class=\"tree-check-2\"\n (change)=\"$event ? childrensToggle(node) : null\"\n [checked]=\"isAllSelected(node)\"\n [indeterminate]=\"hasChildrenSelected(node) && !isAllSelected(node)\"\n >\n </mat-checkbox>\n </div>\n <ul\n class=\"tree-ul\"\n [class.example-tree-invisible]=\"!treeControl.isExpanded(node)\"\n >\n <ng-container matTreeNodeOutlet></ng-container>\n </ul>\n </mat-nested-tree-node>\n </mat-tree>\n</div>\n\n<div class=\"buttons\">\n <button\n *ngIf=\"isPredefined()\"\n mat-raised-button\n class=\"clear-search-button\"\n [disabled]=\"disabledClearSearch()\"\n (click)=\"clearSearch()\"\n >\n {{ 'igo.geo.spatialFilter.clearSearch' | translate }}\n </button>\n\n <button\n *ngIf=\"isPolygon() || isPoint()\"\n mat-raised-button\n class=\"clear-form-button\"\n [disabled]=\"this.formControl.value === null\"\n (click)=\"clearDrawZone()\"\n >\n {{ 'igo.geo.spatialFilter.clearForm' | translate }}\n </button>\n\n <button\n mat-raised-button\n class=\"search-button\"\n [disabled]=\"disableSearchButton()\"\n color=\"primary\"\n (click)=\"toggleSearchButton()\"\n >\n {{ 'igo.geo.spatialFilter.goSearch' | translate }}\n </button>\n\n <button\n mat-raised-button\n class=\"remove-button\"\n [disabled]=\"allLayers.length === 0\"\n (click)=\"clearButton()\"\n >\n {{ 'igo.geo.spatialFilter.removeLayer' | translate }}\n </button>\n\n <button\n mat-raised-button\n class=\"export-button\"\n [disabled]=\"!store.entities$.getValue().length\"\n (click)=\"export.emit()\"\n >\n {{ 'igo.geo.spatialFilter.exportLayer' | translate }}\n </button>\n</div>\n\n<button\n class=\"chevron-down\"\n *ngIf=\"store.all().length && tableTemplate && !listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.showSearchResults' | translate\"\n (click)=\"toggleVisibleList()\"\n>\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n</button>\n\n<div\n class=\"results\"\n *ngIf=\"store.all().length && tableTemplate && listIsVisible\"\n>\n <button\n *ngIf=\"listIsVisible\"\n mat-icon-button\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialFilter.hideSearchResults' | translate\"\n (click)=\"toggleVisibleList()\"\n >\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n <igo-entity-table\n class=\"results-list\"\n [template]=\"tableTemplate\"\n [store]=\"store\"\n (entitySelectChange)=\"entityChange.emit($event)\"\n >\n </igo-entity-table>\n</div>\n", styles: [":host .header{margin-top:5px;width:100%}:host .mat-mdc-slide-toggle{padding:5px;width:100%}:host .mat-mdc-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .mat-mdc-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .title{margin-left:5px;font-size:initial}:host .mat-mdc-radio-group{display:flex;flex-direction:column}:host .mat-mdc-radio-button{display:inline-flex;position:relative;margin-left:12px}:host .mat-mdc-form-field{margin-top:5px}:host .mat-column-select{overflow:auto}:host .buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0}:host .thematics{max-height:35%;overflow:auto;margin-top:5px;width:98%}:host .results{overflow:auto;max-height:250px;width:98%}:host .mat-column-typeResults{max-width:100px;margin-right:5px}:host .buffer-unit,:host .radius-unit{display:flex;width:100%;padding:5px;box-sizing:border-box}:host .radius,:host .buffer{display:flex;flex-flow:column nowrap;width:110%}:host .unit-field{width:110px;margin-left:30px}:host .example-tree-invisible{display:none}:host .tree-ul{margin:0;padding:0 0 0 20px;list-style-type:none}:host .tree-check,:host .tree-check-2{position:relative;margin-left:auto;margin-right:5px}:host .thematics-header{max-width:250px}:host .checks-header{padding:none;max-width:calc(100% - 316px);overflow:hidden}:host .mat-mdc-checkbox{padding:5px}:host .mat-tree-node{position:relative;min-height:42px;width:280px}:host .mat-mdc-header-cell{height:56px}:host .results{max-height:45%;width:98%}:host .results igo-entity-table ::ng-deep div.table-container{overflow:unset}\n"] }]
|
|
1101
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SpatialFilterService }, { type: i2.MessageService }, { type: i2.LanguageService }]; }, { map: [{
|
|
1102
|
+
type: Input
|
|
1103
|
+
}], type: [{
|
|
1104
|
+
type: Input
|
|
1105
|
+
}], queryType: [{
|
|
1106
|
+
type: Input
|
|
1107
|
+
}], zone: [{
|
|
1108
|
+
type: Input
|
|
1109
|
+
}], loading: [{
|
|
1110
|
+
type: Input
|
|
1111
|
+
}], store: [{
|
|
1112
|
+
type: Input
|
|
1113
|
+
}], layers: [{
|
|
1114
|
+
type: Input
|
|
1115
|
+
}], allLayers: [{
|
|
1116
|
+
type: Input
|
|
1117
|
+
}], thematicLength: [{
|
|
1118
|
+
type: Input
|
|
1119
|
+
}], toggleSearch: [{
|
|
1120
|
+
type: Output
|
|
1121
|
+
}], itemTypeChange: [{
|
|
1122
|
+
type: Output
|
|
1123
|
+
}], thematicChange: [{
|
|
1124
|
+
type: Output
|
|
1125
|
+
}], drawZoneEvent: [{
|
|
1126
|
+
type: Output
|
|
1127
|
+
}], bufferEvent: [{
|
|
1128
|
+
type: Output
|
|
1129
|
+
}], zoneWithBufferChange: [{
|
|
1130
|
+
type: Output
|
|
1131
|
+
}], measureUnitChange: [{
|
|
1132
|
+
type: Output
|
|
1133
|
+
}], radiusEvent: [{
|
|
1134
|
+
type: Output
|
|
1135
|
+
}], freehandControl: [{
|
|
1136
|
+
type: Output
|
|
1137
|
+
}], predefinedRadius: [{
|
|
1138
|
+
type: Output
|
|
1139
|
+
}], clearButtonEvent: [{
|
|
1140
|
+
type: Output
|
|
1141
|
+
}], clearSearchEvent: [{
|
|
1142
|
+
type: Output
|
|
1143
|
+
}], export: [{
|
|
1144
|
+
type: Output
|
|
1145
|
+
}], openWorkspace: [{
|
|
1146
|
+
type: Output
|
|
1147
|
+
}], entityChange: [{
|
|
1148
|
+
type: Output
|
|
1149
|
+
}] }); })();
|
|
1150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvc3BhdGlhbC1maWx0ZXIvc3BhdGlhbC1maWx0ZXItaXRlbS9zcGF0aWFsLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9zcGF0aWFsLWZpbHRlci9zcGF0aWFsLWZpbHRlci1pdGVtL3NwYXRpYWwtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sWUFBWSxFQUdiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJB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TTtZQUNHLGVBQWU7a0JBQXhCLE1BQU07WUFDRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFFRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFFRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFFRyxNQUFNO2tCQUFmLE1BQU07WUFFRyxhQUFhO2tCQUF0QixNQUFNO1lBQ0csWUFBWTtrQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNwYXRpYWxGaWx0ZXJRdWVyeVR5cGUsXG4gIFNwYXRpYWxGaWx0ZXJUeXBlXG59IGZyb20gJy4uLy4uL3NoYXJlZC9zcGF0aWFsLWZpbHRlci5lbnVtJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQnO1xuaW1wb3J0IHsgU3BhdGlhbEZpbHRlckl0ZW1UeXBlIH0gZnJvbSAnLi8uLi8uLi9zaGFyZWQvc3BhdGlhbC1maWx0ZXIuZW51bSc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi8uLi8uLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCB7IEdlb0pTT05HZW9tZXRyeSB9IGZyb20gJy4uLy4uLy4uL2dlb21ldHJ5L3NoYXJlZC9nZW9tZXRyeS5pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IE9sUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XG5pbXBvcnQgeyBNYXRUcmVlTmVzdGVkRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgU3BhdGlhbEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc3BhdGlhbC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNZWFzdXJlTGVuZ3RoVW5pdCB9IGZyb20gJy4uLy4uLy4uL21lYXN1cmUnO1xuaW1wb3J0IHtcbiAgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneSxcbiAgRW50aXR5U3RvcmVXaXRoU3RyYXRlZ3ksXG4gIEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIsXG4gIEVudGl0eVRhYmxlVGVtcGxhdGVcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IExheWVyLCBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uLy4uL2xheWVyL3NoYXJlZCc7XG5pbXBvcnQgeyBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYyB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL3NwYXRpYWwtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24sIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vZmVhdHVyZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkJztcblxuLyoqXG4gKiBTcGF0aWFsLUZpbHRlci1JdGVtIChzZWFyY2ggcGFyYW1ldGVycylcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNwYXRpYWwtZmlsdGVyLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BhdGlhbC1maWx0ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwYXRpYWwtZmlsdGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU3BhdGlhbEZpbHRlckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IFNwYXRpYWxGaWx0ZXJUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuICBzZXQgdHlwZSh0eXBlOiBTcGF0aWFsRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZW9tZXRyeVR5cGVzLmZpbmRJbmRleCgoZ2VvbSkgPT4gZ2VvbSA9PT0gdGhpcy50eXBlKTtcbiAgICB0aGlzLmdlb21ldHJ5VHlwZSA9IHRoaXMuZ2VvbWV0cnlUeXBlc1tpbmRleF07XG4gICAgdGhpcy5mb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIHRoaXMucmFkaXVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZHJhd0d1aWRlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuZHJhd1N0eWxlJC5uZXh0KHVuZGVmaW5lZCk7XG5cbiAgICAvLyBOZWNlc3NhcnkgdG8ga2VlcCByZWZlcmVuY2UgdG8gdGhlIGdlb21ldHJ5IGZvcm0gZmllbGQgaW5wdXRcbiAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkKSB7XG4gICAgICBjb25zdCBnZW9qc29uOiBHZW9KU09OR2VvbWV0cnkgPSB7XG4gICAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICAgIGNvb3JkaW5hdGVzOiAnJ1xuICAgICAgfTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZ2VvanNvbik7XG4gICAgfVxuXG4gICAgLy8gTmVjZXNzYXJ5IHRvIGFwcGx5IHRoZSByaWdodCBzdHlsZSB3aGVuIGdlb21ldHJ5IHR5cGUgaXMgUG9pbnRcbiAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5Qb2ludCkge1xuICAgICAgdGhpcy5yYWRpdXMgPSAxMDAwOyAvLyBCYXNlIHJhZGl1c1xuICAgICAgdGhpcy5yYWRpdXNGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnJhZGl1cyk7XG4gICAgICB0aGlzLlBvaW50U3R5bGUgPSAoXG4gICAgICAgIGZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PixcbiAgICAgICAgcmVzb2x1dGlvbjogbnVtYmVyXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgZ2VvbSA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSBhcyBPbFBvaW50O1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICAgICAgZ2VvbS5nZXRDb29yZGluYXRlcygpLFxuICAgICAgICAgIHRoaXMubWFwLnByb2plY3Rpb24sXG4gICAgICAgICAgJ0VQU0c6NDMyNidcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBvbFN0eWxlLlN0eWxlKHtcbiAgICAgICAgICBpbWFnZTogbmV3IG9sU3R5bGUuQ2lyY2xlKHtcbiAgICAgICAgICAgIHJhZGl1czpcbiAgICAgICAgICAgICAgdGhpcy5yYWRpdXMgL1xuICAgICAgICAgICAgICBNYXRoLmNvcygoTWF0aC5QSSAvIDE4MCkgKiBjb29yZGluYXRlc1sxXSkgL1xuICAgICAgICAgICAgICByZXNvbHV0aW9uLCAvLyBMYXRpdHVkZSBjb3JyZWN0aW9uXG4gICAgICAgICAgICBzdHJva2U6IG5ldyBvbFN0eWxlLlN0cm9rZSh7XG4gICAgICAgICAgICAgIHdpZHRoOiAyLFxuICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwgMTUzLCAyNTUpJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWxsOiBuZXcgb2xTdHlsZS5GaWxsKHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDE1MywgMjU1LCAwLjIpJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB0aGlzLm92ZXJsYXlTdHlsZSA9IHRoaXMuUG9pbnRTdHlsZTtcbiAgICAgIHRoaXMuZHJhd1N0eWxlJC5uZXh0KHRoaXMub3ZlcmxheVN0eWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgZ2VvbWV0cnkgdHlwZXMgaXMgUG9seWdvblxuICAgICAgdGhpcy5yYWRpdXMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLlBvbHlTdHlsZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBvbFN0eWxlLlN0eWxlKHtcbiAgICAgICAgICBzdHJva2U6IG5ldyBvbFN0eWxlLlN0cm9rZSh7XG4gICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAxNTMsIDI1NSknXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsbDogbmV3IG9sU3R5bGUuRmlsbCh7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwgMTUzLCAyNTUsIDAuMiknXG4gICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgY29uc3QgY29sb3IgPSBbMCwgMTUzLCAyNTVdO1xuICAgICAgY29uc3QgZHJhd1N0eWxlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IG9sU3R5bGUuU3R5bGUoe1xuICAgICAgICAgIGltYWdlOiBuZXcgb2xTdHlsZS5DaXJjbGUoe1xuICAgICAgICAgICAgcmFkaXVzOiA4LFxuICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDE1MywgMjU1KSdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsbDogbmV3IG9sU3R5bGUuRmlsbCh7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAxNTMsIDI1NSwgMC4yKSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yLmNvbmNhdChbMV0pLFxuICAgICAgICAgICAgd2lkdGg6IDJcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaWxsOiBuZXcgb2xTdHlsZS5GaWxsKHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci5jb25jYXQoWzAuMl0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5vdmVybGF5U3R5bGUgPSB0aGlzLlBvbHlTdHlsZTtcbiAgICAgIHRoaXMuZHJhd1N0eWxlJC5uZXh0KGRyYXdTdHlsZSk7XG4gICAgfVxuICAgIHRoaXMub3ZlcmxheVN0eWxlJC5uZXh0KHRoaXMub3ZlcmxheVN0eWxlKTtcbiAgfVxuICBwcml2YXRlIF90eXBlOiBTcGF0aWFsRmlsdGVyVHlwZTtcblxuICBASW5wdXQoKSBxdWVyeVR5cGU6IFNwYXRpYWxGaWx0ZXJRdWVyeVR5cGU7XG5cbiAgQElucHV0KCkgem9uZTogRmVhdHVyZTtcblxuICBASW5wdXQoKSBsb2FkaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzdG9yZSgpOiBFbnRpdHlTdG9yZVdpdGhTdHJhdGVneTxGZWF0dXJlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlO1xuICB9XG4gIHNldCBzdG9yZShzdG9yZTogRW50aXR5U3RvcmVXaXRoU3RyYXRlZ3k8RmVhdHVyZT4pIHtcbiAgICB0aGlzLl9zdG9yZSA9IHN0b3JlO1xuICAgIHRoaXMuX3N0b3JlLmVudGl0aWVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBfc3RvcmU6IEVudGl0eVN0b3JlV2l0aFN0cmF0ZWd5PEZlYXR1cmU+O1xuXG4gIC8qKlxuICAgKiBBdmFpbGFibGUgbWVhc3VyZSB1bml0cyBmb3IgdGhlIG1lYXN1cmUgdHlwZSBnaXZlblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBtZWFzdXJlVW5pdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzLCBNZWFzdXJlTGVuZ3RoVW5pdC5LaWxvbWV0ZXJzXTtcbiAgfVxuXG4gIEBJbnB1dCgpIGxheWVyczogTGF5ZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGFsbExheWVyczogTGF5ZXJbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB0aGVtYXRpY0xlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90aGVtYXRpY0xlbmd0aDtcbiAgfVxuICBzZXQgdGhlbWF0aWNMZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3RoZW1hdGljTGVuZ3RoID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfdGhlbWF0aWNMZW5ndGg6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgdG9nZ2xlU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBpdGVtVHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BhdGlhbEZpbHRlckl0ZW1UeXBlPigpO1xuXG4gIEBPdXRwdXQoKSB0aGVtYXRpY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BhdGlhbEZpbHRlclRoZW1hdGljW10+KCk7XG5cbiAgQE91dHB1dCgpIGRyYXdab25lRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEZlYXR1cmU+KCk7XG5cbiAgQE91dHB1dCgpIGJ1ZmZlckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSB6b25lV2l0aEJ1ZmZlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZT4oKTtcbiAgQE91dHB1dCgpIG1lYXN1cmVVbml0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNZWFzdXJlTGVuZ3RoVW5pdD4oKTtcblxuICBAT3V0cHV0KCkgcmFkaXVzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGZyZWVoYW5kQ29udHJvbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHByZWRlZmluZWRSYWRpdXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgpIGNsZWFyQnV0dG9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGNsZWFyU2VhcmNoRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGV4cG9ydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb3BlbldvcmtzcGFjZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVudGl0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHB1YmxpYyBpdGVtVHlwZTogU3BhdGlhbEZpbHRlckl0ZW1UeXBlW10gPSBbXG4gICAgU3BhdGlhbEZpbHRlckl0ZW1UeXBlLkFkZHJlc3MsXG4gICAgU3BhdGlhbEZpbHRlckl0ZW1UeXBlLlRoZW1hdGljc1xuICBdO1xuICBwdWJsaWMgc2VsZWN0ZWRJdGVtVHlwZTogU3BhdGlhbEZpbHRlckl0ZW1UeXBlID1cbiAgICBTcGF0aWFsRmlsdGVySXRlbVR5cGUuQWRkcmVzcztcbiAgcHVibGljIHNlbGVjdGVkU291cmNlQWRkcmVzcztcblxuICB0cmVlQ29udHJvbDogTmVzdGVkVHJlZUNvbnRyb2w8U3BhdGlhbEZpbHRlclRoZW1hdGljPiA9XG4gICAgbmV3IE5lc3RlZFRyZWVDb250cm9sPFNwYXRpYWxGaWx0ZXJUaGVtYXRpYz4oKG5vZGUpID0+IG5vZGUuY2hpbGRyZW4pO1xuXG4gIC8vIEZvciB0aGVtYXRpY3MgYW5kIHJlc3VsdHMgdGFibGVzXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnbmFtZScsICdzZWxlY3QnXTtcbiAgcHVibGljIGNoaWxkcmVuczogU3BhdGlhbEZpbHRlclRoZW1hdGljW10gPSBbXTtcbiAgcHVibGljIGdyb3Vwczogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIHRoZW1hdGljczogU3BhdGlhbEZpbHRlclRoZW1hdGljW10gPSBbXTtcbiAgcHVibGljIGRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZU5lc3RlZERhdGFTb3VyY2U8U3BhdGlhbEZpbHRlclRoZW1hdGljPigpO1xuICBwdWJsaWMgc2VsZWN0ZWRUaGVtYXRpY3MgPSBuZXcgU2VsZWN0aW9uTW9kZWw8U3BhdGlhbEZpbHRlclRoZW1hdGljPihcbiAgICB0cnVlLFxuICAgIFtdXG4gICk7XG5cbiAgLy8gRm9yIGdlb21ldHJ5IGZvcm0gZmllbGQgaW5wdXRcbiAgdmFsdWUkOiBCZWhhdmlvclN1YmplY3Q8R2VvSlNPTkdlb21ldHJ5PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgZHJhd0d1aWRlJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBvdmVybGF5U3R5bGUkOiBCZWhhdmlvclN1YmplY3Q8XG4gICAgb2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gb2xTdHlsZS5TdHlsZSlcbiAgPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgZHJhd1N0eWxlJDogQmVoYXZpb3JTdWJqZWN0PFxuICAgIG9sU3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IG9sU3R5bGUuU3R5bGUpXG4gID4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSB2YWx1ZSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmFkaXVzQ2hhbmdlcyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgYnVmZmVyQ2hhbmdlcyQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgZ2VvbWV0cnlUeXBlOiBUeXBlIHwgc3RyaW5nO1xuICBwdWJsaWMgZ2VvbWV0cnlUeXBlRmllbGQgPSBmYWxzZTtcbiAgcHVibGljIGdlb21ldHJ5VHlwZXM6IHN0cmluZ1tdID0gWydQb2ludCcsICdQb2x5Z29uJ107XG4gIHB1YmxpYyBkcmF3R3VpZGVGaWVsZCA9IGZhbHNlO1xuICBwdWJsaWMgZHJhd0d1aWRlOiBudW1iZXIgPSBudWxsO1xuICBwdWJsaWMgZHJhd0d1aWRlUGxhY2Vob2xkZXIgPSAnJztcbiAgcHVibGljIG1lYXN1cmUgPSBmYWxzZTtcbiAgcHVibGljIGRyYXdDb250cm9sSXNBY3RpdmUgPSB0cnVlO1xuICBwdWJsaWMgZnJlZWhhbmREcmF3SXNBY3RpdmUgPSBmYWxzZTtcbiAgcHVibGljIGRyYXdTdHlsZTogb2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gb2xTdHlsZS5TdHlsZSk7XG4gIHB1YmxpYyBkcmF3Wm9uZTtcbiAgcHVibGljIG92ZXJsYXlTdHlsZTogb2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gb2xTdHlsZS5TdHlsZSk7XG4gIHB1YmxpYyBQb2ludFN0eWxlOiBvbFN0eWxlLlN0eWxlIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBvbFN0eWxlLlN0eWxlKTtcbiAgcHVibGljIFBvbHlTdHlsZTogb2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gb2xTdHlsZS5TdHlsZSk7XG5cbiAgcHVibGljIHJhZGl1czogbnVtYmVyO1xuICBwdWJsaWMgYnVmZmVyOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcmFkaXVzRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBidWZmZXJGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBwdWJsaWMgbWVhc3VyZVVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xuICBwdWJsaWMgem9uZVdpdGhCdWZmZXI7XG5cbiAgcHVibGljIGxpc3RJc1Zpc2libGUgPSB0cnVlO1xuICBwdWJsaWMgdGFibGVUZW1wbGF0ZTogRW50aXR5VGFibGVUZW1wbGF0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHNwYXRpYWxGaWx0ZXJTZXJ2aWNlOiBTcGF0aWFsRmlsdGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNwYXRpYWxGaWx0ZXJTZXJ2aWNlXG4gICAgICAubG9hZFRoZW1hdGljc0xpc3QoKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpY1tdKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgIHRoaXMuY2hpbGRyZW5zLnB1c2goaXRlbSk7XG4gICAgICAgICAgdGhpcy5jaGlsZHJlbnMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ncm91cHMucHVzaChcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby50ZXJyYXBpLmxpbWl0ZXMnKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBsaW1pdHM6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYyA9IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmdyb3Vwc1swXSxcbiAgICAgICAgICBjaGlsZHJlbjogW11cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50aGVtYXRpY3MucHVzaChsaW1pdHMpO1xuICAgICAgICB0aGlzLmNoaWxkcmVucy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZC5ncm91cCAmJiB0aGlzLmdyb3Vwcy5pbmRleE9mKGNoaWxkLmdyb3VwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzLnB1c2goY2hpbGQuZ3JvdXApO1xuICAgICAgICAgICAgY29uc3QgdGhlbWF0aWM6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYyA9IHtcbiAgICAgICAgICAgICAgbmFtZTogY2hpbGQuZ3JvdXAsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGhlbWF0aWNzLnB1c2godGhlbWF0aWMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghY2hpbGQuZ3JvdXApIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY2hpbGQubmFtZSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICdpZ28uZ2VvLnRlcnJhcGkuQWRtUmVnaW9uJ1xuICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgY2hpbGQubmFtZSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby50ZXJyYXBpLk11bicpIHx8XG4gICAgICAgICAgICAgIGNoaWxkLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby50ZXJyYXBpLkFycm9uZCdcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIGNoaWxkLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby50ZXJyYXBpLkNpcmNGZWQnXG4gICAgICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICBjaGlsZC5uYW1lID09PVxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICAgJ2lnby5nZW8udGVycmFwaS5DaXJjUHJvdidcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIGNoaWxkLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby50ZXJyYXBpLkRpclJlZydcbiAgICAgICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIGNoaWxkLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8udGVycmFwaS5NUkMnKSB8fFxuICAgICAgICAgICAgICBjaGlsZC5uYW1lID09PVxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICAgJ2lnby5nZW8udGVycmFwaS5SZWdUb3VyJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjaGlsZC5ncm91cCA9IGxpbWl0cy5uYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgY2hpbGQubmFtZSA9PT1cbiAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8udGVycmFwaS5yb3V0ZXMnKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNoaWxkLmdyb3VwID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5ncm91cC50cmFuc3BvcnQnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCB0aGVtYXRpYzogU3BhdGlhbEZpbHRlclRoZW1hdGljID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGNoaWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogY2hpbGQuc291cmNlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHRoaXMudGhlbWF0aWNzLnB1c2godGhlbWF0aWMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRoZW1hdGljcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGhlbWF0aWNzLmZvckVhY2goKHRoZW1hdGljKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVucykge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmdyb3VwID09PSB0aGVtYXRpYy5uYW1lKSB7XG4gICAgICAgICAgICAgIHRoZW1hdGljLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy50aGVtYXRpY3M7XG5cbiAgICB0aGlzLmRyYXdHdWlkZSQubmV4dChudWxsKTtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KFxuICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA/IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgOiB1bmRlZmluZWRcbiAgICApO1xuICAgIHRoaXMudmFsdWUkJCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICh2YWx1ZTogR2VvSlNPTkdlb21ldHJ5KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xuICAgICAgICAgIHRoaXMuZHJhd1pvbmUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIGFzIEZlYXR1cmU7XG4gICAgICAgICAgaWYgKHRoaXMuYnVmZmVyICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdab25lRXZlbnQuZW1pdCh0aGlzLmRyYXdab25lKTtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5idWZmZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgdGhpcy5kcmF3Wm9uZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnZhbHVlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRSYWRpdXMoKTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yYWRpdXNDaGFuZ2VzJCQgPSB0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRSYWRpdXMoKTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5idWZmZXJDaGFuZ2VzJCQgPSB0aGlzLmJ1ZmZlckZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5tZWFzdXJlVW5pdCA9PT0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzICYmXG4gICAgICAgICAgdmFsdWUgPiAwICYmXG4gICAgICAgICAgdmFsdWUgPD0gMTAwMDAwXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYnVmZmVyID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5idWZmZXJFdmVudC5lbWl0KHZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNwYXRpYWxGaWx0ZXJTZXJ2aWNlXG4gICAgICAgICAgICAubG9hZEJ1ZmZlckdlb21ldHJ5KHRoaXMuZHJhd1pvbmUsIFNwYXRpYWxGaWx0ZXJUeXBlLlBvbHlnb24sIHZhbHVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmVhdHVyZUdlb206IEZlYXR1cmUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy56b25lV2l0aEJ1ZmZlciA9IGZlYXR1cmVHZW9tO1xuICAgICAgICAgICAgICB0aGlzLnpvbmVXaXRoQnVmZmVyQ2hhbmdlLmVtaXQodGhpcy56b25lV2l0aEJ1ZmZlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0aGlzLm1lYXN1cmVVbml0ID09PSBNZWFzdXJlTGVuZ3RoVW5pdC5LaWxvbWV0ZXJzICYmXG4gICAgICAgICAgdmFsdWUgPiAwICYmXG4gICAgICAgICAgdmFsdWUgPD0gMTAwXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYnVmZmVyID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5idWZmZXJFdmVudC5lbWl0KHZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNwYXRpYWxGaWx0ZXJTZXJ2aWNlXG4gICAgICAgICAgICAubG9hZEJ1ZmZlckdlb21ldHJ5KFxuICAgICAgICAgICAgICB0aGlzLmRyYXdab25lLFxuICAgICAgICAgICAgICBTcGF0aWFsRmlsdGVyVHlwZS5Qb2x5Z29uLFxuICAgICAgICAgICAgICB2YWx1ZSAqIDEwMDBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZlYXR1cmVHZW9tOiBGZWF0dXJlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuem9uZVdpdGhCdWZmZXIgPSBmZWF0dXJlR2VvbTtcbiAgICAgICAgICAgICAgdGhpcy56b25lV2l0aEJ1ZmZlckNoYW5nZS5lbWl0KHRoaXMuem9uZVdpdGhCdWZmZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuYnVmZmVyRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5kcmF3Wm9uZUV2ZW50LmVtaXQodGhpcy5kcmF3Wm9uZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgdmFsdWUgPCAwIHx8XG4gICAgICAgICAgKHRoaXMubWVhc3VyZVVuaXQgPT09IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycyAmJiB2YWx1ZSA+IDEwMDAwMCkgfHxcbiAgICAgICAgICAodGhpcy5tZWFzdXJlVW5pdCA9PT0gTWVhc3VyZUxlbmd0aFVuaXQuS2lsb21ldGVycyAmJiB2YWx1ZSA+IDEwMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5idWZmZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgwKTtcbiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IDA7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydChcbiAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuYnVmZmVyQWxlcnQnLFxuICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci53YXJuaW5nJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRSZWNvcmRTdHJhdGVneSA9IG5ldyBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5KHt9KTtcbiAgICBjb25zdCBzZWxlY3Rpb25TdHJhdGVneSA9IG5ldyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSh7XG4gICAgICBsYXllcjogbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgekluZGV4OiAzMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXG4gICAgICAgIHN0eWxlOiB1bmRlZmluZWQsXG4gICAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXG4gICAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgICBicm93c2FibGU6IGZhbHNlXG4gICAgICB9KSxcbiAgICAgIG1hcDogdGhpcy5tYXAsXG4gICAgICBoaXRUb2xlcmFuY2U6IDE1LFxuICAgICAgbW90aW9uOiBGZWF0dXJlTW90aW9uLkRlZmF1bHQsXG4gICAgICBtYW55OiB0cnVlLFxuICAgICAgZHJhZ0JveDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZS5hZGRTdHJhdGVneShzZWxlY3Rpb25TdHJhdGVneSwgdHJ1ZSk7XG4gICAgdGhpcy5zdG9yZS5hZGRTdHJhdGVneShzZWxlY3RlZFJlY29yZFN0cmF0ZWd5LCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIHZhbHVlIHN0cmVhbVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsdWUkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucmFkaXVzQ2hhbmdlcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5idWZmZXJDaGFuZ2VzJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNkUmVmLmRldGFjaCgpO1xuICAgIGlmICh0aGlzLnJhZGl1c0NoYW5nZXMkJCkge1xuICAgICAgdGhpcy5yYWRpdXNDaGFuZ2VzJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUkJCkge1xuICAgICAgdGhpcy52YWx1ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgb25JdGVtVHlwZUNoYW5nZShldmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtVHlwZSA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMuaXRlbVR5cGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbVR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbWVhc3VyZSB1bml0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25NZWFzdXJlVW5pdENoYW5nZSh1bml0OiBNZWFzdXJlTGVuZ3RoVW5pdCkge1xuICAgIGlmICh1bml0ID09PSB0aGlzLm1lYXN1cmVVbml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVhc3VyZVVuaXQgPSB1bml0O1xuICAgICAgdGhpcy5tZWFzdXJlVW5pdENoYW5nZS5lbWl0KHRoaXMubWVhc3VyZVVuaXQpO1xuICAgICAgaWYgKHRoaXMuaXNQb2x5Z29uKCkpIHtcbiAgICAgICAgdGhpcy5tZWFzdXJlVW5pdCA9PT0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmJ1ZmZlckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuYnVmZmVyRm9ybUNvbnRyb2wudmFsdWUgKiAxMDAwKVxuICAgICAgICAgIDogdGhpcy5idWZmZXJGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgdGhpcy5idWZmZXJGb3JtQ29udHJvbC52YWx1ZSAvIDEwMDBcbiAgICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb2ludCgpKSB7XG4gICAgICAgIHRoaXMubWVhc3VyZVVuaXQgPT09IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVyc1xuICAgICAgICAgID8gdGhpcy5yYWRpdXNGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnZhbHVlICogMTAwMClcbiAgICAgICAgICA6IHRoaXMucmFkaXVzRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHRoaXMucmFkaXVzRm9ybUNvbnRyb2wudmFsdWUgLyAxMDAwXG4gICAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzUHJlZGVmaW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkO1xuICB9XG5cbiAgaXNQb2x5Z29uKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvbHlnb247XG4gIH1cblxuICBpc1BvaW50KCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvaW50O1xuICB9XG5cbiAgaGFzQ2hpbGQoXzogbnVtYmVyLCBub2RlOiBTcGF0aWFsRmlsdGVyVGhlbWF0aWMpIHtcbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblRvZ2dsZUNsaWNrKG5vZGU6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYykge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVxuICAgICAgPyB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlKG5vZGUpXG4gICAgICA6IHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xuICB9XG5cbiAgaXNBbGxTZWxlY3RlZChub2RlPzogU3BhdGlhbEZpbHRlclRoZW1hdGljKSB7XG4gICAgbGV0IG51bVNlbGVjdGVkO1xuICAgIGxldCBudW1Ob2RlcyA9IDA7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQubGVuZ3RoO1xuICAgICAgdGhpcy50aGVtYXRpY3MuZm9yRWFjaCgodGhlbWF0aWMpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBzLmluZGV4T2YodGhlbWF0aWMubmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgbnVtTm9kZXMrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNoaWxkcmVucy5mb3JFYWNoKChjaGlsZHJlbikgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMudGhlbWF0aWNzLmZpbmQoXG4gICAgICAgICAgICAodGhlbWF0aWMpID0+IHRoZW1hdGljLnNvdXJjZSA9PT0gY2hpbGRyZW4uc291cmNlXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBudW1Ob2RlcysrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbnVtU2VsZWN0ZWQgPSBub2RlLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW4pID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQuZmluZChcbiAgICAgICAgICAgICh0aGVtYXRpYykgPT4gdGhlbWF0aWMgPT09IGNoaWxkcmVuXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBudW1Ob2RlcysrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobnVtTm9kZXMgPj0gMSkge1xuICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Ob2RlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NoaWxkcmVuU2VsZWN0ZWQobm9kZTogU3BhdGlhbEZpbHRlclRoZW1hdGljKSB7XG4gICAgbGV0IGJvb2wgPSBmYWxzZTtcbiAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQuZmluZChcbiAgICAgICAgICAodGhlbWF0aWMpID0+IHRoZW1hdGljLnNvdXJjZSA9PT0gY2hpbGQuc291cmNlXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBib29sID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYm9vbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBoZWFkZXIgY2hlY2tib3hcbiAgICovXG4gIG1hc3RlclRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/IHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3MuY2xlYXIoKSA6IHRoaXMuc2VsZWN0QWxsKCk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFRoZW1hdGljc05hbWU6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpY1tdID0gW107XG4gICAgZm9yIChjb25zdCB0aGVtYXRpYyBvZiB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLnNlbGVjdGVkKSB7XG4gICAgICBzZWxlY3RlZFRoZW1hdGljc05hbWUucHVzaCh0aGVtYXRpYyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLnRoZW1hdGljcy5mb3JFYWNoKCh0aGVtYXRpYykgPT4ge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZCgwLCB0aGVtYXRpYykpIHtcbiAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGVtYXRpYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRoZW1hdGljcy5mb3JFYWNoKCh0aGVtYXRpYykgPT4ge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZCgwLCB0aGVtYXRpYykpIHtcbiAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlKHRoZW1hdGljKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudGhlbWF0aWNDaGFuZ2UuZW1pdChzZWxlY3RlZFRoZW1hdGljc05hbWUpO1xuICB9XG5cbiAgc2VsZWN0QWxsKG5vZGU/OiBTcGF0aWFsRmlsdGVyVGhlbWF0aWMpIHtcbiAgICBpZiAoIW5vZGUpIHtcbiAgICAgIHRoaXMudGhlbWF0aWNzLmZvckVhY2goKHRoZW1hdGljKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmdyb3Vwcy5pbmRleE9mKHRoZW1hdGljLm5hbWUpID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0KHRoZW1hdGljKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNoaWxkcmVucy5mb3JFYWNoKChjaGlsZHJlbikgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQuZmluZChcbiAgICAgICAgICAgICh0aGVtYXRpYykgPT4gdGhlbWF0aWMuc291cmNlID09PSBjaGlsZHJlbi5zb3VyY2VcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0KGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmhhc0NoaWxkKDAsIG5vZGUpKSB7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW4pID0+XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFRoZW1hdGljcy5zZWxlY3QoY2hpbGRyZW4pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hpbGRyZW5zVG9nZ2xlKG5vZGU6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYykge1xuICAgIHRoaXMuaXNBbGxTZWxlY3RlZChub2RlKVxuICAgICAgPyBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLmRlc2VsZWN0KGNoaWxkKSlcbiAgICAgIDogdGhpcy5zZWxlY3RBbGwobm9kZSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFRoZW1hdGljc05hbWU6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpY1tdID0gW107XG4gICAgZm9yIChjb25zdCB0aGVtYXRpYyBvZiB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLnNlbGVjdGVkKSB7XG4gICAgICBzZWxlY3RlZFRoZW1hdGljc05hbWUucHVzaCh0aGVtYXRpYyk7XG4gICAgfVxuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xuICAgIHRoaXMudGhlbWF0aWNDaGFuZ2UuZW1pdChzZWxlY3RlZFRoZW1hdGljc05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGNoYW5nZXMgdG8gdGhlIHRoZW1hdGljcyBzZWxlY3RlZCB0cmVlIGFuZCBlbWl0IGV2ZW50XG4gICAqL1xuICBvblRvZ2dsZUNoYW5nZShub2RlU2VsZWN0ZWQ6IFNwYXRpYWxGaWx0ZXJUaGVtYXRpYykge1xuICAgIGxldCBzZWxlY3RlZCA9IGZhbHNlO1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQuZmluZChcbiAgICAgICAgKHRoZW1hdGljKSA9PiB0aGVtYXRpYy5zb3VyY2UgPT09IG5vZGVTZWxlY3RlZC5zb3VyY2VcbiAgICAgICkgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuY2hpbGRyZW5zLmZvckVhY2goKGNoaWxkcmVuKSA9PiB7XG4gICAgICBpZiAoY2hpbGRyZW4gPT09IG5vZGVTZWxlY3RlZCAmJiBzZWxlY3RlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRoZW1hdGljcy5zZWxlY3QoY2hpbGRyZW4pO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkcmVuID09PSBub2RlU2VsZWN0ZWQgJiYgc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRoZW1hdGljcy5kZXNlbGVjdChjaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy50aGVtYXRpY3MuZm9yRWFjaCgodGhlbWF0aWMpID0+IHtcbiAgICAgIGlmICh0aGVtYXRpYyA9PT0gbm9kZVNlbGVjdGVkICYmIHNlbGVjdGVkID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLnNlbGVjdCh0aGVtYXRpYyk7XG4gICAgICB9XG4gICAgICBpZiAodGhlbWF0aWMgPT09IG5vZGVTZWxlY3RlZCAmJiBzZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLmRlc2VsZWN0KHRoZW1hdGljKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkVGhlbWF0aWNzTmFtZTogU3BhdGlhbEZpbHRlclRoZW1hdGljW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRoZW1hdGljIG9mIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQpIHtcbiAgICAgIHNlbGVjdGVkVGhlbWF0aWNzTmFtZS5wdXNoKHRoZW1hdGljKTtcbiAgICB9XG4gICAgdGhpcy50aGVtYXRpY0NoYW5nZS5lbWl0KHNlbGVjdGVkVGhlbWF0aWNzTmFtZSk7XG4gIH1cblxuICBvbkRyYXdDb250cm9sQ2hhbmdlKCkge1xuICAgIHRoaXMuZHJhd0NvbnRyb2xJc0FjdGl2ZSA9ICF0aGlzLmRyYXdDb250cm9sSXNBY3RpdmU7XG4gIH1cblxuICBvbmZyZWVoYW5kQ29udHJvbENoYW5nZSgpIHtcbiAgICB0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlID0gIXRoaXMuZnJlZWhhbmREcmF3SXNBY3RpdmU7XG4gICAgdGhpcy5mcmVlaGFuZENvbnRyb2wuZW1pdCh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKTtcbiAgICBpZiAodGhpcy5pc1BvaW50KCkpIHtcbiAgICAgIHRoaXMucHJlZGVmaW5lZFJhZGl1cy5lbWl0KCF0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKTtcbiAgICAgIGlmICh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVN0eWxlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZHJhd1N0eWxlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJlZGVmaW5lZFJhZGl1cy5lbWl0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIHNlYXJjaCBidXR0b25cbiAgICovXG4gIHRvZ2dsZVNlYXJjaEJ1dHRvbigpIHtcbiAgICBpZiAoIXRoaXMuaXNQcmVkZWZpbmVkKCkpIHtcbiAgICAgIGlmICh0aGlzLmJ1ZmZlciA+IDApIHtcbiAgICAgICAgdGhpcy56b25lV2l0aEJ1ZmZlci5tZXRhID0ge1xuICAgICAgICAgIGlkOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGl0bGU6ICdab25lJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnpvbmVXaXRoQnVmZmVyLnByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgbm9tOiAnWm9uZScsXG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlIGFzIHN0cmluZ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRyYXdab25lRXZlbnQuZW1pdCh0aGlzLnpvbmVXaXRoQnVmZmVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZHJhd1pvbmUubWV0YSA9IHtcbiAgICAgICAgICBpZDogdW5kZWZpbmVkLFxuICAgICAgICAgIHRpdGxlOiAnWm9uZSdcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kcmF3Wm9uZS5wcm9wZXJ0aWVzID0ge1xuICAgICAgICAgIG5vbTogJ1pvbmUnLFxuICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSBhcyBzdHJpbmdcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kcmF3Wm9uZUV2ZW50LmVtaXQodGhpcy5kcmF3Wm9uZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUG9pbnQoKSkge1xuICAgICAgdGhpcy5yYWRpdXNFdmVudC5lbWl0KHRoaXMucmFkaXVzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb2x5Z29uKCkpIHtcbiAgICAgIHRoaXMuYnVmZmVyRXZlbnQuZW1pdCh0aGlzLmJ1ZmZlcik7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlU2VhcmNoLmVtaXQoKTtcbiAgICB0aGlzLnN0b3JlLmVudGl0aWVzJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUubGVuZ3RoICYmIHRoaXMubGF5ZXJzLmxlbmd0aCA9PT0gdGhpcy50aGVtYXRpY0xlbmd0aCArIDEpIHtcbiAgICAgICAgdGhpcy5vcGVuV29ya3NwYWNlLmVtaXQoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVUYWJsZVRlbXBsYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGNsZWFyIGJ1dHRvbiAoY2xlYXIgc3RvcmUgYW5kIG1hcCBsYXllcnMpXG4gICAqL1xuICBjbGVhckJ1dHRvbigpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUG9pbnQoKSB8fCB0aGlzLmlzUG9seWdvbigpKSB7XG4gICAgICB0aGlzLmRyYXdab25lID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICB0aGlzLmJ1ZmZlckZvcm1Db250cm9sLnNldFZhbHVlKDApO1xuICAgIHRoaXMuYnVmZmVyID0gMDtcbiAgICB0aGlzLmJ1ZmZlckV2ZW50LmVtaXQoMCk7XG4gICAgdGhpcy5jbGVhckJ1dHRvbkV2ZW50LmVtaXQoKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnRhYmxlVGVtcGxhdGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBjbGVhckRyYXdab25lKCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wucmVzZXQoKTtcbiAgICB0aGlzLmJ1ZmZlckZvcm1Db250cm9sLnNldFZhbHVlKDApO1xuICAgIHRoaXMuYnVmZmVyID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXVuY2ggY2xlYXIgc2VhcmNoIChjbGVhciBmaWVsZCBpZiB0eXBlIGlzIHByZWRlZmluZWQpXG4gICAqL1xuICBjbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLmNsZWFyKCk7XG4gICAgdGhpcy5idWZmZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgwKTtcbiAgICB0aGlzLmJ1ZmZlciA9IDA7XG4gICAgdGhpcy5idWZmZXJFdmVudC5lbWl0KDApO1xuICAgIHRoaXMudGhlbWF0aWNDaGFuZ2UuZW1pdChbXSk7XG4gICAgdGhpcy5jbGVhclNlYXJjaEV2ZW50LmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgY29uZGl0aW9ucyBvZiBpbmNvbXBsZXRlIGZpZWxkcyBvciBidXN5IHNlcnZpY2VcbiAgICovXG4gIGRpc2FibGVTZWFyY2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gU3BhdGlhbEZpbHRlclR5cGUuUHJlZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtVHlwZSA9PT0gU3BhdGlhbEZpbHRlckl0ZW1UeXBlLkFkZHJlc3MpIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnlUeXBlICE9PSB1bmRlZmluZWQgJiYgdGhpcy56b25lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1UeXBlID09PSBTcGF0aWFsRmlsdGVySXRlbVR5cGUuVGhlbWF0aWNzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnF1ZXJ5VHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgdGhpcy56b25lICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGhlbWF0aWNzLnNlbGVjdGVkLmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvbHlnb24gfHxcbiAgICAgIHRoaXMudHlwZSA9PT0gU3BhdGlhbEZpbHRlclR5cGUuUG9pbnRcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1UeXBlID09PSBTcGF0aWFsRmlsdGVySXRlbVR5cGUuQWRkcmVzcyAmJlxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbVR5cGUgPT09IFNwYXRpYWxGaWx0ZXJJdGVtVHlwZS5UaGVtYXRpY3MpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGRpc2FibGVkQ2xlYXJTZWFyY2goKSB7XG4gICAgbGV0IGRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtVHlwZSA9PT0gU3BhdGlhbEZpbHRlckl0ZW1UeXBlLkFkZHJlc3NcbiAgICAgID8gKGRpc2FibGUgPSB0aGlzLnF1ZXJ5VHlwZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgOiAoZGlzYWJsZSA9XG4gICAgICAgICAgdGhpcy5xdWVyeVR5cGUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaGVtYXRpY3Muc2VsZWN0ZWQubGVuZ3RoID09PSAwKTtcblxuICAgIHJldHVybiBkaXNhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbmFnZSByYWRpdXMgdmFsdWUgYXQgdXNlciBjaGFuZ2VcbiAgICovXG4gIGdldFJhZGl1cygpIHtcbiAgICBsZXQgZm9ybVZhbHVlO1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm1lYXN1cmVVbml0ID09PSBNZWFzdXJlTGVuZ3RoVW5pdC5NZXRlcnNcbiAgICAgICAgPyAoZm9ybVZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZS5yYWRpdXMpXG4gICAgICAgIDogKGZvcm1WYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUucmFkaXVzIC8gMTAwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1WYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5Qb2ludCkge1xuICAgICAgaWYgKCF0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnZhbHVlIDwgMCB8fFxuICAgICAgICAgICh0aGlzLm1lYXN1cmVVbml0ID09PSBNZWFzdXJlTGVuZ3RoVW5pdC5NZXRlcnMgJiZcbiAgICAgICAgICAgIHRoaXMucmFkaXVzRm9ybUNvbnRyb2wudmFsdWUgPj0gMTAwMDAwKSB8fFxuICAgICAgICAgICh0aGlzLm1lYXN1cmVVbml0ID09PSBNZWFzdXJlTGVuZ3RoVW5pdC5LaWxvbWV0ZXJzICYmXG4gICAgICAgICAgICB0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnZhbHVlID49IDEwMClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydChcbiAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIucmFkaXVzQWxlcnQnLFxuICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci53YXJuaW5nJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5yYWRpdXMgPSAxMDAwO1xuICAgICAgICAgIHRoaXMubWVhc3VyZVVuaXQgPT09IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVyc1xuICAgICAgICAgICAgPyB0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMucmFkaXVzKVxuICAgICAgICAgICAgOiB0aGlzLnJhZGl1c0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMucmFkaXVzIC8gMTAwMCk7XG4gICAgICAgICAgdGhpcy5kcmF3R3VpZGUkLm5leHQodGhpcy5yYWRpdXMpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvcm1WYWx1ZSkge1xuICAgICAgICAgIGlmIChmb3JtVmFsdWUgPj0gMTAwMDAwKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLnJhZGl1c0FsZXJ0JyxcbiAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci53YXJuaW5nJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZvcm1WYWx1ZSAhPT0gdGhpcy5yYWRpdXNGb3JtQ29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yYWRpdXNGb3JtQ29udHJvbC5zZXRWYWx1ZShmb3JtVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWVhc3VyZVVuaXQgPT09IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycykge1xuICAgICAgICB0aGlzLnJhZGl1cyA9IHRoaXMucmFkaXVzRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0d1aWRlJC5uZXh0KHRoaXMucmFkaXVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmFkaXVzID0gdGhpcy5yYWRpdXNGb3JtQ29udHJvbC52YWx1ZSAqIDEwMDA7XG4gICAgICAgIHRoaXMuZHJhd0d1aWRlJC5uZXh0KHRoaXMucmFkaXVzICogMTAwMCk7XG4gICAgICB9XG4gICAgICB0aGlzLm92ZXJsYXlTdHlsZSQubmV4dCh0aGlzLlBvaW50U3R5bGUpO1xuICAgICAgdGhpcy5kcmF3U3R5bGUkLm5leHQodGhpcy5Qb2ludFN0eWxlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVWaXNpYmxlTGlzdCgpIHtcbiAgICB0aGlzLmxpc3RJc1Zpc2libGUgPSAhdGhpcy5saXN0SXNWaXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUYWJsZVRlbXBsYXRlKCkge1xuICAgIGNvbnN0IHR5cGVDb2x1bW4gPSB7XG4gICAgICBuYW1lOiAnbWV0YS50aXRsZScsXG4gICAgICB0aXRsZTogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIudHlwZSdcbiAgICAgICksXG4gICAgICByZW5kZXJlcjogRW50aXR5VGFibGVDb2x1bW5SZW5kZXJlci5VbnNhbml0aXplZEhUTUxcbiAgICB9O1xuICAgIGNvbnN0IG5hbWVDb2x1bW4gPSB7XG4gICAgICBuYW1lOiAncHJvcGVydGllcy5ub20nLFxuICAgICAgdGl0bGU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLnNlYXJjaFJlc3VsdHMnXG4gICAgICApLFxuICAgICAgcmVuZGVyZXI6IEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIuVW5zYW5pdGl6ZWRIVE1MXG4gICAgfTtcbiAgICBjb25zdCBjb2x1bW5zID0gW3R5cGVDb2x1bW4sIG5hbWVDb2x1bW5dO1xuXG4gICAgdGhpcy50YWJsZVRlbXBsYXRlID0ge1xuICAgICAgc2VsZWN0aW9uOiB0cnVlLFxuICAgICAgc29ydDogdHJ1ZSxcbiAgICAgIGNvbHVtbnNcbiAgICB9O1xuICB9XG59XG4iLCI8aWdvLWdlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXRcbiAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgW21hcF09XCJtYXBcIlxuICBbZ2VvbWV0cnlUeXBlXT1cImdlb21ldHJ5VHlwZVwiXG4gIFtkcmF3R3VpZGVdPVwiZHJhd0d1aWRlJCB8IGFzeW5jXCJcbiAgW21lYXN1cmVdPVwibWVhc3VyZVwiXG4gIFtkcmF3Q29udHJvbElzQWN0aXZlXT1cImRyYXdDb250cm9sSXNBY3RpdmVcIlxuICBbZnJlZWhhbmREcmF3SXNBY3RpdmVdPVwiZnJlZWhhbmREcmF3SXNBY3RpdmVcIlxuICBbZHJhd1N0eWxlXT1cImRyYXdTdHlsZSQgfCBhc3luY1wiXG4gIFtvdmVybGF5U3R5bGVdPVwib3ZlcmxheVN0eWxlJCB8IGFzeW5jXCJcbiAgW3JhZGl1c109XCJyYWRpdXNcIlxuICBbcHJlZGVmaW5lZFJhZGl1c109XCJwcmVkZWZpbmVkUmFkaXVzXCJcbj5cbjwvaWdvLWdlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQ+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAqbmdJZj1cIiFpc1ByZWRlZmluZWQoKVwiXG4gICAgW2NoZWNrZWRdPVwiZHJhd0NvbnRyb2xJc0FjdGl2ZVwiXG4gICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxuICAgIChjaGFuZ2UpPVwib25EcmF3Q29udHJvbENoYW5nZSgpXCJcbiAgPlxuICAgIHt7ICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuZHJhd0NvbnRyb2wnIHwgdHJhbnNsYXRlIH19XG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAqbmdJZj1cIiFpc1ByZWRlZmluZWQoKVwiXG4gICAgW2NoZWNrZWRdPVwiZnJlZWhhbmREcmF3SXNBY3RpdmVcIlxuICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcbiAgICAoY2hhbmdlKT1cIm9uZnJlZWhhbmRDb250cm9sQ2hhbmdlKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5mcmVlaGFuZENvbnRyb2wnIHwgdHJhbnNsYXRlIH19XG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYnVmZmVyLXVuaXRcIiAqbmdJZj1cImlzUG9seWdvbigpXCI+XG4gIDxmb3JtIGNsYXNzPVwiYnVmZmVyLWZvcm1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJidWZmZXJcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLmJ1ZmZlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYnVmZmVyRm9ybUNvbnRyb2xcIlxuICAgICAgICBbdmFsdWVdPVwiMFwiXG4gICAgICAgIFtyZWFkb25seV09XCJ0aGlzLmZvcm1Db250cm9sLnZhbHVlID09PSBudWxsXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9mb3JtPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInVuaXQtZmllbGRcIj5cbiAgICA8bWF0LXNlbGVjdFxuICAgICAgW3ZhbHVlXT1cIm1lYXN1cmVVbml0XCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25NZWFzdXJlVW5pdENoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgbWVhc3VyZVVuaXQgb2YgbWVhc3VyZVVuaXRzXCJcbiAgICAgICAgW3ZhbHVlXT1cIm1lYXN1cmVVbml0XCJcbiAgICAgID5cbiAgICAgICAge3sgJ2lnby5nZW8ubWVhc3VyZS4nICsgbWVhc3VyZVVuaXQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInJhZGl1cy11bml0XCIgKm5nSWY9XCJpc1BvaW50KClcIj5cbiAgPGZvcm0gY2xhc3M9XCJyYWRpdXMtZm9ybVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInJhZGl1c1wiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIucmFkaXVzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJyYWRpdXNGb3JtQ29udHJvbFwiXG4gICAgICAgIFt2YWx1ZV09XCIxMDAwXCJcbiAgICAgICAgKGlucHV0KT1cImdldFJhZGl1cygpXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cIlxuICAgICAgICAgIHRoaXMuZnJlZWhhbmREcmF3SXNBY3RpdmUgJiYgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSA9PT0gbnVsbFxuICAgICAgICBcIlxuICAgICAgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Zvcm0+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICBbdmFsdWVdPVwibWVhc3VyZVVuaXRcIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbk1lYXN1cmVVbml0Q2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICAgID5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBtZWFzdXJlVW5pdCBvZiBtZWFzdXJlVW5pdHNcIlxuICAgICAgICBbdmFsdWVdPVwibWVhc3VyZVVuaXRcIlxuICAgICAgPlxuICAgICAgICB7eyAnaWdvLmdlby5tZWFzdXJlLicgKyBtZWFzdXJlVW5pdCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuXG48bWF0LWxhYmVsIGNsYXNzPVwidGl0bGUgbWF0LXR5cG9ncmFwaHlcIlxuICA+e3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5zZWFyY2gnIHwgdHJhbnNsYXRlIH19IDpcbjwvbWF0LWxhYmVsPlxuPG1hdC1yYWRpby1ncm91cCBbdmFsdWVdPVwic2VsZWN0ZWRJdGVtVHlwZVwiPlxuICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1UeXBlXCJcbiAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgKGNoYW5nZSk9XCJvbkl0ZW1UeXBlQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci4nICsgaXRlbSB8IHRyYW5zbGF0ZSB9fVxuICA8L21hdC1yYWRpby1idXR0b24+XG48L21hdC1yYWRpby1ncm91cD5cblxuPGRpdlxuICBjbGFzcz1cInRoZW1hdGljc1wiXG4gICpuZ0lmPVwiXG4gICAgKHNlbGVjdGVkSXRlbVR5cGUgPT09ICdUaGVtYXRpY3MnICYmICF0YWJsZVRlbXBsYXRlKSB8fFxuICAgIChzZWxlY3RlZEl0ZW1UeXBlID09PSAnVGhlbWF0aWNzJyAmJiB0YWJsZVRlbXBsYXRlICYmICFsaXN0SXNWaXNpYmxlKVxuICBcIlxuPlxuICA8bWF0LXRhYmxlPlxuICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XG4gICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwidGhlbWF0aWNzLWhlYWRlclwiPnt7XG4gICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuVGhlbWF0aWNzJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L21hdC1oZWFkZXItY2VsbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gU2VsZWN0IENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxuICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImNoZWNrcy1oZWFkZXJcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGVkVGhlbWF0aWNzLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L21hdC1oZWFkZXItY2VsbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvbWF0LWhlYWRlci1yb3c+XG4gICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIj48L21hdC1yb3c+XG4gIDwvbWF0LXRhYmxlPlxuXG4gIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGxlYWYgbm9kZXMgLS0+XG4gICAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVRvZ2dsZT5cbiAgICAgIDxsaSBjbGFzcz1cIm1hdC10cmVlLW5vZGVcIj5cbiAgICAgICAgPCEtLSB1c2UgYSBkaXNhYmxlZCBidXR0b24gdG8gcHJvdmlkZSBwYWRkaW5nIGZvciB0cmVlIGxlYWYgLS0+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPjwvYnV0dG9uPlxuICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgIGNsYXNzPVwidHJlZS1jaGVja1wiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBvblRvZ2dsZUNoYW5nZShub2RlKSA6IG51bGxcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVGhlbWF0aWNzLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICA+XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9saT5cbiAgICA8L21hdC10cmVlLW5vZGU+XG5cbiAgICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgZXhwYW5kYWJsZSBub2RlcyAtLT5cbiAgICA8bWF0LW5lc3RlZC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LXRyZWUtbm9kZVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25Ub2dnbGVDbGljayhub2RlKVwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgW3N2Z0ljb25dPVwiXG4gICAgICAgICAgICAgIHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXJpZ2h0J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgY2xhc3M9XCJ0cmVlLWNoZWNrLTJcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gY2hpbGRyZW5zVG9nZ2xlKG5vZGUpIDogbnVsbFwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNBbGxTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaGFzQ2hpbGRyZW5TZWxlY3RlZChub2RlKSAmJiAhaXNBbGxTZWxlY3RlZChub2RlKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx1bFxuICAgICAgICBjbGFzcz1cInRyZWUtdWxcIlxuICAgICAgICBbY2xhc3MuZXhhbXBsZS10cmVlLWludmlzaWJsZV09XCIhdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0VHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3VsPlxuICAgIDwvbWF0LW5lc3RlZC10cmVlLW5vZGU+XG4gIDwvbWF0LXRyZWU+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiaXNQcmVkZWZpbmVkKClcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY2xhc3M9XCJjbGVhci1zZWFyY2gtYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRDbGVhclNlYXJjaCgpXCJcbiAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiXG4gID5cbiAgICB7eyAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLmNsZWFyU2VhcmNoJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJpc1BvbHlnb24oKSB8fCBpc1BvaW50KClcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY2xhc3M9XCJjbGVhci1mb3JtLWJ1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cInRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPT09IG51bGxcIlxuICAgIChjbGljayk9XCJjbGVhckRyYXdab25lKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5jbGVhckZvcm0nIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVTZWFyY2hCdXR0b24oKVwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlU2VhcmNoQnV0dG9uKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5nb1NlYXJjaCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY2xhc3M9XCJyZW1vdmUtYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiYWxsTGF5ZXJzLmxlbmd0aCA9PT0gMFwiXG4gICAgKGNsaWNrKT1cImNsZWFyQnV0dG9uKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5yZW1vdmVMYXllcicgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiIXN0b3JlLmVudGl0aWVzJC5nZXRWYWx1ZSgpLmxlbmd0aFwiXG4gICAgKGNsaWNrKT1cImV4cG9ydC5lbWl0KClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5leHBvcnRMYXllcicgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPGJ1dHRvblxuICBjbGFzcz1cImNoZXZyb24tZG93blwiXG4gICpuZ0lmPVwic3RvcmUuYWxsKCkubGVuZ3RoICYmIHRhYmxlVGVtcGxhdGUgJiYgIWxpc3RJc1Zpc2libGVcIlxuICBtYXQtaWNvbi1idXR0b25cbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc2hvd1NlYXJjaFJlc3VsdHMnIHwgdHJhbnNsYXRlXCJcbiAgKGNsaWNrKT1cInRvZ2dsZVZpc2libGVMaXN0KClcIlxuPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cImNoZXZyb24tZG93blwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPGRpdlxuICBjbGFzcz1cInJlc3VsdHNcIlxuICAqbmdJZj1cInN0b3JlLmFsbCgpLmxlbmd0aCAmJiB0YWJsZVRlbXBsYXRlICYmIGxpc3RJc1Zpc2libGVcIlxuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJsaXN0SXNWaXNpYmxlXCJcbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5zcGF0aWFsRmlsdGVyLmhpZGVTZWFyY2hSZXN1bHRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVZpc2libGVMaXN0KClcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxpZ28tZW50aXR5LXRhYmxlXG4gICAgY2xhc3M9XCJyZXN1bHRzLWxpc3RcIlxuICAgIFt0ZW1wbGF0ZV09XCJ0YWJsZVRlbXBsYXRlXCJcbiAgICBbc3RvcmVdPVwic3RvcmVcIlxuICAgIChlbnRpdHlTZWxlY3RDaGFuZ2UpPVwiZW50aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gID5cbiAgPC9pZ28tZW50aXR5LXRhYmxlPlxuPC9kaXY+XG4iXX0=
|