@igo2/geo 16.0.2 → 16.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
- package/esm2022/lib/catalog/catalog.module.mjs +28 -29
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
- package/esm2022/lib/datasource/datasource.module.mjs +12 -12
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
- package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/index.mjs +2 -1
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
- package/esm2022/lib/directions/directions.component.mjs +25 -47
- package/esm2022/lib/directions/directions.module.mjs +61 -62
- package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
- package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
- package/esm2022/lib/download/download.module.mjs +22 -23
- package/esm2022/lib/download/shared/download.service.mjs +9 -9
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
- package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
- package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
- package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
- package/esm2022/lib/feature/feature.module.mjs +13 -14
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
- package/esm2022/lib/filter/filter.module.mjs +158 -197
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
- package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
- package/esm2022/lib/geo.module.mjs +54 -55
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
- package/esm2022/lib/geometry/geometry.module.mjs +13 -14
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
- package/esm2022/lib/import-export/import-export.module.mjs +54 -55
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
- package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
- package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
- package/esm2022/lib/layer/index.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
- package/esm2022/lib/layer/layer.module.mjs +94 -114
- package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
- package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
- package/esm2022/lib/map/map-browser/index.mjs +1 -1
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
- package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
- package/esm2022/lib/map/map.module.mjs +88 -96
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +9 -9
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
- package/esm2022/lib/map/shared/projection.service.mjs +9 -9
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
- package/esm2022/lib/measure/measure.module.mjs +12 -13
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
- package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
- package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
- package/esm2022/lib/metadata/metadata.module.mjs +24 -25
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
- package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
- package/esm2022/lib/overlay/overlay.module.mjs +12 -13
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
- package/esm2022/lib/print/print/print.component.mjs +21 -27
- package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
- package/esm2022/lib/print/print.module.mjs +36 -37
- package/esm2022/lib/print/shared/print.service.mjs +14 -14
- package/esm2022/lib/print/shared/print.type.mjs +2 -2
- package/esm2022/lib/query/query.module.mjs +13 -14
- package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
- package/esm2022/lib/query/shared/query.directive.mjs +21 -21
- package/esm2022/lib/query/shared/query.service.mjs +10 -10
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
- package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
- package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
- package/esm2022/lib/search/search.module.mjs +32 -33
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
- package/esm2022/lib/search/shared/search.enums.mjs +3 -3
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +10 -10
- package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
- package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
- package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
- package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
- package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
- package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
- package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
- package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
- package/esm2022/lib/style/style-service/style.service.mjs +9 -9
- package/esm2022/lib/style/style.module.mjs +51 -52
- package/esm2022/lib/toast/toast.component.mjs +15 -44
- package/esm2022/lib/toast/toast.module.mjs +24 -25
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
- package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
- package/esm2022/lib/wkt/wkt.module.mjs +12 -12
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace.module.mjs +35 -36
- package/fesm2022/igo2-geo.mjs +16547 -23425
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
- package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
- package/lib/catalog/shared/catalog.interface.d.ts +2 -2
- package/lib/catalog/shared/catalog.service.d.ts +1 -1
- package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
- package/lib/datasource/shared/capabilities.service.d.ts +1 -8
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/index.d.ts +1 -0
- package/lib/directions/shared/directions.service.d.ts +2 -2
- package/lib/download/shared/download.service.d.ts +1 -1
- package/lib/draw/shared/draw.interface.d.ts +1 -1
- package/lib/environment/environment.interface.d.ts +8 -6
- package/lib/feature/shared/feature.interfaces.d.ts +3 -3
- package/lib/feature/shared/feature.utils.d.ts +2 -1
- package/lib/feature/shared/store.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
- package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +2 -1
- package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/shared/map.abstract.d.ts +5 -4
- package/lib/measure/measurer/measurer.component.d.ts +8 -4
- package/lib/measure/shared/measure.interfaces.d.ts +2 -2
- package/lib/metadata/shared/metadata.interface.d.ts +1 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +4 -6
- package/lib/print/shared/print.service.d.ts +2 -1
- package/lib/print/shared/print.type.d.ts +2 -6
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.d.ts +1 -1
- package/lib/search/shared/sources/icherche.d.ts +1 -1
- package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/workspace.d.ts +1 -1
- package/lib/utils/id-generator.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.d.ts +3 -3
- package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
- package/lib/workspace/shared/feature-workspace.d.ts +1 -1
- package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
- package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/workspace.utils.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/locale/en.geo.json +5 -3
- package/locale/fr.geo.json +5 -3
- package/package.json +26 -29
- package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
- package/src/style/style.scss +1 -0
- /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
- /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
- /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
- /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
- /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
- /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
- /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
- /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
- /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
- /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
- /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
- /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
- /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
- /package/{lib → src/lib}/map/map.theming.scss +0 -0
- /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
- /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
- /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
- /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
- /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
- /package/{lib → src/lib}/search/search.theming.scss +0 -0
- /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
- /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
|
@@ -3,7 +3,7 @@ import { EntityStoreFilterCustomFuncStrategy, EntityStoreWatcher, EntityStoreWit
|
|
|
3
3
|
import { ConfigService } from '@igo2/core';
|
|
4
4
|
import { BehaviorSubject, EMPTY, timer } from 'rxjs';
|
|
5
5
|
import { debounce, map } from 'rxjs/operators';
|
|
6
|
-
import { IgoMap } from '../../map/shared';
|
|
6
|
+
import { IgoMap } from '../../map/shared/map';
|
|
7
7
|
import { SearchService } from '../shared/search.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../shared/search.service";
|
|
@@ -13,191 +13,6 @@ import * as i4 from "@igo2/common";
|
|
|
13
13
|
import * as i5 from "@angular/material/tabs";
|
|
14
14
|
import * as i6 from "./search-results-item.component";
|
|
15
15
|
import * as i7 from "@ngx-translate/core";
|
|
16
|
-
const _c0 = ["igoSearchItemToolbar"];
|
|
17
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_igo_collapsible_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
-
i0.ɵɵelementContainer(0);
|
|
19
|
-
} }
|
|
20
|
-
const _c1 = function (a0) { return { results: a0 }; };
|
|
21
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_igo_collapsible_0_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "igo-collapsible", 7);
|
|
24
|
-
i0.ɵɵlistener("toggle", function SearchResultsComponent_igo_list_0_ng_template_1_igo_collapsible_0_Template_igo_collapsible_toggle_0_listener($event) { i0.ɵɵrestoreView(_r12); const group_r4 = i0.ɵɵnextContext().$implicit; const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r11.collapsed[group_r4.source.title] = $event)); });
|
|
25
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_0_ng_template_1_igo_collapsible_0_ng_container_1_Template, 1, 0, "ng-container", 8);
|
|
26
|
-
i0.ɵɵelementEnd();
|
|
27
|
-
} if (rf & 2) {
|
|
28
|
-
const group_r4 = i0.ɵɵnextContext().$implicit;
|
|
29
|
-
const _r8 = i0.ɵɵreference(4);
|
|
30
|
-
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
31
|
-
i0.ɵɵclassMap(group_r4.source.getId());
|
|
32
|
-
i0.ɵɵproperty("title", ctx_r5.computeGroupTitle(group_r4))("collapsed", ctx_r5.collapsed[group_r4.source.title]);
|
|
33
|
-
i0.ɵɵadvance(1);
|
|
34
|
-
i0.ɵɵproperty("ngTemplateOutlet", _r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(6, _c1, group_r4.results));
|
|
35
|
-
} }
|
|
36
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelementContainer(0);
|
|
38
|
-
} }
|
|
39
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_0_ng_template_1_ng_template_1_ng_container_0_Template, 1, 0, "ng-container", 8);
|
|
41
|
-
} if (rf & 2) {
|
|
42
|
-
const group_r4 = i0.ɵɵnextContext().$implicit;
|
|
43
|
-
const _r8 = i0.ɵɵreference(4);
|
|
44
|
-
i0.ɵɵproperty("ngTemplateOutlet", _r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c1, group_r4.results));
|
|
45
|
-
} }
|
|
46
|
-
const _c2 = function (a0) { return { result: a0 }; };
|
|
47
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
const _r22 = i0.ɵɵgetCurrentView();
|
|
49
|
-
i0.ɵɵelementStart(0, "igo-search-results-item", 10);
|
|
50
|
-
i0.ɵɵlistener("focus", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template_igo_search_results_item_focus_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const result_r20 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r21.resultFocus.emit(result_r20)); })("unfocus", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template_igo_search_results_item_unfocus_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const result_r20 = restoredCtx.$implicit; const ctx_r23 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r23.resultUnfocus.emit(result_r20)); })("select", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template_igo_search_results_item_select_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const result_r20 = restoredCtx.$implicit; const ctx_r24 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r24.onResultSelect(result_r20)); })("mouseenter", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template_igo_search_results_item_mouseenter_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const result_r20 = restoredCtx.$implicit; const ctx_r25 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r25.resultFocus.emit(result_r20)); })("mouseleave", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template_igo_search_results_item_mouseleave_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const result_r20 = restoredCtx.$implicit; const ctx_r26 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r26.resultUnfocus.emit(result_r20)); });
|
|
51
|
-
i0.ɵɵelementContainer(1, 11);
|
|
52
|
-
i0.ɵɵelementEnd();
|
|
53
|
-
} if (rf & 2) {
|
|
54
|
-
const result_r20 = ctx.$implicit;
|
|
55
|
-
const ctx_r18 = i0.ɵɵnextContext(4);
|
|
56
|
-
i0.ɵɵproperty("map", ctx_r18.map)("result", result_r20)("showIcons", ctx_r18.showIcons)("withZoomButton", ctx_r18.withZoomButton)("focused", ctx_r18.store.state.get(result_r20).focused)("selected", ctx_r18.store.state.get(result_r20).selected);
|
|
57
|
-
i0.ɵɵadvance(1);
|
|
58
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r18.templateSearchToolbar)("ngTemplateOutletContext", i0.ɵɵpureFunction1(8, _c2, result_r20));
|
|
59
|
-
} }
|
|
60
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
-
const _r29 = i0.ɵɵgetCurrentView();
|
|
62
|
-
i0.ɵɵelementStart(0, "span", 12);
|
|
63
|
-
i0.ɵɵlistener("click", function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r29); const group_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r27 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r27.displayMoreResults(group_r4)); });
|
|
64
|
-
i0.ɵɵelementStart(1, "u");
|
|
65
|
-
i0.ɵɵtext(2);
|
|
66
|
-
i0.ɵɵpipe(3, "translate");
|
|
67
|
-
i0.ɵɵelementEnd()();
|
|
68
|
-
} if (rf & 2) {
|
|
69
|
-
i0.ɵɵadvance(2);
|
|
70
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "igo.geo.search.displayMoreResults"));
|
|
71
|
-
} }
|
|
72
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_ng_template_0_Template, 2, 10, "ng-template", 2);
|
|
74
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_span_1_Template, 4, 3, "span", 9);
|
|
75
|
-
} if (rf & 2) {
|
|
76
|
-
const results_r17 = ctx.results;
|
|
77
|
-
const group_r4 = i0.ɵɵnextContext().$implicit;
|
|
78
|
-
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
79
|
-
i0.ɵɵproperty("ngForOf", results_r17);
|
|
80
|
-
i0.ɵɵadvance(1);
|
|
81
|
-
i0.ɵɵproperty("ngIf", ctx_r9.isMoreResults(group_r4));
|
|
82
|
-
} }
|
|
83
|
-
function SearchResultsComponent_igo_list_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_0_ng_template_1_igo_collapsible_0_Template, 2, 8, "igo-collapsible", 4);
|
|
85
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_0_ng_template_1_ng_template_1_Template, 1, 4, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
|
|
86
|
-
i0.ɵɵtemplate(3, SearchResultsComponent_igo_list_0_ng_template_1_ng_template_3_Template, 2, 2, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
|
|
87
|
-
} if (rf & 2) {
|
|
88
|
-
const _r6 = i0.ɵɵreference(2);
|
|
89
|
-
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
90
|
-
i0.ɵɵproperty("ngIf", ctx_r3.mode === ctx_r3.searchResultMode.Grouped)("ngIfElse", _r6);
|
|
91
|
-
} }
|
|
92
|
-
function SearchResultsComponent_igo_list_0_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
-
i0.ɵɵelementStart(0, "igo-list", 1);
|
|
94
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_0_ng_template_1_Template, 5, 2, "ng-template", 2, 3, i0.ɵɵtemplateRefExtractor);
|
|
95
|
-
i0.ɵɵpipe(3, "async");
|
|
96
|
-
i0.ɵɵelementEnd();
|
|
97
|
-
} if (rf & 2) {
|
|
98
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
99
|
-
i0.ɵɵproperty("navigation", true);
|
|
100
|
-
i0.ɵɵadvance(1);
|
|
101
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 2, ctx_r0.results$));
|
|
102
|
-
} }
|
|
103
|
-
function SearchResultsComponent_igo_list_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
-
i0.ɵɵelementContainer(0);
|
|
105
|
-
} }
|
|
106
|
-
function SearchResultsComponent_igo_list_1_ng_template_2_mat_tab_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
-
i0.ɵɵelementContainer(0);
|
|
108
|
-
} }
|
|
109
|
-
const _c3 = function (a0) { return { group: a0 }; };
|
|
110
|
-
function SearchResultsComponent_igo_list_1_ng_template_2_mat_tab_1_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
-
i0.ɵɵelementStart(0, "mat-tab", 17);
|
|
112
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_1_ng_template_2_mat_tab_1_ng_container_1_Template, 1, 0, "ng-container", 8);
|
|
113
|
-
i0.ɵɵelementEnd();
|
|
114
|
-
} if (rf & 2) {
|
|
115
|
-
const group_r39 = ctx.$implicit;
|
|
116
|
-
i0.ɵɵnextContext(2);
|
|
117
|
-
const _r36 = i0.ɵɵreference(7);
|
|
118
|
-
const ctx_r38 = i0.ɵɵnextContext();
|
|
119
|
-
i0.ɵɵproperty("label", ctx_r38.computeGroupTitle(group_r39));
|
|
120
|
-
i0.ɵɵadvance(1);
|
|
121
|
-
i0.ɵɵproperty("ngTemplateOutlet", _r36)("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c3, group_r39));
|
|
122
|
-
} }
|
|
123
|
-
function SearchResultsComponent_igo_list_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
124
|
-
i0.ɵɵelementStart(0, "mat-tab-group", 15);
|
|
125
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_1_ng_template_2_mat_tab_1_Template, 2, 5, "mat-tab", 16);
|
|
126
|
-
i0.ɵɵpipe(2, "async");
|
|
127
|
-
i0.ɵɵelementEnd();
|
|
128
|
-
} if (rf & 2) {
|
|
129
|
-
const ctx_r33 = i0.ɵɵnextContext(2);
|
|
130
|
-
i0.ɵɵadvance(1);
|
|
131
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r33.results$));
|
|
132
|
-
} }
|
|
133
|
-
function SearchResultsComponent_igo_list_1_ng_template_4_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
-
i0.ɵɵelementContainer(0);
|
|
135
|
-
} }
|
|
136
|
-
function SearchResultsComponent_igo_list_1_ng_template_4_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_1_ng_template_4_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 8);
|
|
138
|
-
} if (rf & 2) {
|
|
139
|
-
const group_r42 = ctx.$implicit;
|
|
140
|
-
i0.ɵɵnextContext(2);
|
|
141
|
-
const _r36 = i0.ɵɵreference(7);
|
|
142
|
-
i0.ɵɵproperty("ngTemplateOutlet", _r36)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, group_r42));
|
|
143
|
-
} }
|
|
144
|
-
function SearchResultsComponent_igo_list_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_1_ng_template_4_ng_template_0_Template, 1, 4, "ng-template", 2);
|
|
146
|
-
i0.ɵɵpipe(1, "async");
|
|
147
|
-
} if (rf & 2) {
|
|
148
|
-
const ctx_r35 = i0.ɵɵnextContext(2);
|
|
149
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(1, 1, ctx_r35.results$));
|
|
150
|
-
} }
|
|
151
|
-
function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
-
const _r49 = i0.ɵɵgetCurrentView();
|
|
153
|
-
i0.ɵɵelementStart(0, "igo-search-results-item", 10);
|
|
154
|
-
i0.ɵɵlistener("focus", function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template_igo_search_results_item_focus_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r49); const result_r47 = restoredCtx.$implicit; const ctx_r48 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r48.resultFocus.emit(result_r47)); })("unfocus", function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template_igo_search_results_item_unfocus_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r49); const result_r47 = restoredCtx.$implicit; const ctx_r50 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r50.resultUnfocus.emit(result_r47)); })("select", function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template_igo_search_results_item_select_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r49); const result_r47 = restoredCtx.$implicit; const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.onResultSelect(result_r47)); })("mouseenter", function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template_igo_search_results_item_mouseenter_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r49); const result_r47 = restoredCtx.$implicit; const ctx_r52 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r52.resultFocus.emit(result_r47)); })("mouseleave", function SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template_igo_search_results_item_mouseleave_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r49); const result_r47 = restoredCtx.$implicit; const ctx_r53 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r53.resultUnfocus.emit(result_r47)); });
|
|
155
|
-
i0.ɵɵelementContainer(1, 11);
|
|
156
|
-
i0.ɵɵelementEnd();
|
|
157
|
-
} if (rf & 2) {
|
|
158
|
-
const result_r47 = ctx.$implicit;
|
|
159
|
-
const ctx_r45 = i0.ɵɵnextContext(3);
|
|
160
|
-
i0.ɵɵproperty("map", ctx_r45.map)("result", result_r47)("showIcons", ctx_r45.showIcons)("withZoomButton", ctx_r45.withZoomButton)("focused", ctx_r45.store.state.get(result_r47).focused)("selected", ctx_r45.store.state.get(result_r47).selected);
|
|
161
|
-
i0.ɵɵadvance(1);
|
|
162
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r45.templateSearchToolbar)("ngTemplateOutletContext", i0.ɵɵpureFunction1(8, _c2, result_r47));
|
|
163
|
-
} }
|
|
164
|
-
function SearchResultsComponent_igo_list_1_ng_template_6_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
165
|
-
const _r56 = i0.ɵɵgetCurrentView();
|
|
166
|
-
i0.ɵɵelementStart(0, "span", 12);
|
|
167
|
-
i0.ɵɵlistener("click", function SearchResultsComponent_igo_list_1_ng_template_6_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r56); const group_r44 = i0.ɵɵnextContext().group; const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.displayMoreResults(group_r44)); });
|
|
168
|
-
i0.ɵɵelementStart(1, "u");
|
|
169
|
-
i0.ɵɵtext(2);
|
|
170
|
-
i0.ɵɵpipe(3, "translate");
|
|
171
|
-
i0.ɵɵelementEnd()();
|
|
172
|
-
} if (rf & 2) {
|
|
173
|
-
i0.ɵɵadvance(2);
|
|
174
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "igo.geo.search.displayMoreResults"));
|
|
175
|
-
} }
|
|
176
|
-
function SearchResultsComponent_igo_list_1_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_1_ng_template_6_ng_template_0_Template, 2, 10, "ng-template", 2);
|
|
178
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_1_ng_template_6_span_1_Template, 4, 3, "span", 9);
|
|
179
|
-
} if (rf & 2) {
|
|
180
|
-
const group_r44 = ctx.group;
|
|
181
|
-
const ctx_r37 = i0.ɵɵnextContext(2);
|
|
182
|
-
i0.ɵɵproperty("ngForOf", group_r44.results);
|
|
183
|
-
i0.ɵɵadvance(1);
|
|
184
|
-
i0.ɵɵproperty("ngIf", ctx_r37.isMoreResults(group_r44));
|
|
185
|
-
} }
|
|
186
|
-
function SearchResultsComponent_igo_list_1_Template(rf, ctx) { if (rf & 1) {
|
|
187
|
-
i0.ɵɵelementStart(0, "igo-list", 1);
|
|
188
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_1_ng_container_1_Template, 1, 0, "ng-container", 13);
|
|
189
|
-
i0.ɵɵtemplate(2, SearchResultsComponent_igo_list_1_ng_template_2_Template, 3, 3, "ng-template", null, 14, i0.ɵɵtemplateRefExtractor);
|
|
190
|
-
i0.ɵɵtemplate(4, SearchResultsComponent_igo_list_1_ng_template_4_Template, 2, 3, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
|
|
191
|
-
i0.ɵɵtemplate(6, SearchResultsComponent_igo_list_1_ng_template_6_Template, 2, 2, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
|
|
192
|
-
i0.ɵɵelementEnd();
|
|
193
|
-
} if (rf & 2) {
|
|
194
|
-
const _r32 = i0.ɵɵreference(3);
|
|
195
|
-
const _r34 = i0.ɵɵreference(5);
|
|
196
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
197
|
-
i0.ɵɵproperty("navigation", true);
|
|
198
|
-
i0.ɵɵadvance(1);
|
|
199
|
-
i0.ɵɵproperty("ngIf", ctx_r1.mode === ctx_r1.searchResultMode.Grouped)("ngIfThen", _r32)("ngIfElse", _r34);
|
|
200
|
-
} }
|
|
201
16
|
export var SearchResultMode;
|
|
202
17
|
(function (SearchResultMode) {
|
|
203
18
|
SearchResultMode["Grouped"] = "grouped";
|
|
@@ -425,56 +240,44 @@ export class SearchResultsComponent {
|
|
|
425
240
|
});
|
|
426
241
|
return;
|
|
427
242
|
}
|
|
428
|
-
static ɵfac =
|
|
429
|
-
static ɵcmp =
|
|
430
|
-
i0.ɵɵcontentQuery(dirIndex, _c0, 5);
|
|
431
|
-
} if (rf & 2) {
|
|
432
|
-
let _t;
|
|
433
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateSearchToolbar = _t.first);
|
|
434
|
-
} }, inputs: { map: "map", store: "store", showIcons: "showIcons", mode: "mode", withZoomButton: "withZoomButton", tabsMode: "tabsMode", term: "term", settingsChange$: "settingsChange$", termSplitter: "termSplitter" }, outputs: { resultFocus: "resultFocus", resultUnfocus: "resultUnfocus", resultSelect: "resultSelect", moreResults: "moreResults", resultMouseenter: "resultMouseenter", resultMouseleave: "resultMouseleave" }, decls: 2, vars: 2, consts: [[3, "navigation", 4, "ngIf"], [3, "navigation"], ["ngFor", "", 3, "ngForOf"], ["groupTemplate", ""], [3, "class", "title", "collapsed", "toggle", 4, "ngIf", "ngIfElse"], ["flatTemplate", ""], ["storeItemTemplate", ""], [3, "title", "collapsed", "toggle"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "moreResults mat-typography", 3, "click", 4, "ngIf"], ["igoListItem", "", "color", "accent", 3, "map", "result", "showIcons", "withZoomButton", "focused", "selected", "focus", "unfocus", "select", "mouseenter", "mouseleave"], ["igoSearchItemToolbar", "", 3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "moreResults", "mat-typography", 3, "click"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["tabsTemplate", ""], ["dynamicHeight", "", 1, "custom-tabs-view"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"]], template: function SearchResultsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
435
|
-
i0.ɵɵtemplate(0, SearchResultsComponent_igo_list_0_Template, 4, 4, "igo-list", 0);
|
|
436
|
-
i0.ɵɵtemplate(1, SearchResultsComponent_igo_list_1_Template, 8, 4, "igo-list", 0);
|
|
437
|
-
} if (rf & 2) {
|
|
438
|
-
i0.ɵɵproperty("ngIf", ctx.tabsMode === false);
|
|
439
|
-
i0.ɵɵadvance(1);
|
|
440
|
-
i0.ɵɵproperty("ngIf", ctx.tabsMode);
|
|
441
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i4.CollapsibleComponent, i4.ListItemDirective, i4.ListComponent, i5.MatTab, i5.MatTabGroup, i6.SearchResultsItemComponent, i3.AsyncPipe, i7.TranslatePipe], styles: ["[_nghost-%COMP%] .moreResults[_ngcontent-%COMP%]{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}[_nghost-%COMP%] igo-list[_ngcontent-%COMP%] mat-list{height:100%}[_nghost-%COMP%] igo-list[_ngcontent-%COMP%] mat-list .custom-tabs-view .mat-mdc-tab-header-pagination{min-width:20px}"], changeDetection: 0 });
|
|
243
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchResultsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SearchService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
244
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchResultsComponent, selector: "igo-search-results", inputs: { map: "map", store: "store", showIcons: "showIcons", mode: "mode", withZoomButton: "withZoomButton", tabsMode: "tabsMode", term: "term", settingsChange$: "settingsChange$", termSplitter: "termSplitter" }, outputs: { resultFocus: "resultFocus", resultUnfocus: "resultUnfocus", resultSelect: "resultSelect", moreResults: "moreResults", resultMouseenter: "resultMouseenter", resultMouseleave: "resultMouseleave" }, queries: [{ propertyName: "templateSearchToolbar", first: true, predicate: ["igoSearchItemToolbar"], descendants: true }], ngImport: i0, template: "<igo-list [navigation]=\"true\" *ngIf=\"tabsMode === false\">\r\n <ng-template #groupTemplate ngFor let-group [ngForOf]=\"results$ | async\">\r\n <igo-collapsible\r\n [class]=\"group.source.getId()\"\r\n *ngIf=\"mode === searchResultMode.Grouped; else flatTemplate\"\r\n [title]=\"computeGroupTitle(group)\"\r\n [collapsed]=\"collapsed[group.source.title]\"\r\n (toggle)=\"collapsed[group.source.title] = $event\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n storeItemTemplate;\r\n context: { results: group.results }\r\n \"\r\n ></ng-container>\r\n </igo-collapsible>\r\n\r\n <ng-template #flatTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n storeItemTemplate;\r\n context: { results: group.results }\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n\r\n <ng-template #storeItemTemplate let-results=\"results\">\r\n <ng-template ngFor let-result [ngForOf]=\"results\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [map]=\"map\"\r\n [result]=\"result\"\r\n [showIcons]=\"showIcons\"\r\n [withZoomButton]=\"withZoomButton\"\r\n [focused]=\"store.state.get(result).focused\"\r\n [selected]=\"store.state.get(result).selected\"\r\n (focus)=\"resultFocus.emit(result)\"\r\n (unfocus)=\"resultUnfocus.emit(result)\"\r\n (select)=\"onResultSelect(result)\"\r\n (mouseenter)=\"resultFocus.emit(result)\"\r\n (mouseleave)=\"resultUnfocus.emit(result)\"\r\n >\r\n <ng-container\r\n igoSearchItemToolbar\r\n [ngTemplateOutlet]=\"templateSearchToolbar\"\r\n [ngTemplateOutletContext]=\"{ result: result }\"\r\n >\r\n </ng-container>\r\n </igo-search-results-item>\r\n </ng-template>\r\n <span\r\n class=\"moreResults mat-typography\"\r\n *ngIf=\"isMoreResults(group)\"\r\n (click)=\"displayMoreResults(group)\"\r\n >\r\n <u>{{ 'igo.geo.search.displayMoreResults' | translate }}</u>\r\n </span>\r\n </ng-template>\r\n </ng-template>\r\n</igo-list>\r\n\r\n<igo-list [navigation]=\"true\" *ngIf=\"tabsMode\">\r\n <ng-container\r\n *ngIf=\"\r\n mode === searchResultMode.Grouped;\r\n then tabsTemplate;\r\n else flatTemplate\r\n \"\r\n ></ng-container>\r\n\r\n <ng-template #tabsTemplate>\r\n <mat-tab-group class=\"custom-tabs-view\" dynamicHeight>\r\n <mat-tab\r\n *ngFor=\"let group of results$ | async\"\r\n [label]=\"computeGroupTitle(group)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"storeItemTemplate; context: { group: group }\"\r\n ></ng-container>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </ng-template>\r\n\r\n <ng-template #flatTemplate>\r\n <ng-template ngFor let-group [ngForOf]=\"results$ | async\">\r\n <ng-container\r\n *ngTemplateOutlet=\"storeItemTemplate; context: { group: group }\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <ng-template #storeItemTemplate let-group=\"group\">\r\n <ng-template ngFor let-result [ngForOf]=\"group.results\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [map]=\"map\"\r\n [result]=\"result\"\r\n [showIcons]=\"showIcons\"\r\n [withZoomButton]=\"withZoomButton\"\r\n [focused]=\"store.state.get(result).focused\"\r\n [selected]=\"store.state.get(result).selected\"\r\n (focus)=\"resultFocus.emit(result)\"\r\n (unfocus)=\"resultUnfocus.emit(result)\"\r\n (select)=\"onResultSelect(result)\"\r\n (mouseenter)=\"resultFocus.emit(result)\"\r\n (mouseleave)=\"resultUnfocus.emit(result)\"\r\n >\r\n <ng-container\r\n igoSearchItemToolbar\r\n [ngTemplateOutlet]=\"templateSearchToolbar\"\r\n [ngTemplateOutletContext]=\"{ result: result }\"\r\n >\r\n </ng-container>\r\n </igo-search-results-item>\r\n </ng-template>\r\n <span\r\n class=\"moreResults mat-typography\"\r\n *ngIf=\"isMoreResults(group)\"\r\n (click)=\"displayMoreResults(group)\"\r\n >\r\n <u>{{ 'igo.geo.search.displayMoreResults' | translate }}</u>\r\n </span>\r\n </ng-template>\r\n</igo-list>\r\n", styles: [":host .moreResults{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}:host igo-list ::ng-deep mat-list{height:100%}:host igo-list ::ng-deep mat-list .custom-tabs-view .mat-mdc-tab-header-pagination{min-width:20px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.CollapsibleComponent, selector: "igo-collapsible", inputs: ["title", "collapsed"], outputs: ["toggle"] }, { kind: "directive", type: i4.ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "component", type: i4.ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i6.SearchResultsItemComponent, selector: "igo-search-results-item", inputs: ["result", "map", "showIcons", "withZoomButton"], outputs: ["zoomEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
442
245
|
}
|
|
443
|
-
(
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NlYXJjaC1yZXN1bHRzL3NlYXJjaC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFFTCxtQ0FBbUMsRUFDbkMsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN4QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUE0QixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7OztJQ2pCbkQsd0JBS2dCOzs7OztJQVpsQiwwQ0FNQztJQURDLGtWQUFpRDtJQUVqRCxvSUFLZ0I7SUFDbEIsaUJBQWtCOzs7OztJQVpoQixzQ0FBOEI7SUFFOUIsMERBQWtDLHNEQUFBO0lBSy9CLGVBRVc7SUFGWCxzQ0FFVyx5RUFBQTs7O0lBTWQsd0JBS2dCOzs7SUFMaEIsZ0lBS2dCOzs7O0lBSmIsc0NBRVcseUVBQUE7Ozs7O0lB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WUFVRyxlQUFlO2tCQUF2QixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUtJLFdBQVc7a0JBQXBCLE1BQU07WUFLRyxhQUFhO2tCQUF0QixNQUFNO1lBS0csWUFBWTtrQkFBckIsTUFBTTtZQUtHLFdBQVc7a0JBQXBCLE1BQU07WUFRRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFDRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFHUCxxQkFBcUI7a0JBRHBCLFlBQVk7bUJBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLENBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBFbnRpdHlTdGF0ZSxcclxuICBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSxcclxuICBFbnRpdHlTdG9yZVdhdGNoZXIsXHJcbiAgRW50aXR5U3RvcmVXaXRoU3RyYXRlZ3lcclxufSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkJztcclxuaW1wb3J0IHsgUmVzZWFyY2gsIFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuLi9zaGFyZWQvc291cmNlcy9zb3VyY2UnO1xyXG5pbXBvcnQgeyBUZXh0U2VhcmNoT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZS5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBlbnVtIFNlYXJjaFJlc3VsdE1vZGUge1xyXG4gIEdyb3VwZWQgPSAnZ3JvdXBlZCcsXHJcbiAgRmxhdCA9ICdmbGF0J1xyXG59XHJcblxyXG4vKipcclxuICogTGlzdCBvZiBzZWFyY2ggcmVzdWx0cyB3aXRoIGZvY3VzIGFuZCBzZWxlY3Rpb24gY2FwYWJpbGl0aWVzLlxyXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBkdW1iIGFuZCBvbmx5IGVtaXRzIGV2ZW50cy5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1yZXN1bHRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHRzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzaG93UmVzdWx0c0NvdW50OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBTZWFyY2hSZXN1bHRNb2RlIGVudW1cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwdWJsaWMgc2VhcmNoUmVzdWx0TW9kZSA9IFNlYXJjaFJlc3VsdE1vZGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCByZXN1bHRzIHN0b3JlIHdhdGNoZXJcclxuICAgKi9cclxuICBwcml2YXRlIHdhdGNoZXI6IEVudGl0eVN0b3JlV2F0Y2hlcjxTZWFyY2hSZXN1bHQ+O1xyXG5cclxuICBwcml2YXRlIHNldHRpbmdzQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIHBhZ2VJdGVyYXRvcjogeyBzb3VyY2VJZDogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgY29sbGFwc2VkOiB7IHNvdXJjZUlkOiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggcmVzdWx0cyBzdG9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZVdpdGhTdHJhdGVneTxTZWFyY2hSZXN1bHQ+O1xyXG5cclxuICAvKipcclxuICAgKiB0byBzaG93IGhpZGUgcmVzdWx0cyBpY29uc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNob3dJY29uczogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHJlc3VsdHMgZGlzcGxheSBtb2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9kZTogU2VhcmNoUmVzdWx0TW9kZSA9IFNlYXJjaFJlc3VsdE1vZGUuR3JvdXBlZDtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGVyZSBzaG91bGQgYmUgYSB6b29tIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHdpdGhab29tQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIGNoZWNrIGlmIHRoZSB2aWV3IGZvciB0YWJzTW9kZSBmb3Igc2VhcmNoLXJlc3VsdC10b29sc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYnNNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCB0ZXJtXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBnZXQgdGVybSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rlcm07XHJcbiAgfVxyXG4gIHNldCB0ZXJtKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Rlcm0gPSB2YWx1ZTtcclxuICAgIHRoaXMucGFnZUl0ZXJhdG9yID0gW107XHJcbiAgfVxyXG4gIHB1YmxpYyBfdGVybTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBzZXR0aW5nc0NoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIEBJbnB1dCgpIHRlcm1TcGxpdHRlcjogc3RyaW5nID0gJ3wnO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByZXN1bHQgaXMgZm9jdXNlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZXN1bHRGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByZXN1bHQgaXMgdW5mb2N1c2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlc3VsdFVuZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcmVzdWx0IGlzIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlc3VsdFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByZXNlYXJjaCBpcyBjb21wbGV0ZWQgYWZ0ZXIgZGlzcGxheWluZyBtb3JlIHJlc3VsdHMgaXMgY2xpY2tlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb3JlUmVzdWx0cyA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcmVzZWFyY2g6IFJlc2VhcmNoO1xyXG4gICAgcmVzdWx0czogU2VhcmNoUmVzdWx0W107XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnRzIGVtaXR0ZWQgd2hlbiBhIHJlc3VsdCBpcyBmb2N1cyBvciB1bmZvY3VzIGJ5IG1vdXNlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlc3VsdE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdD4oKTtcclxuICBAT3V0cHV0KCkgcmVzdWx0TW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0PigpO1xyXG5cclxuICBAQ29udGVudENoaWxkKCdpZ29TZWFyY2hJdGVtVG9vbGJhcicsIC8qIFRPRE86IGFkZCBzdGF0aWMgZmxhZyAqLyB7fSlcclxuICB0ZW1wbGF0ZVNlYXJjaFRvb2xiYXI6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGdldCByZXN1bHRzJCgpOiBPYnNlcnZhYmxlPFxyXG4gICAgeyBzb3VyY2U6IFNlYXJjaFNvdXJjZTsgcmVzdWx0czogU2VhcmNoUmVzdWx0W10gfVtdXHJcbiAgPiB7XHJcbiAgICBpZiAodGhpcy5fcmVzdWx0cyQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLl9yZXN1bHRzJCA9IHRoaXMubGlmdFJlc3VsdHMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzJDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzdWx0cyQ6IE9ic2VydmFibGU8XHJcbiAgICB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9W11cclxuICA+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoZSBzZWFyY2ggcmVzdWx0cyBzdG9yZSB0byB0aGUgd2F0Y2hlclxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy53YXRjaGVyID0gbmV3IEVudGl0eVN0b3JlV2F0Y2hlcih0aGlzLnN0b3JlLCB0aGlzLmNkUmVmKTtcclxuXHJcbiAgICB0aGlzLnNldHRpbmdzQ2hhbmdlJCQgPSB0aGlzLnNldHRpbmdzQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnBhZ2VJdGVyYXRvciA9IFtdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdzZWFyY2hTb3VyY2VzLnNob3dSZXN1bHRzQ291bnQnKSA9PT0gZmFsc2VcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNob3dSZXN1bHRzQ291bnQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGUgc2VhcmNoIHJlc3VsdHMgc3RvcmUgZnJvbSB0aGUgd2F0Y2hlclxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZSBhIGdyb3VwIHRpdGxlXHJcbiAgICogQHBhcmFtIGdyb3VwIFNlYXJjaCByZXN1bHRzIGdyb3VwXHJcbiAgICogQHJldHVybnMgR3JvdXAgdGl0bGVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBjb21wdXRlR3JvdXBUaXRsZShncm91cDoge1xyXG4gICAgc291cmNlOiBTZWFyY2hTb3VyY2U7XHJcbiAgICByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXTtcclxuICB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBhcnRzID0gW2dyb3VwLnNvdXJjZS50aXRsZV07XHJcbiAgICBjb25zdCBjb3VudCA9IGdyb3VwLnJlc3VsdHMubGVuZ3RoO1xyXG4gICAgaWYgKGNvdW50ID4gMSAmJiB0aGlzLnNob3dSZXN1bHRzQ291bnQpIHtcclxuICAgICAgcGFydHMucHVzaChgKCR7Y291bnR9KWApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSByZXN1bHQgaXMgc2VsZWN0ZWQsIHVwZGF0ZSBpdCdzIHN0YXRlIGluIHRoZSBzdG9yZSBhbmQgZW1pdFxyXG4gICAqIGFuIGV2ZW50LiBBIHNlbGVjdGVkIHJlc3VsdCBpcyBhbHNvIGNvbnNpZGVyZWQgZm9jdXNlZFxyXG4gICAqIEBwYXJhbSByZXN1bHQgU2VhcmNoIHJlc3VsdFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uUmVzdWx0U2VsZWN0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzdWx0KSkge1xyXG4gICAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUocmVzdWx0LCB7IGZvY3VzZWQ6IHRydWUsIHNlbGVjdGVkOiB0cnVlIH0sIHRydWUpO1xyXG4gICAgdGhpcy5yZXN1bHRTZWxlY3QuZW1pdChyZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGFuIG9ic2VydmFibGUgb2YgdGhlIHNlYXJjaCByZXN1bHRzLCBncm91cGVkIGJ5IHNlYXJjaCBzb3VyY2VcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGdyb3VwZWQgc2VhcmNoIHJlc3VsdHNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIGxpZnRSZXN1bHRzKCk6IE9ic2VydmFibGU8XHJcbiAgICB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9W11cclxuICA+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlVmlldy5hbGwkKCkucGlwZShcclxuICAgICAgZGVib3VuY2UoKHJlc3VsdHM6IHsgZW50aXR5OiBTZWFyY2hSZXN1bHQ7IHN0YXRlOiBFbnRpdHlTdGF0ZSB9W10pID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGggPT09IDAgPyBFTVBUWSA6IHRpbWVyKDIwMCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKHJlc3VsdHM6IHsgZW50aXR5OiBTZWFyY2hSZXN1bHQ7IHN0YXRlOiBFbnRpdHlTdGF0ZSB9W10pID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ncm91cFJlc3VsdHMoXHJcbiAgICAgICAgICByZXN1bHRzLm1hcCgocikgPT4gci5lbnRpdHkpLnNvcnQodGhpcy5zb3J0QnlPcmRlcilcclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgdGhlIHJlc3VsdHMgYnkgZGlzcGxheSBvcmRlci5cclxuICAgKiBAcGFyYW0gcjEgRmlyc3QgcmVzdWx0XHJcbiAgICogQHBhcmFtIHIyIFNlY29uZCByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIHNvcnRCeU9yZGVyKHIxOiBTZWFyY2hSZXN1bHQsIHIyOiBTZWFyY2hSZXN1bHQpIHtcclxuICAgIHJldHVybiByMS5zb3VyY2UuZGlzcGxheU9yZGVyIC0gcjIuc291cmNlLmRpc3BsYXlPcmRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdyb3VwIHJlc3VsdHMgYnkgc2VhcmNoIHNvdXJjZVxyXG4gICAqIEBwYXJhbSByZXN1bHRzIFNlYXJjaCByZXN1bHRzIGZyb20gYWxsIHNvdXJjZXNcclxuICAgKiBAcmV0dXJucyBTZWFyY2ggcmVzdWx0cyBncm91cGVkIGJ5IHNvdXJjZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ3JvdXBSZXN1bHRzKFxyXG4gICAgcmVzdWx0czogU2VhcmNoUmVzdWx0W11cclxuICApOiB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9W10ge1xyXG4gICAgY29uc3QgZ3JvdXBlZCA9IG5ldyBNYXA8U2VhcmNoU291cmNlLCBTZWFyY2hSZXN1bHRbXT4oKTtcclxuICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHtcclxuICAgICAgY29uc3Qgc291cmNlID0gcmVzdWx0LnNvdXJjZTtcclxuICAgICAgbGV0IHNvdXJjZVJlc3VsdHMgPSBncm91cGVkLmdldChzb3VyY2UpO1xyXG4gICAgICBpZiAoc291cmNlUmVzdWx0cyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgc291cmNlUmVzdWx0cyA9IFtdO1xyXG4gICAgICAgIGdyb3VwZWQuc2V0KHNvdXJjZSwgc291cmNlUmVzdWx0cyk7XHJcbiAgICAgIH1cclxuICAgICAgc291cmNlUmVzdWx0cy5wdXNoKHJlc3VsdCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShncm91cGVkLmtleXMoKSkubWFwKChzb3VyY2U6IFNlYXJjaFNvdXJjZSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5wYWdlSXRlcmF0b3Jbc291cmNlLmdldElkKCldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLnBhZ2VJdGVyYXRvcltzb3VyY2UuZ2V0SWQoKV0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IHNvdXJjZSwgcmVzdWx0czogZ3JvdXBlZC5nZXQoc291cmNlKSB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc01vcmVSZXN1bHRzKGdyb3VwOiB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9KSB7XHJcbiAgICBjb25zdCBzdGF0ZWd5ID0gdGhpcy5zdG9yZS5nZXRTdHJhdGVneU9mVHlwZShcclxuICAgICAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICBjb25zdCBhY3RpdmUgPSBzdGF0ZWd5Py5hY3RpdmUgfHwgZmFsc2U7XHJcbiAgICBpZiAoIWFjdGl2ZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIGdyb3VwLnJlc3VsdHMgJiZcclxuICAgICAgICBncm91cC5yZXN1bHRzW2dyb3VwLnJlc3VsdHMubGVuZ3RoIC0gMV0ubWV0YS5uZXh0UGFnZSA9PT0gdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBncm91cC5yZXN1bHRzPy5sZW5ndGggJSArZ3JvdXAuc291cmNlLnBhcmFtcy5saW1pdCA9PT0gMCAmJlxyXG4gICAgICAgICtncm91cC5zb3VyY2UucGFyYW1zLnBhZ2UgPCAzMFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcGxheU1vcmVSZXN1bHRzKGdyb3VwOiB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9KSB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9ucyA9IHtcclxuICAgICAgc291cmNlSWQ6IGdyb3VwLnNvdXJjZS5nZXRJZCgpLFxyXG4gICAgICBwYWdlOiArK3RoaXMucGFnZUl0ZXJhdG9yW2dyb3VwLnNvdXJjZS5nZXRJZCgpXVxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgdGVybXM7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMudGVybVNwbGl0dGVyICYmXHJcbiAgICAgIHRoaXMudGVybS5tYXRjaChuZXcgUmVnRXhwKHRoaXMudGVybVNwbGl0dGVyLCAnZycpKVxyXG4gICAgKSB7XHJcbiAgICAgIHRlcm1zID0gdGhpcy50ZXJtLnNwbGl0KHRoaXMudGVybVNwbGl0dGVyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRlcm1zID0gW3RoaXMudGVybV07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW10gPSBbXTtcclxuICAgIHRlcm1zLm1hcCgodGVybTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJlc2VhcmNoZXMgPSByZXNlYXJjaGVzLmNvbmNhdCh0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIG9wdGlvbnMpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc2VhcmNoZXMubWFwKChyZXNlYXJjaCkgPT4ge1xyXG4gICAgICByZXNlYXJjaC5yZXF1ZXN0LnN1YnNjcmliZSgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICBjb25zdCBuZXdSZXN1bHRzID0gZ3JvdXAucmVzdWx0cy5jb25jYXQocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgbmV3UmVzdWx0c1tuZXdSZXN1bHRzLmxlbmd0aCAtIDFdLm1ldGEubmV4dFBhZ2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tb3JlUmVzdWx0cy5lbWl0KHsgcmVzZWFyY2gsIHJlc3VsdHM6IG5ld1Jlc3VsdHMgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJ0cnVlXCIgKm5nSWY9XCJ0YWJzTW9kZSA9PT0gZmFsc2VcIj5cclxuICA8bmctdGVtcGxhdGUgI2dyb3VwVGVtcGxhdGUgbmdGb3IgbGV0LWdyb3VwIFtuZ0Zvck9mXT1cInJlc3VsdHMkIHwgYXN5bmNcIj5cclxuICAgIDxpZ28tY29sbGFwc2libGVcclxuICAgICAgW2NsYXNzXT1cImdyb3VwLnNvdXJjZS5nZXRJZCgpXCJcclxuICAgICAgKm5nSWY9XCJtb2RlID09PSBzZWFyY2hSZXN1bHRNb2RlLkdyb3VwZWQ7IGVsc2UgZmxhdFRlbXBsYXRlXCJcclxuICAgICAgW3RpdGxlXT1cImNvbXB1dGVHcm91cFRpdGxlKGdyb3VwKVwiXHJcbiAgICAgIFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkW2dyb3VwLnNvdXJjZS50aXRsZV1cIlxyXG4gICAgICAodG9nZ2xlKT1cImNvbGxhcHNlZFtncm91cC5zb3VyY2UudGl0bGVdID0gJGV2ZW50XCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICBzdG9yZUl0ZW1UZW1wbGF0ZTtcclxuICAgICAgICAgIGNvbnRleHQ6IHsgcmVzdWx0czogZ3JvdXAucmVzdWx0cyB9XHJcbiAgICAgICAgXCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9pZ28tY29sbGFwc2libGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNmbGF0VGVtcGxhdGU+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgc3RvcmVJdGVtVGVtcGxhdGU7XHJcbiAgICAgICAgICBjb250ZXh0OiB7IHJlc3VsdHM6IGdyb3VwLnJlc3VsdHMgfVxyXG4gICAgICAgIFwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNzdG9yZUl0ZW1UZW1wbGF0ZSBsZXQtcmVzdWx0cz1cInJlc3VsdHNcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1yZXN1bHQgW25nRm9yT2ZdPVwicmVzdWx0c1wiPlxyXG4gICAgICAgIDxpZ28tc2VhcmNoLXJlc3VsdHMtaXRlbVxyXG4gICAgICAgICAgaWdvTGlzdEl0ZW1cclxuICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgIFttYXBdPVwibWFwXCJcclxuICAgICAgICAgIFtyZXN1bHRdPVwicmVzdWx0XCJcclxuICAgICAgICAgIFtzaG93SWNvbnNdPVwic2hvd0ljb25zXCJcclxuICAgICAgICAgIFt3aXRoWm9vbUJ1dHRvbl09XCJ3aXRoWm9vbUJ1dHRvblwiXHJcbiAgICAgICAgICBbZm9jdXNlZF09XCJzdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5mb2N1c2VkXCJcclxuICAgICAgICAgIFtzZWxlY3RlZF09XCJzdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAoZm9jdXMpPVwicmVzdWx0Rm9jdXMuZW1pdChyZXN1bHQpXCJcclxuICAgICAgICAgICh1bmZvY3VzKT1cInJlc3VsdFVuZm9jdXMuZW1pdChyZXN1bHQpXCJcclxuICAgICAgICAgIChzZWxlY3QpPVwib25SZXN1bHRTZWxlY3QocmVzdWx0KVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJyZXN1bHRGb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwicmVzdWx0VW5mb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgaWdvU2VhcmNoSXRlbVRvb2xiYXJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVTZWFyY2hUb29sYmFyXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcmVzdWx0OiByZXN1bHQgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2lnby1zZWFyY2gtcmVzdWx0cy1pdGVtPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibW9yZVJlc3VsdHMgbWF0LXR5cG9ncmFwaHlcIlxyXG4gICAgICAgICpuZ0lmPVwiaXNNb3JlUmVzdWx0cyhncm91cClcIlxyXG4gICAgICAgIChjbGljayk9XCJkaXNwbGF5TW9yZVJlc3VsdHMoZ3JvdXApXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx1Pnt7ICdpZ28uZ2VvLnNlYXJjaC5kaXNwbGF5TW9yZVJlc3VsdHMnIHwgdHJhbnNsYXRlIH19PC91PlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvaWdvLWxpc3Q+XHJcblxyXG48aWdvLWxpc3QgW25hdmlnYXRpb25dPVwidHJ1ZVwiICpuZ0lmPVwidGFic01vZGVcIj5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBtb2RlID09PSBzZWFyY2hSZXN1bHRNb2RlLkdyb3VwZWQ7XHJcbiAgICAgIHRoZW4gdGFic1RlbXBsYXRlO1xyXG4gICAgICBlbHNlIGZsYXRUZW1wbGF0ZVxyXG4gICAgXCJcclxuICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjdGFic1RlbXBsYXRlPlxyXG4gICAgPG1hdC10YWItZ3JvdXAgY2xhc3M9XCJjdXN0b20tdGFicy12aWV3XCIgZHluYW1pY0hlaWdodD5cclxuICAgICAgPG1hdC10YWJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgcmVzdWx0cyQgfCBhc3luY1wiXHJcbiAgICAgICAgW2xhYmVsXT1cImNvbXB1dGVHcm91cFRpdGxlKGdyb3VwKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN0b3JlSXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7IGdyb3VwOiBncm91cCB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LXRhYj5cclxuICAgIDwvbWF0LXRhYi1ncm91cD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2ZsYXRUZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtZ3JvdXAgW25nRm9yT2ZdPVwicmVzdWx0cyQgfCBhc3luY1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdG9yZUl0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyBncm91cDogZ3JvdXAgfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzdG9yZUl0ZW1UZW1wbGF0ZSBsZXQtZ3JvdXA9XCJncm91cFwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1yZXN1bHQgW25nRm9yT2ZdPVwiZ3JvdXAucmVzdWx0c1wiPlxyXG4gICAgICA8aWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW1cclxuICAgICAgICBpZ29MaXN0SXRlbVxyXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICBbbWFwXT1cIm1hcFwiXHJcbiAgICAgICAgW3Jlc3VsdF09XCJyZXN1bHRcIlxyXG4gICAgICAgIFtzaG93SWNvbnNdPVwic2hvd0ljb25zXCJcclxuICAgICAgICBbd2l0aFpvb21CdXR0b25dPVwid2l0aFpvb21CdXR0b25cIlxyXG4gICAgICAgIFtmb2N1c2VkXT1cInN0b3JlLnN0YXRlLmdldChyZXN1bHQpLmZvY3VzZWRcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJzdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5zZWxlY3RlZFwiXHJcbiAgICAgICAgKGZvY3VzKT1cInJlc3VsdEZvY3VzLmVtaXQocmVzdWx0KVwiXHJcbiAgICAgICAgKHVuZm9jdXMpPVwicmVzdWx0VW5mb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgIChzZWxlY3QpPVwib25SZXN1bHRTZWxlY3QocmVzdWx0KVwiXHJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwicmVzdWx0Rm9jdXMuZW1pdChyZXN1bHQpXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN1bHRVbmZvY3VzLmVtaXQocmVzdWx0KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICBpZ29TZWFyY2hJdGVtVG9vbGJhclxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVTZWFyY2hUb29sYmFyXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJlc3VsdDogcmVzdWx0IH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9pZ28tc2VhcmNoLXJlc3VsdHMtaXRlbT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8c3BhblxyXG4gICAgICBjbGFzcz1cIm1vcmVSZXN1bHRzIG1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgKm5nSWY9XCJpc01vcmVSZXN1bHRzKGdyb3VwKVwiXHJcbiAgICAgIChjbGljayk9XCJkaXNwbGF5TW9yZVJlc3VsdHMoZ3JvdXApXCJcclxuICAgID5cclxuICAgICAgPHU+e3sgJ2lnby5nZW8uc2VhcmNoLmRpc3BsYXlNb3JlUmVzdWx0cycgfCB0cmFuc2xhdGUgfX08L3U+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pZ28tbGlzdD5cclxuIl19
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchResultsComponent, decorators: [{
|
|
247
|
+
type: Component,
|
|
248
|
+
args: [{ selector: 'igo-search-results', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"true\" *ngIf=\"tabsMode === false\">\r\n <ng-template #groupTemplate ngFor let-group [ngForOf]=\"results$ | async\">\r\n <igo-collapsible\r\n [class]=\"group.source.getId()\"\r\n *ngIf=\"mode === searchResultMode.Grouped; else flatTemplate\"\r\n [title]=\"computeGroupTitle(group)\"\r\n [collapsed]=\"collapsed[group.source.title]\"\r\n (toggle)=\"collapsed[group.source.title] = $event\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n storeItemTemplate;\r\n context: { results: group.results }\r\n \"\r\n ></ng-container>\r\n </igo-collapsible>\r\n\r\n <ng-template #flatTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n storeItemTemplate;\r\n context: { results: group.results }\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n\r\n <ng-template #storeItemTemplate let-results=\"results\">\r\n <ng-template ngFor let-result [ngForOf]=\"results\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [map]=\"map\"\r\n [result]=\"result\"\r\n [showIcons]=\"showIcons\"\r\n [withZoomButton]=\"withZoomButton\"\r\n [focused]=\"store.state.get(result).focused\"\r\n [selected]=\"store.state.get(result).selected\"\r\n (focus)=\"resultFocus.emit(result)\"\r\n (unfocus)=\"resultUnfocus.emit(result)\"\r\n (select)=\"onResultSelect(result)\"\r\n (mouseenter)=\"resultFocus.emit(result)\"\r\n (mouseleave)=\"resultUnfocus.emit(result)\"\r\n >\r\n <ng-container\r\n igoSearchItemToolbar\r\n [ngTemplateOutlet]=\"templateSearchToolbar\"\r\n [ngTemplateOutletContext]=\"{ result: result }\"\r\n >\r\n </ng-container>\r\n </igo-search-results-item>\r\n </ng-template>\r\n <span\r\n class=\"moreResults mat-typography\"\r\n *ngIf=\"isMoreResults(group)\"\r\n (click)=\"displayMoreResults(group)\"\r\n >\r\n <u>{{ 'igo.geo.search.displayMoreResults' | translate }}</u>\r\n </span>\r\n </ng-template>\r\n </ng-template>\r\n</igo-list>\r\n\r\n<igo-list [navigation]=\"true\" *ngIf=\"tabsMode\">\r\n <ng-container\r\n *ngIf=\"\r\n mode === searchResultMode.Grouped;\r\n then tabsTemplate;\r\n else flatTemplate\r\n \"\r\n ></ng-container>\r\n\r\n <ng-template #tabsTemplate>\r\n <mat-tab-group class=\"custom-tabs-view\" dynamicHeight>\r\n <mat-tab\r\n *ngFor=\"let group of results$ | async\"\r\n [label]=\"computeGroupTitle(group)\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"storeItemTemplate; context: { group: group }\"\r\n ></ng-container>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </ng-template>\r\n\r\n <ng-template #flatTemplate>\r\n <ng-template ngFor let-group [ngForOf]=\"results$ | async\">\r\n <ng-container\r\n *ngTemplateOutlet=\"storeItemTemplate; context: { group: group }\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <ng-template #storeItemTemplate let-group=\"group\">\r\n <ng-template ngFor let-result [ngForOf]=\"group.results\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [map]=\"map\"\r\n [result]=\"result\"\r\n [showIcons]=\"showIcons\"\r\n [withZoomButton]=\"withZoomButton\"\r\n [focused]=\"store.state.get(result).focused\"\r\n [selected]=\"store.state.get(result).selected\"\r\n (focus)=\"resultFocus.emit(result)\"\r\n (unfocus)=\"resultUnfocus.emit(result)\"\r\n (select)=\"onResultSelect(result)\"\r\n (mouseenter)=\"resultFocus.emit(result)\"\r\n (mouseleave)=\"resultUnfocus.emit(result)\"\r\n >\r\n <ng-container\r\n igoSearchItemToolbar\r\n [ngTemplateOutlet]=\"templateSearchToolbar\"\r\n [ngTemplateOutletContext]=\"{ result: result }\"\r\n >\r\n </ng-container>\r\n </igo-search-results-item>\r\n </ng-template>\r\n <span\r\n class=\"moreResults mat-typography\"\r\n *ngIf=\"isMoreResults(group)\"\r\n (click)=\"displayMoreResults(group)\"\r\n >\r\n <u>{{ 'igo.geo.search.displayMoreResults' | translate }}</u>\r\n </span>\r\n </ng-template>\r\n</igo-list>\r\n", styles: [":host .moreResults{cursor:pointer;color:#00f;float:right;margin-right:10px;margin-top:5px}:host igo-list ::ng-deep mat-list{height:100%}:host igo-list ::ng-deep mat-list .custom-tabs-view .mat-mdc-tab-header-pagination{min-width:20px}\n"] }]
|
|
249
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SearchService }, { type: i2.ConfigService }]; }, propDecorators: { map: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], store: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], showIcons: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], mode: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], withZoomButton: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], tabsMode: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], term: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], settingsChange$: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], termSplitter: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], resultFocus: [{
|
|
268
|
+
type: Output
|
|
269
|
+
}], resultUnfocus: [{
|
|
270
|
+
type: Output
|
|
271
|
+
}], resultSelect: [{
|
|
272
|
+
type: Output
|
|
273
|
+
}], moreResults: [{
|
|
274
|
+
type: Output
|
|
275
|
+
}], resultMouseenter: [{
|
|
276
|
+
type: Output
|
|
277
|
+
}], resultMouseleave: [{
|
|
278
|
+
type: Output
|
|
279
|
+
}], templateSearchToolbar: [{
|
|
280
|
+
type: ContentChild,
|
|
281
|
+
args: ['igoSearchItemToolbar', /* TODO: add static flag */ {}]
|
|
282
|
+
}] } });
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NlYXJjaC1yZXN1bHRzL3NlYXJjaC1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFFTCxtQ0FBbUMsRUFDbkMsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN4QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUE0QixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFJekQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQix1Q0FBbUIsQ0FBQTtJQUNuQixpQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sc0JBQXNCO0lBNkd2QjtJQUNBO0lBQ0E7SUE5R0YsZ0JBQWdCLEdBQVks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O2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQVVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQVFHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBR1AscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLDJCQUEyQixDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3ksXHJcbiAgRW50aXR5U3RvcmVXYXRjaGVyLFxyXG4gIEVudGl0eVN0b3JlV2l0aFN0cmF0ZWd5XHJcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBSZXNlYXJjaCwgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XHJcbmltcG9ydCB7IFRleHRTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGVudW0gU2VhcmNoUmVzdWx0TW9kZSB7XHJcbiAgR3JvdXBlZCA9ICdncm91cGVkJyxcclxuICBGbGF0ID0gJ2ZsYXQnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBMaXN0IG9mIHNlYXJjaCByZXN1bHRzIHdpdGggZm9jdXMgYW5kIHNlbGVjdGlvbiBjYXBhYmlsaXRpZXMuXHJcbiAqIFRoaXMgY29tcG9uZW50IGlzIGR1bWIgYW5kIG9ubHkgZW1pdHMgZXZlbnRzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tc2VhcmNoLXJlc3VsdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHNob3dSZXN1bHRzQ291bnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIFNlYXJjaFJlc3VsdE1vZGUgZW51bVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRNb2RlID0gU2VhcmNoUmVzdWx0TW9kZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHJlc3VsdHMgc3RvcmUgd2F0Y2hlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hlcjogRW50aXR5U3RvcmVXYXRjaGVyPFNlYXJjaFJlc3VsdD47XHJcblxyXG4gIHByaXZhdGUgc2V0dGluZ3NDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwdWJsaWMgcGFnZUl0ZXJhdG9yOiB7IHNvdXJjZUlkOiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjb2xsYXBzZWQ6IHsgc291cmNlSWQ6IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCByZXN1bHRzIHN0b3JlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc3RvcmU6IEVudGl0eVN0b3JlV2l0aFN0cmF0ZWd5PFNlYXJjaFJlc3VsdD47XHJcblxyXG4gIC8qKlxyXG4gICAqIHRvIHNob3cgaGlkZSByZXN1bHRzIGljb25zXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2hvd0ljb25zOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggcmVzdWx0cyBkaXNwbGF5IG1vZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlOiBTZWFyY2hSZXN1bHRNb2RlID0gU2VhcmNoUmVzdWx0TW9kZS5Hcm91cGVkO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZXJlIHNob3VsZCBiZSBhIHpvb20gYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgd2l0aFpvb21CdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogVG8gY2hlY2sgaWYgdGhlIHZpZXcgZm9yIHRhYnNNb2RlIGZvciBzZWFyY2gtcmVzdWx0LXRvb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFic01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHRlcm1cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCB0ZXJtKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVybTtcclxuICB9XHJcbiAgc2V0IHRlcm0odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGVybSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYWdlSXRlcmF0b3IgPSBbXTtcclxuICB9XHJcbiAgcHVibGljIF90ZXJtOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNldHRpbmdzQ2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcclxuXHJcbiAgQElucHV0KCkgdGVybVNwbGl0dGVyOiBzdHJpbmcgPSAnfCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJlc3VsdCBpcyBmb2N1c2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlc3VsdEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJlc3VsdCBpcyB1bmZvY3VzZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmVzdWx0VW5mb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByZXN1bHQgaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmVzdWx0U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJlc2VhcmNoIGlzIGNvbXBsZXRlZCBhZnRlciBkaXNwbGF5aW5nIG1vcmUgcmVzdWx0cyBpcyBjbGlja2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vcmVSZXN1bHRzID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICByZXNlYXJjaDogUmVzZWFyY2g7XHJcbiAgICByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXTtcclxuICB9PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudHMgZW1pdHRlZCB3aGVuIGEgcmVzdWx0IGlzIGZvY3VzIG9yIHVuZm9jdXMgYnkgbW91c2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmVzdWx0TW91c2VlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0PigpO1xyXG4gIEBPdXRwdXQoKSByZXN1bHRNb3VzZWxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHQ+KCk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2lnb1NlYXJjaEl0ZW1Ub29sYmFyJywgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHt9KVxyXG4gIHRlbXBsYXRlU2VhcmNoVG9vbGJhcjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZ2V0IHJlc3VsdHMkKCk6IE9ic2VydmFibGU8XHJcbiAgICB7IHNvdXJjZTogU2VhcmNoU291cmNlOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9W11cclxuICA+IHtcclxuICAgIGlmICh0aGlzLl9yZXN1bHRzJCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuX3Jlc3VsdHMkID0gdGhpcy5saWZ0UmVzdWx0cygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHMkO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXN1bHRzJDogT2JzZXJ2YWJsZTxcclxuICAgIHsgc291cmNlOiBTZWFyY2hTb3VyY2U7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH1bXVxyXG4gID47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgdGhlIHNlYXJjaCByZXN1bHRzIHN0b3JlIHRvIHRoZSB3YXRjaGVyXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcmUsIHRoaXMuY2RSZWYpO1xyXG5cclxuICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UkJCA9IHRoaXMuc2V0dGluZ3NDaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucGFnZUl0ZXJhdG9yID0gW107XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ3NlYXJjaFNvdXJjZXMuc2hvd1Jlc3VsdHNDb3VudCcpID09PSBmYWxzZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Jlc3VsdHNDb3VudCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoZSBzZWFyY2ggcmVzdWx0cyBzdG9yZSBmcm9tIHRoZSB3YXRjaGVyXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLndhdGNoZXIuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5zZXR0aW5nc0NoYW5nZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wdXRlIGEgZ3JvdXAgdGl0bGVcclxuICAgKiBAcGFyYW0gZ3JvdXAgU2VhcmNoIHJlc3VsdHMgZ3JvdXBcclxuICAgKiBAcmV0dXJucyBHcm91cCB0aXRsZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGNvbXB1dGVHcm91cFRpdGxlKGdyb3VwOiB7XHJcbiAgICBzb3VyY2U6IFNlYXJjaFNvdXJjZTtcclxuICAgIHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdO1xyXG4gIH0pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcGFydHMgPSBbZ3JvdXAuc291cmNlLnRpdGxlXTtcclxuICAgIGNvbnN0IGNvdW50ID0gZ3JvdXAucmVzdWx0cy5sZW5ndGg7XHJcbiAgICBpZiAoY291bnQgPiAxICYmIHRoaXMuc2hvd1Jlc3VsdHNDb3VudCkge1xyXG4gICAgICBwYXJ0cy5wdXNoKGAoJHtjb3VudH0pYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhIHJlc3VsdCBpcyBzZWxlY3RlZCwgdXBkYXRlIGl0J3Mgc3RhdGUgaW4gdGhlIHN0b3JlIGFuZCBlbWl0XHJcbiAgICogYW4gZXZlbnQuIEEgc2VsZWN0ZWQgcmVzdWx0IGlzIGFsc28gY29uc2lkZXJlZCBmb2N1c2VkXHJcbiAgICogQHBhcmFtIHJlc3VsdCBTZWFyY2ggcmVzdWx0XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25SZXN1bHRTZWxlY3QocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlLnN0YXRlLmdldChyZXN1bHQpKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0b3JlLnN0YXRlLmdldChyZXN1bHQpLnNlbGVjdGVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZShyZXN1bHQsIHsgZm9jdXNlZDogdHJ1ZSwgc2VsZWN0ZWQ6IHRydWUgfSwgdHJ1ZSk7XHJcbiAgICB0aGlzLnJlc3VsdFNlbGVjdC5lbWl0KHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gYW4gb2JzZXJ2YWJsZSBvZiB0aGUgc2VhcmNoIHJlc3VsdHMsIGdyb3VwZWQgYnkgc2VhcmNoIHNvdXJjZVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgZ3JvdXBlZCBzZWFyY2ggcmVzdWx0c1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbGlmdFJlc3VsdHMoKTogT2JzZXJ2YWJsZTxcclxuICAgIHsgc291cmNlOiBTZWFyY2hTb3VyY2U7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH1bXVxyXG4gID4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGVWaWV3LmFsbCQoKS5waXBlKFxyXG4gICAgICBkZWJvdW5jZSgocmVzdWx0czogeyBlbnRpdHk6IFNlYXJjaFJlc3VsdDsgc3RhdGU6IEVudGl0eVN0YXRlIH1bXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXN1bHRzLmxlbmd0aCA9PT0gMCA/IEVNUFRZIDogdGltZXIoMjAwKTtcclxuICAgICAgfSksXHJcbiAgICAgIG1hcCgocmVzdWx0czogeyBlbnRpdHk6IFNlYXJjaFJlc3VsdDsgc3RhdGU6IEVudGl0eVN0YXRlIH1bXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwUmVzdWx0cyhcclxuICAgICAgICAgIHJlc3VsdHMubWFwKChyKSA9PiByLmVudGl0eSkuc29ydCh0aGlzLnNvcnRCeU9yZGVyKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29ydCB0aGUgcmVzdWx0cyBieSBkaXNwbGF5IG9yZGVyLlxyXG4gICAqIEBwYXJhbSByMSBGaXJzdCByZXN1bHRcclxuICAgKiBAcGFyYW0gcjIgU2Vjb25kIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc29ydEJ5T3JkZXIocjE6IFNlYXJjaFJlc3VsdCwgcjI6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgcmV0dXJuIHIxLnNvdXJjZS5kaXNwbGF5T3JkZXIgLSByMi5zb3VyY2UuZGlzcGxheU9yZGVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR3JvdXAgcmVzdWx0cyBieSBzZWFyY2ggc291cmNlXHJcbiAgICogQHBhcmFtIHJlc3VsdHMgU2VhcmNoIHJlc3VsdHMgZnJvbSBhbGwgc291cmNlc1xyXG4gICAqIEByZXR1cm5zIFNlYXJjaCByZXN1bHRzIGdyb3VwZWQgYnkgc291cmNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBncm91cFJlc3VsdHMoXHJcbiAgICByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXVxyXG4gICk6IHsgc291cmNlOiBTZWFyY2hTb3VyY2U7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH1bXSB7XHJcbiAgICBjb25zdCBncm91cGVkID0gbmV3IE1hcDxTZWFyY2hTb3VyY2UsIFNlYXJjaFJlc3VsdFtdPigpO1xyXG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkgPT4ge1xyXG4gICAgICBjb25zdCBzb3VyY2UgPSByZXN1bHQuc291cmNlO1xyXG4gICAgICBsZXQgc291cmNlUmVzdWx0cyA9IGdyb3VwZWQuZ2V0KHNvdXJjZSk7XHJcbiAgICAgIGlmIChzb3VyY2VSZXN1bHRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBzb3VyY2VSZXN1bHRzID0gW107XHJcbiAgICAgICAgZ3JvdXBlZC5zZXQoc291cmNlLCBzb3VyY2VSZXN1bHRzKTtcclxuICAgICAgfVxyXG4gICAgICBzb3VyY2VSZXN1bHRzLnB1c2gocmVzdWx0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3VwZWQua2V5cygpKS5tYXAoKHNvdXJjZTogU2VhcmNoU291cmNlKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2VJdGVyYXRvcltzb3VyY2UuZ2V0SWQoKV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMucGFnZUl0ZXJhdG9yW3NvdXJjZS5nZXRJZCgpXSA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHsgc291cmNlLCByZXN1bHRzOiBncm91cGVkLmdldChzb3VyY2UpIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzTW9yZVJlc3VsdHMoZ3JvdXA6IHsgc291cmNlOiBTZWFyY2hTb3VyY2U7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcclxuICAgIGNvbnN0IHN0YXRlZ3kgPSB0aGlzLnN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHN0YXRlZ3k/LmFjdGl2ZSB8fCBmYWxzZTtcclxuICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgZ3JvdXAucmVzdWx0cyAmJlxyXG4gICAgICAgIGdyb3VwLnJlc3VsdHNbZ3JvdXAucmVzdWx0cy5sZW5ndGggLSAxXS5tZXRhLm5leHRQYWdlID09PSB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIGdyb3VwLnJlc3VsdHM/Lmxlbmd0aCAlICtncm91cC5zb3VyY2UucGFyYW1zLmxpbWl0ID09PSAwICYmXHJcbiAgICAgICAgK2dyb3VwLnNvdXJjZS5wYXJhbXMucGFnZSA8IDMwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5TW9yZVJlc3VsdHMoZ3JvdXA6IHsgc291cmNlOiBTZWFyY2hTb3VyY2U7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IFRleHRTZWFyY2hPcHRpb25zID0ge1xyXG4gICAgICBzb3VyY2VJZDogZ3JvdXAuc291cmNlLmdldElkKCksXHJcbiAgICAgIHBhZ2U6ICsrdGhpcy5wYWdlSXRlcmF0b3JbZ3JvdXAuc291cmNlLmdldElkKCldXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCB0ZXJtcztcclxuICAgIGlmIChcclxuICAgICAgdGhpcy50ZXJtU3BsaXR0ZXIgJiZcclxuICAgICAgdGhpcy50ZXJtLm1hdGNoKG5ldyBSZWdFeHAodGhpcy50ZXJtU3BsaXR0ZXIsICdnJykpXHJcbiAgICApIHtcclxuICAgICAgdGVybXMgPSB0aGlzLnRlcm0uc3BsaXQodGhpcy50ZXJtU3BsaXR0ZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGVybXMgPSBbdGhpcy50ZXJtXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzZWFyY2hlczogUmVzZWFyY2hbXSA9IFtdO1xyXG4gICAgdGVybXMubWFwKCh0ZXJtOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmVzZWFyY2hlcyA9IHJlc2VhcmNoZXMuY29uY2F0KHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2godGVybSwgb3B0aW9ucykpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzZWFyY2hlcy5tYXAoKHJlc2VhcmNoKSA9PiB7XHJcbiAgICAgIHJlc2VhcmNoLnJlcXVlc3Quc3Vic2NyaWJlKChyZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSBncm91cC5yZXN1bHRzLmNvbmNhdChyZXN1bHRzKTtcclxuICAgICAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdSZXN1bHRzW25ld1Jlc3VsdHMubGVuZ3RoIC0gMV0ubWV0YS5uZXh0UGFnZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1vcmVSZXN1bHRzLmVtaXQoeyByZXNlYXJjaCwgcmVzdWx0czogbmV3UmVzdWx0cyB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcbn1cclxuIiwiPGlnby1saXN0IFtuYXZpZ2F0aW9uXT1cInRydWVcIiAqbmdJZj1cInRhYnNNb2RlID09PSBmYWxzZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjZ3JvdXBUZW1wbGF0ZSBuZ0ZvciBsZXQtZ3JvdXAgW25nRm9yT2ZdPVwicmVzdWx0cyQgfCBhc3luY1wiPlxyXG4gICAgPGlnby1jb2xsYXBzaWJsZVxyXG4gICAgICBbY2xhc3NdPVwiZ3JvdXAuc291cmNlLmdldElkKClcIlxyXG4gICAgICAqbmdJZj1cIm1vZGUgPT09IHNlYXJjaFJlc3VsdE1vZGUuR3JvdXBlZDsgZWxzZSBmbGF0VGVtcGxhdGVcIlxyXG4gICAgICBbdGl0bGVdPVwiY29tcHV0ZUdyb3VwVGl0bGUoZ3JvdXApXCJcclxuICAgICAgW2NvbGxhcHNlZF09XCJjb2xsYXBzZWRbZ3JvdXAuc291cmNlLnRpdGxlXVwiXHJcbiAgICAgICh0b2dnbGUpPVwiY29sbGFwc2VkW2dyb3VwLnNvdXJjZS50aXRsZV0gPSAkZXZlbnRcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICAgIHN0b3JlSXRlbVRlbXBsYXRlO1xyXG4gICAgICAgICAgY29udGV4dDogeyByZXN1bHRzOiBncm91cC5yZXN1bHRzIH1cclxuICAgICAgICBcIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2lnby1jb2xsYXBzaWJsZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2ZsYXRUZW1wbGF0ZT5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICBzdG9yZUl0ZW1UZW1wbGF0ZTtcclxuICAgICAgICAgIGNvbnRleHQ6IHsgcmVzdWx0czogZ3JvdXAucmVzdWx0cyB9XHJcbiAgICAgICAgXCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3N0b3JlSXRlbVRlbXBsYXRlIGxldC1yZXN1bHRzPVwicmVzdWx0c1wiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXJlc3VsdCBbbmdGb3JPZl09XCJyZXN1bHRzXCI+XHJcbiAgICAgICAgPGlnby1zZWFyY2gtcmVzdWx0cy1pdGVtXHJcbiAgICAgICAgICBpZ29MaXN0SXRlbVxyXG4gICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgICAgW21hcF09XCJtYXBcIlxyXG4gICAgICAgICAgW3Jlc3VsdF09XCJyZXN1bHRcIlxyXG4gICAgICAgICAgW3Nob3dJY29uc109XCJzaG93SWNvbnNcIlxyXG4gICAgICAgICAgW3dpdGhab29tQnV0dG9uXT1cIndpdGhab29tQnV0dG9uXCJcclxuICAgICAgICAgIFtmb2N1c2VkXT1cInN0b3JlLnN0YXRlLmdldChyZXN1bHQpLmZvY3VzZWRcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkXT1cInN0b3JlLnN0YXRlLmdldChyZXN1bHQpLnNlbGVjdGVkXCJcclxuICAgICAgICAgIChmb2N1cyk9XCJyZXN1bHRGb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgICAgKHVuZm9jdXMpPVwicmVzdWx0VW5mb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgICAgKHNlbGVjdCk9XCJvblJlc3VsdFNlbGVjdChyZXN1bHQpXCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cInJlc3VsdEZvY3VzLmVtaXQocmVzdWx0KVwiXHJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN1bHRVbmZvY3VzLmVtaXQocmVzdWx0KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBpZ29TZWFyY2hJdGVtVG9vbGJhclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVNlYXJjaFRvb2xiYXJcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByZXN1bHQ6IHJlc3VsdCB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvaWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW0+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJtb3JlUmVzdWx0cyBtYXQtdHlwb2dyYXBoeVwiXHJcbiAgICAgICAgKm5nSWY9XCJpc01vcmVSZXN1bHRzKGdyb3VwKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlNb3JlUmVzdWx0cyhncm91cClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHU+e3sgJ2lnby5nZW8uc2VhcmNoLmRpc3BsYXlNb3JlUmVzdWx0cycgfCB0cmFuc2xhdGUgfX08L3U+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pZ28tbGlzdD5cclxuXHJcbjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJ0cnVlXCIgKm5nSWY9XCJ0YWJzTW9kZVwiPlxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIG1vZGUgPT09IHNlYXJjaFJlc3VsdE1vZGUuR3JvdXBlZDtcclxuICAgICAgdGhlbiB0YWJzVGVtcGxhdGU7XHJcbiAgICAgIGVsc2UgZmxhdFRlbXBsYXRlXHJcbiAgICBcIlxyXG4gID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICN0YWJzVGVtcGxhdGU+XHJcbiAgICA8bWF0LXRhYi1ncm91cCBjbGFzcz1cImN1c3RvbS10YWJzLXZpZXdcIiBkeW5hbWljSGVpZ2h0PlxyXG4gICAgICA8bWF0LXRhYlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiByZXN1bHRzJCB8IGFzeW5jXCJcclxuICAgICAgICBbbGFiZWxdPVwiY29tcHV0ZUdyb3VwVGl0bGUoZ3JvdXApXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RvcmVJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgZ3JvdXA6IGdyb3VwIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtdGFiPlxyXG4gICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZmxhdFRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1ncm91cCBbbmdGb3JPZl09XCJyZXN1bHRzJCB8IGFzeW5jXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN0b3JlSXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7IGdyb3VwOiBncm91cCB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3N0b3JlSXRlbVRlbXBsYXRlIGxldC1ncm91cD1cImdyb3VwXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXJlc3VsdCBbbmdGb3JPZl09XCJncm91cC5yZXN1bHRzXCI+XHJcbiAgICAgIDxpZ28tc2VhcmNoLXJlc3VsdHMtaXRlbVxyXG4gICAgICAgIGlnb0xpc3RJdGVtXHJcbiAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgIFttYXBdPVwibWFwXCJcclxuICAgICAgICBbcmVzdWx0XT1cInJlc3VsdFwiXHJcbiAgICAgICAgW3Nob3dJY29uc109XCJzaG93SWNvbnNcIlxyXG4gICAgICAgIFt3aXRoWm9vbUJ1dHRvbl09XCJ3aXRoWm9vbUJ1dHRvblwiXHJcbiAgICAgICAgW2ZvY3VzZWRdPVwic3RvcmUuc3RhdGUuZ2V0KHJlc3VsdCkuZm9jdXNlZFwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInN0b3JlLnN0YXRlLmdldChyZXN1bHQpLnNlbGVjdGVkXCJcclxuICAgICAgICAoZm9jdXMpPVwicmVzdWx0Rm9jdXMuZW1pdChyZXN1bHQpXCJcclxuICAgICAgICAodW5mb2N1cyk9XCJyZXN1bHRVbmZvY3VzLmVtaXQocmVzdWx0KVwiXHJcbiAgICAgICAgKHNlbGVjdCk9XCJvblJlc3VsdFNlbGVjdChyZXN1bHQpXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJyZXN1bHRGb2N1cy5lbWl0KHJlc3VsdClcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInJlc3VsdFVuZm9jdXMuZW1pdChyZXN1bHQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIGlnb1NlYXJjaEl0ZW1Ub29sYmFyXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVNlYXJjaFRvb2xiYXJcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcmVzdWx0OiByZXN1bHQgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2lnby1zZWFyY2gtcmVzdWx0cy1pdGVtPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwibW9yZVJlc3VsdHMgbWF0LXR5cG9ncmFwaHlcIlxyXG4gICAgICAqbmdJZj1cImlzTW9yZVJlc3VsdHMoZ3JvdXApXCJcclxuICAgICAgKGNsaWNrKT1cImRpc3BsYXlNb3JlUmVzdWx0cyhncm91cClcIlxyXG4gICAgPlxyXG4gICAgICA8dT57eyAnaWdvLmdlby5zZWFyY2guZGlzcGxheU1vcmVSZXN1bHRzJyB8IHRyYW5zbGF0ZSB9fTwvdT5cclxuICAgIDwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lnby1saXN0PlxyXG4iXX0=
|