@igo2/geo 1.12.0 → 1.13.0-alpha.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/{esm2015/igo2-geo.js → esm2020/igo2-geo.mjs} +0 -0
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +299 -0
- package/{esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js → esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs} +13 -19
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +244 -0
- package/{esm2015/lib/catalog/catalog-browser/catalog-browser.module.js → esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs} +17 -19
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +209 -0
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +79 -0
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +217 -0
- package/{esm2015/lib/catalog/catalog-library/catalog-library.module.js → esm2020/lib/catalog/catalog-library/catalog-library.module.mjs} +21 -23
- package/{esm2015/lib/catalog/catalog.module.js → esm2020/lib/catalog/catalog.module.mjs} +9 -11
- package/{esm2015/lib/catalog/index.js → esm2020/lib/catalog/index.mjs} +0 -0
- package/{esm2015/lib/catalog/shared/catalog.abstract.js → esm2020/lib/catalog/shared/catalog.abstract.mjs} +0 -0
- package/{esm2015/lib/catalog/shared/catalog.enum.js → esm2020/lib/catalog/shared/catalog.enum.mjs} +0 -0
- package/{esm2015/lib/catalog/shared/catalog.interface.js → esm2020/lib/catalog/shared/catalog.interface.mjs} +0 -0
- package/esm2020/lib/catalog/shared/catalog.service.mjs +606 -0
- package/{esm2015/lib/catalog/shared/index.js → esm2020/lib/catalog/shared/index.mjs} +0 -0
- package/{esm2015/lib/datasource/datasource.module.js → esm2020/lib/datasource/datasource.module.mjs} +2 -2
- package/{esm2015/lib/datasource/index.js → esm2020/lib/datasource/index.mjs} +0 -0
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +426 -0
- package/{esm2015/lib/datasource/shared/datasource.service.js → esm2020/lib/datasource/shared/datasource.service.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/any-datasource.interface.js → esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/any-datasource.js → esm2020/lib/datasource/shared/datasources/any-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js → esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js → esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js → esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/carto-datasource.js → esm2020/lib/datasource/shared/datasources/carto-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js → esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/cluster-datasource.js → esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/data.service.js → esm2020/lib/datasource/shared/datasources/data.service.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/datasource.interface.js → esm2020/lib/datasource/shared/datasources/datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/datasource.js → esm2020/lib/datasource/shared/datasources/datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js → esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/feature-datasource.js → esm2020/lib/datasource/shared/datasources/feature-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js → esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js → esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/index.js → esm2020/lib/datasource/shared/datasources/index.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js → esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/mvt-datasource.js → esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js → esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/osm-datasource.js → esm2020/lib/datasource/shared/datasources/osm-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js → esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js → esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js → esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js → esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js → esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/websocket-datasource.js → esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js → esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs} +0 -0
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +74 -0
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +152 -0
- package/{esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js → esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs} +0 -0
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -0
- package/{esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js → esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs} +4 -4
- package/{esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js → esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/wmts-datasource.js → esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js → esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/datasources/xyz-datasource.js → esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/index.js → esm2020/lib/datasource/shared/index.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/options/index.js → esm2020/lib/datasource/shared/options/index.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/options/options-api.interface.js → esm2020/lib/datasource/shared/options/options-api.interface.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/options/options-api.providers.js → esm2020/lib/datasource/shared/options/options-api.providers.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/options/options-api.service.js → esm2020/lib/datasource/shared/options/options-api.service.mjs} +0 -0
- package/{esm2015/lib/datasource/shared/options/options.service.js → esm2020/lib/datasource/shared/options/options.service.mjs} +0 -0
- package/{esm2015/lib/datasource/utils/esri-style-generator.js → esm2020/lib/datasource/utils/esri-style-generator.mjs} +0 -0
- package/{esm2015/lib/datasource/utils/index.js → esm2020/lib/datasource/utils/index.mjs} +0 -0
- package/{esm2015/lib/datasource/utils/tilegrid.js → esm2020/lib/datasource/utils/tilegrid.mjs} +0 -0
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +224 -0
- package/{esm2015/lib/directions/directions-buttons/index.js → esm2020/lib/directions/directions-buttons/index.mjs} +0 -0
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +290 -0
- package/{esm2015/lib/directions/directions-inputs/index.js → esm2020/lib/directions/directions-inputs/index.mjs} +0 -0
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +196 -0
- package/{esm2015/lib/directions/directions-results/index.js → esm2020/lib/directions/directions-results/index.mjs} +0 -0
- package/{esm2015/lib/directions/directions-sources/directions-source.interface.js → esm2020/lib/directions/directions-sources/directions-source.interface.mjs} +0 -0
- package/{esm2015/lib/directions/directions-sources/directions-source.js → esm2020/lib/directions/directions-sources/directions-source.mjs} +0 -0
- package/{esm2015/lib/directions/directions-sources/directions-source.provider.js → esm2020/lib/directions/directions-sources/directions-source.provider.mjs} +0 -0
- package/{esm2015/lib/directions/directions-sources/index.js → esm2020/lib/directions/directions-sources/index.mjs} +0 -0
- package/{esm2015/lib/directions/directions-sources/osrm-directions-source.js → esm2020/lib/directions/directions-sources/osrm-directions-source.mjs} +0 -0
- package/esm2020/lib/directions/directions.component.mjs +311 -0
- package/{esm2015/lib/directions/directions.module.js → esm2020/lib/directions/directions.module.mjs} +16 -18
- package/{esm2015/lib/directions/index.js → esm2020/lib/directions/index.mjs} +0 -0
- package/{esm2015/lib/directions/shared/directions-source.service.js → esm2020/lib/directions/shared/directions-source.service.mjs} +0 -0
- package/{esm2015/lib/directions/shared/directions.enum.js → esm2020/lib/directions/shared/directions.enum.mjs} +0 -0
- package/{esm2015/lib/directions/shared/directions.interface.js → esm2020/lib/directions/shared/directions.interface.mjs} +0 -0
- package/{esm2015/lib/directions/shared/directions.service.js → esm2020/lib/directions/shared/directions.service.mjs} +0 -0
- package/esm2020/lib/directions/shared/directions.utils.mjs +510 -0
- package/{esm2015/lib/directions/shared/index.js → esm2020/lib/directions/shared/index.mjs} +0 -0
- package/{esm2015/lib/directions/shared/store.js → esm2020/lib/directions/shared/store.mjs} +0 -0
- package/esm2020/lib/download/download-button/download-button.component.mjs +61 -0
- package/{esm2015/lib/download/download-button/index.js → esm2020/lib/download/download-button/index.mjs} +0 -0
- package/{esm2015/lib/download/download.module.js → esm2020/lib/download/download.module.mjs} +6 -8
- package/{esm2015/lib/download/index.js → esm2020/lib/download/index.mjs} +0 -0
- package/{esm2015/lib/download/shared/download.interface.js → esm2020/lib/download/shared/download.interface.mjs} +0 -0
- package/{esm2015/lib/download/shared/download.service.js → esm2020/lib/download/shared/download.service.mjs} +0 -0
- package/{esm2015/lib/download/shared/index.js → esm2020/lib/download/shared/index.mjs} +0 -0
- package/{esm2015/lib/draw/draw/draw-popup.component.js → esm2020/lib/draw/draw/draw-popup.component.mjs} +11 -19
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
- package/esm2020/lib/draw/draw/draw.component.mjs +714 -0
- package/{esm2015/lib/draw/draw/draw.module.js → esm2020/lib/draw/draw/draw.module.mjs} +19 -21
- package/{esm2015/lib/draw/drawingTool.module.js → esm2020/lib/draw/drawingTool.module.mjs} +2 -2
- package/{esm2015/lib/draw/index.js → esm2020/lib/draw/index.mjs} +0 -0
- package/{esm2015/lib/draw/shared/draw-icon.service.js → esm2020/lib/draw/shared/draw-icon.service.mjs} +0 -0
- package/{esm2015/lib/draw/shared/draw-style.service.js → esm2020/lib/draw/shared/draw-style.service.mjs} +0 -0
- package/{esm2015/lib/draw/shared/draw.enum.js → esm2020/lib/draw/shared/draw.enum.mjs} +0 -0
- package/{esm2015/lib/draw/shared/draw.interface.js → esm2020/lib/draw/shared/draw.interface.mjs} +0 -0
- package/{esm2015/lib/draw/shared/draw.utils.js → esm2020/lib/draw/shared/draw.utils.mjs} +0 -0
- package/{esm2015/lib/draw/shared/index.js → esm2020/lib/draw/shared/index.mjs} +0 -0
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +377 -0
- package/{esm2015/lib/feature/feature-details/feature-details.directive.js → esm2020/lib/feature/feature-details/feature-details.directive.mjs} +0 -0
- package/{esm2015/lib/feature/feature-details/feature-details.module.js → esm2020/lib/feature/feature-details/feature-details.module.mjs} +6 -8
- package/{esm2015/lib/feature/feature-form/feature-form.component.js → esm2020/lib/feature/feature-form/feature-form.component.mjs} +3 -8
- package/{esm2015/lib/feature/feature-form/feature-form.module.js → esm2020/lib/feature/feature-form/feature-form.module.mjs} +3 -5
- package/{esm2015/lib/feature/feature.module.js → esm2020/lib/feature/feature.module.mjs} +2 -4
- package/{esm2015/lib/feature/index.js → esm2020/lib/feature/index.mjs} +0 -0
- package/{esm2015/lib/feature/shared/feature.enums.js → esm2020/lib/feature/shared/feature.enums.mjs} +0 -0
- package/{esm2015/lib/feature/shared/feature.interfaces.js → esm2020/lib/feature/shared/feature.interfaces.mjs} +0 -0
- package/{esm2015/lib/feature/shared/feature.utils.js → esm2020/lib/feature/shared/feature.utils.mjs} +0 -0
- package/{esm2015/lib/feature/shared/index.js → esm2020/lib/feature/shared/index.mjs} +0 -0
- package/{esm2015/lib/feature/shared/store.js → esm2020/lib/feature/shared/store.mjs} +0 -0
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +113 -0
- package/{esm2015/lib/feature/shared/strategies/in-map-resolution.js → esm2020/lib/feature/shared/strategies/in-map-resolution.mjs} +0 -0
- package/{esm2015/lib/feature/shared/strategies/index.js → esm2020/lib/feature/shared/strategies/index.mjs} +0 -0
- package/{esm2015/lib/feature/shared/strategies/loading-layer.js → esm2020/lib/feature/shared/strategies/loading-layer.mjs} +0 -0
- package/{esm2015/lib/feature/shared/strategies/loading.js → esm2020/lib/feature/shared/strategies/loading.mjs} +0 -0
- package/{esm2015/lib/feature/shared/strategies/selection.js → esm2020/lib/feature/shared/strategies/selection.mjs} +0 -0
- package/{esm2015/lib/feature/shared/strategies.utils.js → esm2020/lib/feature/shared/strategies.utils.mjs} +0 -0
- package/esm2020/lib/filter/filter.module.mjs +289 -0
- package/{esm2015/lib/filter/index.js → esm2020/lib/filter/index.mjs} +0 -0
- package/{esm2015/lib/filter/ogc-filter-button/index.js → esm2020/lib/filter/ogc-filter-button/index.mjs} +0 -0
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +140 -0
- package/{esm2015/lib/filter/ogc-filter-form/index.js → esm2020/lib/filter/ogc-filter-form/index.mjs} +0 -0
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +645 -0
- package/{esm2015/lib/filter/ogc-filter-selection/index.js → esm2020/lib/filter/ogc-filter-selection/index.mjs} +0 -0
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1302 -0
- package/{esm2015/lib/filter/ogc-filter-time/index.js → esm2020/lib/filter/ogc-filter-time/index.mjs} +0 -0
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +177 -0
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +871 -0
- package/{esm2015/lib/filter/ogc-filterable-form/index.js → esm2020/lib/filter/ogc-filterable-form/index.mjs} +0 -0
- package/{esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js → esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs} +3 -6
- package/{esm2015/lib/filter/ogc-filterable-item/index.js → esm2020/lib/filter/ogc-filterable-item/index.mjs} +0 -0
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +302 -0
- package/{esm2015/lib/filter/ogc-filterable-list/index.js → esm2020/lib/filter/ogc-filterable-list/index.mjs} +0 -0
- package/{esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js → esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs} +0 -0
- package/{esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js → esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs} +2 -6
- package/{esm2015/lib/filter/shared/filterable-datasource.pipe.js → esm2020/lib/filter/shared/filterable-datasource.pipe.mjs} +0 -0
- package/{esm2015/lib/filter/shared/index.js → esm2020/lib/filter/shared/index.mjs} +0 -0
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
- package/{esm2015/lib/filter/shared/ogc-filter.enum.js → esm2020/lib/filter/shared/ogc-filter.enum.mjs} +0 -0
- package/{esm2015/lib/filter/shared/ogc-filter.interface.js → esm2020/lib/filter/shared/ogc-filter.interface.mjs} +0 -0
- package/esm2020/lib/filter/shared/ogc-filter.mjs +692 -0
- package/{esm2015/lib/filter/shared/ogc-filter.service.js → esm2020/lib/filter/shared/ogc-filter.service.mjs} +0 -0
- package/{esm2015/lib/filter/shared/spatial-filter.enum.js → esm2020/lib/filter/shared/spatial-filter.enum.mjs} +0 -0
- package/{esm2015/lib/filter/shared/spatial-filter.interface.js → esm2020/lib/filter/shared/spatial-filter.interface.mjs} +0 -0
- package/{esm2015/lib/filter/shared/spatial-filter.service.js → esm2020/lib/filter/shared/spatial-filter.service.mjs} +0 -0
- package/{esm2015/lib/filter/shared/time-filter.enum.js → esm2020/lib/filter/shared/time-filter.enum.mjs} +0 -0
- package/{esm2015/lib/filter/shared/time-filter.interface.js → esm2020/lib/filter/shared/time-filter.interface.mjs} +0 -0
- package/{esm2015/lib/filter/shared/time-filter.service.js → esm2020/lib/filter/shared/time-filter.service.mjs} +0 -0
- package/{esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js → esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs} +0 -0
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1076 -0
- package/{esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js → esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs} +0 -0
- package/{esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js → esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs} +16 -32
- package/{esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js → esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs} +0 -0
- package/{esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js → esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs} +7 -20
- package/{esm2015/lib/filter/time-filter-button/index.js → esm2020/lib/filter/time-filter-button/index.mjs} +0 -0
- package/{esm2015/lib/filter/time-filter-button/time-filter-button.component.js → esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs} +3 -8
- package/{esm2015/lib/filter/time-filter-form/index.js → esm2020/lib/filter/time-filter-form/index.mjs} +0 -0
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +734 -0
- package/{esm2015/lib/filter/time-filter-item/index.js → esm2020/lib/filter/time-filter-item/index.mjs} +0 -0
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +119 -0
- package/{esm2015/lib/filter/time-filter-list/index.js → esm2020/lib/filter/time-filter-list/index.mjs} +0 -0
- package/{esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js → esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs} +0 -0
- package/{esm2015/lib/filter/time-filter-list/time-filter-list.component.js → esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs} +2 -6
- package/{esm2015/lib/geo.module.js → esm2020/lib/geo.module.mjs} +2 -2
- package/{esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js → esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs} +2 -6
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +189 -0
- package/{esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js → esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs} +10 -12
- package/{esm2015/lib/geometry/geometry.module.js → esm2020/lib/geometry/geometry.module.mjs} +3 -5
- package/{esm2015/lib/geometry/index.js → esm2020/lib/geometry/index.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/controls/draw.js → esm2020/lib/geometry/shared/controls/draw.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/controls/index.js → esm2020/lib/geometry/shared/controls/index.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/controls/modify.js → esm2020/lib/geometry/shared/controls/modify.mjs} +1 -1
- package/{esm2015/lib/geometry/shared/controls/slice.js → esm2020/lib/geometry/shared/controls/slice.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/geometry.errors.js → esm2020/lib/geometry/shared/geometry.errors.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/geometry.interfaces.js → esm2020/lib/geometry/shared/geometry.interfaces.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/geometry.utils.js → esm2020/lib/geometry/shared/geometry.utils.mjs} +0 -0
- package/{esm2015/lib/geometry/shared/index.js → esm2020/lib/geometry/shared/index.mjs} +0 -0
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +64 -0
- package/{esm2015/lib/import-export/export-button/index.js → esm2020/lib/import-export/export-button/index.mjs} +0 -0
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +1190 -0
- package/{esm2015/lib/import-export/import-export/index.js → esm2020/lib/import-export/import-export/index.mjs} +0 -0
- package/{esm2015/lib/import-export/import-export.module.js → esm2020/lib/import-export/import-export.module.mjs} +19 -21
- package/{esm2015/lib/import-export/index.js → esm2020/lib/import-export/index.mjs} +0 -0
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +135 -0
- package/{esm2015/lib/import-export/shared/export.errors.js → esm2020/lib/import-export/shared/export.errors.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/export.interface.js → esm2020/lib/import-export/shared/export.interface.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/export.service.js → esm2020/lib/import-export/shared/export.service.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/export.type.js → esm2020/lib/import-export/shared/export.type.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/export.utils.js → esm2020/lib/import-export/shared/export.utils.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/import.errors.js → esm2020/lib/import-export/shared/import.errors.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/import.interface.js → esm2020/lib/import-export/shared/import.interface.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/import.service.js → esm2020/lib/import-export/shared/import.service.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/import.utils.js → esm2020/lib/import-export/shared/import.utils.mjs} +0 -0
- package/{esm2015/lib/import-export/shared/index.js → esm2020/lib/import-export/shared/index.mjs} +0 -0
- package/{esm2015/lib/import-export/style-list/index.js → esm2020/lib/import-export/style-list/index.mjs} +0 -0
- package/{esm2015/lib/import-export/style-list/style-list.interface.js → esm2020/lib/import-export/style-list/style-list.interface.mjs} +0 -0
- package/{esm2015/lib/import-export/style-list/style-list.module.js → esm2020/lib/import-export/style-list/style-list.module.mjs} +2 -2
- package/{esm2015/lib/import-export/style-list/style-list.provider.js → esm2020/lib/import-export/style-list/style-list.provider.mjs} +0 -0
- package/{esm2015/lib/import-export/style-list/style-list.service.js → esm2020/lib/import-export/style-list/style-list.service.mjs} +0 -0
- package/{esm2015/lib/layer/index.js → esm2020/lib/layer/index.mjs} +0 -0
- package/{esm2015/lib/layer/layer-item/index.js → esm2020/lib/layer/layer-item/index.mjs} +0 -0
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +300 -0
- package/{esm2015/lib/layer/layer-legend/index.js → esm2020/lib/layer/layer-legend/index.mjs} +0 -0
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +382 -0
- package/{esm2015/lib/layer/layer-legend-item/index.js → esm2020/lib/layer/layer-legend-item/index.mjs} +0 -0
- package/{esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js → esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs} +4 -11
- package/{esm2015/lib/layer/layer-legend-list/index.js → esm2020/lib/layer/layer-legend-list/index.mjs} +0 -0
- package/{esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js → esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs} +0 -0
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +195 -0
- package/{esm2015/lib/layer/layer-list/index.js → esm2020/lib/layer/layer-list/index.mjs} +0 -0
- package/{esm2015/lib/layer/layer-list/layer-list-binding.directive.js → esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs} +0 -0
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1024 -0
- package/{esm2015/lib/layer/layer-list/layer-list.enum.js → esm2020/lib/layer/layer-list/layer-list.enum.mjs} +0 -0
- package/{esm2015/lib/layer/layer-list-tool/index.js → esm2020/lib/layer/layer-list-tool/index.mjs} +0 -0
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +165 -0
- package/{esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js → esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs} +0 -0
- package/{esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js → esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs} +0 -0
- package/{esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js → esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs} +0 -0
- package/esm2020/lib/layer/layer.module.mjs +173 -0
- package/{esm2015/lib/layer/shared/clusterParam.js → esm2020/lib/layer/shared/clusterParam.mjs} +0 -0
- package/{esm2015/lib/layer/shared/index.js → esm2020/lib/layer/shared/index.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layer.enums.js → esm2020/lib/layer/shared/layer.enums.mjs} +0 -0
- package/esm2020/lib/layer/shared/layer.service.mjs +186 -0
- package/{esm2015/lib/layer/shared/layers/any-layer.interface.js → esm2020/lib/layer/shared/layers/any-layer.interface.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/any-layer.js → esm2020/lib/layer/shared/layers/any-layer.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/image-layer.interface.js → esm2020/lib/layer/shared/layers/image-layer.interface.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/image-layer.js → esm2020/lib/layer/shared/layers/image-layer.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/index.js → esm2020/lib/layer/shared/layers/index.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/layer.interface.js → esm2020/lib/layer/shared/layers/layer.interface.mjs} +0 -0
- package/esm2020/lib/layer/shared/layers/layer.mjs +170 -0
- package/{esm2015/lib/layer/shared/layers/tile-layer.interface.js → esm2020/lib/layer/shared/layers/tile-layer.interface.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/tile-layer.js → esm2020/lib/layer/shared/layers/tile-layer.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/vector-layer.interface.js → esm2020/lib/layer/shared/layers/vector-layer.interface.mjs} +0 -0
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +376 -0
- package/{esm2015/lib/layer/shared/layers/vectortile-layer.interface.js → esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs} +0 -0
- package/{esm2015/lib/layer/shared/layers/vectortile-layer.js → esm2020/lib/layer/shared/layers/vectortile-layer.mjs} +0 -0
- package/esm2020/lib/layer/shared/style.service.mjs +356 -0
- package/{esm2015/lib/layer/shared/vector-style.interface.js → esm2020/lib/layer/shared/vector-style.interface.mjs} +0 -0
- package/{esm2015/lib/layer/track-feature-button/index.js → esm2020/lib/layer/track-feature-button/index.mjs} +0 -0
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +59 -0
- package/{esm2015/lib/layer/utils/image-watcher.js → esm2020/lib/layer/utils/image-watcher.mjs} +0 -0
- package/{esm2015/lib/layer/utils/index.js → esm2020/lib/layer/utils/index.mjs} +0 -0
- package/esm2020/lib/layer/utils/layer.utils.mjs +10 -0
- package/esm2020/lib/layer/utils/layerSync-watcher.mjs +242 -0
- package/esm2020/lib/layer/utils/outputLegend.mjs +27 -0
- package/{esm2015/lib/layer/utils/tile-watcher.js → esm2020/lib/layer/utils/tile-watcher.mjs} +0 -0
- package/{esm2015/lib/layer/utils/vector-watcher.js → esm2020/lib/layer/utils/vector-watcher.mjs} +0 -0
- package/{esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js → esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs} +0 -0
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +97 -0
- package/{esm2015/lib/map/baselayers-switcher/index.js → esm2020/lib/map/baselayers-switcher/index.mjs} +0 -0
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +133 -0
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +76 -0
- package/{esm2015/lib/map/geolocate-button/index.js → esm2020/lib/map/geolocate-button/index.mjs} +0 -0
- package/{esm2015/lib/map/home-extent-button/home-extent-button.component.js → esm2020/lib/map/home-extent-button/home-extent-button.component.mjs} +8 -14
- package/{esm2015/lib/map/home-extent-button/index.js → esm2020/lib/map/home-extent-button/index.mjs} +0 -0
- package/{esm2015/lib/map/index.js → esm2020/lib/map/index.mjs} +0 -0
- package/{esm2015/lib/map/info-section/index.js → esm2020/lib/map/info-section/index.mjs} +0 -0
- package/esm2020/lib/map/info-section/info-section.component.mjs +30 -0
- package/{esm2015/lib/map/map-browser/index.js → esm2020/lib/map/map-browser/index.mjs} +0 -0
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +66 -0
- package/{esm2015/lib/map/map-center/index.js → esm2020/lib/map/map-center/index.mjs} +0 -0
- package/{esm2015/lib/map/map-center/map-center.component.js → esm2020/lib/map/map-center/map-center.component.mjs} +3 -8
- package/{esm2015/lib/map/map.module.js → esm2020/lib/map/map.module.mjs} +11 -13
- package/{esm2015/lib/map/menu-button/index.js → esm2020/lib/map/menu-button/index.mjs} +0 -0
- package/{esm2015/lib/map/menu-button/menu-button.component.js → esm2020/lib/map/menu-button/menu-button.component.mjs} +7 -11
- package/{esm2015/lib/map/offline-button/index.js → esm2020/lib/map/offline-button/index.mjs} +0 -0
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +76 -0
- package/{esm2015/lib/map/rotation-button/index.js → esm2020/lib/map/rotation-button/index.mjs} +0 -0
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +91 -0
- package/{esm2015/lib/map/shared/controllers/controller.js → esm2020/lib/map/shared/controllers/controller.mjs} +0 -0
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +308 -0
- package/{esm2015/lib/map/shared/controllers/index.js → esm2020/lib/map/shared/controllers/index.mjs} +0 -0
- package/{esm2015/lib/map/shared/controllers/view.js → esm2020/lib/map/shared/controllers/view.mjs} +0 -0
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +506 -0
- package/{esm2015/lib/map/shared/index.js → esm2020/lib/map/shared/index.mjs} +0 -0
- package/{esm2015/lib/map/shared/map-pointer-position.directive.js → esm2020/lib/map/shared/map-pointer-position.directive.mjs} +0 -0
- package/{esm2015/lib/map/shared/map.enums.js → esm2020/lib/map/shared/map.enums.mjs} +0 -0
- package/{esm2015/lib/map/shared/map.interface.js → esm2020/lib/map/shared/map.interface.mjs} +0 -0
- package/esm2020/lib/map/shared/map.mjs +417 -0
- package/{esm2015/lib/map/shared/map.service.js → esm2020/lib/map/shared/map.service.mjs} +0 -0
- package/{esm2015/lib/map/shared/map.utils.js → esm2020/lib/map/shared/map.utils.mjs} +0 -0
- package/{esm2015/lib/map/shared/mapOffline.directive.js → esm2020/lib/map/shared/mapOffline.directive.mjs} +0 -0
- package/{esm2015/lib/map/shared/projection.interfaces.js → esm2020/lib/map/shared/projection.interfaces.mjs} +0 -0
- package/{esm2015/lib/map/shared/projection.service.js → esm2020/lib/map/shared/projection.service.mjs} +0 -0
- package/{esm2015/lib/map/shared/projection.utils.js → esm2020/lib/map/shared/projection.utils.mjs} +0 -0
- package/{esm2015/lib/map/swipe-control/index.js → esm2020/lib/map/swipe-control/index.mjs} +0 -0
- package/{esm2015/lib/map/swipe-control/swipe-control.component.js → esm2020/lib/map/swipe-control/swipe-control.component.mjs} +4 -10
- package/{esm2015/lib/map/utils/layer-watcher.js → esm2020/lib/map/utils/layer-watcher.mjs} +0 -0
- package/{esm2015/lib/map/wake-lock-button/index.js → esm2020/lib/map/wake-lock-button/index.mjs} +0 -0
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +114 -0
- package/{esm2015/lib/map/zoom-button/index.js → esm2020/lib/map/zoom-button/index.mjs} +0 -0
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +40 -0
- package/{esm2015/lib/measure/index.js → esm2020/lib/measure/index.mjs} +0 -0
- package/{esm2015/lib/measure/measure.module.js → esm2020/lib/measure/measure.module.mjs} +2 -2
- package/{esm2015/lib/measure/measurer/measure-format.pipe.js → esm2020/lib/measure/measurer/measure-format.pipe.mjs} +0 -0
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +180 -0
- package/{esm2015/lib/measure/measurer/measurer-item.component.js → esm2020/lib/measure/measurer/measurer-item.component.mjs} +12 -20
- package/esm2020/lib/measure/measurer/measurer.component.mjs +1042 -0
- package/esm2020/lib/measure/measurer/measurer.module.mjs +94 -0
- package/{esm2015/lib/measure/shared/index.js → esm2020/lib/measure/shared/index.mjs} +0 -0
- package/{esm2015/lib/measure/shared/measure.enum.js → esm2020/lib/measure/shared/measure.enum.mjs} +0 -0
- package/{esm2015/lib/measure/shared/measure.interfaces.js → esm2020/lib/measure/shared/measure.interfaces.mjs} +0 -0
- package/{esm2015/lib/measure/shared/measure.utils.js → esm2020/lib/measure/shared/measure.utils.mjs} +0 -0
- package/{esm2015/lib/metadata/index.js → esm2020/lib/metadata/index.mjs} +0 -0
- package/{esm2015/lib/metadata/metadata-button/index.js → esm2020/lib/metadata/metadata-button/index.mjs} +0 -0
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -0
- package/{esm2015/lib/metadata/metadata.module.js → esm2020/lib/metadata/metadata.module.mjs} +7 -9
- package/{esm2015/lib/metadata/shared/index.js → esm2020/lib/metadata/shared/index.mjs} +0 -0
- package/{esm2015/lib/metadata/shared/metadata.interface.js → esm2020/lib/metadata/shared/metadata.interface.mjs} +0 -0
- package/{esm2015/lib/metadata/shared/metadata.service.js → esm2020/lib/metadata/shared/metadata.service.mjs} +0 -0
- package/{esm2015/lib/offline/geoDB/geoDB.enums.js → esm2020/lib/offline/geoDB/geoDB.enums.mjs} +0 -0
- package/{esm2015/lib/offline/geoDB/geoDB.interface.js → esm2020/lib/offline/geoDB/geoDB.interface.mjs} +0 -0
- package/{esm2015/lib/offline/geoDB/geoDB.service.js → esm2020/lib/offline/geoDB/geoDB.service.mjs} +0 -0
- package/{esm2015/lib/offline/geoDB/index.js → esm2020/lib/offline/geoDB/index.mjs} +0 -0
- package/{esm2015/lib/offline/index.js → esm2020/lib/offline/index.mjs} +0 -0
- package/{esm2015/lib/offline/shared/geo-network.service.js → esm2020/lib/offline/shared/geo-network.service.mjs} +0 -0
- package/{esm2015/lib/offline/shared/index.js → esm2020/lib/offline/shared/index.mjs} +0 -0
- package/{esm2015/lib/overlay/index.js → esm2020/lib/overlay/index.mjs} +0 -0
- package/{esm2015/lib/overlay/overlay.module.js → esm2020/lib/overlay/overlay.module.mjs} +2 -2
- package/{esm2015/lib/overlay/shared/index.js → esm2020/lib/overlay/shared/index.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay-marker-style.utils.js → esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay.directive.js → esm2020/lib/overlay/shared/overlay.directive.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay.enum.js → esm2020/lib/overlay/shared/overlay.enum.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay.js → esm2020/lib/overlay/shared/overlay.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay.service.js → esm2020/lib/overlay/shared/overlay.service.mjs} +0 -0
- package/{esm2015/lib/overlay/shared/overlay.utils.js → esm2020/lib/overlay/shared/overlay.utils.mjs} +0 -0
- package/{esm2015/lib/print/index.js → esm2020/lib/print/index.mjs} +0 -0
- package/{esm2015/lib/print/print/print.component.js → esm2020/lib/print/print/print.component.mjs} +3 -6
- package/{esm2015/lib/print/print-form/index.js → esm2020/lib/print/print-form/index.mjs} +0 -0
- package/esm2020/lib/print/print-form/print-form.component.mjs +405 -0
- package/{esm2015/lib/print/print.module.js → esm2020/lib/print/print.module.mjs} +13 -15
- package/{esm2015/lib/print/shared/index.js → esm2020/lib/print/shared/index.mjs} +0 -0
- package/{esm2015/lib/print/shared/print.interface.js → esm2020/lib/print/shared/print.interface.mjs} +0 -0
- package/esm2020/lib/print/shared/print.service.mjs +807 -0
- package/{esm2015/lib/print/shared/print.type.js → esm2020/lib/print/shared/print.type.mjs} +0 -0
- package/{esm2015/lib/query/index.js → esm2020/lib/query/index.mjs} +0 -0
- package/{esm2015/lib/query/query.module.js → esm2020/lib/query/query.module.mjs} +2 -2
- package/{esm2015/lib/query/shared/index.js → esm2020/lib/query/shared/index.mjs} +0 -0
- package/{esm2015/lib/query/shared/query-search-source.js → esm2020/lib/query/shared/query-search-source.mjs} +0 -0
- package/{esm2015/lib/query/shared/query-search-source.providers.js → esm2020/lib/query/shared/query-search-source.providers.mjs} +0 -0
- package/{esm2015/lib/query/shared/query.directive.js → esm2020/lib/query/shared/query.directive.mjs} +0 -0
- package/{esm2015/lib/query/shared/query.enums.js → esm2020/lib/query/shared/query.enums.mjs} +0 -0
- package/{esm2015/lib/query/shared/query.interfaces.js → esm2020/lib/query/shared/query.interfaces.mjs} +0 -0
- package/esm2020/lib/query/shared/query.service.mjs +613 -0
- package/{esm2015/lib/query/shared/query.utils.js → esm2020/lib/query/shared/query.utils.mjs} +0 -0
- package/{esm2015/lib/search/index.js → esm2020/lib/search/index.mjs} +0 -0
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +489 -0
- package/{esm2015/lib/search/search-bar/search-bar.module.js → esm2020/lib/search/search-bar/search-bar.module.mjs} +13 -15
- package/{esm2015/lib/search/search-bar/search-url-param.directive.js → esm2020/lib/search/search-bar/search-url-param.directive.mjs} +0 -0
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +193 -0
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -0
- package/esm2020/lib/search/search-results/search-results.component.mjs +331 -0
- package/{esm2015/lib/search/search-results/search-results.module.js → esm2020/lib/search/search-results/search-results.module.mjs} +13 -15
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +123 -0
- package/{esm2015/lib/search/search-selector/search-selector.module.js → esm2020/lib/search/search-selector/search-selector.module.mjs} +10 -12
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +418 -0
- package/{esm2015/lib/search/search-settings/search-settings.module.js → esm2020/lib/search/search-settings/search-settings.module.mjs} +11 -13
- package/{esm2015/lib/search/search.module.js → esm2020/lib/search/search.module.mjs} +6 -8
- package/{esm2015/lib/search/shared/index.js → esm2020/lib/search/shared/index.mjs} +0 -0
- package/{esm2015/lib/search/shared/search-pointer-summary.directive.js → esm2020/lib/search/shared/search-pointer-summary.directive.mjs} +0 -0
- package/{esm2015/lib/search/shared/search-source-service.providers.js → esm2020/lib/search/shared/search-source-service.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/search-source.service.js → esm2020/lib/search/shared/search-source.service.mjs} +0 -0
- package/{esm2015/lib/search/shared/search.enums.js → esm2020/lib/search/shared/search.enums.mjs} +0 -0
- package/{esm2015/lib/search/shared/search.interfaces.js → esm2020/lib/search/shared/search.interfaces.mjs} +0 -0
- package/esm2020/lib/search/shared/search.service.mjs +118 -0
- package/{esm2015/lib/search/shared/search.utils.js → esm2020/lib/search/shared/search.utils.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/cadastre.js → esm2020/lib/search/shared/sources/cadastre.mjs} +1 -1
- package/{esm2015/lib/search/shared/sources/cadastre.providers.js → esm2020/lib/search/shared/sources/cadastre.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/coordinates.interfaces.js → esm2020/lib/search/shared/sources/coordinates.interfaces.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/coordinates.js → esm2020/lib/search/shared/sources/coordinates.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/coordinates.providers.js → esm2020/lib/search/shared/sources/coordinates.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/icherche.interfaces.js → esm2020/lib/search/shared/sources/icherche.interfaces.mjs} +0 -0
- package/esm2020/lib/search/shared/sources/icherche.mjs +755 -0
- package/{esm2015/lib/search/shared/sources/icherche.providers.js → esm2020/lib/search/shared/sources/icherche.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/ilayer.interfaces.js → esm2020/lib/search/shared/sources/ilayer.interfaces.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/ilayer.js → esm2020/lib/search/shared/sources/ilayer.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/ilayer.providers.js → esm2020/lib/search/shared/sources/ilayer.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/index.js → esm2020/lib/search/shared/sources/index.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/nominatim.interfaces.js → esm2020/lib/search/shared/sources/nominatim.interfaces.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/nominatim.js → esm2020/lib/search/shared/sources/nominatim.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/nominatim.providers.js → esm2020/lib/search/shared/sources/nominatim.providers.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/source.interfaces.js → esm2020/lib/search/shared/sources/source.interfaces.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/source.js → esm2020/lib/search/shared/sources/source.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/storedqueries.interfaces.js → esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs} +0 -0
- package/{esm2015/lib/search/shared/sources/storedqueries.js → esm2020/lib/search/shared/sources/storedqueries.mjs} +1 -1
- package/{esm2015/lib/search/shared/sources/storedqueries.providers.js → esm2020/lib/search/shared/sources/storedqueries.providers.mjs} +0 -0
- package/{esm2015/lib/toast/index.js → esm2020/lib/toast/index.mjs} +0 -0
- package/esm2020/lib/toast/toast.component.mjs +113 -0
- package/{esm2015/lib/toast/toast.module.js → esm2020/lib/toast/toast.module.mjs} +7 -9
- package/{esm2015/lib/utils/commonVectorStyle.interface.js → esm2020/lib/utils/commonVectorStyle.interface.mjs} +0 -0
- package/{esm2015/lib/utils/commonVectorStyle.js → esm2020/lib/utils/commonVectorStyle.mjs} +0 -0
- package/{esm2015/lib/utils/googleLinks.js → esm2020/lib/utils/googleLinks.mjs} +0 -0
- package/{esm2015/lib/utils/id-generator.js → esm2020/lib/utils/id-generator.mjs} +0 -0
- package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
- package/{esm2015/lib/utils/osmLinks.js → esm2020/lib/utils/osmLinks.mjs} +0 -0
- package/{esm2015/lib/wkt/index.js → esm2020/lib/wkt/index.mjs} +0 -0
- package/{esm2015/lib/wkt/shared/index.js → esm2020/lib/wkt/shared/index.mjs} +0 -0
- package/{esm2015/lib/wkt/shared/wkt.service.js → esm2020/lib/wkt/shared/wkt.service.mjs} +0 -0
- package/{esm2015/lib/wkt/wkt.module.js → esm2020/lib/wkt/wkt.module.mjs} +2 -2
- package/{esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js → esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs} +7 -15
- package/{esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js → esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs} +5 -7
- package/{esm2015/lib/workspace/confirmation-popup/index.js → esm2020/lib/workspace/confirmation-popup/index.mjs} +0 -0
- package/{esm2015/lib/workspace/index.js → esm2020/lib/workspace/index.mjs} +0 -0
- package/{esm2015/lib/workspace/shared/edition-workspace.js → esm2020/lib/workspace/shared/edition-workspace.mjs} +2 -3
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +642 -0
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +35 -0
- package/{esm2015/lib/workspace/shared/wfs-workspace.service.js → esm2020/lib/workspace/shared/feature-workspace.service.mjs} +8 -9
- package/{esm2015/lib/workspace/shared/index.js → esm2020/lib/workspace/shared/index.mjs} +0 -0
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +35 -0
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +150 -0
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +261 -0
- package/{esm2015/lib/workspace/shared/workspace.utils.js → esm2020/lib/workspace/shared/workspace.utils.mjs} +0 -0
- package/{esm2015/lib/workspace/widgets/index.js → esm2020/lib/workspace/widgets/index.mjs} +0 -0
- package/{esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js → esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs} +3 -8
- package/{esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js → esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs} +5 -7
- package/{esm2015/lib/workspace/widgets/widgets.js → esm2020/lib/workspace/widgets/widgets.mjs} +0 -0
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +133 -0
- package/{esm2015/lib/workspace/workspace-selector/workspace-selector.module.js → esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs} +2 -4
- package/{esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js → esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs} +8 -11
- package/{esm2015/lib/workspace/workspace-updator/workspace-updator.module.js → esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs} +2 -4
- package/{esm2015/lib/workspace/workspace.module.js → esm2020/lib/workspace/workspace.module.mjs} +8 -10
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/igo2-geo.mjs +42904 -0
- package/fesm2015/igo2-geo.mjs.map +1 -0
- package/{fesm2015/igo2-geo.js → fesm2020/igo2-geo.mjs} +1635 -2527
- package/fesm2020/igo2-geo.mjs.map +1 -0
- package/{igo2-geo.d.ts → index.d.ts} +0 -0
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +1 -1
- package/lib/download/download-button/download-button.component.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
- package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +5 -5
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +4 -4
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +3 -3
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +2 -2
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +1 -1
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +1 -1
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
- package/lib/map/info-section/info-section.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +1 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +3 -2
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
- package/lib/map/shared/map.d.ts +3 -2
- package/lib/map/shared/mapOffline.directive.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +1 -1
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
- package/lib/overlay/shared/overlay.directive.d.ts +1 -1
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +14 -14
- package/lib/print/shared/print.service.d.ts +6 -1
- package/lib/query/shared/query.directive.d.ts +1 -1
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +1 -1
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/toast/toast.component.d.ts +1 -1
- package/lib/wkt/shared/wkt.service.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/package.json +31 -18
- package/bundles/igo2-geo.umd.js +0 -47612
- package/bundles/igo2-geo.umd.js.map +0 -1
- package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +0 -305
- package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +0 -248
- package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +0 -235
- package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +0 -85
- package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +0 -224
- package/esm2015/lib/catalog/shared/catalog.service.js +0 -606
- package/esm2015/lib/datasource/shared/capabilities.service.js +0 -427
- package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +0 -74
- package/esm2015/lib/datasource/shared/datasources/wfs.service.js +0 -153
- package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +0 -205
- package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +0 -229
- package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +0 -300
- package/esm2015/lib/directions/directions-results/directions-results.component.js +0 -204
- package/esm2015/lib/directions/directions.component.js +0 -316
- package/esm2015/lib/directions/shared/directions.utils.js +0 -510
- package/esm2015/lib/download/download-button/download-button.component.js +0 -66
- package/esm2015/lib/draw/draw/draw-shorcuts.component.js +0 -64
- package/esm2015/lib/draw/draw/draw.component.js +0 -745
- package/esm2015/lib/feature/feature-details/feature-details.component.js +0 -393
- package/esm2015/lib/feature/shared/strategies/in-map-extent.js +0 -114
- package/esm2015/lib/filter/filter.module.js +0 -290
- package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +0 -161
- package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +0 -657
- package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +0 -1355
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +0 -185
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +0 -898
- package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +0 -307
- package/esm2015/lib/filter/shared/ogc-filter-time.service.js +0 -73
- package/esm2015/lib/filter/shared/ogc-filter.js +0 -693
- package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +0 -1108
- package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +0 -772
- package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +0 -126
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +0 -199
- package/esm2015/lib/import-export/export-button/export-button.component.js +0 -70
- package/esm2015/lib/import-export/import-export/import-export.component.js +0 -1238
- package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +0 -136
- package/esm2015/lib/layer/layer-item/layer-item.component.js +0 -305
- package/esm2015/lib/layer/layer-legend/layer-legend.component.js +0 -395
- package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +0 -200
- package/esm2015/lib/layer/layer-list/layer-list.component.js +0 -1043
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +0 -176
- package/esm2015/lib/layer/layer.module.js +0 -174
- package/esm2015/lib/layer/shared/layer.service.js +0 -186
- package/esm2015/lib/layer/shared/layers/layer.js +0 -169
- package/esm2015/lib/layer/shared/layers/vector-layer.js +0 -376
- package/esm2015/lib/layer/shared/style.service.js +0 -358
- package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +0 -64
- package/esm2015/lib/layer/utils/layer.utils.js +0 -11
- package/esm2015/lib/layer/utils/layerSync-watcher.js +0 -249
- package/esm2015/lib/layer/utils/outputLegend.js +0 -27
- package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +0 -105
- package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +0 -137
- package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +0 -82
- package/esm2015/lib/map/info-section/info-section.component.js +0 -36
- package/esm2015/lib/map/map-browser/map-browser.component.js +0 -70
- package/esm2015/lib/map/offline-button/offline-button.component.js +0 -84
- package/esm2015/lib/map/rotation-button/rotation-button.component.js +0 -97
- package/esm2015/lib/map/shared/controllers/geolocation.js +0 -295
- package/esm2015/lib/map/shared/hover-feature.directive.js +0 -509
- package/esm2015/lib/map/shared/map.js +0 -417
- package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +0 -122
- package/esm2015/lib/map/zoom-button/zoom-button.component.js +0 -46
- package/esm2015/lib/measure/measurer/measurer-dialog.component.js +0 -220
- package/esm2015/lib/measure/measurer/measurer.component.js +0 -1053
- package/esm2015/lib/measure/measurer/measurer.module.js +0 -96
- package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +0 -135
- package/esm2015/lib/print/print-form/print-form.component.js +0 -447
- package/esm2015/lib/print/shared/print.service.js +0 -820
- package/esm2015/lib/query/shared/query.service.js +0 -619
- package/esm2015/lib/search/search-bar/search-bar.component.js +0 -496
- package/esm2015/lib/search/search-results/search-results-add-button.component.js +0 -198
- package/esm2015/lib/search/search-results/search-results-item.component.js +0 -129
- package/esm2015/lib/search/search-results/search-results.component.js +0 -337
- package/esm2015/lib/search/search-selector/search-selector.component.js +0 -132
- package/esm2015/lib/search/search-settings/search-settings.component.js +0 -435
- package/esm2015/lib/search/shared/search.service.js +0 -118
- package/esm2015/lib/search/shared/sources/icherche.js +0 -756
- package/esm2015/lib/toast/toast.component.js +0 -119
- package/esm2015/lib/workspace/shared/edition-workspace.service.js +0 -646
- package/esm2015/lib/workspace/shared/feature-workspace.js +0 -37
- package/esm2015/lib/workspace/shared/feature-workspace.service.js +0 -151
- package/esm2015/lib/workspace/shared/wfs-workspace.js +0 -37
- package/esm2015/lib/workspace/shared/wms-workspace.service.js +0 -263
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +0 -135
- package/fesm2015/igo2-geo.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import olSourceVector from 'ol/source/Vector';
|
|
2
|
+
import * as OlLoadingStrategy from 'ol/loadingstrategy';
|
|
3
|
+
import olProjection from 'ol/proj/Projection';
|
|
4
|
+
import * as olproj from 'ol/proj';
|
|
5
|
+
import { DataSource } from './datasource';
|
|
6
|
+
import { OgcFilterWriter } from '../../../filter/shared/ogc-filter';
|
|
7
|
+
import { defaultFieldNameGeometry, checkWfsParams, getFormatFromOptions, buildUrl } from './wms-wfs.utils';
|
|
8
|
+
import { BehaviorSubject } from 'rxjs';
|
|
9
|
+
export class WFSDataSource extends DataSource {
|
|
10
|
+
constructor(options, wfsService, authInterceptor) {
|
|
11
|
+
super(checkWfsParams(options, 'wfs'));
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.wfsService = wfsService;
|
|
14
|
+
this.authInterceptor = authInterceptor;
|
|
15
|
+
this.mostRecentIdCallOGCFilter = 0;
|
|
16
|
+
this.ogcFilters$ = new BehaviorSubject(undefined);
|
|
17
|
+
const ogcFilters = this.options.ogcFilters;
|
|
18
|
+
const fieldNameGeometry = this.options.paramsWFS.fieldNameGeometry || defaultFieldNameGeometry;
|
|
19
|
+
const ogcFilterWriter = new OgcFilterWriter();
|
|
20
|
+
this.options.ogcFilters =
|
|
21
|
+
ogcFilterWriter.defineOgcFiltersDefaultOptions(ogcFilters, fieldNameGeometry);
|
|
22
|
+
if (this.options.ogcFilters.enabled &&
|
|
23
|
+
this.options.ogcFilters.editable &&
|
|
24
|
+
(options.sourceFields || []).filter(sf => !sf.values).length > 0) {
|
|
25
|
+
this.wfsService.getSourceFieldsFromWFS(this.options);
|
|
26
|
+
}
|
|
27
|
+
if (ogcFilters?.pushButtons) {
|
|
28
|
+
ogcFilters.pushButtons.selectorType = 'pushButton';
|
|
29
|
+
}
|
|
30
|
+
if (ogcFilters?.checkboxes) {
|
|
31
|
+
ogcFilters.checkboxes.selectorType = 'checkbox';
|
|
32
|
+
}
|
|
33
|
+
if (ogcFilters?.radioButtons) {
|
|
34
|
+
ogcFilters.radioButtons.selectorType = 'radioButton';
|
|
35
|
+
}
|
|
36
|
+
if (ogcFilters?.select) {
|
|
37
|
+
ogcFilters.select.selectorType = 'select';
|
|
38
|
+
}
|
|
39
|
+
if (ogcFilters?.autocomplete) {
|
|
40
|
+
ogcFilters.autocomplete.selectorType = 'autocomplete';
|
|
41
|
+
}
|
|
42
|
+
this.setOgcFilters(this.options.ogcFilters, true);
|
|
43
|
+
}
|
|
44
|
+
set ogcFilters(value) {
|
|
45
|
+
this.options.ogcFilters = value;
|
|
46
|
+
}
|
|
47
|
+
get ogcFilters() {
|
|
48
|
+
return this.options.ogcFilters;
|
|
49
|
+
}
|
|
50
|
+
createOlSource() {
|
|
51
|
+
const vectorSource = new olSourceVector({
|
|
52
|
+
format: getFormatFromOptions(this.options),
|
|
53
|
+
url: (extent, resolution, proj) => {
|
|
54
|
+
const paramsWFS = this.options.paramsWFS;
|
|
55
|
+
const wfsProj = paramsWFS.srsName ? new olProjection({ code: paramsWFS.srsName }) : proj;
|
|
56
|
+
const ogcFilters = this.options.ogcFilters;
|
|
57
|
+
const currentExtent = olproj.transformExtent(extent, proj, wfsProj);
|
|
58
|
+
paramsWFS.srsName = paramsWFS.srsName || proj.getCode();
|
|
59
|
+
return buildUrl(this.options, currentExtent, wfsProj, ogcFilters);
|
|
60
|
+
},
|
|
61
|
+
strategy: OlLoadingStrategy.bbox
|
|
62
|
+
});
|
|
63
|
+
return vectorSource;
|
|
64
|
+
}
|
|
65
|
+
setOgcFilters(ogcFilters, triggerEvent = false) {
|
|
66
|
+
this.ogcFilters = ogcFilters;
|
|
67
|
+
this.mostRecentIdCallOGCFilter += 1;
|
|
68
|
+
if (triggerEvent) {
|
|
69
|
+
this.ogcFilters$.next(this.ogcFilters);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
onUnwatch() { }
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFHbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBYTNDLFlBQ1MsT0FBNkIsRUFDMUIsVUFBc0IsRUFDeEIsZUFBaUM7UUFFekMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUovQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQWRwQyw4QkFBeUIsR0FBVyxDQUFDLENBQUM7UUFTcEMsZ0JBQVcsR0FBdUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFTeEYsTUFBTSxVQUFVLEdBQUksSUFBSSxDQUFDLE9BQTBDLENBQUMsVUFBVSxDQUFDO1FBQy9FLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9B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QUM7SUFFRCxhQUFhLENBQUMsVUFBNkIsRUFBRSxlQUF3QixLQUFLO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLFNBQVMsS0FBSyxDQUFDO0NBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sU291cmNlVmVjdG9yIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5pbXBvcnQgKiBhcyBPbExvYWRpbmdTdHJhdGVneSBmcm9tICdvbC9sb2FkaW5nc3RyYXRlZ3knO1xyXG5pbXBvcnQgb2xQcm9qZWN0aW9uIGZyb20gJ29sL3Byb2ovUHJvamVjdGlvbic7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vd2ZzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLCBPZ2NGaWx0ZXJzT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeSxcclxuICBjaGVja1dmc1BhcmFtcyxcclxuICBnZXRGb3JtYXRGcm9tT3B0aW9ucyxcclxuICBidWlsZFVybFxyXG59IGZyb20gJy4vd21zLXdmcy51dGlscyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBXRlNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIG9sOiBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PjtcclxuICBwdWJsaWMgbW9zdFJlY2VudElkQ2FsbE9HQ0ZpbHRlcjogbnVtYmVyID0gMDtcclxuXHJcbiAgc2V0IG9nY0ZpbHRlcnModmFsdWU6IE9nY0ZpbHRlcnNPcHRpb25zKSB7XHJcbiAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgb2djRmlsdGVycygpOiBPZ2NGaWx0ZXJzT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBvZ2NGaWx0ZXJzJDogQmVoYXZpb3JTdWJqZWN0PE9nY0ZpbHRlcnNPcHRpb25zPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgd2ZzU2VydmljZTogV0ZTU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGVja1dmc1BhcmFtcyhvcHRpb25zLCAnd2ZzJykpO1xyXG5cclxuICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycztcclxuICAgIGNvbnN0IGZpZWxkTmFtZUdlb21ldHJ5ID0gdGhpcy5vcHRpb25zLnBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcbiAgICBjb25zdCBvZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XHJcbiAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9XHJcbiAgICAgIG9nY0ZpbHRlcldyaXRlci5kZWZpbmVPZ2NGaWx0ZXJzRGVmYXVsdE9wdGlvbnMob2djRmlsdGVycywgZmllbGROYW1lR2VvbWV0cnkpO1xyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycy5lbmFibGVkICYmXHJcbiAgICAgICh0aGlzLm9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzLmVkaXRhYmxlICYmXHJcbiAgICAgIChvcHRpb25zLnNvdXJjZUZpZWxkcyB8fCBbXSkuZmlsdGVyKHNmID0+ICFzZi52YWx1ZXMpLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLndmc1NlcnZpY2UuZ2V0U291cmNlRmllbGRzRnJvbVdGUyh0aGlzLm9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvZ2NGaWx0ZXJzPy5wdXNoQnV0dG9ucyl7XHJcbiAgICAgIG9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuc2VsZWN0b3JUeXBlID0gJ3B1c2hCdXR0b24nO1xyXG4gICAgfVxyXG4gICAgaWYgKG9nY0ZpbHRlcnM/LmNoZWNrYm94ZXMpe1xyXG4gICAgICBvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuc2VsZWN0b3JUeXBlID0gJ2NoZWNrYm94JztcclxuICAgIH1cclxuICAgIGlmIChvZ2NGaWx0ZXJzPy5yYWRpb0J1dHRvbnMpe1xyXG4gICAgICBvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncmFkaW9CdXR0b24nO1xyXG4gICAgfVxyXG4gICAgaWYgKG9nY0ZpbHRlcnM/LnNlbGVjdCl7XHJcbiAgICAgIG9nY0ZpbHRlcnMuc2VsZWN0LnNlbGVjdG9yVHlwZSA9ICdzZWxlY3QnO1xyXG4gICAgfVxyXG4gICAgaWYgKG9nY0ZpbHRlcnM/LmF1dG9jb21wbGV0ZSl7XHJcbiAgICAgIG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlLnNlbGVjdG9yVHlwZSA9ICdhdXRvY29tcGxldGUnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0T2djRmlsdGVycygodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4ge1xyXG4gICAgY29uc3QgdmVjdG9yU291cmNlID0gbmV3IG9sU291cmNlVmVjdG9yKHtcclxuICAgICAgZm9ybWF0OiBnZXRGb3JtYXRGcm9tT3B0aW9ucyh0aGlzLm9wdGlvbnMpLFxyXG4gICAgICB1cmw6IChleHRlbnQsIHJlc29sdXRpb24sIHByb2o6IG9sUHJvamVjdGlvbikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IHRoaXMub3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgICAgICAgY29uc3Qgd2ZzUHJvaiA9IHBhcmFtc1dGUy5zcnNOYW1lID8gbmV3IG9sUHJvamVjdGlvbih7IGNvZGU6IHBhcmFtc1dGUy5zcnNOYW1lIH0pIDogcHJvajtcclxuICAgICAgICBjb25zdCBvZ2NGaWx0ZXJzID0gKHRoaXMub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEV4dGVudCA9IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoZXh0ZW50LCBwcm9qLCB3ZnNQcm9qKTtcclxuICAgICAgICBwYXJhbXNXRlMuc3JzTmFtZSA9IHBhcmFtc1dGUy5zcnNOYW1lIHx8IHByb2ouZ2V0Q29kZSgpO1xyXG4gICAgICAgIHJldHVybiBidWlsZFVybCh0aGlzLm9wdGlvbnMsIGN1cnJlbnRFeHRlbnQsIHdmc1Byb2osIG9nY0ZpbHRlcnMpO1xyXG4gICAgICB9LFxyXG4gICAgICBzdHJhdGVneTogT2xMb2FkaW5nU3RyYXRlZ3kuYmJveFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmVjdG9yU291cmNlO1xyXG4gIH1cclxuXHJcbiAgc2V0T2djRmlsdGVycyhvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucywgdHJpZ2dlckV2ZW50OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMub2djRmlsdGVycyA9IG9nY0ZpbHRlcnM7XHJcbiAgICB0aGlzLm1vc3RSZWNlbnRJZENhbGxPR0NGaWx0ZXIgKz0gMTtcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy5vZ2NGaWx0ZXJzJC5uZXh0KHRoaXMub2djRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25VbndhdGNoKCkgeyB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { combineLatest, Observable, of } from 'rxjs';
|
|
3
|
+
import { DataService } from './data.service';
|
|
4
|
+
import { formatWFSQueryString, gmlRegex, defaultEpsg, defaultMaxFeatures, getFormatFromOptions } from './wms-wfs.utils';
|
|
5
|
+
import { concatMap } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
export class WFSService extends DataService {
|
|
9
|
+
constructor(http) {
|
|
10
|
+
super();
|
|
11
|
+
this.http = http;
|
|
12
|
+
}
|
|
13
|
+
getData() {
|
|
14
|
+
console.log('This is defining a data service.');
|
|
15
|
+
return 'This is defining a data service.';
|
|
16
|
+
}
|
|
17
|
+
getSourceFieldsFromWFS(dataSourceOptions) {
|
|
18
|
+
if (!dataSourceOptions.sourceFields || dataSourceOptions.sourceFields.length === 0) {
|
|
19
|
+
dataSourceOptions.sourceFields = [];
|
|
20
|
+
this.defineFieldAndValuefromWFS(dataSourceOptions).subscribe(getfeatureSourceField => {
|
|
21
|
+
dataSourceOptions.sourceFields = getfeatureSourceField;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.defineFieldAndValuefromWFS(dataSourceOptions).subscribe(getfeatureSourceField => {
|
|
26
|
+
dataSourceOptions.sourceFields.forEach(sourcefield => {
|
|
27
|
+
if (sourcefield.alias === undefined) {
|
|
28
|
+
sourcefield.alias = sourcefield.name; // to allow only a list of sourcefield with names
|
|
29
|
+
}
|
|
30
|
+
if (sourcefield.values === undefined || sourcefield.values.length === 0) {
|
|
31
|
+
sourcefield.values = getfeatureSourceField.find(sf => sf.name === sourcefield.name).values;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
wfsGetFeature(dataSourceOptions, nb = defaultMaxFeatures, epsgCode = defaultEpsg, propertyName, startIndex = 0, forceDefaultOutputFormat = false) {
|
|
38
|
+
const queryStringValues = formatWFSQueryString(dataSourceOptions, nb, epsgCode, propertyName, startIndex, forceDefaultOutputFormat);
|
|
39
|
+
const baseUrl = queryStringValues.find(f => f.name === 'getfeature').value;
|
|
40
|
+
const outputFormat = dataSourceOptions.paramsWFS.outputFormat;
|
|
41
|
+
if (forceDefaultOutputFormat || gmlRegex.test(outputFormat) || !outputFormat) {
|
|
42
|
+
return this.http.get(baseUrl, { responseType: 'text' });
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return this.http.get(baseUrl);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
defineFieldAndValuefromWFS(dataSourceOptions) {
|
|
49
|
+
return new Observable(d => {
|
|
50
|
+
const sourceFields = [];
|
|
51
|
+
let fieldList;
|
|
52
|
+
let fieldListWoGeom;
|
|
53
|
+
let fieldListWoGeomStr;
|
|
54
|
+
let olFormats;
|
|
55
|
+
let effectiveOlFormats;
|
|
56
|
+
olFormats = getFormatFromOptions(dataSourceOptions);
|
|
57
|
+
const gmlDataSourceOptions = JSON.parse(JSON.stringify(dataSourceOptions));
|
|
58
|
+
delete gmlDataSourceOptions.paramsWFS.outputFormat;
|
|
59
|
+
delete gmlDataSourceOptions.formatOptions;
|
|
60
|
+
effectiveOlFormats = getFormatFromOptions(gmlDataSourceOptions);
|
|
61
|
+
let sourceFieldsToRetrieveValues = dataSourceOptions.sourceFields?.filter(f => !f.values).map(f => f.name);
|
|
62
|
+
// Validate if the service manage no outputformat (wfs 1.0.0 and GML is the default return)
|
|
63
|
+
this.wfsGetFeature(dataSourceOptions, 1, undefined, undefined, 0, true).pipe(concatMap(res => String(res).toLowerCase().includes('exception') ? of(false) : of(true)), concatMap(allowGml => {
|
|
64
|
+
// If the service return GML (return no exception)
|
|
65
|
+
return this.wfsGetFeature(dataSourceOptions, 1).pipe(concatMap(firstFeature => {
|
|
66
|
+
const features = olFormats.readFeatures(firstFeature);
|
|
67
|
+
fieldList = features[0].getKeys();
|
|
68
|
+
if (dataSourceOptions.sourceFields || dataSourceOptions.sourceFields.length === 0) {
|
|
69
|
+
sourceFieldsToRetrieveValues = fieldList;
|
|
70
|
+
}
|
|
71
|
+
fieldListWoGeom = fieldList.filter(field => sourceFieldsToRetrieveValues.includes(field) &&
|
|
72
|
+
field !== features[0].getGeometryName() &&
|
|
73
|
+
!field.match(/boundedby/gi));
|
|
74
|
+
fieldListWoGeomStr = fieldListWoGeom.join(',');
|
|
75
|
+
const processingArray = [];
|
|
76
|
+
let startIndex = 0;
|
|
77
|
+
// If the service do not allow gml return, dice the call in multiple
|
|
78
|
+
// calls by increment of chunkSize with the original outputFormat
|
|
79
|
+
if (!allowGml && dataSourceOptions.paramsWFS.version === '2.0.0' &&
|
|
80
|
+
dataSourceOptions.paramsWFS.maxFeatures > defaultMaxFeatures) {
|
|
81
|
+
const chunkSize = 1000;
|
|
82
|
+
while (startIndex < dataSourceOptions.paramsWFS.maxFeatures) {
|
|
83
|
+
processingArray.push(this.wfsGetFeature(dataSourceOptions, chunkSize, dataSourceOptions.paramsWFS.srsName, fieldListWoGeomStr, startIndex));
|
|
84
|
+
startIndex += chunkSize;
|
|
85
|
+
}
|
|
86
|
+
effectiveOlFormats = olFormats;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
processingArray.push(this.wfsGetFeature(dataSourceOptions, dataSourceOptions.paramsWFS.maxFeatures || defaultMaxFeatures, dataSourceOptions.paramsWFS.srsName, fieldListWoGeomStr, 0, true));
|
|
90
|
+
}
|
|
91
|
+
return combineLatest(processingArray);
|
|
92
|
+
}));
|
|
93
|
+
})).subscribe((results) => {
|
|
94
|
+
let mfeatures = [];
|
|
95
|
+
results.map((result) => {
|
|
96
|
+
const loopFeatures = effectiveOlFormats.readFeatures(result);
|
|
97
|
+
mfeatures = mfeatures.concat(loopFeatures);
|
|
98
|
+
});
|
|
99
|
+
this.built_properties_value(mfeatures).forEach(element => {
|
|
100
|
+
sourceFields.push(element);
|
|
101
|
+
});
|
|
102
|
+
d.next(sourceFields);
|
|
103
|
+
d.complete();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
built_properties_value(features) {
|
|
108
|
+
if (features.length === 0) {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
const kv = Object.assign({}, features[0].getProperties());
|
|
112
|
+
delete kv[features[0].getGeometryName()];
|
|
113
|
+
delete kv.boundedBy;
|
|
114
|
+
const sourceFields = [];
|
|
115
|
+
for (const property in kv) {
|
|
116
|
+
if (kv.hasOwnProperty(property)) {
|
|
117
|
+
const fieldType = typeof features[0].get(property) === 'object'
|
|
118
|
+
? undefined
|
|
119
|
+
: typeof features[0].get(property);
|
|
120
|
+
sourceFields.push({
|
|
121
|
+
name: property,
|
|
122
|
+
alias: property,
|
|
123
|
+
type: fieldType,
|
|
124
|
+
values: [kv[property]]
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
features.every((element) => {
|
|
129
|
+
const featureProperties = element.getProperties();
|
|
130
|
+
for (const key in featureProperties) {
|
|
131
|
+
if (featureProperties.hasOwnProperty(key) && key in kv) {
|
|
132
|
+
sourceFields.filter(f => f.name === key).forEach(v => {
|
|
133
|
+
if (v.values.indexOf(featureProperties[key]) === -1) {
|
|
134
|
+
v.values.push(featureProperties[key]);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
});
|
|
141
|
+
return sourceFields;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
WFSService.ɵfac = function WFSService_Factory(t) { return new (t || WFSService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
145
|
+
WFSService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WFSService, factory: WFSService.ɵfac, providedIn: 'root' });
|
|
146
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WFSService, [{
|
|
147
|
+
type: Injectable,
|
|
148
|
+
args: [{
|
|
149
|
+
providedIn: 'root'
|
|
150
|
+
}]
|
|
151
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUNuQixRQUFRLEVBQ1IsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixvQkFBb0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBVztJQUN6QyxZQUFvQixJQUFnQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQVk7SUFFcEMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxrQ0FBa0MsQ0FBQztJQUM1QyxDQUFDO0lBRU0sc0JBQXNCLENBQUMsaUJBQThEO1FBQzFGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUc7WUFDbkYsaUJBQWlCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRTtnQkFDbkYsaUJBQWlCLENBQUMsWUFBWSxHQUFHLHFCQUFxQixD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YXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcm1hdFdGU1F1ZXJ5U3RyaW5nLFxyXG4gICAgICAgICAgZ21sUmVnZXgsXHJcbiAgICAgICAgICBkZWZhdWx0RXBzZyxcclxuICAgICAgICAgIGRlZmF1bHRNYXhGZWF0dXJlcyxcclxuICAgICAgICAgIGdldEZvcm1hdEZyb21PcHRpb25zfSBmcm9tICcuL3dtcy13ZnMudXRpbHMnO1xyXG5pbXBvcnQgeyBjb25jYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdGU1NlcnZpY2UgZXh0ZW5kcyBEYXRhU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdUaGlzIGlzIGRlZmluaW5nIGEgZGF0YSBzZXJ2aWNlLicpO1xyXG4gICAgcmV0dXJuICdUaGlzIGlzIGRlZmluaW5nIGEgZGF0YSBzZXJ2aWNlLic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U291cmNlRmllbGRzRnJvbVdGUyhkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9ucykge1xyXG4gICAgaWYgKCFkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMCApIHtcclxuICAgICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzID0gW107XHJcbiAgICAgIHRoaXMuZGVmaW5lRmllbGRBbmRWYWx1ZWZyb21XRlMoZGF0YVNvdXJjZU9wdGlvbnMpLnN1YnNjcmliZShnZXRmZWF0dXJlU291cmNlRmllbGQgPT4ge1xyXG4gICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcyA9IGdldGZlYXR1cmVTb3VyY2VGaWVsZDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWZpbmVGaWVsZEFuZFZhbHVlZnJvbVdGUyhkYXRhU291cmNlT3B0aW9ucykuc3Vic2NyaWJlKGdldGZlYXR1cmVTb3VyY2VGaWVsZCA9PiB7XHJcbiAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goc291cmNlZmllbGQgPT4ge1xyXG4gICAgICAgICAgaWYgKHNvdXJjZWZpZWxkLmFsaWFzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgc291cmNlZmllbGQuYWxpYXMgPSBzb3VyY2VmaWVsZC5uYW1lOyAvLyB0byBhbGxvdyBvbmx5IGEgbGlzdCBvZiBzb3VyY2VmaWVsZCB3aXRoIG5hbWVzXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoc291cmNlZmllbGQudmFsdWVzID09PSB1bmRlZmluZWQgfHwgc291cmNlZmllbGQudmFsdWVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBzb3VyY2VmaWVsZC52YWx1ZXMgPSBnZXRmZWF0dXJlU291cmNlRmllbGQuZmluZChzZiA9PiBzZi5uYW1lID09PSBzb3VyY2VmaWVsZC5uYW1lKS52YWx1ZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3ZnNHZXRGZWF0dXJlKFxyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBuYjogbnVtYmVyID0gZGVmYXVsdE1heEZlYXR1cmVzLFxyXG4gICAgZXBzZ0NvZGU6IHN0cmluZyA9IGRlZmF1bHRFcHNnLFxyXG4gICAgcHJvcGVydHlOYW1lPzogc3RyaW5nLFxyXG4gICAgc3RhcnRJbmRleDogbnVtYmVyID0gMCxcclxuICAgIGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nVmFsdWVzID0gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoZGF0YVNvdXJjZU9wdGlvbnMsIG5iLCBlcHNnQ29kZSwgcHJvcGVydHlOYW1lLCBzdGFydEluZGV4LCBmb3JjZURlZmF1bHRPdXRwdXRGb3JtYXQgKTtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBxdWVyeVN0cmluZ1ZhbHVlcy5maW5kKGYgPT4gZi5uYW1lID09PSAnZ2V0ZmVhdHVyZScpLnZhbHVlO1xyXG4gICAgY29uc3Qgb3V0cHV0Rm9ybWF0ID0gZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICAgIGlmIChmb3JjZURlZmF1bHRPdXRwdXRGb3JtYXQgfHwgZ21sUmVnZXgudGVzdChvdXRwdXRGb3JtYXQpIHx8ICFvdXRwdXRGb3JtYXQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVmaW5lRmllbGRBbmRWYWx1ZWZyb21XRlMoXHJcbiAgICBkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZCA9PiB7XHJcbiAgICAgIGNvbnN0IHNvdXJjZUZpZWxkcyA9IFtdO1xyXG4gICAgICBsZXQgZmllbGRMaXN0O1xyXG4gICAgICBsZXQgZmllbGRMaXN0V29HZW9tO1xyXG4gICAgICBsZXQgZmllbGRMaXN0V29HZW9tU3RyO1xyXG4gICAgICBsZXQgb2xGb3JtYXRzO1xyXG4gICAgICBsZXQgZWZmZWN0aXZlT2xGb3JtYXRzO1xyXG5cclxuICAgICAgb2xGb3JtYXRzID0gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoZGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICBjb25zdCBnbWxEYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9ucyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YVNvdXJjZU9wdGlvbnMpXHJcbiAgICAgICk7XHJcbiAgICAgIGRlbGV0ZSBnbWxEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMub3V0cHV0Rm9ybWF0O1xyXG4gICAgICBkZWxldGUgKGdtbERhdGFTb3VyY2VPcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zKS5mb3JtYXRPcHRpb25zO1xyXG5cclxuICAgICAgZWZmZWN0aXZlT2xGb3JtYXRzID0gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoZ21sRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICBsZXQgc291cmNlRmllbGRzVG9SZXRyaWV2ZVZhbHVlcyA9IGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcz8uZmlsdGVyKGYgPT4gIWYudmFsdWVzKS5tYXAoZiA9PiBmLm5hbWUpO1xyXG5cclxuICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIHNlcnZpY2UgbWFuYWdlIG5vIG91dHB1dGZvcm1hdCAod2ZzIDEuMC4wIGFuZCBHTUwgaXMgdGhlIGRlZmF1bHQgcmV0dXJuKVxyXG4gICAgICB0aGlzLndmc0dldEZlYXR1cmUoZGF0YVNvdXJjZU9wdGlvbnMsIDEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCB0cnVlKS5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcChyZXMgPT4gU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZXhjZXB0aW9uJykgPyBvZihmYWxzZSkgOiBvZih0cnVlKSksXHJcbiAgICAgICAgY29uY2F0TWFwKGFsbG93R21sID0+IHtcclxuICAgICAgICAgIC8vIElmIHRoZSBzZXJ2aWNlIHJldHVybiBHTUwgKHJldHVybiBubyBleGNlcHRpb24pXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZnNHZXRGZWF0dXJlKGRhdGFTb3VyY2VPcHRpb25zLCAxKS5waXBlKFxyXG4gICAgICAgICAgICBjb25jYXRNYXAoZmlyc3RGZWF0dXJlID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IG9sRm9ybWF0cy5yZWFkRmVhdHVyZXMoZmlyc3RGZWF0dXJlKTtcclxuICAgICAgICAgICAgICBmaWVsZExpc3QgPSBmZWF0dXJlc1swXS5nZXRLZXlzKCk7XHJcbiAgICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcyB8fCBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2VGaWVsZHNUb1JldHJpZXZlVmFsdWVzID0gZmllbGRMaXN0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb20gPSBmaWVsZExpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgZmllbGQgPT5cclxuICAgICAgICAgICAgICAgICAgc291cmNlRmllbGRzVG9SZXRyaWV2ZVZhbHVlcy5pbmNsdWRlcyhmaWVsZCkgJiZcclxuICAgICAgICAgICAgICAgICAgZmllbGQgIT09IGZlYXR1cmVzWzBdLmdldEdlb21ldHJ5TmFtZSgpICYmXHJcbiAgICAgICAgICAgICAgICAgICFmaWVsZC5tYXRjaCgvYm91bmRlZGJ5L2dpKVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZmllbGRMaXN0V29HZW9tU3RyID0gZmllbGRMaXN0V29HZW9tLmpvaW4oJywnKTtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzaW5nQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgLy8gSWYgdGhlIHNlcnZpY2UgZG8gbm90IGFsbG93IGdtbCByZXR1cm4sIGRpY2UgdGhlIGNhbGwgaW4gbXVsdGlwbGVcclxuICAgICAgICAgICAgICAvLyBjYWxscyBieSBpbmNyZW1lbnQgb2YgY2h1bmtTaXplIHdpdGggdGhlIG9yaWdpbmFsIG91dHB1dEZvcm1hdFxyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICFhbGxvd0dtbCAmJiBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMudmVyc2lvbiA9PT0gJzIuMC4wJyAmJlxyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm1heEZlYXR1cmVzID4gZGVmYXVsdE1heEZlYXR1cmVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSAxMDAwO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMubWF4RmVhdHVyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0FycmF5LnB1c2godGhpcy53ZnNHZXRGZWF0dXJlKFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgIGNodW5rU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMuc3JzTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb21TdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleFxyXG4gICAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSBjaHVua1NpemU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlZmZlY3RpdmVPbEZvcm1hdHMgPSBvbEZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdBcnJheS5wdXNoKHRoaXMud2ZzR2V0RmVhdHVyZShcclxuICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5tYXhGZWF0dXJlcyB8fCBkZWZhdWx0TWF4RmVhdHVyZXMsXHJcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5zcnNOYW1lLFxyXG4gICAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb21TdHIsXHJcbiAgICAgICAgICAgICAgICAgIDAsIHRydWVcclxuICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChwcm9jZXNzaW5nQXJyYXkpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KSkuc3Vic2NyaWJlKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgbWZlYXR1cmVzOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSA9IFtdO1xyXG4gICAgICAgICAgcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsb29wRmVhdHVyZXMgPSBlZmZlY3RpdmVPbEZvcm1hdHMucmVhZEZlYXR1cmVzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIG1mZWF0dXJlcyA9IG1mZWF0dXJlcy5jb25jYXQobG9vcEZlYXR1cmVzKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5idWlsdF9wcm9wZXJ0aWVzX3ZhbHVlKG1mZWF0dXJlcykuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgc291cmNlRmllbGRzLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGQubmV4dChzb3VyY2VGaWVsZHMpO1xyXG4gICAgICAgICAgZC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWx0X3Byb3BlcnRpZXNfdmFsdWUoZmVhdHVyZXM6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdKTogc3RyaW5nW10ge1xyXG4gICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCBrdiA9IE9iamVjdC5hc3NpZ24oe30sIGZlYXR1cmVzWzBdLmdldFByb3BlcnRpZXMoKSk7XHJcbiAgICBkZWxldGUga3ZbZmVhdHVyZXNbMF0uZ2V0R2VvbWV0cnlOYW1lKCldO1xyXG4gICAgZGVsZXRlIGt2LmJvdW5kZWRCeTtcclxuICAgIGNvbnN0IHNvdXJjZUZpZWxkcyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBrdikge1xyXG4gICAgICBpZiAoa3YuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgY29uc3QgZmllbGRUeXBlID1cclxuICAgICAgICAgIHR5cGVvZiBmZWF0dXJlc1swXS5nZXQocHJvcGVydHkpID09PSAnb2JqZWN0J1xyXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA6IHR5cGVvZiBmZWF0dXJlc1swXS5nZXQocHJvcGVydHkpO1xyXG4gICAgICAgIHNvdXJjZUZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHByb3BlcnR5LFxyXG4gICAgICAgICAgYWxpYXM6IHByb3BlcnR5LFxyXG4gICAgICAgICAgdHlwZTogZmllbGRUeXBlLFxyXG4gICAgICAgICAgdmFsdWVzOiBba3ZbcHJvcGVydHldXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmZWF0dXJlcy5ldmVyeSgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBmZWF0dXJlUHJvcGVydGllcyA9IGVsZW1lbnQuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmZWF0dXJlUHJvcGVydGllcykge1xyXG4gICAgICAgIGlmIChmZWF0dXJlUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSBpbiBrdikge1xyXG4gICAgICAgICAgc291cmNlRmllbGRzLmZpbHRlcihmID0+IGYubmFtZSA9PT0ga2V5KS5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgICAgICBpZiAodi52YWx1ZXMuaW5kZXhPZihmZWF0dXJlUHJvcGVydGllc1trZXldKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICB2LnZhbHVlcy5wdXNoKGZlYXR1cmVQcm9wZXJ0aWVzW2tleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzb3VyY2VGaWVsZHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import olSourceImageWMS from 'ol/source/ImageWMS';
|
|
2
|
+
import { DataSource } from './datasource';
|
|
3
|
+
import { OgcFilterWriter } from '../../../filter/shared/ogc-filter';
|
|
4
|
+
import { QueryHtmlTarget } from '../../../query/shared/query.enums';
|
|
5
|
+
import { formatWFSQueryString, checkWfsParams, defaultFieldNameGeometry } from './wms-wfs.utils';
|
|
6
|
+
import { ObjectUtils } from '@igo2/utils';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
export class WMSDataSource extends DataSource {
|
|
9
|
+
constructor(options, wfsService) {
|
|
10
|
+
super(options);
|
|
11
|
+
this.options = options;
|
|
12
|
+
this.wfsService = wfsService;
|
|
13
|
+
this.ogcFilters$ = new BehaviorSubject(undefined);
|
|
14
|
+
this.timeFilter$ = new BehaviorSubject(undefined);
|
|
15
|
+
const sourceParams = options.params;
|
|
16
|
+
const dpi = sourceParams.DPI || 96;
|
|
17
|
+
sourceParams.DPI = dpi;
|
|
18
|
+
sourceParams.MAP_RESOLUTION = dpi;
|
|
19
|
+
sourceParams.FORMAT_OPTIONS = 'dpi:' + dpi;
|
|
20
|
+
if (options.refreshIntervalSec && options.refreshIntervalSec > 0) {
|
|
21
|
+
setInterval(() => {
|
|
22
|
+
this.refresh();
|
|
23
|
+
}, options.refreshIntervalSec * 1000); // Convert seconds to MS
|
|
24
|
+
}
|
|
25
|
+
let fieldNameGeometry = defaultFieldNameGeometry;
|
|
26
|
+
// #### START if paramsWFS
|
|
27
|
+
if (options.paramsWFS) {
|
|
28
|
+
const wfsCheckup = checkWfsParams(options, 'wms');
|
|
29
|
+
ObjectUtils.mergeDeep(options.paramsWFS, wfsCheckup.paramsWFS);
|
|
30
|
+
fieldNameGeometry =
|
|
31
|
+
options.paramsWFS.fieldNameGeometry || fieldNameGeometry;
|
|
32
|
+
options.download = Object.assign({}, options.download, {
|
|
33
|
+
dynamicUrl: this.buildDynamicDownloadUrlFromParamsWFS(options)
|
|
34
|
+
});
|
|
35
|
+
} // #### END if paramsWFS
|
|
36
|
+
if (!options.sourceFields || options.sourceFields.length === 0) {
|
|
37
|
+
options.sourceFields = [];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
options.sourceFields.forEach(sourceField => {
|
|
41
|
+
sourceField.alias = sourceField.alias
|
|
42
|
+
? sourceField.alias
|
|
43
|
+
: sourceField.name;
|
|
44
|
+
// to allow only a list of sourcefield with names
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const initOgcFilters = options
|
|
48
|
+
.ogcFilters;
|
|
49
|
+
const ogcFilterWriter = new OgcFilterWriter();
|
|
50
|
+
if (!initOgcFilters) {
|
|
51
|
+
options.ogcFilters = ogcFilterWriter.defineOgcFiltersDefaultOptions(initOgcFilters, fieldNameGeometry, 'wms');
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
initOgcFilters.advancedOgcFilters = (initOgcFilters.pushButtons || initOgcFilters.checkboxes
|
|
55
|
+
|| initOgcFilters.radioButtons || initOgcFilters.select || initOgcFilters.autocomplete)
|
|
56
|
+
? false
|
|
57
|
+
: true;
|
|
58
|
+
if (initOgcFilters.advancedOgcFilters && initOgcFilters.filters) {
|
|
59
|
+
const filterDuring = initOgcFilters.filters;
|
|
60
|
+
if (filterDuring.calendarModeYear) {
|
|
61
|
+
initOgcFilters.advancedOgcFilters = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (initOgcFilters.pushButtons) {
|
|
65
|
+
initOgcFilters.pushButtons.selectorType = 'pushButton';
|
|
66
|
+
}
|
|
67
|
+
if (initOgcFilters.checkboxes) {
|
|
68
|
+
initOgcFilters.checkboxes.selectorType = 'checkbox';
|
|
69
|
+
}
|
|
70
|
+
if (initOgcFilters.radioButtons) {
|
|
71
|
+
initOgcFilters.radioButtons.selectorType = 'radioButton';
|
|
72
|
+
}
|
|
73
|
+
if (initOgcFilters.select) {
|
|
74
|
+
initOgcFilters.select.selectorType = 'select';
|
|
75
|
+
}
|
|
76
|
+
if (initOgcFilters.autocomplete) {
|
|
77
|
+
initOgcFilters.autocomplete.selectorType = 'autocomplete';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (sourceParams.LAYERS.split(',').length > 1 &&
|
|
81
|
+
initOgcFilters &&
|
|
82
|
+
initOgcFilters.enabled) {
|
|
83
|
+
console.log('*******************************');
|
|
84
|
+
console.log('BE CAREFULL, YOUR WMS LAYERS (' +
|
|
85
|
+
sourceParams.LAYERS +
|
|
86
|
+
') MUST SHARE THE SAME FIELDS TO ALLOW ogcFilters TO WORK !! ');
|
|
87
|
+
console.log('*******************************');
|
|
88
|
+
}
|
|
89
|
+
if (options.paramsWFS &&
|
|
90
|
+
initOgcFilters &&
|
|
91
|
+
initOgcFilters.enabled &&
|
|
92
|
+
initOgcFilters.editable &&
|
|
93
|
+
(options.sourceFields || []).filter(sf => !sf.values).length > 0) {
|
|
94
|
+
this.wfsService.getSourceFieldsFromWFS(options);
|
|
95
|
+
}
|
|
96
|
+
const filterQueryString = ogcFilterWriter.handleOgcFiltersAppliedValue(options, fieldNameGeometry);
|
|
97
|
+
sourceParams.FILTER = filterQueryString;
|
|
98
|
+
this.setOgcFilters(initOgcFilters, true);
|
|
99
|
+
const timeFilterableDataSourceOptions = options;
|
|
100
|
+
if (timeFilterableDataSourceOptions?.timeFilterable &&
|
|
101
|
+
timeFilterableDataSourceOptions?.timeFilter) {
|
|
102
|
+
this.setTimeFilter(timeFilterableDataSourceOptions.timeFilter, true);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
get params() {
|
|
106
|
+
return this.options.params;
|
|
107
|
+
}
|
|
108
|
+
get queryTitle() {
|
|
109
|
+
return this.options.queryTitle
|
|
110
|
+
? this.options.queryTitle
|
|
111
|
+
: 'title';
|
|
112
|
+
}
|
|
113
|
+
get mapLabel() {
|
|
114
|
+
return this.options.mapLabel;
|
|
115
|
+
}
|
|
116
|
+
get queryHtmlTarget() {
|
|
117
|
+
return this.options.queryHtmlTarget
|
|
118
|
+
? this.options.queryHtmlTarget
|
|
119
|
+
: QueryHtmlTarget.BLANK;
|
|
120
|
+
}
|
|
121
|
+
set ogcFilters(value) {
|
|
122
|
+
this.options.ogcFilters = value;
|
|
123
|
+
}
|
|
124
|
+
get ogcFilters() {
|
|
125
|
+
return this.options.ogcFilters;
|
|
126
|
+
}
|
|
127
|
+
set timeFilter(value) {
|
|
128
|
+
this.options.timeFilter = value;
|
|
129
|
+
}
|
|
130
|
+
get timeFilter() {
|
|
131
|
+
return this.options.timeFilter;
|
|
132
|
+
}
|
|
133
|
+
refresh() {
|
|
134
|
+
this.ol.updateParams({ igoRefresh: Math.random() });
|
|
135
|
+
}
|
|
136
|
+
buildDynamicDownloadUrlFromParamsWFS(asWFSDataSourceOptions) {
|
|
137
|
+
const queryStringValues = formatWFSQueryString(asWFSDataSourceOptions);
|
|
138
|
+
const downloadUrl = queryStringValues.find(f => f.name === 'getfeature')
|
|
139
|
+
.value;
|
|
140
|
+
return downloadUrl;
|
|
141
|
+
}
|
|
142
|
+
createOlSource() {
|
|
143
|
+
return new olSourceImageWMS(Object.assign({ ratio: 1 }, this.options));
|
|
144
|
+
}
|
|
145
|
+
setOgcFilters(ogcFilters, triggerEvent = false) {
|
|
146
|
+
this.ogcFilters = ogcFilters;
|
|
147
|
+
if (triggerEvent) {
|
|
148
|
+
this.ogcFilters$.next(this.ogcFilters);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
setTimeFilter(timeFilter, triggerEvent = false) {
|
|
152
|
+
this.timeFilter = timeFilter;
|
|
153
|
+
if (triggerEvent) {
|
|
154
|
+
this.timeFilter$.next(this.timeFilter);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
getLegend(style, view) {
|
|
158
|
+
let legend = super.getLegend();
|
|
159
|
+
if (legend.length > 0 && (style === undefined && !view?.scale)) {
|
|
160
|
+
return legend;
|
|
161
|
+
}
|
|
162
|
+
let contentDependent = false;
|
|
163
|
+
let projParam;
|
|
164
|
+
if (view?.size && view?.extent && view?.projection && this.options.contentDependentLegend) {
|
|
165
|
+
projParam = this.params.VERSION === '1.3.0' || this.params.VERSION === undefined ? 'CRS' : 'SRS';
|
|
166
|
+
contentDependent = true;
|
|
167
|
+
}
|
|
168
|
+
const sourceParams = this.params;
|
|
169
|
+
let layers = [];
|
|
170
|
+
if (sourceParams.LAYERS !== undefined) {
|
|
171
|
+
layers = sourceParams.LAYERS.split(',');
|
|
172
|
+
}
|
|
173
|
+
const baseUrl = this.options.url.replace(/\?$/, '');
|
|
174
|
+
const params = [
|
|
175
|
+
'REQUEST=GetLegendGraphic',
|
|
176
|
+
'SERVICE=WMS',
|
|
177
|
+
'FORMAT=image/png',
|
|
178
|
+
'SLD_VERSION=1.1.0',
|
|
179
|
+
`VERSION=${sourceParams.VERSION || '1.3.0'}`
|
|
180
|
+
];
|
|
181
|
+
if (style !== undefined) {
|
|
182
|
+
params.push(`STYLE=${style}`);
|
|
183
|
+
}
|
|
184
|
+
if (view?.scale !== undefined) {
|
|
185
|
+
params.push(`SCALE=${view.scale}`);
|
|
186
|
+
}
|
|
187
|
+
if (contentDependent) {
|
|
188
|
+
params.push(`WIDTH=${view.size[0]}`);
|
|
189
|
+
params.push(`HEIGHT=${view.size[1]}`);
|
|
190
|
+
params.push(`BBOX=${view.extent.join(',')}`);
|
|
191
|
+
params.push(`${projParam}=${view.projection}`);
|
|
192
|
+
}
|
|
193
|
+
legend = layers.map((layer) => {
|
|
194
|
+
const separator = baseUrl.match(/\?/) ? '&' : '?';
|
|
195
|
+
return {
|
|
196
|
+
url: `${baseUrl}${separator}${params.join('&')}&LAYER=${layer}`,
|
|
197
|
+
title: layers.length > 1 ? layer : undefined,
|
|
198
|
+
currentStyle: style === undefined ? undefined : style
|
|
199
|
+
};
|
|
200
|
+
});
|
|
201
|
+
return legend;
|
|
202
|
+
}
|
|
203
|
+
onUnwatch() { }
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCx3QkFBd0IsRUFDekIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBd0MzQyxZQUNTLE9BQTZCLEVBQzFCLFVBQXNCO1FBRWhDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFaekIsZ0JBQVcsR0FBdUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFRakYsZ0JBQVcsR0FBdUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFPeEYsTUFBTSxZQUFZLEdBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV6QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixZQUFZLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztR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b3VyY2VJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vd2ZzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLCBPZ2NGaWx0ZXJzT3B0aW9ucywgT2djRmlsdGVyRHVyaW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xyXG5pbXBvcnQge1xyXG4gIGZvcm1hdFdGU1F1ZXJ5U3RyaW5nLFxyXG4gIGNoZWNrV2ZzUGFyYW1zLFxyXG4gIGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeVxyXG59IGZyb20gJy4vd21zLXdmcy51dGlscyc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuaW1wb3J0IHsgTGVnZW5kTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLCBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBXTVNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIG9sOiBvbFNvdXJjZUltYWdlV01TO1xyXG5cclxuICBnZXQgcGFyYW1zKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtcyBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlcnlUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeVRpdGxlXHJcbiAgICAgID8gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcclxuICAgICAgOiAndGl0bGUnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLm1hcExhYmVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXJ5SHRtbFRhcmdldCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcclxuICAgICAgPyAodGhpcy5vcHRpb25zIGFzIGFueSkucXVlcnlIdG1sVGFyZ2V0XHJcbiAgICAgIDogUXVlcnlIdG1sVGFyZ2V0LkJMQU5LO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9nY0ZpbHRlcnModmFsdWU6IE9nY0ZpbHRlcnNPcHRpb25zKSB7XHJcbiAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgb2djRmlsdGVycygpOiBPZ2NGaWx0ZXJzT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBvZ2NGaWx0ZXJzJDogQmVoYXZpb3JTdWJqZWN0PE9nY0ZpbHRlcnNPcHRpb25zPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgc2V0IHRpbWVGaWx0ZXIodmFsdWU6IFRpbWVGaWx0ZXJPcHRpb25zICkge1xyXG4gICAgKHRoaXMub3B0aW9ucyBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS50aW1lRmlsdGVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCB0aW1lRmlsdGVyKCk6IFRpbWVGaWx0ZXJPcHRpb25zIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLnRpbWVGaWx0ZXI7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHRpbWVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8VGltZUZpbHRlck9wdGlvbnM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIHByb3RlY3RlZCB3ZnNTZXJ2aWNlOiBXRlNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIGNvbnN0IHNvdXJjZVBhcmFtczogYW55ID0gb3B0aW9ucy5wYXJhbXM7XHJcblxyXG4gICAgY29uc3QgZHBpID0gc291cmNlUGFyYW1zLkRQSSB8fCA5NjtcclxuICAgIHNvdXJjZVBhcmFtcy5EUEkgPSBkcGk7XHJcbiAgICBzb3VyY2VQYXJhbXMuTUFQX1JFU09MVVRJT04gPSBkcGk7XHJcbiAgICBzb3VyY2VQYXJhbXMuRk9STUFUX09QVElPTlMgPSAnZHBpOicgKyBkcGk7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMucmVmcmVzaEludGVydmFsU2VjICYmIG9wdGlvbnMucmVmcmVzaEludGVydmFsU2VjID4gMCkge1xyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH0sIG9wdGlvbnMucmVmcmVzaEludGVydmFsU2VjICogMTAwMCk7IC8vIENvbnZlcnQgc2Vjb25kcyB0byBNU1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmaWVsZE5hbWVHZW9tZXRyeSA9IGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeTtcclxuXHJcbiAgICAvLyAjIyMjICAgU1RBUlQgaWYgcGFyYW1zV0ZTXHJcbiAgICBpZiAob3B0aW9ucy5wYXJhbXNXRlMpIHtcclxuICAgICAgY29uc3Qgd2ZzQ2hlY2t1cCA9IGNoZWNrV2ZzUGFyYW1zKG9wdGlvbnMsICd3bXMnKTtcclxuICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMucGFyYW1zV0ZTLCB3ZnNDaGVja3VwLnBhcmFtc1dGUyk7XHJcblxyXG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9XHJcbiAgICAgICAgb3B0aW9ucy5wYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnkgfHwgZmllbGROYW1lR2VvbWV0cnk7XHJcblxyXG4gICAgICBvcHRpb25zLmRvd25sb2FkID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5kb3dubG9hZCwge1xyXG4gICAgICAgIGR5bmFtaWNVcmw6IHRoaXMuYnVpbGREeW5hbWljRG93bmxvYWRVcmxGcm9tUGFyYW1zV0ZTKG9wdGlvbnMpXHJcbiAgICAgIH0pO1xyXG4gICAgfSAvLyAgIyMjIyAgIEVORCAgaWYgcGFyYW1zV0ZTXHJcblxyXG4gICAgaWYgKCFvcHRpb25zLnNvdXJjZUZpZWxkcyB8fCBvcHRpb25zLnNvdXJjZUZpZWxkcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgb3B0aW9ucy5zb3VyY2VGaWVsZHMgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goc291cmNlRmllbGQgPT4ge1xyXG4gICAgICAgIHNvdXJjZUZpZWxkLmFsaWFzID0gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgID8gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgIDogc291cmNlRmllbGQubmFtZTtcclxuICAgICAgICAvLyB0byBhbGxvdyBvbmx5IGEgbGlzdCBvZiBzb3VyY2VmaWVsZCB3aXRoIG5hbWVzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5pdE9nY0ZpbHRlcnMgPSAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpXHJcbiAgICAgIC5vZ2NGaWx0ZXJzO1xyXG4gICAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG5cclxuICAgIGlmICghaW5pdE9nY0ZpbHRlcnMpIHtcclxuICAgICAgKG9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzID0gb2djRmlsdGVyV3JpdGVyLmRlZmluZU9nY0ZpbHRlcnNEZWZhdWx0T3B0aW9ucyhcclxuICAgICAgICBpbml0T2djRmlsdGVycyxcclxuICAgICAgICBmaWVsZE5hbWVHZW9tZXRyeSxcclxuICAgICAgICAnd21zJ1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gKGluaXRPZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8IGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXNcclxuICAgICAgICB8fCBpbml0T2djRmlsdGVycy5yYWRpb0J1dHRvbnMgfHwgaW5pdE9nY0ZpbHRlcnMuc2VsZWN0IHx8IGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSlcclxuICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgOiB0cnVlO1xyXG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzICYmIGluaXRPZ2NGaWx0ZXJzLmZpbHRlcnMpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbHRlckR1cmluZyA9IGluaXRPZ2NGaWx0ZXJzLmZpbHRlcnMgYXMgT2djRmlsdGVyRHVyaW5nT3B0aW9ucztcclxuICAgICAgICAgIGlmKGZpbHRlckR1cmluZy5jYWxlbmRhck1vZGVZZWFyKSB7XHJcbiAgICAgICAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5wdXNoQnV0dG9ucyl7XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuc2VsZWN0b3JUeXBlID0gJ3B1c2hCdXR0b24nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5jaGVja2JveGVzKXtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzLnNlbGVjdG9yVHlwZSA9ICdjaGVja2JveCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyl7XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLnNlbGVjdG9yVHlwZSA9ICdyYWRpb0J1dHRvbic7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnNlbGVjdCl7XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuc2VsZWN0LnNlbGVjdG9yVHlwZSA9ICdzZWxlY3QnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5hdXRvY29tcGxldGUpe1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZS5zZWxlY3RvclR5cGUgPSAnYXV0b2NvbXBsZXRlJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpLmxlbmd0aCA+IDEgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZW5hYmxlZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICdCRSBDQVJFRlVMTCwgWU9VUiBXTVMgTEFZRVJTICgnICtcclxuICAgICAgICAgIHNvdXJjZVBhcmFtcy5MQVlFUlMgK1xyXG4gICAgICAgICAgJykgTVVTVCBTSEFSRSBUSEUgU0FNRSBGSUVMRFMgVE8gQUxMT1cgb2djRmlsdGVycyBUTyBXT1JLICEhICdcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coJyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKionKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIG9wdGlvbnMucGFyYW1zV0ZTICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZWRpdGFibGUgJiZcclxuICAgICAgKG9wdGlvbnMuc291cmNlRmllbGRzIHx8IFtdKS5maWx0ZXIoc2YgPT4gIXNmLnZhbHVlcykubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLndmc1NlcnZpY2UuZ2V0U291cmNlRmllbGRzRnJvbVdGUyhvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJRdWVyeVN0cmluZyA9IG9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeVxyXG4gICAgKTtcclxuICAgIHNvdXJjZVBhcmFtcy5GSUxURVIgPSBmaWx0ZXJRdWVyeVN0cmluZztcclxuICAgIHRoaXMuc2V0T2djRmlsdGVycyhpbml0T2djRmlsdGVycywgdHJ1ZSk7XHJcblxyXG4gICAgY29uc3QgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyA9IChvcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zPy50aW1lRmlsdGVyYWJsZSAmJlxyXG4gICAgICB0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zPy50aW1lRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuc2V0VGltZUZpbHRlcih0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLnRpbWVGaWx0ZXIsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMub2wudXBkYXRlUGFyYW1zKHsgaWdvUmVmcmVzaDogTWF0aC5yYW5kb20oKSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREeW5hbWljRG93bmxvYWRVcmxGcm9tUGFyYW1zV0ZTKGFzV0ZTRGF0YVNvdXJjZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nVmFsdWVzID0gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoYXNXRlNEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoZiA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJylcclxuICAgICAgLnZhbHVlO1xyXG4gICAgcmV0dXJuIGRvd25sb2FkVXJsO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlSW1hZ2VXTVMge1xyXG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZUltYWdlV01TKE9iamVjdC5hc3NpZ24oe3JhdGlvOiAxfSwgdGhpcy5vcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICBzZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5vZ2NGaWx0ZXJzID0gb2djRmlsdGVycztcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy5vZ2NGaWx0ZXJzJC5uZXh0KHRoaXMub2djRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lRmlsdGVyKHRpbWVGaWx0ZXI6IFRpbWVGaWx0ZXJPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyID0gdGltZUZpbHRlcjtcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy50aW1lRmlsdGVyJC5uZXh0KHRoaXMudGltZUZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMZWdlbmQoc3R5bGU/OiBzdHJpbmcsIHZpZXc/OiBMZWdlbmRNYXBWaWV3T3B0aW9ucyk6IExlZ2VuZFtdIHtcclxuICAgIGxldCBsZWdlbmQgPSBzdXBlci5nZXRMZWdlbmQoKTtcclxuICAgIGlmIChsZWdlbmQubGVuZ3RoID4gMCAmJiAoc3R5bGUgPT09IHVuZGVmaW5lZCAmJiAhdmlldz8uc2NhbGUpKSB7XHJcbiAgICAgIHJldHVybiBsZWdlbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbnRlbnREZXBlbmRlbnQgPSBmYWxzZTtcclxuICAgIGxldCBwcm9qUGFyYW07XHJcblxyXG4gICAgaWYgKHZpZXc/LnNpemUgJiYgdmlldz8uZXh0ZW50ICYmIHZpZXc/LnByb2plY3Rpb24gJiYgdGhpcy5vcHRpb25zLmNvbnRlbnREZXBlbmRlbnRMZWdlbmQpIHtcclxuICAgICAgcHJvalBhcmFtID0gdGhpcy5wYXJhbXMuVkVSU0lPTiA9PT0gJzEuMy4wJyB8fCB0aGlzLnBhcmFtcy5WRVJTSU9OID09PSB1bmRlZmluZWQgPyAnQ1JTJyA6ICdTUlMnO1xyXG4gICAgICBjb250ZW50RGVwZW5kZW50ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzb3VyY2VQYXJhbXMgPSB0aGlzLnBhcmFtcztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gW107XHJcbiAgICBpZiAoc291cmNlUGFyYW1zLkxBWUVSUyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxheWVycyA9IHNvdXJjZVBhcmFtcy5MQVlFUlMuc3BsaXQoJywnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5vcHRpb25zLnVybC5yZXBsYWNlKC9cXD8kLywgJycpO1xyXG4gICAgY29uc3QgcGFyYW1zID0gW1xyXG4gICAgICAnUkVRVUVTVD1HZXRMZWdlbmRHcmFwaGljJyxcclxuICAgICAgJ1NFUlZJQ0U9V01TJyxcclxuICAgICAgJ0ZPUk1BVD1pbWFnZS9wbmcnLFxyXG4gICAgICAnU0xEX1ZFUlNJT049MS4xLjAnLFxyXG4gICAgICBgVkVSU0lPTj0ke3NvdXJjZVBhcmFtcy5WRVJTSU9OIHx8ICcxLjMuMCd9YFxyXG4gICAgXTtcclxuICAgIGlmIChzdHlsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHBhcmFtcy5wdXNoKGBTVFlMRT0ke3N0eWxlfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKHZpZXc/LnNjYWxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFNDQUxFPSR7dmlldy5zY2FsZX1gKTtcclxuICAgIH1cclxuICAgIGlmIChjb250ZW50RGVwZW5kZW50KSB7XHJcbiAgICAgIHBhcmFtcy5wdXNoKGBXSURUSD0ke3ZpZXcuc2l6ZVswXX1gKTtcclxuICAgICAgcGFyYW1zLnB1c2goYEhFSUdIVD0ke3ZpZXcuc2l6ZVsxXX1gKTtcclxuICAgICAgcGFyYW1zLnB1c2goYEJCT1g9JHt2aWV3LmV4dGVudC5qb2luKCcsJyl9YCk7XHJcbiAgICAgIHBhcmFtcy5wdXNoKGAke3Byb2pQYXJhbX09JHt2aWV3LnByb2plY3Rpb259YCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGVnZW5kID0gbGF5ZXJzLm1hcCgobGF5ZXI6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBzZXBhcmF0b3IgPSBiYXNlVXJsLm1hdGNoKC9cXD8vKSA/ICcmJyA6ICc/JztcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB1cmw6IGAke2Jhc2VVcmx9JHtzZXBhcmF0b3J9JHtwYXJhbXMuam9pbignJicpfSZMQVlFUj0ke2xheWVyfWAsXHJcbiAgICAgICAgdGl0bGU6IGxheWVycy5sZW5ndGggPiAxID8gbGF5ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgY3VycmVudFN0eWxlOiBzdHlsZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc3R5bGUgYXMgc3RyaW5nXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbGVnZW5kO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVW53YXRjaCgpIHt9XHJcbn1cclxuIl19
|