@igo2/geo 17.0.1-next.2 → 18.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +5 -5
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +5 -5
- package/esm2022/lib/catalog/catalog.module.mjs +5 -5
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +4 -4
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +4 -4
- package/esm2022/lib/datasource/shared/datasource.service.mjs +4 -4
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +4 -4
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +4 -4
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +4 -4
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +4 -4
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +4 -4
- package/esm2022/lib/directions/directions.component.mjs +4 -4
- package/esm2022/lib/directions/directions.module.mjs +5 -5
- package/esm2022/lib/directions/shared/directions.service.mjs +4 -4
- package/esm2022/lib/download/download-button/download-button.component.mjs +4 -4
- package/esm2022/lib/download/download.module.mjs +5 -5
- package/esm2022/lib/download/shared/download.service.mjs +4 -4
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw.module.mjs +5 -5
- package/esm2022/lib/draw/drawingTool.module.mjs +5 -5
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +4 -4
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +4 -4
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +4 -4
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +5 -5
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +5 -5
- package/esm2022/lib/feature/feature.module.mjs +5 -5
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +5 -5
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +4 -4
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +4 -4
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +4 -4
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +4 -4
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +4 -4
- package/esm2022/lib/filter/shared/time-filter.service.mjs +4 -4
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +4 -4
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +4 -4
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +4 -4
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +4 -4
- package/esm2022/lib/geo.module.mjs +5 -5
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +5 -5
- package/esm2022/lib/geometry/geometry.module.mjs +5 -5
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -4
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +4 -4
- package/esm2022/lib/import-export/import-export.module.mjs +5 -5
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -4
- package/esm2022/lib/import-export/shared/export.service.mjs +4 -4
- package/esm2022/lib/import-export/shared/import.service.mjs +4 -4
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +4 -4
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +4 -4
- package/esm2022/lib/layer/layer.module.mjs +5 -5
- package/esm2022/lib/layer/shared/layer.service.mjs +18 -14
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +2 -6
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +3 -3
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +4 -4
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +4 -4
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +4 -4
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +4 -4
- package/esm2022/lib/map/info-section/info-section.component.mjs +4 -4
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +4 -4
- package/esm2022/lib/map/map-center/map-center.component.mjs +4 -4
- package/esm2022/lib/map/map.module.mjs +5 -5
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +4 -4
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +4 -4
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +4 -4
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +6 -6
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
- package/esm2022/lib/map/shared/map.mjs +2 -2
- package/esm2022/lib/map/shared/map.service.mjs +4 -4
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +4 -4
- package/esm2022/lib/map/shared/projection.service.mjs +4 -4
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +4 -4
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +4 -4
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +4 -4
- package/esm2022/lib/measure/measure.module.mjs +5 -5
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer.component.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer.module.mjs +5 -5
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +7 -7
- package/esm2022/lib/metadata/metadata.module.mjs +5 -5
- package/esm2022/lib/metadata/shared/metadata.service.mjs +4 -4
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -8
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +21 -22
- package/esm2022/lib/offline/index.mjs +3 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +16 -17
- package/esm2022/lib/offline/offline.interface.mjs +2 -0
- package/esm2022/lib/offline/offline.provider.mjs +51 -0
- package/esm2022/lib/offline/shared/geo-network.service.mjs +15 -16
- package/esm2022/lib/overlay/shared/overlay.mjs +3 -2
- package/esm2022/lib/print/print/print.component.mjs +4 -4
- package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
- package/esm2022/lib/print/print.module.mjs +5 -5
- package/esm2022/lib/print/shared/print.service.mjs +4 -4
- package/esm2022/lib/query/query.module.mjs +5 -5
- package/esm2022/lib/query/shared/query-search-source.mjs +4 -4
- package/esm2022/lib/query/shared/query.directive.mjs +4 -4
- package/esm2022/lib/query/shared/query.service.mjs +4 -4
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +4 -4
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +5 -5
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +4 -4
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +4 -4
- package/esm2022/lib/search/search-results/search-results.component.mjs +4 -4
- package/esm2022/lib/search/search-results/search-results.module.mjs +5 -5
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +5 -5
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +5 -5
- package/esm2022/lib/search/search.module.mjs +5 -5
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +6 -6
- package/esm2022/lib/search/shared/search.service.mjs +4 -4
- package/esm2022/lib/search/shared/sources/cadastre.mjs +4 -4
- package/esm2022/lib/search/shared/sources/coordinates.mjs +7 -7
- package/esm2022/lib/search/shared/sources/icherche.mjs +10 -10
- package/esm2022/lib/search/shared/sources/ilayer.mjs +7 -7
- package/esm2022/lib/search/shared/sources/nominatim.mjs +4 -4
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -7
- package/esm2022/lib/search/shared/sources/workspace.mjs +4 -4
- package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
- package/esm2022/lib/style/style-list/style-list.service.mjs +4 -4
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +4 -4
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +4 -4
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +4 -4
- package/esm2022/lib/style/style-service/draw-style.service.mjs +4 -4
- package/esm2022/lib/style/style-service/style.service.mjs +4 -4
- package/esm2022/lib/style/style.module.mjs +5 -5
- package/esm2022/lib/toast/toast.component.mjs +4 -4
- package/esm2022/lib/toast/toast.module.mjs +5 -5
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +4 -4
- package/esm2022/lib/wkt/shared/wkt.service.mjs +4 -4
- package/esm2022/lib/wkt/wkt.module.mjs +5 -5
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +5 -5
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +4 -4
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +4 -4
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +4 -4
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +4 -4
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +4 -4
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +5 -5
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +4 -4
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +5 -5
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +4 -4
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +5 -5
- package/esm2022/lib/workspace/workspace.module.mjs +5 -5
- package/fesm2022/igo2-geo.mjs +6095 -6054
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/shared/catalog.enum.d.ts +1 -3
- package/lib/feature/shared/feature-store.utils.d.ts +1 -1
- package/lib/feature/shared/store.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +5 -5
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +1 -5
- package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vector-layer.d.ts +2 -2
- package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
- package/lib/map/shared/map.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/index.d.ts +2 -0
- package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
- package/lib/offline/offline.interface.d.ts +3 -0
- package/lib/offline/offline.provider.d.ts +3 -0
- package/lib/offline/shared/geo-network.service.d.ts +3 -3
- package/lib/overlay/shared/overlay.d.ts +2 -1
- package/lib/utils/id-generator.d.ts +5 -5
- package/package.json +5 -5
|
@@ -494,11 +494,11 @@ export class TimeFilterFormComponent {
|
|
|
494
494
|
getStepDefinition(step) {
|
|
495
495
|
return moment.duration(step).asMilliseconds();
|
|
496
496
|
}
|
|
497
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
498
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
497
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterFormComponent, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
|
498
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TimeFilterFormComponent, isStandalone: true, selector: "igo-time-filter-form", inputs: { layer: "layer", options: "options", currentValue: "currentValue" }, outputs: { change: "change", yearChange: "yearChange" }, viewQueries: [{ propertyName: "mySlider", first: true, predicate: MatSlider, descendants: true }], ngImport: i0, template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"datetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #datetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"date\"\n [min]=\"min\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"minDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #minDatetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [matDatetimepicker]=\"minDatetimePicker\"\n [(ngModel)]=\"startDate\"\n [min]=\"min\"\n [max]=\"getRangeMaxDate()\"\n readonly=\"readonly\"\n (input)=\"(startDate)\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"maxDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #maxDatetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [matDatetimepicker]=\"maxDatetimePicker\"\n [(ngModel)]=\"endDate\"\n [min]=\"getRangeMinDate()\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [(ngModel)]=\"year\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\n year\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [(ngModel)]=\"startYear\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option\n [value]=\"startYear\"\n *ngFor=\"let startYear of startListYears\"\n >{{ startYear }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [(ngModel)]=\"endYear\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\n endYear\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<br />\n<div\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\n>\n <span>{{ startYear }}</span>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"startYear\"\n [max]=\"endYear\"\n [color]=\"color\"\n thumbLabel\n [disabled]=\"!options.enabled || !layer.visible\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n (change)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n />\n </mat-slider>\n <span>{{ endYear }}</span>\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\n <div #actions class=\"igo-layer-actions-container\">\n <mat-slide-toggle\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [color]=\"color\"\n [checked]=\"options.enabled\"\n [disabled]=\"!layer.visible\"\n >\n </mat-slide-toggle>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"playYear()\"\n >\n <mat-icon>{{ playIcon }}</mat-icon>\n </button>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter()\"\n >\n <mat-icon>{{ resetIcon }}</mat-icon>\n </button>\n </div>\n</div>\n\n<div\n *ngIf=\"style === 'slider' && type !== 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m\"\n>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"dateToNumber(min)\"\n [max]=\"dateToNumber(max)\"\n thumbLabel\n (selectionChange)=\"handleSliderDateChange($event)\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderDateChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\n <button mat-icon-button color=\"primary\" (click)=\"playFilter()\">\n <mat-icon>{{ playIcon }}</mat-icon>\n </button>\n</div>\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatetimepickerModule }, { kind: "component", type: i3.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: // For the DateAdapter provider
|
|
499
499
|
MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i7.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i7.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i8.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
|
|
500
500
|
}
|
|
501
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterFormComponent, decorators: [{
|
|
502
502
|
type: Component,
|
|
503
503
|
args: [{ selector: 'igo-time-filter-form', standalone: true, imports: [
|
|
504
504
|
NgIf,
|
|
@@ -531,4 +531,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
531
531
|
type: ViewChild,
|
|
532
532
|
args: [MatSlider]
|
|
533
533
|
}] } });
|
|
534
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGVBQWUsRUFFaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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LENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3VHQXhnQlUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsaVFBNEN2QixTQUFTLGdEQ3ZHdEIsazBOQXlPQSxvYUQvTEksSUFBSSw0RkFDSixrQkFBa0IsMFdBQ2xCLHVCQUF1QixnNkJBQ3ZCLG1CQUFtQiw4QkFBRSwrQkFBK0I7Z0JBQ3BELGNBQWMsMFdBQ2QsV0FBVyw4bUJBQ1gsZUFBZSxvckJBQ2YsS0FBSyxrSEFDTCxlQUFlLDhCQUNmLGVBQWUsa2FBQ2Ysb0JBQW9CLHlYQUNwQixnQkFBZ0IsNFRBQ2hCLGVBQWUsNElBQ2YsYUFBYSxvTEFDYixpQkFBaUI7OzJGQUdSLHVCQUF1QjtrQkF2Qm5DLFNBQVM7K0JBQ0Usc0JBQXNCLGNBR3BCLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixtQkFBbUIsRUFBRSwrQkFBK0I7d0JBQ3BELGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNsQjtnRkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQWdCRixZQUFZO3NCQURmLEtBQUs7Z0JBdUJJLE1BQU07c0JBQWYsTUFBTTtnQkFFUCxVQUFVO3NCQURULE1BQU07Z0JBRWUsUUFBUTtzQkFBN0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtcbiAgRGF0ZUFkYXB0ZXIsXG4gIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gIE1hdE9wdGlvbk1vZHVsZSxcbiAgVGhlbWVQYWxldHRlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTbGlkZXIsIE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XG5cbmltcG9ydCB7IE1hdERhdGV0aW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgbW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcbmltcG9ydCB7IFRpbWVGaWx0ZXJTdHlsZSwgVGltZUZpbHRlclR5cGUgfSBmcm9tICcuLi9zaGFyZWQvdGltZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSwgLy8gRm9yIHRoZSBEYXRlQWRhcHRlciBwcm92aWRlclxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBASW5wdXQoKSBvcHRpb25zOiBUaW1lRmlsdGVyT3B0aW9ucztcblxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcbiAgcHVibGljIGRhdGU6IERhdGU7XG4gIHB1YmxpYyBzdGFydERhdGU6IERhdGU7XG4gIHB1YmxpYyBlbmREYXRlOiBEYXRlO1xuICBwdWJsaWMgeWVhcjogYW55O1xuICBwdWJsaWMgc3RhcnRZZWFyOiBhbnk7XG4gIHB1YmxpYyBlbmRZZWFyOiBhbnk7XG4gIHB1YmxpYyBpbml0U3RhcnRZZWFyOiBhbnk7XG4gIHB1YmxpYyBpbml0RW5kWWVhcjogYW55O1xuICBwdWJsaWMgbGlzdFllYXJzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgc3RhcnRMaXN0WWVhcnM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBlbmRMaXN0WWVhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgc2V0IGN1cnJlbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy50eXBlICE9PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlQXJyYXkgPSB2YWx1ZS5zcGxpdCgnLycpO1xuICAgICAgICBpZiAodmFsdWVBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVswXSk7XG4gICAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG5ldyBEYXRlKHZhbHVlQXJyYXlbMV0pO1xuICAgICAgICAgIGlmICghaXNOYU4oc3RhcnREYXRlLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gc3RhcnREYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWlzTmFOKGVuZERhdGUudmFsdWVPZigpKSkge1xuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gZW5kRGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW50ZXJ2YWw6IGFueTtcbiAgcHVibGljIHBsYXlJY29uID0gJ3BsYXlfY2lyY2xlJztcbiAgcHVibGljIHJlc2V0SWNvbiA9ICdyZXBsYXknO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBbRGF0ZSwgRGF0ZV0+KCk7XG4gIEBPdXRwdXQoKVxuICB5ZWFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddPigpO1xuICBAVmlld0NoaWxkKE1hdFNsaWRlcikgbXlTbGlkZXI7XG5cbiAgZ2V0IHR5cGUoKTogVGltZUZpbHRlclR5cGUge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMudHlwZSA9PT0gdW5kZWZpbmVkXG4gICAgICA/IFRpbWVGaWx0ZXJUeXBlLkRBVEVcbiAgICAgIDogdGhpcy5vcHRpb25zLnR5cGU7XG4gIH1cblxuICBnZXQgaXNSYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJhbmdlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUlxuICAgICAgPyBmYWxzZVxuICAgICAgOiB0aGlzLm9wdGlvbnMucmFuZ2U7XG4gIH1cblxuICBnZXQgc3R5bGUoKTogVGltZUZpbHRlclN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0eWxlID09PSB1bmRlZmluZWRcbiAgICAgID8gVGltZUZpbHRlclN0eWxlLlNMSURFUlxuICAgICAgOiB0aGlzLm9wdGlvbnMuc3R5bGU7XG4gIH1cblxuICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgIGxldCBzdGVwID0gMTA4MDAwMDA7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdGVwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRTpcbiAgICAgICAgICBzdGVwID0gMTA4MDAwMDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcbiAgICAgICAgICBzdGVwID0gMzYwMDAwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5ZRUFSOlxuICAgICAgICAgIHN0ZXAgPSAzMTUzNjAwMDAwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdGVwID0gMTA4MDAwMDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ZXAgPSB0aGlzLmdldFN0ZXBEZWZpbml0aW9uKHRoaXMub3B0aW9ucy5zdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIGdldCB0aW1lSW50ZXJ2YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IDIwMDBcbiAgICAgIDogdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbDtcbiAgfVxuXG4gIGdldCBtaW4oKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW4pIHtcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5taW4pO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1pbi5nZXRUaW1lKCkgKyBtaW4uZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnZXQgbWF4KCk6IERhdGUge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4KSB7XG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMubWF4KTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtYXguZ2V0VGltZSgpICsgbWF4LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogdGhpcy5vcHRpb25zLnJhbmdlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4pIHtcbiAgICB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZSgnZnInKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXJ0WWVhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXJ0WWVhciA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRGdWxsWWVhcigpO1xuICAgICAgdGhpcy5pbml0U3RhcnRZZWFyID0gdGhpcy5zdGFydFllYXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmVuZFllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbmRZZWFyID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRGdWxsWWVhcigpO1xuICAgICAgdGhpcy5pbml0RW5kWWVhciA9IHRoaXMuZW5kWWVhcjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNSYW5nZSkge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyOyBpIDw9IHRoaXMuZW5kWWVhciArIDE7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzLnB1c2goaSk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuZW5kWWVhcjsgaSsrKSB7XG4gICAgICAgIHRoaXMuZW5kTGlzdFllYXJzLnB1c2goaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID1cbiAgICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID09PSB1bmRlZmluZWQgPyB0cnVlIDogdGhpcy5vcHRpb25zLmVuYWJsZWQ7XG4gICAgdGhpcy5jaGVja0ZpbHRlclZhbHVlKCk7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbmFibGVkKSB7XG4gICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0eWxlID09PSAnc2xpZGVyJyAmJiB0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlQ3VycmVudEZpbHRlclZhbHVlKCk7XG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICBzdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpIHtcbiAgICAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcbiAgICApIHtcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMueWVhci50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRmlsdGVyVmFsdWUoKSB7XG4gICAgY29uc3Qgb2xTb3VyY2UgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VJbWFnZVdNUztcbiAgICBjb25zdCB0aW1lRnJvbVdtcyA9IG9sU291cmNlLmdldFBhcmFtcygpLlRJTUU7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXG4gICAgKSB7XG4gICAgICBpZiAodGltZUZyb21XbXMpIHtcbiAgICAgICAgdGhpcy55ZWFyID0gbmV3IERhdGUodGltZUZyb21XbXMudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy52YWx1ZSkge1xuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMudmFsdWUudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm1pbikuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuaXNSYW5nZSAmJlxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLkNBTEVOREFSICYmXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcbiAgICApIHtcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xuICAgICAgICB0aGlzLnN0YXJ0WWVhciA9IHBhcnNlSW50KHRpbWVGcm9tV21zLnN1YnN0cigwLCA0KSwgMTApO1xuICAgICAgICB0aGlzLmVuZFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoNSwgNCksIDEwKTtcbiAgICAgICAgY29uc3QgbmV3U3RhcnRMaXN0WWVhcnM6IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IG5ld0VuZExpc3RZZWFyczogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuaW5pdFN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XG4gICAgICAgICAgbmV3U3RhcnRMaXN0WWVhcnMucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xuICAgICAgICAgIG5ld0VuZExpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBuZXdTdGFydExpc3RZZWFycztcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMgPSBuZXdFbmRMaXN0WWVhcnM7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxuICB9XG5cbiAgaGFuZGxlRGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xuICAgIHRoaXMuYXBwbHlUeXBlQ2hhbmdlKCk7XG5cbiAgICAvLyBPbmx5IGlmIGlzIHJhbmdlLCB1c2UgMiBkYXRlcyB0byBtYWtlIHRoZSByYW5nZVxuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlWWVhckNoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICB0aGlzLmVuZExpc3RZZWFycyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyICsgMTsgaSA8PSB0aGlzLmluaXRFbmRZZWFyOyBpKyspIHtcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXIgKyAxOyBpIDwgdGhpcy5lbmRZZWFyOyBpKyspIHtcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgfVxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVMaXN0WWVhckNoYW5nZSgpIHtcbiAgICB0aGlzLmhhbmRsZVllYXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGhhbmRsZUxpc3RZZWFyU3RhcnRDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChbdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZV0pO1xuICB9XG5cbiAgZGF0ZVRvTnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCBuZXdEYXRlO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0RhdGUuZ2V0VGltZSgpO1xuICB9XG5cbiAgc2V0U2xpZGVyVGh1bWJMYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgY29uc3QgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwoXG4gICAgICB0aGlzLm15U2xpZGVyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1xuICAgICk7XG4gICAgaWYgKHRodW1iTGFiZWwpIHtcbiAgICAgIHRodW1iTGFiZWwudGV4dENvbnRlbnQgPSBsYWJlbDtcbiAgICB9XG4gIH1cblxuICBmaW5kVGh1bWJMYWJlbCh0ZXN0OiBhbnlbXSk6IGFueSB7XG4gICAgbGV0IHRodW1iTGFiZWw7XG5cbiAgICB0ZXN0LmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUuY2xhc3NOYW1lID09PSAnbWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0Jykge1xuICAgICAgICB0aHVtYkxhYmVsID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZS5jaGlsZHJlbi5sZW5ndGggPiAwICYmICF0aHVtYkxhYmVsKSB7XG4gICAgICAgIHRodW1iTGFiZWwgPSB0aGlzLmZpbmRUaHVtYkxhYmVsKHZhbHVlLmNoaWxkTm9kZXMpO1xuICAgICAgfVxuICAgIH0sIHRoaXMpO1xuICAgIHJldHVybiB0aHVtYkxhYmVsO1xuICB9XG5cbiAgdG9nZ2xlRmlsdGVyU3RhdGUoKSB7XG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSAhdGhpcy5vcHRpb25zLmVuYWJsZWQ7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmVuYWJsZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgICBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxuICAgICAgKSB7XG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xuICAgICAgdGhpcy5zdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcigpIHtcbiAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XG4gICAgdGhpcy55ZWFyID0gdGhpcy5kYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXG4gICAgKSB7XG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICBwbGF5RmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZV9jaXJjbGUnO1xuICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKFxuICAgICAgICAodGhhdCkgPT4ge1xuICAgICAgICAgIGxldCBuZXdNaW5EYXRlTnVtYmVyO1xuICAgICAgICAgIGNvbnN0IG1heERhdGVOdW1iZXIgPSBuZXcgRGF0ZSh0aGF0Lm1heCk7XG5cbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyID1cbiAgICAgICAgICAgIHRoYXQuZGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhhdC5taW4uZ2V0VGltZSgpIDogdGhhdC5kYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyICs9IHRoYXQubXlTbGlkZXIuc3RlcDtcbiAgICAgICAgICB0aGF0LmRhdGUgPSBuZXcgRGF0ZShuZXdNaW5EYXRlTnVtYmVyKTtcblxuICAgICAgICAgIGlmIChuZXdNaW5EYXRlTnVtYmVyID4gbWF4RGF0ZU51bWJlci5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgIHRoYXQuc3RvcEZpbHRlcigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoYXQuaGFuZGxlRGF0ZUNoYW5nZSgpO1xuICAgICAgICB9LFxuICAgICAgICB0aGlzLnRpbWVJbnRlcnZhbCxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwbGF5WWVhcigpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXAgPlxuICAgICAgdGhpcy5tYXguZ2V0RnVsbFllYXIoKSArIHRoaXMubXlTbGlkZXIuc3RlcFxuICAgICkge1xuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XG4gICAgICB0aGlzLnJlc2V0RmlsdGVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZV9jaXJjbGUnO1xuICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcCA+IHRoaXMubWF4LmdldEZ1bGxZZWFyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMudGltZUludGVydmFsLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5X2NpcmNsZSc7XG4gIH1cblxuICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZShldmVudC52YWx1ZSk7XG4gICAgdGhpcy5zZXRTbGlkZXJUaHVtYkxhYmVsKHRoaXMuaGFuZGxlU2xpZGVyVG9vbHRpcCgpKTtcbiAgICB0aGlzLmhhbmRsZURhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIGhhbmRsZVNsaWRlclllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMueWVhciA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gIH1cblxuICBoYW5kbGVTbGlkZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY3VycmVudCA9PT0gdHJ1ZSB8fCAhdGhpcy5taW4pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuZ2V0Um91bmRlZERhdGUoY3VycmVudERhdGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XG4gICAgICByZXR1cm4gdGhpcy55ZWFyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbi5nZXRUaW1lKCkgOiB0aGlzLmRhdGUuZ2V0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNsaWRlclRvb2x0aXAoKSB7XG4gICAgbGV0IGxhYmVsOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFOlxuICAgICAgICBsYWJlbCA9XG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy5taW4udG9EYXRlU3RyaW5nKClcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcbiAgICAgICAgbGFiZWwgPVxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b1RpbWVTdHJpbmcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBkYXRldGltZVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGFiZWwgPVxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVVRDU3RyaW5nKClcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHNldHVwRGF0ZU91dHB1dCgpIHtcbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUikge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xuICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygtKHRoaXMuc3RlcCAvIDEwMDApKTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKTtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKHRoaXMuc3RlcCAvIDEwMDApO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNSYW5nZSAmJiAhIXRoaXMuZGF0ZSkge1xuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNSYW5nZSAmJiAoISF0aGlzLmRhdGUgfHwgIXRoaXMuZGF0ZSkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cbiAgICAgICAgdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWluKSA6IHRoaXMuc3RhcnREYXRlO1xuICAgICAgdGhpcy5lbmREYXRlID1cbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XG4gICAgfSBlbHNlIGlmICghdGhpcy5kYXRlKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9XG4gICAgICAgIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiB0aGlzLnN0YXJ0RGF0ZTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5tYXgpIDogdGhpcy5lbmREYXRlO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5VHlwZUNoYW5nZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFOlxuICAgICAgICBpZiAodGhpcy5zdGFydERhdGUgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmVuZERhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKDApO1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoMCk7XG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoMjMpO1xuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRNaW51dGVzKDU5KTtcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XG4gICAgICAgIGlmICh0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIpIHtcbiAgICAgICAgICBpZiAodGhpcy5zdGFydERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRIb3VycygpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNaW51dGUgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMubWluO1xuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLmVuZERhdGUuZ2V0SG91cnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTWludXRlID0gdGhpcy5lbmREYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMubWluO1xuICAgICAgICAgICAgdGhpcy5lbmREYXRlLnNldEhvdXJzKHNlbGVjdGVkSG91cik7XG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdGVwID4gNjAgKiA2MCAqIDEwMDApIHtcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKDApO1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKDU5KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIC8vIGRhdGV0aW1lXG4gICAgICBkZWZhdWx0OlxuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlTWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IHRoaXMubWluIDogdGhpcy5zdGFydERhdGU7XG4gIH1cblxuICBnZXRSYW5nZU1heERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5tYXggOiB0aGlzLmVuZERhdGU7XG4gIH1cblxuICAvKipcbiAgICogUm91bmQgZGF0ZSBhdCBhIGNlcnRhaW4gdGltZSwgMTAgbWludXRlcyBieSBEZWZhdWx0XG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB0byBSb3VuZFxuICAgKiBAcGFyYW0gYXRNaW51dGUgLSByb3VuZCB0byBjbG9zZXN0ICdhdE1pbnV0ZScgbWludXRlLCByb3VuZGVkIDEwIGJ5IGRlZmF1bHRcbiAgICogQHJldHVybiB0aGUgcm91bmRlZCBkYXRlXG4gICAqL1xuICBnZXRSb3VuZGVkRGF0ZShkYXRlLCBhdE1pbnV0ZSA9IDEwKSB7XG4gICAgY29uc3QgY29lZmYgPSAxMDAwICogNjAgKiBhdE1pbnV0ZTtcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5yb3VuZChkYXRlLmdldFRpbWUoKSAvIGNvZWZmKSAqIGNvZWZmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0ZXAgKHBlcmlvZCkgZGVmaW5pdGlvbiBmcm9tIHRoZSBsYXllciBkaW1lbnNpb24gdGFnXG4gICAqIEBwYXJhbSBzdGVwIFRoZSBzdGVwIGFzIElTTyA4NjAxIGV4YW1wbGU6IFBUMTBNIGZvciAxMCBNaW51dGVzXG4gICAqIEByZXR1cm4gdGhlIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgKi9cbiAgZ2V0U3RlcERlZmluaXRpb24oc3RlcCkge1xuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24oc3RlcCkuYXNNaWxsaXNlY29uZHMoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXG4gICAgICAgIFtmb3JdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW29wZW5PbkZvY3VzXT1cInRydWVcIlxuICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby50aW1lRmlsdGVyLmRhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxuICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNSYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1pbkRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtaW5EYXRldGltZVBpY2tlclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwibWluRGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RhcnREYXRlXCJcbiAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgW21heF09XCJnZXRSYW5nZU1heERhdGUoKVwiXG4gICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXG4gICAgICAgICAgKGlucHV0KT1cIihzdGFydERhdGUpXCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtYXhEYXRldGltZVBpY2tlclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZERhdGVcIlxuICAgICAgICAgIFttaW5dPVwiZ2V0UmFuZ2VNaW5EYXRlKClcIlxuICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgPT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwieWVhclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInllYXJcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiBsaXN0WWVhcnNcIj57e1xuICAgICAgICAgIHllYXJcbiAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImlzUmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0WWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydFllYXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXJ0WWVhciBvZiBzdGFydExpc3RZZWFyc1wiXG4gICAgICAgICAgICA+e3sgc3RhcnRZZWFyIH19PC9tYXQtb3B0aW9uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kRGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZW5kWWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImVuZFllYXJcIiAqbmdGb3I9XCJsZXQgZW5kWWVhciBvZiBlbmRMaXN0WWVhcnNcIj57e1xuICAgICAgICAgICAgZW5kWWVhclxuICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YnIgLz5cbjxkaXZcbiAgKm5nSWY9XCIhaXNSYW5nZSAmJiBzdHlsZSA9PT0gJ3NsaWRlcicgJiYgdHlwZSA9PT0gJ3llYXInXCJcbiAgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW0gbWF0LXR5cG9ncmFwaHlcIlxuPlxuICA8c3Bhbj57eyBzdGFydFllYXIgfX08L3NwYW4+XG4gIDwhLS0gVE9ETzogVGhlICd0aWNrSW50ZXJ2YWwnIHByb3BlcnR5IG5vIGxvbmdlciBleGlzdHMgLS0+XG4gIDxtYXQtc2xpZGVyXG4gICAgaWQ9XCJ0aW1lLXNsaWRlclwiXG4gICAgc3RlcD1cInt7IHN0ZXAgfX1cIlxuICAgIFttaW5dPVwic3RhcnRZZWFyXCJcbiAgICBbbWF4XT1cImVuZFllYXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgdGh1bWJMYWJlbFxuICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZSh7XG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXG4gICAgICAgICAgdmFsdWU6IG5nU2xpZGVyVGh1bWIudmFsdWVcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9tYXQtc2xpZGVyPlxuICA8c3Bhbj57eyBlbmRZZWFyIH19PC9zcGFuPlxuICA8cCAqbmdJZj1cIm9wdGlvbnMuZW5hYmxlZFwiIGNsYXNzPVwiZGF0ZS1iZWxvd1wiPnt7IHllYXIgfX08L3A+XG4gIDxkaXYgI2FjdGlvbnMgY2xhc3M9XCJpZ28tbGF5ZXItYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVGaWx0ZXJTdGF0ZSgpXCJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci50b2dnbGVGaWx0ZXJTdGF0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtjaGVja2VkXT1cIm9wdGlvbnMuZW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWxheWVyLnZpc2libGVcIlxuICAgID5cbiAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInBsYXlZZWFyKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj57eyBwbGF5SWNvbiB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj57eyByZXNldEljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwic3R5bGUgPT09ICdzbGlkZXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tXCJcbj5cbiAgPCEtLSBUT0RPOiBUaGUgJ3RpY2tJbnRlcnZhbCcgcHJvcGVydHkgbm8gbG9uZ2VyIGV4aXN0cyAtLT5cbiAgPG1hdC1zbGlkZXJcbiAgICBpZD1cInRpbWUtc2xpZGVyXCJcbiAgICBzdGVwPVwie3sgc3RlcCB9fVwiXG4gICAgW21pbl09XCJkYXRlVG9OdW1iZXIobWluKVwiXG4gICAgW21heF09XCJkYXRlVG9OdW1iZXIobWF4KVwiXG4gICAgdGh1bWJMYWJlbFxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlU2xpZGVyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgIC8+XG4gIDwvbWF0LXNsaWRlcj5cbiAgPHAgY2xhc3M9XCJkYXRlLWJlbG93XCI+e3sgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIH19PC9wPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicGxheUZpbHRlcigpXCI+XG4gICAgPG1hdC1pY29uPnt7IHBsYXlJY29uIH19PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
534
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGVBQWUsRUFFaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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LENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3dHQXhnQlUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsaVFBNEN2QixTQUFTLGdEQ3ZHdEIsazBOQXlPQSxvYUQvTEksSUFBSSw0RkFDSixrQkFBa0IsMFdBQ2xCLHVCQUF1QixnNkJBQ3ZCLG1CQUFtQiw4QkFBRSwrQkFBK0I7Z0JBQ3BELGNBQWMsMFdBQ2QsV0FBVyw4bUJBQ1gsZUFBZSxvckJBQ2YsS0FBSyxrSEFDTCxlQUFlLDhCQUNmLGVBQWUsa2FBQ2Ysb0JBQW9CLHlYQUNwQixnQkFBZ0IsNFRBQ2hCLGVBQWUsNElBQ2YsYUFBYSxvTEFDYixpQkFBaUI7OzRGQUdSLHVCQUF1QjtrQkF2Qm5DLFNBQVM7K0JBQ0Usc0JBQXNCLGNBR3BCLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixtQkFBbUIsRUFBRSwrQkFBK0I7d0JBQ3BELGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNsQjtnRkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQWdCRixZQUFZO3NCQURmLEtBQUs7Z0JBdUJJLE1BQU07c0JBQWYsTUFBTTtnQkFFUCxVQUFVO3NCQURULE1BQU07Z0JBRWUsUUFBUTtzQkFBN0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtcbiAgRGF0ZUFkYXB0ZXIsXG4gIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gIE1hdE9wdGlvbk1vZHVsZSxcbiAgVGhlbWVQYWxldHRlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTbGlkZXIsIE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XG5cbmltcG9ydCB7IE1hdERhdGV0aW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgbW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcbmltcG9ydCB7IFRpbWVGaWx0ZXJTdHlsZSwgVGltZUZpbHRlclR5cGUgfSBmcm9tICcuLi9zaGFyZWQvdGltZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXRpbWVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSwgLy8gRm9yIHRoZSBEYXRlQWRhcHRlciBwcm92aWRlclxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBASW5wdXQoKSBvcHRpb25zOiBUaW1lRmlsdGVyT3B0aW9ucztcblxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcbiAgcHVibGljIGRhdGU6IERhdGU7XG4gIHB1YmxpYyBzdGFydERhdGU6IERhdGU7XG4gIHB1YmxpYyBlbmREYXRlOiBEYXRlO1xuICBwdWJsaWMgeWVhcjogYW55O1xuICBwdWJsaWMgc3RhcnRZZWFyOiBhbnk7XG4gIHB1YmxpYyBlbmRZZWFyOiBhbnk7XG4gIHB1YmxpYyBpbml0U3RhcnRZZWFyOiBhbnk7XG4gIHB1YmxpYyBpbml0RW5kWWVhcjogYW55O1xuICBwdWJsaWMgbGlzdFllYXJzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgc3RhcnRMaXN0WWVhcnM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBlbmRMaXN0WWVhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgc2V0IGN1cnJlbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy50eXBlICE9PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlQXJyYXkgPSB2YWx1ZS5zcGxpdCgnLycpO1xuICAgICAgICBpZiAodmFsdWVBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVswXSk7XG4gICAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG5ldyBEYXRlKHZhbHVlQXJyYXlbMV0pO1xuICAgICAgICAgIGlmICghaXNOYU4oc3RhcnREYXRlLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gc3RhcnREYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWlzTmFOKGVuZERhdGUudmFsdWVPZigpKSkge1xuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gZW5kRGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW50ZXJ2YWw6IGFueTtcbiAgcHVibGljIHBsYXlJY29uID0gJ3BsYXlfY2lyY2xlJztcbiAgcHVibGljIHJlc2V0SWNvbiA9ICdyZXBsYXknO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBbRGF0ZSwgRGF0ZV0+KCk7XG4gIEBPdXRwdXQoKVxuICB5ZWFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddPigpO1xuICBAVmlld0NoaWxkKE1hdFNsaWRlcikgbXlTbGlkZXI7XG5cbiAgZ2V0IHR5cGUoKTogVGltZUZpbHRlclR5cGUge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMudHlwZSA9PT0gdW5kZWZpbmVkXG4gICAgICA/IFRpbWVGaWx0ZXJUeXBlLkRBVEVcbiAgICAgIDogdGhpcy5vcHRpb25zLnR5cGU7XG4gIH1cblxuICBnZXQgaXNSYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJhbmdlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUlxuICAgICAgPyBmYWxzZVxuICAgICAgOiB0aGlzLm9wdGlvbnMucmFuZ2U7XG4gIH1cblxuICBnZXQgc3R5bGUoKTogVGltZUZpbHRlclN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0eWxlID09PSB1bmRlZmluZWRcbiAgICAgID8gVGltZUZpbHRlclN0eWxlLlNMSURFUlxuICAgICAgOiB0aGlzLm9wdGlvbnMuc3R5bGU7XG4gIH1cblxuICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgIGxldCBzdGVwID0gMTA4MDAwMDA7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdGVwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRTpcbiAgICAgICAgICBzdGVwID0gMTA4MDAwMDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcbiAgICAgICAgICBzdGVwID0gMzYwMDAwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5ZRUFSOlxuICAgICAgICAgIHN0ZXAgPSAzMTUzNjAwMDAwMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdGVwID0gMTA4MDAwMDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ZXAgPSB0aGlzLmdldFN0ZXBEZWZpbml0aW9uKHRoaXMub3B0aW9ucy5zdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIGdldCB0aW1lSW50ZXJ2YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IDIwMDBcbiAgICAgIDogdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbDtcbiAgfVxuXG4gIGdldCBtaW4oKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW4pIHtcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5taW4pO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1pbi5nZXRUaW1lKCkgKyBtaW4uZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnZXQgbWF4KCk6IERhdGUge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4KSB7XG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMubWF4KTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtYXguZ2V0VGltZSgpICsgbWF4LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogdGhpcy5vcHRpb25zLnJhbmdlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4pIHtcbiAgICB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZSgnZnInKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXJ0WWVhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXJ0WWVhciA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRGdWxsWWVhcigpO1xuICAgICAgdGhpcy5pbml0U3RhcnRZZWFyID0gdGhpcy5zdGFydFllYXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmVuZFllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbmRZZWFyID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRGdWxsWWVhcigpO1xuICAgICAgdGhpcy5pbml0RW5kWWVhciA9IHRoaXMuZW5kWWVhcjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNSYW5nZSkge1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyOyBpIDw9IHRoaXMuZW5kWWVhciArIDE7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzLnB1c2goaSk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuZW5kWWVhcjsgaSsrKSB7XG4gICAgICAgIHRoaXMuZW5kTGlzdFllYXJzLnB1c2goaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID1cbiAgICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID09PSB1bmRlZmluZWQgPyB0cnVlIDogdGhpcy5vcHRpb25zLmVuYWJsZWQ7XG4gICAgdGhpcy5jaGVja0ZpbHRlclZhbHVlKCk7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbmFibGVkKSB7XG4gICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0eWxlID09PSAnc2xpZGVyJyAmJiB0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlQ3VycmVudEZpbHRlclZhbHVlKCk7XG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICBzdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpIHtcbiAgICAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcbiAgICApIHtcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMueWVhci50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRmlsdGVyVmFsdWUoKSB7XG4gICAgY29uc3Qgb2xTb3VyY2UgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VJbWFnZVdNUztcbiAgICBjb25zdCB0aW1lRnJvbVdtcyA9IG9sU291cmNlLmdldFBhcmFtcygpLlRJTUU7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXG4gICAgKSB7XG4gICAgICBpZiAodGltZUZyb21XbXMpIHtcbiAgICAgICAgdGhpcy55ZWFyID0gbmV3IERhdGUodGltZUZyb21XbXMudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy52YWx1ZSkge1xuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMudmFsdWUudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm1pbikuZ2V0RnVsbFllYXIoKSArIDE7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuaXNSYW5nZSAmJlxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLkNBTEVOREFSICYmXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcbiAgICApIHtcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xuICAgICAgICB0aGlzLnN0YXJ0WWVhciA9IHBhcnNlSW50KHRpbWVGcm9tV21zLnN1YnN0cigwLCA0KSwgMTApO1xuICAgICAgICB0aGlzLmVuZFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoNSwgNCksIDEwKTtcbiAgICAgICAgY29uc3QgbmV3U3RhcnRMaXN0WWVhcnM6IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IG5ld0VuZExpc3RZZWFyczogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuaW5pdFN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XG4gICAgICAgICAgbmV3U3RhcnRMaXN0WWVhcnMucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xuICAgICAgICAgIG5ld0VuZExpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBuZXdTdGFydExpc3RZZWFycztcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMgPSBuZXdFbmRMaXN0WWVhcnM7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxuICB9XG5cbiAgaGFuZGxlRGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xuICAgIHRoaXMuYXBwbHlUeXBlQ2hhbmdlKCk7XG5cbiAgICAvLyBPbmx5IGlmIGlzIHJhbmdlLCB1c2UgMiBkYXRlcyB0byBtYWtlIHRoZSByYW5nZVxuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlWWVhckNoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICB0aGlzLmVuZExpc3RZZWFycyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyICsgMTsgaSA8PSB0aGlzLmluaXRFbmRZZWFyOyBpKyspIHtcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXIgKyAxOyBpIDwgdGhpcy5lbmRZZWFyOyBpKyspIHtcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xuICAgICAgfVxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVMaXN0WWVhckNoYW5nZSgpIHtcbiAgICB0aGlzLmhhbmRsZVllYXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGhhbmRsZUxpc3RZZWFyU3RhcnRDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChbdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZV0pO1xuICB9XG5cbiAgZGF0ZVRvTnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCBuZXdEYXRlO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0RhdGUuZ2V0VGltZSgpO1xuICB9XG5cbiAgc2V0U2xpZGVyVGh1bWJMYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgY29uc3QgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwoXG4gICAgICB0aGlzLm15U2xpZGVyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1xuICAgICk7XG4gICAgaWYgKHRodW1iTGFiZWwpIHtcbiAgICAgIHRodW1iTGFiZWwudGV4dENvbnRlbnQgPSBsYWJlbDtcbiAgICB9XG4gIH1cblxuICBmaW5kVGh1bWJMYWJlbCh0ZXN0OiBhbnlbXSk6IGFueSB7XG4gICAgbGV0IHRodW1iTGFiZWw7XG5cbiAgICB0ZXN0LmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUuY2xhc3NOYW1lID09PSAnbWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0Jykge1xuICAgICAgICB0aHVtYkxhYmVsID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZS5jaGlsZHJlbi5sZW5ndGggPiAwICYmICF0aHVtYkxhYmVsKSB7XG4gICAgICAgIHRodW1iTGFiZWwgPSB0aGlzLmZpbmRUaHVtYkxhYmVsKHZhbHVlLmNoaWxkTm9kZXMpO1xuICAgICAgfVxuICAgIH0sIHRoaXMpO1xuICAgIHJldHVybiB0aHVtYkxhYmVsO1xuICB9XG5cbiAgdG9nZ2xlRmlsdGVyU3RhdGUoKSB7XG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSAhdGhpcy5vcHRpb25zLmVuYWJsZWQ7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmVuYWJsZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgICBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxuICAgICAgKSB7XG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xuICAgICAgdGhpcy5zdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcigpIHtcbiAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XG4gICAgdGhpcy55ZWFyID0gdGhpcy5kYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxuICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXG4gICAgKSB7XG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cbiAgICB9XG4gIH1cblxuICBwbGF5RmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZV9jaXJjbGUnO1xuICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKFxuICAgICAgICAodGhhdCkgPT4ge1xuICAgICAgICAgIGxldCBuZXdNaW5EYXRlTnVtYmVyO1xuICAgICAgICAgIGNvbnN0IG1heERhdGVOdW1iZXIgPSBuZXcgRGF0ZSh0aGF0Lm1heCk7XG5cbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyID1cbiAgICAgICAgICAgIHRoYXQuZGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhhdC5taW4uZ2V0VGltZSgpIDogdGhhdC5kYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyICs9IHRoYXQubXlTbGlkZXIuc3RlcDtcbiAgICAgICAgICB0aGF0LmRhdGUgPSBuZXcgRGF0ZShuZXdNaW5EYXRlTnVtYmVyKTtcblxuICAgICAgICAgIGlmIChuZXdNaW5EYXRlTnVtYmVyID4gbWF4RGF0ZU51bWJlci5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgIHRoYXQuc3RvcEZpbHRlcigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoYXQuaGFuZGxlRGF0ZUNoYW5nZSgpO1xuICAgICAgICB9LFxuICAgICAgICB0aGlzLnRpbWVJbnRlcnZhbCxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwbGF5WWVhcigpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXAgPlxuICAgICAgdGhpcy5tYXguZ2V0RnVsbFllYXIoKSArIHRoaXMubXlTbGlkZXIuc3RlcFxuICAgICkge1xuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XG4gICAgICB0aGlzLnJlc2V0RmlsdGVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZV9jaXJjbGUnO1xuICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcCA+IHRoaXMubWF4LmdldEZ1bGxZZWFyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMudGltZUludGVydmFsLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5X2NpcmNsZSc7XG4gIH1cblxuICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZShldmVudC52YWx1ZSk7XG4gICAgdGhpcy5zZXRTbGlkZXJUaHVtYkxhYmVsKHRoaXMuaGFuZGxlU2xpZGVyVG9vbHRpcCgpKTtcbiAgICB0aGlzLmhhbmRsZURhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIGhhbmRsZVNsaWRlclllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMueWVhciA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XG4gIH1cblxuICBoYW5kbGVTbGlkZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY3VycmVudCA9PT0gdHJ1ZSB8fCAhdGhpcy5taW4pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuZ2V0Um91bmRlZERhdGUoY3VycmVudERhdGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XG4gICAgICByZXR1cm4gdGhpcy55ZWFyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbi5nZXRUaW1lKCkgOiB0aGlzLmRhdGUuZ2V0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNsaWRlclRvb2x0aXAoKSB7XG4gICAgbGV0IGxhYmVsOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFOlxuICAgICAgICBsYWJlbCA9XG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy5taW4udG9EYXRlU3RyaW5nKClcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcbiAgICAgICAgbGFiZWwgPVxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVGltZVN0cmluZygpXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b1RpbWVTdHJpbmcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBkYXRldGltZVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGFiZWwgPVxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVVRDU3RyaW5nKClcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHNldHVwRGF0ZU91dHB1dCgpIHtcbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUikge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xuICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygtKHRoaXMuc3RlcCAvIDEwMDApKTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKTtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKHRoaXMuc3RlcCAvIDEwMDApO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNSYW5nZSAmJiAhIXRoaXMuZGF0ZSkge1xuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNSYW5nZSAmJiAoISF0aGlzLmRhdGUgfHwgIXRoaXMuZGF0ZSkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cbiAgICAgICAgdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWluKSA6IHRoaXMuc3RhcnREYXRlO1xuICAgICAgdGhpcy5lbmREYXRlID1cbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XG4gICAgfSBlbHNlIGlmICghdGhpcy5kYXRlKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9XG4gICAgICAgIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiB0aGlzLnN0YXJ0RGF0ZTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5tYXgpIDogdGhpcy5lbmREYXRlO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5VHlwZUNoYW5nZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFOlxuICAgICAgICBpZiAodGhpcy5zdGFydERhdGUgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmVuZERhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKDApO1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoMCk7XG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoMjMpO1xuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRNaW51dGVzKDU5KTtcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XG4gICAgICAgIGlmICh0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIpIHtcbiAgICAgICAgICBpZiAodGhpcy5zdGFydERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRIb3VycygpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNaW51dGUgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMubWluO1xuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLmVuZERhdGUuZ2V0SG91cnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTWludXRlID0gdGhpcy5lbmREYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMubWluO1xuICAgICAgICAgICAgdGhpcy5lbmREYXRlLnNldEhvdXJzKHNlbGVjdGVkSG91cik7XG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdGVwID4gNjAgKiA2MCAqIDEwMDApIHtcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKDApO1xuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKDU5KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIC8vIGRhdGV0aW1lXG4gICAgICBkZWZhdWx0OlxuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlTWluRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IHRoaXMubWluIDogdGhpcy5zdGFydERhdGU7XG4gIH1cblxuICBnZXRSYW5nZU1heERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5tYXggOiB0aGlzLmVuZERhdGU7XG4gIH1cblxuICAvKipcbiAgICogUm91bmQgZGF0ZSBhdCBhIGNlcnRhaW4gdGltZSwgMTAgbWludXRlcyBieSBEZWZhdWx0XG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB0byBSb3VuZFxuICAgKiBAcGFyYW0gYXRNaW51dGUgLSByb3VuZCB0byBjbG9zZXN0ICdhdE1pbnV0ZScgbWludXRlLCByb3VuZGVkIDEwIGJ5IGRlZmF1bHRcbiAgICogQHJldHVybiB0aGUgcm91bmRlZCBkYXRlXG4gICAqL1xuICBnZXRSb3VuZGVkRGF0ZShkYXRlLCBhdE1pbnV0ZSA9IDEwKSB7XG4gICAgY29uc3QgY29lZmYgPSAxMDAwICogNjAgKiBhdE1pbnV0ZTtcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5yb3VuZChkYXRlLmdldFRpbWUoKSAvIGNvZWZmKSAqIGNvZWZmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0ZXAgKHBlcmlvZCkgZGVmaW5pdGlvbiBmcm9tIHRoZSBsYXllciBkaW1lbnNpb24gdGFnXG4gICAqIEBwYXJhbSBzdGVwIFRoZSBzdGVwIGFzIElTTyA4NjAxIGV4YW1wbGU6IFBUMTBNIGZvciAxMCBNaW51dGVzXG4gICAqIEByZXR1cm4gdGhlIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgKi9cbiAgZ2V0U3RlcERlZmluaXRpb24oc3RlcCkge1xuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24oc3RlcCkuYXNNaWxsaXNlY29uZHMoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXG4gICAgICAgIFtmb3JdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW29wZW5PbkZvY3VzXT1cInRydWVcIlxuICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby50aW1lRmlsdGVyLmRhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxuICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNSYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1pbkRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtaW5EYXRldGltZVBpY2tlclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwibWluRGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RhcnREYXRlXCJcbiAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgW21heF09XCJnZXRSYW5nZU1heERhdGUoKVwiXG4gICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXG4gICAgICAgICAgKGlucHV0KT1cIihzdGFydERhdGUpXCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtYXhEYXRldGltZVBpY2tlclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZERhdGVcIlxuICAgICAgICAgIFttaW5dPVwiZ2V0UmFuZ2VNaW5EYXRlKClcIlxuICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgPT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwieWVhclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInllYXJcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiBsaXN0WWVhcnNcIj57e1xuICAgICAgICAgIHllYXJcbiAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImlzUmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0WWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydFllYXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXJ0WWVhciBvZiBzdGFydExpc3RZZWFyc1wiXG4gICAgICAgICAgICA+e3sgc3RhcnRZZWFyIH19PC9tYXQtb3B0aW9uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kRGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZW5kWWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImVuZFllYXJcIiAqbmdGb3I9XCJsZXQgZW5kWWVhciBvZiBlbmRMaXN0WWVhcnNcIj57e1xuICAgICAgICAgICAgZW5kWWVhclxuICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YnIgLz5cbjxkaXZcbiAgKm5nSWY9XCIhaXNSYW5nZSAmJiBzdHlsZSA9PT0gJ3NsaWRlcicgJiYgdHlwZSA9PT0gJ3llYXInXCJcbiAgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW0gbWF0LXR5cG9ncmFwaHlcIlxuPlxuICA8c3Bhbj57eyBzdGFydFllYXIgfX08L3NwYW4+XG4gIDwhLS0gVE9ETzogVGhlICd0aWNrSW50ZXJ2YWwnIHByb3BlcnR5IG5vIGxvbmdlciBleGlzdHMgLS0+XG4gIDxtYXQtc2xpZGVyXG4gICAgaWQ9XCJ0aW1lLXNsaWRlclwiXG4gICAgc3RlcD1cInt7IHN0ZXAgfX1cIlxuICAgIFttaW5dPVwic3RhcnRZZWFyXCJcbiAgICBbbWF4XT1cImVuZFllYXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgdGh1bWJMYWJlbFxuICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZSh7XG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXG4gICAgICAgICAgdmFsdWU6IG5nU2xpZGVyVGh1bWIudmFsdWVcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9tYXQtc2xpZGVyPlxuICA8c3Bhbj57eyBlbmRZZWFyIH19PC9zcGFuPlxuICA8cCAqbmdJZj1cIm9wdGlvbnMuZW5hYmxlZFwiIGNsYXNzPVwiZGF0ZS1iZWxvd1wiPnt7IHllYXIgfX08L3A+XG4gIDxkaXYgI2FjdGlvbnMgY2xhc3M9XCJpZ28tbGF5ZXItYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVGaWx0ZXJTdGF0ZSgpXCJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci50b2dnbGVGaWx0ZXJTdGF0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtjaGVja2VkXT1cIm9wdGlvbnMuZW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWxheWVyLnZpc2libGVcIlxuICAgID5cbiAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInBsYXlZZWFyKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj57eyBwbGF5SWNvbiB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj57eyByZXNldEljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwic3R5bGUgPT09ICdzbGlkZXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tXCJcbj5cbiAgPCEtLSBUT0RPOiBUaGUgJ3RpY2tJbnRlcnZhbCcgcHJvcGVydHkgbm8gbG9uZ2VyIGV4aXN0cyAtLT5cbiAgPG1hdC1zbGlkZXJcbiAgICBpZD1cInRpbWUtc2xpZGVyXCJcbiAgICBzdGVwPVwie3sgc3RlcCB9fVwiXG4gICAgW21pbl09XCJkYXRlVG9OdW1iZXIobWluKVwiXG4gICAgW21heF09XCJkYXRlVG9OdW1iZXIobWF4KVwiXG4gICAgdGh1bWJMYWJlbFxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlU2xpZGVyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgIC8+XG4gIDwvbWF0LXNsaWRlcj5cbiAgPHAgY2xhc3M9XCJkYXRlLWJlbG93XCI+e3sgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIH19PC9wPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicGxheUZpbHRlcigpXCI+XG4gICAgPG1hdC1pY29uPnt7IHBsYXlJY29uIH19PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -63,10 +63,10 @@ export class TimeFilterItemComponent {
|
|
|
63
63
|
toggleFiltersCollapsed() {
|
|
64
64
|
this.filtersCollapsed = !this.filtersCollapsed;
|
|
65
65
|
}
|
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterItemComponent, deps: [{ token: i1.TimeFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TimeFilterItemComponent, isStandalone: true, selector: "igo-time-filter-item", inputs: { header: "header", layer: "layer" }, providers: [TimeFilterService], ngImport: i0, template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n >\n expand_less\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n >{{ layer.visible ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (change)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "component", type: TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: ["layer", "options", "currentValue"], outputs: ["change", "yearChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterItemComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'igo-time-filter-item', standalone: true, imports: [
|
|
72
72
|
NgIf,
|
|
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
87
87
|
}], layer: [{
|
|
88
88
|
type: Input
|
|
89
89
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1pdGVtL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBDb2xsYXBzZURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9jb2xsYXBzaWJsZSc7XG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBMYXllckxlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby10aW1lLWZpbHRlci1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBDb2xsYXBzZURpcmVjdGl2ZSxcbiAgICBOZ1N0eWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXG4gICAgVGltZUZpbHRlckZvcm1Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1RpbWVGaWx0ZXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGNvbG9yID0gJ3ByaW1hcnknO1xuICBzaG93TGVnZW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBpblJlc29sdXRpb25SYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xuXG4gIGZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBoZWFkZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBnZXQgZGF0YXNvdXJjZSgpOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZUZpbHRlclNlcnZpY2U6IFRpbWVGaWx0ZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dCh0aGlzLmxheWVyLmlzSW5SZXNvbHV0aW9uc1JhbmdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBoYW5kbGVZZWFyQ2hhbmdlKHllYXI6IHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ10pIHtcbiAgICB0aGlzLnRpbWVGaWx0ZXJTZXJ2aWNlLmZpbHRlckJ5WWVhcih0aGlzLmRhdGFzb3VyY2UsIHllYXIpO1xuICB9XG5cbiAgaGFuZGxlRGF0ZUNoYW5nZShkYXRlOiBEYXRlIHwgW0RhdGUsIERhdGVdKSB7XG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeURhdGUodGhpcy5kYXRhc291cmNlLCBkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd0xlZ2VuZCQubmV4dCghY29sbGFwc2VkKTtcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZE9uQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRWaXNpYmxlKCkge1xuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9ICF0aGlzLmZpbHRlcnNDb2xsYXBzZWQ7XG4gIH1cbn1cbiIsIjxtYXQtbGlzdC1pdGVtICpuZ0lmPVwiaGVhZGVyXCI+XG4gIDxtYXQtaWNvblxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgIG1hdExpc3RJdGVtSWNvblxuICAgIGlnb0NvbGxhcHNlXG4gICAgW3RhcmdldF09XCJmaWx0ZXJzXCJcbiAgICBbY29sbGFwc2VkXT1cImZpbHRlcnNDb2xsYXBzZWRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKClcIlxuICA+XG4gICAgZXhwYW5kX2xlc3NcbiAgPC9tYXQtaWNvbj5cblxuICA8c3BhblxuICAgIG1hdExpc3RJdGVtVGl0bGVcbiAgICAoY2xpY2spPVwidG9nZ2xlTGVnZW5kT25DbGljaygpXCJcbiAgICBbbmdTdHlsZV09XCJ7IGN1cnNvcjogZmlsdGVyc0NvbGxhcHNlZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJyB9XCJcbiAgICA+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW5cbiAgPlxuXG4gIDxidXR0b25cbiAgICAqbmdJZj1cImhlYWRlclwiXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgbWF0TGlzdEl0ZW1NZXRhXG4gICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgIGNvbGxhcHNpYmxlQnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgIGxheWVyLnZpc2libGVcbiAgICAgICAgPyAoJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIChjbGljayk9XCJsYXllci52aXNpYmxlID0gIWxheWVyLnZpc2libGVcIlxuICA+XG4gICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxuICAgICAgPnt7IGxheWVyLnZpc2libGUgPyAndmlzaWJpbGl0eScgOiAndmlzaWJpbGl0eV9vZmYnIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L21hdC1saXN0LWl0ZW0+XG5cbjxkaXYgI2ZpbHRlcnMgY2xhc3M9XCJpZ28tZGF0YXNvdXJjZS1maWx0ZXJzLWNvbnRhaW5lclwiPlxuICA8ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxuICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxuICAgIDwvaWdvLWxheWVyLWxlZ2VuZD5cbiAgPC9kaXY+XG4gIDxpZ28tdGltZS1maWx0ZXItZm9ybVxuICAgIFtsYXllcl09XCJsYXllclwiXG4gICAgW29wdGlvbnNdPVwiZGF0YXNvdXJjZS5vcHRpb25zLnRpbWVGaWx0ZXJcIlxuICAgIFtjdXJyZW50VmFsdWVdPVwiZGF0YXNvdXJjZS5vcHRpb25zLnBhcmFtcy5USU1FXCJcbiAgICAoY2hhbmdlKT1cImhhbmRsZURhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHllYXJDaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICA8L2lnby10aW1lLWZpbHRlci1mb3JtPlxuPC9kaXY+XG4iXX0=
|
|
@@ -22,10 +22,10 @@ export class TimeFilterListBindingDirective {
|
|
|
22
22
|
ngOnDestroy() {
|
|
23
23
|
this.layers$$.unsubscribe();
|
|
24
24
|
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterListBindingDirective, deps: [{ token: i1.TimeFilterListComponent, self: true }, { token: i2.MapService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: TimeFilterListBindingDirective, isStandalone: true, selector: "[igoTimeFilterListBinding]", ngImport: i0 });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterListBindingDirective, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: '[igoTimeFilterListBinding]',
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.TimeFilterListComponent, decorators: [{
|
|
35
35
|
type: Self
|
|
36
36
|
}] }, { type: i2.MapService }] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QtYmluZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQU12RSxNQUFNLE9BQU8sOEJBQThCO0lBTS9CO0lBTEYsU0FBUyxDQUEwQjtJQUNuQyxRQUFRLENBQWU7SUFFL0IsWUFDVSxTQUFrQyxFQUNsQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO3dHQXRCVSw4QkFBOEI7NEZBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQU1JLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT25Jbml0LCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuc2VydmljZSc7XG5pbXBvcnQgeyBUaW1lRmlsdGVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvVGltZUZpbHRlckxpc3RCaW5kaW5nXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckxpc3RCaW5kaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbXBvbmVudDogVGltZUZpbHRlckxpc3RDb21wb25lbnQ7XG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIGNvbXBvbmVudDogVGltZUZpbHRlckxpc3RDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5wdXQgbGF5ZXJzXG4gICAgdGhpcy5jb21wb25lbnQubGF5ZXJzID0gW107XG5cbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5tYXBTZXJ2aWNlLmdldE1hcCgpLmxheWVycyQuc3Vic2NyaWJlKChsYXllcnMpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50LmxheWVycyA9IGxheWVycztcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -17,10 +17,10 @@ export class TimeFilterListComponent {
|
|
|
17
17
|
constructor(cdRef) {
|
|
18
18
|
this.cdRef = cdRef;
|
|
19
19
|
}
|
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TimeFilterListComponent, isStandalone: true, selector: "igo-time-filter-list", inputs: { layers: "layers" }, ngImport: i0, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template\n ngFor\n let-layer\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\n >\n <igo-time-filter-item\n [header]=\"true\"\n igoListItem\n [layer]=\"layer\"\n ></igo-time-filter-item>\n </ng-template>\n</igo-list>\n", dependencies: [{ kind: "component", type: ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "pipe", type: FilterableDataSourcePipe, name: "filterableDataSource" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TimeFilterListComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{ selector: 'igo-time-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26
26
|
ListComponent,
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
32
32
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { layers: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItbGlzdC90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQWV6RixNQUFNLE9BQU8sdUJBQXVCO0lBV2Q7SUFWcEIsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNPLE9BQU8sR0FBWSxFQUFFLENBQUM7SUFFOUIsWUFBb0IsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO3dHQVhyQyx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw4R0MzQnBDLGdVQWFBLDRDRE9JLGFBQWEsMEZBQ2IsS0FBSyxtSEFDTCx1QkFBdUIsOEZBQ3ZCLGlCQUFpQix3UkFDakIsd0JBQXdCOzs0RkFHZix1QkFBdUI7a0JBYm5DLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsS0FBSzt3QkFDTCx1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsd0JBQXdCO3FCQUN6QjtzRkFJRyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2xpc3QnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgRmlsdGVyYWJsZURhdGFTb3VyY2VQaXBlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlJztcbmltcG9ydCB7IFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby10aW1lLWZpbHRlci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExpc3RDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgVGltZUZpbHRlckl0ZW1Db21wb25lbnQsXG4gICAgTGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgRmlsdGVyYWJsZURhdGFTb3VyY2VQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckxpc3RDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgbGF5ZXJzKCk6IExheWVyW10ge1xuICAgIHJldHVybiB0aGlzLl9sYXllcnM7XG4gIH1cbiAgc2V0IGxheWVycyh2YWx1ZTogTGF5ZXJbXSkge1xuICAgIHRoaXMuX2xheWVycyA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIHByaXZhdGUgX2xheWVyczogTGF5ZXJbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxufVxuIiwiPGlnby1saXN0IFtuYXZpZ2F0aW9uXT1cImZhbHNlXCIgW3NlbGVjdGlvbl09XCJmYWxzZVwiPlxuICA8bmctdGVtcGxhdGVcbiAgICBuZ0ZvclxuICAgIGxldC1sYXllclxuICAgIFtuZ0Zvck9mXT1cImxheWVycyB8IGZpbHRlcmFibGVEYXRhU291cmNlOiAndGltZSdcIlxuICA+XG4gICAgPGlnby10aW1lLWZpbHRlci1pdGVtXG4gICAgICBbaGVhZGVyXT1cInRydWVcIlxuICAgICAgaWdvTGlzdEl0ZW1cbiAgICAgIFtsYXllcl09XCJsYXllclwiXG4gICAgPjwvaWdvLXRpbWUtZmlsdGVyLWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuIl19
|
|
@@ -13,8 +13,8 @@ import { IgoWktModule } from './wkt/wkt.module';
|
|
|
13
13
|
import { IgoGeoWorkspaceModule } from './workspace/workspace.module';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class IgoGeoModule {
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoGeoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: IgoGeoModule, exports: [IgoDownloadModule,
|
|
18
18
|
IgoFilterModule,
|
|
19
19
|
IgoImportExportModule,
|
|
20
20
|
IgoLayerModule,
|
|
@@ -26,7 +26,7 @@ export class IgoGeoModule {
|
|
|
26
26
|
IgoGeoWorkspaceModule,
|
|
27
27
|
IgoStyleModule,
|
|
28
28
|
IgoWktModule] });
|
|
29
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoGeoModule, imports: [IgoDownloadModule,
|
|
30
30
|
IgoFilterModule,
|
|
31
31
|
IgoImportExportModule,
|
|
32
32
|
IgoLayerModule,
|
|
@@ -39,7 +39,7 @@ export class IgoGeoModule {
|
|
|
39
39
|
IgoStyleModule,
|
|
40
40
|
IgoWktModule] });
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoGeoModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [],
|
|
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
60
60
|
]
|
|
61
61
|
}]
|
|
62
62
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2dlby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBb0JyRSxNQUFNLE9BQU8sWUFBWTt3R0FBWixZQUFZO3lHQUFaLFlBQVksWUFkckIsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxZQUFZO3lHQUdILFlBQVksWUFkckIsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxZQUFZOzs0RkFHSCxZQUFZO2tCQWxCeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWdvRGlyZWN0aW9uc01vZHVsZSB9IGZyb20gJy4vZGlyZWN0aW9ucy9kaXJlY3Rpb25zLm1vZHVsZSc7XG5pbXBvcnQgeyBJZ29Eb3dubG9hZE1vZHVsZSB9IGZyb20gJy4vZG93bmxvYWQvZG93bmxvYWQubW9kdWxlJztcbmltcG9ydCB7IElnb0ZpbHRlck1vZHVsZSB9IGZyb20gJy4vZmlsdGVyL2ZpbHRlci5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvSW1wb3J0RXhwb3J0TW9kdWxlIH0gZnJvbSAnLi9pbXBvcnQtZXhwb3J0L2ltcG9ydC1leHBvcnQubW9kdWxlJztcbmltcG9ydCB7IElnb0xheWVyTW9kdWxlIH0gZnJvbSAnLi9sYXllci9sYXllci5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvTWV0YWRhdGFNb2R1bGUgfSBmcm9tICcuL21ldGFkYXRhL21ldGFkYXRhLm1vZHVsZSc7XG5pbXBvcnQgeyBJZ29RdWVyeU1vZHVsZSB9IGZyb20gJy4vcXVlcnkvcXVlcnkubW9kdWxlJztcbmltcG9ydCB7IElnb1NlYXJjaE1vZHVsZSB9IGZyb20gJy4vc2VhcmNoL3NlYXJjaC5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvU3R5bGVNb2R1bGUgfSBmcm9tICcuL3N0eWxlL3N0eWxlLm1vZHVsZSc7XG5pbXBvcnQgeyBJZ29Ub2FzdE1vZHVsZSB9IGZyb20gJy4vdG9hc3QvdG9hc3QubW9kdWxlJztcbmltcG9ydCB7IElnb1drdE1vZHVsZSB9IGZyb20gJy4vd2t0L3drdC5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvR2VvV29ya3NwYWNlTW9kdWxlIH0gZnJvbSAnLi93b3Jrc3BhY2Uvd29ya3NwYWNlLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleHBvcnRzOiBbXG4gICAgSWdvRG93bmxvYWRNb2R1bGUsXG4gICAgSWdvRmlsdGVyTW9kdWxlLFxuICAgIElnb0ltcG9ydEV4cG9ydE1vZHVsZSxcbiAgICBJZ29MYXllck1vZHVsZSxcbiAgICBJZ29NZXRhZGF0YU1vZHVsZSxcbiAgICBJZ29RdWVyeU1vZHVsZSxcbiAgICBJZ29EaXJlY3Rpb25zTW9kdWxlLFxuICAgIElnb1NlYXJjaE1vZHVsZSxcbiAgICBJZ29Ub2FzdE1vZHVsZSxcbiAgICBJZ29HZW9Xb3Jrc3BhY2VNb2R1bGUsXG4gICAgSWdvU3R5bGVNb2R1bGUsXG4gICAgSWdvV2t0TW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvR2VvTW9kdWxlIHt9XG4iXX0=
|