@igo2/geo 16.0.0-rc.0 → 16.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -7
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +7 -7
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +6 -6
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +5 -5
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +13 -13
- package/esm2022/lib/catalog/catalog.module.mjs +3 -3
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +7 -8
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/datasource/datasource.module.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -10
- package/esm2022/lib/datasource/shared/datasource.service.mjs +9 -9
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -4
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +4 -19
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +7 -7
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2022/lib/datasource/utils/tilegrid.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +5 -5
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +4 -4
- package/esm2022/lib/directions/directions.component.mjs +50 -25
- package/esm2022/lib/directions/directions.module.mjs +10 -6
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +10 -11
- package/esm2022/lib/directions/shared/directions.utils.mjs +7 -7
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download.module.mjs +2 -2
- package/esm2022/lib/download/shared/download.service.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +9 -9
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
- package/esm2022/lib/draw/draw/draw.component.mjs +28 -28
- package/esm2022/lib/draw/draw/draw.module.mjs +15 -15
- package/esm2022/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +6 -6
- package/esm2022/lib/environment/environment.interface.mjs +2 -0
- package/esm2022/lib/environment/index.mjs +2 -0
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +8 -8
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +2 -2
- package/esm2022/lib/feature/feature.module.mjs +2 -2
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +7 -7
- package/esm2022/lib/feature/shared/store.mjs +3 -3
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +4 -4
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +10 -22
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +5 -2
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +2 -2
- package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -5
- package/esm2022/lib/feature/shared/strategies.utils.mjs +2 -2
- package/esm2022/lib/filter/filter.module.mjs +21 -21
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +5 -5
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +8 -8
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +6 -6
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +5 -5
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +24 -4
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +5 -5
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +2 -2
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.service.mjs +2 -2
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +14 -14
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +7 -7
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geo.module.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +8 -8
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +3 -3
- package/esm2022/lib/geometry/geometry.module.mjs +2 -2
- package/esm2022/lib/geometry/shared/controls/draw.mjs +6 -6
- package/esm2022/lib/geometry/shared/controls/modify.mjs +8 -8
- package/esm2022/lib/geometry/shared/controls/slice.mjs +2 -2
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +5 -5
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -4
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +38 -38
- package/esm2022/lib/import-export/import-export.module.mjs +3 -3
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +10 -21
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +4 -4
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +4 -4
- package/esm2022/lib/import-export/shared/import.utils.mjs +5 -5
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +7 -7
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +2 -2
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +9 -9
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
- package/esm2022/lib/layer/layer.module.mjs +9 -9
- package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +11 -11
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +44 -33
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
- package/esm2022/lib/layer/utils/image-watcher.mjs +2 -2
- package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
- package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +2 -2
- package/esm2022/lib/layer/utils/vector-watcher.mjs +2 -2
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +2 -2
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +3 -3
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +8 -10
- package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/index.mjs +2 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +2 -2
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +2 -2
- package/esm2022/lib/map/map-center/map-center.component.mjs +2 -2
- package/esm2022/lib/map/map.module.mjs +14 -14
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +9 -20
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +2 -2
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
- package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +8 -8
- package/esm2022/lib/map/shared/controllers/view.mjs +3 -3
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +15 -15
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +2 -2
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.interface.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +9 -6
- package/esm2022/lib/map/shared/map.utils.mjs +3 -3
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +3 -3
- package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +3 -3
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +3 -3
- package/esm2022/lib/map/utils/layer-watcher.mjs +2 -2
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +4 -4
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +2 -2
- package/esm2022/lib/measure/measure.module.mjs +1 -1
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +2 -2
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer.component.mjs +11 -11
- package/esm2022/lib/measure/measurer/measurer.module.mjs +6 -6
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +7 -7
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +4 -4
- package/esm2022/lib/metadata/metadata.module.mjs +4 -4
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +3 -3
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +2 -2
- package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -8
- package/esm2022/lib/overlay/overlay.module.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
- package/esm2022/lib/print/print.module.mjs +4 -4
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +9 -9
- package/esm2022/lib/query/query.module.mjs +3 -3
- package/esm2022/lib/query/shared/query-search-source.mjs +2 -2
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +7 -7
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +10 -10
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +2 -2
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +2 -2
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +15 -15
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results.component.mjs +7 -7
- package/esm2022/lib/search/search-results/search-results.module.mjs +11 -11
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +2 -2
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +3 -3
- package/esm2022/lib/search/search.module.mjs +8 -8
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +14 -14
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +2 -2
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +3 -3
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +7 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +11 -11
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +3 -3
- package/esm2022/lib/search/shared/sources/icherche.mjs +6 -6
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +3 -3
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +8 -8
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/nominatim.mjs +6 -6
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -7
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +6 -6
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +2 -2
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +2 -2
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +2 -2
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +2 -2
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +2 -2
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +24 -33
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +17 -25
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +2 -2
- package/esm2022/lib/style/style-service/style.service.mjs +3 -3
- package/esm2022/lib/style/style.module.mjs +4 -4
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +3 -3
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +2 -2
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +2 -2
- package/esm2022/lib/wkt/wkt.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +2 -2
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +10 -15
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +7 -7
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +6 -6
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +6 -6
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +2 -2
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -7
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +2 -2
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +5 -5
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +2 -2
- package/esm2022/lib/workspace/workspace.module.mjs +4 -4
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/igo2-geo.mjs +34336 -34355
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/geo-theme.scss +23 -21
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -3
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -2
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -3
- package/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -0
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/catalog/catalog.theming.scss +5 -0
- package/lib/catalog/shared/catalog.abstract.d.ts +2 -2
- package/lib/catalog/shared/catalog.enum.d.ts +4 -0
- package/lib/catalog/shared/catalog.interface.d.ts +10 -5
- package/lib/catalog/shared/catalog.service.d.ts +2 -2
- package/lib/datasource/shared/capabilities.service.d.ts +2 -2
- package/lib/datasource/shared/datasource.service.d.ts +6 -6
- package/lib/datasource/shared/datasources/any-datasource.d.ts +11 -11
- package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +10 -10
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -2
- package/lib/datasource/shared/datasources/carto-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/cluster-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/datasource.d.ts +4 -4
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +3 -4
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/wfs.service.d.ts +1 -1
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +5 -5
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +4 -3
- package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
- package/lib/datasource/shared/options/options-api.service.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +2 -2
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +3 -3
- package/lib/directions/directions-sources/directions-source.interface.d.ts +12 -8
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +11 -3
- package/lib/directions/directions.module.d.ts +5 -4
- package/lib/directions/directions.theming.scss +6 -6
- package/lib/directions/shared/directions.interface.d.ts +1 -1
- package/lib/directions/shared/directions.service.d.ts +5 -5
- package/lib/directions/shared/directions.utils.d.ts +3 -3
- package/lib/draw/draw/draw-popup.component.d.ts +3 -3
- package/lib/draw/draw/draw.component.d.ts +12 -12
- package/lib/draw/draw.theming.scss +32 -32
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/draw/shared/draw.interface.d.ts +3 -3
- package/lib/draw/shared/draw.utils.d.ts +4 -4
- package/lib/environment/environment.interface.d.ts +48 -0
- package/lib/environment/index.d.ts +1 -0
- package/lib/feature/feature-details/feature-details.component.d.ts +6 -6
- package/lib/feature/feature-details/feature-details.directive.d.ts +2 -2
- package/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
- package/lib/feature/shared/feature.interfaces.d.ts +5 -5
- package/lib/feature/shared/feature.utils.d.ts +4 -4
- package/lib/feature/shared/store.d.ts +1 -1
- package/lib/feature/shared/strategies/geo-properties.d.ts +2 -2
- package/lib/feature/shared/strategies/in-map-extent.d.ts +1 -1
- package/lib/feature/shared/strategies/in-map-resolution.d.ts +1 -1
- package/lib/feature/shared/strategies/loading-layer.d.ts +1 -1
- package/lib/feature/shared/strategies/search.d.ts +1 -1
- package/lib/feature/shared/strategies/selection.d.ts +2 -2
- package/lib/feature/shared/strategies.utils.d.ts +1 -1
- package/lib/filter/filter.theming.scss +0 -3
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +5 -5
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
- 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 +1 -1
- 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 +2 -2
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/shared/ogc-filter.d.ts +5 -4
- package/lib/filter/shared/ogc-filter.interface.d.ts +3 -3
- package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
- package/lib/filter/shared/time-filter.interface.d.ts +1 -1
- package/lib/filter/shared/time-filter.service.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +13 -13
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +6 -6
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +2 -2
- package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +2 -2
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +4 -4
- package/lib/geometry/shared/controls/draw.d.ts +4 -4
- package/lib/geometry/shared/controls/modify.d.ts +4 -4
- package/lib/geometry/shared/controls/slice.d.ts +3 -3
- package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
- package/lib/geometry/shared/geometry.utils.d.ts +2 -2
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +14 -14
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +6 -6
- package/lib/import-export/shared/export.interface.d.ts +1 -1
- package/lib/import-export/shared/export.service.d.ts +2 -2
- package/lib/import-export/shared/import.interface.d.ts +1 -0
- package/lib/import-export/shared/import.utils.d.ts +3 -3
- package/lib/layer/layer-item/layer-item.component.d.ts +2 -2
- package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -3
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +2 -2
- 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 +2 -2
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +2 -2
- package/lib/layer/layer-list/layer-list.component.d.ts +5 -5
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/layer.theming.scss +0 -7
- package/lib/layer/shared/layer.service.d.ts +5 -5
- package/lib/layer/shared/layers/any-layer.d.ts +1 -1
- package/lib/layer/shared/layers/any-layer.interface.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +5 -5
- package/lib/layer/shared/layers/image-layer.interface.d.ts +3 -3
- package/lib/layer/shared/layers/layer.d.ts +6 -6
- package/lib/layer/shared/layers/layer.interface.d.ts +2 -2
- package/lib/layer/shared/layers/tile-layer.d.ts +6 -6
- package/lib/layer/shared/layers/tile-layer.interface.d.ts +8 -8
- package/lib/layer/shared/layers/vector-layer.d.ts +18 -11
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +13 -13
- package/lib/layer/shared/layers/vectortile-layer.d.ts +3 -3
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +4 -4
- package/lib/layer/utils/image-watcher.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.interface.d.ts +6 -0
- package/lib/map/home-extent-button/index.d.ts +1 -0
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.theming.scss +46 -46
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.theming.scss +20 -24
- package/lib/map/shared/controllers/controller.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +5 -5
- package/lib/map/shared/controllers/geolocation.interface.d.ts +8 -0
- package/lib/map/shared/controllers/view.d.ts +2 -2
- package/lib/map/shared/hover-feature.directive.d.ts +8 -8
- package/lib/map/shared/map-pointer-position.directive.d.ts +2 -2
- package/lib/map/shared/map.abstract.d.ts +5 -5
- package/lib/map/shared/map.d.ts +14 -10
- package/lib/map/shared/mapOffline.directive.d.ts +2 -2
- package/lib/map/shared/projection.interfaces.d.ts +1 -3
- package/lib/map/utils/layer-watcher.d.ts +2 -2
- package/lib/map/zoom-button/zoom-button.theming.scss +32 -32
- 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 +5 -5
- package/lib/measure/shared/measure.utils.d.ts +5 -5
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +1 -1
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/shared/geo-network.service.d.ts +2 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/overlay/shared/overlay.directive.d.ts +2 -2
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +2 -2
- package/lib/print/shared/print.interface.d.ts +1 -1
- package/lib/print/shared/print.service.d.ts +2 -2
- package/lib/query/shared/query.directive.d.ts +4 -4
- package/lib/query/shared/query.interfaces.d.ts +3 -3
- package/lib/query/shared/query.service.d.ts +3 -3
- package/lib/search/search-bar/search-bar.component.d.ts +5 -5
- package/lib/search/search-bar/search-bar.theming.scss +36 -36
- package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
- package/lib/search/search-results/save-feature-dialog.component.d.ts +3 -3
- package/lib/search/search-results/search-results-add-button.component.d.ts +7 -7
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +4 -4
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +2 -2
- package/lib/search/search.theming.scss +5 -5
- package/lib/search/shared/search-pointer-summary.directive.d.ts +5 -5
- package/lib/search/shared/search-source-service.providers.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/search.service.d.ts +2 -2
- package/lib/search/shared/search.utils.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.d.ts +5 -5
- package/lib/search/shared/sources/coordinates.providers.d.ts +2 -2
- package/lib/search/shared/sources/icherche.d.ts +4 -4
- package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
- package/lib/search/shared/sources/source.d.ts +2 -2
- package/lib/search/shared/sources/storedqueries.d.ts +4 -4
- package/lib/search/shared/sources/storedqueries.providers.d.ts +1 -1
- package/lib/search/shared/sources/workspace.d.ts +1 -1
- package/lib/style/shared/feature/feature-style.d.ts +2 -2
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +1 -1
- package/lib/style/shared/vector/conversion.utils.d.ts +1 -1
- package/lib/style/shared/vector/vector-style.interface.d.ts +6 -1
- package/lib/style/style-list/style-list.provider.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +3 -3
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +3 -3
- package/lib/style/style-service/draw-style.service.d.ts +1 -1
- package/lib/style/style-service/style.service.d.ts +3 -3
- package/lib/utils/id-generator.d.ts +2 -2
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/lib/workspace/shared/edition-workspace.d.ts +7 -9
- package/lib/workspace/shared/edition-workspace.service.d.ts +5 -5
- package/lib/workspace/shared/feature-workspace.service.d.ts +3 -3
- package/lib/workspace/shared/wfs-workspace.service.d.ts +3 -3
- package/lib/workspace/shared/wms-workspace.service.d.ts +4 -4
- package/lib/workspace/shared/workspace.utils.d.ts +4 -4
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +4 -4
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +3 -3
- package/lib/workspace/workspace.theming.scss +6 -6
- package/locale/en.geo.json +11 -4
- package/locale/fr.geo.json +11 -4
- package/package.json +5 -5
- package/public_api.d.ts +1 -0
- package/style/style.css +0 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +0 -15
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { ObjectUtils } from '@igo2/utils';
|
|
1
2
|
import olSourceImageWMS from 'ol/source/ImageWMS';
|
|
2
|
-
import {
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
4
|
import { OgcFilterWriter } from '../../../filter/shared/ogc-filter';
|
|
4
5
|
import { QueryHtmlTarget } from '../../../query/shared/query.enums';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { DataSource } from './datasource';
|
|
7
|
+
import { checkWfsParams, defaultFieldNameGeometry, formatWFSQueryString } from './wms-wfs.utils';
|
|
8
8
|
export class WMSDataSource extends DataSource {
|
|
9
9
|
options;
|
|
10
10
|
wfsService;
|
|
@@ -215,4 +215,4 @@ export class WMSDataSource extends DataSource {
|
|
|
215
215
|
}
|
|
216
216
|
onUnwatch() { }
|
|
217
217
|
}
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFRMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCx3QkFBd0IsRUFDekIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFXdkMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBd0NsQztJQUNHO0lBdENaLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFhLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQVEsSUFBSSxDQUFDLE9BQWUsQ0FBQyxVQUFVO1lBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFRLElBQUksQ0FBQyxPQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBUSxJQUFJLENBQUMsT0FBZSxDQUFDLGVBQWU7WUFDMUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsZUFBZTtZQUN2QyxDQUFD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SyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2xELE9BQU87Z0JBQ0wsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssRUFBRTtnQkFDL0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzVDLFlBQVksRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLEtBQWdCO2FBQ2xFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLEtBQUksQ0FBQztDQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG59IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vd2ZzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHtcclxuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgT2djRmlsdGVyc09wdGlvbnMsXHJcbiAgT2djRmlsdGVyRHVyaW5nT3B0aW9uc1xyXG59IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xyXG5pbXBvcnQge1xyXG4gIGZvcm1hdFdGU1F1ZXJ5U3RyaW5nLFxyXG4gIGNoZWNrV2ZzUGFyYW1zLFxyXG4gIGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeVxyXG59IGZyb20gJy4vd21zLXdmcy51dGlscyc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuaW1wb3J0IHsgTGVnZW5kTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xlZ2VuZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UgZXh0ZW5kcyBXTVNEYXRhU291cmNlIHtcclxuICBvcHRpb25zOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zO1xyXG4gIHRpbWVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8VGltZUZpbHRlck9wdGlvbnM+O1xyXG4gIHNldFRpbWVGaWx0ZXIob2djRmlsdGVyczogVGltZUZpbHRlck9wdGlvbnMsIHRyaWdnZXJFdmVudD86IGJvb2xlYW4pO1xyXG4gIGZpbHRlckJ5RGF0ZShkYXRlOiBEYXRlIHwgW0RhdGUsIERhdGVdKTtcclxuICBmaWx0ZXJCeVllYXIoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXTVNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sU291cmNlSW1hZ2VXTVM7XHJcblxyXG4gIGdldCBwYXJhbXMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zIGFzIGFueTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVyeVRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcclxuICAgICAgPyAodGhpcy5vcHRpb25zIGFzIGFueSkucXVlcnlUaXRsZVxyXG4gICAgICA6ICd0aXRsZSc7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFwTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIGFueSkubWFwTGFiZWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlcnlIdG1sVGFyZ2V0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5SHRtbFRhcmdldFxyXG4gICAgICA/ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcclxuICAgICAgOiBRdWVyeUh0bWxUYXJnZXQuQkxBTks7XHJcbiAgfVxyXG5cclxuICBzZXQgb2djRmlsdGVycyh2YWx1ZTogT2djRmlsdGVyc09wdGlvbnMpIHtcclxuICAgICh0aGlzLm9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBvZ2NGaWx0ZXJzKCk6IE9nY0ZpbHRlcnNPcHRpb25zIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycztcclxuICB9XHJcblxyXG4gIHNldCB0aW1lRmlsdGVyKHZhbHVlOiBUaW1lRmlsdGVyT3B0aW9ucykge1xyXG4gICAgKHRoaXMub3B0aW9ucyBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS50aW1lRmlsdGVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCB0aW1lRmlsdGVyKCk6IFRpbWVGaWx0ZXJPcHRpb25zIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLnRpbWVGaWx0ZXI7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHRpbWVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8VGltZUZpbHRlck9wdGlvbnM+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgd2ZzU2VydmljZTogV0ZTU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICBjb25zdCBzb3VyY2VQYXJhbXM6IGFueSA9IG9wdGlvbnMucGFyYW1zO1xyXG5cclxuICAgIGNvbnN0IGRwaSA9IHNvdXJjZVBhcmFtcy5EUEkgfHwgOTY7XHJcbiAgICBzb3VyY2VQYXJhbXMuRFBJID0gZHBpO1xyXG4gICAgc291cmNlUGFyYW1zLk1BUF9SRVNPTFVUSU9OID0gZHBpO1xyXG4gICAgc291cmNlUGFyYW1zLkZPUk1BVF9PUFRJT05TID0gJ2RwaTonICsgZHBpO1xyXG5cclxuICAgIGlmIChvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAmJiBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyA+IDApIHtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9LCBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAqIDEwMDApOyAvLyBDb252ZXJ0IHNlY29uZHMgdG8gTVNcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnkgPSBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcblxyXG4gICAgLy8gIyMjIyAgIFNUQVJUIGlmIHBhcmFtc1dGU1xyXG4gICAgaWYgKG9wdGlvbnMucGFyYW1zV0ZTKSB7XHJcbiAgICAgIGNvbnN0IHdmc0NoZWNrdXAgPSBjaGVja1dmc1BhcmFtcyhvcHRpb25zLCAnd21zJyk7XHJcbiAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLnBhcmFtc1dGUywgd2ZzQ2hlY2t1cC5wYXJhbXNXRlMpO1xyXG5cclxuICAgICAgZmllbGROYW1lR2VvbWV0cnkgPVxyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5IHx8IGZpZWxkTmFtZUdlb21ldHJ5O1xyXG5cclxuICAgICAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHtcclxuICAgICAgICBkeW5hbWljVXJsOiB0aGlzLmJ1aWxkRHluYW1pY0Rvd25sb2FkVXJsRnJvbVBhcmFtc1dGUyhvcHRpb25zKVxyXG4gICAgICB9KTtcclxuICAgIH0gLy8gICMjIyMgICBFTkQgIGlmIHBhcmFtc1dGU1xyXG5cclxuICAgIGlmICghb3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgb3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMuc291cmNlRmllbGRzID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRpb25zLnNvdXJjZUZpZWxkcy5mb3JFYWNoKChzb3VyY2VGaWVsZCkgPT4ge1xyXG4gICAgICAgIHNvdXJjZUZpZWxkLmFsaWFzID0gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgID8gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgIDogc291cmNlRmllbGQubmFtZTtcclxuICAgICAgICAvLyB0byBhbGxvdyBvbmx5IGEgbGlzdCBvZiBzb3VyY2VmaWVsZCB3aXRoIG5hbWVzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5pdE9nY0ZpbHRlcnMgPSAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpXHJcbiAgICAgIC5vZ2NGaWx0ZXJzO1xyXG4gICAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG5cclxuICAgIGlmICghaW5pdE9nY0ZpbHRlcnMpIHtcclxuICAgICAgKG9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzID1cclxuICAgICAgICBvZ2NGaWx0ZXJXcml0ZXIuZGVmaW5lT2djRmlsdGVyc0RlZmF1bHRPcHRpb25zKFxyXG4gICAgICAgICAgaW5pdE9nY0ZpbHRlcnMsXHJcbiAgICAgICAgICBmaWVsZE5hbWVHZW9tZXRyeSxcclxuICAgICAgICAgICd3bXMnXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMgfHxcclxuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzIHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zIHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuc2VsZWN0IHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRydWU7XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgJiYgaW5pdE9nY0ZpbHRlcnMuZmlsdGVycykge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckR1cmluZyA9IGluaXRPZ2NGaWx0ZXJzLmZpbHRlcnMgYXMgT2djRmlsdGVyRHVyaW5nT3B0aW9ucztcclxuICAgICAgICBpZiAoZmlsdGVyRHVyaW5nLmNhbGVuZGFyTW9kZVllYXIpIHtcclxuICAgICAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5wdXNoQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncHVzaEJ1dHRvbic7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXMpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzLnNlbGVjdG9yVHlwZSA9ICdjaGVja2JveCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucykge1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncmFkaW9CdXR0b24nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5zZWxlY3QpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5zZWxlY3Quc2VsZWN0b3JUeXBlID0gJ3NlbGVjdCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSkge1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZS5zZWxlY3RvclR5cGUgPSAnYXV0b2NvbXBsZXRlJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpLmxlbmd0aCA+IDEgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZW5hYmxlZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICdCRSBDQVJFRlVMTCwgWU9VUiBXTVMgTEFZRVJTICgnICtcclxuICAgICAgICAgIHNvdXJjZVBhcmFtcy5MQVlFUlMgK1xyXG4gICAgICAgICAgJykgTVVTVCBTSEFSRSBUSEUgU0FNRSBGSUVMRFMgVE8gQUxMT1cgb2djRmlsdGVycyBUTyBXT1JLICEhICdcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coJyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKionKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIG9wdGlvbnMucGFyYW1zV0ZTICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZWRpdGFibGUgJiZcclxuICAgICAgKG9wdGlvbnMuc291cmNlRmllbGRzIHx8IFtdKS5maWx0ZXIoKHNmKSA9PiAhc2YudmFsdWVzKS5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy53ZnNTZXJ2aWNlLmdldFNvdXJjZUZpZWxkc0Zyb21XRlMob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyUXVlcnlTdHJpbmcgPSBvZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgZmllbGROYW1lR2VvbWV0cnlcclxuICAgICk7XHJcbiAgICBzb3VyY2VQYXJhbXMuRklMVEVSID0gZmlsdGVyUXVlcnlTdHJpbmc7XHJcbiAgICB0aGlzLm9sLnVwZGF0ZVBhcmFtcyh7IEZJTFRFUjogc291cmNlUGFyYW1zLkZJTFRFUiB9KTtcclxuICAgIHRoaXMuc2V0T2djRmlsdGVycyhpbml0T2djRmlsdGVycywgdHJ1ZSk7XHJcblxyXG4gICAgY29uc3QgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgICAgIG9wdGlvbnMgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcclxuICAgIGlmIChcclxuICAgICAgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucz8udGltZUZpbHRlcmFibGUgJiZcclxuICAgICAgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucz8udGltZUZpbHRlclxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2V0VGltZUZpbHRlcih0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLnRpbWVGaWx0ZXIsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMub2wudXBkYXRlUGFyYW1zKHsgaWdvUmVmcmVzaDogTWF0aC5yYW5kb20oKSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREeW5hbWljRG93bmxvYWRVcmxGcm9tUGFyYW1zV0ZTKGFzV0ZTRGF0YVNvdXJjZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nVmFsdWVzID0gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoYXNXRlNEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoXHJcbiAgICAgIChmKSA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJ1xyXG4gICAgKS52YWx1ZTtcclxuICAgIHJldHVybiBkb3dubG9hZFVybDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZUltYWdlV01TIHtcclxuICAgIHJldHVybiBuZXcgb2xTb3VyY2VJbWFnZVdNUyhPYmplY3QuYXNzaWduKHsgcmF0aW86IDEgfSwgdGhpcy5vcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICBzZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5vZ2NGaWx0ZXJzID0gb2djRmlsdGVycztcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy5vbC5ub3RpZnkoJ29nY0ZpbHRlcnMnLCB0aGlzLm9nY0ZpbHRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGltZUZpbHRlcih0aW1lRmlsdGVyOiBUaW1lRmlsdGVyT3B0aW9ucywgdHJpZ2dlckV2ZW50OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMudGltZUZpbHRlciA9IHRpbWVGaWx0ZXI7XHJcbiAgICBpZiAodHJpZ2dlckV2ZW50KSB7XHJcbiAgICAgIHRoaXMudGltZUZpbHRlciQubmV4dCh0aGlzLnRpbWVGaWx0ZXIpO1xyXG4gICAgICB0aGlzLm9sLm5vdGlmeSgndGltZUZpbHRlcicsIHRoaXMub2djRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMZWdlbmQoc3R5bGU/OiBzdHJpbmcsIHZpZXc/OiBMZWdlbmRNYXBWaWV3T3B0aW9ucyk6IExlZ2VuZFtdIHtcclxuICAgIGxldCBsZWdlbmQgPSBzdXBlci5nZXRMZWdlbmQoKTtcclxuICAgIGlmIChsZWdlbmQubGVuZ3RoID4gMCAmJiBzdHlsZSA9PT0gdW5kZWZpbmVkICYmICF2aWV3Py5zY2FsZSkge1xyXG4gICAgICByZXR1cm4gbGVnZW5kO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb250ZW50RGVwZW5kZW50ID0gZmFsc2U7XHJcbiAgICBsZXQgcHJvalBhcmFtO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdmlldz8uc2l6ZSAmJlxyXG4gICAgICB2aWV3Py5leHRlbnQgJiZcclxuICAgICAgdmlldz8ucHJvamVjdGlvbiAmJlxyXG4gICAgICB0aGlzLm9wdGlvbnMuY29udGVudERlcGVuZGVudExlZ2VuZFxyXG4gICAgKSB7XHJcbiAgICAgIHByb2pQYXJhbSA9XHJcbiAgICAgICAgdGhpcy5wYXJhbXMuVkVSU0lPTiA9PT0gJzEuMy4wJyB8fCB0aGlzLnBhcmFtcy5WRVJTSU9OID09PSB1bmRlZmluZWRcclxuICAgICAgICAgID8gJ0NSUydcclxuICAgICAgICAgIDogJ1NSUyc7XHJcbiAgICAgIGNvbnRlbnREZXBlbmRlbnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNvdXJjZVBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG5cclxuICAgIGxldCBsYXllcnMgPSBbXTtcclxuICAgIGlmIChzb3VyY2VQYXJhbXMuTEFZRVJTICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGF5ZXJzID0gc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsLnJlcGxhY2UoL1xcPyQvLCAnJyk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBbXHJcbiAgICAgICdSRVFVRVNUPUdldExlZ2VuZEdyYXBoaWMnLFxyXG4gICAgICAnU0VSVklDRT1XTVMnLFxyXG4gICAgICAnRk9STUFUPWltYWdlL3BuZycsXHJcbiAgICAgICdTTERfVkVSU0lPTj0xLjEuMCcsXHJcbiAgICAgIGBWRVJTSU9OPSR7c291cmNlUGFyYW1zLlZFUlNJT04gfHwgJzEuMy4wJ31gXHJcbiAgICBdO1xyXG4gICAgaWYgKHN0eWxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFNUWUxFPSR7c3R5bGV9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmlldz8uc2NhbGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBwYXJhbXMucHVzaChgU0NBTEU9JHt2aWV3LnNjYWxlfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRlbnREZXBlbmRlbnQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFdJRFRIPSR7dmlldy5zaXplWzBdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgSEVJR0hUPSR7dmlldy5zaXplWzFdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgQkJPWD0ke3ZpZXcuZXh0ZW50LmpvaW4oJywnKX1gKTtcclxuICAgICAgcGFyYW1zLnB1c2goYCR7cHJvalBhcmFtfT0ke3ZpZXcucHJvamVjdGlvbn1gKTtcclxuICAgIH1cclxuXHJcbiAgICBsZWdlbmQgPSBsYXllcnMubWFwKChsYXllcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGJhc2VVcmwubWF0Y2goL1xcPy8pID8gJyYnIDogJz8nO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVybDogYCR7YmFzZVVybH0ke3NlcGFyYXRvcn0ke3BhcmFtcy5qb2luKCcmJyl9JkxBWUVSPSR7bGF5ZXJ9YCxcclxuICAgICAgICB0aXRsZTogbGF5ZXJzLmxlbmd0aCA+IDEgPyBsYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjdXJyZW50U3R5bGU6IHN0eWxlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoc3R5bGUgYXMgc3RyaW5nKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZSBleHRlbmRzIFdNU0RhdGFTb3VyY2Uge1xyXG4gIG9wdGlvbnM6IFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxUaW1lRmlsdGVyT3B0aW9ucz47XHJcbiAgc2V0VGltZUZpbHRlcihvZ2NGaWx0ZXJzOiBUaW1lRmlsdGVyT3B0aW9ucywgdHJpZ2dlckV2ZW50PzogYm9vbGVhbik7XHJcbiAgZmlsdGVyQnlEYXRlKGRhdGU6IERhdGUgfCBbRGF0ZSwgRGF0ZV0pO1xyXG4gIGZpbHRlckJ5WWVhcih5ZWFyOiBzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddKTtcclxufVxyXG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFPcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPMUMsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3JCLE1BQU0saUJBQWlCLENBQUM7QUFVekIsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBd0NsQztJQUNHO0lBdENaLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFhLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQVEsSUFBSSxDQUFDLE9BQWUsQ0FBQyxVQUFVO1lBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFRLElBQUksQ0FBQyxPQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBUSxJQUFJLENBQUMsT0FBZSxDQUFDLGVBQWU7WUFDMUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsZUFBZTtZQUN2QyxDQUFD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SyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2xELE9BQU87Z0JBQ0wsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssRUFBRTtnQkFDL0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzVDLFlBQVksRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLEtBQWdCO2FBQ2xFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLEtBQUksQ0FBQztDQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IG9sU291cmNlSW1hZ2VXTVMgZnJvbSAnb2wvc291cmNlL0ltYWdlV01TJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXInO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXInO1xyXG5pbXBvcnQge1xyXG4gIE9nY0ZpbHRlckR1cmluZ09wdGlvbnMsXHJcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIE9nY0ZpbHRlcnNPcHRpb25zXHJcbn0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExlZ2VuZE1hcFZpZXdPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sZWdlbmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUXVlcnlIdG1sVGFyZ2V0IH0gZnJvbSAnLi4vLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmVudW1zJztcclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXRlNTZXJ2aWNlIH0gZnJvbSAnLi93ZnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG59IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBjaGVja1dmc1BhcmFtcyxcclxuICBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnksXHJcbiAgZm9ybWF0V0ZTUXVlcnlTdHJpbmdcclxufSBmcm9tICcuL3dtcy13ZnMudXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UgZXh0ZW5kcyBXTVNEYXRhU291cmNlIHtcclxuICBvcHRpb25zOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zO1xyXG4gIHRpbWVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8VGltZUZpbHRlck9wdGlvbnM+O1xyXG4gIHNldFRpbWVGaWx0ZXIob2djRmlsdGVyczogVGltZUZpbHRlck9wdGlvbnMsIHRyaWdnZXJFdmVudD86IGJvb2xlYW4pO1xyXG4gIGZpbHRlckJ5RGF0ZShkYXRlOiBEYXRlIHwgW0RhdGUsIERhdGVdKTtcclxuICBmaWx0ZXJCeVllYXIoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXTVNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sU291cmNlSW1hZ2VXTVM7XHJcblxyXG4gIGdldCBwYXJhbXMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zIGFzIGFueTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVyeVRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcclxuICAgICAgPyAodGhpcy5vcHRpb25zIGFzIGFueSkucXVlcnlUaXRsZVxyXG4gICAgICA6ICd0aXRsZSc7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFwTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIGFueSkubWFwTGFiZWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlcnlIdG1sVGFyZ2V0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5SHRtbFRhcmdldFxyXG4gICAgICA/ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcclxuICAgICAgOiBRdWVyeUh0bWxUYXJnZXQuQkxBTks7XHJcbiAgfVxyXG5cclxuICBzZXQgb2djRmlsdGVycyh2YWx1ZTogT2djRmlsdGVyc09wdGlvbnMpIHtcclxuICAgICh0aGlzLm9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBvZ2NGaWx0ZXJzKCk6IE9nY0ZpbHRlcnNPcHRpb25zIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycztcclxuICB9XHJcblxyXG4gIHNldCB0aW1lRmlsdGVyKHZhbHVlOiBUaW1lRmlsdGVyT3B0aW9ucykge1xyXG4gICAgKHRoaXMub3B0aW9ucyBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS50aW1lRmlsdGVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCB0aW1lRmlsdGVyKCk6IFRpbWVGaWx0ZXJPcHRpb25zIHtcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLnRpbWVGaWx0ZXI7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHRpbWVGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8VGltZUZpbHRlck9wdGlvbnM+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgd2ZzU2VydmljZTogV0ZTU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICBjb25zdCBzb3VyY2VQYXJhbXM6IGFueSA9IG9wdGlvbnMucGFyYW1zO1xyXG5cclxuICAgIGNvbnN0IGRwaSA9IHNvdXJjZVBhcmFtcy5EUEkgfHwgOTY7XHJcbiAgICBzb3VyY2VQYXJhbXMuRFBJID0gZHBpO1xyXG4gICAgc291cmNlUGFyYW1zLk1BUF9SRVNPTFVUSU9OID0gZHBpO1xyXG4gICAgc291cmNlUGFyYW1zLkZPUk1BVF9PUFRJT05TID0gJ2RwaTonICsgZHBpO1xyXG5cclxuICAgIGlmIChvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAmJiBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyA+IDApIHtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICB9LCBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAqIDEwMDApOyAvLyBDb252ZXJ0IHNlY29uZHMgdG8gTVNcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnkgPSBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcblxyXG4gICAgLy8gIyMjIyAgIFNUQVJUIGlmIHBhcmFtc1dGU1xyXG4gICAgaWYgKG9wdGlvbnMucGFyYW1zV0ZTKSB7XHJcbiAgICAgIGNvbnN0IHdmc0NoZWNrdXAgPSBjaGVja1dmc1BhcmFtcyhvcHRpb25zLCAnd21zJyk7XHJcbiAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLnBhcmFtc1dGUywgd2ZzQ2hlY2t1cC5wYXJhbXNXRlMpO1xyXG5cclxuICAgICAgZmllbGROYW1lR2VvbWV0cnkgPVxyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5IHx8IGZpZWxkTmFtZUdlb21ldHJ5O1xyXG5cclxuICAgICAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHtcclxuICAgICAgICBkeW5hbWljVXJsOiB0aGlzLmJ1aWxkRHluYW1pY0Rvd25sb2FkVXJsRnJvbVBhcmFtc1dGUyhvcHRpb25zKVxyXG4gICAgICB9KTtcclxuICAgIH0gLy8gICMjIyMgICBFTkQgIGlmIHBhcmFtc1dGU1xyXG5cclxuICAgIGlmICghb3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgb3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMuc291cmNlRmllbGRzID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRpb25zLnNvdXJjZUZpZWxkcy5mb3JFYWNoKChzb3VyY2VGaWVsZCkgPT4ge1xyXG4gICAgICAgIHNvdXJjZUZpZWxkLmFsaWFzID0gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgID8gc291cmNlRmllbGQuYWxpYXNcclxuICAgICAgICAgIDogc291cmNlRmllbGQubmFtZTtcclxuICAgICAgICAvLyB0byBhbGxvdyBvbmx5IGEgbGlzdCBvZiBzb3VyY2VmaWVsZCB3aXRoIG5hbWVzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5pdE9nY0ZpbHRlcnMgPSAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpXHJcbiAgICAgIC5vZ2NGaWx0ZXJzO1xyXG4gICAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG5cclxuICAgIGlmICghaW5pdE9nY0ZpbHRlcnMpIHtcclxuICAgICAgKG9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzID1cclxuICAgICAgICBvZ2NGaWx0ZXJXcml0ZXIuZGVmaW5lT2djRmlsdGVyc0RlZmF1bHRPcHRpb25zKFxyXG4gICAgICAgICAgaW5pdE9nY0ZpbHRlcnMsXHJcbiAgICAgICAgICBmaWVsZE5hbWVHZW9tZXRyeSxcclxuICAgICAgICAgICd3bXMnXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMgfHxcclxuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzIHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zIHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuc2VsZWN0IHx8XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRydWU7XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgJiYgaW5pdE9nY0ZpbHRlcnMuZmlsdGVycykge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckR1cmluZyA9IGluaXRPZ2NGaWx0ZXJzLmZpbHRlcnMgYXMgT2djRmlsdGVyRHVyaW5nT3B0aW9ucztcclxuICAgICAgICBpZiAoZmlsdGVyRHVyaW5nLmNhbGVuZGFyTW9kZVllYXIpIHtcclxuICAgICAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5wdXNoQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncHVzaEJ1dHRvbic7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXMpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzLnNlbGVjdG9yVHlwZSA9ICdjaGVja2JveCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucykge1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncmFkaW9CdXR0b24nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5zZWxlY3QpIHtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5zZWxlY3Quc2VsZWN0b3JUeXBlID0gJ3NlbGVjdCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSkge1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZS5zZWxlY3RvclR5cGUgPSAnYXV0b2NvbXBsZXRlJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpLmxlbmd0aCA+IDEgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZW5hYmxlZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICdCRSBDQVJFRlVMTCwgWU9VUiBXTVMgTEFZRVJTICgnICtcclxuICAgICAgICAgIHNvdXJjZVBhcmFtcy5MQVlFUlMgK1xyXG4gICAgICAgICAgJykgTVVTVCBTSEFSRSBUSEUgU0FNRSBGSUVMRFMgVE8gQUxMT1cgb2djRmlsdGVycyBUTyBXT1JLICEhICdcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coJyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKionKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIG9wdGlvbnMucGFyYW1zV0ZTICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzICYmXHJcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZWRpdGFibGUgJiZcclxuICAgICAgKG9wdGlvbnMuc291cmNlRmllbGRzIHx8IFtdKS5maWx0ZXIoKHNmKSA9PiAhc2YudmFsdWVzKS5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy53ZnNTZXJ2aWNlLmdldFNvdXJjZUZpZWxkc0Zyb21XRlMob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyUXVlcnlTdHJpbmcgPSBvZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgZmllbGROYW1lR2VvbWV0cnlcclxuICAgICk7XHJcbiAgICBzb3VyY2VQYXJhbXMuRklMVEVSID0gZmlsdGVyUXVlcnlTdHJpbmc7XHJcbiAgICB0aGlzLm9sLnVwZGF0ZVBhcmFtcyh7IEZJTFRFUjogc291cmNlUGFyYW1zLkZJTFRFUiB9KTtcclxuICAgIHRoaXMuc2V0T2djRmlsdGVycyhpbml0T2djRmlsdGVycywgdHJ1ZSk7XHJcblxyXG4gICAgY29uc3QgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgICAgIG9wdGlvbnMgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcclxuICAgIGlmIChcclxuICAgICAgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucz8udGltZUZpbHRlcmFibGUgJiZcclxuICAgICAgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucz8udGltZUZpbHRlclxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2V0VGltZUZpbHRlcih0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLnRpbWVGaWx0ZXIsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMub2wudXBkYXRlUGFyYW1zKHsgaWdvUmVmcmVzaDogTWF0aC5yYW5kb20oKSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREeW5hbWljRG93bmxvYWRVcmxGcm9tUGFyYW1zV0ZTKGFzV0ZTRGF0YVNvdXJjZU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nVmFsdWVzID0gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoYXNXRlNEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoXHJcbiAgICAgIChmKSA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJ1xyXG4gICAgKS52YWx1ZTtcclxuICAgIHJldHVybiBkb3dubG9hZFVybDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZUltYWdlV01TIHtcclxuICAgIHJldHVybiBuZXcgb2xTb3VyY2VJbWFnZVdNUyhPYmplY3QuYXNzaWduKHsgcmF0aW86IDEgfSwgdGhpcy5vcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICBzZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5vZ2NGaWx0ZXJzID0gb2djRmlsdGVycztcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy5vbC5ub3RpZnkoJ29nY0ZpbHRlcnMnLCB0aGlzLm9nY0ZpbHRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGltZUZpbHRlcih0aW1lRmlsdGVyOiBUaW1lRmlsdGVyT3B0aW9ucywgdHJpZ2dlckV2ZW50OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMudGltZUZpbHRlciA9IHRpbWVGaWx0ZXI7XHJcbiAgICBpZiAodHJpZ2dlckV2ZW50KSB7XHJcbiAgICAgIHRoaXMudGltZUZpbHRlciQubmV4dCh0aGlzLnRpbWVGaWx0ZXIpO1xyXG4gICAgICB0aGlzLm9sLm5vdGlmeSgndGltZUZpbHRlcicsIHRoaXMub2djRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMZWdlbmQoc3R5bGU/OiBzdHJpbmcsIHZpZXc/OiBMZWdlbmRNYXBWaWV3T3B0aW9ucyk6IExlZ2VuZFtdIHtcclxuICAgIGxldCBsZWdlbmQgPSBzdXBlci5nZXRMZWdlbmQoKTtcclxuICAgIGlmIChsZWdlbmQubGVuZ3RoID4gMCAmJiBzdHlsZSA9PT0gdW5kZWZpbmVkICYmICF2aWV3Py5zY2FsZSkge1xyXG4gICAgICByZXR1cm4gbGVnZW5kO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb250ZW50RGVwZW5kZW50ID0gZmFsc2U7XHJcbiAgICBsZXQgcHJvalBhcmFtO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdmlldz8uc2l6ZSAmJlxyXG4gICAgICB2aWV3Py5leHRlbnQgJiZcclxuICAgICAgdmlldz8ucHJvamVjdGlvbiAmJlxyXG4gICAgICB0aGlzLm9wdGlvbnMuY29udGVudERlcGVuZGVudExlZ2VuZFxyXG4gICAgKSB7XHJcbiAgICAgIHByb2pQYXJhbSA9XHJcbiAgICAgICAgdGhpcy5wYXJhbXMuVkVSU0lPTiA9PT0gJzEuMy4wJyB8fCB0aGlzLnBhcmFtcy5WRVJTSU9OID09PSB1bmRlZmluZWRcclxuICAgICAgICAgID8gJ0NSUydcclxuICAgICAgICAgIDogJ1NSUyc7XHJcbiAgICAgIGNvbnRlbnREZXBlbmRlbnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNvdXJjZVBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG5cclxuICAgIGxldCBsYXllcnMgPSBbXTtcclxuICAgIGlmIChzb3VyY2VQYXJhbXMuTEFZRVJTICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGF5ZXJzID0gc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsLnJlcGxhY2UoL1xcPyQvLCAnJyk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBbXHJcbiAgICAgICdSRVFVRVNUPUdldExlZ2VuZEdyYXBoaWMnLFxyXG4gICAgICAnU0VSVklDRT1XTVMnLFxyXG4gICAgICAnRk9STUFUPWltYWdlL3BuZycsXHJcbiAgICAgICdTTERfVkVSU0lPTj0xLjEuMCcsXHJcbiAgICAgIGBWRVJTSU9OPSR7c291cmNlUGFyYW1zLlZFUlNJT04gfHwgJzEuMy4wJ31gXHJcbiAgICBdO1xyXG4gICAgaWYgKHN0eWxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFNUWUxFPSR7c3R5bGV9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmlldz8uc2NhbGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBwYXJhbXMucHVzaChgU0NBTEU9JHt2aWV3LnNjYWxlfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRlbnREZXBlbmRlbnQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFdJRFRIPSR7dmlldy5zaXplWzBdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgSEVJR0hUPSR7dmlldy5zaXplWzFdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgQkJPWD0ke3ZpZXcuZXh0ZW50LmpvaW4oJywnKX1gKTtcclxuICAgICAgcGFyYW1zLnB1c2goYCR7cHJvalBhcmFtfT0ke3ZpZXcucHJvamVjdGlvbn1gKTtcclxuICAgIH1cclxuXHJcbiAgICBsZWdlbmQgPSBsYXllcnMubWFwKChsYXllcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGJhc2VVcmwubWF0Y2goL1xcPy8pID8gJyYnIDogJz8nO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVybDogYCR7YmFzZVVybH0ke3NlcGFyYXRvcn0ke3BhcmFtcy5qb2luKCcmJyl9JkxBWUVSPSR7bGF5ZXJ9YCxcclxuICAgICAgICB0aXRsZTogbGF5ZXJzLmxlbmd0aCA+IDEgPyBsYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjdXJyZW50U3R5bGU6IHN0eWxlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoc3R5bGUgYXMgc3RyaW5nKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZSBleHRlbmRzIFdNU0RhdGFTb3VyY2Uge1xyXG4gIG9wdGlvbnM6IFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxUaW1lRmlsdGVyT3B0aW9ucz47XHJcbiAgc2V0VGltZUZpbHRlcihvZ2NGaWx0ZXJzOiBUaW1lRmlsdGVyT3B0aW9ucywgdHJpZ2dlckV2ZW50PzogYm9vbGVhbik7XHJcbiAgZmlsdGVyQnlEYXRlKGRhdGU6IERhdGUgfCBbRGF0ZSwgRGF0ZV0pO1xyXG4gIGZpbHRlckJ5WWVhcih5ZWFyOiBzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddKTtcclxufVxyXG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { OgcFilterWriter } from '../../../filter/shared/ogc-filter';
|
|
2
1
|
import * as OlFormat from 'ol/format';
|
|
3
2
|
import olFormatGML2 from 'ol/format/GML2';
|
|
4
3
|
import olFormatGML3 from 'ol/format/GML3';
|
|
5
4
|
import olFormatGML32 from 'ol/format/GML32';
|
|
6
5
|
import olFormatOSMXML from 'ol/format/OSMXML';
|
|
6
|
+
import { OgcFilterWriter } from '../../../filter/shared/ogc-filter';
|
|
7
7
|
export const defaultEpsg = 'EPSG:3857';
|
|
8
8
|
export const defaultMaxFeatures = 5000;
|
|
9
9
|
export const defaultWfsVersion = '2.0.0';
|
|
@@ -22,18 +22,18 @@ export function buildUrl(options, extent, proj, ogcFilters, randomParam) {
|
|
|
22
22
|
const paramsWFS = options.paramsWFS;
|
|
23
23
|
const queryStringValues = formatWFSQueryString(options, undefined, options.paramsWFS.srsName);
|
|
24
24
|
let igoFilters;
|
|
25
|
-
if (ogcFilters
|
|
26
|
-
igoFilters = ogcFilters
|
|
25
|
+
if (ogcFilters?.enabled) {
|
|
26
|
+
igoFilters = ogcFilters?.filters;
|
|
27
27
|
}
|
|
28
28
|
const ogcFilterWriter = new OgcFilterWriter();
|
|
29
|
-
const filterOrBox = ogcFilterWriter.buildFilter(igoFilters, extent, proj, ogcFilters
|
|
30
|
-
let filterOrPush = ogcFilterWriter.handleOgcFiltersAppliedValue(options, ogcFilters
|
|
29
|
+
const filterOrBox = ogcFilterWriter.buildFilter(igoFilters, extent, proj, ogcFilters?.geometryName, options);
|
|
30
|
+
let filterOrPush = ogcFilterWriter.handleOgcFiltersAppliedValue(options, ogcFilters?.geometryName, extent, proj);
|
|
31
31
|
let prefix = 'filter';
|
|
32
32
|
if (!filterOrPush) {
|
|
33
33
|
prefix = 'bbox';
|
|
34
34
|
filterOrPush = extent.join(',') + ',' + proj.getCode();
|
|
35
35
|
}
|
|
36
|
-
paramsWFS.xmlFilter = ogcFilters
|
|
36
|
+
paramsWFS.xmlFilter = ogcFilters?.advancedOgcFilters
|
|
37
37
|
? filterOrBox
|
|
38
38
|
: `${prefix}=${filterOrPush}`;
|
|
39
39
|
let baseUrl = queryStringValues.find((f) => f.name === 'getfeature').value;
|
|
@@ -219,4 +219,4 @@ export function getFormatFromOptions(options) {
|
|
|
219
219
|
}
|
|
220
220
|
return new olFormatCls();
|
|
221
221
|
}
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQU0sRUFDTixJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQzVDLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxP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QUFDLENBQUM7S0FDbEQ7SUFFRCxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyc09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuXHJcbmltcG9ydCAqIGFzIE9sRm9ybWF0IGZyb20gJ29sL2Zvcm1hdCc7XHJcbmltcG9ydCBvbEZvcm1hdEdNTDIgZnJvbSAnb2wvZm9ybWF0L0dNTDInO1xyXG5pbXBvcnQgb2xGb3JtYXRHTUwzIGZyb20gJ29sL2Zvcm1hdC9HTUwzJztcclxuaW1wb3J0IG9sRm9ybWF0R01MMzIgZnJvbSAnb2wvZm9ybWF0L0dNTDMyJztcclxuaW1wb3J0IG9sRm9ybWF0T1NNWE1MIGZyb20gJ29sL2Zvcm1hdC9PU01YTUwnO1xyXG5pbXBvcnQgb2xQcm9qZWN0aW9uIGZyb20gJ29sL3Byb2ovUHJvamVjdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgZGVmYXVsdEVwc2cgPSAnRVBTRzozODU3JztcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNYXhGZWF0dXJlcyA9IDUwMDA7XHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0V2ZzVmVyc2lvbiA9ICcyLjAuMCc7XHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnkgPSAnZ2VvbWV0cnknO1xyXG5leHBvcnQgY29uc3QgZ21sUmVnZXggPSBuZXcgUmVnRXhwKC8oLiopP2dtbCguKik/L2dpKTtcclxuZXhwb3J0IGNvbnN0IGpzb25SZWdleCA9IG5ldyBSZWdFeHAoLyguKik/anNvbiguKik/L2dpKTtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBidWlsZCB0aGUgV0ZTIFVSTCBiYXNlZCBvbiB0aGUgbGF5ZXIgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSBvcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXHJcbiAqIEBwYXJhbSBleHRlbnQgIEFuIGV4dGVudCBsaWtlIGFycmF5IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXHJcbiAqIEBwYXJhbSBwcm9qICBvbFByb2plY3Rpb25cclxuICogQHBhcmFtIG9nY0ZpbHRlcnMgIE9nY0ZpbHRlcnNPcHRpb25zXHJcbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgZGF0YXNvdXJjZSBvcHRpb25zLCBiYXNlZCBvbiBmaWx0ZXIgYW5kIHZpZXdzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVcmwoXHJcbiAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgZXh0ZW50LFxyXG4gIHByb2o6IG9sUHJvamVjdGlvbixcclxuICBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyxcclxuICByYW5kb21QYXJhbT86IGJvb2xlYW5cclxuKTogc3RyaW5nIHtcclxuICBjb25zdCBwYXJhbXNXRlMgPSBvcHRpb25zLnBhcmFtc1dGUztcclxuICBjb25zdCBxdWVyeVN0cmluZ1ZhbHVlcyA9IGZvcm1hdFdGU1F1ZXJ5U3RyaW5nKFxyXG4gICAgb3B0aW9ucyxcclxuICAgIHVuZGVmaW5lZCxcclxuICAgIG9wdGlvbnMucGFyYW1zV0ZTLnNyc05hbWVcclxuICApO1xyXG4gIGxldCBpZ29GaWx0ZXJzO1xyXG4gIGlmIChvZ2NGaWx0ZXJzICYmIG9nY0ZpbHRlcnMuZW5hYmxlZCkge1xyXG4gICAgaWdvRmlsdGVycyA9IG9nY0ZpbHRlcnMuZmlsdGVycztcclxuICB9XHJcbiAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG4gIGNvbnN0IGZpbHRlck9yQm94ID0gb2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxyXG4gICAgaWdvRmlsdGVycyxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2osXHJcbiAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSxcclxuICAgIG9wdGlvbnNcclxuICApO1xyXG4gIGxldCBmaWx0ZXJPclB1c2ggPSBvZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShcclxuICAgIG9wdGlvbnMsXHJcbiAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2pcclxuICApO1xyXG5cclxuICBsZXQgcHJlZml4ID0gJ2ZpbHRlcic7XHJcbiAgaWYgKCFmaWx0ZXJPclB1c2gpIHtcclxuICAgIHByZWZpeCA9ICdiYm94JztcclxuICAgIGZpbHRlck9yUHVzaCA9IGV4dGVudC5qb2luKCcsJykgKyAnLCcgKyBwcm9qLmdldENvZGUoKTtcclxuICB9XHJcblxyXG4gIHBhcmFtc1dGUy54bWxGaWx0ZXIgPSBvZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVyc1xyXG4gICAgPyBmaWx0ZXJPckJveFxyXG4gICAgOiBgJHtwcmVmaXh9PSR7ZmlsdGVyT3JQdXNofWA7XHJcbiAgbGV0IGJhc2VVcmwgPSBxdWVyeVN0cmluZ1ZhbHVlcy5maW5kKChmKSA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJykudmFsdWU7XHJcbiAgY29uc3QgcGF0dGVybkZpbHRlciA9IC8oZmlsdGVyfGJib3gpPS4qL2dpO1xyXG4gIGJhc2VVcmwgPSBwYXR0ZXJuRmlsdGVyLnRlc3QocGFyYW1zV0ZTLnhtbEZpbHRlcilcclxuICAgID8gYCR7YmFzZVVybH0mJHtwYXJhbXNXRlMueG1sRmlsdGVyfWBcclxuICAgIDogYmFzZVVybDtcclxuICBvcHRpb25zLmRvd25sb2FkID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5kb3dubG9hZCwge1xyXG4gICAgZHluYW1pY1VybDogYmFzZVVybFxyXG4gIH0pO1xyXG4gIGlmIChyYW5kb21QYXJhbSkge1xyXG4gICAgYmFzZVVybCArPSBgJCZfdCR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YDtcclxuICB9XHJcbiAgcmV0dXJuIGJhc2VVcmwucmVwbGFjZSgvJiYvZywgJyYnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkL3N0YW5kYXJkaXplIFdGUyBjYWxsIHF1ZXJ5IHBhcmFtcyBiYXNlZCBvbiB0aGUgbGF5ZXIgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSB3ZnNEYXRhU291cmNlT3B0aW9ucyAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgVGhlIGNvbW1vbiB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZVxyXG4gKiBAcGFyYW0gY291bnQgIE51bWJlcjogVXNlZCB0byBjb250cm9sIHRoZSBudW1iZXIgb2YgZmVhdHVyZS4gVXNlZCB0byBieXBhc3Mgd2hlIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlIChtYXhGZWF0dXJlcylcclxuICogQHBhcmFtIGVwc2cgIFN0cmluZzogVXNlZCB0byBjb250cm9sIHRoZSBFUFNHIGNvZGUgKGVzOiAnRVBTRzM4NTcnKS4gVXNlZCB0byBieXBhc3Mgd2hlIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlIChzcnNOYW1lKVxyXG4gKiBAcGFyYW0gcHJvcGVydGllcyAgU3RyaW5nOiBVc2VkIHRvIGNvbnRyb2wgdGhlIHF1ZXJpZWQgZmllbGRzICAoV0ZTIHNlcnZpY2UpLlxyXG4gKiBAcmV0dXJucyBBbiBhcnJheSBhcnJheSBvZiB7bmFtZTogJycsIHZhbHVlOiAnJ30gb2YgcHJlZGVmaW5lZCBxdWVyeSBwYXJhbXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoXHJcbiAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgY291bnQ/OiBudW1iZXIsXHJcbiAgZXBzZz86IHN0cmluZyxcclxuICBwcm9wZXJ0aWVzPzogc3RyaW5nLFxyXG4gIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsXHJcbiAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0OiBib29sZWFuID0gZmFsc2VcclxuKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcclxuICBjb25zdCB2ZXJzaW9uV2ZzMjAwID0gJzIuMC4wJzsgLy8gbm90IHRoZSBzYW1lIHVzYWdlIGFzIGRlZmF1bHRXZnNWZXJzaW9uLlxyXG4gIGNvbnN0IHVybCA9IGRhdGFTb3VyY2VPcHRpb25zLnVybFdmcztcclxuICBjb25zdCBwYXJhbXNXRlMgPSBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgY29uc3QgZWZmZWN0aXZlQ291bnQgPSBjb3VudCB8fCBkZWZhdWx0TWF4RmVhdHVyZXM7XHJcbiAgY29uc3QgZWZmZWN0aXZlU3RhcnRJbmRleCA9XHJcbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gdmVyc2lvbldmczIwMCA/IGBzdGFydEluZGV4PSR7c3RhcnRJbmRleH1gIDogJyc7XHJcbiAgY29uc3QgZXBzZ0NvZGUgPSBlcHNnIHx8IGRlZmF1bHRFcHNnO1xyXG4gIGxldCBvdXRwdXRGb3JtYXQgPSBwYXJhbXNXRlMub3V0cHV0Rm9ybWF0XHJcbiAgICA/IGBvdXRwdXRGb3JtYXQ9JHtwYXJhbXNXRlMub3V0cHV0Rm9ybWF0fWBcclxuICAgIDogJyc7XHJcbiAgbGV0IHZlcnNpb24gPSBwYXJhbXNXRlMudmVyc2lvblxyXG4gICAgPyBgdmVyc2lvbj0ke3BhcmFtc1dGUy52ZXJzaW9ufWBcclxuICAgIDogYHZlcnNpb249JHtkZWZhdWx0V2ZzVmVyc2lvbn1gO1xyXG4gIGNvbnN0IHBhcmFtVHlwZW5hbWUgPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyAndHlwZW5hbWVzJyA6ICd0eXBlbmFtZSc7XHJcbiAgY29uc3QgZmVhdHVyZVR5cGVzID0gYCR7cGFyYW1UeXBlbmFtZX09JHtwYXJhbXNXRlMuZmVhdHVyZVR5cGVzfWA7XHJcbiAgY29uc3QgcGFyYW1NYXhGZWF0dXJlcyA9XHJcbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gdmVyc2lvbldmczIwMCA/ICdjb3VudCcgOiAnbWF4RmVhdHVyZXMnO1xyXG4gIGxldCBjbnQgPSBjb3VudFxyXG4gICAgPyBgJHtwYXJhbU1heEZlYXR1cmVzfT0ke2VmZmVjdGl2ZUNvdW50fWBcclxuICAgIDogcGFyYW1zV0ZTLm1heEZlYXR1cmVzXHJcbiAgICA/IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7cGFyYW1zV0ZTLm1heEZlYXR1cmVzfWBcclxuICAgIDogYCR7cGFyYW1NYXhGZWF0dXJlc309JHtlZmZlY3RpdmVDb3VudH1gO1xyXG4gIGlmIChmb3JjZURlZmF1bHRPdXRwdXRGb3JtYXQpIHtcclxuICAgIG91dHB1dEZvcm1hdCA9ICcnO1xyXG4gICAgdmVyc2lvbiA9ICd2ZXJzaW9uPTEuMS4wJztcclxuICAgIGNudCA9IGNudC5yZXBsYWNlKCdjb3VudCcsICdtYXhGZWF0dXJlcycpO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3JzID0gZXBzZ1xyXG4gICAgPyBgc3JzbmFtZT0ke2Vwc2dDb2RlfWBcclxuICAgIDogcGFyYW1zV0ZTLnNyc05hbWVcclxuICAgID8gJ3Nyc25hbWU9JyArIHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICA6IGBzcnNuYW1lPSR7ZXBzZ0NvZGV9YDtcclxuXHJcbiAgbGV0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gIGxldCB2YWx1ZVJlZmVyZW5jZSA9ICcnO1xyXG4gIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICBwcm9wZXJ0eU5hbWUgPSBgcHJvcGVydHlOYW1lPSR7cHJvcGVydGllc31gO1xyXG4gICAgdmFsdWVSZWZlcmVuY2UgPSBgdmFsdWVSZWZlcmVuY2U9JHtwcm9wZXJ0aWVzfWA7XHJcbiAgfVxyXG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcztcclxuICBpZiAoIXByb3BlcnR5TmFtZSAmJiBzb3VyY2VGaWVsZHMgJiYgc291cmNlRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpZWxkc05hbWVzID0gW107XHJcbiAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMuZm9yRWFjaCgoc291cmNlZmllbGQpID0+IHtcclxuICAgICAgZmllbGRzTmFtZXMucHVzaChzb3VyY2VmaWVsZC5uYW1lKTtcclxuICAgIH0pO1xyXG4gICAgcHJvcGVydHlOYW1lID0gYHByb3BlcnR5TmFtZT0ke2ZpZWxkc05hbWVzLmpvaW4oJywnKX0sJHtcclxuICAgICAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5XHJcbiAgICB9YDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNlcGFyYXRvciA9IHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnO1xyXG4gIGNvbnN0IGdldENhcGFiaWxpdGllcyA9IGAke3VybH0ke3NlcGFyYXRvcn1zZXJ2aWNlPVdGUyZyZXF1ZXN0PUdldENhcGFiaWxpdGllcyYke3ZlcnNpb259YDtcclxuICBsZXQgZ2V0RmVhdHVyZSA9IGAke3VybH0ke3NlcGFyYXRvcn1zZXJ2aWNlPVdGUyZyZXF1ZXN0PUdldEZlYXR1cmUmJHt2ZXJzaW9ufSYke2ZlYXR1cmVUeXBlc30mYDtcclxuICBnZXRGZWF0dXJlICs9IGAke291dHB1dEZvcm1hdH0mJHtzcnN9JiR7Y250fSYke3Byb3BlcnR5TmFtZX0mJHtlZmZlY3RpdmVTdGFydEluZGV4fWA7XHJcblxyXG4gIGxldCBnZXRwcm9wZXJ0eXZhbHVlID0gYCR7dXJsfT9zZXJ2aWNlPVdGUyZyZXF1ZXN0PUdldFByb3BlcnR5VmFsdWUmdmVyc2lvbj0ke3ZlcnNpb25XZnMyMDB9JiR7ZmVhdHVyZVR5cGVzfSZgO1xyXG4gIGdldHByb3BlcnR5dmFsdWUgKz0gYCYke2NudH0mJHt2YWx1ZVJlZmVyZW5jZX1gO1xyXG5cclxuICByZXR1cm4gW1xyXG4gICAgeyBuYW1lOiAnb3V0cHV0Zm9ybWF0JywgdmFsdWU6IG91dHB1dEZvcm1hdCB9LFxyXG4gICAgeyBuYW1lOiAndmVyc2lvbicsIHZhbHVlOiB2ZXJzaW9uIH0sXHJcbiAgICB7IG5hbWU6ICd0eXBlbmFtZScsIHZhbHVlOiBmZWF0dXJlVHlwZXMgfSxcclxuICAgIHsgbmFtZTogJ2NvdW50JywgdmFsdWU6IGNudCB9LFxyXG4gICAgeyBuYW1lOiAnc3JzbmFtZScsIHZhbHVlOiBzcnMgfSxcclxuICAgIHsgbmFtZTogJ3Byb3BlcnR5bmFtZScsIHZhbHVlOiBwcm9wZXJ0eU5hbWUgfSxcclxuICAgIHsgbmFtZTogJ3ZhbHVlcmVmZXJlbmNlJywgdmFsdWU6IHZhbHVlUmVmZXJlbmNlIH0sXHJcbiAgICB7IG5hbWU6ICdnZXRjYXBhYmlsaXRpZXMnLCB2YWx1ZTogZ2V0Q2FwYWJpbGl0aWVzLnJlcGxhY2UoLyYmL2csICcmJykgfSxcclxuICAgIHsgbmFtZTogJ2dldGZlYXR1cmUnLCB2YWx1ZTogZ2V0RmVhdHVyZS5yZXBsYWNlKC8mJi9nLCAnJicpIH0sXHJcbiAgICB7IG5hbWU6ICdnZXRwcm9wZXJ0eXZhbHVlJywgdmFsdWU6IGdldHByb3BlcnR5dmFsdWUucmVwbGFjZSgvJiYvZywgJyYnKSB9XHJcbiAgXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRlL01vZGlmeSBsYXllcidzIHdmcyBvcHRpb25zIGJhc2VkIG9uIDpcclxuICogMS0gYW4gT3BlbmxheWVycydzIGlzc3VlIHdpdGggR01MIHByb3ZpZGVkIGZyb20gV0ZTLiBSZWZlciB0b1xyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmxheWVycy9vcGVubGF5ZXJzL3B1bGwvNjQwMFxyXG4gKiAyLSBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFscyBwYXJhbWV0ZXJzLlxyXG4gKiBAcGFyYW0gd2ZzRGF0YVNvdXJjZU9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHJldHVybnMgQW4gYXJyYXkgYXJyYXkgb2Yge25hbWU6ICcnLCB2YWx1ZTogJyd9IG9mIHByZWRlZmluZWQgcXVlcnkgcGFyYW1zLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrV2ZzUGFyYW1zKHdmc0RhdGFTb3VyY2VPcHRpb25zLCBzcmNUeXBlPzogc3RyaW5nKSB7XHJcbiAgaWYgKHNyY1R5cGUgJiYgc3JjVHlwZSA9PT0gJ3dmcycpIHtcclxuICAgIC8vIHJlYXNzaWduYXRpb24gb2YgcGFyYW1zIHRvIHBhcmFtc1dGUyBhbmQgdXJsIHRvIHVybFdGUyB0byBoYXZlIGEgY29tbW9uIGludGVyZmFjZSB3aXRoIHdtcy13ZnMgZGF0YXNvdXJjZXNcclxuICAgIHdmc0RhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUyA9IHdmc0RhdGFTb3VyY2VPcHRpb25zLnBhcmFtcztcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhcmFtc1dGUyA9IHdmc0RhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUztcclxuICB3ZnNEYXRhU291cmNlT3B0aW9ucy51cmxXZnMgPVxyXG4gICAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzIHx8IHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybDtcclxuXHJcbiAgcGFyYW1zV0ZTLnZlcnNpb24gPSBwYXJhbXNXRlMudmVyc2lvbiB8fCBkZWZhdWx0V2ZzVmVyc2lvbjtcclxuICBwYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnkgPVxyXG4gICAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5IHx8IGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeTtcclxuICBwYXJhbXNXRlMubWF4RmVhdHVyZXMgPSBwYXJhbXNXRlMubWF4RmVhdHVyZXMgfHwgZGVmYXVsdE1heEZlYXR1cmVzO1xyXG5cclxuICBsZXQgb3V0cHV0Rm9ybWF0O1xyXG4gIGlmIChwYXJhbXNXRlMub3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBvdXRwdXRGb3JtYXQgPSBwYXJhbXNXRlMub3V0cHV0Rm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgaWYgKGdtbFJlZ2V4LnRlc3Qob3V0cHV0Rm9ybWF0KSB8fCAhb3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9ICcxLjEuMCc7XHJcbiAgfVxyXG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB3ZnNEYXRhU291cmNlT3B0aW9ucyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXRGcm9tT3B0aW9ucyhcclxuICBvcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyB8IFdNU0RhdGFTb3VyY2VPcHRpb25zXHJcbikge1xyXG4gIGNvbnN0IHdmc09wdGlvbnMgPSBvcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zO1xyXG5cclxuICBsZXQgb2xGb3JtYXRDbHM7XHJcbiAgY29uc3Qgb3V0cHV0Rm9ybWF0ID0gd2ZzT3B0aW9ucy5wYXJhbXNXRlMub3V0cHV0Rm9ybWF0XHJcbiAgICA/IHdmc09wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gIGlmICghb3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGlmIChPbEZvcm1hdFtvdXRwdXRGb3JtYXRdKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0W291dHB1dEZvcm1hdF07XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoe1xyXG4gICAgICAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsXHJcbiAgICAgIC4uLnsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDIgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMzInKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHtcclxuICAgICAgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLFxyXG4gICAgICAuLi57IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwzMiB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnbWwzJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7XHJcbiAgICAgIC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyxcclxuICAgICAgLi4ueyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMyB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCd0b3BvanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LlRvcG9KU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dlb2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HZW9KU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2Vzcmlqc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuRXNyaUpTT047XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0Lkdlb0pTT047XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ3B4JykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR1BYO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ1dLVCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldLVDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdvc214bWwnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBvbEZvcm1hdE9TTVhNTDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdrbWwnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5LTUw7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKCk7XHJcbn1cclxuIl19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFJOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQWMsRUFDZCxJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQzVDLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxP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TSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDdkQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDaEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbkQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbEQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbEQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckQsV0FBVyxHQUFHLGNBQWMsQ0FBQztRQUM3QixPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNsRDtTQUFNLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNsRCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUMzQixPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNsRDtJQUVELE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgT2xGb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcclxuaW1wb3J0IG9sRm9ybWF0R01MMiBmcm9tICdvbC9mb3JtYXQvR01MMic7XHJcbmltcG9ydCBvbEZvcm1hdEdNTDMgZnJvbSAnb2wvZm9ybWF0L0dNTDMnO1xyXG5pbXBvcnQgb2xGb3JtYXRHTUwzMiBmcm9tICdvbC9mb3JtYXQvR01MMzInO1xyXG5pbXBvcnQgb2xGb3JtYXRPU01YTUwgZnJvbSAnb2wvZm9ybWF0L09TTVhNTCc7XHJcbmltcG9ydCBvbFByb2plY3Rpb24gZnJvbSAnb2wvcHJvai9Qcm9qZWN0aW9uJztcclxuaW1wb3J0IHsgRXh0ZW50IH0gZnJvbSAnb2wvZXh0ZW50JztcclxuXHJcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlcic7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcnNPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0RXBzZyA9ICdFUFNHOjM4NTcnO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdE1heEZlYXR1cmVzID0gNTAwMDtcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRXZnNWZXJzaW9uID0gJzIuMC4wJztcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeSA9ICdnZW9tZXRyeSc7XHJcbmV4cG9ydCBjb25zdCBnbWxSZWdleCA9IG5ldyBSZWdFeHAoLyguKik/Z21sKC4qKT8vZ2kpO1xyXG5leHBvcnQgY29uc3QganNvblJlZ2V4ID0gbmV3IFJlZ0V4cCgvKC4qKT9qc29uKC4qKT8vZ2kpO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkIHRoZSBXRlMgVVJMIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cclxuICogQHBhcmFtIG9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHBhcmFtIGV4dGVudCAgQW4gZXh0ZW50IGxpa2UgYXJyYXkgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cclxuICogQHBhcmFtIHByb2ogIG9sUHJvamVjdGlvblxyXG4gKiBAcGFyYW0gb2djRmlsdGVycyAgT2djRmlsdGVyc09wdGlvbnNcclxuICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBkYXRhc291cmNlIG9wdGlvbnMsIGJhc2VkIG9uIGZpbHRlciBhbmQgdmlld3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVybChcclxuICBvcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBleHRlbnQ6IEV4dGVudCxcclxuICBwcm9qOiBvbFByb2plY3Rpb24sXHJcbiAgb2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnMsXHJcbiAgcmFuZG9tUGFyYW0/OiBib29sZWFuXHJcbik6IHN0cmluZyB7XHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gb3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhcclxuICAgIG9wdGlvbnMsXHJcbiAgICB1bmRlZmluZWQsXHJcbiAgICBvcHRpb25zLnBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgKTtcclxuICBsZXQgaWdvRmlsdGVycztcclxuICBpZiAob2djRmlsdGVycz8uZW5hYmxlZCkge1xyXG4gICAgaWdvRmlsdGVycyA9IG9nY0ZpbHRlcnM/LmZpbHRlcnM7XHJcbiAgfVxyXG4gIGNvbnN0IG9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcclxuICBjb25zdCBmaWx0ZXJPckJveCA9IG9nY0ZpbHRlcldyaXRlci5idWlsZEZpbHRlcihcclxuICAgIGlnb0ZpbHRlcnMsXHJcbiAgICBleHRlbnQsXHJcbiAgICBwcm9qLFxyXG4gICAgb2djRmlsdGVycz8uZ2VvbWV0cnlOYW1lLFxyXG4gICAgb3B0aW9uc1xyXG4gICk7XHJcbiAgbGV0IGZpbHRlck9yUHVzaCA9IG9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxyXG4gICAgb3B0aW9ucyxcclxuICAgIG9nY0ZpbHRlcnM/Lmdlb21ldHJ5TmFtZSxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2pcclxuICApO1xyXG5cclxuICBsZXQgcHJlZml4ID0gJ2ZpbHRlcic7XHJcbiAgaWYgKCFmaWx0ZXJPclB1c2gpIHtcclxuICAgIHByZWZpeCA9ICdiYm94JztcclxuICAgIGZpbHRlck9yUHVzaCA9IGV4dGVudC5qb2luKCcsJykgKyAnLCcgKyBwcm9qLmdldENvZGUoKTtcclxuICB9XHJcblxyXG4gIHBhcmFtc1dGUy54bWxGaWx0ZXIgPSBvZ2NGaWx0ZXJzPy5hZHZhbmNlZE9nY0ZpbHRlcnNcclxuICAgID8gZmlsdGVyT3JCb3hcclxuICAgIDogYCR7cHJlZml4fT0ke2ZpbHRlck9yUHVzaH1gO1xyXG4gIGxldCBiYXNlVXJsID0gcXVlcnlTdHJpbmdWYWx1ZXMuZmluZCgoZikgPT4gZi5uYW1lID09PSAnZ2V0ZmVhdHVyZScpLnZhbHVlO1xyXG4gIGNvbnN0IHBhdHRlcm5GaWx0ZXIgPSAvKGZpbHRlcnxiYm94KT0uKi9naTtcclxuICBiYXNlVXJsID0gcGF0dGVybkZpbHRlci50ZXN0KHBhcmFtc1dGUy54bWxGaWx0ZXIpXHJcbiAgICA/IGAke2Jhc2VVcmx9JiR7cGFyYW1zV0ZTLnhtbEZpbHRlcn1gXHJcbiAgICA6IGJhc2VVcmw7XHJcbiAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHtcclxuICAgIGR5bmFtaWNVcmw6IGJhc2VVcmxcclxuICB9KTtcclxuICBpZiAocmFuZG9tUGFyYW0pIHtcclxuICAgIGJhc2VVcmwgKz0gYCQmX3Qke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XHJcbiAgfVxyXG4gIHJldHVybiBiYXNlVXJsLnJlcGxhY2UoLyYmL2csICcmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBidWlsZC9zdGFuZGFyZGl6ZSBXRlMgY2FsbCBxdWVyeSBwYXJhbXMgYmFzZWQgb24gdGhlIGxheWVyIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0gd2ZzRGF0YVNvdXJjZU9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHBhcmFtIGNvdW50ICBOdW1iZXI6IFVzZWQgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIGZlYXR1cmUuIFVzZWQgdG8gYnlwYXNzIHdoZSB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZSAobWF4RmVhdHVyZXMpXHJcbiAqIEBwYXJhbSBlcHNnICBTdHJpbmc6IFVzZWQgdG8gY29udHJvbCB0aGUgRVBTRyBjb2RlIChlczogJ0VQU0czODU3JykuIFVzZWQgdG8gYnlwYXNzIHdoZSB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZSAoc3JzTmFtZSlcclxuICogQHBhcmFtIHByb3BlcnRpZXMgIFN0cmluZzogVXNlZCB0byBjb250cm9sIHRoZSBxdWVyaWVkIGZpZWxkcyAgKFdGUyBzZXJ2aWNlKS5cclxuICogQHJldHVybnMgQW4gYXJyYXkgYXJyYXkgb2Yge25hbWU6ICcnLCB2YWx1ZTogJyd9IG9mIHByZWRlZmluZWQgcXVlcnkgcGFyYW1zLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdGU1F1ZXJ5U3RyaW5nKFxyXG4gIGRhdGFTb3VyY2VPcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyB8IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIGNvdW50PzogbnVtYmVyLFxyXG4gIGVwc2c/OiBzdHJpbmcsXHJcbiAgcHJvcGVydGllcz86IHN0cmluZyxcclxuICBzdGFydEluZGV4OiBudW1iZXIgPSAwLFxyXG4gIGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdDogYm9vbGVhbiA9IGZhbHNlXHJcbik6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XHJcbiAgY29uc3QgdmVyc2lvbldmczIwMCA9ICcyLjAuMCc7IC8vIG5vdCB0aGUgc2FtZSB1c2FnZSBhcyBkZWZhdWx0V2ZzVmVyc2lvbi5cclxuICBjb25zdCB1cmwgPSBkYXRhU291cmNlT3B0aW9ucy51cmxXZnM7XHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTO1xyXG4gIGNvbnN0IGVmZmVjdGl2ZUNvdW50ID0gY291bnQgfHwgZGVmYXVsdE1heEZlYXR1cmVzO1xyXG4gIGNvbnN0IGVmZmVjdGl2ZVN0YXJ0SW5kZXggPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyBgc3RhcnRJbmRleD0ke3N0YXJ0SW5kZXh9YCA6ICcnO1xyXG4gIGNvbnN0IGVwc2dDb2RlID0gZXBzZyB8fCBkZWZhdWx0RXBzZztcclxuICBsZXQgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyBgb3V0cHV0Rm9ybWF0PSR7cGFyYW1zV0ZTLm91dHB1dEZvcm1hdH1gXHJcbiAgICA6ICcnO1xyXG4gIGxldCB2ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb25cclxuICAgID8gYHZlcnNpb249JHtwYXJhbXNXRlMudmVyc2lvbn1gXHJcbiAgICA6IGB2ZXJzaW9uPSR7ZGVmYXVsdFdmc1ZlcnNpb259YDtcclxuICBjb25zdCBwYXJhbVR5cGVuYW1lID1cclxuICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSB2ZXJzaW9uV2ZzMjAwID8gJ3R5cGVuYW1lcycgOiAndHlwZW5hbWUnO1xyXG4gIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGAke3BhcmFtVHlwZW5hbWV9PSR7cGFyYW1zV0ZTLmZlYXR1cmVUeXBlc31gO1xyXG4gIGNvbnN0IHBhcmFtTWF4RmVhdHVyZXMgPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyAnY291bnQnIDogJ21heEZlYXR1cmVzJztcclxuICBsZXQgY250ID0gY291bnRcclxuICAgID8gYCR7cGFyYW1NYXhGZWF0dXJlc309JHtlZmZlY3RpdmVDb3VudH1gXHJcbiAgICA6IHBhcmFtc1dGUy5tYXhGZWF0dXJlc1xyXG4gICAgPyBgJHtwYXJhbU1heEZlYXR1cmVzfT0ke3BhcmFtc1dGUy5tYXhGZWF0dXJlc31gXHJcbiAgICA6IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7ZWZmZWN0aXZlQ291bnR9YDtcclxuICBpZiAoZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBvdXRwdXRGb3JtYXQgPSAnJztcclxuICAgIHZlcnNpb24gPSAndmVyc2lvbj0xLjEuMCc7XHJcbiAgICBjbnQgPSBjbnQucmVwbGFjZSgnY291bnQnLCAnbWF4RmVhdHVyZXMnKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNycyA9IGVwc2dcclxuICAgID8gYHNyc25hbWU9JHtlcHNnQ29kZX1gXHJcbiAgICA6IHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICA/ICdzcnNuYW1lPScgKyBwYXJhbXNXRlMuc3JzTmFtZVxyXG4gICAgOiBgc3JzbmFtZT0ke2Vwc2dDb2RlfWA7XHJcblxyXG4gIGxldCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICBsZXQgdmFsdWVSZWZlcmVuY2UgPSAnJztcclxuICBpZiAocHJvcGVydGllcykge1xyXG4gICAgcHJvcGVydHlOYW1lID0gYHByb3BlcnR5TmFtZT0ke3Byb3BlcnRpZXN9YDtcclxuICAgIHZhbHVlUmVmZXJlbmNlID0gYHZhbHVlUmVmZXJlbmNlPSR7cHJvcGVydGllc31gO1xyXG4gIH1cclxuICBjb25zdCBzb3VyY2VGaWVsZHMgPSBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHM7XHJcbiAgaWYgKCFwcm9wZXJ0eU5hbWUgJiYgc291cmNlRmllbGRzICYmIHNvdXJjZUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBmaWVsZHNOYW1lcyA9IFtdO1xyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goKHNvdXJjZWZpZWxkKSA9PiB7XHJcbiAgICAgIGZpZWxkc05hbWVzLnB1c2goc291cmNlZmllbGQubmFtZSk7XHJcbiAgICB9KTtcclxuICAgIHByb3BlcnR5TmFtZSA9IGBwcm9wZXJ0eU5hbWU9JHtmaWVsZHNOYW1lcy5qb2luKCcsJyl9LCR7XHJcbiAgICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeVxyXG4gICAgfWA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBzZXBhcmF0b3IgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJztcclxuICBjb25zdCBnZXRDYXBhYmlsaXRpZXMgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRDYXBhYmlsaXRpZXMmJHt2ZXJzaW9ufWA7XHJcbiAgbGV0IGdldEZlYXR1cmUgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRGZWF0dXJlJiR7dmVyc2lvbn0mJHtmZWF0dXJlVHlwZXN9JmA7XHJcbiAgZ2V0RmVhdHVyZSArPSBgJHtvdXRwdXRGb3JtYXR9JiR7c3JzfSYke2NudH0mJHtwcm9wZXJ0eU5hbWV9JiR7ZWZmZWN0aXZlU3RhcnRJbmRleH1gO1xyXG5cclxuICBsZXQgZ2V0cHJvcGVydHl2YWx1ZSA9IGAke3VybH0/c2VydmljZT1XRlMmcmVxdWVzdD1HZXRQcm9wZXJ0eVZhbHVlJnZlcnNpb249JHt2ZXJzaW9uV2ZzMjAwfSYke2ZlYXR1cmVUeXBlc30mYDtcclxuICBnZXRwcm9wZXJ0eXZhbHVlICs9IGAmJHtjbnR9JiR7dmFsdWVSZWZlcmVuY2V9YDtcclxuXHJcbiAgcmV0dXJuIFtcclxuICAgIHsgbmFtZTogJ291dHB1dGZvcm1hdCcsIHZhbHVlOiBvdXRwdXRGb3JtYXQgfSxcclxuICAgIHsgbmFtZTogJ3ZlcnNpb24nLCB2YWx1ZTogdmVyc2lvbiB9LFxyXG4gICAgeyBuYW1lOiAndHlwZW5hbWUnLCB2YWx1ZTogZmVhdHVyZVR5cGVzIH0sXHJcbiAgICB7IG5hbWU6ICdjb3VudCcsIHZhbHVlOiBjbnQgfSxcclxuICAgIHsgbmFtZTogJ3Nyc25hbWUnLCB2YWx1ZTogc3JzIH0sXHJcbiAgICB7IG5hbWU6ICdwcm9wZXJ0eW5hbWUnLCB2YWx1ZTogcHJvcGVydHlOYW1lIH0sXHJcbiAgICB7IG5hbWU6ICd2YWx1ZXJlZmVyZW5jZScsIHZhbHVlOiB2YWx1ZVJlZmVyZW5jZSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0Y2FwYWJpbGl0aWVzJywgdmFsdWU6IGdldENhcGFiaWxpdGllcy5yZXBsYWNlKC8mJi9nLCAnJicpIH0sXHJcbiAgICB7IG5hbWU6ICdnZXRmZWF0dXJlJywgdmFsdWU6IGdldEZlYXR1cmUucmVwbGFjZSgvJiYvZywgJyYnKSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0cHJvcGVydHl2YWx1ZScsIHZhbHVlOiBnZXRwcm9wZXJ0eXZhbHVlLnJlcGxhY2UoLyYmL2csICcmJykgfVxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWYWxpZGF0ZS9Nb2RpZnkgbGF5ZXIncyB3ZnMgb3B0aW9ucyBiYXNlZCBvbiA6XHJcbiAqIDEtIGFuIE9wZW5sYXllcnMncyBpc3N1ZSB3aXRoIEdNTCBwcm92aWRlZCBmcm9tIFdGUy4gUmVmZXIgdG9cclxuICogaHR0cHM6Ly9naXRodWIuY29tL29wZW5sYXllcnMvb3BlbmxheWVycy9wdWxsLzY0MDBcclxuICogMi0gU2V0IGRlZmF1bHQgdmFsdWVzIGZvciBvcHRpb25hbHMgcGFyYW1ldGVycy5cclxuICogQHBhcmFtIHdmc0RhdGFTb3VyY2VPcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IGFycmF5IG9mIHtuYW1lOiAnJywgdmFsdWU6ICcnfSBvZiBwcmVkZWZpbmVkIHF1ZXJ5IHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGVja1dmc1BhcmFtcyh3ZnNEYXRhU291cmNlT3B0aW9ucywgc3JjVHlwZT86IHN0cmluZykge1xyXG4gIGlmIChzcmNUeXBlICYmIHNyY1R5cGUgPT09ICd3ZnMnKSB7XHJcbiAgICAvLyByZWFzc2lnbmF0aW9uIG9mIHBhcmFtcyB0byBwYXJhbXNXRlMgYW5kIHVybCB0byB1cmxXRlMgdG8gaGF2ZSBhIGNvbW1vbiBpbnRlcmZhY2Ugd2l0aCB3bXMtd2ZzIGRhdGFzb3VyY2VzXHJcbiAgICB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXM7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzID1cclxuICAgIHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybFdmcyB8fCB3ZnNEYXRhU291cmNlT3B0aW9ucy51cmw7XHJcblxyXG4gIHBhcmFtc1dGUy52ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb24gfHwgZGVmYXVsdFdmc1ZlcnNpb247XHJcbiAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5ID1cclxuICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcbiAgcGFyYW1zV0ZTLm1heEZlYXR1cmVzID0gcGFyYW1zV0ZTLm1heEZlYXR1cmVzIHx8IGRlZmF1bHRNYXhGZWF0dXJlcztcclxuXHJcbiAgbGV0IG91dHB1dEZvcm1hdDtcclxuICBpZiAocGFyYW1zV0ZTLm91dHB1dEZvcm1hdCkge1xyXG4gICAgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICB9XHJcblxyXG4gIGlmIChnbWxSZWdleC50ZXN0KG91dHB1dEZvcm1hdCkgfHwgIW91dHB1dEZvcm1hdCkge1xyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPSAnMS4xLjAnO1xyXG4gIH1cclxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgd2ZzRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoXHJcbiAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4pIHtcclxuICBjb25zdCB3ZnNPcHRpb25zID0gb3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcclxuXHJcbiAgbGV0IG9sRm9ybWF0Q2xzO1xyXG4gIGNvbnN0IG91dHB1dEZvcm1hdCA9IHdmc09wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyB3ZnNPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXRcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAoIW91dHB1dEZvcm1hdCkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBpZiAoT2xGb3JtYXRbb3V0cHV0Rm9ybWF0XSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdFtvdXRwdXRGb3JtYXRdO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDInKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHtcclxuICAgICAgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLFxyXG4gICAgICAuLi57IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwyIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDMyJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7XHJcbiAgICAgIC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyxcclxuICAgICAgLi4ueyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMzIgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMycpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoe1xyXG4gICAgICAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsXHJcbiAgICAgIC4uLnsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDMgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgndG9wb2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5Ub3BvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnZW9qc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR2VvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdlc3JpanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkVzcmlKU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HZW9KU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dweCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkdQWDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdXS1QnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XS1Q7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnb3NteG1sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gb2xGb3JtYXRPU01YTUw7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgna21sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuS01MO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBvbEZvcm1hdENscygpO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZVdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV01UU0RhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gIC8vIHR5cGU/OiAnd210cyc7XHJcbiAgcHJvamVjdGlvbj86IHN0cmluZztcclxuICBsYXllcjogc3RyaW5nO1xyXG4gIHN0eWxlPzogc3RyaW5nO1xyXG4gIHZlcnNpb24/OiBzdHJpbmc7XHJcbiAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIG1hdHJpeFNldD86IHN0cmluZztcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgdXJscz86IHN0cmluZ1tdO1xyXG4gIG9sPzogb2xTb3VyY2VXTVRTO1xyXG59XHJcbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export class WMTSDataSource extends DataSource {
|
|
|
13
13
|
}
|
|
14
14
|
onUnwatch() { }
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd210cy1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBSTVDLFlBQVksT0FBOEI7UUFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2pDO1lBQ0UsUUFBUSxFQUFFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBb0IsQ0FBQztTQUNuRSxFQUNELElBQUksQ0FBQyxPQUFPLENBQ0YsQ0FBQztRQUViLE9BQU8sSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVMsS0FBSSxDQUFDO0NBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTJztcbmltcG9ydCBvbFNvdXJjZVdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xuXG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGlsZUdyaWQgfSBmcm9tICcuLi8uLi91dGlscy90aWxlZ3JpZCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd210cy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBXTVRTRGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgZGVjbGFyZSBvcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnM7XG4gIHB1YmxpYyBkZWNsYXJlIG9sOiBvbFNvdXJjZVdNVFM7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VXTVRTIHtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgdGlsZUdyaWQ6IGNyZWF0ZURlZmF1bHRUaWxlR3JpZCh0aGlzLm9wdGlvbnMucHJvamVjdGlvbiBhcyBzdHJpbmcpXG4gICAgICB9LFxuICAgICAgdGhpcy5vcHRpb25zXG4gICAgKSBhcyBPcHRpb25zO1xuXG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVdNVFMoc291cmNlT3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge31cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMveHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBYWVpEYXRhU291cmNlT3B0aW9ucyBleHRlbmRzIERhdGFTb3VyY2VPcHRpb25zIHtcclxuICAvLyB0eXBlPzogJ3h5eic7XHJcbiAgcHJvamVjdGlvbj86IHN0cmluZztcclxuICBvbD86IG9sU291cmNlWFlaO1xyXG4gIHVybD86IHN0cmluZztcclxuICB1cmxzPzogc3RyaW5nW107XHJcbiAgcGF0aE9mZmxpbmU/OiBzdHJpbmc7XHJcbiAgZXhjbHVkZUF0dHJpYnV0ZT86IEFycmF5PHN0cmluZz47XHJcbiAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmU/OiBBcnJheTxzdHJpbmc+O1xyXG59XHJcbiJdfQ==
|
|
@@ -6,4 +6,4 @@ export class XYZDataSource extends DataSource {
|
|
|
6
6
|
}
|
|
7
7
|
onUnwatch() { }
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy94eXotZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcxQyxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFJakMsY0FBYztRQUN0QixPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XG5cbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3h5ei1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBYWVpEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFhZWkRhdGFTb3VyY2VPcHRpb25zO1xuICBwdWJsaWMgZGVjbGFyZSBvbDogb2xTb3VyY2VYWVo7XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlWFlaIHtcbiAgICByZXR1cm4gbmV3IG9sU291cmNlWFlaKHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge31cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { ConfigService } from '@igo2/core';
|
|
3
|
-
import { OptionsService } from './options.service';
|
|
4
3
|
import { OptionsApiService } from './options-api.service';
|
|
4
|
+
import { OptionsService } from './options.service';
|
|
5
5
|
export function optionsApiFactory(http, configService) {
|
|
6
6
|
return new OptionsApiService(http, configService.getConfig('optionsApi'));
|
|
7
7
|
}
|
|
@@ -12,4 +12,4 @@ export function provideOptionsApi() {
|
|
|
12
12
|
deps: [HttpClient, ConfigService]
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTztRQUNMLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPcHRpb25zQXBpU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbnNBcGlGYWN0b3J5KFxyXG4gIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxyXG4pIHtcclxuICByZXR1cm4gbmV3IE9wdGlvbnNBcGlTZXJ2aWNlKGh0dHAsIGNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdvcHRpb25zQXBpJykpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9wdGlvbnNBcGkoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHByb3ZpZGU6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgdXNlRmFjdG9yeTogb3B0aW9uc0FwaUZhY3RvcnksXHJcbiAgICBkZXBzOiBbSHR0cENsaWVudCwgQ29uZmlnU2VydmljZV1cclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
1
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
3
|
import { of } from 'rxjs';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import { OptionsService } from './options.service';
|
|
@@ -82,4 +82,4 @@ export class OptionsApiService extends OptionsService {
|
|
|
82
82
|
type: Inject,
|
|
83
83
|
args: ['options']
|
|
84
84
|
}] }]; }, null); })();
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL29wdGlvbnMvb3B0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS25ELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBS3pDO0lBSkYsTUFBTSxDQUFTO0lBQ2YsaUJBQWlCLENBQVU7SUFFbkMsWUFDVSxJQUFnQixFQUNMLFVBQTZCLEVBQUU7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxDQUFDO0lBRUQsYUFBYSxDQUNYLFdBQWlDLEVBQ2pDLGtCQUEyQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLEVBQUUsQ0FBQyxFQUEwQixDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMxQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUN0QixHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3BCLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDbEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUN2RDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNELENBQUMsR0FHQSxFQUFFLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsT0FBTyxFQUEwQixDQUFDO2FBQ25DO1lBQ0QsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFO2dCQUNwQixHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDOUQ7WUFDRCxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsV0FHbUMsRUFDbkMsa0JBQTJCO1FBTTNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEVBQXNDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztnQkFDcEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FDRCxDQUFDLEdBTUEsRUFBRSxFQUFFO1lBQ0gsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLE9BQU8sRUFHNEIsQ0FBQzthQUNyQztZQUNELElBQUksR0FBRyxDQUFDLFlBQVksRUFBRTtnQkFDcEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOzJFQTNHVSxpQkFBaUIsMENBTWxCLFNBQVM7Z0VBTlIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFGaEIsTUFBTTs7dUZBRVAsaUJBQWlCO2NBSDdCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBT0ksTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZXMnO1xyXG5pbXBvcnQgeyBPcHRpb25zQXBpT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucy1hcGkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcHRpb25zQXBpU2VydmljZSBleHRlbmRzIE9wdGlvbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVybEFwaTogc3RyaW5nO1xyXG4gIHByaXZhdGUgcHJvdmlkZUNvbnRleHRVcmk6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IE9wdGlvbnNBcGlPcHRpb25zID0ge31cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnVybEFwaSA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsQXBpO1xyXG4gICAgdGhpcy5wcm92aWRlQ29udGV4dFVyaSA9XHJcbiAgICAgIG9wdGlvbnMucHJvdmlkZUNvbnRleHRVcmkgfHwgdGhpcy5wcm92aWRlQ29udGV4dFVyaTtcclxuICB9XHJcblxyXG4gIGdldFdNU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBpZiAoIXRoaXMudXJsQXBpKSB7XHJcbiAgICAgIHJldHVybiBvZih7fSBhcyBXTVNEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgdHlwZTogYmFzZU9wdGlvbnMudHlwZSxcclxuICAgICAgICB1cmw6IGJhc2VPcHRpb25zLnVybCxcclxuICAgICAgICBsYXllcnM6IGJhc2VPcHRpb25zLnBhcmFtcy5MQVlFUlNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvbnRleHQnLCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsQXBpLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIChyZXM6IHtcclxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgICAgbGF5ZXJPcHRpb25zOiB7IFtrZXlzOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcyB8fCAhcmVzLnNvdXJjZU9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHt9IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlcy5sYXllck9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmVzLnNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UgPSByZXMubGF5ZXJPcHRpb25zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHJlcy5zb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFyY2dpc1Jlc3RPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6XHJcbiAgICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxcclxuICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICA+IHtcclxuICAgIGlmICghdGhpcy51cmxBcGkpIHtcclxuICAgICAgcmV0dXJuIG9mKHt9IGFzIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgIH1cclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICB0eXBlOiBiYXNlT3B0aW9ucy50eXBlLFxyXG4gICAgICAgIHVybDogYmFzZU9wdGlvbnMudXJsLFxyXG4gICAgICAgIGxheWVyczogYmFzZU9wdGlvbnMubGF5ZXJcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvbnRleHQnLCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsQXBpLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIChyZXM6IHtcclxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6XHJcbiAgICAgICAgICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgICAgbGF5ZXJPcHRpb25zOiB7IFtrZXlzOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcyB8fCAhcmVzLnNvdXJjZU9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHt9IGFzXHJcbiAgICAgICAgICAgICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICAgICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlcy5sYXllck9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmVzLnNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UgPSByZXMubGF5ZXJPcHRpb25zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHJlcy5zb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class OptionsService {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFnQixjQUFjO0NBZ0JuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgV01TRGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT3B0aW9uc1NlcnZpY2Uge1xuICBhYnN0cmFjdCBnZXRXTVNPcHRpb25zKFxuICAgIF9iYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8V01TRGF0YVNvdXJjZU9wdGlvbnM+O1xuICBhYnN0cmFjdCBnZXRBcmNnaXNSZXN0T3B0aW9ucyhcbiAgICBfYmFzZU9wdGlvbnM6XG4gICAgICB8IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFxuICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xuICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICA+O1xufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import olTileGridWMTS from 'ol/tilegrid/WMTS';
|
|
2
|
-
import * as olproj from 'ol/proj';
|
|
3
1
|
import { getTopLeft as extentGetTopLeft, getWidth as extentGetWidth } from 'ol/extent.js';
|
|
2
|
+
import * as olproj from 'ol/proj';
|
|
3
|
+
import olTileGridWMTS from 'ol/tilegrid/WMTS';
|
|
4
4
|
export function createDefaultTileGrid(epsg) {
|
|
5
5
|
const projection = epsg ? olproj.get(epsg) : olproj.get('EPSG:3857');
|
|
6
6
|
const projectionExtent = projection.getExtent();
|
|
@@ -17,4 +17,4 @@ export function createDefaultTileGrid(epsg) {
|
|
|
17
17
|
matrixIds
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL3RpbGVncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLElBQUksZ0JBQWdCLEVBQzlCLFFBQVEsSUFBSSxjQUFjLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFhO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGdldFRvcExlZnQgYXMgZXh0ZW50R2V0VG9wTGVmdCxcclxuICBnZXRXaWR0aCBhcyBleHRlbnRHZXRXaWR0aFxyXG59IGZyb20gJ29sL2V4dGVudC5qcyc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IG9sVGlsZUdyaWRXTVRTIGZyb20gJ29sL3RpbGVncmlkL1dNVFMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRUaWxlR3JpZChlcHNnPzogc3RyaW5nKTogb2xUaWxlR3JpZFdNVFMge1xyXG4gIGNvbnN0IHByb2plY3Rpb24gPSBlcHNnID8gb2xwcm9qLmdldChlcHNnKSA6IG9scHJvai5nZXQoJ0VQU0c6Mzg1NycpO1xyXG4gIGNvbnN0IHByb2plY3Rpb25FeHRlbnQgPSBwcm9qZWN0aW9uLmdldEV4dGVudCgpO1xyXG4gIGNvbnN0IHNpemUgPSBleHRlbnRHZXRXaWR0aChwcm9qZWN0aW9uRXh0ZW50KSAvIDI1NjtcclxuICBjb25zdCByZXNvbHV0aW9ucyA9IG5ldyBBcnJheSgyMCk7XHJcbiAgY29uc3QgbWF0cml4SWRzID0gbmV3IEFycmF5KDIwKTtcclxuICBmb3IgKGxldCB6ID0gMDsgeiA8IDIwOyArK3opIHtcclxuICAgIHJlc29sdXRpb25zW3pdID0gc2l6ZSAvIE1hdGgucG93KDIsIHopO1xyXG4gICAgbWF0cml4SWRzW3pdID0gejtcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgb2xUaWxlR3JpZFdNVFMoe1xyXG4gICAgb3JpZ2luOiBleHRlbnRHZXRUb3BMZWZ0KHByb2plY3Rpb25FeHRlbnQpLFxyXG4gICAgcmVzb2x1dGlvbnMsXHJcbiAgICBtYXRyaXhJZHNcclxuICB9KTtcclxufVxyXG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Component, Input, Optional } from '@angular/core';
|
|
2
2
|
import { LanguageService, MessageService, RouteService } from '@igo2/core';
|
|
3
3
|
import { Clipboard } from '@igo2/utils';
|
|
4
|
-
import {
|
|
4
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
5
|
import { roundCoordTo } from '../../map/shared/map.utils';
|
|
6
|
+
import { DirectionsService } from '../shared';
|
|
6
7
|
import { addStopToStore, formatDistance, formatDuration, formatInstruction } from '../shared/directions.utils';
|
|
7
8
|
import { RoutesFeatureStore, StepFeatureStore, StopsStore } from '../shared/store';
|
|
8
|
-
import { DirectionsService } from '../shared';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@igo2/core";
|
|
11
11
|
import * as i2 from "../shared";
|
|
@@ -248,7 +248,7 @@ export class DirectionsButtonsComponent {
|
|
|
248
248
|
}
|
|
249
249
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsButtonsComponent, [{
|
|
250
250
|
type: Component,
|
|
251
|
-
args: [{ selector: 'igo-directions-buttons', template: "<div class=\"igo-form-button-group\">\
|
|
251
|
+
args: [{ selector: 'igo-directions-buttons', template: "<div class=\"igo-form-button-group\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.addStop' | translate\"\n color=\"primary\"\n (click)=\"addStop()\"\n >\n <mat-icon svgIcon=\"map-marker-plus\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"\n (routesFeatureStore.count$ | async) >= 1 ||\n (stopsStore.count$ | async) >= 1\n \"\n [matTooltip]=\"'igo.geo.directionsForm.resetDirectionsBtn' | translate\"\n color=\"warn\"\n (click)=\"resetStops()\"\n >\n <mat-icon svgIcon=\"file-restore\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"zoomRoute()\"\n [matTooltip]=\"'igo.geo.directionsForm.zoomRoute' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"magnify-plus-outline\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyDirectionsToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.copy' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyLinkToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.link' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"link\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"printDirections()\"\n [disabled]=\"disabled$ | async\"\n [matTooltip]=\"'igo.geo.directionsForm.print' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"printer\"></mat-icon>\n </button>\n</div>\n" }]
|
|
252
252
|
}], function () { return [{ type: i1.LanguageService }, { type: i1.MessageService }, { type: i1.RouteService, decorators: [{
|
|
253
253
|
type: Optional
|
|
254
254
|
}] }, { type: i2.DirectionsService }]; }, { contextUri: [{
|
|
@@ -262,4 +262,4 @@ export class DirectionsButtonsComponent {
|
|
|
262
262
|
}], stepFeatureStore: [{
|
|
263
263
|
type: Input
|
|
264
264
|
}] }); })();
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNYLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7OztJQ1A1QyxpQ0FXQztJQURDLDBLQUFTLGVBQUEsbUJBQVksQ0FBQSxJQUFDOztJQUV0Qiw4QkFBNEM7SUFDOUMsaUJBQVM7O0lBTFAsOEZBQXNFOzs7O0lBTXhFLGlDQVFDO0lBSEMsMEtBQVMsZUFBQSxrQkFBVyxDQUFBLElBQUM7O0lB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UzsyQkFDRSx3QkFBd0I7O3NCQXFCL0IsUUFBUTt3REFYRixVQUFVO2tCQUFsQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFJvdXRlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEZlYXR1cmVXaXRoRGlyZWN0aW9uIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgYWRkU3RvcFRvU3RvcmUsXHJcbiAgZm9ybWF0RGlzdGFuY2UsXHJcbiAgZm9ybWF0RHVyYXRpb24sXHJcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cclxufSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgUm91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIFN0ZXBGZWF0dXJlU3RvcmUsXHJcbiAgU3RvcHNTdG9yZVxyXG59IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtYnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IHtcclxuICBnZXQgYWN0aXZlUm91dGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmVcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgem9vbVRvQWN0aXZlUm91dGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTZXJ2aWNlOiBEaXJlY3Rpb25zU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcmVzZXRTdG9wcygpIHtcclxuICAgIHRoaXMuc3RvcHNTdG9yZS5jbGVhclN0b3BzKCk7XHJcbiAgfVxyXG5cclxuICAvLyBzdG9wIGFyZSBhbHdheXMgYWRkZWQgYmVmb3JlIHRoZSBsYXN0IHN0b3AuXHJcbiAgYWRkU3RvcCgpOiB2b2lkIHtcclxuICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgfVxyXG5cclxuICBjb3B5TGlua1RvQ2xpcGJvYXJkKCkge1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KHRoaXMuZ2V0VXJsKCkpO1xyXG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRpYWxvZy5jb3B5TXNnTGluaycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21Sb3V0ZSgpIHtcclxuICAgIHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNvcHlEaXJlY3Rpb25zVG9DbGlwYm9hcmQoKSB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9IHRoaXMuZGlyZWN0aW9uc1RvVGV4dCgpO1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KGRpcmVjdGlvbnNCb2R5KTtcclxuICAgIGlmIChzdWNjZXNzZnVsKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kaWFsb2cuY29weU1zZycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlyZWN0aW9uc1RvVGV4dCgpIHtcclxuICAgIGNvbnN0IGluZGVudCA9ICdcXHQnO1xyXG4gICAgbGV0IGFjdGl2ZVJvdXRlRGlyZWN0aXZlID1cclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uaW5zdHJ1Y3Rpb25zJ1xyXG4gICAgICApICsgJzpcXG4nO1xyXG4gICAgbGV0IHdheVBvaW50TGlzdCA9ICcnO1xyXG4gICAgY29uc3Qgc3VtbWFyeSA9XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN1bW1hcnknKSArXHJcbiAgICAgICc6IFxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLnRpdGxlICtcclxuICAgICAgJ1xcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICBmb3JtYXREaXN0YW5jZSh0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLmRpc3RhbmNlKSArXHJcbiAgICAgICdcXG4nICtcclxuICAgICAgaW5kZW50ICtcclxuICAgICAgZm9ybWF0RHVyYXRpb24odGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmRpcmVjdGlvbi5kdXJhdGlvbikgK1xyXG4gICAgICAnXFxuXFxuJyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BzTGlzdCdcclxuICAgICAgKSArXHJcbiAgICAgICc6XFxuJztcclxuXHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5saW5rJykgK1xyXG4gICAgICAnOlxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmdldFVybCgpO1xyXG5cclxuICAgIGxldCB3YXlQb2ludHNDbnQgPSAxO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnZpZXcuYWxsKCkuZm9yRWFjaCgoc3RvcCkgPT4ge1xyXG4gICAgICBsZXQgY29vcmQgPSAnJztcclxuICAgICAgbGV0IHN0b3BUZXh0ID0gJyc7XHJcbiAgICAgIGlmIChzdG9wLnRleHQgIT09IHJvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJykpIHtcclxuICAgICAgICBzdG9wVGV4dCA9IHN0b3AudGV4dDtcclxuICAgICAgICBjb29yZCA9IGAgKCAke3JvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJyl9IClgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0b3BUZXh0ID0gcm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMpLmpvaW4oJywnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2F5UG9pbnRMaXN0ID1cclxuICAgICAgICB3YXlQb2ludExpc3QgK1xyXG4gICAgICAgIGluZGVudCArXHJcbiAgICAgICAgd2F5UG9pbnRzQ250LnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIHN0b3BUZXh0ICtcclxuICAgICAgICBjb29yZCArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIHdheVBvaW50c0NudCsrO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGxvY2FsQ250ID0gMDtcclxuICAgIHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0cnVjdGlvbiA9IHRoaXMuZm9ybWF0U3RlcChzdGVwLCBsb2NhbENudCkuaW5zdHJ1Y3Rpb247XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID1cclxuICAgICAgICBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6ICcgKCcgKyBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSArICcpJztcclxuICAgICAgYWN0aXZlUm91dGVEaXJlY3RpdmUgPVxyXG4gICAgICAgIGFjdGl2ZVJvdXRlRGlyZWN0aXZlICtcclxuICAgICAgICBpbmRlbnQgK1xyXG4gICAgICAgIChsb2NhbENudCArIDEpLnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIGluc3RydWN0aW9uICtcclxuICAgICAgICBkaXN0YW5jZSArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIGxvY2FsQ250Kys7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9XHJcbiAgICAgIHN1bW1hcnkgKyB3YXlQb2ludExpc3QgKyAnXFxuJyArIHVybCArICdcXG5cXG4nICsgYWN0aXZlUm91dGVEaXJlY3RpdmU7XHJcblxyXG4gICAgcmV0dXJuIGRpcmVjdGlvbnNCb2R5O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U3RlcChzdGVwLCBjbnQpIHtcclxuICAgIHJldHVybiBmb3JtYXRJbnN0cnVjdGlvbihcclxuICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLm1vZGlmaWVyLFxyXG4gICAgICBzdGVwLm5hbWUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcclxuICAgICAgY250LFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLmV4aXQsXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgICBjbnQgPT09IHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXJsKCkge1xyXG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjb250ZXh0ID0gJyc7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0VXJpKSB7XHJcbiAgICAgIGNvbnRleHQgPSBgY29udGV4dD0ke3RoaXMuY29udGV4dFVyaX0mYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3MgPSB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLm1hcCgoZGlyZWN0aW9uOiBGZWF0dXJlV2l0aERpcmVjdGlvbikgPT4gZGlyZWN0aW9uLnByb3BlcnRpZXMuaWQpXHJcbiAgICAgIC5pbmRleE9mKHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5pZCk7XHJcbiAgICBsZXQgcm91dGluZ09wdGlvbnMgPSAnJztcclxuICAgIGlmIChwb3MgIT09IDApIHtcclxuICAgICAgY29uc3Qgcm91dGluZ09wdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc09wdGlvbnNLZXk7XHJcbiAgICAgIHJvdXRpbmdPcHRpb25zID0gYCYke3JvdXRpbmdPcHRpb25zS2V5fT1yZXN1bHQ6JHtwb3N9YDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpcmVjdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc0Nvb3JkS2V5O1xyXG4gICAgY29uc3Qgc3RvcHNDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wKSA9PiByb3VuZENvb3JkVG8oc3RvcC5jb29yZGluYXRlcywgNikpO1xyXG4gICAgbGV0IGRpcmVjdGlvbnNVcmwgPSAnJztcclxuICAgIGlmIChzdG9wc0Nvb3JkaW5hdGVzLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgIGRpcmVjdGlvbnNVcmwgPSBgJHtkaXJlY3Rpb25zS2V5fT0ke3N0b3BzQ29vcmRpbmF0ZXMuam9pbignOycpfWA7XHJcbiAgICAgIHJldHVybiBgJHtsb2NhdGlvbi5vcmlnaW59JHtsb2NhdGlvbi5wYXRobmFtZX0/JHtjb250ZXh0fXRvb2w9ZGlyZWN0aW9ucyZzaWRlbmF2PTEmJHtkaXJlY3Rpb25zVXJsfSR7cm91dGluZ09wdGlvbnN9YDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaW50RGlyZWN0aW9ucygpIHtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xyXG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGlyZWN0aW9uc1NlcnZpY2VcclxuICAgICAgLmRvd25sb2FkRGlyZWN0aW9uKFxyXG4gICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLm1hcCxcclxuICAgICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5hZGRTdG9wJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgKGNsaWNrKT1cImFkZFN0b3AoKVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtYXAtbWFya2VyLXBsdXNcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMSB8fFxyXG4gICAgICAoc3RvcHNTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVxyXG4gICAgXCJcclxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlc2V0RGlyZWN0aW9uc0J0bicgfCB0cmFuc2xhdGVcIlxyXG4gICAgY29sb3I9XCJ3YXJuXCJcclxuICAgIChjbGljayk9XCJyZXNldFN0b3BzKClcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZmlsZS1yZXN0b3JlXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtaWNvbi1idXR0b25cclxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICpuZ0lmPVwiKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVwiXHJcbiAgICAoY2xpY2spPVwiem9vbVJvdXRlKClcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uem9vbVJvdXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibWFnbmlmeS1wbHVzLW91dGxpbmVcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcclxuICAgIChjbGljayk9XCJjb3B5RGlyZWN0aW9uc1RvQ2xpcGJvYXJkKClcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uY29weScgfCB0cmFuc2xhdGVcIlxyXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICA+XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbnRlbnQtY29weVwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAqbmdJZj1cIihyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcIlxyXG4gICAgKGNsaWNrKT1cImNvcHlMaW5rVG9DbGlwYm9hcmQoKVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5saW5rJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibGlua1wiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcclxuICAgIChjbGljayk9XCJwcmludERpcmVjdGlvbnMoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucHJpbnQnIHwgdHJhbnNsYXRlXCJcclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJwcmludGVyXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDWCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztJQ1R2QixpQ0FXQztJQURDLDBLQUFTLGVBQUEsbUJBQVksQ0FBQSxJQUFDOztJQUV0Qiw4QkFBNEM7SUFDOUMsaUJBQVM7O0lBTFAsOEZBQXNFOzs7O0lBTXhFLGlDQVFDO0lBSEMsMEtBQVMsZUFBQSxrQkFBVyxDQUFBLElBQUM7O0lB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UzsyQkFDRSx3QkFBd0I7O3NCQXFCL0IsUUFBUTt3REFYRixVQUFVO2tCQUFsQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLCBSb3V0ZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgRmVhdHVyZVdpdGhEaXJlY3Rpb24gfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGFkZFN0b3BUb1N0b3JlLFxyXG4gIGZvcm1hdERpc3RhbmNlLFxyXG4gIGZvcm1hdER1cmF0aW9uLFxyXG4gIGZvcm1hdEluc3RydWN0aW9uXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIFJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzU3RvcmVcclxufSBmcm9tICcuLi9zaGFyZWQvc3RvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucy1idXR0b25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQge1xyXG4gIGdldCBhY3RpdmVSb3V0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLmZpbmQoKHJvdXRlKSA9PiByb3V0ZS5wcm9wZXJ0aWVzLmFjdGl2ZSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbnRleHRVcmk6IHN0cmluZztcclxuICBASW5wdXQoKSB6b29tVG9BY3RpdmVSb3V0ZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIEBJbnB1dCgpIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmU7XHJcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgc3RlcEZlYXR1cmVTdG9yZTogU3RlcEZlYXR1cmVTdG9yZTtcclxuXHJcbiAgcHVibGljIGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlyZWN0aW9uc1NlcnZpY2U6IERpcmVjdGlvbnNTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICByZXNldFN0b3BzKCkge1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLmNsZWFyU3RvcHMoKTtcclxuICB9XHJcblxyXG4gIC8vIHN0b3AgYXJlIGFsd2F5cyBhZGRlZCBiZWZvcmUgdGhlIGxhc3Qgc3RvcC5cclxuICBhZGRTdG9wKCk6IHZvaWQge1xyXG4gICAgYWRkU3RvcFRvU3RvcmUodGhpcy5zdG9wc1N0b3JlKTtcclxuICB9XHJcblxyXG4gIGNvcHlMaW5rVG9DbGlwYm9hcmQoKSB7XHJcbiAgICBjb25zdCBzdWNjZXNzZnVsID0gQ2xpcGJvYXJkLmNvcHkodGhpcy5nZXRVcmwoKSk7XHJcbiAgICBpZiAoc3VjY2Vzc2Z1bCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlNc2dMaW5rJyxcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kaWFsb2cuY29weVRpdGxlJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgem9vbVJvdXRlKCkge1xyXG4gICAgdGhpcy56b29tVG9BY3RpdmVSb3V0ZSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgY29weURpcmVjdGlvbnNUb0NsaXBib2FyZCgpIHtcclxuICAgIGNvbnN0IGRpcmVjdGlvbnNCb2R5ID0gdGhpcy5kaXJlY3Rpb25zVG9UZXh0KCk7XHJcbiAgICBjb25zdCBzdWNjZXNzZnVsID0gQ2xpcGJvYXJkLmNvcHkoZGlyZWN0aW9uc0JvZHkpO1xyXG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRpYWxvZy5jb3B5TXNnJyxcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kaWFsb2cuY29weVRpdGxlJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXJlY3Rpb25zVG9UZXh0KCkge1xyXG4gICAgY29uc3QgaW5kZW50ID0gJ1xcdCc7XHJcbiAgICBsZXQgYWN0aXZlUm91dGVEaXJlY3RpdmUgPVxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5pbnN0cnVjdGlvbnMnXHJcbiAgICAgICkgKyAnOlxcbic7XHJcbiAgICBsZXQgd2F5UG9pbnRMaXN0ID0gJyc7XHJcbiAgICBjb25zdCBzdW1tYXJ5ID1cclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uc3VtbWFyeScpICtcclxuICAgICAgJzogXFxuJyArXHJcbiAgICAgIGluZGVudCArXHJcbiAgICAgIHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24udGl0bGUgK1xyXG4gICAgICAnXFxuJyArXHJcbiAgICAgIGluZGVudCArXHJcbiAgICAgIGZvcm1hdERpc3RhbmNlKHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uZGlzdGFuY2UpICtcclxuICAgICAgJ1xcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICBmb3JtYXREdXJhdGlvbih0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLmR1cmF0aW9uKSArXHJcbiAgICAgICdcXG5cXG4nICtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uc3RvcHNMaXN0J1xyXG4gICAgICApICtcclxuICAgICAgJzpcXG4nO1xyXG5cclxuICAgIGNvbnN0IHVybCA9XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmxpbmsnKSArXHJcbiAgICAgICc6XFxuJyArXHJcbiAgICAgIGluZGVudCArXHJcbiAgICAgIHRoaXMuZ2V0VXJsKCk7XHJcblxyXG4gICAgbGV0IHdheVBvaW50c0NudCA9IDE7XHJcbiAgICB0aGlzLnN0b3BzU3RvcmUudmlldy5hbGwoKS5mb3JFYWNoKChzdG9wKSA9PiB7XHJcbiAgICAgIGxldCBjb29yZCA9ICcnO1xyXG4gICAgICBsZXQgc3RvcFRleHQgPSAnJztcclxuICAgICAgaWYgKHN0b3AudGV4dCAhPT0gcm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMpLmpvaW4oJywnKSkge1xyXG4gICAgICAgIHN0b3BUZXh0ID0gc3RvcC50ZXh0O1xyXG4gICAgICAgIGNvb3JkID0gYCAoICR7cm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMpLmpvaW4oJywnKX0gKWA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc3RvcFRleHQgPSByb3VuZENvb3JkVG8oc3RvcC5jb29yZGluYXRlcykuam9pbignLCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB3YXlQb2ludExpc3QgPVxyXG4gICAgICAgIHdheVBvaW50TGlzdCArXHJcbiAgICAgICAgaW5kZW50ICtcclxuICAgICAgICB3YXlQb2ludHNDbnQudG9Mb2NhbGVTdHJpbmcoKSArXHJcbiAgICAgICAgJy4gJyArXHJcbiAgICAgICAgc3RvcFRleHQgK1xyXG4gICAgICAgIGNvb3JkICtcclxuICAgICAgICAnXFxuJztcclxuICAgICAgd2F5UG9pbnRzQ250Kys7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgbG9jYWxDbnQgPSAwO1xyXG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmRpcmVjdGlvbi5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XHJcbiAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gdGhpcy5mb3JtYXRTdGVwKHN0ZXAsIGxvY2FsQ250KS5pbnN0cnVjdGlvbjtcclxuICAgICAgY29uc3QgZGlzdGFuY2UgPVxyXG4gICAgICAgIGZvcm1hdERpc3RhbmNlKHN0ZXAuZGlzdGFuY2UpID09PSB1bmRlZmluZWRcclxuICAgICAgICAgID8gJydcclxuICAgICAgICAgIDogJyAoJyArIGZvcm1hdERpc3RhbmNlKHN0ZXAuZGlzdGFuY2UpICsgJyknO1xyXG4gICAgICBhY3RpdmVSb3V0ZURpcmVjdGl2ZSA9XHJcbiAgICAgICAgYWN0aXZlUm91dGVEaXJlY3RpdmUgK1xyXG4gICAgICAgIGluZGVudCArXHJcbiAgICAgICAgKGxvY2FsQ250ICsgMSkudG9Mb2NhbGVTdHJpbmcoKSArXHJcbiAgICAgICAgJy4gJyArXHJcbiAgICAgICAgaW5zdHJ1Y3Rpb24gK1xyXG4gICAgICAgIGRpc3RhbmNlICtcclxuICAgICAgICAnXFxuJztcclxuICAgICAgbG9jYWxDbnQrKztcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGRpcmVjdGlvbnNCb2R5ID1cclxuICAgICAgc3VtbWFyeSArIHdheVBvaW50TGlzdCArICdcXG4nICsgdXJsICsgJ1xcblxcbicgKyBhY3RpdmVSb3V0ZURpcmVjdGl2ZTtcclxuXHJcbiAgICByZXR1cm4gZGlyZWN0aW9uc0JvZHk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTdGVwKHN0ZXAsIGNudCkge1xyXG4gICAgcmV0dXJuIGZvcm1hdEluc3RydWN0aW9uKFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLnR5cGUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIubW9kaWZpZXIsXHJcbiAgICAgIHN0ZXAubmFtZSxcclxuICAgICAgc3RlcC5tYW5ldXZlci5iZWFyaW5nX2FmdGVyLFxyXG4gICAgICBjbnQsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuZXhpdCxcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXHJcbiAgICAgIGNudCA9PT0gdGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmRpcmVjdGlvbi5zdGVwcy5sZW5ndGggLSAxXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcmwoKSB7XHJcbiAgICBpZiAoIXRoaXMucm91dGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGNvbnRleHQgPSAnJztcclxuICAgIGlmICh0aGlzLmNvbnRleHRVcmkpIHtcclxuICAgICAgY29udGV4dCA9IGBjb250ZXh0PSR7dGhpcy5jb250ZXh0VXJpfSZgO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcyA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChkaXJlY3Rpb246IEZlYXR1cmVXaXRoRGlyZWN0aW9uKSA9PiBkaXJlY3Rpb24ucHJvcGVydGllcy5pZClcclxuICAgICAgLmluZGV4T2YodGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmlkKTtcclxuICAgIGxldCByb3V0aW5nT3B0aW9ucyA9ICcnO1xyXG4gICAgaWYgKHBvcyAhPT0gMCkge1xyXG4gICAgICBjb25zdCByb3V0aW5nT3B0aW9uc0tleSA9IHRoaXMucm91dGUub3B0aW9ucy5kaXJlY3Rpb25zT3B0aW9uc0tleTtcclxuICAgICAgcm91dGluZ09wdGlvbnMgPSBgJiR7cm91dGluZ09wdGlvbnNLZXl9PXJlc3VsdDoke3Bvc31gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlyZWN0aW9uc0tleSA9IHRoaXMucm91dGUub3B0aW9ucy5kaXJlY3Rpb25zQ29vcmRLZXk7XHJcbiAgICBjb25zdCBzdG9wc0Nvb3JkaW5hdGVzID0gdGhpcy5zdG9wc1N0b3JlLnZpZXdcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5tYXAoKHN0b3ApID0+IHJvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzLCA2KSk7XHJcbiAgICBsZXQgZGlyZWN0aW9uc1VybCA9ICcnO1xyXG4gICAgaWYgKHN0b3BzQ29vcmRpbmF0ZXMubGVuZ3RoID49IDIpIHtcclxuICAgICAgZGlyZWN0aW9uc1VybCA9IGAke2RpcmVjdGlvbnNLZXl9PSR7c3RvcHNDb29yZGluYXRlcy5qb2luKCc7Jyl9YDtcclxuICAgICAgcmV0dXJuIGAke2xvY2F0aW9uLm9yaWdpbn0ke2xvY2F0aW9uLnBhdGhuYW1lfT8ke2NvbnRleHR9dG9vbD1kaXJlY3Rpb25zJnNpZGVuYXY9MSYke2RpcmVjdGlvbnNVcmx9JHtyb3V0aW5nT3B0aW9uc31gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHJpbnREaXJlY3Rpb25zKCkge1xyXG4gICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmNsZWFyKCk7XHJcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kaXJlY3Rpb25zU2VydmljZVxyXG4gICAgICAuZG93bmxvYWREaXJlY3Rpb24oXHJcbiAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubWFwLFxyXG4gICAgICAgIHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb25cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIj5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uYWRkU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgKGNsaWNrKT1cImFkZFN0b3AoKVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1hcC1tYXJrZXItcGx1c1wiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAqbmdJZj1cIlxuICAgICAgKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMSB8fFxuICAgICAgKHN0b3BzU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcbiAgICBcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlc2V0RGlyZWN0aW9uc0J0bicgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwid2FyblwiXG4gICAgKGNsaWNrKT1cInJlc2V0U3RvcHMoKVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGUtcmVzdG9yZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAqbmdJZj1cIihyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcIlxuICAgIChjbGljayk9XCJ6b29tUm91dGUoKVwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uem9vbVJvdXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibWFnbmlmeS1wbHVzLW91dGxpbmVcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcbiAgICAoY2xpY2spPVwiY29weURpcmVjdGlvbnNUb0NsaXBib2FyZCgpXCJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5jb3B5JyB8IHRyYW5zbGF0ZVwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29udGVudC1jb3B5XCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICpuZ0lmPVwiKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVwiXG4gICAgKGNsaWNrKT1cImNvcHlMaW5rVG9DbGlwYm9hcmQoKVwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ubGluaycgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImxpbmtcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAqbmdJZj1cIihyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcIlxuICAgIChjbGljayk9XCJwcmludERpcmVjdGlvbnMoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5wcmludCcgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInByaW50ZXJcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|