@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 { unByKey } from 'ol/Observable';
|
|
|
3
3
|
import OlDragBoxInteraction from 'ol/interaction/DragBox';
|
|
4
4
|
import { combineLatest } from 'rxjs';
|
|
5
5
|
import { debounceTime, map, skip } from 'rxjs/operators';
|
|
6
|
-
import { FeatureDataSource } from '../../../datasource';
|
|
6
|
+
import { FeatureDataSource } from '../../../datasource/shared/datasources';
|
|
7
7
|
import { VectorLayer } from '../../../layer/shared/layers/vector-layer';
|
|
8
8
|
import { ctrlKeyDown } from '../../../map/shared/map.utils';
|
|
9
9
|
import { FeatureMotion } from '../feature.enums';
|
|
@@ -381,4 +381,4 @@ export class FeatureStoreSelectionStrategy extends EntityStoreStrategy {
|
|
|
381
381
|
this.map.removeLayer(this.overlayStore.layer);
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sb0JBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFHNUUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBQy9ELFlBQVksT0FBTztRQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQWtDOUM7SUFqQ3RCOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDO0lBRWpCLHVCQUF1QixDQUEwQjtJQUVqRCw2QkFBNkIsQ0FBMEI7SUFFL0Q7O09BRUc7SUFDSyxRQUFRLENBQWU7SUFFdkIsTUFBTSxDQUFnQjtJQUU5Qjs7T0FFRztJQUNILElBQUks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SSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxXQUFXLENBQUM7WUFDckIsTUFBTSxFQUFFLEdBQUc7WUFDWCxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtZQUMvQixLQUFLLEVBQUUsU0FBUztZQUNoQixlQUFlLEVBQUUsS0FBSztZQUN0QixVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCB7IEV2ZW50c0tleSB9IGZyb20gJ29sL2V2ZW50cyc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiwgeyBEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcclxuaW1wb3J0IHsgRHJhZ0JveEV2ZW50IGFzIE9sRHJhZ0JveEV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBjdHJsS2V5RG93biB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwLnV0aWxzJztcclxuaW1wb3J0IHsgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uL2ZlYXR1cmUuZW51bXMnO1xyXG5pbXBvcnQge1xyXG4gIEZlYXR1cmUsXHJcbiAgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lPcHRpb25zXHJcbn0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uIGV4dGVuZHMgT2xEcmFnQm94SW50ZXJhY3Rpb24ge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgc3RyYXRlZ3kgc3luY2hyb25pemVzIGEgc3RvcmUgYW5kIGEgbGF5ZXIgc2VsZWN0ZWQgZW50aXRpZXMuXHJcbiAqIFRoZSBzdG9yZSA8LT4gbGF5ZXIgYmluZGluZyBpcyBhIHR3by13YXkgYmluZGluZy5cclxuICpcclxuICogSW4gbWFueSBjYXNlcywgYSBzaW5nbGUgc3RyYXRlZ3kgYm91bmQgdG8gbXVsdGlwbGUgc3RvcmVzXHJcbiAqIHdpbGwgeWllbGQgYmV0dGVyIHJlc3VsdHMgdGhhdCBtdWx0aXBsZSBzdHJhdGVnaWVzIHdpdGggZWFjaCB0aGVpclxyXG4gKiBvd24gc3RvcmUuIEluIHRoZSBsYXR0ZXIgc2NlbmFyaW8sIGEgY2xpY2sgb24gb3ZlcmxhcHBpbmcgZmVhdHVyZXNcclxuICogd291bGQgdHJpZ2dlciB0aGUgc3RyYXRlZ3kgb2YgZWFjaCBsYXllciBhbmQgdGhleSB3b3VsZCBjYW5jZWxcclxuICogZWFjaCBvdGhlciBhcyB3ZWxsIGFzIG1vdmUgdGhlIG1hcCB2aWV3IGFyb3VuZCBuZWVkbGVzc2x5LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogTGlzdGVuZXIgdG8gdGhlIG1hcCBjbGljayBldmVudCB0aGF0IGFsbG93cyBzZWxlY3RpbmcgYSBmZWF0dXJlXHJcbiAgICogYnkgY2xpY2tpbmcgb24gdGhlIG1hcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFwQ2xpY2tMaXN0ZW5lcjtcclxuXHJcbiAgcHJpdmF0ZSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjogT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XHJcblxyXG4gIHByaXZhdGUgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb25FbmRLZXk6IEV2ZW50c0tleSB8IEV2ZW50c0tleVtdO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gYWxsIHN0b3JlcyBzZWxlY3RlZCBlbnRpdGllc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBtb3Rpb246IEZlYXR1cmVNb3Rpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtYXAgdGhlIGxheWVycyBiZWxvbmcgdG9cclxuICAgKi9cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZmVhdHVyZSBzdG9yZSB0aGF0J2xsIGNvbnRhaW4gdGhlIHNlbGVjdGVkIGZlYXR1cmVzLiBJdCBoYXMgaXQncyBvd25cclxuICAgKiBsYXllciwgc2hhcmVkIGJ5IGFsbCB0aGUgc3RvcmVzIHRoaXMgc3RhcmV0Z3kgaXMgYm91bmQgdG8uXHJcbiAgICovXHJcbiAgZ2V0IG92ZXJsYXlTdG9yZSgpOiBGZWF0dXJlU3RvcmUge1xyXG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlTdG9yZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0b3JlOiBGZWF0dXJlU3RvcmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5zZXRNb3Rpb24ob3B0aW9ucy5tb3Rpb24pO1xyXG4gICAgdGhpcy5fb3ZlcmxheVN0b3JlID0gdGhpcy5jcmVhdGVPdmVybGF5U3RvcmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgdGhpcyBzdHJhdGVneSB0byBhIHN0b3JlIGFuZCBmb3JjZSB0aGlzIHN0cmF0ZWd5J3NcclxuICAgKiByZWFjdGl2YXRpb24gdG8gcHJvcGVybHkgc2V0dXAgd2F0Y2hlcnMuXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAvLyBGb3JjZSByZWFjdGl2YXRpb25cclxuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBmb3JjZSB0aGlzIHN0cmF0ZWd5J3NcclxuICAgKiByZWFjdGl2YXRpb24gdG8gcHJvcGVybHkgc2V0dXAgd2F0Y2hlcnMuXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0aGUgbW90aW9uIHRvIGFwcGx5IG9uIHNlbGVjdFxyXG4gICAqIEBwYXJhbSBtb3Rpb24gRmVhdHVyZSBtb3Rpb25cclxuICAgKi9cclxuICBzZXRNb3Rpb24obW90aW9uOiBGZWF0dXJlTW90aW9uKSB7XHJcbiAgICB0aGlzLm1vdGlvbiA9IG1vdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc2VsZWN0IGFsbCBlbnRpdGllcywgZnJvbSBhbGwgc3RvcmVzXHJcbiAgICovXHJcbiAgdW5zZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XHJcbiAgICAgIHN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IHNlbGVjdGVkOiBmYWxzZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIG92ZXJsYXlcclxuICAgKi9cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNvdXJjZS5vbC5jbGVhcigpO1xyXG4gICAgdGhpcy5vdmVybGF5U3RvcmUuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIHNlbGVjdGlvbiB3aXRob3V0IHJlbW92aW5nIHRoZSBzZWxlY3Rpb25cclxuICAgKiBvdmVybGF5LlxyXG4gICAqL1xyXG4gIGRlYWN0aXZhdGVTZWxlY3Rpb24oKSB7XHJcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBDbGljaygpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKTtcclxuICAgIHRoaXMudW53YXRjaEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBvdmVybGF5IGxheWVyLCBzZXR1cCB0aGUgbWFwIGNsaWNrIGxzaXRlbmVyIGFuZFxyXG4gICAqIHN0YXJ0IHdhdGNoaW5nIGZvciBzdG9yZXMgc2VsZWN0aW9uXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLmFkZE92ZXJsYXlMYXllcigpO1xyXG4gICAgdGhpcy5saXN0ZW5Ub01hcENsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmRyYWdCb3ggPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5hZGREcmFnQm94SW50ZXJhY3Rpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgb3ZlcmxheSBsYXllciwgcmVtb3ZlIHRoZSBtYXAgY2xpY2sgbHNpdGVuZXIgYW5kXHJcbiAgICogc3RvcCB3YXRjaGluZyBmb3Igc3RvcmVzIHNlbGVjdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlYWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLmRlYWN0aXZhdGVTZWxlY3Rpb24oKTtcclxuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUxheWVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBzaW5nbGUgb2JzZXJ2YWJsZSBvZiBhbGwgdGhlIHN0b3Jlcy4gV2l0aCBhIHNpbmdsZSBvYnNlcnZhYmxlLFxyXG4gICAqIGZlYXR1cmVzIGNhbiBiZSBhZGRlZCBhbGwgYXQgb25jZSB0byB0aGUgb3ZlcmxheSBsYXllciBhbmQgYSBzaW5nbGVcclxuICAgKiBtb3Rpb24gY2FuIGJlIHBlcmZvcm1lZC4gTXVsdGlwbGUgb2JzZXJ2YWJsZSB3b3VsZCBoYXZlXHJcbiAgICogYSBjYW5jZWxsaW5nIGVmZmVjdCBvbiBlYWNoIG90aGVyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hBbGwoKSB7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuXHJcbiAgICBjb25zdCBzdG9yZXMkID0gdGhpcy5zdG9yZXMubWFwKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XHJcbiAgICAgIHJldHVybiBzdG9yZS5zdGF0ZVZpZXdcclxuICAgICAgICAubWFueUJ5JCgocmVjb3JkOiBFbnRpdHlSZWNvcmQ8RmVhdHVyZT4pID0+IHtcclxuICAgICAgICAgIHJldHVybiByZWNvcmQuc3RhdGUuc2VsZWN0ZWQgPT09IHRydWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgocmVjb3JkczogRW50aXR5UmVjb3JkPEZlYXR1cmU+W10pID0+XHJcbiAgICAgICAgICAgIHJlY29yZHMubWFwKChyZWNvcmQpID0+IHJlY29yZC5lbnRpdHkpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdG9yZXMkJCA9IGNvbWJpbmVMYXRlc3Qoc3RvcmVzJClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUpLFxyXG4gICAgICAgIHNraXAoMSksIC8vIFNraXAgaW50aWFsIHNlbGVjdGlvblxyXG4gICAgICAgIG1hcCgoZmVhdHVyZXM6IEFycmF5PEZlYXR1cmVbXT4pID0+XHJcbiAgICAgICAgICBmZWF0dXJlcy5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiB0aGlzLm9uU2VsZWN0RnJvbVN0b3JlKGZlYXR1cmVzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBzZWxlY3Rpb24gaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVzJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhICdzaW5nbGVjbGljaycgbGlzdGVuZXIgdG8gdGhlIG1hcCB0aGF0J2xsIGFsbG93IHNlbGVjdGluZ1xyXG4gICAqIGZlYXR1cmVzIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXAuIFRoZSBzZWxlY3Rpb24gd2lsbCBiZSBwZXJmb3JtZWRcclxuICAgKiBvbmx5IG9uIHRoZSBsYXllcnMgYm91bmQgdG8gdGhpcyBzdHJhdGVneS5cclxuICAgKi9cclxuICBwcml2YXRlIGxpc3RlblRvTWFwQ2xpY2soKSB7XHJcbiAgICB0aGlzLm1hcENsaWNrTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcclxuICAgICAgJ3NpbmdsZWNsaWNrJyxcclxuICAgICAgKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICB0aGlzLm9uTWFwQ2xpY2soZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBtYXAgY2xpY2sgbGlzdGVuZXJcclxuICAgKi9cclxuICBwcml2YXRlIHVubGlzdGVuVG9NYXBDbGljaygpIHtcclxuICAgIHVuQnlLZXkodGhpcy5tYXBDbGlja0xpc3RlbmVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIG1hcCBjbGljaywgc2VsZWN0IGZlYXR1cmUgYXQgcGl4ZWxcclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25NYXBDbGljayhldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSB7XHJcbiAgICBjb25zdCBleGNsdXNpdmUgPSAhY3RybEtleURvd24oZXZlbnQpO1xyXG4gICAgY29uc3QgcmV2ZXJzZSA9ICFleGNsdXNpdmU7XHJcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gZXZlbnQubWFwLmdldEZlYXR1cmVzQXRQaXhlbChldmVudC5waXhlbCwge1xyXG4gICAgICBoaXRUb2xlcmFuY2U6IHRoaXMub3B0aW9ucy5oaXRUb2xlcmFuY2UgfHwgMCxcclxuICAgICAgbGF5ZXJGaWx0ZXI6IChvbExheWVyKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RvcmVPbExheWVyID0gdGhpcy5zdG9yZXMuZmluZCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmxheWVyPy5vbCA9PT0gb2xMYXllcjtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3RvcmVPbExheWVyICE9PSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pIGFzIE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xyXG4gICAgdGhpcy5vblNlbGVjdEZyb21NYXAob2xGZWF0dXJlcywgZXhjbHVzaXZlLCByZXZlcnNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIGRyYWcgYm94IGludGVyYWN0aW9uIGFuZCwgb24gZHJhZyBib3ggZW5kLCBzZWxlY3QgZmVhdHVyZXNcclxuICAgKi9cclxuICBwcml2YXRlIGFkZERyYWdCb3hJbnRlcmFjdGlvbigpIHtcclxuICAgIGxldCBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcclxuICAgIGNvbnN0IG9sSW50ZXJhY3Rpb25zID0gdGhpcy5tYXAub2wuZ2V0SW50ZXJhY3Rpb25zKCkuZ2V0QXJyYXkoKTtcclxuXHJcbiAgICAvLyBUaGVyZSBjYW4gb25seSBiZSBvbmUgZHJhZ2JveCBpbnRlcmFjdGlvbiwgc28gZmluZCB0aGUgY3VycmVudCBvbmUsIGlmIGFueVxyXG4gICAgLy8gRG9uJ3Qga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBkcmFnYm94IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudFxyXG4gICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gdGhpcyBzdGFydGVneSBpcyBkZWFjdGl2YXRlZFxyXG4gICAgZm9yIChjb25zdCBvbEludGVyYWN0aW9uIG9mIG9sSW50ZXJhY3Rpb25zKSB7XHJcbiAgICAgIGlmIChvbEludGVyYWN0aW9uIGluc3RhbmNlb2YgT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pIHtcclxuICAgICAgICBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IG9sSW50ZXJhY3Rpb247XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIElmIG5vIGRyYWcgYm94IGludGVyYWN0aW9uIGlzIGZvdW5kLCBjcmVhdGUgYSBuZXcgb25lIGFuZCBhZGQgaXQgdG8gdGhlIG1hcFxyXG4gICAgaWYgKG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBuZXcgT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24oe1xyXG4gICAgICAgIGNvbmRpdGlvbjogY3RybEtleURvd25cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubWFwLm9sLmFkZEludGVyYWN0aW9uKG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKTtcclxuICAgICAgdGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb25FbmRLZXkgPSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbi5vbihcclxuICAgICAgJ2JveGVuZCcsXHJcbiAgICAgIChldmVudDogRHJhZ0JveEV2ZW50KSA9PiB0aGlzLm9uRHJhZ0JveEVuZChldmVudClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgZHJhZyBib3ggaW50ZXJhY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZURyYWdCb3hJbnRlcmFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdW5CeUtleSh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gZHJhZ2JveCBlbmQsIHNlbGVjdCBmZWF0dXJlcyBpbiBkcmFnIGJveFxyXG4gICAqIEBwYXJhbSBldmVudCBPTCBNYXBCcm93c2VyUG9pbnRlckV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkRyYWdCb3hFbmQoZXZlbnQ6IE9sRHJhZ0JveEV2ZW50KSB7XHJcbiAgICBjb25zdCBleGNsdXNpdmUgPSAhY3RybEtleURvd24oZXZlbnQubWFwQnJvd3NlckV2ZW50KTtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBhbnk7XHJcbiAgICBjb25zdCBleHRlbnQgPSB0YXJnZXQuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKTtcclxuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSB0aGlzLnN0b3Jlcy5yZWR1Y2UoXHJcbiAgICAgIChhY2M6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLCBzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2xTb3VyY2UgPSBzdG9yZS5sYXllci5vbC5nZXRTb3VyY2UoKTtcclxuICAgICAgICBhY2MucHVzaCguLi5vbFNvdXJjZS5nZXRGZWF0dXJlc0luRXh0ZW50KGV4dGVudCkpO1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sXHJcbiAgICAgIFtdXHJcbiAgICApO1xyXG4gICAgdGhpcy5vblNlbGVjdEZyb21NYXAob2xGZWF0dXJlcywgZXhjbHVzaXZlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGZlYXR1cmVzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSBzdG9yZSwgYWRkXHJcbiAgICogdGhlbSB0byB0aGlzIHN0YXJ0ZWd5J3Mgb3ZlcmxheSBsYXllciAoc2VsZWN0IG9uIG1hcClcclxuICAgKiBAcGFyYW0gZmVhdHVyZXMgU3RvcmUgZmVhdHVyZXNcclxuICAgKi9cclxuICBwcml2YXRlIG9uU2VsZWN0RnJvbVN0b3JlKGZlYXR1cmVzOiBGZWF0dXJlW10pIHtcclxuICAgIGNvbnN0IG1vdGlvbiA9IHRoaXMubW90aW9uO1xyXG4gICAgY29uc3Qgb2xPdmVybGF5RmVhdHVyZXMgPSB0aGlzLm92ZXJsYXlTdG9yZS5sYXllci5vbFxyXG4gICAgICAuZ2V0U291cmNlKClcclxuICAgICAgLmdldEZlYXR1cmVzKCk7XHJcbiAgICBjb25zdCBvdmVybGF5RmVhdHVyZXNLZXlzID0gb2xPdmVybGF5RmVhdHVyZXMubWFwKFxyXG4gICAgICAob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IG9sRmVhdHVyZS5nZXRJZCgpXHJcbiAgICApO1xyXG4gICAgY29uc3QgZmVhdHVyZXNLZXlzID0gZmVhdHVyZXMubWFwKHRoaXMub3ZlcmxheVN0b3JlLmdldEtleSk7XHJcblxyXG4gICAgbGV0IGRvTW90aW9uO1xyXG4gICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBkb01vdGlvbiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9Nb3Rpb24gPVxyXG4gICAgICAgIG92ZXJsYXlGZWF0dXJlc0tleXMubGVuZ3RoICE9PSBmZWF0dXJlc0tleXMubGVuZ3RoIHx8XHJcbiAgICAgICAgIW92ZXJsYXlGZWF0dXJlc0tleXMuZXZlcnkoXHJcbiAgICAgICAgICAoa2V5OiBFbnRpdHlLZXkpID0+IGZlYXR1cmVzS2V5cy5pbmRleE9mKGtleSkgPj0gMFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vdmVybGF5U3RvcmUuc2V0TGF5ZXJGZWF0dXJlcyhcclxuICAgICAgZmVhdHVyZXMsXHJcbiAgICAgIGRvTW90aW9uID8gbW90aW9uIDogRmVhdHVyZU1vdGlvbi5Ob25lLFxyXG4gICAgICB0aGlzLm9wdGlvbnMudmlld1NjYWxlLFxyXG4gICAgICB0aGlzLm9wdGlvbnMuYXJlYVJhdGlvLFxyXG4gICAgICB0aGlzLm9wdGlvbnMuZ2V0RmVhdHVyZUlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgbWFwLCBhbHNvIHNlbGVjdCB0aGVtXHJcbiAgICogaW4gdGhlaXIgc3RvcmUuXHJcbiAgICogQHBhcmFtIG9sRmVhdHVyZXMgT0wgZmVhdHVyZSBvYmplY3RzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNlbGVjdEZyb21NYXAoXHJcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcclxuICAgIGV4Y2x1c2l2ZTogYm9vbGVhbixcclxuICAgIHJldmVyc2U6IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IGdyb3VwZWRGZWF0dXJlcyA9IHRoaXMuZ3JvdXBGZWF0dXJlc0J5U3RvcmUob2xGZWF0dXJlcyk7XHJcblxyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGdyb3VwZWRGZWF0dXJlcy5nZXQoc3RvcmUpO1xyXG4gICAgICBpZiAoZmVhdHVyZXMgPT09IHVuZGVmaW5lZCAmJiBleGNsdXNpdmUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsRmVhdHVyZXNGcm9tU3RvcmUoc3RvcmUpO1xyXG4gICAgICB9IGVsc2UgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSBmYWxzZSkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmdcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlLCBmZWF0dXJlcywgZXhjbHVzaXZlLCByZXZlcnNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3QgZmVhdHVyZXMgaW4gc3RvcmVcclxuICAgKiBAcGFyYW0gc3RvcmU6IEZlYXR1cmUgc3RvcmVcclxuICAgKiBAcGFyYW0gZmVhdHVyZXMgRmVhdHVyZXNcclxuICAgKi9cclxuICBwcml2YXRlIHNlbGVjdEZlYXR1cmVzRnJvbVN0b3JlKFxyXG4gICAgc3RvcmU6IEZlYXR1cmVTdG9yZSxcclxuICAgIGZlYXR1cmVzOiBGZWF0dXJlW10sXHJcbiAgICBleGNsdXNpdmU6IGJvb2xlYW4sXHJcbiAgICByZXZlcnNlOiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBpZiAocmV2ZXJzZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBzdG9yZS5zdGF0ZS5yZXZlcnNlTWFueShmZWF0dXJlcywgWydzZWxlY3RlZCddKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0b3JlLnN0YXRlLnVwZGF0ZU1hbnkoZmVhdHVyZXMsIHsgc2VsZWN0ZWQ6IHRydWUgfSwgZXhjbHVzaXZlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc2VsZWN0IGFsbCBmZWF0dXJlcyBmcm9tIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0b3JlOiBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bnNlbGVjdEFsbEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IHNlbGVjdGVkOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdG9yZSAtPiBmZWF0dXJlcyBtYXBwaW5nIGZyb20gYSBsaXN0XHJcbiAgICogb2YgT0wgc2VsZWN0ZWQgZmVhdHVyZXMuIE9MIGZlYXR1cmVzIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHN0b3JlXHJcbiAgICogdGhleSBhcmUgZnJvbS5cclxuICAgKiBAcGFyYW0gb2xGZWF0dXJlczogT0wgZmVhdHVyZSBvYmplY3RzXHJcbiAgICogQHJldHVybnMgU3RvcmUgLT4gZmVhdHVyZXMgbWFwcGluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ3JvdXBGZWF0dXJlc0J5U3RvcmUoXHJcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXVxyXG4gICk6IE1hcDxGZWF0dXJlU3RvcmUsIEZlYXR1cmVbXT4ge1xyXG4gICAgY29uc3QgZ3JvdXBlZEZlYXR1cmVzID0gbmV3IE1hcDxGZWF0dXJlU3RvcmUsIEZlYXR1cmVbXT4oKTtcclxuICAgIGlmIChvbEZlYXR1cmVzID09PSBudWxsIHx8IG9sRmVhdHVyZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZ3JvdXBlZEZlYXR1cmVzO1xyXG4gICAgfVxyXG5cclxuICAgIG9sRmVhdHVyZXMuZm9yRWFjaCgob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IHtcclxuICAgICAgY29uc3Qgc3RvcmUgPSBvbEZlYXR1cmUuZ2V0KCdfZmVhdHVyZVN0b3JlJyk7XHJcbiAgICAgIGlmIChzdG9yZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgZmVhdHVyZXMgPSBncm91cGVkRmVhdHVyZXMuZ2V0KHN0b3JlKTtcclxuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBmZWF0dXJlcyA9IFtdO1xyXG4gICAgICAgIGdyb3VwZWRGZWF0dXJlcy5zZXQoc3RvcmUsIGZlYXR1cmVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZmVhdHVyZSA9IHN0b3JlLmdldChvbEZlYXR1cmUuZ2V0SWQoKSk7XHJcbiAgICAgIGlmIChmZWF0dXJlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBmZWF0dXJlcy5wdXNoKGZlYXR1cmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXBlZEZlYXR1cmVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGFuIG92ZXJsYXkgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy5cclxuICAgKiBAcmV0dXJucyBPdmVybGF5IHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcclxuICAgIGNvbnN0IG92ZXJsYXlMYXllciA9IHRoaXMub3B0aW9ucy5sYXllclxyXG4gICAgICA/IHRoaXMub3B0aW9ucy5sYXllclxyXG4gICAgICA6IHRoaXMuY3JlYXRlT3ZlcmxheUxheWVyKCk7XHJcbiAgICByZXR1cm4gbmV3IEZlYXR1cmVTdG9yZShbXSwgeyBtYXA6IHRoaXMubWFwIH0pLmJpbmRMYXllcihvdmVybGF5TGF5ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGFuIG92ZXJsYXkgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy5cclxuICAgKiBAcmV0dXJucyBPdmVybGF5IGxheWVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5TGF5ZXIoKTogVmVjdG9yTGF5ZXIge1xyXG4gICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XHJcbiAgICAgIHpJbmRleDogMzAwLFxyXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgICBzdHlsZTogdW5kZWZpbmVkLFxyXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxyXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcclxuICAgICAgYnJvd3NhYmxlOiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgdGhlIG92ZXJsYXkgc3RvcmUncyBsYXllciB0byB0aGUgbWFwIHRvIGRpc3BsYXkgdGhlIHNlbGVjdGVkXHJcbiAgICogZmVhdHVyZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRPdmVybGF5TGF5ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIubWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBvdmVybGF5IGxheWVyIGZyb20gdGhlIG1hcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlT3ZlcmxheUxheWVyKCkge1xyXG4gICAgdGhpcy5vdmVybGF5U3RvcmUuc291cmNlLm9sLmNsZWFyKCk7XHJcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm92ZXJsYXlTdG9yZS5sYXllcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sb0JBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFHNUUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBQy9ELFlBQVksT0FBTztRQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQWtDOUM7SUFqQ3RCOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDO0lBRWpCLHVCQUF1QixDQUEwQjtJQUVqRCw2QkFBNkIsQ0FBMEI7SUFFL0Q7O09BRUc7SUFDSyxRQUFRLENBQWU7SUFFdkIsTUFBTSxDQUFnQjtJQUU5Qjs7T0FFRztJQUNILElBQUks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SSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxXQUFXLENBQUM7WUFDckIsTUFBTSxFQUFFLEdBQUc7WUFDWCxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtZQUMvQixLQUFLLEVBQUUsU0FBUztZQUNoQixlQUFlLEVBQUUsS0FBSztZQUN0QixVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCB7IEV2ZW50c0tleSB9IGZyb20gJ29sL2V2ZW50cyc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiwgeyBEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcclxuaW1wb3J0IHsgRHJhZ0JveEV2ZW50IGFzIE9sRHJhZ0JveEV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgY3RybEtleURvd24gfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24gfSBmcm9tICcuLi9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5T3B0aW9uc1xyXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbiBleHRlbmRzIE9sRHJhZ0JveEludGVyYWN0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IHN5bmNocm9uaXplcyBhIHN0b3JlIGFuZCBhIGxheWVyIHNlbGVjdGVkIGVudGl0aWVzLlxyXG4gKiBUaGUgc3RvcmUgPC0+IGxheWVyIGJpbmRpbmcgaXMgYSB0d28td2F5IGJpbmRpbmcuXHJcbiAqXHJcbiAqIEluIG1hbnkgY2FzZXMsIGEgc2luZ2xlIHN0cmF0ZWd5IGJvdW5kIHRvIG11bHRpcGxlIHN0b3Jlc1xyXG4gKiB3aWxsIHlpZWxkIGJldHRlciByZXN1bHRzIHRoYXQgbXVsdGlwbGUgc3RyYXRlZ2llcyB3aXRoIGVhY2ggdGhlaXJcclxuICogb3duIHN0b3JlLiBJbiB0aGUgbGF0dGVyIHNjZW5hcmlvLCBhIGNsaWNrIG9uIG92ZXJsYXBwaW5nIGZlYXR1cmVzXHJcbiAqIHdvdWxkIHRyaWdnZXIgdGhlIHN0cmF0ZWd5IG9mIGVhY2ggbGF5ZXIgYW5kIHRoZXkgd291bGQgY2FuY2VsXHJcbiAqIGVhY2ggb3RoZXIgYXMgd2VsbCBhcyBtb3ZlIHRoZSBtYXAgdmlldyBhcm91bmQgbmVlZGxlc3NseS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBtYXAgY2xpY2sgZXZlbnQgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIGEgZmVhdHVyZVxyXG4gICAqIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIG1hcENsaWNrTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb246IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uO1xyXG5cclxuICBwcml2YXRlIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5OiBFdmVudHNLZXkgfCBFdmVudHNLZXlbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIGFsbCBzdG9yZXMgc2VsZWN0ZWQgZW50aXRpZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlcyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgbW90aW9uOiBGZWF0dXJlTW90aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbWFwIHRoZSBsYXllcnMgYmVsb25nIHRvXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGZlYXR1cmUgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy4gSXQgaGFzIGl0J3Mgb3duXHJcbiAgICogbGF5ZXIsIHNoYXJlZCBieSBhbGwgdGhlIHN0b3JlcyB0aGlzIHN0YXJldGd5IGlzIGJvdW5kIHRvLlxyXG4gICAqL1xyXG4gIGdldCBvdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcclxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3RvcmU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX292ZXJsYXlTdG9yZTogRmVhdHVyZVN0b3JlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lPcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIHRoaXMuc2V0TW90aW9uKG9wdGlvbnMubW90aW9uKTtcclxuICAgIHRoaXMuX292ZXJsYXlTdG9yZSA9IHRoaXMuY3JlYXRlT3ZlcmxheVN0b3JlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIC8vIEZvcmNlIHJlYWN0aXZhdGlvblxyXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGhlIG1vdGlvbiB0byBhcHBseSBvbiBzZWxlY3RcclxuICAgKiBAcGFyYW0gbW90aW9uIEZlYXR1cmUgbW90aW9uXHJcbiAgICovXHJcbiAgc2V0TW90aW9uKG1vdGlvbjogRmVhdHVyZU1vdGlvbikge1xyXG4gICAgdGhpcy5tb3Rpb24gPSBtb3Rpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZW50aXRpZXMsIGZyb20gYWxsIHN0b3Jlc1xyXG4gICAqL1xyXG4gIHVuc2VsZWN0QWxsKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBvdmVybGF5XHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zb3VyY2Uub2wuY2xlYXIoKTtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIHRoZSBzZWxlY3Rpb24gd2l0aG91dCByZW1vdmluZyB0aGUgc2VsZWN0aW9uXHJcbiAgICogb3ZlcmxheS5cclxuICAgKi9cclxuICBkZWFjdGl2YXRlU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy51bmxpc3RlblRvTWFwQ2xpY2soKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBsYXllciwgc2V0dXAgdGhlIG1hcCBjbGljayBsc2l0ZW5lciBhbmRcclxuICAgKiBzdGFydCB3YXRjaGluZyBmb3Igc3RvcmVzIHNlbGVjdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5hZGRPdmVybGF5TGF5ZXIoKTtcclxuICAgIHRoaXMubGlzdGVuVG9NYXBDbGljaygpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5kcmFnQm94ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuYWRkRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIG92ZXJsYXkgbGF5ZXIsIHJlbW92ZSB0aGUgbWFwIGNsaWNrIGxzaXRlbmVyIGFuZFxyXG4gICAqIHN0b3Agd2F0Y2hpbmcgZm9yIHN0b3JlcyBzZWxlY3Rpb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5kZWFjdGl2YXRlU2VsZWN0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlMYXllcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc2luZ2xlIG9ic2VydmFibGUgb2YgYWxsIHRoZSBzdG9yZXMuIFdpdGggYSBzaW5nbGUgb2JzZXJ2YWJsZSxcclxuICAgKiBmZWF0dXJlcyBjYW4gYmUgYWRkZWQgYWxsIGF0IG9uY2UgdG8gdGhlIG92ZXJsYXkgbGF5ZXIgYW5kIGEgc2luZ2xlXHJcbiAgICogbW90aW9uIGNhbiBiZSBwZXJmb3JtZWQuIE11bHRpcGxlIG9ic2VydmFibGUgd291bGQgaGF2ZVxyXG4gICAqIGEgY2FuY2VsbGluZyBlZmZlY3Qgb24gZWFjaCBvdGhlci5cclxuICAgKi9cclxuICBwcml2YXRlIHdhdGNoQWxsKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcblxyXG4gICAgY29uc3Qgc3RvcmVzJCA9IHRoaXMuc3RvcmVzLm1hcCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICByZXR1cm4gc3RvcmUuc3RhdGVWaWV3XHJcbiAgICAgICAgLm1hbnlCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPEZlYXR1cmU+KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlY29yZHM6IEVudGl0eVJlY29yZDxGZWF0dXJlPltdKSA9PlxyXG4gICAgICAgICAgICByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQuZW50aXR5KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3RvcmVzJCQgPSBjb21iaW5lTGF0ZXN0KHN0b3JlcyQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1KSxcclxuICAgICAgICBza2lwKDEpLCAvLyBTa2lwIGludGlhbCBzZWxlY3Rpb25cclxuICAgICAgICBtYXAoKGZlYXR1cmVzOiBBcnJheTxGZWF0dXJlW10+KSA9PlxyXG4gICAgICAgICAgZmVhdHVyZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4gdGhpcy5vblNlbGVjdEZyb21TdG9yZShmZWF0dXJlcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3Igc2VsZWN0aW9uIGluIGFsbCBzdG9yZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzJCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSAnc2luZ2xlY2xpY2snIGxpc3RlbmVyIHRvIHRoZSBtYXAgdGhhdCdsbCBhbGxvdyBzZWxlY3RpbmdcclxuICAgKiBmZWF0dXJlcyBieSBjbGlja2luZyBvbiB0aGUgbWFwLiBUaGUgc2VsZWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkXHJcbiAgICogb25seSBvbiB0aGUgbGF5ZXJzIGJvdW5kIHRvIHRoaXMgc3RyYXRlZ3kuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub01hcENsaWNrKCkge1xyXG4gICAgdGhpcy5tYXBDbGlja0xpc3RlbmVyID0gdGhpcy5tYXAub2wub24oXHJcbiAgICAgICdzaW5nbGVjbGljaycsXHJcbiAgICAgIChldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbk1hcENsaWNrKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgbWFwIGNsaWNrIGxpc3RlbmVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmxpc3RlblRvTWFwQ2xpY2soKSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMubWFwQ2xpY2tMaXN0ZW5lcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtYXAgY2xpY2ssIHNlbGVjdCBmZWF0dXJlIGF0IHBpeGVsXHJcbiAgICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWFwQ2xpY2soZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pikge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50KTtcclxuICAgIGNvbnN0IHJldmVyc2UgPSAhZXhjbHVzaXZlO1xyXG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IGV2ZW50Lm1hcC5nZXRGZWF0dXJlc0F0UGl4ZWwoZXZlbnQucGl4ZWwsIHtcclxuICAgICAgaGl0VG9sZXJhbmNlOiB0aGlzLm9wdGlvbnMuaGl0VG9sZXJhbmNlIHx8IDAsXHJcbiAgICAgIGxheWVyRmlsdGVyOiAob2xMYXllcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JlT2xMYXllciA9IHRoaXMuc3RvcmVzLmZpbmQoKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdG9yZS5sYXllcj8ub2wgPT09IG9sTGF5ZXI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlT2xMYXllciAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9KSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBkcmFnIGJveCBpbnRlcmFjdGlvbiBhbmQsIG9uIGRyYWcgYm94IGVuZCwgc2VsZWN0IGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGREcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBsZXQgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XHJcbiAgICBjb25zdCBvbEludGVyYWN0aW9ucyA9IHRoaXMubWFwLm9sLmdldEludGVyYWN0aW9ucygpLmdldEFycmF5KCk7XHJcblxyXG4gICAgLy8gVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRyYWdib3ggaW50ZXJhY3Rpb24sIHNvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCBpZiBhbnlcclxuICAgIC8vIERvbid0IGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgZHJhZ2JveCBiZWNhdXNlIHdlIGRvbid0IHdhbnRcclxuICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIHRoaXMgc3RhcnRlZ3kgaXMgZGVhY3RpdmF0ZWRcclxuICAgIGZvciAoY29uc3Qgb2xJbnRlcmFjdGlvbiBvZiBvbEludGVyYWN0aW9ucykge1xyXG4gICAgICBpZiAob2xJbnRlcmFjdGlvbiBpbnN0YW5jZW9mIE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbEludGVyYWN0aW9uO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBJZiBubyBkcmFnIGJveCBpbnRlcmFjdGlvbiBpcyBmb3VuZCwgY3JlYXRlIGEgbmV3IG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBtYXBcclxuICAgIGlmIChvbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gbmV3IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKHtcclxuICAgICAgICBjb25kaXRpb246IGN0cmxLZXlEb3duXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihvbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XHJcbiAgICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ID0gb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICdib3hlbmQnLFxyXG4gICAgICAoZXZlbnQ6IERyYWdCb3hFdmVudCkgPT4gdGhpcy5vbkRyYWdCb3hFbmQoZXZlbnQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGRyYWcgYm94IGludGVyYWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHVuQnlLZXkodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGRyYWdib3ggZW5kLCBzZWxlY3QgZmVhdHVyZXMgaW4gZHJhZyBib3hcclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25EcmFnQm94RW5kKGV2ZW50OiBPbERyYWdCb3hFdmVudCkge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50Lm1hcEJyb3dzZXJFdmVudCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgY29uc3QgZXh0ZW50ID0gdGFyZ2V0LmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gdGhpcy5zdG9yZXMucmVkdWNlKFxyXG4gICAgICAoYWNjOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSwgc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9sU291cmNlID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCk7XHJcbiAgICAgICAgYWNjLnB1c2goLi4ub2xTb3VyY2UuZ2V0RmVhdHVyZXNJbkV4dGVudChleHRlbnQpKTtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICB9LFxyXG4gICAgICBbXVxyXG4gICAgKTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc3RvcmUsIGFkZFxyXG4gICAqIHRoZW0gdG8gdGhpcyBzdGFydGVneSdzIG92ZXJsYXkgbGF5ZXIgKHNlbGVjdCBvbiBtYXApXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNlbGVjdEZyb21TdG9yZShmZWF0dXJlczogRmVhdHVyZVtdKSB7XHJcbiAgICBjb25zdCBtb3Rpb24gPSB0aGlzLm1vdGlvbjtcclxuICAgIGNvbnN0IG9sT3ZlcmxheUZlYXR1cmVzID0gdGhpcy5vdmVybGF5U3RvcmUubGF5ZXIub2xcclxuICAgICAgLmdldFNvdXJjZSgpXHJcbiAgICAgIC5nZXRGZWF0dXJlcygpO1xyXG4gICAgY29uc3Qgb3ZlcmxheUZlYXR1cmVzS2V5cyA9IG9sT3ZlcmxheUZlYXR1cmVzLm1hcChcclxuICAgICAgKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBvbEZlYXR1cmUuZ2V0SWQoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZlYXR1cmVzS2V5cyA9IGZlYXR1cmVzLm1hcCh0aGlzLm92ZXJsYXlTdG9yZS5nZXRLZXkpO1xyXG5cclxuICAgIGxldCBkb01vdGlvbjtcclxuICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgZG9Nb3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvTW90aW9uID1cclxuICAgICAgICBvdmVybGF5RmVhdHVyZXNLZXlzLmxlbmd0aCAhPT0gZmVhdHVyZXNLZXlzLmxlbmd0aCB8fFxyXG4gICAgICAgICFvdmVybGF5RmVhdHVyZXNLZXlzLmV2ZXJ5KFxyXG4gICAgICAgICAgKGtleTogRW50aXR5S2V5KSA9PiBmZWF0dXJlc0tleXMuaW5kZXhPZihrZXkpID49IDBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNldExheWVyRmVhdHVyZXMoXHJcbiAgICAgIGZlYXR1cmVzLFxyXG4gICAgICBkb01vdGlvbiA/IG1vdGlvbiA6IEZlYXR1cmVNb3Rpb24uTm9uZSxcclxuICAgICAgdGhpcy5vcHRpb25zLnZpZXdTY2FsZSxcclxuICAgICAgdGhpcy5vcHRpb25zLmFyZWFSYXRpbyxcclxuICAgICAgdGhpcy5vcHRpb25zLmdldEZlYXR1cmVJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZmVhdHVyZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIG1hcCwgYWxzbyBzZWxlY3QgdGhlbVxyXG4gICAqIGluIHRoZWlyIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBvbEZlYXR1cmVzIE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tTWFwKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXHJcbiAgICBleGNsdXNpdmU6IGJvb2xlYW4sXHJcbiAgICByZXZlcnNlOiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCBncm91cGVkRmVhdHVyZXMgPSB0aGlzLmdyb3VwRmVhdHVyZXNCeVN0b3JlKG9sRmVhdHVyZXMpO1xyXG5cclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgY29uc3QgZmVhdHVyZXMgPSBncm91cGVkRmVhdHVyZXMuZ2V0KHN0b3JlKTtcclxuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEFsbEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlKTtcclxuICAgICAgfSBlbHNlIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkICYmIGV4Y2x1c2l2ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShzdG9yZSwgZmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IGZlYXR1cmVzIGluIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0b3JlOiBGZWF0dXJlIHN0b3JlXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIEZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShcclxuICAgIHN0b3JlOiBGZWF0dXJlU3RvcmUsXHJcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdLFxyXG4gICAgZXhjbHVzaXZlOiBib29sZWFuLFxyXG4gICAgcmV2ZXJzZTogYm9vbGVhblxyXG4gICkge1xyXG4gICAgaWYgKHJldmVyc2UgPT09IHRydWUpIHtcclxuICAgICAgc3RvcmUuc3RhdGUucmV2ZXJzZU1hbnkoZmVhdHVyZXMsIFsnc2VsZWN0ZWQnXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGZlYXR1cmVzLCB7IHNlbGVjdGVkOiB0cnVlIH0sIGV4Y2x1c2l2ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZmVhdHVyZXMgZnJvbSBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdG9yZTogRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxGZWF0dXJlc0Zyb21TdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RvcmUgLT4gZmVhdHVyZXMgbWFwcGluZyBmcm9tIGEgbGlzdFxyXG4gICAqIG9mIE9MIHNlbGVjdGVkIGZlYXR1cmVzLiBPTCBmZWF0dXJlcyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdG9yZVxyXG4gICAqIHRoZXkgYXJlIGZyb20uXHJcbiAgICogQHBhcmFtIG9sRmVhdHVyZXM6IE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFN0b3JlIC0+IGZlYXR1cmVzIG1hcHBpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdyb3VwRmVhdHVyZXNCeVN0b3JlKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W11cclxuICApOiBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+IHtcclxuICAgIGNvbnN0IGdyb3VwZWRGZWF0dXJlcyA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+KCk7XHJcbiAgICBpZiAob2xGZWF0dXJlcyA9PT0gbnVsbCB8fCBvbEZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICAgIH1cclxuXHJcbiAgICBvbEZlYXR1cmVzLmZvckVhY2goKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3JlID0gb2xGZWF0dXJlLmdldCgnX2ZlYXR1cmVTdG9yZScpO1xyXG4gICAgICBpZiAoc3RvcmUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGZlYXR1cmVzID0gZ3JvdXBlZEZlYXR1cmVzLmdldChzdG9yZSk7XHJcbiAgICAgIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMgPSBbXTtcclxuICAgICAgICBncm91cGVkRmVhdHVyZXMuc2V0KHN0b3JlLCBmZWF0dXJlcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBzdG9yZS5nZXQob2xGZWF0dXJlLmdldElkKCkpO1xyXG4gICAgICBpZiAoZmVhdHVyZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMucHVzaChmZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheVN0b3JlKCk6IEZlYXR1cmVTdG9yZSB7XHJcbiAgICBjb25zdCBvdmVybGF5TGF5ZXIgPSB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgPyB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgOiB0aGlzLmNyZWF0ZU92ZXJsYXlMYXllcigpO1xyXG4gICAgcmV0dXJuIG5ldyBGZWF0dXJlU3RvcmUoW10sIHsgbWFwOiB0aGlzLm1hcCB9KS5iaW5kTGF5ZXIob3ZlcmxheUxheWVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBsYXllclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUxheWVyKCk6IFZlY3RvckxheWVyIHtcclxuICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICB6SW5kZXg6IDMwMCxcclxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcclxuICAgICAgc3R5bGU6IHVuZGVmaW5lZCxcclxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgIGJyb3dzYWJsZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBvdmVybGF5IHN0b3JlJ3MgbGF5ZXIgdG8gdGhlIG1hcCB0byBkaXNwbGF5IHRoZSBzZWxlY3RlZFxyXG4gICAqIGZlYXR1cmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkT3ZlcmxheUxheWVyKCkge1xyXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyLm1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLmFkZExheWVyKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgb3ZlcmxheSBsYXllciBmcm9tIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlMYXllcigpIHtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNvdXJjZS5vbC5jbGVhcigpO1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -50,31 +50,6 @@ import { TimeFilterItemComponent } from './time-filter-item/time-filter-item.com
|
|
|
50
50
|
import { TimeFilterListBindingDirective } from './time-filter-list/time-filter-list-binding.directive';
|
|
51
51
|
import { TimeFilterListComponent } from './time-filter-list/time-filter-list.component';
|
|
52
52
|
import * as i0 from "@angular/core";
|
|
53
|
-
import * as i1 from "@angular/common";
|
|
54
|
-
import * as i2 from "@angular/material/icon";
|
|
55
|
-
import * as i3 from "@angular/material/button";
|
|
56
|
-
import * as i4 from "@angular/material/tooltip";
|
|
57
|
-
import * as i5 from "@igo2/common";
|
|
58
|
-
import * as i6 from "@angular/material/badge";
|
|
59
|
-
import * as i7 from "@ngx-translate/core";
|
|
60
|
-
import * as i8 from "@angular/material/list";
|
|
61
|
-
import * as i9 from "../layer/layer-legend/layer-legend.component";
|
|
62
|
-
import * as i10 from "@angular/material/autocomplete";
|
|
63
|
-
import * as i11 from "@angular/material/core";
|
|
64
|
-
import * as i12 from "@angular/material/checkbox";
|
|
65
|
-
import * as i13 from "@angular/material/form-field";
|
|
66
|
-
import * as i14 from "@angular/material/input";
|
|
67
|
-
import * as i15 from "@angular/material/select";
|
|
68
|
-
import * as i16 from "@angular/forms";
|
|
69
|
-
import * as i17 from "@angular/material/radio";
|
|
70
|
-
import * as i18 from "@angular/material/button-toggle";
|
|
71
|
-
import * as i19 from "@angular/material/divider";
|
|
72
|
-
import * as i20 from "@angular/material/tabs";
|
|
73
|
-
import * as i21 from "@angular/material/table";
|
|
74
|
-
import * as i22 from "@angular/material/tree";
|
|
75
|
-
import * as i23 from "@angular/material/slide-toggle";
|
|
76
|
-
import * as i24 from "../geometry/geometry-form-field/geometry-form-field-input.component";
|
|
77
|
-
import * as i25 from "@angular/material/datepicker";
|
|
78
53
|
export class IgoFilterModule {
|
|
79
54
|
static forRoot() {
|
|
80
55
|
return {
|
|
@@ -87,9 +62,76 @@ export class IgoFilterModule {
|
|
|
87
62
|
]
|
|
88
63
|
};
|
|
89
64
|
}
|
|
90
|
-
static ɵfac =
|
|
91
|
-
static ɵmod =
|
|
92
|
-
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
66
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: IgoFilterModule, declarations: [FilterableDataSourcePipe,
|
|
67
|
+
TimeFilterButtonComponent,
|
|
68
|
+
TimeFilterFormComponent,
|
|
69
|
+
TimeFilterItemComponent,
|
|
70
|
+
TimeFilterListComponent,
|
|
71
|
+
TimeFilterListBindingDirective,
|
|
72
|
+
OgcFilterFormComponent,
|
|
73
|
+
OgcFilterButtonComponent,
|
|
74
|
+
OgcFilterSelectionComponent,
|
|
75
|
+
OgcFilterableFormComponent,
|
|
76
|
+
OgcFilterableItemComponent,
|
|
77
|
+
OgcFilterableListComponent,
|
|
78
|
+
OgcFilterableListBindingDirective,
|
|
79
|
+
SpatialFilterTypeComponent,
|
|
80
|
+
SpatialFilterListComponent,
|
|
81
|
+
SpatialFilterItemComponent,
|
|
82
|
+
OgcFilterTimeComponent,
|
|
83
|
+
OgcFilterTimeSliderComponent], imports: [CommonModule,
|
|
84
|
+
FormsModule,
|
|
85
|
+
ReactiveFormsModule,
|
|
86
|
+
MatAutocompleteModule,
|
|
87
|
+
MatIconModule,
|
|
88
|
+
MatButtonModule,
|
|
89
|
+
MatTabsModule,
|
|
90
|
+
MatRadioModule,
|
|
91
|
+
MatMenuModule,
|
|
92
|
+
MatTableModule,
|
|
93
|
+
MatTreeModule,
|
|
94
|
+
MatButtonToggleModule,
|
|
95
|
+
MatCheckboxModule,
|
|
96
|
+
MatSliderModule,
|
|
97
|
+
MatSlideToggleModule,
|
|
98
|
+
MatFormFieldModule,
|
|
99
|
+
MatInputModule,
|
|
100
|
+
MatOptionModule,
|
|
101
|
+
MatSelectModule,
|
|
102
|
+
MatListModule,
|
|
103
|
+
MatTooltipModule,
|
|
104
|
+
MatDatepickerModule,
|
|
105
|
+
MatNativeDateModule,
|
|
106
|
+
MatDatetimepickerModule,
|
|
107
|
+
MatNativeDatetimeModule,
|
|
108
|
+
IgoLanguageModule,
|
|
109
|
+
IgoLayerModule,
|
|
110
|
+
IgoCollapsibleModule,
|
|
111
|
+
IgoListModule,
|
|
112
|
+
IgoEntityModule,
|
|
113
|
+
IgoDOMModule,
|
|
114
|
+
IgoKeyValueModule,
|
|
115
|
+
IgoGeometryModule,
|
|
116
|
+
MatBadgeModule], exports: [FilterableDataSourcePipe,
|
|
117
|
+
TimeFilterButtonComponent,
|
|
118
|
+
TimeFilterFormComponent,
|
|
119
|
+
TimeFilterItemComponent,
|
|
120
|
+
TimeFilterListComponent,
|
|
121
|
+
TimeFilterListBindingDirective,
|
|
122
|
+
OgcFilterFormComponent,
|
|
123
|
+
OgcFilterButtonComponent,
|
|
124
|
+
OgcFilterSelectionComponent,
|
|
125
|
+
OgcFilterableFormComponent,
|
|
126
|
+
OgcFilterableItemComponent,
|
|
127
|
+
OgcFilterableListComponent,
|
|
128
|
+
OgcFilterableListBindingDirective,
|
|
129
|
+
SpatialFilterTypeComponent,
|
|
130
|
+
SpatialFilterListComponent,
|
|
131
|
+
SpatialFilterItemComponent,
|
|
132
|
+
OgcFilterTimeComponent,
|
|
133
|
+
OgcFilterTimeSliderComponent] });
|
|
134
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFilterModule, providers: [
|
|
93
135
|
TimeFilterService,
|
|
94
136
|
OGCFilterService,
|
|
95
137
|
OGCFilterTimeService,
|
|
@@ -129,172 +171,91 @@ export class IgoFilterModule {
|
|
|
129
171
|
IgoGeometryModule,
|
|
130
172
|
MatBadgeModule] });
|
|
131
173
|
}
|
|
132
|
-
(
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoFilterModule, { declarations: [FilterableDataSourcePipe,
|
|
220
|
-
TimeFilterButtonComponent,
|
|
221
|
-
TimeFilterFormComponent,
|
|
222
|
-
TimeFilterItemComponent,
|
|
223
|
-
TimeFilterListComponent,
|
|
224
|
-
TimeFilterListBindingDirective,
|
|
225
|
-
OgcFilterFormComponent,
|
|
226
|
-
OgcFilterButtonComponent,
|
|
227
|
-
OgcFilterSelectionComponent,
|
|
228
|
-
OgcFilterableFormComponent,
|
|
229
|
-
OgcFilterableItemComponent,
|
|
230
|
-
OgcFilterableListComponent,
|
|
231
|
-
OgcFilterableListBindingDirective,
|
|
232
|
-
SpatialFilterTypeComponent,
|
|
233
|
-
SpatialFilterListComponent,
|
|
234
|
-
SpatialFilterItemComponent,
|
|
235
|
-
OgcFilterTimeComponent,
|
|
236
|
-
OgcFilterTimeSliderComponent], imports: [CommonModule,
|
|
237
|
-
FormsModule,
|
|
238
|
-
ReactiveFormsModule,
|
|
239
|
-
MatAutocompleteModule,
|
|
240
|
-
MatIconModule,
|
|
241
|
-
MatButtonModule,
|
|
242
|
-
MatTabsModule,
|
|
243
|
-
MatRadioModule,
|
|
244
|
-
MatMenuModule,
|
|
245
|
-
MatTableModule,
|
|
246
|
-
MatTreeModule,
|
|
247
|
-
MatButtonToggleModule,
|
|
248
|
-
MatCheckboxModule,
|
|
249
|
-
MatSliderModule,
|
|
250
|
-
MatSlideToggleModule,
|
|
251
|
-
MatFormFieldModule,
|
|
252
|
-
MatInputModule,
|
|
253
|
-
MatOptionModule,
|
|
254
|
-
MatSelectModule,
|
|
255
|
-
MatListModule,
|
|
256
|
-
MatTooltipModule,
|
|
257
|
-
MatDatepickerModule,
|
|
258
|
-
MatNativeDateModule,
|
|
259
|
-
MatDatetimepickerModule,
|
|
260
|
-
MatNativeDatetimeModule,
|
|
261
|
-
IgoLanguageModule,
|
|
262
|
-
IgoLayerModule,
|
|
263
|
-
IgoCollapsibleModule,
|
|
264
|
-
IgoListModule,
|
|
265
|
-
IgoEntityModule,
|
|
266
|
-
IgoDOMModule,
|
|
267
|
-
IgoKeyValueModule,
|
|
268
|
-
IgoGeometryModule,
|
|
269
|
-
MatBadgeModule], exports: [FilterableDataSourcePipe,
|
|
270
|
-
TimeFilterButtonComponent,
|
|
271
|
-
TimeFilterFormComponent,
|
|
272
|
-
TimeFilterItemComponent,
|
|
273
|
-
TimeFilterListComponent,
|
|
274
|
-
TimeFilterListBindingDirective,
|
|
275
|
-
OgcFilterFormComponent,
|
|
276
|
-
OgcFilterButtonComponent,
|
|
277
|
-
OgcFilterSelectionComponent,
|
|
278
|
-
OgcFilterableFormComponent,
|
|
279
|
-
OgcFilterableItemComponent,
|
|
280
|
-
OgcFilterableListComponent,
|
|
281
|
-
OgcFilterableListBindingDirective,
|
|
282
|
-
SpatialFilterTypeComponent,
|
|
283
|
-
SpatialFilterListComponent,
|
|
284
|
-
SpatialFilterItemComponent,
|
|
285
|
-
OgcFilterTimeComponent,
|
|
286
|
-
OgcFilterTimeSliderComponent] }); })();
|
|
287
|
-
i0.ɵɵsetComponentScope(TimeFilterButtonComponent, [i1.NgIf, i2.MatIcon, i3.MatIconButton, i4.MatTooltip, i5.ListItemDirective, i6.MatBadge, TimeFilterItemComponent], [i7.TranslatePipe]);
|
|
288
|
-
i0.ɵɵsetComponentScope(TimeFilterItemComponent, [i1.NgClass, i1.NgIf, i1.NgStyle, i2.MatIcon, i3.MatIconButton, i8.MatListItem, i8.MatListItemIcon, i8.MatListItemTitle, i8.MatListItemMeta, i4.MatTooltip, i9.LayerLegendComponent, i5.CollapseDirective, TimeFilterFormComponent], [i1.AsyncPipe, i7.TranslatePipe]);
|
|
289
|
-
i0.ɵɵsetComponentScope(TimeFilterListComponent, [i1.NgForOf, i5.ListItemDirective, i5.ListComponent, TimeFilterItemComponent], [FilterableDataSourcePipe]);
|
|
290
|
-
i0.ɵɵsetComponentScope(OgcFilterFormComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i10.MatAutocomplete, i11.MatOption, i10.MatAutocompleteTrigger, i2.MatIcon, i3.MatIconButton, i12.MatCheckbox, i13.MatFormField, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, OgcFilterTimeComponent], [i1.AsyncPipe, i7.TranslatePipe, i5.KeyValuePipe]);
|
|
291
|
-
i0.ɵɵsetComponentScope(OgcFilterButtonComponent, [i1.NgIf, i2.MatIcon, i3.MatIconButton, i4.MatTooltip, i5.ListItemDirective, i6.MatBadge, OgcFilterableItemComponent], [i7.TranslatePipe]);
|
|
292
|
-
i0.ɵɵsetComponentScope(OgcFilterSelectionComponent, [i1.NgForOf, i1.NgIf, i1.NgStyle, i16.ɵNgNoValidate, i16.DefaultValueAccessor, i16.NgControlStatus, i16.NgControlStatusGroup, i16.NgModel, i16.FormGroupDirective, i16.FormControlName, i10.MatAutocomplete, i11.MatOption, i10.MatAutocompleteTrigger, i2.MatIcon, i17.MatRadioGroup, i17.MatRadioButton, i18.MatButtonToggleGroup, i18.MatButtonToggle, i12.MatCheckbox, i13.MatFormField, i14.MatInput, i15.MatSelect, i19.MatDivider, i4.MatTooltip, OgcFilterTimeComponent], [i1.AsyncPipe, i7.TranslatePipe]);
|
|
293
|
-
i0.ɵɵsetComponentScope(OgcFilterableFormComponent, [i1.NgForOf, i1.NgIf, i5.ListItemDirective, OgcFilterFormComponent,
|
|
294
|
-
OgcFilterSelectionComponent], []);
|
|
295
|
-
i0.ɵɵsetComponentScope(OgcFilterableItemComponent, [i1.NgClass, i1.NgIf, i1.NgStyle, i16.NgControlStatus, i16.NgModel, i2.MatIcon, i3.MatIconButton, i12.MatCheckbox, i8.MatListItem, i8.MatListItemIcon, i19.MatDivider, i8.MatListItemTitle, i8.MatListItemMeta, i4.MatTooltip, i9.LayerLegendComponent, i5.CollapseDirective, OgcFilterableFormComponent], [i1.AsyncPipe, i7.TranslatePipe]);
|
|
296
|
-
i0.ɵɵsetComponentScope(OgcFilterableListComponent, [i1.NgForOf, i1.NgIf, i5.ListItemDirective, i5.ListComponent, OgcFilterableItemComponent], [i7.TranslatePipe, FilterableDataSourcePipe]);
|
|
297
|
-
i0.ɵɵsetComponentScope(SpatialFilterTypeComponent, [i1.NgForOf, i11.MatOption, i2.MatIcon, i20.MatTab, i20.MatTabGroup, i18.MatButtonToggleGroup, i18.MatButtonToggle, i13.MatFormField, i13.MatLabel, i15.MatSelect, i4.MatTooltip, SpatialFilterListComponent], [i7.TranslatePipe]);
|
|
298
|
-
i0.ɵɵsetComponentScope(SpatialFilterItemComponent, [i1.NgForOf, i1.NgIf, i16.ɵNgNoValidate, i16.DefaultValueAccessor, i16.NumberValueAccessor, i16.NgControlStatus, i16.NgControlStatusGroup, i16.NgForm, i16.FormControlDirective, i11.MatOption, i2.MatIcon, i3.MatButton, i3.MatIconButton, i17.MatRadioGroup, i17.MatRadioButton, i21.MatTable, i21.MatHeaderCellDef, i21.MatHeaderRowDef, i21.MatColumnDef, i21.MatRowDef, i21.MatHeaderCell, i21.MatHeaderRow, i21.MatRow, i22.MatNestedTreeNode, i22.MatTreeNodeDef, i22.MatTreeNodeToggle, i22.MatTree, i22.MatTreeNode, i22.MatTreeNodeOutlet, i12.MatCheckbox, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i14.MatInput, i15.MatSelect, i4.MatTooltip, i5.EntityTableComponent, i24.GeometryFormFieldInputComponent], [i1.AsyncPipe, i7.TranslatePipe]);
|
|
299
|
-
i0.ɵɵsetComponentScope(OgcFilterTimeComponent, [i1.NgForOf, i1.NgIf, i16.NgControlStatus, i16.NgModel, i16.FormControlDirective, i11.MatOption, i2.MatIcon, i3.MatIconButton, i23.MatSlideToggle, i13.MatFormField, i13.MatLabel, i13.MatSuffix, i14.MatInput, i15.MatSelect, i4.MatTooltip, i25.MatDatepicker, i25.MatDatepickerInput, i25.MatDatepickerToggle, OgcFilterTimeSliderComponent], [i7.TranslatePipe]);
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1B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QixzQkFWMUIsd0JBQXdCO3VCQWF4QiwwQkFBMEIsb0xBQzFCLDBCQUEwQjt1QkFDMUIsMEJBQTBCO3VCQUMxQixzQkFBc0Isb1RBQ3RCLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNQVRfREFURV9MT0NBTEUsIE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgSWdvQ29sbGFwc2libGVNb2R1bGUsXHJcbiAgSWdvRE9NTW9kdWxlLFxyXG4gIElnb0VudGl0eU1vZHVsZSxcclxuICBJZ29LZXlWYWx1ZU1vZHVsZSxcclxuICBJZ29MaXN0TW9kdWxlXHJcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTWF0TmF0aXZlRGF0ZXRpbWVNb2R1bGVcclxufSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSWdvTGF5ZXJNb2R1bGUgfSBmcm9tICcuLi9sYXllci9sYXllci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBJZ29HZW9tZXRyeU1vZHVsZSB9IGZyb20gJy4vLi4vZ2VvbWV0cnkvZ2VvbWV0cnkubW9kdWxlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyLWJ1dHRvbi9vZ2MtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyLWZvcm0vb2djLWZpbHRlci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlclNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci1zZWxlY3Rpb24vb2djLWZpbHRlci1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyVGltZVNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlcmFibGUtZm9ybS9vZ2MtZmlsdGVyYWJsZS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QtYmluZGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSB9IGZyb20gJy4vc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlJztcclxuaW1wb3J0IHsgT0dDRmlsdGVyVGltZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9vZ2MtZmlsdGVyLXRpbWUuc2VydmljZSc7XHJcbmltcG9ydCB7IE9HQ0ZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGF0aWFsRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NwYXRpYWwtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3RpbWUtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGF0aWFsRmlsdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc3BhdGlhbC1maWx0ZXIvc3BhdGlhbC1maWx0ZXItaXRlbS9zcGF0aWFsLWZpbHRlci1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwYXRpYWxGaWx0ZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9zcGF0aWFsLWZpbHRlci9zcGF0aWFsLWZpbHRlci1saXN0L3NwYXRpYWwtZmlsdGVyLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhdGlhbEZpbHRlclR5cGVDb21wb25lbnQgfSBmcm9tICcuL3NwYXRpYWwtZmlsdGVyL3NwYXRpYWwtZmlsdGVyLXR5cGUvc3BhdGlhbC1maWx0ZXItdHlwZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1idXR0b24vdGltZS1maWx0ZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZUZpbHRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtZmlsdGVyLWl0ZW0vdGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyTGlzdEJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL3RpbWUtZmlsdGVyLWxpc3QvdGltZS1maWx0ZXItbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdFRyZWVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFNsaWRlck1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRldGltZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxyXG4gICAgSWdvTGF5ZXJNb2R1bGUsXHJcbiAgICBJZ29Db2xsYXBzaWJsZU1vZHVsZSxcclxuICAgIElnb0xpc3RNb2R1bGUsXHJcbiAgICBJZ29FbnRpdHlNb2R1bGUsXHJcbiAgICBJZ29ET01Nb2R1bGUsXHJcbiAgICBJZ29LZXlWYWx1ZU1vZHVsZSxcclxuICAgIElnb0dlb21ldHJ5TW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSxcclxuICAgIFRpbWVGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyRm9ybUNvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50LFxyXG4gICAgVGltZUZpbHRlckxpc3RDb21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyTGlzdEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBPZ2NGaWx0ZXJGb3JtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyU2VsZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUZvcm1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlSXRlbUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nRGlyZWN0aXZlLFxyXG4gICAgU3BhdGlhbEZpbHRlclR5cGVDb21wb25lbnQsXHJcbiAgICBTcGF0aWFsRmlsdGVyTGlzdENvbXBvbmVudCxcclxuICAgIFNwYXRpYWxGaWx0ZXJJdGVtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyVGltZUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlclRpbWVTbGlkZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRmlsdGVyYWJsZURhdGFTb3VyY2VQaXBlLFxyXG4gICAgVGltZUZpbHRlckJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50LFxyXG4gICAgVGltZUZpbHRlckl0ZW1Db21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyTGlzdENvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJMaXN0QmluZGluZ0RpcmVjdGl2ZSxcclxuICAgIE9nY0ZpbHRlckZvcm1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlRm9ybUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlTGlzdEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBTcGF0aWFsRmlsdGVyVHlwZUNvbXBvbmVudCxcclxuICAgIFNwYXRpYWxGaWx0ZXJMaXN0Q29tcG9uZW50LFxyXG4gICAgU3BhdGlhbEZpbHRlckl0ZW1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJUaW1lQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyVGltZVNsaWRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUaW1lRmlsdGVyU2VydmljZSxcclxuICAgIE9HQ0ZpbHRlclNlcnZpY2UsXHJcbiAgICBPR0NGaWx0ZXJUaW1lU2VydmljZSxcclxuICAgIFNwYXRpYWxGaWx0ZXJTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRmlsdGVyTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0ZpbHRlck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElnb0ZpbHRlck1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLFxyXG4gICAgICAgICAgdXNlVmFsdWU6ICdmci1GUidcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFilterModule, decorators: [{
|
|
175
|
+
type: NgModule,
|
|
176
|
+
args: [{
|
|
177
|
+
imports: [
|
|
178
|
+
CommonModule,
|
|
179
|
+
FormsModule,
|
|
180
|
+
ReactiveFormsModule,
|
|
181
|
+
MatAutocompleteModule,
|
|
182
|
+
MatIconModule,
|
|
183
|
+
MatButtonModule,
|
|
184
|
+
MatTabsModule,
|
|
185
|
+
MatRadioModule,
|
|
186
|
+
MatMenuModule,
|
|
187
|
+
MatTableModule,
|
|
188
|
+
MatTreeModule,
|
|
189
|
+
MatButtonToggleModule,
|
|
190
|
+
MatCheckboxModule,
|
|
191
|
+
MatSliderModule,
|
|
192
|
+
MatSlideToggleModule,
|
|
193
|
+
MatFormFieldModule,
|
|
194
|
+
MatInputModule,
|
|
195
|
+
MatOptionModule,
|
|
196
|
+
MatSelectModule,
|
|
197
|
+
MatListModule,
|
|
198
|
+
MatTooltipModule,
|
|
199
|
+
MatDatepickerModule,
|
|
200
|
+
MatNativeDateModule,
|
|
201
|
+
MatDatetimepickerModule,
|
|
202
|
+
MatNativeDatetimeModule,
|
|
203
|
+
IgoLanguageModule,
|
|
204
|
+
IgoLayerModule,
|
|
205
|
+
IgoCollapsibleModule,
|
|
206
|
+
IgoListModule,
|
|
207
|
+
IgoEntityModule,
|
|
208
|
+
IgoDOMModule,
|
|
209
|
+
IgoKeyValueModule,
|
|
210
|
+
IgoGeometryModule,
|
|
211
|
+
MatBadgeModule
|
|
212
|
+
],
|
|
213
|
+
exports: [
|
|
214
|
+
FilterableDataSourcePipe,
|
|
215
|
+
TimeFilterButtonComponent,
|
|
216
|
+
TimeFilterFormComponent,
|
|
217
|
+
TimeFilterItemComponent,
|
|
218
|
+
TimeFilterListComponent,
|
|
219
|
+
TimeFilterListBindingDirective,
|
|
220
|
+
OgcFilterFormComponent,
|
|
221
|
+
OgcFilterButtonComponent,
|
|
222
|
+
OgcFilterSelectionComponent,
|
|
223
|
+
OgcFilterableFormComponent,
|
|
224
|
+
OgcFilterableItemComponent,
|
|
225
|
+
OgcFilterableListComponent,
|
|
226
|
+
OgcFilterableListBindingDirective,
|
|
227
|
+
SpatialFilterTypeComponent,
|
|
228
|
+
SpatialFilterListComponent,
|
|
229
|
+
SpatialFilterItemComponent,
|
|
230
|
+
OgcFilterTimeComponent,
|
|
231
|
+
OgcFilterTimeSliderComponent
|
|
232
|
+
],
|
|
233
|
+
declarations: [
|
|
234
|
+
FilterableDataSourcePipe,
|
|
235
|
+
TimeFilterButtonComponent,
|
|
236
|
+
TimeFilterFormComponent,
|
|
237
|
+
TimeFilterItemComponent,
|
|
238
|
+
TimeFilterListComponent,
|
|
239
|
+
TimeFilterListBindingDirective,
|
|
240
|
+
OgcFilterFormComponent,
|
|
241
|
+
OgcFilterButtonComponent,
|
|
242
|
+
OgcFilterSelectionComponent,
|
|
243
|
+
OgcFilterableFormComponent,
|
|
244
|
+
OgcFilterableItemComponent,
|
|
245
|
+
OgcFilterableListComponent,
|
|
246
|
+
OgcFilterableListBindingDirective,
|
|
247
|
+
SpatialFilterTypeComponent,
|
|
248
|
+
SpatialFilterListComponent,
|
|
249
|
+
SpatialFilterItemComponent,
|
|
250
|
+
OgcFilterTimeComponent,
|
|
251
|
+
OgcFilterTimeSliderComponent
|
|
252
|
+
],
|
|
253
|
+
providers: [
|
|
254
|
+
TimeFilterService,
|
|
255
|
+
OGCFilterService,
|
|
256
|
+
OGCFilterTimeService,
|
|
257
|
+
SpatialFilterService
|
|
258
|
+
]
|
|
259
|
+
}]
|
|
260
|
+
}] });
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1B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QkFDeEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qiw4QkFBOEI7d0JBQzlCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGlDQUFpQzt3QkFDakMsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCO29CQUNELFlBQVksRUFBRTt3QkFDWix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQixpQ0FBaUM7d0JBQ2pDLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3FCQUM3QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNQVRfREFURV9MT0NBTEUsIE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgSWdvQ29sbGFwc2libGVNb2R1bGUsXHJcbiAgSWdvRE9NTW9kdWxlLFxyXG4gIElnb0VudGl0eU1vZHVsZSxcclxuICBJZ29LZXlWYWx1ZU1vZHVsZSxcclxuICBJZ29MaXN0TW9kdWxlXHJcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTWF0TmF0aXZlRGF0ZXRpbWVNb2R1bGVcclxufSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSWdvTGF5ZXJNb2R1bGUgfSBmcm9tICcuLi9sYXllci9sYXllci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBJZ29HZW9tZXRyeU1vZHVsZSB9IGZyb20gJy4vLi4vZ2VvbWV0cnkvZ2VvbWV0cnkubW9kdWxlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyLWJ1dHRvbi9vZ2MtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyLWZvcm0vb2djLWZpbHRlci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlclNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci1zZWxlY3Rpb24vb2djLWZpbHRlci1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyVGltZVNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlcmFibGUtZm9ybS9vZ2MtZmlsdGVyYWJsZS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QtYmluZGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSB9IGZyb20gJy4vc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlJztcclxuaW1wb3J0IHsgT0dDRmlsdGVyVGltZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9vZ2MtZmlsdGVyLXRpbWUuc2VydmljZSc7XHJcbmltcG9ydCB7IE9HQ0ZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGF0aWFsRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NwYXRpYWwtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3RpbWUtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGF0aWFsRmlsdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc3BhdGlhbC1maWx0ZXIvc3BhdGlhbC1maWx0ZXItaXRlbS9zcGF0aWFsLWZpbHRlci1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwYXRpYWxGaWx0ZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9zcGF0aWFsLWZpbHRlci9zcGF0aWFsLWZpbHRlci1saXN0L3NwYXRpYWwtZmlsdGVyLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhdGlhbEZpbHRlclR5cGVDb21wb25lbnQgfSBmcm9tICcuL3NwYXRpYWwtZmlsdGVyL3NwYXRpYWwtZmlsdGVyLXR5cGUvc3BhdGlhbC1maWx0ZXItdHlwZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1idXR0b24vdGltZS1maWx0ZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZUZpbHRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtZmlsdGVyLWl0ZW0vdGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyTGlzdEJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL3RpbWUtZmlsdGVyLWxpc3QvdGltZS1maWx0ZXItbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdFRyZWVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFNsaWRlck1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRldGltZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxyXG4gICAgSWdvTGF5ZXJNb2R1bGUsXHJcbiAgICBJZ29Db2xsYXBzaWJsZU1vZHVsZSxcclxuICAgIElnb0xpc3RNb2R1bGUsXHJcbiAgICBJZ29FbnRpdHlNb2R1bGUsXHJcbiAgICBJZ29ET01Nb2R1bGUsXHJcbiAgICBJZ29LZXlWYWx1ZU1vZHVsZSxcclxuICAgIElnb0dlb21ldHJ5TW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSxcclxuICAgIFRpbWVGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyRm9ybUNvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50LFxyXG4gICAgVGltZUZpbHRlckxpc3RDb21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyTGlzdEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBPZ2NGaWx0ZXJGb3JtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyU2VsZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUZvcm1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlSXRlbUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nRGlyZWN0aXZlLFxyXG4gICAgU3BhdGlhbEZpbHRlclR5cGVDb21wb25lbnQsXHJcbiAgICBTcGF0aWFsRmlsdGVyTGlzdENvbXBvbmVudCxcclxuICAgIFNwYXRpYWxGaWx0ZXJJdGVtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyVGltZUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlclRpbWVTbGlkZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRmlsdGVyYWJsZURhdGFTb3VyY2VQaXBlLFxyXG4gICAgVGltZUZpbHRlckJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50LFxyXG4gICAgVGltZUZpbHRlckl0ZW1Db21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyTGlzdENvbXBvbmVudCxcclxuICAgIFRpbWVGaWx0ZXJMaXN0QmluZGluZ0RpcmVjdGl2ZSxcclxuICAgIE9nY0ZpbHRlckZvcm1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlRm9ybUNvbXBvbmVudCxcclxuICAgIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJhYmxlTGlzdEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBTcGF0aWFsRmlsdGVyVHlwZUNvbXBvbmVudCxcclxuICAgIFNwYXRpYWxGaWx0ZXJMaXN0Q29tcG9uZW50LFxyXG4gICAgU3BhdGlhbEZpbHRlckl0ZW1Db21wb25lbnQsXHJcbiAgICBPZ2NGaWx0ZXJUaW1lQ29tcG9uZW50LFxyXG4gICAgT2djRmlsdGVyVGltZVNsaWRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUaW1lRmlsdGVyU2VydmljZSxcclxuICAgIE9HQ0ZpbHRlclNlcnZpY2UsXHJcbiAgICBPR0NGaWx0ZXJUaW1lU2VydmljZSxcclxuICAgIFNwYXRpYWxGaWx0ZXJTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRmlsdGVyTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0ZpbHRlck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElnb0ZpbHRlck1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLFxyXG4gICAgICAgICAgdXNlVmFsdWU6ICdmci1GUidcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|