@igo2/geo 16.1.0 → 16.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
- package/esm2022/lib/catalog/index.mjs +1 -1
- 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/catalogs.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.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 +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- 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/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
- 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 +1 -1
- package/esm2022/lib/directions/directions.component.mjs +3 -3
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- 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/shared/download.service.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw.component.mjs +3 -3
- 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 +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/environment/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
- package/esm2022/lib/feature/index.mjs +1 -1
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/index.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +3 -3
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
- 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/selection.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2022/lib/filter/index.mjs +1 -1
- 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 +3 -3
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
- 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.service.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +4 -4
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
- 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 +3 -3
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
- package/esm2022/lib/geometry/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
- package/esm2022/lib/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
- package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
- 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 +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +5 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
- package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +9 -11
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +3 -3
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
- package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +1 -1
- package/esm2022/lib/map/home-extent-button/index.mjs +1 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +3 -3
- package/esm2022/lib/map/map-browser/index.mjs +1 -1
- package/esm2022/lib/map/map-center/map-center.component.mjs +3 -3
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
- 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 +1 -1
- package/esm2022/lib/map/shared/controllers/index.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +2 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +4 -4
- package/esm2022/lib/map/shared/index.mjs +1 -1
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/map/shared/map.utils.mjs +1 -1
- package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +3 -3
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
- package/esm2022/lib/measure/index.mjs +1 -1
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
- 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 +1 -1
- package/esm2022/lib/metadata/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +5 -5
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/esm2022/lib/offline/shared/geo-network.service.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 +3 -3
- 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 +1 -1
- package/esm2022/lib/print/shared/print.type.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/index.mjs +1 -1
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.component.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +2 -2
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.enums.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +2 -2
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- 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.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
- 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 +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.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 +15 -15
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/fesm2022/igo2-geo.mjs +183 -180
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/feature/shared/feature.interfaces.d.ts +1 -1
- package/lib/feature/shared/store.d.ts +2 -2
- package/lib/filter/shared/ogc-filter.interface.d.ts +2 -2
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
- package/lib/layer/shared/layers/layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
- package/lib/layer/utils/image-watcher.d.ts +1 -1
- package/lib/layer/utils/tile-watcher.d.ts +2 -2
- package/lib/layer/utils/vector-watcher.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +1 -1
- package/lib/map/shared/linkedLayers.utils.d.ts +1 -1
- package/lib/map/shared/map.d.ts +1 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +2 -2
- package/lib/style/shared/vector/vector-style.interface.d.ts +1 -1
- package/package.json +5 -4
- package/src/_index.scss +2 -0
- package/src/geo-theme.scss +23 -23
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
- package/src/lib/catalog/catalog.theming.scss +5 -5
- package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
- package/src/lib/directions/directions.theming.scss +6 -6
- package/src/lib/draw/draw.theming.scss +32 -32
- package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/src/lib/feature/feature.theming.scss +4 -4
- package/src/lib/filter/filter.theming.scss +13 -13
- package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
- package/src/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
- package/src/lib/layer/layer-item/layer-item.theme.scss +33 -33
- package/src/lib/layer/layer-legend/layer-legend.theming.scss +10 -10
- package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +34 -34
- package/src/lib/layer/layer.theming.scss +10 -10
- package/src/lib/map/map-browser/map-browser.theming.scss +46 -46
- package/src/lib/map/map.theming.scss +9 -9
- package/src/lib/map/menu-button/menu-button.theming.scss +20 -20
- package/src/lib/map/zoom-button/zoom-button.theming.scss +32 -32
- package/src/lib/measure/measure.theming.scss +5 -5
- package/src/lib/measure/measurer/measurer.theming.scss +26 -26
- package/src/lib/search/search-bar/search-bar.theming.scss +0 -9
- package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
- package/src/lib/search/search.theming.scss +7 -7
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/src/lib/workspace/workspace.theming.scss +6 -6
- package/src/style/style.scss +1 -1
|
@@ -13,22 +13,22 @@ export class WktService {
|
|
|
13
13
|
extentToWkt(epsgTO, extent, extentProj) {
|
|
14
14
|
let currentExtent = olproj.transformExtent(extent, extentProj, epsgTO);
|
|
15
15
|
currentExtent = this.roundCoordinateArray(currentExtent, epsgTO, 0);
|
|
16
|
-
const wktPoly = `POLYGON((
|
|
17
|
-
${extent[0]} ${extent[1]},
|
|
18
|
-
${extent[0]} ${extent[3]},
|
|
19
|
-
${extent[2]} ${extent[3]},
|
|
20
|
-
${extent[2]} ${extent[1]},
|
|
16
|
+
const wktPoly = `POLYGON((
|
|
17
|
+
${extent[0]} ${extent[1]},
|
|
18
|
+
${extent[0]} ${extent[3]},
|
|
19
|
+
${extent[2]} ${extent[3]},
|
|
20
|
+
${extent[2]} ${extent[1]},
|
|
21
21
|
${extent[0]} ${extent[1]}))`;
|
|
22
|
-
const wktLine = `LINESTRING(
|
|
23
|
-
${extent[0]} ${extent[1]},
|
|
24
|
-
${extent[0]} ${extent[3]},
|
|
25
|
-
${extent[2]} ${extent[3]},
|
|
26
|
-
${extent[2]} ${extent[1]},
|
|
22
|
+
const wktLine = `LINESTRING(
|
|
23
|
+
${extent[0]} ${extent[1]},
|
|
24
|
+
${extent[0]} ${extent[3]},
|
|
25
|
+
${extent[2]} ${extent[3]},
|
|
26
|
+
${extent[2]} ${extent[1]},
|
|
27
27
|
${extent[0]} ${extent[1]})`;
|
|
28
|
-
const wktMultiPoints = `MULTIPOINT(
|
|
29
|
-
${extent[0]} ${extent[1]},
|
|
30
|
-
${extent[0]} ${extent[3]},
|
|
31
|
-
${extent[2]} ${extent[3]},
|
|
28
|
+
const wktMultiPoints = `MULTIPOINT(
|
|
29
|
+
${extent[0]} ${extent[1]},
|
|
30
|
+
${extent[0]} ${extent[3]},
|
|
31
|
+
${extent[2]} ${extent[3]},
|
|
32
32
|
${extent[2]} ${extent[1]})`;
|
|
33
33
|
return {
|
|
34
34
|
wktPoly,
|
|
@@ -233,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
233
233
|
providedIn: 'root'
|
|
234
234
|
}]
|
|
235
235
|
}], ctorParameters: function () { return []; } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRVQsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVztRQUMzQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLEVBQUUsT0FBTztZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQzNDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFD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SSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtTQUM3QixDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUc7WUFDVCxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzFCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLEdBQUcsRUFBRSxHQUFH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Q0gsQ0FBQzt3R0ExUFUsVUFBVTs0R0FBVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgb2xXS1QgZnJvbSAnb2wvZm9ybWF0L1dLVCc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdrdFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIHdrdFRvRmVhdHVyZSh3a3QsIHdrdFByb2osIGZlYXR1cmVQcm9qKSB7XHJcbiAgICByZXR1cm4gbmV3IG9sV0tUKCkucmVhZEZlYXR1cmUod2t0LCB7XHJcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB3a3RQcm9qLFxyXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogZmVhdHVyZVByb2pcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgZXh0ZW50VG9Xa3QoZXBzZ1RPLCBleHRlbnQsIGV4dGVudFByb2opIHtcclxuICAgIGxldCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChleHRlbnQsIGV4dGVudFByb2osIGVwc2dUTyk7XHJcbiAgICBjdXJyZW50RXh0ZW50ID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjdXJyZW50RXh0ZW50LCBlcHNnVE8sIDApO1xyXG4gICAgY29uc3Qgd2t0UG9seSA9IGBQT0xZR09OKChcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSkpYDtcclxuICAgIGNvbnN0IHdrdExpbmUgPSBgTElORVNUUklORyhcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcclxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSlgO1xyXG4gICAgY29uc3Qgd2t0TXVsdGlQb2ludHMgPSBgTVVMVElQT0lOVChcclxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXHJcbiAgICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19KWA7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3a3RQb2x5LFxyXG4gICAgICB3a3RMaW5lLFxyXG4gICAgICB3a3RNdWx0aVBvaW50c1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcm91bmRDb29yZGluYXRlQXJyYXkoY29vcmRpbmF0ZUFycmF5LCBwcm9qZWN0aW9uLCBkZWNpbWFsID0gMCkge1xyXG4gICAgY29uc3QgbHByb2ogPSBvbHByb2ouZ2V0KHByb2plY3Rpb24pO1xyXG4gICAgY29uc3QgdW5pdHMgPSBscHJvai5nZXRVbml0cygpO1xyXG4gICAgY29uc3Qgb2xVbml0cyA9IFsnZnQnLCAnbScsICd1cy1mdCddO1xyXG4gICAgaWYgKG9sVW5pdHMuaW5kZXhPZih1bml0cykgIT09IC0xKSB7XHJcbiAgICAgIGNvb3JkaW5hdGVBcnJheSA9IHRoaXMucm91bmRBcnJheShjb29yZGluYXRlQXJyYXksIGRlY2ltYWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvb3JkaW5hdGVBcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcm91bmRBcnJheShhcnJheSwgZGVjaW1hbCA9IDApIHtcclxuICAgIGxldCB4ID0gMDtcclxuICAgIHdoaWxlICh4IDwgYXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIGFycmF5W3hdID0gYXJyYXlbeF0udG9GaXhlZChkZWNpbWFsKTtcclxuICAgICAgeCsrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNucmNUb1drdChzbnJjLCBlcHNnVE8pIHtcclxuICAgIHNucmMgPSBzbnJjLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgd2t0UG9seTtcclxuICAgIGNvbnN0IGV3ID0ge1xyXG4gICAgICAxOiB7IGZyb206IC01NiwgdG86IC02NCB9LFxyXG4gICAgICAyOiB7IGZyb206IC02NCwgdG86IC03MiB9LFxyXG4gICAgICAzOiB7IGZyb206IC03MiwgdG86IC04MCB9LFxyXG4gICAgICA0OiB7IGZyb206IC04MCwgdG86IC04OCB9LFxyXG4gICAgICA1OiB7IGZyb206IC04OCwgdG86IC05NiB9LFxyXG4gICAgICA2OiB7IGZyb206IC05NiwgdG86IC0xMDQgfSxcclxuICAgICAgNzogeyBmcm9tOiAtMTA0LCB0bzogLTExMiB9LFxyXG4gICAgICA4OiB7IGZyb206IC0xMTIsIHRvOiAtMTIwIH0sXHJcbiAgICAgIDk6IHsgZnJvbTogLTEyMCwgdG86IC0xMjggfSxcclxuICAgICAgMTA6IHsgZnJvbTogLTEyOCwgdG86IC0xMzYgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHNuID0ge1xyXG4gICAgICAxOiB7IGZyb206IDQ0LCB0bzogNDggfSxcclxuICAgICAgMjogeyBmcm9tOiA0OCwgdG86IDUyIH0sXHJcbiAgICAgIDM6IHsgZnJvbTogNTIsIHRvOiA1NiB9LFxyXG4gICAgICA0OiB7IGZyb206IDU2LCB0bzogNjAgfSxcclxuICAgICAgNTogeyBmcm9tOiA2MCwgdG86IDY0IH0sXHJcbiAgICAgIDY6IHsgZnJvbTogNjQsIHRvOiA2OCB9LFxyXG4gICAgICA3OiB7IGZyb206IDY4LCB0bzogNzIgfSxcclxuICAgICAgODogeyBmcm9tOiA3MiwgdG86IDc2IH0sXHJcbiAgICAgIDk6IHsgZnJvbTogNzYsIHRvOiAtMTI4IH1cclxuICAgIH07XHJcbiAgICBjb25zdCBzbnJjMjUwa0luZGV4ID0gW1xyXG4gICAgICBbJ20nLCAnbicsICdvJywgJ3AnXSxcclxuICAgICAgWydsJywgJ2snLCAnaicsICdpJ10sXHJcbiAgICAgIFsnZScsICdmJywgJ2cnLCAnaCddLFxyXG4gICAgICBbJ2QnLCAnYycsICdiJywgJ2EnXVxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCBzbnJjNTBrSW5kZXggPSBbXHJcbiAgICAgIFsnMTMnLCAnMTQnLCAnMTUnLCAnMTYnXSxcclxuICAgICAgWycxMicsICcxMScsICcxMCcsICcwOSddLFxyXG4gICAgICBbJzA1JywgJzA2JywgJzA3JywgJzA4J10sXHJcbiAgICAgIFsnMDQnLCAnMDMnLCAnMDInLCAnMDEnXVxyXG4gICAgXTtcclxuICAgIGNvbnN0IGNoZWNrU05SQzUwayA9IC9cXGR7MiwzfVthLXBdWzAsMV1bMC05XS9naTtcclxuICAgIGNvbnN0IGNoZWNrU05SQzI1MGsgPSAvXFxkezIsM31bYS1wXS9naTtcclxuICAgIGNvbnN0IGNoZWNrU05SQzFtID0gL1xcZHsyLDN9L2dpO1xyXG5cclxuICAgIGxldCBzbnJjMW0gPSBmYWxzZTtcclxuICAgIGxldCBzbnJjMjUwayA9IGZhbHNlO1xyXG4gICAgbGV0IHNucmM1MGsgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoY2hlY2tTTlJDNTBrLnRlc3Qoc25yYykpIHtcclxuICAgICAgc25yYzUwayA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoY2hlY2tTTlJDMjUway50ZXN0KHNucmMpKSB7XHJcbiAgICAgICAgc25yYzI1MGsgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGVja1NOUkMxbS50ZXN0KHNucmMpKSB7XHJcbiAgICAgICAgICBzbnJjMW0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzbnJjMW0pIHtcclxuICAgICAgc25yYyArPSAnYTAxJztcclxuICAgIH0gZWxzZSBpZiAoc25yYzI1MGspIHtcclxuICAgICAgc25yYyArPSAnMDEnO1xyXG4gICAgfVxyXG4gICAgaWYgKC9cXGR7MiwzfVthLXBdWzAsMV1bMC05XS9naS50ZXN0KHNucmMpKSB7XHJcbiAgICAgIGNvbnN0IHJlZ2V4MW0gPSAvKD89W2EtcF0pL2dpO1xyXG4gICAgICBjb25zdCBhcjFtID0gc25yYy5zcGxpdChyZWdleDFtKTtcclxuICAgICAgY29uc3QgcGFydDFtID0gYXIxbVswXTtcclxuICAgICAgY29uc3QgcGFydDI1MGsgPSBhcjFtWzFdWzBdO1xyXG4gICAgICBjb25zdCBwYXJ0NTBrID0gYXIxbVsxXS5zcGxpdChwYXJ0MjUwaylbMV07XHJcbiAgICAgIGxldCBzZXBhcmF0b3IgPSAxO1xyXG4gICAgICBpZiAocGFydDFtLmxlbmd0aCA9PT0gMykge1xyXG4gICAgICAgIHNlcGFyYXRvciA9IDI7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGFydEVXID0gcGFydDFtLnN1YnN0cmluZygwLCBzZXBhcmF0b3IpO1xyXG4gICAgICBjb25zdCBwYXJ0U04gPSBwYXJ0MW0uc3Vic3RyaW5nKHNlcGFyYXRvcik7XHJcbiAgICAgIGNvbnN0IHVuaXQxbUVXID0gODtcclxuICAgICAgY29uc3QgdW5pdDFtU04gPSA0O1xyXG4gICAgICBjb25zdCB1bml0MjUwa0VXID0gMjtcclxuICAgICAgY29uc3QgdW5pdDI1MGtTTiA9IDE7XHJcbiAgICAgIGNvbnN0IHVuaXQ1MGtFVyA9IDAuNTtcclxuICAgICAgY29uc3QgdW5pdDUwa1NOID0gMC4yNTtcclxuICAgICAgbGV0IGluZGV4MjUwa0VXID0gMDtcclxuICAgICAgbGV0IGluZGV4MjUwa1NOID0gMDtcclxuICAgICAgbGV0IGluZGV4NTBrRVcgPSAwO1xyXG4gICAgICBsZXQgaW5kZXg1MGtTTiA9IDA7XHJcbiAgICAgIHNucmMyNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDI1MGspICE9PSAtMSkge1xyXG4gICAgICAgICAgaW5kZXgyNTBrU04gPSBzbnJjMjUwa0luZGV4LmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICAgICAgICBpbmRleDI1MGtFVyA9IGVsZW1lbnQuaW5kZXhPZihwYXJ0MjUwayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgc25yYzUwa0luZGV4LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspICE9PSAtMSkge1xyXG4gICAgICAgICAgaW5kZXg1MGtTTiA9IHNucmM1MGtJbmRleC5pbmRleE9mKGVsZW1lbnQpO1xyXG4gICAgICAgICAgaW5kZXg1MGtFVyA9IGVsZW1lbnQuaW5kZXhPZihwYXJ0NTBrKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbGV0IGluY3JlbWVudDI1MGtFVyA9IDA7XHJcbiAgICAgIGxldCBpbmNyZW1lbnQyNTBrU04gPSAwO1xyXG4gICAgICBsZXQgaW5jcmVtZW50NTBrRVcgPSAwO1xyXG4gICAgICBsZXQgaW5jcmVtZW50NTBrU04gPSAwO1xyXG4gICAgICBsZXQgdW5pdFBlclR5cGVFVyA9IHVuaXQxbUVXO1xyXG4gICAgICBsZXQgdW5pdFBlclR5cGVTTiA9IHVuaXQxbVNOO1xyXG4gICAgICBpZiAoc25yYzI1MGspIHtcclxuICAgICAgICBpbmNyZW1lbnQyNTBrRVcgPSBpbmRleDI1MGtFVyAqIHVuaXQyNTBrRVc7XHJcbiAgICAgICAgaW5jcmVtZW50MjUwa1NOID0gaW5kZXgyNTBrU04gKiB1bml0MjUwa1NOO1xyXG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gMDtcclxuICAgICAgICBpbmNyZW1lbnQ1MGtTTiA9IDA7XHJcbiAgICAgICAgdW5pdFBlclR5cGVFVyA9IHVuaXQyNTBrRVc7XHJcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQyNTBrU047XHJcbiAgICAgIH0gZWxzZSBpZiAoc25yYzUwaykge1xyXG4gICAgICAgIGluY3JlbWVudDI1MGtFVyA9IGluZGV4MjUwa0VXICogdW5pdDI1MGtFVztcclxuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XHJcbiAgICAgICAgaW5jcmVtZW50NTBrRVcgPSBpbmRleDUwa0VXICogdW5pdDUwa0VXO1xyXG4gICAgICAgIGluY3JlbWVudDUwa1NOID0gaW5kZXg1MGtTTiAqIHVuaXQ1MGtTTjtcclxuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDUwa0VXO1xyXG4gICAgICAgIHVuaXRQZXJUeXBlU04gPSB1bml0NTBrU047XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGNvb3JkOiB7IHVsPzogYW55OyBscj86IGFueTsgdXI/OiBhbnk7IGxsPzogYW55IH0gPSB7XHJcbiAgICAgICAgdWw6IFtcclxuICAgICAgICAgIGV3W3BhcnRFV10udG8gKyBpbmNyZW1lbnQyNTBrRVcgKyBpbmNyZW1lbnQ1MGtFVyxcclxuICAgICAgICAgIHNuW3BhcnRTTl0udG8gLSBpbmNyZW1lbnQyNTBrU04gLSBpbmNyZW1lbnQ1MGtTTlxyXG4gICAgICAgIF1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvb3JkLmxyID0gW2Nvb3JkLnVsWzBdICsgdW5pdFBlclR5cGVFVywgY29vcmQudWxbMV0gLSB1bml0UGVyVHlwZVNOXTtcclxuICAgICAgY29vcmQudXIgPSBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdIC0gdW5pdFBlclR5cGVTTl07XHJcbiAgICAgIGNvb3JkLmxsID0gW2Nvb3JkLnVsWzBdICsgdW5pdFBlclR5cGVFVywgY29vcmQudWxbMV1dO1xyXG5cclxuICAgICAgY29vcmQudWwgPSBvbHByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgIFtjb29yZC51bFswXSwgY29vcmQudWxbMV1dLFxyXG4gICAgICAgICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGVwc2dUT1xyXG4gICAgICApO1xyXG4gICAgICBjb29yZC5sciA9IG9scHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgW2Nvb3JkLmxyWzBdLCBjb29yZC5sclsxXV0sXHJcbiAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZXBzZ1RPXHJcbiAgICAgICk7XHJcbiAgICAgIGNvb3JkLnVyID0gb2xwcm9qLnRyYW5zZm9ybShcclxuICAgICAgICBbY29vcmQudXJbMF0sIGNvb3JkLnVyWzFdXSxcclxuICAgICAgICAnRVBTRzo0MzI2JyxcclxuICAgICAgICBlcHNnVE9cclxuICAgICAgKTtcclxuICAgICAgY29vcmQubGwgPSBvbHByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgIFtjb29yZC5sbFswXSwgY29vcmQubGxbMV1dLFxyXG4gICAgICAgICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGVwc2dUT1xyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gUm91bmRlZCBjb29yZGluYXRlIHRvIHNob3J0ZW4gdXJsIGluIGdldFxyXG4gICAgICBjb29yZC51bCA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY29vcmQudWwsIGVwc2dUTywgMCk7XHJcbiAgICAgIGNvb3JkLmxyID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjb29yZC5sciwgZXBzZ1RPLCAwKTtcclxuICAgICAgY29vcmQudXIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVyLCBlcHNnVE8sIDApO1xyXG4gICAgICBjb29yZC5sbCA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY29vcmQubGwsIGVwc2dUTywgMCk7XHJcblxyXG4gICAgICB3a3RQb2x5ID1cclxuICAgICAgICAnUE9MWUdPTigoJyArXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubHIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXHJcbiAgICAgICAgXS5qb2luKCcsJykgK1xyXG4gICAgICAgICcpKSc7XHJcbiAgICAgIGNvbnN0IHdrdExpbmUgPVxyXG4gICAgICAgICdMSU5FU1RSSU5HKCcgK1xyXG4gICAgICAgIFtcclxuICAgICAgICAgIGNvb3JkLnVsLmpvaW4oJyAnKSxcclxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcclxuICAgICAgICAgIGNvb3JkLmxyLmpvaW4oJyAnKSxcclxuICAgICAgICAgIGNvb3JkLmxsLmpvaW4oJyAnKSxcclxuICAgICAgICAgIGNvb3JkLnVsLmpvaW4oJyAnKVxyXG4gICAgICAgIF0uam9pbignLCcpICtcclxuICAgICAgICAnKSc7XHJcblxyXG4gICAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9XHJcbiAgICAgICAgJ01VTFRJUE9JTlQoJyArXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubHIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpXHJcbiAgICAgICAgXS5qb2luKCcsJykgK1xyXG4gICAgICAgICcpJztcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB3a3RQb2x5LFxyXG4gICAgICAgIHdrdExpbmUsXHJcbiAgICAgICAgd2t0TXVsdGlQb2ludHNcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRVQsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVztRQUMzQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLEVBQUUsT0FBTztZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQzNDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFD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SSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtTQUM3QixDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUc7WUFDVCxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzFCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLEdBQUcsRUFBRSxHQUFH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Q0gsQ0FBQzt3R0ExUFUsVUFBVTs0R0FBVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBvbFdLVCBmcm9tICdvbC9mb3JtYXQvV0tUJztcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2t0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgd2t0VG9GZWF0dXJlKHdrdCwgd2t0UHJvaiwgZmVhdHVyZVByb2opIHtcbiAgICByZXR1cm4gbmV3IG9sV0tUKCkucmVhZEZlYXR1cmUod2t0LCB7XG4gICAgICBkYXRhUHJvamVjdGlvbjogd2t0UHJvaixcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBmZWF0dXJlUHJvalxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBleHRlbnRUb1drdChlcHNnVE8sIGV4dGVudCwgZXh0ZW50UHJvaikge1xuICAgIGxldCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChleHRlbnQsIGV4dGVudFByb2osIGVwc2dUTyk7XG4gICAgY3VycmVudEV4dGVudCA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY3VycmVudEV4dGVudCwgZXBzZ1RPLCAwKTtcbiAgICBjb25zdCB3a3RQb2x5ID0gYFBPTFlHT04oKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pKWA7XG4gICAgY29uc3Qgd2t0TGluZSA9IGBMSU5FU1RSSU5HKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pYDtcbiAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9IGBNVUxUSVBPSU5UKFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19KWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdrdFBvbHksXG4gICAgICB3a3RMaW5lLFxuICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByb3VuZENvb3JkaW5hdGVBcnJheShjb29yZGluYXRlQXJyYXksIHByb2plY3Rpb24sIGRlY2ltYWwgPSAwKSB7XG4gICAgY29uc3QgbHByb2ogPSBvbHByb2ouZ2V0KHByb2plY3Rpb24pO1xuICAgIGNvbnN0IHVuaXRzID0gbHByb2ouZ2V0VW5pdHMoKTtcbiAgICBjb25zdCBvbFVuaXRzID0gWydmdCcsICdtJywgJ3VzLWZ0J107XG4gICAgaWYgKG9sVW5pdHMuaW5kZXhPZih1bml0cykgIT09IC0xKSB7XG4gICAgICBjb29yZGluYXRlQXJyYXkgPSB0aGlzLnJvdW5kQXJyYXkoY29vcmRpbmF0ZUFycmF5LCBkZWNpbWFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb3JkaW5hdGVBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgcm91bmRBcnJheShhcnJheSwgZGVjaW1hbCA9IDApIHtcbiAgICBsZXQgeCA9IDA7XG4gICAgd2hpbGUgKHggPCBhcnJheS5sZW5ndGgpIHtcbiAgICAgIGFycmF5W3hdID0gYXJyYXlbeF0udG9GaXhlZChkZWNpbWFsKTtcbiAgICAgIHgrKztcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgcHVibGljIHNucmNUb1drdChzbnJjLCBlcHNnVE8pIHtcbiAgICBzbnJjID0gc25yYy50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCB3a3RQb2x5O1xuICAgIGNvbnN0IGV3ID0ge1xuICAgICAgMTogeyBmcm9tOiAtNTYsIHRvOiAtNjQgfSxcbiAgICAgIDI6IHsgZnJvbTogLTY0LCB0bzogLTcyIH0sXG4gICAgICAzOiB7IGZyb206IC03MiwgdG86IC04MCB9LFxuICAgICAgNDogeyBmcm9tOiAtODAsIHRvOiAtODggfSxcbiAgICAgIDU6IHsgZnJvbTogLTg4LCB0bzogLTk2IH0sXG4gICAgICA2OiB7IGZyb206IC05NiwgdG86IC0xMDQgfSxcbiAgICAgIDc6IHsgZnJvbTogLTEwNCwgdG86IC0xMTIgfSxcbiAgICAgIDg6IHsgZnJvbTogLTExMiwgdG86IC0xMjAgfSxcbiAgICAgIDk6IHsgZnJvbTogLTEyMCwgdG86IC0xMjggfSxcbiAgICAgIDEwOiB7IGZyb206IC0xMjgsIHRvOiAtMTM2IH1cbiAgICB9O1xuICAgIGNvbnN0IHNuID0ge1xuICAgICAgMTogeyBmcm9tOiA0NCwgdG86IDQ4IH0sXG4gICAgICAyOiB7IGZyb206IDQ4LCB0bzogNTIgfSxcbiAgICAgIDM6IHsgZnJvbTogNTIsIHRvOiA1NiB9LFxuICAgICAgNDogeyBmcm9tOiA1NiwgdG86IDYwIH0sXG4gICAgICA1OiB7IGZyb206IDYwLCB0bzogNjQgfSxcbiAgICAgIDY6IHsgZnJvbTogNjQsIHRvOiA2OCB9LFxuICAgICAgNzogeyBmcm9tOiA2OCwgdG86IDcyIH0sXG4gICAgICA4OiB7IGZyb206IDcyLCB0bzogNzYgfSxcbiAgICAgIDk6IHsgZnJvbTogNzYsIHRvOiAtMTI4IH1cbiAgICB9O1xuICAgIGNvbnN0IHNucmMyNTBrSW5kZXggPSBbXG4gICAgICBbJ20nLCAnbicsICdvJywgJ3AnXSxcbiAgICAgIFsnbCcsICdrJywgJ2onLCAnaSddLFxuICAgICAgWydlJywgJ2YnLCAnZycsICdoJ10sXG4gICAgICBbJ2QnLCAnYycsICdiJywgJ2EnXVxuICAgIF07XG5cbiAgICBjb25zdCBzbnJjNTBrSW5kZXggPSBbXG4gICAgICBbJzEzJywgJzE0JywgJzE1JywgJzE2J10sXG4gICAgICBbJzEyJywgJzExJywgJzEwJywgJzA5J10sXG4gICAgICBbJzA1JywgJzA2JywgJzA3JywgJzA4J10sXG4gICAgICBbJzA0JywgJzAzJywgJzAyJywgJzAxJ11cbiAgICBdO1xuICAgIGNvbnN0IGNoZWNrU05SQzUwayA9IC9cXGR7MiwzfVthLXBdWzAsMV1bMC05XS9naTtcbiAgICBjb25zdCBjaGVja1NOUkMyNTBrID0gL1xcZHsyLDN9W2EtcF0vZ2k7XG4gICAgY29uc3QgY2hlY2tTTlJDMW0gPSAvXFxkezIsM30vZ2k7XG5cbiAgICBsZXQgc25yYzFtID0gZmFsc2U7XG4gICAgbGV0IHNucmMyNTBrID0gZmFsc2U7XG4gICAgbGV0IHNucmM1MGsgPSBmYWxzZTtcblxuICAgIGlmIChjaGVja1NOUkM1MGsudGVzdChzbnJjKSkge1xuICAgICAgc25yYzUwayA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjaGVja1NOUkMyNTBrLnRlc3Qoc25yYykpIHtcbiAgICAgICAgc25yYzI1MGsgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrU05SQzFtLnRlc3Qoc25yYykpIHtcbiAgICAgICAgICBzbnJjMW0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNucmMxbSkge1xuICAgICAgc25yYyArPSAnYTAxJztcbiAgICB9IGVsc2UgaWYgKHNucmMyNTBrKSB7XG4gICAgICBzbnJjICs9ICcwMSc7XG4gICAgfVxuICAgIGlmICgvXFxkezIsM31bYS1wXVswLDFdWzAtOV0vZ2kudGVzdChzbnJjKSkge1xuICAgICAgY29uc3QgcmVnZXgxbSA9IC8oPz1bYS1wXSkvZ2k7XG4gICAgICBjb25zdCBhcjFtID0gc25yYy5zcGxpdChyZWdleDFtKTtcbiAgICAgIGNvbnN0IHBhcnQxbSA9IGFyMW1bMF07XG4gICAgICBjb25zdCBwYXJ0MjUwayA9IGFyMW1bMV1bMF07XG4gICAgICBjb25zdCBwYXJ0NTBrID0gYXIxbVsxXS5zcGxpdChwYXJ0MjUwaylbMV07XG4gICAgICBsZXQgc2VwYXJhdG9yID0gMTtcbiAgICAgIGlmIChwYXJ0MW0ubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHNlcGFyYXRvciA9IDI7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJ0RVcgPSBwYXJ0MW0uc3Vic3RyaW5nKDAsIHNlcGFyYXRvcik7XG4gICAgICBjb25zdCBwYXJ0U04gPSBwYXJ0MW0uc3Vic3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICBjb25zdCB1bml0MW1FVyA9IDg7XG4gICAgICBjb25zdCB1bml0MW1TTiA9IDQ7XG4gICAgICBjb25zdCB1bml0MjUwa0VXID0gMjtcbiAgICAgIGNvbnN0IHVuaXQyNTBrU04gPSAxO1xuICAgICAgY29uc3QgdW5pdDUwa0VXID0gMC41O1xuICAgICAgY29uc3QgdW5pdDUwa1NOID0gMC4yNTtcbiAgICAgIGxldCBpbmRleDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5kZXgyNTBrU04gPSAwO1xuICAgICAgbGV0IGluZGV4NTBrRVcgPSAwO1xuICAgICAgbGV0IGluZGV4NTBrU04gPSAwO1xuICAgICAgc25yYzI1MGtJbmRleC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDI1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4MjUwa1NOID0gc25yYzI1MGtJbmRleC5pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICAgIGluZGV4MjUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQyNTBrKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBzbnJjNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4NTBrU04gPSBzbnJjNTBrSW5kZXguaW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgICBpbmRleDUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGluY3JlbWVudDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50MjUwa1NOID0gMDtcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgbGV0IHVuaXRQZXJUeXBlRVcgPSB1bml0MW1FVztcbiAgICAgIGxldCB1bml0UGVyVHlwZVNOID0gdW5pdDFtU047XG4gICAgICBpZiAoc25yYzI1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gMDtcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDI1MGtFVztcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQyNTBrU047XG4gICAgICB9IGVsc2UgaWYgKHNucmM1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gaW5kZXg1MGtFVyAqIHVuaXQ1MGtFVztcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSBpbmRleDUwa1NOICogdW5pdDUwa1NOO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDUwa0VXO1xuICAgICAgICB1bml0UGVyVHlwZVNOID0gdW5pdDUwa1NOO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb29yZDogeyB1bD86IGFueTsgbHI/OiBhbnk7IHVyPzogYW55OyBsbD86IGFueSB9ID0ge1xuICAgICAgICB1bDogW1xuICAgICAgICAgIGV3W3BhcnRFV10udG8gKyBpbmNyZW1lbnQyNTBrRVcgKyBpbmNyZW1lbnQ1MGtFVyxcbiAgICAgICAgICBzbltwYXJ0U05dLnRvIC0gaW5jcmVtZW50MjUwa1NOIC0gaW5jcmVtZW50NTBrU05cbiAgICAgICAgXVxuICAgICAgfTtcblxuICAgICAgY29vcmQubHIgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXSAtIHVuaXRQZXJUeXBlU05dO1xuICAgICAgY29vcmQudXIgPSBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdIC0gdW5pdFBlclR5cGVTTl07XG4gICAgICBjb29yZC5sbCA9IFtjb29yZC51bFswXSArIHVuaXRQZXJUeXBlRVcsIGNvb3JkLnVsWzFdXTtcblxuICAgICAgY29vcmQudWwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcbiAgICAgIGNvb3JkLmxyID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgICAgW2Nvb3JkLmxyWzBdLCBjb29yZC5sclsxXV0sXG4gICAgICAgICdFUFNHOjQzMjYnLFxuICAgICAgICBlcHNnVE9cbiAgICAgICk7XG4gICAgICBjb29yZC51ciA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICAgIFtjb29yZC51clswXSwgY29vcmQudXJbMV1dLFxuICAgICAgICAnRVBTRzo0MzI2JyxcbiAgICAgICAgZXBzZ1RPXG4gICAgICApO1xuICAgICAgY29vcmQubGwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQubGxbMF0sIGNvb3JkLmxsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcblxuICAgICAgLy8gUm91bmRlZCBjb29yZGluYXRlIHRvIHNob3J0ZW4gdXJsIGluIGdldFxuICAgICAgY29vcmQudWwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVsLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubHIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQudXIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubGwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxsLCBlcHNnVE8sIDApO1xuXG4gICAgICB3a3RQb2x5ID1cbiAgICAgICAgJ1BPTFlHT04oKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVsLmpvaW4oJyAnKVxuICAgICAgICBdLmpvaW4oJywnKSArXG4gICAgICAgICcpKSc7XG4gICAgICBjb25zdCB3a3RMaW5lID1cbiAgICAgICAgJ0xJTkVTVFJJTkcoJyArXG4gICAgICAgIFtcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLmxyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuXG4gICAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9XG4gICAgICAgICdNVUxUSVBPSU5UKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2t0UG9seSxcbiAgICAgICAgd2t0TGluZSxcbiAgICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -23,13 +23,13 @@ export class ConfirmationPopupComponent {
|
|
|
23
23
|
this.dialogRef.close(this.data.cancel);
|
|
24
24
|
}
|
|
25
25
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.LanguageService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationPopupComponent, selector: "igo-confirmation-popup-component", ngImport: i0, template: "<div mat-dialog-content>\
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationPopupComponent, selector: "igo-confirmation-popup-component", ngImport: i0, template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{\n data.type === 'add'\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\n : languageService.translate.instant(\n 'igo.geo.workspace.deleteConfirmation'\n )\n }}\n </p>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\n Ok\n </button>\n <button mat-raised-button (click)=\"cancelAction()\">\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\n </button>\n</div>\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'igo-confirmation-popup-component', template: "<div mat-dialog-content>\
|
|
30
|
+
args: [{ selector: 'igo-confirmation-popup-component', template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{\n data.type === 'add'\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\n : languageService.translate.instant(\n 'igo.geo.workspace.deleteConfirmation'\n )\n }}\n </p>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\n Ok\n </button>\n <button mat-raised-button (click)=\"cancelAction()\">\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\n </button>\n</div>\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"] }]
|
|
31
31
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.LanguageService }, { type: undefined, decorators: [{
|
|
32
32
|
type: Inject,
|
|
33
33
|
args: [MAT_DIALOG_DATA]
|
|
34
34
|
}] }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFZN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUU1QjtJQUNBO0lBQ3lCO0lBSGxDLFlBQ1MsU0FBbUQsRUFDbkQsZUFBZ0MsRUFDUCxJQUF1QztRQUZoRSxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUNuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDUCxTQUFJLEdBQUosSUFBSSxDQUFtQztJQUN0RSxDQUFDO0lBRUosWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQzt3R0FmVSwwQkFBMEIsNkVBSTNCLGVBQWU7NEZBSmQsMEJBQTBCLHdFQ2Z2Qyw0a0JBbUJBOzs0RkRKYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usa0NBQWtDOzswQkFRekMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGEge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBjYW5jZWw6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWNvbmZpcm1hdGlvbi1wb3B1cC1jb21wb25lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQ+LFxyXG4gICAgcHVibGljIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IHR5cGU6IHN0cmluZzsgY2FuY2VsOiBib29sZWFuIH1cclxuICApIHt9XHJcblxyXG4gIGNhbmNlbEFjdGlvbigpIHtcclxuICAgIHRoaXMuZGF0YS5jYW5jZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNhbmNlbCk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtZWRBY3Rpb24oKSB7XHJcbiAgICB0aGlzLmRhdGEuY2FuY2VsID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmRhdGEuY2FuY2VsKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxwIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICB7e1xuICAgICAgZGF0YS50eXBlID09PSAnYWRkJ1xuICAgICAgICA/IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby53b3Jrc3BhY2UuYWRkQ29uZmlybWF0aW9uJylcbiAgICAgICAgOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnaWdvLmdlby53b3Jrc3BhY2UuZGVsZXRlQ29uZmlybWF0aW9uJ1xuICAgICAgICAgIClcbiAgICB9fVxuICA8L3A+XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtZWRBY3Rpb24oKVwiPlxuICAgIE9rXG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxBY3Rpb24oKVwiPlxuICAgIHt7IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby53b3Jrc3BhY2UuY2FuY2VsJykgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './confirmation-popup.component';
|
|
2
2
|
export * from './confirmation-popup.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2UvY29uZmlybWF0aW9uLXBvcHVwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpcm1hdGlvbi1wb3B1cC5tb2R1bGUnO1xuIl19
|
|
@@ -296,4 +296,4 @@ export class EditionWorkspace extends Workspace {
|
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUd6RSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQU9oRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQXFEbkM7SUFDQTtJQUNBO0lBQ0E7SUFDRTtJQXhESCxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJ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QUM7UUFDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMvRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVJlY29yZCwgV29ya3NwYWNlLCBXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XHJcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgdHlwZSB7IFR5cGUgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XHJcbmltcG9ydCBPbFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcclxuaW1wb3J0ICogYXMgT2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UsIFJlbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkJztcclxuaW1wb3J0IHsgR2VvbWV0cnlUeXBlLCBjcmVhdGVJbnRlcmFjdGlvblN0eWxlIH0gZnJvbSAnLi4vLi4vZHJhdy9zaGFyZWQnO1xyXG5pbXBvcnQgeyBmZWF0dXJlVG9PbCB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkJztcclxuaW1wb3J0IHsgRHJhd0NvbnRyb2wgfSBmcm9tICcuLi8uLi9nZW9tZXRyeS9zaGFyZWQnO1xyXG5pbXBvcnQgeyBJbWFnZUxheWVyLCBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZCc7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zIGV4dGVuZHMgV29ya3NwYWNlT3B0aW9ucyB7XHJcbiAgbGF5ZXI6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllcjtcclxuICBtYXA6IElnb01hcDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRpb25Xb3Jrc3BhY2UgZXh0ZW5kcyBXb3Jrc3BhY2Uge1xyXG4gIHJlYWRvbmx5IGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHRydWVcclxuICApO1xyXG5cclxuICBnZXQgbGF5ZXIoKTogSW1hZ2VMYXllciB8IFZlY3RvckxheWVyIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGF5ZXI7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0NvbnRyb2w6IERyYXdDb250cm9sO1xyXG4gIHByaXZhdGUgZHJhd0VuZCQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBvbERyYXdpbmdMYXllclNvdXJjZSA9IG5ldyBPbFZlY3RvclNvdXJjZSgpO1xyXG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xyXG4gIHB1YmxpYyBnZW9tZXRyeVR5cGUgPSBHZW9tZXRyeVR5cGU7IC8vIFJlZmVyZW5jZSB0byB0aGUgR2VvbWV0cnlUeXBlIGVudW1cclxuICBwdWJsaWMgbW9kaWZ5OyAvLyBSZWZlcmVuY2UgdG8gdGhlIG9sIGludGVyYWN0aW9uXHJcblxyXG4gIHB1YmxpYyBtb2RpZnlTdHlsZSA9IG5ldyBPbFN0eWxlLlN0eWxlKHtcclxuICAgIHN0cm9rZTogbmV3IE9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcclxuICAgICAgd2lkdGg6IDFcclxuICAgIH0pLFxyXG4gICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XHJcbiAgICAgIGNvbG9yOiAncmdiYSgwLDE2MSwyMjIsMSknXHJcbiAgICB9KSxcclxuICAgIGltYWdlOiBuZXcgT2xTdHlsZS5DaXJjbGUoe1xyXG4gICAgICByYWRpdXM6IDcsXHJcbiAgICAgIHN0cm9rZTogbmV3IE9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxyXG4gICAgICAgIHdpZHRoOiAxXHJcbiAgICAgIH0pLFxyXG4gICAgICBmaWxsOiBuZXcgT2xTdHlsZS5GaWxsKHtcclxuICAgICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBuZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiB7XHJcbiAgICByZXR1cm4gcmVjb3JkLnN0YXRlLm5ld0ZlYXR1cmUgPT09IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBlZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xyXG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5lZGl0ID09PSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBmaWxsQ29sb3I6IHN0cmluZztcclxuICBwdWJsaWMgc3Ryb2tlQ29sb3I6IHN0cmluZztcclxuICBwdWJsaWMgc3Ryb2tlV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhZGRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXHJcbiAgICBwcml2YXRlIGdldERvbWFpblZhbHVlczogKHJlbGF0aW9uOiBSZWxhdGlvbk9wdGlvbnMpID0+IE9ic2VydmFibGU8YW55PixcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBFZGl0aW9uV29ya3NwYWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJC5zdWJzY3JpYmUoKG1hcFJlc29sdXRpb24pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIG1hcFJlc29sdXRpb24gPiB0aGlzLmxheWVyLm1pblJlc29sdXRpb24gJiZcclxuICAgICAgICBtYXBSZXNvbHV0aW9uIDwgdGhpcy5sYXllci5tYXhSZXNvbHV0aW9uXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wgPSB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldEdlb21ldHJ5VHlwZSh0aGlzLmdlb21ldHJ5VHlwZS5Qb2ludCBhcyBhbnkpO1xyXG5cclxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xyXG5cclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBpZDogJ2lnby1kcmF3LWxheWVyJyxcclxuICAgICAgdGl0bGU6ICdlZGl0aW9uJyxcclxuICAgICAgekluZGV4OiAzMDAsXHJcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXHJcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgICB3b3Jrc3BhY2U6IHtcclxuICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgICAgZGF0YTogeyB0eXBlOiAnZGVsZXRlJyB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgbGV0IGlkLCB1cmw7XHJcbiAgICAgICAgICBjb25zdCBiYXNlVXJsID0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmJhc2VVcmw7XHJcbiAgICAgICAgICBjb25zdCBkZWxldGVVcmwgPVxyXG4gICAgICAgICAgICB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uZGVsZXRlVXJsO1xyXG4gICAgICAgICAgaWYgKGJhc2VVcmwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcclxuICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJykgK1xyXG4gICAgICAgICAgICAgICAgYmFzZVVybCArXHJcbiAgICAgICAgICAgICAgICAnPycgK1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlVXJsXHJcbiAgICAgICAgICAgICAgOiBiYXNlVXJsICsgJz8nICsgZGVsZXRlVXJsO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKVxyXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArIGRlbGV0ZVVybFxyXG4gICAgICAgICAgICAgIDogZGVsZXRlVXJsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGZlYXR1cmUucHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUuaW5jbHVkZXMoJ3Byb3BlcnRpZXMuJykpIHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnNwbGl0KCcuJylbMV07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lID09PSBwcm9wZXJ0eSAmJiBjb2x1bW4ucHJpbWFyeSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWQgPSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB1cmwgKz0gaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRmVhdHVyZSh3b3Jrc3BhY2UsIHVybCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0sIDI1MCk7XHJcbiAgfVxyXG5cclxuICBlZGl0RmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIGZlYXR1cmUuZWRpdGlvbiA9IHRydWU7XHJcbiAgICBsZXQgaWQ7XHJcbiAgICBsZXQgZmluZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgZWRpdGlvbk9wdCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbjtcclxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucykge1xyXG4gICAgICAvLyBVcGRhdGUgZG9tYWluIGxpc3RcclxuICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnbGlzdCcgfHwgY29sdW1uLnR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XHJcbiAgICAgICAgdGhpcy5nZXREb21haW5WYWx1ZXMoY29sdW1uLnJlbGF0aW9uKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmRvbWFpblZhbHVlcyA9IHJlc3VsdDtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZmluZCA9PT0gZmFsc2UpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGZlYXR1cmUucHJvcGVydGllcykge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbk5hbWUgPSBjb2x1bW4ubmFtZTtcclxuICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnNwbGl0KCcuJylbMV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgaWQgPSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICBmaW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaWQpIHtcclxuICAgICAgZmVhdHVyZS5vcmlnaW5hbF9wcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShmZWF0dXJlLnByb3BlcnRpZXMpXHJcbiAgICAgICk7XHJcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xyXG4gICAgICBmZWF0dXJlLmlka2V5ID0gaWQ7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBlZGl0OiBmYWxzZSB9KTtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5lZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xyXG4gICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBPbmx5IGZvciBlZGl0aW9uIHdpdGggaXQncyBvd24gZ2VvbWV0cnlcclxuICAgICAgaWYgKCFmZWF0dXJlLm5ld0ZlYXR1cmUgJiYgZWRpdGlvbk9wdC5nZW9tVHlwZSkge1xyXG4gICAgICAgIGZlYXR1cmUubmV3RmVhdHVyZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZGRpbmckLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IG5ld0ZlYXR1cmU6IGZhbHNlIH0pO1xyXG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcuZmlsdGVyKHRoaXMubmV3RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xyXG4gICAgICAgIGlmIChlZGl0aW9uT3B0LmFkZFdpdGhEcmF3KSB7XHJcbiAgICAgICAgICBjb25zdCBnZW9tZXRyeVR5cGUgPSBlZGl0aW9uT3B0Lmdlb21UeXBlO1xyXG4gICAgICAgICAgdGhpcy5vbkdlb21ldHJ5VHlwZUNoYW5nZShnZW9tZXRyeVR5cGUsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5pbnNlcnQoZmVhdHVyZSk7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKFxyXG4gICAgICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgICAgICB7IG5ld0ZlYXR1cmU6IHRydWUgfSxcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIERyYXcgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBmaWxsQ29sb3IgdGhlIGZpbGwgY29sb3JcclxuICAgKiBAcGFyYW0gc3Ryb2tlQ29sb3IgdGhlIHN0cm9rZSBjb2xvclxyXG4gICAqIEBwYXJhbSBzdHJva2VXaWR0aCB0aGUgc3Ryb2tlIHdpZHRoXHJcbiAgICogQHJldHVybnMgYSBEcmF3IENvbnRyb2xcclxuICAgKi9cclxuICBjcmVhdGVEcmF3Q29udHJvbChcclxuICAgIGZpbGxDb2xvcj86IHN0cmluZyxcclxuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nLFxyXG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGRyYXdDb250cm9sID0gbmV3IERyYXdDb250cm9sKHtcclxuICAgICAgZ2VvbWV0cnlUeXBlOiB1bmRlZmluZWQsXHJcbiAgICAgIGRyYXdpbmdMYXllclNvdXJjZTogdGhpcy5vbERyYXdpbmdMYXllclNvdXJjZSxcclxuICAgICAgZHJhd2luZ0xheWVyU3R5bGU6IG5ldyBPbFN0eWxlLlN0eWxlKHt9KSxcclxuICAgICAgaW50ZXJhY3Rpb25TdHlsZTogY3JlYXRlSW50ZXJhY3Rpb25TdHlsZShcclxuICAgICAgICBmaWxsQ29sb3IsXHJcbiAgICAgICAgc3Ryb2tlQ29sb3IsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGhcclxuICAgICAgKVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRyYXdDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIG5ldyBnZW9tZXRyeSB0eXBlXHJcbiAgICogQHBhcmFtIGdlb21ldHJ5VHlwZSB0aGUgZ2VvbWV0cnkgdHlwZSBzZWxlY3RlZCBieSB0aGUgdXNlclxyXG4gICAqL1xyXG4gIG9uR2VvbWV0cnlUeXBlQ2hhbmdlKFxyXG4gICAgZ2VvbWV0cnlUeXBlOiBUeXBlLFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxyXG4gICkge1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRHZW9tZXRyeVR5cGUoZ2VvbWV0cnlUeXBlKTtcclxuICAgIHRoaXMudG9nZ2xlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIHRoZSBjb3JyZWN0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xyXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcclxuICAgIHRoaXMuYWN0aXZhdGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVhY3RpdmF0ZSB0aGUgYWN0aXZlIGRyYXcgY29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWFjdGl2YXRlRHJhd0NvbnRyb2woKSB7XHJcbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRyYXdFbmQkJCkge1xyXG4gICAgICB0aGlzLmRyYXdFbmQkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0T2xNYXAodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIGEgZ2l2ZW4gY29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZhdGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIHRoaXMuZHJhd0VuZCQkID0gdGhpcy5kcmF3Q29udHJvbC5lbmQkLnN1YnNjcmliZShcclxuICAgICAgKG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkpID0+IHtcclxuICAgICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSwgb2xHZW9tZXRyeSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh0aGlzLm1hcC5vbCwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIGxheWVyLiBUaGUgbG9hZGluZyBzdHJhdGVneSBvZiB0aGUgbGF5ZXJcclxuICAgKiB3aWxsIHRyaWdnZXIgYW5kIGFkZCB0aGUgZmVhdHVyZSB0byB0aGUgd29ya3NwYWNlIHN0b3JlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkRmVhdHVyZVRvU3RvcmUoXHJcbiAgICBmZWF0dXJlLFxyXG4gICAgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlLFxyXG4gICAgb2xHZW9tZXRyeT86IE9sR2VvbWV0cnlcclxuICApIHtcclxuICAgIGNvbnN0IHByb2plY3Rpb24gPSB0aGlzLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgbGV0IGdlb21ldHJ5ID0gZmVhdHVyZS5nZW9tZXRyeTtcclxuXHJcbiAgICAvLyBJZiBhbiBvbEdlb21ldHJ5IGlzIHBhc3NlZCwgaXQgbWVhbnMgdGhhdCBpdCBpcyBhIG5ldyBmZWF0dXJlXHJcbiAgICBpZiAob2xHZW9tZXRyeSkge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgbmV3RmVhdHVyZTogdHJ1ZSB9LCB0cnVlKTtcclxuICAgICAgZ2VvbWV0cnkgPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChvbEdlb21ldHJ5LCB7XHJcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb24sXHJcbiAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnXHJcbiAgICAgIH0pIGFzIGFueTtcclxuXHJcbiAgICAgIGZlYXR1cmUuZ2VvbWV0cnkgPSBnZW9tZXRyeTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoZmVhdHVyZSwgeyBlZGl0OiB0cnVlIH0sIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGZlYXR1cmUucHJvamVjdGlvbiA9ICdFUFNHOjQzMjYnO1xyXG5cclxuICAgIGNvbnN0IGZlYXR1cmVPbCA9IGZlYXR1cmVUb09sKGZlYXR1cmUsIHByb2plY3Rpb24uZ2V0Q29kZSgpKTtcclxuXHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuY2xlYXIoKTtcclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIuZGF0YVNvdXJjZS5vbC5hZGRGZWF0dXJlKGZlYXR1cmVPbCk7XHJcbiAgICB0aGlzLm1hcC5hZGRMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuXHJcbiAgICB0aGlzLmRlYWN0aXZhdGVEcmF3Q29udHJvbCgpO1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihmZWF0dXJlT2wsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgZHJhd2luZ3MgbGF5ZXIgYW5kIHNvdXJjZSBmcm9tIHRoZSBtYXAgQU5EIGZlYXR1cmUgZnJvbSB0aGUgZW50aXR5IHN0b3JlLlxyXG4gICAqIExheWVyIHJlZnJlc2ggd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IGZlYXR1cmUgaW50byB0aGUgc3RvcmUuXHJcbiAgICovXHJcbiAgZGVsZXRlRHJhd2luZ3MoKSB7XHJcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UuY2xlYXIoKTtcclxuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG1vZGlmeSBpbnRlcmFjdGlvbiB0byBhbGxvdyBhIGdlb21ldHJ5IGNoYW5nZSBvbmUgZmVhdHVyZSBhdCB0aGUgdGltZSAoZHJhZyBhbmQgZHJvcClcclxuICAgKi9cclxuICBjcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihcclxuICAgIG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxyXG4gICkge1xyXG4gICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xyXG4gICAgY29uc3Qgb2xDb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24oW29sRmVhdHVyZV0sIHsgdW5pcXVlOiB0cnVlIH0pO1xyXG4gICAgdGhpcy5tb2RpZnkgPSBuZXcgT2xNb2RpZnkoe1xyXG4gICAgICBmZWF0dXJlczogb2xDb2xsZWN0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XHJcbiAgICBvbENvbGxlY3Rpb24uZm9yRWFjaCgoZmVhdHVyZSkgPT4ge1xyXG4gICAgICBmZWF0dXJlLnNldFN0eWxlKHRoaXMubW9kaWZ5U3R5bGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tb2RpZnkub24oJ21vZGlmeWVuZCcsIChldmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuZ2V0QXJyYXkoKVswXT8uZ2V0R2VvbWV0cnkoKTtcclxuICAgICAgaWYgKG9sR2VvbWV0cnkpIHtcclxuICAgICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSwgb2xHZW9tZXRyeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUd6RSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQU9oRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQXFEbkM7SUFDQTtJQUNBO0lBQ0E7SUFDRTtJQXhESCxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJ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QUM7UUFDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMvRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRW50aXR5UmVjb3JkLCBXb3Jrc3BhY2UsIFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tICdvbC9Db2xsZWN0aW9uJztcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCBPbE1vZGlmeSBmcm9tICdvbC9pbnRlcmFjdGlvbi9Nb2RpZnknO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0ICogYXMgT2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlLCBSZWxhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZCc7XG5pbXBvcnQgeyBHZW9tZXRyeVR5cGUsIGNyZWF0ZUludGVyYWN0aW9uU3R5bGUgfSBmcm9tICcuLi8uLi9kcmF3L3NoYXJlZCc7XG5pbXBvcnQgeyBmZWF0dXJlVG9PbCB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkJztcbmltcG9ydCB7IERyYXdDb250cm9sIH0gZnJvbSAnLi4vLi4vZ2VvbWV0cnkvc2hhcmVkJztcbmltcG9ydCB7IEltYWdlTGF5ZXIsIFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLXBvcHVwL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zIGV4dGVuZHMgV29ya3NwYWNlT3B0aW9ucyB7XG4gIGxheWVyOiBJbWFnZUxheWVyIHwgVmVjdG9yTGF5ZXI7XG4gIG1hcDogSWdvTWFwO1xufVxuXG5leHBvcnQgY2xhc3MgRWRpdGlvbldvcmtzcGFjZSBleHRlbmRzIFdvcmtzcGFjZSB7XG4gIHJlYWRvbmx5IGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB0cnVlXG4gICk7XG5cbiAgZ2V0IGxheWVyKCk6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5sYXllcjtcbiAgfVxuXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0NvbnRyb2w6IERyYXdDb250cm9sO1xuICBwcml2YXRlIGRyYXdFbmQkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyU291cmNlID0gbmV3IE9sVmVjdG9yU291cmNlKCk7XG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlOyAvLyBSZWZlcmVuY2UgdG8gdGhlIEdlb21ldHJ5VHlwZSBlbnVtXG4gIHB1YmxpYyBtb2RpZnk7IC8vIFJlZmVyZW5jZSB0byB0aGUgb2wgaW50ZXJhY3Rpb25cblxuICBwdWJsaWMgbW9kaWZ5U3R5bGUgPSBuZXcgT2xTdHlsZS5TdHlsZSh7XG4gICAgc3Ryb2tlOiBuZXcgT2xTdHlsZS5TdHJva2Uoe1xuICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgIHdpZHRoOiAxXG4gICAgfSksXG4gICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XG4gICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xuICAgIH0pLFxuICAgIGltYWdlOiBuZXcgT2xTdHlsZS5DaXJjbGUoe1xuICAgICAgcmFkaXVzOiA3LFxuICAgICAgc3Ryb2tlOiBuZXcgT2xTdHlsZS5TdHJva2Uoe1xuICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICB3aWR0aDogMVxuICAgICAgfSksXG4gICAgICBmaWxsOiBuZXcgT2xTdHlsZS5GaWxsKHtcbiAgICAgICAgY29sb3I6ICdyZ2JhKDAsMTYxLDIyMiwxKSdcbiAgICAgIH0pXG4gICAgfSlcbiAgfSk7XG5cbiAgcHJpdmF0ZSBuZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiB7XG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5uZXdGZWF0dXJlID09PSB0cnVlO1xuICB9O1xuXG4gIHByaXZhdGUgZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcbiAgICByZXR1cm4gcmVjb3JkLnN0YXRlLmVkaXQgPT09IHRydWU7XG4gIH07XG5cbiAgcHVibGljIGZpbGxDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgc3Ryb2tlQ29sb3I6IHN0cmluZztcbiAgcHVibGljIHN0cm9rZVdpZHRoOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gICAgcHJpdmF0ZSBnZXREb21haW5WYWx1ZXM6IChyZWxhdGlvbjogUmVsYXRpb25PcHRpb25zKSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kLnN1YnNjcmliZSgobWFwUmVzb2x1dGlvbikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBtYXBSZXNvbHV0aW9uID4gdGhpcy5sYXllci5taW5SZXNvbHV0aW9uICYmXG4gICAgICAgIG1hcFJlc29sdXRpb24gPCB0aGlzLmxheWVyLm1heFJlc29sdXRpb25cbiAgICAgICkge1xuICAgICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYXdDb250cm9sID0gdGhpcy5jcmVhdGVEcmF3Q29udHJvbCgpO1xuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKHRoaXMuZ2VvbWV0cnlUeXBlLlBvaW50IGFzIGFueSk7XG5cbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcblxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgaWQ6ICdpZ28tZHJhdy1sYXllcicsXG4gICAgICB0aXRsZTogJ2VkaXRpb24nLFxuICAgICAgekluZGV4OiAzMDAsXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICAgIHdvcmtzcGFjZToge1xuICAgICAgICBlbmFibGVkOiBmYWxzZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgICAgZGlzYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgZGF0YTogeyB0eXBlOiAnZGVsZXRlJyB9XG4gICAgICB9KTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBsZXQgaWQsIHVybDtcbiAgICAgICAgICBjb25zdCBiYXNlVXJsID0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmJhc2VVcmw7XG4gICAgICAgICAgY29uc3QgZGVsZXRlVXJsID1cbiAgICAgICAgICAgIHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5kZWxldGVVcmw7XG4gICAgICAgICAgaWYgKGJhc2VVcmwubGVuZ3RoKSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArXG4gICAgICAgICAgICAgICAgYmFzZVVybCArXG4gICAgICAgICAgICAgICAgJz8nICtcbiAgICAgICAgICAgICAgICBkZWxldGVVcmxcbiAgICAgICAgICAgICAgOiBiYXNlVXJsICsgJz8nICsgZGVsZXRlVXJsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArIGRlbGV0ZVVybFxuICAgICAgICAgICAgICA6IGRlbGV0ZVVybDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gZmVhdHVyZS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZSA9IGNvbHVtbk5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGZlYXR1cmUucHJvcGVydGllc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgdXJsICs9IGlkO1xuICAgICAgICAgICAgdGhpcy5kZWxldGVGZWF0dXJlKHdvcmtzcGFjZSwgdXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBlZGl0RmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcbiAgICBmZWF0dXJlLmVkaXRpb24gPSB0cnVlO1xuICAgIGxldCBpZDtcbiAgICBsZXQgZmluZCA9IGZhbHNlO1xuICAgIGNvbnN0IGVkaXRpb25PcHQgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb247XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2Ygd29ya3NwYWNlLm1ldGEudGFibGVUZW1wbGF0ZS5jb2x1bW5zKSB7XG4gICAgICAvLyBVcGRhdGUgZG9tYWluIGxpc3RcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpc3QnIHx8IGNvbHVtbi50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICB0aGlzLmdldERvbWFpblZhbHVlcyhjb2x1bW4ucmVsYXRpb24pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29sdW1uLmRvbWFpblZhbHVlcyA9IHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZmluZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICBsZXQgY29sdW1uTmFtZSA9IGNvbHVtbi5uYW1lO1xuICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGZpbmQgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpZCkge1xuICAgICAgZmVhdHVyZS5vcmlnaW5hbF9wcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZmVhdHVyZS5wcm9wZXJ0aWVzKVxuICAgICAgKTtcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xuICAgICAgZmVhdHVyZS5pZGtleSA9IGlkO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IGVkaXQ6IGZhbHNlIH0pO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5lZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xuICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPbmx5IGZvciBlZGl0aW9uIHdpdGggaXQncyBvd24gZ2VvbWV0cnlcbiAgICAgIGlmICghZmVhdHVyZS5uZXdGZWF0dXJlICYmIGVkaXRpb25PcHQuZ2VvbVR5cGUpIHtcbiAgICAgICAgZmVhdHVyZS5uZXdGZWF0dXJlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBuZXdGZWF0dXJlOiBmYWxzZSB9KTtcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5uZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyk7XG4gICAgICAgIGlmIChlZGl0aW9uT3B0LmFkZFdpdGhEcmF3KSB7XG4gICAgICAgICAgY29uc3QgZ2VvbWV0cnlUeXBlID0gZWRpdGlvbk9wdC5nZW9tVHlwZTtcbiAgICAgICAgICB0aGlzLm9uR2VvbWV0cnlUeXBlQ2hhbmdlKGdlb21ldHJ5VHlwZSwgZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoXG4gICAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgICAgeyBuZXdGZWF0dXJlOiB0cnVlIH0sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEcmF3IENvbnRyb2xcbiAgICogQHBhcmFtIGZpbGxDb2xvciB0aGUgZmlsbCBjb2xvclxuICAgKiBAcGFyYW0gc3Ryb2tlQ29sb3IgdGhlIHN0cm9rZSBjb2xvclxuICAgKiBAcGFyYW0gc3Ryb2tlV2lkdGggdGhlIHN0cm9rZSB3aWR0aFxuICAgKiBAcmV0dXJucyBhIERyYXcgQ29udHJvbFxuICAgKi9cbiAgY3JlYXRlRHJhd0NvbnRyb2woXG4gICAgZmlsbENvbG9yPzogc3RyaW5nLFxuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nLFxuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyXG4gICkge1xuICAgIGNvbnN0IGRyYXdDb250cm9sID0gbmV3IERyYXdDb250cm9sKHtcbiAgICAgIGdlb21ldHJ5VHlwZTogdW5kZWZpbmVkLFxuICAgICAgZHJhd2luZ0xheWVyU291cmNlOiB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLFxuICAgICAgZHJhd2luZ0xheWVyU3R5bGU6IG5ldyBPbFN0eWxlLlN0eWxlKHt9KSxcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IGNyZWF0ZUludGVyYWN0aW9uU3R5bGUoXG4gICAgICAgIGZpbGxDb2xvcixcbiAgICAgICAgc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoXG4gICAgICApXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZHJhd0NvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIG5ldyBnZW9tZXRyeSB0eXBlXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGUgc2VsZWN0ZWQgYnkgdGhlIHVzZXJcbiAgICovXG4gIG9uR2VvbWV0cnlUeXBlQ2hhbmdlKFxuICAgIGdlb21ldHJ5VHlwZTogVHlwZSxcbiAgICBmZWF0dXJlLFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxuICApIHtcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldEdlb21ldHJ5VHlwZShnZW9tZXRyeVR5cGUpO1xuICAgIHRoaXMudG9nZ2xlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0aGUgY29ycmVjdCBjb250cm9sXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5hY3RpdmF0ZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSB0aGUgYWN0aXZlIGRyYXcgY29udHJvbFxuICAgKi9cbiAgcHVibGljIGRlYWN0aXZhdGVEcmF3Q29udHJvbCgpIHtcbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmF3RW5kJCQpIHtcbiAgICAgIHRoaXMuZHJhd0VuZCQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIGEgZ2l2ZW4gY29udHJvbFxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmF0ZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xuICAgIHRoaXMuZHJhd0VuZCQkID0gdGhpcy5kcmF3Q29udHJvbC5lbmQkLnN1YnNjcmliZShcbiAgICAgIChvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSA9PiB7XG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZVRvU3RvcmUoZmVhdHVyZSwgd29ya3NwYWNlLCBvbEdlb21ldHJ5KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh0aGlzLm1hcC5vbCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZmVhdHVyZSB0byBsYXllci4gVGhlIGxvYWRpbmcgc3RyYXRlZ3kgb2YgdGhlIGxheWVyXG4gICAqIHdpbGwgdHJpZ2dlciBhbmQgYWRkIHRoZSBmZWF0dXJlIHRvIHRoZSB3b3Jrc3BhY2Ugc3RvcmUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBhZGRGZWF0dXJlVG9TdG9yZShcbiAgICBmZWF0dXJlLFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcbiAgICBvbEdlb21ldHJ5PzogT2xHZW9tZXRyeVxuICApIHtcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcbiAgICBsZXQgZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xuXG4gICAgLy8gSWYgYW4gb2xHZW9tZXRyeSBpcyBwYXNzZWQsIGl0IG1lYW5zIHRoYXQgaXQgaXMgYSBuZXcgZmVhdHVyZVxuICAgIGlmIChvbEdlb21ldHJ5KSB7XG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IG5ld0ZlYXR1cmU6IHRydWUgfSwgdHJ1ZSk7XG4gICAgICBnZW9tZXRyeSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KG9sR2VvbWV0cnksIHtcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb24sXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xuICAgICAgfSkgYXMgYW55O1xuXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZ2VvbWV0cnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoZmVhdHVyZSwgeyBlZGl0OiB0cnVlIH0sIHRydWUpO1xuICAgIH1cblxuICAgIGZlYXR1cmUucHJvamVjdGlvbiA9ICdFUFNHOjQzMjYnO1xuXG4gICAgY29uc3QgZmVhdHVyZU9sID0gZmVhdHVyZVRvT2woZmVhdHVyZSwgcHJvamVjdGlvbi5nZXRDb2RlKCkpO1xuXG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmNsZWFyKCk7XG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmFkZEZlYXR1cmUoZmVhdHVyZU9sKTtcbiAgICB0aGlzLm1hcC5hZGRMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcblxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5jcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihmZWF0dXJlT2wsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGRyYXdpbmdzIGxheWVyIGFuZCBzb3VyY2UgZnJvbSB0aGUgbWFwIEFORCBmZWF0dXJlIGZyb20gdGhlIGVudGl0eSBzdG9yZS5cbiAgICogTGF5ZXIgcmVmcmVzaCB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgZmVhdHVyZSBpbnRvIHRoZSBzdG9yZS5cbiAgICovXG4gIGRlbGV0ZURyYXdpbmdzKCkge1xuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UuY2xlYXIoKTtcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbW9kaWZ5IGludGVyYWN0aW9uIHRvIGFsbG93IGEgZ2VvbWV0cnkgY2hhbmdlIG9uZSBmZWF0dXJlIGF0IHRoZSB0aW1lIChkcmFnIGFuZCBkcm9wKVxuICAgKi9cbiAgY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oXG4gICAgb2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sXG4gICAgZmVhdHVyZSxcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcbiAgKSB7XG4gICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xuICAgIGNvbnN0IG9sQ29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKFtvbEZlYXR1cmVdLCB7IHVuaXF1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLm1vZGlmeSA9IG5ldyBPbE1vZGlmeSh7XG4gICAgICBmZWF0dXJlczogb2xDb2xsZWN0aW9uXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XG4gICAgb2xDb2xsZWN0aW9uLmZvckVhY2goKGZlYXR1cmUpID0+IHtcbiAgICAgIGZlYXR1cmUuc2V0U3R5bGUodGhpcy5tb2RpZnlTdHlsZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGlmeS5vbignbW9kaWZ5ZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuZ2V0QXJyYXkoKVswXT8uZ2V0R2VvbWV0cnkoKTtcbiAgICAgIGlmIChvbEdlb21ldHJ5KSB7XG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZVRvU3RvcmUoZmVhdHVyZSwgd29ya3NwYWNlLCBvbEdlb21ldHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|