@igo2/geo 17.0.0-next.0 → 17.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +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-browser/catalog-browser.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +19 -17
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +14 -12
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog.module.mjs +4 -4
- package/esm2022/lib/catalog/shared/catalog.service.mjs +12 -8
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +3 -3
- package/esm2022/lib/datasource/shared/datasource.service.mjs +10 -8
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.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/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 +3 -3
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +17 -13
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +6 -6
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +2 -2
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
- package/esm2022/lib/directions/directions.component.mjs +6 -6
- package/esm2022/lib/directions/directions.module.mjs +4 -4
- package/esm2022/lib/directions/shared/directions.service.mjs +13 -9
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download.module.mjs +4 -4
- package/esm2022/lib/download/shared/download.service.mjs +6 -6
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +6 -6
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw.component.mjs +6 -6
- package/esm2022/lib/draw/draw/draw.module.mjs +4 -4
- package/esm2022/lib/draw/drawingTool.module.mjs +4 -4
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +6 -6
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +13 -10
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +4 -4
- package/esm2022/lib/feature/feature.module.mjs +4 -4
- package/esm2022/lib/filter/filter.module.mjs +4 -4
- 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 +6 -6
- 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-binding.directive.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +3 -3
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +3 -3
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +3 -3
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -7
- package/esm2022/lib/filter/shared/time-filter.service.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +23 -21
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -6
- 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-binding.directive.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geo.module.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +4 -4
- package/esm2022/lib/geometry/geometry.module.mjs +4 -4
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +28 -22
- package/esm2022/lib/import-export/import-export.module.mjs +4 -4
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +11 -9
- package/esm2022/lib/import-export/shared/export.service.mjs +6 -6
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +6 -6
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +6 -6
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +18 -16
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +6 -6
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.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-binding.directive.mjs +6 -6
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +3 -3
- 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 +3 -3
- package/esm2022/lib/layer/layer.module.mjs +4 -4
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
- 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/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.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/map/baselayers-switcher/baselayers-switcher.component.mjs +6 -6
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +6 -6
- package/esm2022/lib/map/info-section/info-section.component.mjs +3 -3
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
- package/esm2022/lib/map/map-center/map-center.component.mjs +3 -3
- package/esm2022/lib/map/map.module.mjs +4 -4
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +6 -6
- 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/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +6 -6
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +6 -6
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +3 -3
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -7
- package/esm2022/lib/map/shared/projection.service.mjs +6 -6
- 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/wake-lock-button/wake-lock-button.component.mjs +6 -6
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
- package/esm2022/lib/measure/measure.module.mjs +4 -4
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +3 -3
- 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 +16 -14
- package/esm2022/lib/measure/measurer/measurer.module.mjs +4 -4
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
- package/esm2022/lib/metadata/metadata.module.mjs +4 -4
- package/esm2022/lib/metadata/shared/metadata.service.mjs +3 -3
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +6 -6
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +8 -10
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +3 -3
- package/esm2022/lib/offline/shared/geo-network.service.mjs +6 -6
- package/esm2022/lib/overlay/overlay.module.mjs +4 -4
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +3 -3
- package/esm2022/lib/overlay/shared/overlay.service.mjs +3 -3
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/print-form.component.mjs +6 -6
- package/esm2022/lib/print/print.module.mjs +4 -4
- package/esm2022/lib/print/shared/print.service.mjs +13 -7
- package/esm2022/lib/query/query.module.mjs +6 -6
- package/esm2022/lib/query/shared/query-search-source.mjs +3 -3
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +2 -2
- package/esm2022/lib/query/shared/query.directive.mjs +3 -3
- package/esm2022/lib/query/shared/query.service.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +4 -4
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results.module.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +18 -16
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +4 -4
- package/esm2022/lib/search/search.module.mjs +4 -4
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +6 -6
- package/esm2022/lib/search/shared/search.service.mjs +6 -6
- package/esm2022/lib/search/shared/sources/cadastre.mjs +9 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/coordinates.mjs +12 -10
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/icherche.mjs +16 -14
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/ilayer.mjs +12 -10
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/nominatim.mjs +6 -6
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +3 -2
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +13 -11
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/workspace.mjs +9 -7
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +4 -2
- package/esm2022/lib/style/style-list/style-list.module.mjs +4 -4
- package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
- 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-service/draw-style.service.mjs +3 -3
- package/esm2022/lib/style/style-service/style.service.mjs +3 -3
- package/esm2022/lib/style/style.module.mjs +4 -4
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +6 -6
- package/esm2022/lib/wkt/shared/wkt.service.mjs +3 -3
- package/esm2022/lib/wkt/wkt.module.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +6 -6
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +4 -4
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +15 -11
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +12 -10
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +12 -10
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +10 -8
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace.module.mjs +4 -4
- package/fesm2022/igo2-geo.mjs +701 -690
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +2 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -1
- package/lib/catalog/shared/catalog.service.d.ts +3 -1
- package/lib/datasource/shared/datasource.service.d.ts +2 -1
- package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +3 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
- package/lib/directions/directions-sources/directions-source.provider.d.ts +1 -1
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +1 -1
- package/lib/directions/shared/directions.service.d.ts +3 -1
- package/lib/directions/shared/directions.utils.d.ts +1 -1
- package/lib/download/shared/download.service.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.component.d.ts +3 -2
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +2 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -1
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +4 -1
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +2 -1
- package/lib/import-export/shared/export.service.d.ts +1 -1
- package/lib/import-export/shared/export.utils.d.ts +1 -1
- package/lib/import-export/shared/import.service.d.ts +1 -1
- package/lib/import-export/shared/import.utils.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +1 -1
- package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
- package/lib/layer/utils/image-watcher.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +2 -1
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
- package/lib/map/shared/map.d.ts +2 -1
- package/lib/map/shared/mapOffline.directive.d.ts +2 -1
- package/lib/map/shared/projection.service.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +2 -1
- package/lib/measure/shared/measure.utils.d.ts +1 -1
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +2 -3
- package/lib/offline/shared/geo-network.service.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +1 -1
- package/lib/print/shared/print.service.d.ts +4 -1
- package/lib/query/query.module.d.ts +1 -1
- package/lib/query/shared/query-search-source.providers.d.ts +1 -1
- package/lib/query/shared/query.service.d.ts +1 -1
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +2 -1
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/search/shared/search.service.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +2 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +3 -1
- package/lib/search/shared/sources/coordinates.d.ts +2 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +3 -1
- package/lib/search/shared/sources/icherche.d.ts +2 -1
- package/lib/search/shared/sources/icherche.providers.d.ts +3 -1
- package/lib/search/shared/sources/ilayer.d.ts +2 -1
- package/lib/search/shared/sources/ilayer.providers.d.ts +3 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +2 -1
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.d.ts +2 -1
- package/lib/search/shared/sources/storedqueries.providers.d.ts +3 -1
- package/lib/search/shared/sources/workspace.d.ts +2 -1
- package/lib/search/shared/sources/workspace.providers.d.ts +3 -1
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.service.d.ts +3 -1
- package/lib/workspace/shared/feature-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wms-workspace.service.d.ts +2 -1
- package/package.json +5 -5
|
@@ -6,14 +6,14 @@ import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
|
6
6
|
import { MatIconModule } from '@angular/material/icon';
|
|
7
7
|
import { MatListModule } from '@angular/material/list';
|
|
8
8
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
9
|
-
import { NetworkService } from '@igo2/core';
|
|
9
|
+
import { NetworkService } from '@igo2/core/network';
|
|
10
10
|
import { TranslateModule } from '@ngx-translate/core';
|
|
11
11
|
import { BehaviorSubject } from 'rxjs';
|
|
12
12
|
import { layerIsQueryable } from '../../query/shared/query.utils';
|
|
13
13
|
import { LayerLegendComponent } from '../layer-legend/layer-legend.component';
|
|
14
14
|
import { TooltipType } from '../shared/layers/layer.interface';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@igo2/core";
|
|
16
|
+
import * as i1 from "@igo2/core/network";
|
|
17
17
|
import * as i2 from "@angular/material/list";
|
|
18
18
|
import * as i3 from "@angular/material/checkbox";
|
|
19
19
|
import * as i4 from "@angular/material/tooltip";
|
|
@@ -211,10 +211,10 @@ export class LayerItemComponent {
|
|
|
211
211
|
this.layerCheck = !this.layerCheck;
|
|
212
212
|
this.checkbox.emit({ layer: this.layer, check: this.layerCheck });
|
|
213
213
|
}
|
|
214
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
215
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
214
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerItemComponent, deps: [{ token: i1.NetworkService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: LayerItemComponent, isStandalone: true, selector: "igo-layer-item", inputs: { activeLayer: "activeLayer", selectAll: "selectAll", layerCheck: "layerCheck", layer: "layer", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendIfVisible: "expandLegendIfVisible", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", orderable: "orderable", lowerDisabled: "lowerDisabled", raiseDisabled: "raiseDisabled", queryBadge: "queryBadge", selectionMode: "selectionMode", changeDetection: "changeDetection" }, outputs: { action: "action", checkbox: "checkbox" }, ngImport: i0, template: "<mat-list-item class=\"igo-layer-list-item\">\n <mat-checkbox\n *ngIf=\"selectionMode\"\n class=\"layerCheck\"\n matListItemIcon\n (change)=\"check()\"\n [checked]=\"layerCheck\"\n >\n </mat-checkbox>\n <span\n matListItemTitle\n class=\"igo-layer-title\"\n [matTooltip]=\"tooltipText\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleLegendOnClick()\"\n >\n {{ layer.title }}\n </span>\n\n <div matListItemMeta>\n <button\n *ngIf=\"!selectionMode\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"eyeTooltip | translate\"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"selectionMode\"\n class=\"selection-eye\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"!selectionMode\"\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerTool()\"\n >\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend\n *ngIf=\"showLegend$ | async\"\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend>\n</div>\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
216
216
|
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerItemComponent, decorators: [{
|
|
218
218
|
type: Component,
|
|
219
219
|
args: [{ selector: 'igo-layer-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
220
220
|
MatListModule,
|
|
@@ -260,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
260
260
|
}], checkbox: [{
|
|
261
261
|
type: Output
|
|
262
262
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7O0FBc0IvRCxNQUFNLE9BQU8sa0JBQWtCO0lBMEduQjtJQUNBO0lBQ0E7SUFDQTtJQTVHSCxVQUFVLEdBQUcsd0JBQXdCLENBQUM7SUFFN0MsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFLO1FBQ25CLElBQ0UsS0FBSztZQUNMLElBQUksQ0FBQyxLQUFLO1lBQ1YsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUNuQixDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBQ08sWUFBWSxDQUFDO0lBRXJCLFVBQVUsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEUsV0FBVyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsRSxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsaUJBQWlCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhFLFdBQVcsQ0FBUztJQUVwQixLQUFLLENBQWtCO0lBRXZCLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNPLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbEIsVUFBVSxDQUFDO0lBRVosWUFBWSxDQUFlO0lBQzNCLFNBQVMsQ0FBZTtJQUN4QixRQUFRLENBQWU7SUFFL0IsT0FBTyxHQUEyQixJQUFJLGVBQWUsQ0FBUSxTQUFTLENBQUMsQ0FBQztJQUV4RSxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ08sTUFBTSxDQUFDO0lBRU4sOEJBQThCLEdBQVksS0FBSyxDQUFDO0lBRWhELHFCQUFxQixHQUFZLEtBQUssQ0FBQztJQUV2Qyw4QkFBOEIsR0FBWSxLQUFLLENBQUM7SUFFaEQsU0FBUyxHQUFZLElBQUksQ0FBQztJQUUxQixhQUFhLEdBQVksS0FBSyxDQUFDO0lBRS9CLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUU1QixhQUFhLENBQUM7SUFFZCxlQUFlLENBQUM7SUFFekIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQWU7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakQsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUN2QixDQUFDLENBQUMseUJBQXlCO2dCQUMzQixDQUFDLENBQUMseUJBQXlCLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFUyxNQUFNLEdBQXdCLElBQUksWUFBWSxDQUFRLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFHakMsQ0FBQztJQUVMLFlBQ1UsY0FBOEIsRUFDOUIsUUFBbUIsRUFDbkIsS0FBaUIsRUFDakIsS0FBd0I7UUFIeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUI7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLEVBQ3RDLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjO2FBQ2pDLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFrQjtRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBSSxZQUFxQyxDQUFDLFFBQVEsQ0FBQztRQUN0RSxRQUFRLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsS0FBSyxXQUFXLENBQUMsS0FBSztnQkFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxQixLQUFLLFdBQVcsQ0FBQyxRQUFRO2dCQUN2QixJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzVDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDaEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxLQUFLLFdBQVcsQ0FBQyxNQUFNO2dCQUNyQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLENBQUM7WUFDSDtnQkFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztRQUMxRCxJQUNFLGlCQUFpQixLQUFLLEtBQUs7WUFDM0IsSUFBSSxDQUFDLDhCQUE4QixLQUFLLElBQUksRUFDNUMsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSztZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLO1lBQzVCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO3VHQXhPVSxrQkFBa0I7MkZBQWxCLGtCQUFrQixtbEJDbkQvQixrcEZBOEZBLDRXRHhESSxhQUFhLG9iQUNiLElBQUksNEZBQ0osaUJBQWlCLDZXQUNqQixnQkFBZ0IsNFRBQ2hCLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixjQUFjLDRQQUNkLE9BQU8sb0ZBQ1Asb0JBQW9CLDZHQUNwQixTQUFTLDZDQUNULGVBQWU7OzJGQUdOLGtCQUFrQjtrQkFwQjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsT0FBTzt3QkFDUCxvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7b0tBTUcsV0FBVztzQkFEZCxLQUFLO2dCQWdDRixTQUFTO3NCQURaLEtBQUs7Z0JBWUcsVUFBVTtzQkFBbEIsS0FBSztnQkFTRixLQUFLO3NCQURSLEtBQUs7Z0JBVUcsOEJBQThCO3NCQUF0QyxLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBbUJJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0ZSwgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTWV0YWRhdGFMYXllck9wdGlvbnMgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9zaGFyZWQvbWV0YWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgbGF5ZXJJc1F1ZXJ5YWJsZSB9IGZyb20gJy4uLy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS51dGlscyc7XHJcbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUb29sdGlwVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWxheWVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sYXllci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTmdJZixcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCYWRnZU1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBMYXllckxlZ2VuZENvbXBvbmVudCxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExheWVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgZm9jdXNlZENscyA9ICdpZ28tbGF5ZXItaXRlbS1mb2N1c2VkJztcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgYWN0aXZlTGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBhY3RpdmVMYXllcih2YWx1ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICB0aGlzLmxheWVyICYmXHJcbiAgICAgIHZhbHVlLmlkID09PSB0aGlzLmxheWVyLmlkICYmXHJcbiAgICAgICF0aGlzLnNlbGVjdGlvbk1vZGVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYWN0aXZlTGF5ZXI7XHJcblxyXG4gIGxheWVyVG9vbCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICBxdWVyeUJhZGdlSGlkZGVuJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcclxuXHJcbiAgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0QWxsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdEFsbDtcclxuICB9XHJcbiAgc2V0IHNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5sYXllckNoZWNrID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0QWxsID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGxheWVyQ2hlY2s7XHJcblxyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBuZXR3b3JrJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGxheWVycyQ6IEJlaGF2aW9yU3ViamVjdDxMYXllcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExheWVyPih1bmRlZmluZWQpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsYXllcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXllcjtcclxuICB9XHJcbiAgc2V0IGxheWVyKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sYXllciA9IHZhbHVlO1xyXG4gICAgdGhpcy5sYXllcnMkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sYXllcjtcclxuXHJcbiAgQElucHV0KCkgdG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZExlZ2VuZElmVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgb3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbG93ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSByYWlzZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHF1ZXJ5QmFkZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTtcclxuXHJcbiAgQElucHV0KCkgY2hhbmdlRGV0ZWN0aW9uO1xyXG5cclxuICBnZXQgb3BhY2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxheWVyLm9wYWNpdHkgKiAxMDA7XHJcbiAgfVxyXG4gIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgdGhpcy5sYXllci5vcGFjaXR5ID0gb3BhY2l0eSAvIDEwMDtcclxuICB9XHJcblxyXG4gIGdldCBleWVUb29sdGlwKCkge1xyXG4gICAgaWYgKHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLmdldFZhbHVlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLmdlby5sYXllci5ub3RJblJlc29sdXRpb24nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudmlzaWJsZVxyXG4gICAgICAgID8gJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJ1xyXG4gICAgICAgIDogJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb246IEV2ZW50RW1pdHRlcjxMYXllcj4gPSBuZXcgRXZlbnRFbWl0dGVyPExheWVyPih1bmRlZmluZWQpO1xyXG4gIEBPdXRwdXQoKSBjaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgbGF5ZXI6IExheWVyO1xyXG4gICAgY2hlY2s6IGJvb2xlYW47XHJcbiAgfT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmV4cGFuZExlZ2VuZElmVmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZmlyc3RMb2FkQ29tcG9uZW50ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5QmFkZ2UoKTtcclxuXHJcbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdGhpcy5jb21wdXRlVG9vbHRpcCgpO1xyXG5cclxuICAgIHRoaXMubmV0d29yayQkID0gdGhpcy5uZXR3b3JrU2VydmljZVxyXG4gICAgICAuY3VycmVudFN0YXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5sYXllcnMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmxheWVyICYmIHRoaXMubGF5ZXIub3B0aW9ucy5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlRGV0ZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5ldHdvcmskJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVWaXNpYmlsaXR5KGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSAhdGhpcy5sYXllci52aXNpYmxlO1xyXG4gICAgaWYgKHRoaXMudG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKCF0aGlzLmxheWVyLnZpc2libGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlVG9vbHRpcCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5vcHRpb25zO1xyXG4gICAgaWYgKCFsYXllck9wdGlvbnMudG9vbHRpcCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxheWVyVG9vbHRpcCA9IGxheWVyT3B0aW9ucy50b29sdGlwO1xyXG4gICAgY29uc3QgbGF5ZXJNZXRhZGF0YSA9IChsYXllck9wdGlvbnMgYXMgTWV0YWRhdGFMYXllck9wdGlvbnMpLm1ldGFkYXRhO1xyXG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMudG9vbHRpcC50eXBlKSB7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuVElUTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQUJTVFJBQ1Q6XHJcbiAgICAgICAgaWYgKGxheWVyTWV0YWRhdGEgJiYgbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyTWV0YWRhdGEuYWJzdHJhY3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBUb29sdGlwVHlwZS5DVVNUT006XHJcbiAgICAgICAgaWYgKGxheWVyVG9vbHRpcCAmJiBsYXllclRvb2x0aXAudGV4dCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyVG9vbHRpcC50ZXh0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVzb2x1dGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGluUmVzb2x1dGlvblJhbmdlID0gdGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZTtcclxuICAgIGlmIChcclxuICAgICAgaW5SZXNvbHV0aW9uUmFuZ2UgPT09IGZhbHNlICYmXHJcbiAgICAgIHRoaXMudXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlID09PSB0cnVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KGluUmVzb2x1dGlvblJhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUXVlcnlCYWRnZSgpIHtcclxuICAgIGNvbnN0IGhpZGRlbiA9XHJcbiAgICAgIHRoaXMucXVlcnlCYWRnZSA9PT0gZmFsc2UgfHxcclxuICAgICAgdGhpcy5sYXllci52aXNpYmxlID09PSBmYWxzZSB8fFxyXG4gICAgICAhbGF5ZXJJc1F1ZXJ5YWJsZSh0aGlzLmxheWVyKTtcclxuICAgIHRoaXMucXVlcnlCYWRnZUhpZGRlbiQubmV4dChoaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGF5ZXJUb29sKCkge1xyXG4gICAgdGhpcy5sYXllclRvb2wkLm5leHQoIXRoaXMubGF5ZXJUb29sJC5nZXRWYWx1ZSgpKTtcclxuICAgIGlmICh0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCh0aGlzLmxheWVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVjaygpIHtcclxuICAgIHRoaXMubGF5ZXJDaGVjayA9ICF0aGlzLmxheWVyQ2hlY2s7XHJcbiAgICB0aGlzLmNoZWNrYm94LmVtaXQoeyBsYXllcjogdGhpcy5sYXllciwgY2hlY2s6IHRoaXMubGF5ZXJDaGVjayB9KTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gY2xhc3M9XCJpZ28tbGF5ZXItbGlzdC1pdGVtXCI+XG4gIDxtYXQtY2hlY2tib3hcbiAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGVcIlxuICAgIGNsYXNzPVwibGF5ZXJDaGVja1wiXG4gICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgKGNoYW5nZSk9XCJjaGVjaygpXCJcbiAgICBbY2hlY2tlZF09XCJsYXllckNoZWNrXCJcbiAgPlxuICA8L21hdC1jaGVja2JveD5cbiAgPHNwYW5cbiAgICBtYXRMaXN0SXRlbVRpdGxlXG4gICAgY2xhc3M9XCJpZ28tbGF5ZXItdGl0bGVcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlTGVnZW5kT25DbGljaygpXCJcbiAgPlxuICAgIHt7IGxheWVyLnRpdGxlIH19XG4gIDwvc3Bhbj5cblxuICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIiFzZWxlY3Rpb25Nb2RlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgY29sbGFwc2libGVCdXR0b25cbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImV5ZVRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICBtYXRCYWRnZT1cIj9cIlxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwicXVlcnlCYWRnZUhpZGRlbiQgfCBhc3luY1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxuICAgICAgICBbc3ZnSWNvbl09XCIobGF5ZXIudmlzaWJsZSQgfCBhc3luYykgPyAnZXllJyA6ICdleWUtb2ZmJ1wiXG4gICAgICA+XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICAgIGNsYXNzPVwic2VsZWN0aW9uLWV5ZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgbGF5ZXIudmlzaWJsZVxuICAgICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgIG1hdEJhZGdlPVwiP1wiXG4gICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXG4gICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXG4gICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCJxdWVyeUJhZGdlSGlkZGVuJCB8IGFzeW5jXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXG4gICAgICAgIFtzdmdJY29uXT1cImxheWVyLnZpc2libGUgPyAnZXllJyA6ICdleWUtb2ZmJ1wiXG4gICAgICA+XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXG4gICAgICBjbGFzcz1cImFjdGlvbnMtYnV0dG9uXCJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLm1vcmVPcHRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTGF5ZXJUb29sKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZG90cy1ob3Jpem9udGFsXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L21hdC1saXN0LWl0ZW0+XG5cbjxkaXYgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gIDxpZ28tbGF5ZXItbGVnZW5kXG4gICAgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCJcbiAgICBbbGF5ZXJdPVwibGF5ZXJcIlxuICAgIFt1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2VdPVwidXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXCJcbiAgPlxuICA8L2lnby1sYXllci1sZWdlbmQ+XG48L2Rpdj5cbiJdfQ==
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9C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QWE7d0JBQ2IsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjtvS0FNRyxXQUFXO3NCQURkLEtBQUs7Z0JBZ0NGLFNBQVM7c0JBRFosS0FBSztnQkFZRyxVQUFVO3NCQUFsQixLQUFLO2dCQVNGLEtBQUs7c0JBRFIsS0FBSztnQkFVRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVHLDhCQUE4QjtzQkFBdEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFtQkksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbmV0d29yayc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1ldGFkYXRhTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGxheWVySXNRdWVyeWFibGUgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMnO1xyXG5pbXBvcnQgeyBMYXllckxlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4uL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGZvY3VzZWRDbHMgPSAnaWdvLWxheWVyLWl0ZW0tZm9jdXNlZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFjdGl2ZUxheWVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUxheWVyO1xyXG4gIH1cclxuICBzZXQgYWN0aXZlTGF5ZXIodmFsdWUpIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWUgJiZcclxuICAgICAgdGhpcy5sYXllciAmJlxyXG4gICAgICB2YWx1ZS5pZCA9PT0gdGhpcy5sYXllci5pZCAmJlxyXG4gICAgICAhdGhpcy5zZWxlY3Rpb25Nb2RlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FjdGl2ZUxheWVyO1xyXG5cclxuICBsYXllclRvb2wkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgcXVlcnlCYWRnZUhpZGRlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XHJcblxyXG4gIHN0YXRlOiBDb25uZWN0aW9uU3RhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdEFsbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RBbGw7XHJcbiAgfVxyXG4gIHNldCBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NlbGVjdEFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMubGF5ZXJDaGVjayA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdEFsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYXllckNoZWNrO1xyXG5cclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbmV0d29yayQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBsYXllcnMkOiBCZWhhdmlvclN1YmplY3Q8TGF5ZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXllcj4odW5kZWZpbmVkKTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgbGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBsYXllcih2YWx1ZSkge1xyXG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMubGF5ZXJzJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBleHBhbmRMZWdlbmRJZlZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIG9yZGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGxvd2VyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcmFpc2VEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBxdWVyeUJhZGdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU7XHJcblxyXG4gIEBJbnB1dCgpIGNoYW5nZURldGVjdGlvbjtcclxuXHJcbiAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXllci5vcGFjaXR5ICogMTAwO1xyXG4gIH1cclxuICBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgIHRoaXMubGF5ZXIub3BhY2l0eSA9IG9wYWNpdHkgLyAxMDA7XHJcbiAgfVxyXG5cclxuICBnZXQgZXllVG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm4gJ2lnby5nZW8ubGF5ZXIubm90SW5SZXNvbHV0aW9uJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxheWVyLnZpc2libGVcclxuICAgICAgICA/ICdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcidcclxuICAgICAgICA6ICdpZ28uZ2VvLmxheWVyLnNob3dMYXllcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxMYXllcj4odW5kZWZpbmVkKTtcclxuICBAT3V0cHV0KCkgY2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGxheWVyOiBMYXllcjtcclxuICAgIGNoZWNrOiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxheWVyLnZpc2libGUgJiZcclxuICAgICAgdGhpcy5leHBhbmRMZWdlbmRJZlZpc2libGUgJiZcclxuICAgICAgdGhpcy5sYXllci5maXJzdExvYWRDb21wb25lbnQgPT09IHRydWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcblxyXG4gICAgY29uc3QgcmVzb2x1dGlvbiQgPSB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJDtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHRoaXMuY29tcHV0ZVRvb2x0aXAoKTtcclxuXHJcbiAgICB0aGlzLm5ldHdvcmskJCA9IHRoaXMubmV0d29ya1NlcnZpY2VcclxuICAgICAgLmN1cnJlbnRTdGF0ZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBDb25uZWN0aW9uU3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5sYXllciAmJiB0aGlzLmxheWVyLm9wdGlvbnMuYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmNoYW5nZURldGVjdGlvbikge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5uZXR3b3JrJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xyXG4gICAgdGhpcy5zaG93TGVnZW5kJC5uZXh0KCFjb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kT25DbGljaygpIHtcclxuICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVmlzaWJpbGl0eShldmVudDogRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5sYXllci52aXNpYmxlID0gIXRoaXMubGF5ZXIudmlzaWJsZTtcclxuICAgIGlmICh0aGlzLnRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCghdGhpcy5sYXllci52aXNpYmxlKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUXVlcnlCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgY29tcHV0ZVRvb2x0aXAoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucztcclxuICAgIGlmICghbGF5ZXJPcHRpb25zLnRvb2x0aXApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllclRvb2x0aXAgPSBsYXllck9wdGlvbnMudG9vbHRpcDtcclxuICAgIGNvbnN0IGxheWVyTWV0YWRhdGEgPSAobGF5ZXJPcHRpb25zIGFzIE1ldGFkYXRhTGF5ZXJPcHRpb25zKS5tZXRhZGF0YTtcclxuICAgIHN3aXRjaCAobGF5ZXJPcHRpb25zLnRvb2x0aXAudHlwZSkge1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLlRJVExFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLkFCU1RSQUNUOlxyXG4gICAgICAgIGlmIChsYXllck1ldGFkYXRhICYmIGxheWVyTWV0YWRhdGEuYWJzdHJhY3QpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllck1ldGFkYXRhLmFic3RyYWN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQ1VTVE9NOlxyXG4gICAgICAgIGlmIChsYXllclRvb2x0aXAgJiYgbGF5ZXJUb29sdGlwLnRleHQpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllclRvb2x0aXAudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblJlc29sdXRpb25DaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBpblJlc29sdXRpb25SYW5nZSA9IHRoaXMubGF5ZXIuaXNJblJlc29sdXRpb25zUmFuZ2U7XHJcbiAgICBpZiAoXHJcbiAgICAgIGluUmVzb2x1dGlvblJhbmdlID09PSBmYWxzZSAmJlxyXG4gICAgICB0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChpblJlc29sdXRpb25SYW5nZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVF1ZXJ5QmFkZ2UoKSB7XHJcbiAgICBjb25zdCBoaWRkZW4gPVxyXG4gICAgICB0aGlzLnF1ZXJ5QmFkZ2UgPT09IGZhbHNlIHx8XHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9PT0gZmFsc2UgfHxcclxuICAgICAgIWxheWVySXNRdWVyeWFibGUodGhpcy5sYXllcik7XHJcbiAgICB0aGlzLnF1ZXJ5QmFkZ2VIaWRkZW4kLm5leHQoaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxheWVyVG9vbCgpIHtcclxuICAgIHRoaXMubGF5ZXJUb29sJC5uZXh0KCF0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSk7XHJcbiAgICBpZiAodGhpcy5sYXllclRvb2wkLmdldFZhbHVlKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uLmVtaXQodGhpcy5sYXllcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2soKSB7XHJcbiAgICB0aGlzLmxheWVyQ2hlY2sgPSAhdGhpcy5sYXllckNoZWNrO1xyXG4gICAgdGhpcy5jaGVja2JveC5lbWl0KHsgbGF5ZXI6IHRoaXMubGF5ZXIsIGNoZWNrOiB0aGlzLmxheWVyQ2hlY2sgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiaWdvLWxheWVyLWxpc3QtaXRlbVwiPlxuICA8bWF0LWNoZWNrYm94XG4gICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICBjbGFzcz1cImxheWVyQ2hlY2tcIlxuICAgIG1hdExpc3RJdGVtSWNvblxuICAgIChjaGFuZ2UpPVwiY2hlY2soKVwiXG4gICAgW2NoZWNrZWRdPVwibGF5ZXJDaGVja1wiXG4gID5cbiAgPC9tYXQtY2hlY2tib3g+XG4gIDxzcGFuXG4gICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgIGNsYXNzPVwiaWdvLWxheWVyLXRpdGxlXCJcbiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXG4gID5cbiAgICB7eyBsYXllci50aXRsZSB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBtYXRMaXN0SXRlbU1ldGE+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJleWVUb29sdGlwIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVWaXNpYmlsaXR5KCRldmVudClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgbWF0QmFkZ2U9XCI/XCJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cInF1ZXJ5QmFkZ2VIaWRkZW4kIHwgYXN5bmNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAoaW5SZXNvbHV0aW9uUmFuZ2UkIHwgYXN5bmMpID09PSBmYWxzZSB9XCJcbiAgICAgICAgW3N2Z0ljb25dPVwiKGxheWVyLnZpc2libGUkIHwgYXN5bmMpID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZVwiXG4gICAgICBjbGFzcz1cInNlbGVjdGlvbi1leWVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4gICAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgIGxheWVyLnZpc2libGVcbiAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICBtYXRCYWRnZT1cIj9cIlxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwicXVlcnlCYWRnZUhpZGRlbiQgfCBhc3luY1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxuICAgICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiIXNlbGVjdGlvbk1vZGVcIlxuICAgICAgY2xhc3M9XCJhY3Rpb25zLWJ1dHRvblwiXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5tb3JlT3B0aW9ucycgfCB0cmFuc2xhdGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUxheWVyVG9vbCgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRvdHMtaG9yaXpvbnRhbFwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9tYXQtbGlzdC1pdGVtPlxuXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxuICA8aWdvLWxheWVyLWxlZ2VuZFxuICAgICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiXG4gICAgW2xheWVyXT1cImxheWVyXCJcbiAgICBbdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXT1cInVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZVwiXG4gID5cbiAgPC9pZ28tbGF5ZXItbGVnZW5kPlxuPC9kaXY+XG4iXX0=
|
|
@@ -9,7 +9,8 @@ import { MatListModule } from '@angular/material/list';
|
|
|
9
9
|
import { MatSelectModule } from '@angular/material/select';
|
|
10
10
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
11
|
import { CollapseDirective, ImageErrorDirective, SanitizeHtmlPipe, SecureImagePipe } from '@igo2/common';
|
|
12
|
-
import { ConfigService
|
|
12
|
+
import { ConfigService } from '@igo2/core/config';
|
|
13
|
+
import { LanguageService } from '@igo2/core/language';
|
|
13
14
|
import { TranslateModule } from '@ngx-translate/core';
|
|
14
15
|
import { BehaviorSubject, of } from 'rxjs';
|
|
15
16
|
import { catchError, map } from 'rxjs/operators';
|
|
@@ -18,16 +19,17 @@ import { WMSDataSource } from '../../datasource/shared/datasources/wms-datasourc
|
|
|
18
19
|
import { Layer } from '../shared/layers/layer';
|
|
19
20
|
import * as i0 from "@angular/core";
|
|
20
21
|
import * as i1 from "../../datasource/shared/capabilities.service";
|
|
21
|
-
import * as i2 from "@igo2/core";
|
|
22
|
-
import * as i3 from "@
|
|
23
|
-
import * as i4 from "@angular/
|
|
24
|
-
import * as i5 from "@angular/material/
|
|
25
|
-
import * as i6 from "@angular/material/
|
|
26
|
-
import * as i7 from "@angular/material/
|
|
27
|
-
import * as i8 from "@angular/material/
|
|
28
|
-
import * as i9 from "@angular/material/
|
|
29
|
-
import * as i10 from "@angular/
|
|
30
|
-
import * as i11 from "@
|
|
22
|
+
import * as i2 from "@igo2/core/language";
|
|
23
|
+
import * as i3 from "@igo2/core/config";
|
|
24
|
+
import * as i4 from "@angular/common/http";
|
|
25
|
+
import * as i5 from "@angular/material/list";
|
|
26
|
+
import * as i6 from "@angular/material/icon";
|
|
27
|
+
import * as i7 from "@angular/material/form-field";
|
|
28
|
+
import * as i8 from "@angular/material/select";
|
|
29
|
+
import * as i9 from "@angular/material/core";
|
|
30
|
+
import * as i10 from "@angular/material/tooltip";
|
|
31
|
+
import * as i11 from "@angular/forms";
|
|
32
|
+
import * as i12 from "@ngx-translate/core";
|
|
31
33
|
export class LayerLegendComponent {
|
|
32
34
|
capabilitiesService;
|
|
33
35
|
languageService;
|
|
@@ -252,10 +254,10 @@ export class LayerLegendComponent {
|
|
|
252
254
|
}
|
|
253
255
|
this.imagesHeight[id] = elemRef.height;
|
|
254
256
|
}
|
|
255
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendComponent, deps: [{ token: i1.CapabilitiesService }, { token: i2.LanguageService }, { token: i3.ConfigService }, { token: i4.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
258
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: LayerLegendComponent, isStandalone: true, selector: "igo-layer-legend", inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layer: "layer" }, viewQueries: [{ propertyName: "renderedLegends", predicate: ["renderedLegend"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"legendItems$ | async as items\">\r\n <ng-container *ngIf=\"items.length; else noItems\">\r\n <ng-container *ngFor=\"let item of items.slice().reverse()\" #renderedLegends>\r\n <div *ngIf=\"getLegend; else noItems\">\r\n <mat-list-item *ngIf=\"item.title\">\r\n <mat-icon\r\n id=\"legend-toggle\"\r\n class=\"igo-chevron\"\r\n matListItemIcon\r\n igoCollapse\r\n [target]=\"legend\"\r\n [collapsed]=\"item.collapsed\"\r\n (toggle)=\"toggleLegendItem($event, item)\"\r\n svgIcon=\"chevron-up\"\r\n >\r\n </mat-icon>\r\n <span matListItemTitle>{{ computeItemTitle(item) | async }} </span>\r\n </mat-list-item>\r\n <div\r\n #legend\r\n class=\"igo-layer-legend\"\r\n [ngClass]=\"{ 'with-title': item.title }\"\r\n >\r\n <div *ngIf=\"currentStyle !== undefined\">\r\n <mat-form-field>\r\n <mat-select\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.layer.legend.selectStyle' | translate\"\r\n [(ngModel)]=\"currentStyle\"\r\n (selectionChange)=\"onChangeStyle()\"\r\n >\r\n <mat-option *ngFor=\"let style of styles\" [value]=\"style.name\">{{\r\n style.title\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div *ngIf=\"!item.collapsed\">\r\n <div *ngIf=\"item.url\">\r\n <img\r\n igoImageError\r\n *ngIf=\"item.imgGraphValue\"\r\n [hideError]=\"true\"\r\n #renderedLegend\r\n id=\"{{ item.title }}\"\r\n (load)=\"onLoadImage(item.title)\"\r\n [src]=\"item.imgGraphValue\"\r\n alt=\"{{ 'igo.geo.layer.legend.loadingLegendText' | translate }}\"\r\n />\r\n <small *ngIf=\"imagesHeight[item.title] < 16\">\r\n {{ 'igo.geo.layer.legend.noLegendScale' | translate }}\r\n </small>\r\n </div>\r\n <div\r\n [ngStyle]=\"item.style\"\r\n [innerHTML]=\"item.html | sanitizeHtml\"\r\n *ngIf=\"item.html\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #noItems>\r\n <small>\r\n {{ 'igo.geo.layer.legend.noLegendText' | translate }}\r\n </small>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host .igo-layer-legend.with-title{padding-left:18px}:host img{max-width:100%}:host img:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;animation:2s linear infinite spin}@-moz-document url-prefix(){:host img:after{margin-left:19px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "directive", type: ImageErrorDirective, selector: "[igoImageError]", inputs: ["errorImageUrl", "hideError"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
257
259
|
}
|
|
258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendComponent, decorators: [{
|
|
259
261
|
type: Component,
|
|
260
262
|
args: [{ selector: 'igo-layer-legend', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
261
263
|
NgIf,
|
|
@@ -275,7 +277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
275
277
|
TranslateModule,
|
|
276
278
|
SanitizeHtmlPipe
|
|
277
279
|
], template: "<ng-container *ngIf=\"legendItems$ | async as items\">\r\n <ng-container *ngIf=\"items.length; else noItems\">\r\n <ng-container *ngFor=\"let item of items.slice().reverse()\" #renderedLegends>\r\n <div *ngIf=\"getLegend; else noItems\">\r\n <mat-list-item *ngIf=\"item.title\">\r\n <mat-icon\r\n id=\"legend-toggle\"\r\n class=\"igo-chevron\"\r\n matListItemIcon\r\n igoCollapse\r\n [target]=\"legend\"\r\n [collapsed]=\"item.collapsed\"\r\n (toggle)=\"toggleLegendItem($event, item)\"\r\n svgIcon=\"chevron-up\"\r\n >\r\n </mat-icon>\r\n <span matListItemTitle>{{ computeItemTitle(item) | async }} </span>\r\n </mat-list-item>\r\n <div\r\n #legend\r\n class=\"igo-layer-legend\"\r\n [ngClass]=\"{ 'with-title': item.title }\"\r\n >\r\n <div *ngIf=\"currentStyle !== undefined\">\r\n <mat-form-field>\r\n <mat-select\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.layer.legend.selectStyle' | translate\"\r\n [(ngModel)]=\"currentStyle\"\r\n (selectionChange)=\"onChangeStyle()\"\r\n >\r\n <mat-option *ngFor=\"let style of styles\" [value]=\"style.name\">{{\r\n style.title\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div *ngIf=\"!item.collapsed\">\r\n <div *ngIf=\"item.url\">\r\n <img\r\n igoImageError\r\n *ngIf=\"item.imgGraphValue\"\r\n [hideError]=\"true\"\r\n #renderedLegend\r\n id=\"{{ item.title }}\"\r\n (load)=\"onLoadImage(item.title)\"\r\n [src]=\"item.imgGraphValue\"\r\n alt=\"{{ 'igo.geo.layer.legend.loadingLegendText' | translate }}\"\r\n />\r\n <small *ngIf=\"imagesHeight[item.title] < 16\">\r\n {{ 'igo.geo.layer.legend.noLegendScale' | translate }}\r\n </small>\r\n </div>\r\n <div\r\n [ngStyle]=\"item.style\"\r\n [innerHTML]=\"item.html | sanitizeHtml\"\r\n *ngIf=\"item.html\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #noItems>\r\n <small>\r\n {{ 'igo.geo.layer.legend.noLegendText' | translate }}\r\n </small>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host .igo-layer-legend.with-title{padding-left:18px}:host img{max-width:100%}:host img:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;animation:2s linear infinite spin}@-moz-document url-prefix(){:host img:after{margin-left:19px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
278
|
-
}], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.LanguageService }, { type:
|
|
280
|
+
}], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.LanguageService }, { type: i3.ConfigService }, { type: i4.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { updateLegendOnResolutionChange: [{
|
|
279
281
|
type: Input
|
|
280
282
|
}], renderedLegends: [{
|
|
281
283
|
type: ViewChildren,
|
|
@@ -283,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
283
285
|
}], layer: [{
|
|
284
286
|
type: Input
|
|
285
287
|
}] } });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixlQUFlLEVBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFB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QkFBQyxnQkFBZ0I7Z0JBVXJCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbGxhcHNlRGlyZWN0aXZlLFxyXG4gIEltYWdlRXJyb3JEaXJlY3RpdmUsXHJcbiAgU2FuaXRpemVIdG1sUGlwZSxcclxuICBTZWN1cmVJbWFnZVBpcGVcclxufSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycy9sYXllcic7XHJcbmltcG9ydCB7XHJcbiAgSXRlbVN0eWxlT3B0aW9ucyxcclxuICBMZWdlbmRNYXBWaWV3T3B0aW9uc1xyXG59IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1sZWdlbmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci1sZWdlbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdJZixcclxuICAgIE5nRm9yLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBDb2xsYXBzZURpcmVjdGl2ZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBJbWFnZUVycm9yRGlyZWN0aXZlLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckxlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgbGVnZW5kIGl0ZW1zXHJcbiAgICovXHJcbiAgbGVnZW5kSXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8TGVnZW5kW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGUkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYXZhaWxhYmxlIHN0eWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzdHlsZXM7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzdHlsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50U3R5bGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzY2FsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2NhbGU6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGV4dGVudCB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmlldzogTGVnZW5kTWFwVmlld09wdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgLyoqXHJcbiAgICogR2V0IGxpc3Qgb2YgaW1hZ2VzIGRpc3BsYXlcclxuICAgKi9cclxuICBAVmlld0NoaWxkcmVuKCdyZW5kZXJlZExlZ2VuZCcpIHJlbmRlcmVkTGVnZW5kczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICAvKipcclxuICAgKiBMaXN0IG9mIHNpemUgb2YgaW1hZ2VzIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbWFnZXNIZWlnaHQ6IHsgW3NyY0tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGF5ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIGlmIGdldExlZ2VuZEdyYXBoaWMgaXMgYXV0aG9yaXplZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRMZWdlbmQgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBhY3RpdmVMZWdlbmRcclxuICAgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGluaXQsIHN1YnNjcmliZSB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvbiBhbmQgdXBkYXRlIHRoZSBsZWdlbmQgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIubGVnZW5kO1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmxpc3RTdHlsZXMoKTtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnMuc291cmNlLm9wdGlvbnMgYXMgYW55O1xyXG4gICAgaWYgKHNvdXJjZU9wdGlvbnMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMuU1RZTEVTKSB7XHJcbiAgICAgIC8vIGlmIGEgc3R5bGVzIGlzIHByb3ZpZGVkIGludG8gdGhlIGxheWVycyB3bXMgcGFyYW1zXHJcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlID0gdGhpcy5zdHlsZXMuZmluZChcclxuICAgICAgICAoc3R5bGUpID0+IHN0eWxlLm5hbWUgPT09IHNvdXJjZU9wdGlvbnMucGFyYW1zLlNUWUxFU1xyXG4gICAgICApLm5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKCFsYXN0bExlZ2VuZCkge1xyXG4gICAgICAvLyBpZiBubyBsZWdlbmQgaXMgbWFudWFsbHkgcHJvdmlkZWRcclxuICAgICAgaWYgKHRoaXMuc3R5bGVzICYmIHRoaXMuc3R5bGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IHRoaXMuc3R5bGVzWzBdLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdHlsZXMgJiYgdGhpcy5zdHlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IGxhc3RsTGVnZW5kWzBdLmN1cnJlbnRTdHlsZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdHlwZW9mIHRoaXMubGF5ZXIub3B0aW9ucy5sZWdlbmRPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICB0aGlzLmxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucy5kaXNwbGF5ID09PSBmYWxzZVxyXG4gICAgKSB7XHJcbiAgICAgIGxhc3RsTGVnZW5kID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5nZXRMZWdlbmQoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50U3R5bGUsXHJcbiAgICAgICAgdGhpcy52aWV3XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSB8fFxyXG4gICAgICAoc291cmNlT3B0aW9ucyBhcyBXTVNEYXRhU291cmNlT3B0aW9ucykuY29udGVudERlcGVuZGVudExlZ2VuZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnN0YXRlJDtcclxuICAgICAgdGhpcy5zdGF0ZSQkID0gc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uVmlld0NvbnRyb2xsZXJTdGF0ZUNoYW5nZSgpKTtcclxuICAgIH0gZWxzZSBpZiAobGFzdGxMZWdlbmQgJiYgbGFzdGxMZWdlbmQubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIHRoaXMubGVnZW5kSXRlbXMkLm5leHQobGFzdGxMZWdlbmQpO1xyXG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZCBvZiBsYXN0bExlZ2VuZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0TGVnZW5kR3JhcGhpYyhsZWdlbmQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBkZXN0cm95LCB1bnN1YnNjcmliZSB0byB0aGUgbWFwJ3MgdmlldyBzdGF0ZVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUkJCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGVnZW5kR3JhcGhpYyhpdGVtOiBMZWdlbmQpIHtcclxuICAgIGlmIChpdGVtLnVybCkge1xyXG4gICAgICBjb25zdCBzZWN1cmVJTUcgPSBuZXcgU2VjdXJlSW1hZ2VQaXBlKHRoaXMuaHR0cCwgdGhpcy5jb25maWdTZXJ2aWNlKTtcclxuICAgICAgc2VjdXJlSU1HXHJcbiAgICAgICAgLnRyYW5zZm9ybShpdGVtLnVybClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRMZWdlbmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZXJyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChvYnNMZWdHcmFwaCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAobGVnKSA9PiBsZWcudGl0bGUgPT09IGl0ZW0udGl0bGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zdCBsZWdlbmRHcmFwaCA9IG9ic0xlZ0dyYXBoIGFzIHN0cmluZztcclxuICAgICAgICAgIHRoaXMubGVnZW5kSXRlbXMkLnZhbHVlW2lkeF0uaW1nR3JhcGhWYWx1ZSA9IGxlZ2VuZEdyYXBoO1xyXG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRJdGVtKGNvbGxhcHNlZDogYm9vbGVhbiwgaXRlbTogTGVnZW5kKSB7XHJcbiAgICBpdGVtLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShuZXdMZWdlbmRzOiBMZWdlbmRbXSk6IExlZ2VuZFtdIHtcclxuICAgIGNvbnN0IG91dExlZ2VuZHM6IExlZ2VuZFtdID0gbmV3TGVnZW5kcztcclxuICAgIGNvbnN0IGxhc3RMZWdlbmRzID0gdGhpcy5sYXllci5sZWdlbmQ7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhc3RMZWdlbmRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG91dExlZ2VuZHNbaV0uY29sbGFwc2VkID0gbGFzdExlZ2VuZHNbaV0uY29sbGFwc2VkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dExlZ2VuZHM7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlSXRlbVRpdGxlKGxheWVyTGVnZW5kKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueTtcclxuICAgIGlmIChsYXllck9wdGlvbnMudHlwZSAhPT0gJ3dtcycpIHtcclxuICAgICAgcmV0dXJuIG9mKGxheWVyTGVnZW5kLnRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXllcnMgPSBsYXllck9wdGlvbnMucGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xyXG4gICAgY29uc3QgbG9jYWxMYXllck9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxheWVyT3B0aW9ucykpOyAvLyB0byBhdm9pZCB0byBhbHRlciB0aGUgb3JpZ2luYWwgb3B0aW9ucy5cclxuICAgIGxvY2FsTGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMgPSBsYXllcnMuZmluZChcclxuICAgICAgKGxheWVyKSA9PiBsYXllciA9PT0gbGF5ZXJMZWdlbmQudGl0bGVcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMobG9jYWxMYXllck9wdGlvbnMpLnBpcGUoXHJcbiAgICAgIG1hcCgod21zRGF0YVNvdXJjZU9wdGlvbnMpID0+IHtcclxuICAgICAgICByZXR1cm4gd21zRGF0YVNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UudGl0bGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gcmVzb2x1dGlvbiBjaGFuZ2UsIGNvbXB1dGUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBsZXZlbCBhbmQgdXBkYXRlIHRoZVxyXG4gICAqIGxlZ2VuZCBhY2NvcmRpbmdseS5cclxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiBNYXAgcmVzb2x1dGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25WaWV3Q29udHJvbGxlclN0YXRlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy52aWV3ID0ge1xyXG4gICAgICByZXNvbHV0aW9uOiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKCksXHJcbiAgICAgIGV4dGVudDogdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCksXHJcbiAgICAgIHByb2plY3Rpb246IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpLmdldENvZGUoKSxcclxuICAgICAgc2NhbGU6IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldFNjYWxlKCksXHJcbiAgICAgIHNpemU6IHRoaXMubGF5ZXIubWFwLm9sLmdldFNpemUoKVxyXG4gICAgfSBhcyBMZWdlbmRNYXBWaWV3T3B0aW9ucztcclxuICAgIHRoaXMudXBkYXRlTGVnZW5kKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGxlZ2VuZCB3aXRoIHNjYWxlIGxldmVsIGFuZCBzdHlsZSBkZWZpbmVcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUxlZ2VuZCgpIHtcclxuICAgIGxldCBsZWdlbmRJdGVtcyA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5nZXRMZWdlbmQoXHJcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlLFxyXG4gICAgICB0aGlzLnZpZXdcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5sYXllci5sZWdlbmQgJiYgdGhpcy5sYXllci5sZWdlbmQubGVuZ3RoID4gMSkge1xyXG4gICAgICBsZWdlbmRJdGVtcyA9IHRoaXMudHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShsZWdlbmRJdGVtcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxheWVyLmxlZ2VuZCA9IGxlZ2VuZEl0ZW1zO1xyXG5cclxuICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubGVnZW5kSXRlbXMkLm5leHQobGVnZW5kSXRlbXMpO1xyXG4gICAgZm9yIChjb25zdCBsZWdlbmQgb2YgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUpIHtcclxuICAgICAgdGhpcy5nZXRMZWdlbmRHcmFwaGljKGxlZ2VuZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RTdHlsZXMoKSB7XHJcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnM7XHJcbiAgICBpZiAobGF5ZXJPcHRpb25zICYmIGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5sYXllci5sZWdlbmQuZGVmYXVsdCcpO1xyXG4gICAgICBsZXQgc3R5bGVzQXZhaWxhYmxlID0gW3sgbmFtZTogJycsIHRpdGxlIH0gYXMgSXRlbVN0eWxlT3B0aW9uc107XHJcbiAgICAgIGlmIChsYXllck9wdGlvbnMubGVnZW5kT3B0aW9ucy5zdHlsZXNBdmFpbGFibGUpIHtcclxuICAgICAgICBzdHlsZXNBdmFpbGFibGUgPSBzdHlsZXNBdmFpbGFibGUuY29uY2F0KFxyXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmxlZ2VuZE9wdGlvbnMuc3R5bGVzQXZhaWxhYmxlLmZpbHRlcihcclxuICAgICAgICAgICAgKHNBKSA9PlxyXG4gICAgICAgICAgICAgIHNBLm5hbWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9naSwgJycpICE9PVxyXG4gICAgICAgICAgICAgICAgJ2RlZmF1bHQnICYmXHJcbiAgICAgICAgICAgICAgc0EubmFtZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2dpLCAnJykgIT09XHJcbiAgICAgICAgICAgICAgICAnZGVmYXV0J1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzQXZhaWxhYmxlXHJcbiAgICAgICAgLmZpbHRlcigoc2EpID0+ICFzYS50aXRsZSlcclxuICAgICAgICAubWFwKChzYSkgPT4gKHNhLnRpdGxlID0gc2EubmFtZSkpO1xyXG4gICAgICBzdHlsZXNBdmFpbGFibGUubWFwKFxyXG4gICAgICAgIChzKSA9PlxyXG4gICAgICAgICAgKHMudGl0bGUgPVxyXG4gICAgICAgICAgICBzLnRpdGxlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICtcclxuICAgICAgICAgICAgcy50aXRsZS5zbGljZSgxKS5yZXBsYWNlKC9fL2csICcgJykpXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBzdHlsZXNBdmFpbGFibGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZVN0eWxlKCkge1xyXG4gICAgdGhpcy51cGRhdGVMZWdlbmQoKTtcclxuICAgIGxldCBTVFlMRVMgPSAnJztcclxuICAgIGlmICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBXTVNEYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbFxyXG4gICAgICAgIC5nZXRQYXJhbXMoKVxyXG4gICAgICAgIC5MQVlFUlMuc3BsaXQoJywnKVxyXG4gICAgICAgIC5tYXAoKGxheWVyKSA9PiAoU1RZTEVTICs9IHRoaXMuY3VycmVudFN0eWxlICsgJywnKSk7XHJcbiAgICAgIFNUWUxFUyA9IFNUWUxFUy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbC51cGRhdGVQYXJhbXMoeyBTVFlMRVMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxvYWRJbWFnZShpZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgZWxlbVJlZjogSFRNTEltYWdlRWxlbWVudDtcclxuICAgIGlmICh0aGlzLnJlbmRlcmVkTGVnZW5kcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgZWxlbVJlZiA9IHRoaXMucmVuZGVyZWRMZWdlbmRzLmZpcnN0Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVsZW1SZWYgPSB0aGlzLnJlbmRlcmVkTGVnZW5kcy5maW5kKFxyXG4gICAgICAgIChyZW5kZXJlZExlZ2VuZCkgPT4gcmVuZGVyZWRMZWdlbmQubmF0aXZlRWxlbWVudC5pZCA9PT0gaWRcclxuICAgICAgKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmltYWdlc0hlaWdodFtpZF0gPSBlbGVtUmVmLmhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2VuZEl0ZW1zJCB8IGFzeW5jIGFzIGl0ZW1zXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aDsgZWxzZSBub0l0ZW1zXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zLnNsaWNlKCkucmV2ZXJzZSgpXCIgI3JlbmRlcmVkTGVnZW5kcz5cclxuICAgICAgPGRpdiAqbmdJZj1cImdldExlZ2VuZDsgZWxzZSBub0l0ZW1zXCI+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJpdGVtLnRpdGxlXCI+XHJcbiAgICAgICAgICA8bWF0LWljb25cclxuICAgICAgICAgICAgaWQ9XCJsZWdlbmQtdG9nZ2xlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXHJcbiAgICAgICAgICAgIG1hdExpc3RJdGVtSWNvblxyXG4gICAgICAgICAgICBpZ29Db2xsYXBzZVxyXG4gICAgICAgICAgICBbdGFyZ2V0XT1cImxlZ2VuZFwiXHJcbiAgICAgICAgICAgIFtjb2xsYXBzZWRdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAodG9nZ2xlKT1cInRvZ2dsZUxlZ2VuZEl0ZW0oJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlPnt7IGNvbXB1dGVJdGVtVGl0bGUoaXRlbSkgfCBhc3luYyB9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICNsZWdlbmRcclxuICAgICAgICAgIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICd3aXRoLXRpdGxlJzogaXRlbS50aXRsZSB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFN0eWxlICE9PSB1bmRlZmluZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFN0eWxlXCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VTdHlsZSgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygc3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlLm5hbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzdHlsZS50aXRsZVxyXG4gICAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWl0ZW0uY29sbGFwc2VkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnVybFwiPlxyXG4gICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIGlnb0ltYWdlRXJyb3JcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pbWdHcmFwaFZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtoaWRlRXJyb3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAjcmVuZGVyZWRMZWdlbmRcclxuICAgICAgICAgICAgICAgIGlkPVwie3sgaXRlbS50aXRsZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkxvYWRJbWFnZShpdGVtLnRpdGxlKVwiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaW1nR3JhcGhWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJ7eyAnaWdvLmdlby5sYXllci5sZWdlbmQubG9hZGluZ0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImltYWdlc0hlaWdodFtpdGVtLnRpdGxlXSA8IDE2XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnaWdvLmdlby5sYXllci5sZWdlbmQubm9MZWdlbmRTY2FsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIlxyXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5odG1sIHwgc2FuaXRpemVIdG1sXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaHRtbFwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI25vSXRlbXM+XHJcbiAgICA8c21hbGw+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLmxheWVyLmxlZ2VuZC5ub0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3NtYWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixlQUFlLEVBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFB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QUF0QyxLQUFLO2dCQWtDMEIsZUFBZTtzQkFBOUMsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBVXJCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbGxhcHNlRGlyZWN0aXZlLFxyXG4gIEltYWdlRXJyb3JEaXJlY3RpdmUsXHJcbiAgU2FuaXRpemVIdG1sUGlwZSxcclxuICBTZWN1cmVJbWFnZVBpcGVcclxufSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycy9sYXllcic7XHJcbmltcG9ydCB7XHJcbiAgSXRlbVN0eWxlT3B0aW9ucyxcclxuICBMZWdlbmRNYXBWaWV3T3B0aW9uc1xyXG59IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1sZWdlbmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci1sZWdlbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdJZixcclxuICAgIE5nRm9yLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBDb2xsYXBzZURpcmVjdGl2ZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBJbWFnZUVycm9yRGlyZWN0aXZlLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckxlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgbGVnZW5kIGl0ZW1zXHJcbiAgICovXHJcbiAgbGVnZW5kSXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8TGVnZW5kW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGUkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYXZhaWxhYmxlIHN0eWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzdHlsZXM7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzdHlsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50U3R5bGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzY2FsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2NhbGU6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGV4dGVudCB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmlldzogTGVnZW5kTWFwVmlld09wdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgLyoqXHJcbiAgICogR2V0IGxpc3Qgb2YgaW1hZ2VzIGRpc3BsYXlcclxuICAgKi9cclxuICBAVmlld0NoaWxkcmVuKCdyZW5kZXJlZExlZ2VuZCcpIHJlbmRlcmVkTGVnZW5kczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICAvKipcclxuICAgKiBMaXN0IG9mIHNpemUgb2YgaW1hZ2VzIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbWFnZXNIZWlnaHQ6IHsgW3NyY0tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGF5ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIGlmIGdldExlZ2VuZEdyYXBoaWMgaXMgYXV0aG9yaXplZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRMZWdlbmQgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBhY3RpdmVMZWdlbmRcclxuICAgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGluaXQsIHN1YnNjcmliZSB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvbiBhbmQgdXBkYXRlIHRoZSBsZWdlbmQgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIubGVnZW5kO1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmxpc3RTdHlsZXMoKTtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnMuc291cmNlLm9wdGlvbnMgYXMgYW55O1xyXG4gICAgaWYgKHNvdXJjZU9wdGlvbnMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMuU1RZTEVTKSB7XHJcbiAgICAgIC8vIGlmIGEgc3R5bGVzIGlzIHByb3ZpZGVkIGludG8gdGhlIGxheWVycyB3bXMgcGFyYW1zXHJcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlID0gdGhpcy5zdHlsZXMuZmluZChcclxuICAgICAgICAoc3R5bGUpID0+IHN0eWxlLm5hbWUgPT09IHNvdXJjZU9wdGlvbnMucGFyYW1zLlNUWUxFU1xyXG4gICAgICApLm5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKCFsYXN0bExlZ2VuZCkge1xyXG4gICAgICAvLyBpZiBubyBsZWdlbmQgaXMgbWFudWFsbHkgcHJvdmlkZWRcclxuICAgICAgaWYgKHRoaXMuc3R5bGVzICYmIHRoaXMuc3R5bGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IHRoaXMuc3R5bGVzWzBdLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdHlsZXMgJiYgdGhpcy5zdHlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IGxhc3RsTGVnZW5kWzBdLmN1cnJlbnRTdHlsZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdHlwZW9mIHRoaXMubGF5ZXIub3B0aW9ucy5sZWdlbmRPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICB0aGlzLmxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucy5kaXNwbGF5ID09PSBmYWxzZVxyXG4gICAgKSB7XHJcbiAgICAgIGxhc3RsTGVnZW5kID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5nZXRMZWdlbmQoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50U3R5bGUsXHJcbiAgICAgICAgdGhpcy52aWV3XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSB8fFxyXG4gICAgICAoc291cmNlT3B0aW9ucyBhcyBXTVNEYXRhU291cmNlT3B0aW9ucykuY29udGVudERlcGVuZGVudExlZ2VuZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnN0YXRlJDtcclxuICAgICAgdGhpcy5zdGF0ZSQkID0gc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uVmlld0NvbnRyb2xsZXJTdGF0ZUNoYW5nZSgpKTtcclxuICAgIH0gZWxzZSBpZiAobGFzdGxMZWdlbmQgJiYgbGFzdGxMZWdlbmQubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIHRoaXMubGVnZW5kSXRlbXMkLm5leHQobGFzdGxMZWdlbmQpO1xyXG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZCBvZiBsYXN0bExlZ2VuZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0TGVnZW5kR3JhcGhpYyhsZWdlbmQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBkZXN0cm95LCB1bnN1YnNjcmliZSB0byB0aGUgbWFwJ3MgdmlldyBzdGF0ZVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUkJCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGVnZW5kR3JhcGhpYyhpdGVtOiBMZWdlbmQpIHtcclxuICAgIGlmIChpdGVtLnVybCkge1xyXG4gICAgICBjb25zdCBzZWN1cmVJTUcgPSBuZXcgU2VjdXJlSW1hZ2VQaXBlKHRoaXMuaHR0cCwgdGhpcy5jb25maWdTZXJ2aWNlKTtcclxuICAgICAgc2VjdXJlSU1HXHJcbiAgICAgICAgLnRyYW5zZm9ybShpdGVtLnVybClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRMZWdlbmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZXJyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChvYnNMZWdHcmFwaCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAobGVnKSA9PiBsZWcudGl0bGUgPT09IGl0ZW0udGl0bGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zdCBsZWdlbmRHcmFwaCA9IG9ic0xlZ0dyYXBoIGFzIHN0cmluZztcclxuICAgICAgICAgIHRoaXMubGVnZW5kSXRlbXMkLnZhbHVlW2lkeF0uaW1nR3JhcGhWYWx1ZSA9IGxlZ2VuZEdyYXBoO1xyXG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRJdGVtKGNvbGxhcHNlZDogYm9vbGVhbiwgaXRlbTogTGVnZW5kKSB7XHJcbiAgICBpdGVtLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShuZXdMZWdlbmRzOiBMZWdlbmRbXSk6IExlZ2VuZFtdIHtcclxuICAgIGNvbnN0IG91dExlZ2VuZHM6IExlZ2VuZFtdID0gbmV3TGVnZW5kcztcclxuICAgIGNvbnN0IGxhc3RMZWdlbmRzID0gdGhpcy5sYXllci5sZWdlbmQ7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhc3RMZWdlbmRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG91dExlZ2VuZHNbaV0uY29sbGFwc2VkID0gbGFzdExlZ2VuZHNbaV0uY29sbGFwc2VkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG91dExlZ2VuZHM7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlSXRlbVRpdGxlKGxheWVyTGVnZW5kKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueTtcclxuICAgIGlmIChsYXllck9wdGlvbnMudHlwZSAhPT0gJ3dtcycpIHtcclxuICAgICAgcmV0dXJuIG9mKGxheWVyTGVnZW5kLnRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXllcnMgPSBsYXllck9wdGlvbnMucGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xyXG4gICAgY29uc3QgbG9jYWxMYXllck9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxheWVyT3B0aW9ucykpOyAvLyB0byBhdm9pZCB0byBhbHRlciB0aGUgb3JpZ2luYWwgb3B0aW9ucy5cclxuICAgIGxvY2FsTGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMgPSBsYXllcnMuZmluZChcclxuICAgICAgKGxheWVyKSA9PiBsYXllciA9PT0gbGF5ZXJMZWdlbmQudGl0bGVcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMobG9jYWxMYXllck9wdGlvbnMpLnBpcGUoXHJcbiAgICAgIG1hcCgod21zRGF0YVNvdXJjZU9wdGlvbnMpID0+IHtcclxuICAgICAgICByZXR1cm4gd21zRGF0YVNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UudGl0bGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gcmVzb2x1dGlvbiBjaGFuZ2UsIGNvbXB1dGUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBsZXZlbCBhbmQgdXBkYXRlIHRoZVxyXG4gICAqIGxlZ2VuZCBhY2NvcmRpbmdseS5cclxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiBNYXAgcmVzb2x1dGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25WaWV3Q29udHJvbGxlclN0YXRlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy52aWV3ID0ge1xyXG4gICAgICByZXNvbHV0aW9uOiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKCksXHJcbiAgICAgIGV4dGVudDogdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCksXHJcbiAgICAgIHByb2plY3Rpb246IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpLmdldENvZGUoKSxcclxuICAgICAgc2NhbGU6IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldFNjYWxlKCksXHJcbiAgICAgIHNpemU6IHRoaXMubGF5ZXIubWFwLm9sLmdldFNpemUoKVxyXG4gICAgfSBhcyBMZWdlbmRNYXBWaWV3T3B0aW9ucztcclxuICAgIHRoaXMudXBkYXRlTGVnZW5kKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGxlZ2VuZCB3aXRoIHNjYWxlIGxldmVsIGFuZCBzdHlsZSBkZWZpbmVcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUxlZ2VuZCgpIHtcclxuICAgIGxldCBsZWdlbmRJdGVtcyA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5nZXRMZWdlbmQoXHJcbiAgICAgIHRoaXMuY3VycmVudFN0eWxlLFxyXG4gICAgICB0aGlzLnZpZXdcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5sYXllci5sZWdlbmQgJiYgdGhpcy5sYXllci5sZWdlbmQubGVuZ3RoID4gMSkge1xyXG4gICAgICBsZWdlbmRJdGVtcyA9IHRoaXMudHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShsZWdlbmRJdGVtcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxheWVyLmxlZ2VuZCA9IGxlZ2VuZEl0ZW1zO1xyXG5cclxuICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubGVnZW5kSXRlbXMkLm5leHQobGVnZW5kSXRlbXMpO1xyXG4gICAgZm9yIChjb25zdCBsZWdlbmQgb2YgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUpIHtcclxuICAgICAgdGhpcy5nZXRMZWdlbmRHcmFwaGljKGxlZ2VuZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RTdHlsZXMoKSB7XHJcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnM7XHJcbiAgICBpZiAobGF5ZXJPcHRpb25zICYmIGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5sYXllci5sZWdlbmQuZGVmYXVsdCcpO1xyXG4gICAgICBsZXQgc3R5bGVzQXZhaWxhYmxlID0gW3sgbmFtZTogJycsIHRpdGxlIH0gYXMgSXRlbVN0eWxlT3B0aW9uc107XHJcbiAgICAgIGlmIChsYXllck9wdGlvbnMubGVnZW5kT3B0aW9ucy5zdHlsZXNBdmFpbGFibGUpIHtcclxuICAgICAgICBzdHlsZXNBdmFpbGFibGUgPSBzdHlsZXNBdmFpbGFibGUuY29uY2F0KFxyXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmxlZ2VuZE9wdGlvbnMuc3R5bGVzQXZhaWxhYmxlLmZpbHRlcihcclxuICAgICAgICAgICAgKHNBKSA9PlxyXG4gICAgICAgICAgICAgIHNBLm5hbWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9naSwgJycpICE9PVxyXG4gICAgICAgICAgICAgICAgJ2RlZmF1bHQnICYmXHJcbiAgICAgICAgICAgICAgc0EubmFtZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2dpLCAnJykgIT09XHJcbiAgICAgICAgICAgICAgICAnZGVmYXV0J1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzQXZhaWxhYmxlXHJcbiAgICAgICAgLmZpbHRlcigoc2EpID0+ICFzYS50aXRsZSlcclxuICAgICAgICAubWFwKChzYSkgPT4gKHNhLnRpdGxlID0gc2EubmFtZSkpO1xyXG4gICAgICBzdHlsZXNBdmFpbGFibGUubWFwKFxyXG4gICAgICAgIChzKSA9PlxyXG4gICAgICAgICAgKHMudGl0bGUgPVxyXG4gICAgICAgICAgICBzLnRpdGxlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICtcclxuICAgICAgICAgICAgcy50aXRsZS5zbGljZSgxKS5yZXBsYWNlKC9fL2csICcgJykpXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBzdHlsZXNBdmFpbGFibGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZVN0eWxlKCkge1xyXG4gICAgdGhpcy51cGRhdGVMZWdlbmQoKTtcclxuICAgIGxldCBTVFlMRVMgPSAnJztcclxuICAgIGlmICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBXTVNEYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbFxyXG4gICAgICAgIC5nZXRQYXJhbXMoKVxyXG4gICAgICAgIC5MQVlFUlMuc3BsaXQoJywnKVxyXG4gICAgICAgIC5tYXAoKGxheWVyKSA9PiAoU1RZTEVTICs9IHRoaXMuY3VycmVudFN0eWxlICsgJywnKSk7XHJcbiAgICAgIFNUWUxFUyA9IFNUWUxFUy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbC51cGRhdGVQYXJhbXMoeyBTVFlMRVMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxvYWRJbWFnZShpZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgZWxlbVJlZjogSFRNTEltYWdlRWxlbWVudDtcclxuICAgIGlmICh0aGlzLnJlbmRlcmVkTGVnZW5kcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgZWxlbVJlZiA9IHRoaXMucmVuZGVyZWRMZWdlbmRzLmZpcnN0Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVsZW1SZWYgPSB0aGlzLnJlbmRlcmVkTGVnZW5kcy5maW5kKFxyXG4gICAgICAgIChyZW5kZXJlZExlZ2VuZCkgPT4gcmVuZGVyZWRMZWdlbmQubmF0aXZlRWxlbWVudC5pZCA9PT0gaWRcclxuICAgICAgKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmltYWdlc0hlaWdodFtpZF0gPSBlbGVtUmVmLmhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2VuZEl0ZW1zJCB8IGFzeW5jIGFzIGl0ZW1zXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aDsgZWxzZSBub0l0ZW1zXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zLnNsaWNlKCkucmV2ZXJzZSgpXCIgI3JlbmRlcmVkTGVnZW5kcz5cclxuICAgICAgPGRpdiAqbmdJZj1cImdldExlZ2VuZDsgZWxzZSBub0l0ZW1zXCI+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJpdGVtLnRpdGxlXCI+XHJcbiAgICAgICAgICA8bWF0LWljb25cclxuICAgICAgICAgICAgaWQ9XCJsZWdlbmQtdG9nZ2xlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXHJcbiAgICAgICAgICAgIG1hdExpc3RJdGVtSWNvblxyXG4gICAgICAgICAgICBpZ29Db2xsYXBzZVxyXG4gICAgICAgICAgICBbdGFyZ2V0XT1cImxlZ2VuZFwiXHJcbiAgICAgICAgICAgIFtjb2xsYXBzZWRdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAodG9nZ2xlKT1cInRvZ2dsZUxlZ2VuZEl0ZW0oJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlPnt7IGNvbXB1dGVJdGVtVGl0bGUoaXRlbSkgfCBhc3luYyB9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICNsZWdlbmRcclxuICAgICAgICAgIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICd3aXRoLXRpdGxlJzogaXRlbS50aXRsZSB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFN0eWxlICE9PSB1bmRlZmluZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFN0eWxlXCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VTdHlsZSgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygc3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlLm5hbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzdHlsZS50aXRsZVxyXG4gICAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWl0ZW0uY29sbGFwc2VkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnVybFwiPlxyXG4gICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIGlnb0ltYWdlRXJyb3JcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pbWdHcmFwaFZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtoaWRlRXJyb3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAjcmVuZGVyZWRMZWdlbmRcclxuICAgICAgICAgICAgICAgIGlkPVwie3sgaXRlbS50aXRsZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkxvYWRJbWFnZShpdGVtLnRpdGxlKVwiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaW1nR3JhcGhWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJ7eyAnaWdvLmdlby5sYXllci5sZWdlbmQubG9hZGluZ0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImltYWdlc0hlaWdodFtpdGVtLnRpdGxlXSA8IDE2XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnaWdvLmdlby5sYXllci5sZWdlbmQubm9MZWdlbmRTY2FsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIml0ZW0uc3R5bGVcIlxyXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5odG1sIHwgc2FuaXRpemVIdG1sXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaHRtbFwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI25vSXRlbXM+XHJcbiAgICA8c21hbGw+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLmxheWVyLmxlZ2VuZC5ub0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3NtYWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
2
|
import { MatListModule } from '@angular/material/list';
|
|
3
3
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
4
|
-
import { NetworkService } from '@igo2/core';
|
|
4
|
+
import { NetworkService } from '@igo2/core/network';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
6
|
import { LayerLegendComponent } from '../layer-legend/layer-legend.component';
|
|
7
7
|
import { Layer } from '../shared/layers/layer';
|
|
8
8
|
import { TooltipType } from '../shared/layers/layer.interface';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@igo2/core";
|
|
10
|
+
import * as i1 from "@igo2/core/network";
|
|
11
11
|
import * as i2 from "@angular/material/list";
|
|
12
12
|
import * as i3 from "@angular/material/tooltip";
|
|
13
13
|
export class LayerLegendItemComponent {
|
|
@@ -71,10 +71,10 @@ export class LayerLegendItemComponent {
|
|
|
71
71
|
const inResolutionRange = this.layer.isInResolutionsRange;
|
|
72
72
|
this.inResolutionRange$.next(inResolutionRange);
|
|
73
73
|
}
|
|
74
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
75
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendItemComponent, deps: [{ token: i1.NetworkService }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: LayerLegendItemComponent, isStandalone: true, selector: "igo-layer-legend-item", inputs: { layer: "layer", updateLegendOnResolutionChange: "updateLegendOnResolutionChange" }, ngImport: i0, template: "<mat-list-item class=\"igo-layer-list-item\">\n <span\n matListItemTitle\n class=\"igo-layer-title\"\n [matTooltip]=\"tooltipText\"\n matTooltipShowDelay=\"500\"\n >{{ layer.title }}</span\n >\n</mat-list-item>\n\n<div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-layer-list-item{height:48px;clear:both}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendItemComponent, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{ selector: 'igo-layer-legend-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatListModule, MatTooltipModule, LayerLegendComponent], template: "<mat-list-item class=\"igo-layer-list-item\">\n <span\n matListItemTitle\n class=\"igo-layer-title\"\n [matTooltip]=\"tooltipText\"\n matTooltipShowDelay=\"500\"\n >{{ layer.title }}</span\n >\n</mat-list-item>\n\n<div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-layer-list-item{height:48px;clear:both}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}\n"] }]
|
|
80
80
|
}], ctorParameters: () => [{ type: i1.NetworkService }], propDecorators: { layer: [{
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
82
82
|
}], updateLegendOnResolutionChange: [{
|
|
83
83
|
type: Input
|
|
84
84
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kLWl0ZW0vbGF5ZXItbGVnZW5kLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kLWl0ZW0vbGF5ZXItbGVnZW5kLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBVS9ELE1BQU0sT0FBTyx3QkFBd0I7SUFjZjtJQWJwQixrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsV0FBVyxDQUFTO0lBRXBCLEtBQUssQ0FBa0I7SUFFZixZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFlO0lBRXZCLEtBQUssQ0FBUTtJQUViLDhCQUE4QixHQUFZLEtBQUssQ0FBQztJQUV6RCxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXRELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjO2FBQ2pDLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFJLFlBQXFDLENBQUMsUUFBUSxDQUFDO1FBQ3RFLFFBQVEsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLEtBQUssV0FBVyxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztZQUNILEtBQUssV0FBVyxDQUFDLE1BQU07Z0JBQ3JCLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztZQUNIO2dCQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO3VHQWxFVSx3QkFBd0I7MkZBQXhCLHdCQUF3QiwrS0MzQnJDLHNiQWlCQSwrTURRWSxhQUFhLG1SQUFFLGdCQUFnQiw2VEFBRSxvQkFBb0I7OzJGQUVwRCx3QkFBd0I7a0JBUnBDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQzttRkFZdkQsS0FBSztzQkFBYixLQUFLO2dCQUVHLDhCQUE4QjtzQkFBdEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdGUsIE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9uZXR3b3JrJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZXRhZGF0YUxheWVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL21ldGFkYXRhL3NoYXJlZC9tZXRhZGF0YS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXllckxlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4uL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1sZWdlbmQtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xheWVyLWxlZ2VuZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sYXllci1sZWdlbmQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdExpc3RNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIExheWVyTGVnZW5kQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5ZXJMZWdlbmRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcclxuXHJcbiAgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZTtcclxuXHJcbiAgcHJpdmF0ZSByZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG5ldHdvcmskJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIHVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdGhpcy5jb21wdXRlVG9vbHRpcCgpO1xyXG5cclxuICAgIHRoaXMubmV0d29yayQkID0gdGhpcy5uZXR3b3JrU2VydmljZVxyXG4gICAgICAuY3VycmVudFN0YXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubmV0d29yayQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlVG9vbHRpcCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5vcHRpb25zO1xyXG4gICAgaWYgKCFsYXllck9wdGlvbnMudG9vbHRpcCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxheWVyVG9vbHRpcCA9IGxheWVyT3B0aW9ucy50b29sdGlwO1xyXG4gICAgY29uc3QgbGF5ZXJNZXRhZGF0YSA9IChsYXllck9wdGlvbnMgYXMgTWV0YWRhdGFMYXllck9wdGlvbnMpLm1ldGFkYXRhO1xyXG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMudG9vbHRpcC50eXBlKSB7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuVElUTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQUJTVFJBQ1Q6XHJcbiAgICAgICAgaWYgKGxheWVyTWV0YWRhdGEgJiYgbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyTWV0YWRhdGEuYWJzdHJhY3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBUb29sdGlwVHlwZS5DVVNUT006XHJcbiAgICAgICAgaWYgKGxheWVyVG9vbHRpcCAmJiBsYXllclRvb2x0aXAudGV4dCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyVG9vbHRpcC50ZXh0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVzb2x1dGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGluUmVzb2x1dGlvblJhbmdlID0gdGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZTtcclxuICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQoaW5SZXNvbHV0aW9uUmFuZ2UpO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LWxpc3QtaXRlbSBjbGFzcz1cImlnby1sYXllci1saXN0LWl0ZW1cIj5cbiAgPHNwYW5cbiAgICBtYXRMaXN0SXRlbVRpdGxlXG4gICAgY2xhc3M9XCJpZ28tbGF5ZXItdGl0bGVcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICA+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW5cbiAgPlxuPC9tYXQtbGlzdC1pdGVtPlxuXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxuICA8aWdvLWxheWVyLWxlZ2VuZFxuICAgIFtsYXllcl09XCJsYXllclwiXG4gICAgW3VwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZV09XCJ1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2VcIlxuICA+XG4gIDwvaWdvLWxheWVyLWxlZ2VuZD5cbjwvZGl2PlxuIl19
|
|
@@ -40,10 +40,10 @@ export class LayerLegendListBindingDirective {
|
|
|
40
40
|
this.layersVisibility$$ = undefined;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
44
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.
|
|
43
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendListBindingDirective, deps: [{ token: i1.LayerLegendListComponent, self: true }, { token: i2.MapService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: LayerLegendListBindingDirective, isStandalone: true, selector: "[igoLayerLegendListBinding]", ngImport: i0 });
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendListBindingDirective, decorators: [{
|
|
47
47
|
type: Directive,
|
|
48
48
|
args: [{
|
|
49
49
|
selector: '[igoLayerLegendListBinding]',
|
|
@@ -79,10 +79,10 @@ export class LayerLegendListComponent {
|
|
|
79
79
|
this.next();
|
|
80
80
|
this.allLegendsShown.emit(toggle);
|
|
81
81
|
}
|
|
82
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
83
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
82
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: LayerLegendListComponent, isStandalone: true, selector: "igo-layer-legend-list", inputs: { layers: "layers", excludeBaseLayers: "excludeBaseLayers", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", allowShowAllLegends: "allowShowAllLegends", showAllLegendsValue: "showAllLegendsValue" }, outputs: { allLegendsShown: "allLegendsShown" }, ngImport: i0, template: "<div class=\"layer-legend-list-container\">\n <mat-slide-toggle\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.legend.showAll' | translate\"\n [checked]=\"showAllLegendsValue\"\n class=\"mat-typography\"\n *ngIf=\"(layersInUi$ | async).length && allowShowAllLegends\"\n [labelPosition]=\"'before'\"\n (change)=\"toggleShowAllLegends($event.checked)\"\n >\n {{ 'igo.geo.layer.legend.showAll' | translate }}\n </mat-slide-toggle>\n <mat-divider\n *ngIf=\"(layersInUi$ | async).length && allowShowAllLegends\"\n ></mat-divider>\n <igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template ngFor let-layer let-i=\"index\" [ngForOf]=\"layers$ | async\">\n <igo-layer-legend-item\n *ngIf=\"!(excludeBaseLayers && layer.baseLayer)\"\n igoListItem\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend-item>\n </ng-template>\n </igo-list>\n <p\n class=\"layers-empty mat-typography\"\n *ngIf=\"\n !showAllLegendsValue &&\n (layersInUi$ | async).length &&\n (hasVisibleOrInRangeLayers$ | async) === false &&\n (hasVisibleAndNotInRangeLayers$ | async) === false &&\n allowShowAllLegends\n \"\n >\n {{ 'igo.geo.layer.legend.noLayersVisibleWithShowAllButton' | translate }}\n </p>\n <p\n class=\"layers-empty mat-typography\"\n *ngIf=\"\n !showAllLegendsValue &&\n (layersInUi$ | async).length &&\n (hasVisibleOrInRangeLayers$ | async) === false &&\n (hasVisibleAndNotInRangeLayers$ | async) &&\n allowShowAllLegends\n \"\n >\n {{\n 'igo.geo.layer.legend.noLayersVisibleWithShowAllButtonButZoom' | translate\n }}\n </p>\n <p\n class=\"layers-empty mat-typography\"\n *ngIf=\"\n (layersInUi$ | async).length &&\n (hasVisibleOrInRangeLayers$ | async) === false &&\n (hasVisibleAndNotInRangeLayers$ | async) === false &&\n !allowShowAllLegends\n \"\n >\n {{ 'igo.geo.layer.legend.noLayersVisible' | translate }}\n </p>\n <p\n class=\"layers-empty mat-typography\"\n *ngIf=\"\n (layersInUi$ | async).length &&\n (hasVisibleOrInRangeLayers$ | async) === false &&\n (hasVisibleAndNotInRangeLayers$ | async) &&\n !allowShowAllLegends\n \"\n >\n {{ 'igo.geo.layer.legend.noLayersVisibleButZoom' | translate }}\n </p>\n</div>\n", styles: [":host mat-slide-toggle{width:100%;padding:10px}:host mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host igo-list{display:contents}:host .layers-empty{text-align:justify;margin:10px}:host .layer-legend-list-container{max-height:100%;overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LayerLegendItemComponent, selector: "igo-layer-legend-item", inputs: ["layer", "updateLegendOnResolutionChange"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
84
84
|
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerLegendListComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
87
|
args: [{ selector: 'igo-layer-legend-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
88
88
|
NgIf,
|