@igo2/geo 17.0.0-next.5 → 17.0.0-next.6

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.
Files changed (109) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +5 -5
  3. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
  4. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
  5. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  8. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  9. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  10. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  11. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  12. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  13. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  14. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
  15. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
  16. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
  17. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  18. package/esm2022/lib/directions/shared/directions.utils.mjs +21 -21
  19. package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
  20. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -4
  21. package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
  22. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
  23. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  24. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  25. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
  26. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +7 -7
  27. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  28. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  29. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  30. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +3 -3
  31. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
  32. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
  33. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +7 -7
  34. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
  35. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  36. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
  37. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  38. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  39. package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
  40. package/esm2022/lib/import-export/import-export/import-export.component.mjs +1 -1
  41. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
  42. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
  43. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +5 -4
  44. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
  45. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  46. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  47. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
  48. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  49. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
  50. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
  51. package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
  52. package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
  53. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
  54. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +6 -6
  55. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
  56. package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
  57. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  58. package/esm2022/lib/query/shared/query.directive.mjs +1 -1
  59. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  60. package/esm2022/lib/search/search-bar/search-bar.component.mjs +3 -3
  61. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +5 -5
  62. package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
  63. package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
  64. package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
  65. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  66. package/esm2022/lib/search/shared/search.utils.mjs +2 -2
  67. package/esm2022/lib/search/shared/sources/cadastre.mjs +2 -2
  68. package/esm2022/lib/search/shared/sources/coordinates.mjs +2 -2
  69. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  70. package/esm2022/lib/search/shared/sources/icherche.mjs +8 -3
  71. package/esm2022/lib/search/shared/sources/nominatim.mjs +2 -2
  72. package/esm2022/lib/search/shared/sources/storedqueries.mjs +3 -3
  73. package/esm2022/lib/search/shared/sources/workspace.mjs +2 -2
  74. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  75. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
  76. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
  77. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
  78. package/esm2022/lib/toast/toast.component.mjs +3 -3
  79. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +3 -3
  80. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  81. package/fesm2022/igo2-geo.mjs +188 -150
  82. package/fesm2022/igo2-geo.mjs.map +1 -1
  83. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  84. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -3
  85. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -3
  86. package/lib/datasource/shared/datasources/datasource.d.ts +1 -2
  87. package/lib/datasource/shared/datasources/feature-datasource.d.ts +2 -3
  88. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -3
  89. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -2
  90. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +2 -3
  91. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -2
  92. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -2
  93. package/lib/directions/shared/directions.interface.d.ts +2 -9
  94. package/lib/draw/draw/draw-shorcuts.component.d.ts +2 -0
  95. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -2
  96. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -2
  97. package/lib/geometry/shared/controls/draw.d.ts +4 -4
  98. package/lib/geometry/shared/controls/slice.d.ts +4 -4
  99. package/lib/layer/layer-list/layer-list.component.d.ts +2 -0
  100. package/lib/layer/shared/layers/vector-layer.d.ts +3 -4
  101. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -2
  102. package/lib/query/shared/query.interfaces.d.ts +1 -2
  103. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  104. package/lib/search/shared/search.interfaces.d.ts +12 -10
  105. package/lib/search/shared/sources/icherche-icons.d.ts +7 -0
  106. package/lib/style/shared/vector/conversion.utils.d.ts +2 -3
  107. package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
  108. package/package.json +6 -6
  109. package/style/style.css +2 -1
@@ -191,7 +191,7 @@ export class CatalogBrowserGroupComponent {
191
191
  this.collapsed = !this.collapsed;
192
192
  }
193
193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogBrowserGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
194
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogBrowserGroupComponent, isStandalone: true, selector: "igo-catalog-browser-group", inputs: { catalog: "catalog", group: "group", map: "map", collapsed: "collapsed", resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", toggleCollapsed: "toggleCollapsed", state: "state" }, outputs: { addedChange: "addedChange", layerAddedChange: "layerAddedChange" }, ngImport: i0, template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n svgIcon=\"chevron-up\"\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CatalogBrowserLayerComponent, selector: "igo-catalog-browser-layer", inputs: ["resolution", "catalogAllowLegend", "layer", "map", "added"], outputs: ["addedChange", "addedLayerIsPreview"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogBrowserGroupComponent, isStandalone: true, selector: "igo-catalog-browser-group", inputs: { catalog: "catalog", group: "group", map: "map", collapsed: "collapsed", resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", toggleCollapsed: "toggleCollapsed", state: "state" }, outputs: { addedChange: "addedChange", layerAddedChange: "layerAddedChange" }, ngImport: i0, template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n expand_less\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CatalogBrowserLayerComponent, selector: "igo-catalog-browser-layer", inputs: ["resolution", "catalogAllowLegend", "layer", "map", "added"], outputs: ["addedChange", "addedLayerIsPreview"] }, { kind: "directive", type: ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
195
195
  }
196
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogBrowserGroupComponent, decorators: [{
197
197
  type: Component,
@@ -207,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
207
207
  ListItemDirective,
208
208
  AsyncPipe,
209
209
  TranslateModule
210
- ], template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n svgIcon=\"chevron-up\"\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"] }]
210
+ ], template: "<mat-list-item>\n <mat-icon\n matListItemIcon\n igoCollapse\n class=\"igo-chevron catalog-browser-group-carret\"\n [target]=\"items\"\n [collapsed]=\"collapsed\"\n (toggle)=\"onToggleCollapsed($event)\"\n >\n expand_less\n </mat-icon>\n\n <span\n class=\"igo-catalog-group-title\"\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n (click)=\"onTitleClick()\"\n >{{ title }}</span\n >\n\n <div matListItemMeta>\n <button *ngIf=\"group.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloggroup-external-icon\"\n *ngIf=\"group.externalProvider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.group' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n\n <ng-container\n *ngIf=\"(added$ | async) && (preview$ | async) === false; else notadded\"\n >\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.removeFromMap' | translate\"\n color=\"warn\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </ng-container>\n\n <ng-template #notadded>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.group.addToMap' | translate\"\n [disabled]=\"disabled$ | async\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ng-template>\n </div>\n</mat-list-item>\n\n<div #items>\n <ng-template ngFor let-item [ngForOf]=\"store.view.all$() | async\">\n <ng-container *ngIf=\"isGroup(item)\">\n <!-- todo: add display ans manage CatalogItemGroup -->\n </ng-container>\n <ng-container *ngIf=\"isLayer(item)\">\n <igo-catalog-browser-layer\n igoListItem\n [layer]=\"$any(item)\"\n [resolution]=\"resolution\"\n [map]=\"map\"\n [catalogAllowLegend]=\"catalogAllowLegend\"\n [added]=\"state.get(item).added\"\n (addedLayerIsPreview)=\"onLayerPreview($event)\"\n (addedChange)=\"onLayerAddedChange($event)\"\n >\n </igo-catalog-browser-layer>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".igo-catalog-group-title{cursor:pointer}.igo-cataloggroup-external-icon{cursor:help}.catalog-browser-group-carret{margin-right:16px}.igo-catalog-group-title{font-weight:500}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"] }]
211
211
  }], propDecorators: { catalog: [{
212
212
  type: Input
213
213
  }], group: [{
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
229
229
  }], layerAddedChange: [{
230
230
  type: Output
231
231
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBR0wsT0FBTyxFQUlQLGVBQWUsRUFDaEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLDRCQUE0QixF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aEIsSUFBSSw0RkFDSixlQUFlLDRJQUNmLEtBQUssbUhBQ0wsNEJBQTRCLDhMQUM1QixpQkFBaUIsd1JBQ2pCLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sNEJBQTRCO2tCQXBCeEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsNEJBQTRCO3dCQUM1QixpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7OEJBd0JRLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQge1xuICBDb2xsYXBzZURpcmVjdGl2ZSxcbiAgRW50aXR5U3RvcmUsXG4gIExpc3RJdGVtRGlyZWN0aXZlXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0YXRlTWFuYWdlciB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7XG4gIEFkZGVkQ2hhbmdlRW1pdHRlcixcbiAgQWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXIsXG4gIENhdGFsb2csXG4gIENhdGFsb2dJdGVtLFxuICBDYXRhbG9nSXRlbUdyb3VwLFxuICBDYXRhbG9nSXRlbVN0YXRlLFxuICBDYXRhbG9nSXRlbVR5cGVcbn0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IENhdGFsb2dCcm93c2VyTGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci1sYXllci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENhdGFsb2cgYnJvd3NlciBncm91cCBpdGVtXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jYXRhbG9nLWJyb3dzZXItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIENvbGxhcHNlRGlyZWN0aXZlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQ2F0YWxvZ0Jyb3dzZXJMYXllckNvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0Jyb3dzZXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEdyb3VwJ3MgaXRlbXMgc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1TdGF0ZT4oW10pO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFsbCB0aGUgbGF5ZXJzIG9mIHRoZSBncm91cCBhcmUgYWRkZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhZGRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcmV2aWV3JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0b2dnbGUgYnV0dG9uIGlzIGRpc2FibGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2F0YWxvZ1xuICAgKi9cbiAgQElucHV0KCkgY2F0YWxvZzogQ2F0YWxvZztcblxuICAvKipcbiAgICogQ2F0YWxvZyBncm91cFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXA6IENhdGFsb2dJdGVtR3JvdXA7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdyb3VwIGlzIGNvbGxhcHNlZFxuICAgKi9cbiAgQElucHV0KCkgY29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSByZXNvbHV0aW9uOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2F0YWxvZ0FsbG93TGVnZW5kID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdyb3VwIGNhbiBiZSB0b2dnbGVkIHdoZW4gaXQncyBjb2xsYXBzZWRcbiAgICovXG4gIEBJbnB1dCgpIHRvZ2dsZUNvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFBhcmVudCBjYXRhbG9nJ3MgaXRlbXMgc3RvcmUgc3RhdGUuIEdyb3VwcyBzaGFyZSBhIHVuaXF1ZVxuICAgKiBFbnRpdHlTdGF0ZSB0aGF0IHRyYWNrcyB0aGUgZ3JvdXAgYW5kIGl0J3MgbGF5ZXJzIHN0YXRlICh3aGV0aGVyIHRoZXkgYXJlIGFkZGVkIG9yIG5vdCkuXG4gICAqIFNoYXJpbmcgYSB1bmlxdWUgc3RhdGUgd291bGQgYWxzbyBhbGxvdyB1cyB0byBleHBhbmQgdGhpcyBjb21wb25lbnQgdG8gYWxsb3dcbiAgICogdGhlIHNlbGVjdGlvbiBvZiBhIGxheWVyIHdoaWxlIHVuc2VsZWN0aW5nIGFueSBsYXllciBhbHJlYWR5IHNlbGVjdGVkIGluIGFub3RoZXIgZ3JvdXAuXG4gICAqIFRoaXMgY291bGQgYmUgdXNlZnVsIHRvIGRpc3BsYXkgc29tZSBsYXllciBpbmZvIGJlZm9yZSBhZGRpbmcgaXQsIGZvciBleGFtcGxlLlxuICAgKi9cbiAgQElucHV0KCkgc3RhdGU6IEVudGl0eVN0YXRlTWFuYWdlcjxDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1TdGF0ZT47XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWRkL3JlbW92ZSBidXR0b24gb2YgdGhlIGdyb3VwIGlzIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBhZGRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXI+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWRkL3JlbW92ZSBidXR0b24gb2YgYSBsYXllciBpcyBjbGlja2VkXG4gICAqL1xuICBAT3V0cHV0KCkgbGF5ZXJBZGRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkZWRDaGFuZ2VFbWl0dGVyPigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5sb2FkKHRoaXMuZ3JvdXAuaXRlbXMpO1xuICAgIHRoaXMuZXZhbHVhdGVBZGRlZCgpO1xuICAgIHRoaXMuZXZhbHVhdGVEaXNhYmxlZCh0aGlzLmNvbGxhcHNlZCk7XG4gICAgaWYgKHRoaXMuZ3JvdXAuc29ydERpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0b3JlLnZpZXcuc29ydCh7XG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5ncm91cC5zb3J0RGlyZWN0aW9uLFxuICAgICAgICB2YWx1ZUFjY2Vzc29yOiAoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IGl0ZW0udGl0bGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcmUuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaXNHcm91cChpdGVtOiBDYXRhbG9nSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5Hcm91cDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGlzTGF5ZXIoaXRlbTogQ2F0YWxvZ0l0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXRlbS50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXI7XG4gIH1cblxuICAvKipcbiAgICogT24gdG9nZ2xlIGJ1dHRvbiBjbGljaywgZW1pdCB0aGUgYWRkZWQgY2hhbmdlIGV2ZW50XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25Ub2dnbGVDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFkZGVkJC52YWx1ZSA/IHRoaXMucmVtb3ZlKGV2ZW50KSA6IHRoaXMuYWRkKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0b2dnbGUgYnV0dG9uIGNsaWNrLCBlbWl0IHRoZSBhZGRlZCBjaGFuZ2UgZXZlbnRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblRvZ2dsZUNvbGxhcHNlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV2YWx1YXRlRGlzYWJsZWQoY29sbGFwc2VkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgbGF5ZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZCwgZXZhbHVhdGUgaWYgYWxsIHRoZSBsYXllcnMgb2YgdGhlIGdyb3VwXG4gICAqIGFyZSBub3cgYWRkZWQgb3IgcmVtb3ZlZC4gSWYgc28sIGNvbnNpZGVyIHRoYXQgdGhlIGdyb3VwIGl0c2VsZiBpcyBhZGRlZFxuICAgKiBvciByZW1vdmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGV2ZW50IExheWVyIGFkZGVkIGNoYW5nZSBldmVudFxuICAgKi9cbiAgb25MYXllckFkZGVkQ2hhbmdlKGV2ZW50OiBBZGRlZENoYW5nZUVtaXR0ZXIpIHtcbiAgICB0aGlzLmxheWVyQWRkZWRDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgdGhpcy50cnlUb2dnbGVHcm91cChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBhZGRlZCBjaGFuZ2UgZXZlbnQgd2l0aCBhZGRlZCA9IHRydWVcbiAgICovXG4gIHByaXZhdGUgYWRkKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuYWRkZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5hZGRlZENoYW5nZS5lbWl0KHtcbiAgICAgIGFkZGVkOiB0cnVlLFxuICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICBldmVudFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSB0cnVlXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFkZGVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmFkZGVkQ2hhbmdlLmVtaXQoe1xuICAgICAgYWRkZWQ6IGZhbHNlLFxuICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICBldmVudFxuICAgIH0pO1xuICB9XG5cbiAgb25MYXllclByZXZpZXcoZXZlbnQpIHtcbiAgICB0aGlzLnByZXZpZXckLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGFsbCB0aGUgbGF5ZXJzIG9mIHRoZSBncm91cCBhZGRlZCBvciByZW1vdmVkLCBhZGQgb3IgcmVtb3ZlIHRoZSBncm91cCBpdHNlbGYuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgbGFzdCBsYXllciBhZGRlZCBjaGFuZ2UgZXZlbnQgdG8gb2NjdXJcbiAgICovXG4gIHByaXZhdGUgdHJ5VG9nZ2xlR3JvdXAoZXZlbnQ6IEFkZGVkQ2hhbmdlRW1pdHRlcikge1xuICAgIGNvbnN0IGFkZGVkID0gZXZlbnQuYWRkZWQ7XG4gICAgY29uc3QgbGF5ZXIgPSBldmVudC5sYXllcjtcblxuICAgIGNvbnN0IGxheWVyc0FkZGVkID0gdGhpcy5zdG9yZS52aWV3XG4gICAgICAuYWxsKClcbiAgICAgIC5maWx0ZXIoKGl0ZW06IENhdGFsb2dJdGVtKSA9PiBpdGVtLmlkICE9PSBsYXllci5pZClcbiAgICAgIC5tYXAoKGl0ZW06IENhdGFsb2dJdGVtKSA9PiB0aGlzLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZSk7XG5cbiAgICBpZiAobGF5ZXJzQWRkZWQuZXZlcnkoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gYWRkZWQpKSB7XG4gICAgICBhZGRlZCA/IHRoaXMuYWRkKGV2ZW50LmV2ZW50KSA6IHRoaXMucmVtb3ZlKGV2ZW50LmV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWRkZWQkLnZhbHVlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmFkZGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlQWRkZWQoKSB7XG4gICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLmFsbCgpLmV2ZXJ5KChpdGVtOiBDYXRhbG9nSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuICh0aGlzLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZSkgPT09IHRydWU7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRlZCQubmV4dChhZGRlZCk7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlRGlzYWJsZWQoY29sbGFwc2VkOiBib29sZWFuKSB7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMudG9nZ2xlQ29sbGFwc2VkID09PSBmYWxzZSkge1xuICAgICAgZGlzYWJsZWQgPSBjb2xsYXBzZWQ7XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQoZGlzYWJsZWQpO1xuICB9XG5cbiAgb25UaXRsZUNsaWNrKCkge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICB9XG59XG4iLCI8bWF0LWxpc3QtaXRlbT5cbiAgPG1hdC1pY29uXG4gICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgc3ZnSWNvbj1cImNoZXZyb24tdXBcIlxuICAgIGlnb0NvbGxhcHNlXG4gICAgY2xhc3M9XCJpZ28tY2hldnJvbiBjYXRhbG9nLWJyb3dzZXItZ3JvdXAtY2FycmV0XCJcbiAgICBbdGFyZ2V0XT1cIml0ZW1zXCJcbiAgICBbY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiXG4gICAgKHRvZ2dsZSk9XCJvblRvZ2dsZUNvbGxhcHNlZCgkZXZlbnQpXCJcbiAgPlxuICA8L21hdC1pY29uPlxuXG4gIDxzcGFuXG4gICAgY2xhc3M9XCJpZ28tY2F0YWxvZy1ncm91cC10aXRsZVwiXG4gICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cInRpdGxlXCJcbiAgICAoY2xpY2spPVwib25UaXRsZUNsaWNrKClcIlxuICAgID57eyB0aXRsZSB9fTwvc3BhblxuICA+XG5cbiAgPGRpdiBtYXRMaXN0SXRlbU1ldGE+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImdyb3VwLmV4dGVybmFsUHJvdmlkZXJcIiBkaXNhYmxlZD1cInRydWVcIiBtYXQtaWNvbi1idXR0b24+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgY2xhc3M9XCJpZ28tY2F0YWxvZ2dyb3VwLWV4dGVybmFsLWljb25cIlxuICAgICAgICAqbmdJZj1cImdyb3VwLmV4dGVybmFsUHJvdmlkZXJcIlxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLmdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICBzdmdJY29uPVwiZWFydGgtYXJyb3ctcmlnaHRcIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiKGFkZGVkJCB8IGFzeW5jKSAmJiAocHJldmlldyQgfCBhc3luYykgPT09IGZhbHNlOyBlbHNlIG5vdGFkZGVkXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5ncm91cC5yZW1vdmVGcm9tTWFwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICAgIChjbGljayk9XCJvblRvZ2dsZUNsaWNrKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbm90YWRkZWQ+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5ncm91cC5hZGRUb01hcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJwbHVzXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9tYXQtbGlzdC1pdGVtPlxuXG48ZGl2ICNpdGVtcz5cbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNHcm91cChpdGVtKVwiPlxuICAgICAgPCEtLSB0b2RvOiBhZGQgZGlzcGxheSBhbnMgbWFuYWdlIENhdGFsb2dJdGVtR3JvdXAgLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGF5ZXIoaXRlbSlcIj5cbiAgICAgIDxpZ28tY2F0YWxvZy1icm93c2VyLWxheWVyXG4gICAgICAgIGlnb0xpc3RJdGVtXG4gICAgICAgIFtsYXllcl09XCIkYW55KGl0ZW0pXCJcbiAgICAgICAgW3Jlc29sdXRpb25dPVwicmVzb2x1dGlvblwiXG4gICAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgICAgW2NhdGFsb2dBbGxvd0xlZ2VuZF09XCJjYXRhbG9nQWxsb3dMZWdlbmRcIlxuICAgICAgICBbYWRkZWRdPVwic3RhdGUuZ2V0KGl0ZW0pLmFkZGVkXCJcbiAgICAgICAgKGFkZGVkTGF5ZXJJc1ByZXZpZXcpPVwib25MYXllclByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgIChhZGRlZENoYW5nZSk9XCJvbkxheWVyQWRkZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2lnby1jYXRhbG9nLWJyb3dzZXItbGF5ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBR0wsT0FBTyxFQUlQLGVBQWUsRUFDaEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLDRCQUE0QixF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aEIsSUFBSSw0RkFDSixlQUFlLDRJQUNmLEtBQUssbUhBQ0wsNEJBQTRCLDhMQUM1QixpQkFBaUIsd1JBQ2pCLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sNEJBQTRCO2tCQXBCeEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsNEJBQTRCO3dCQUM1QixpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7OEJBd0JRLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQge1xuICBDb2xsYXBzZURpcmVjdGl2ZSxcbiAgRW50aXR5U3RvcmUsXG4gIExpc3RJdGVtRGlyZWN0aXZlXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0YXRlTWFuYWdlciB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7XG4gIEFkZGVkQ2hhbmdlRW1pdHRlcixcbiAgQWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXIsXG4gIENhdGFsb2csXG4gIENhdGFsb2dJdGVtLFxuICBDYXRhbG9nSXRlbUdyb3VwLFxuICBDYXRhbG9nSXRlbVN0YXRlLFxuICBDYXRhbG9nSXRlbVR5cGVcbn0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IENhdGFsb2dCcm93c2VyTGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhdGFsb2ctYnJvd3Nlci1sYXllci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENhdGFsb2cgYnJvd3NlciBncm91cCBpdGVtXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jYXRhbG9nLWJyb3dzZXItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1icm93c2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIENvbGxhcHNlRGlyZWN0aXZlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQ2F0YWxvZ0Jyb3dzZXJMYXllckNvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0Jyb3dzZXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEdyb3VwJ3MgaXRlbXMgc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1TdGF0ZT4oW10pO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFsbCB0aGUgbGF5ZXJzIG9mIHRoZSBncm91cCBhcmUgYWRkZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhZGRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcmV2aWV3JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0b2dnbGUgYnV0dG9uIGlzIGRpc2FibGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2F0YWxvZ1xuICAgKi9cbiAgQElucHV0KCkgY2F0YWxvZzogQ2F0YWxvZztcblxuICAvKipcbiAgICogQ2F0YWxvZyBncm91cFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXA6IENhdGFsb2dJdGVtR3JvdXA7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdyb3VwIGlzIGNvbGxhcHNlZFxuICAgKi9cbiAgQElucHV0KCkgY29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSByZXNvbHV0aW9uOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2F0YWxvZ0FsbG93TGVnZW5kID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdyb3VwIGNhbiBiZSB0b2dnbGVkIHdoZW4gaXQncyBjb2xsYXBzZWRcbiAgICovXG4gIEBJbnB1dCgpIHRvZ2dsZUNvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFBhcmVudCBjYXRhbG9nJ3MgaXRlbXMgc3RvcmUgc3RhdGUuIEdyb3VwcyBzaGFyZSBhIHVuaXF1ZVxuICAgKiBFbnRpdHlTdGF0ZSB0aGF0IHRyYWNrcyB0aGUgZ3JvdXAgYW5kIGl0J3MgbGF5ZXJzIHN0YXRlICh3aGV0aGVyIHRoZXkgYXJlIGFkZGVkIG9yIG5vdCkuXG4gICAqIFNoYXJpbmcgYSB1bmlxdWUgc3RhdGUgd291bGQgYWxzbyBhbGxvdyB1cyB0byBleHBhbmQgdGhpcyBjb21wb25lbnQgdG8gYWxsb3dcbiAgICogdGhlIHNlbGVjdGlvbiBvZiBhIGxheWVyIHdoaWxlIHVuc2VsZWN0aW5nIGFueSBsYXllciBhbHJlYWR5IHNlbGVjdGVkIGluIGFub3RoZXIgZ3JvdXAuXG4gICAqIFRoaXMgY291bGQgYmUgdXNlZnVsIHRvIGRpc3BsYXkgc29tZSBsYXllciBpbmZvIGJlZm9yZSBhZGRpbmcgaXQsIGZvciBleGFtcGxlLlxuICAgKi9cbiAgQElucHV0KCkgc3RhdGU6IEVudGl0eVN0YXRlTWFuYWdlcjxDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1TdGF0ZT47XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWRkL3JlbW92ZSBidXR0b24gb2YgdGhlIGdyb3VwIGlzIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBhZGRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkZWRDaGFuZ2VHcm91cEVtaXR0ZXI+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWRkL3JlbW92ZSBidXR0b24gb2YgYSBsYXllciBpcyBjbGlja2VkXG4gICAqL1xuICBAT3V0cHV0KCkgbGF5ZXJBZGRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkZWRDaGFuZ2VFbWl0dGVyPigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5sb2FkKHRoaXMuZ3JvdXAuaXRlbXMpO1xuICAgIHRoaXMuZXZhbHVhdGVBZGRlZCgpO1xuICAgIHRoaXMuZXZhbHVhdGVEaXNhYmxlZCh0aGlzLmNvbGxhcHNlZCk7XG4gICAgaWYgKHRoaXMuZ3JvdXAuc29ydERpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0b3JlLnZpZXcuc29ydCh7XG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5ncm91cC5zb3J0RGlyZWN0aW9uLFxuICAgICAgICB2YWx1ZUFjY2Vzc29yOiAoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IGl0ZW0udGl0bGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcmUuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaXNHcm91cChpdGVtOiBDYXRhbG9nSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5Hcm91cDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGlzTGF5ZXIoaXRlbTogQ2F0YWxvZ0l0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXRlbS50eXBlID09PSBDYXRhbG9nSXRlbVR5cGUuTGF5ZXI7XG4gIH1cblxuICAvKipcbiAgICogT24gdG9nZ2xlIGJ1dHRvbiBjbGljaywgZW1pdCB0aGUgYWRkZWQgY2hhbmdlIGV2ZW50XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25Ub2dnbGVDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFkZGVkJC52YWx1ZSA/IHRoaXMucmVtb3ZlKGV2ZW50KSA6IHRoaXMuYWRkKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0b2dnbGUgYnV0dG9uIGNsaWNrLCBlbWl0IHRoZSBhZGRlZCBjaGFuZ2UgZXZlbnRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblRvZ2dsZUNvbGxhcHNlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV2YWx1YXRlRGlzYWJsZWQoY29sbGFwc2VkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgbGF5ZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZCwgZXZhbHVhdGUgaWYgYWxsIHRoZSBsYXllcnMgb2YgdGhlIGdyb3VwXG4gICAqIGFyZSBub3cgYWRkZWQgb3IgcmVtb3ZlZC4gSWYgc28sIGNvbnNpZGVyIHRoYXQgdGhlIGdyb3VwIGl0c2VsZiBpcyBhZGRlZFxuICAgKiBvciByZW1vdmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIGV2ZW50IExheWVyIGFkZGVkIGNoYW5nZSBldmVudFxuICAgKi9cbiAgb25MYXllckFkZGVkQ2hhbmdlKGV2ZW50OiBBZGRlZENoYW5nZUVtaXR0ZXIpIHtcbiAgICB0aGlzLmxheWVyQWRkZWRDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgdGhpcy50cnlUb2dnbGVHcm91cChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBhZGRlZCBjaGFuZ2UgZXZlbnQgd2l0aCBhZGRlZCA9IHRydWVcbiAgICovXG4gIHByaXZhdGUgYWRkKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuYWRkZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5hZGRlZENoYW5nZS5lbWl0KHtcbiAgICAgIGFkZGVkOiB0cnVlLFxuICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICBldmVudFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSB0cnVlXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFkZGVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmFkZGVkQ2hhbmdlLmVtaXQoe1xuICAgICAgYWRkZWQ6IGZhbHNlLFxuICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICBldmVudFxuICAgIH0pO1xuICB9XG5cbiAgb25MYXllclByZXZpZXcoZXZlbnQpIHtcbiAgICB0aGlzLnByZXZpZXckLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGFsbCB0aGUgbGF5ZXJzIG9mIHRoZSBncm91cCBhZGRlZCBvciByZW1vdmVkLCBhZGQgb3IgcmVtb3ZlIHRoZSBncm91cCBpdHNlbGYuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgbGFzdCBsYXllciBhZGRlZCBjaGFuZ2UgZXZlbnQgdG8gb2NjdXJcbiAgICovXG4gIHByaXZhdGUgdHJ5VG9nZ2xlR3JvdXAoZXZlbnQ6IEFkZGVkQ2hhbmdlRW1pdHRlcikge1xuICAgIGNvbnN0IGFkZGVkID0gZXZlbnQuYWRkZWQ7XG4gICAgY29uc3QgbGF5ZXIgPSBldmVudC5sYXllcjtcblxuICAgIGNvbnN0IGxheWVyc0FkZGVkID0gdGhpcy5zdG9yZS52aWV3XG4gICAgICAuYWxsKClcbiAgICAgIC5maWx0ZXIoKGl0ZW06IENhdGFsb2dJdGVtKSA9PiBpdGVtLmlkICE9PSBsYXllci5pZClcbiAgICAgIC5tYXAoKGl0ZW06IENhdGFsb2dJdGVtKSA9PiB0aGlzLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZSk7XG5cbiAgICBpZiAobGF5ZXJzQWRkZWQuZXZlcnkoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gYWRkZWQpKSB7XG4gICAgICBhZGRlZCA/IHRoaXMuYWRkKGV2ZW50LmV2ZW50KSA6IHRoaXMucmVtb3ZlKGV2ZW50LmV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWRkZWQkLnZhbHVlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmFkZGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlQWRkZWQoKSB7XG4gICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLmFsbCgpLmV2ZXJ5KChpdGVtOiBDYXRhbG9nSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuICh0aGlzLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZSkgPT09IHRydWU7XG4gICAgfSk7XG4gICAgdGhpcy5hZGRlZCQubmV4dChhZGRlZCk7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlRGlzYWJsZWQoY29sbGFwc2VkOiBib29sZWFuKSB7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMudG9nZ2xlQ29sbGFwc2VkID09PSBmYWxzZSkge1xuICAgICAgZGlzYWJsZWQgPSBjb2xsYXBzZWQ7XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQoZGlzYWJsZWQpO1xuICB9XG5cbiAgb25UaXRsZUNsaWNrKCkge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICB9XG59XG4iLCI8bWF0LWxpc3QtaXRlbT5cbiAgPG1hdC1pY29uXG4gICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgaWdvQ29sbGFwc2VcbiAgICBjbGFzcz1cImlnby1jaGV2cm9uIGNhdGFsb2ctYnJvd3Nlci1ncm91cC1jYXJyZXRcIlxuICAgIFt0YXJnZXRdPVwiaXRlbXNcIlxuICAgIFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkXCJcbiAgICAodG9nZ2xlKT1cIm9uVG9nZ2xlQ29sbGFwc2VkKCRldmVudClcIlxuICA+XG4gICAgZXhwYW5kX2xlc3NcbiAgPC9tYXQtaWNvbj5cblxuICA8c3BhblxuICAgIGNsYXNzPVwiaWdvLWNhdGFsb2ctZ3JvdXAtdGl0bGVcIlxuICAgIG1hdExpc3RJdGVtVGl0bGVcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICBbbWF0VG9vbHRpcF09XCJ0aXRsZVwiXG4gICAgKGNsaWNrKT1cIm9uVGl0bGVDbGljaygpXCJcbiAgICA+e3sgdGl0bGUgfX08L3NwYW5cbiAgPlxuXG4gIDxkaXYgbWF0TGlzdEl0ZW1NZXRhPlxuICAgIDxidXR0b24gKm5nSWY9XCJncm91cC5leHRlcm5hbFByb3ZpZGVyXCIgZGlzYWJsZWQ9XCJ0cnVlXCIgbWF0LWljb24tYnV0dG9uPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGNsYXNzPVwiaWdvLWNhdGFsb2dncm91cC1leHRlcm5hbC1pY29uXCJcbiAgICAgICAgKm5nSWY9XCJncm91cC5leHRlcm5hbFByb3ZpZGVyXCJcbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmNhdGFsb2cuZXh0ZXJuYWxQcm92aWRlci5ncm91cCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAgcHVibGljXG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCIoYWRkZWQkIHwgYXN5bmMpICYmIChwcmV2aWV3JCB8IGFzeW5jKSA9PT0gZmFsc2U7IGVsc2Ugbm90YWRkZWRcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5jYXRhbG9nLmdyb3VwLnJlbW92ZUZyb21NYXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlQ2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI25vdGFkZGVkPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmNhdGFsb2cuZ3JvdXAuYWRkVG9NYXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlQ2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L21hdC1saXN0LWl0ZW0+XG5cbjxkaXYgI2l0ZW1zPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwic3RvcmUudmlldy5hbGwkKCkgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCI+XG4gICAgICA8IS0tIHRvZG86IGFkZCBkaXNwbGF5IGFucyBtYW5hZ2UgQ2F0YWxvZ0l0ZW1Hcm91cCAtLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXllcihpdGVtKVwiPlxuICAgICAgPGlnby1jYXRhbG9nLWJyb3dzZXItbGF5ZXJcbiAgICAgICAgaWdvTGlzdEl0ZW1cbiAgICAgICAgW2xheWVyXT1cIiRhbnkoaXRlbSlcIlxuICAgICAgICBbcmVzb2x1dGlvbl09XCJyZXNvbHV0aW9uXCJcbiAgICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgICBbY2F0YWxvZ0FsbG93TGVnZW5kXT1cImNhdGFsb2dBbGxvd0xlZ2VuZFwiXG4gICAgICAgIFthZGRlZF09XCJzdGF0ZS5nZXQoaXRlbSkuYWRkZWRcIlxuICAgICAgICAoYWRkZWRMYXllcklzUHJldmlldyk9XCJvbkxheWVyUHJldmlldygkZXZlbnQpXCJcbiAgICAgICAgKGFkZGVkQ2hhbmdlKT1cIm9uTGF5ZXJBZGRlZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvaWdvLWNhdGFsb2ctYnJvd3Nlci1sYXllcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -210,10 +210,10 @@ export class CatalogBrowserLayerComponent {
210
210
  }
211
211
  getBadgeIcon() {
212
212
  if (this.inRange$.getValue()) {
213
- return this.isVisible$.getValue() ? '' : 'eye-off';
213
+ return this.isVisible$.getValue() ? '' : 'visibility_off';
214
214
  }
215
215
  else {
216
- return 'eye-off';
216
+ return 'visibility_off';
217
217
  }
218
218
  }
219
219
  computeTooltip() {
@@ -237,7 +237,7 @@ export class CatalogBrowserLayerComponent {
237
237
  }
238
238
  }
239
239
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogBrowserLayerComponent, deps: [{ token: i1.LayerService }], target: i0.ɵɵFactoryTarget.Component });
240
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogBrowserLayerComponent, isStandalone: true, selector: "igo-catalog-browser-layer", inputs: { resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", layer: "layer", map: "map", added: "added" }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, ngImport: i0, template: "<mat-list-item>\n <mat-icon\n *ngIf=\"haveGroup()\"\n class=\"catalog-browser-layer-carret\"\n matListItemIcon\n svgIcon=\"blank\"\n ></mat-icon>\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend($event)\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n <button *ngIf=\"layer.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"$any(layer)\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n [igoMatBadgeInverseColor]=\"true\"\n [matBadgeHidden]=\"\n ((inRange$ | async) && (isVisible$ | async) === true) ||\n ((inRange$ | async) && !added) ||\n ((inRange$ | async) && (isPreview$ | async))\n \"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\"\n >\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"\n (layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\n \"\n [layer]=\"igoLayer$ | async\"\n >\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.catalog-browser-layer-carret{margin-right:16px}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: IgoBadgeIconDirective, selector: "[igoMatBadgeIcon]", inputs: ["igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "igoMatBadgeInverseColor", "igoMatBadgeInheritColor", "igoMatBadgeColor", "igoMatBadgeBackgroundColor"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
240
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogBrowserLayerComponent, isStandalone: true, selector: "igo-catalog-browser-layer", inputs: { resolution: "resolution", catalogAllowLegend: "catalogAllowLegend", layer: "layer", map: "map", added: "added" }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, ngImport: i0, template: "<mat-list-item>\n <mat-icon\n *ngIf=\"haveGroup()\"\n class=\"catalog-browser-layer-carret\"\n matListItemIcon\n ></mat-icon>\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend($event)\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n <button *ngIf=\"layer.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"$any(layer)\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n [igoMatBadgeInverseColor]=\"true\"\n [matBadgeHidden]=\"\n ((inRange$ | async) && (isVisible$ | async) === true) ||\n ((inRange$ | async) && !added) ||\n ((inRange$ | async) && (isPreview$ | async))\n \"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ (isPreview$ | async) ? 'plus' : added ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"\n (layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\n \"\n [layer]=\"igoLayer$ | async\"\n >\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.catalog-browser-layer-carret{margin-right:16px}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: IgoBadgeIconDirective, selector: "[igoMatBadgeIcon]", inputs: ["igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "igoMatBadgeInverseColor", "igoMatBadgeInheritColor", "igoMatBadgeColor", "igoMatBadgeBackgroundColor"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
241
241
  }
242
242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogBrowserLayerComponent, decorators: [{
243
243
  type: Component,
@@ -254,7 +254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
254
254
  LayerLegendComponent,
255
255
  AsyncPipe,
256
256
  TranslateModule
257
- ], template: "<mat-list-item>\n <mat-icon\n *ngIf=\"haveGroup()\"\n class=\"catalog-browser-layer-carret\"\n matListItemIcon\n svgIcon=\"blank\"\n ></mat-icon>\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend($event)\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n <button *ngIf=\"layer.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"$any(layer)\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n [igoMatBadgeInverseColor]=\"true\"\n [matBadgeHidden]=\"\n ((inRange$ | async) && (isVisible$ | async) === true) ||\n ((inRange$ | async) && !added) ||\n ((inRange$ | async) && (isPreview$ | async))\n \"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\"\n >\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"\n (layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\n \"\n [layer]=\"igoLayer$ | async\"\n >\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.catalog-browser-layer-carret{margin-right:16px}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"] }]
257
+ ], template: "<mat-list-item>\n <mat-icon\n *ngIf=\"haveGroup()\"\n class=\"catalog-browser-layer-carret\"\n matListItemIcon\n ></mat-icon>\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend($event)\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n <button *ngIf=\"layer.externalProvider\" disabled=\"true\" mat-icon-button>\n <mat-icon\n class=\"igo-cataloglayer-external-icon\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.layer' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n </button>\n <igo-metadata-button [layer]=\"$any(layer)\"></igo-metadata-button>\n\n <button\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"computeTooltip() | translate\"\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\n (click)=\"onToggleClick($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"icon\"\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\n igoMatBadgeBackgroundColor=\"none\"\n [igoMatBadgeInverseColor]=\"true\"\n [matBadgeHidden]=\"\n ((inRange$ | async) && (isVisible$ | async) === true) ||\n ((inRange$ | async) && !added) ||\n ((inRange$ | async) && (isPreview$ | async))\n \"\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ (isPreview$ | async) ? 'plus' : added ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n <igo-layer-legend\n *ngIf=\"\n (layerLegendShown$ | async) && (igoLayer$ | async) && catalogAllowLegend\n \"\n [layer]=\"igoLayer$ | async\"\n >\n </igo-layer-legend>\n</div>\n", styles: [".igo-cataloglayer-title{cursor:pointer}.catalog-browser-layer-carret{margin-right:16px}.igo-cataloglayer-legend-container{padding-left:18px;width:calc(100% - 18px);margin-left:40px}.igo-cataloglayer-external-icon{cursor:help}:host .mdc-list-item__end,:host .mdc-list-item__start{color:#000}\n"] }]
258
258
  }], ctorParameters: () => [{ type: i1.LayerService }], propDecorators: { resolution: [{
259
259
  type: Input
260
260
  }], catalogAllowLegend: [{
@@ -270,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
270
270
  }], addedLayerIsPreview: [{
271
271
  type: Output
272
272
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLWxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci1sYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXItbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGNBQWMsRUFDZixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlE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LGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixhQUFhO3dCQUNiLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjtpRkFrQlEsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUVHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHtcbiAgSWdvQmFkZ2VJY29uRGlyZWN0aXZlLFxuICBnZXRFbnRpdHlJY29uLFxuICBnZXRFbnRpdHlUaXRsZVxufSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTGF5ZXJMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sYXllci9sYXllci1sZWdlbmQvbGF5ZXItbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXllciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IE1ldGFkYXRhQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvbWV0YWRhdGEtYnV0dG9uL21ldGFkYXRhLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0YWRhdGFMYXllck9wdGlvbnMgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9zaGFyZWQvbWV0YWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFkZGVkQ2hhbmdlRW1pdHRlciwgQ2F0YWxvZ0l0ZW1MYXllciB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbi8qKlxuICogQ2F0YWxvZyBicm93c2VyIGxheWVyIGl0ZW1cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWNhdGFsb2ctYnJvd3Nlci1sYXllcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWJyb3dzZXItbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWJyb3dzZXItbGF5ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1ldGFkYXRhQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIElnb0JhZGdlSWNvbkRpcmVjdGl2ZSxcbiAgICBMYXllckxlZ2VuZENvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0Jyb3dzZXJMYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGluUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwdWJsaWMgaXNQcmV2aWV3JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBpc1Zpc2libGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBpc1ByZXZpZXckJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbGFzdFRpbWVvdXRSZXF1ZXN0O1xuXG4gIHB1YmxpYyBsYXllckxlZ2VuZFNob3duJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICBmYWxzZVxuICApO1xuICBwdWJsaWMgaWdvTGF5ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXllcj4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIG1vdXNlSW5zaWRlQWRkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcmVzb2x1dGlvbjogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGNhdGFsb2dBbGxvd0xlZ2VuZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDYXRhbG9nIGxheWVyXG4gICAqL1xuICBASW5wdXQoKSBsYXllcjogQ2F0YWxvZ0l0ZW1MYXllcjtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbGF5ZXIgaXMgYWxyZWFkeSBhZGRlZCB0byB0aGUgbWFwXG4gICAqL1xuICBASW5wdXQoKSBhZGRlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFkZC9yZW1vdmUgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBhZGRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkZWRDaGFuZ2VFbWl0dGVyPigpO1xuXG4gIEBPdXRwdXQoKSBhZGRlZExheWVySXNQcmV2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRFbnRpdHlUaXRsZSh0aGlzLmxheWVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEVudGl0eUljb24odGhpcy5sYXllcikgfHwgJ2xheWVycyc7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNQcmV2aWV3JCQgPSB0aGlzLmlzUHJldmlldyQuc3Vic2NyaWJlKCh2YWx1ZSkgPT5cbiAgICAgIHRoaXMuYWRkZWRMYXllcklzUHJldmlldy5lbWl0KHZhbHVlKVxuICAgICk7XG5cbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pc1Zpc2libGUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQuc3Vic2NyaWJlKFxuICAgICAgKHJlc29sdXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZShyZXNvbHV0aW9uKTtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pc1ByZXZpZXckJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY29tcHV0ZVRpdGxlVG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucztcbiAgICBpZiAoIWxheWVyT3B0aW9ucy50b29sdGlwKSB7XG4gICAgICByZXR1cm4gZ2V0RW50aXR5VGl0bGUodGhpcy5sYXllcik7XG4gICAgfVxuICAgIGNvbnN0IGxheWVyVG9vbHRpcCA9IGxheWVyT3B0aW9ucy50b29sdGlwO1xuICAgIGNvbnN0IGxheWVyTWV0YWRhdGEgPSAobGF5ZXJPcHRpb25zIGFzIE1ldGFkYXRhTGF5ZXJPcHRpb25zKS5tZXRhZGF0YTtcbiAgICBzd2l0Y2ggKGxheWVyT3B0aW9ucy50b29sdGlwLnR5cGUpIHtcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuVElUTEU6XG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xuICAgICAgY2FzZSBUb29sdGlwVHlwZS5BQlNUUkFDVDpcbiAgICAgICAgaWYgKGxheWVyTWV0YWRhdGEgJiYgbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdCkge1xuICAgICAgICAgIHJldHVybiBsYXllck1ldGFkYXRhLmFic3RyYWN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xuICAgICAgICB9XG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLkNVU1RPTTpcbiAgICAgICAgaWYgKGxheWVyVG9vbHRpcCAmJiBsYXllclRvb2x0aXAudGV4dCkge1xuICAgICAgICAgIHJldHVybiBsYXllclRvb2x0aXAudGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9uIG1vdXNlIGV2ZW50LCBtb3VzZWVudGVyIC9tb3VzZWxlYXZlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25Nb3VzZUV2ZW50KGV2ZW50KSB7XG4gICAgdGhpcy5vblRvZ2dsZUNsaWNrKGV2ZW50KTtcbiAgfVxuXG4gIGFza0ZvckxlZ2VuZChldmVudCkge1xuICAgIHRoaXMubGF5ZXJMZWdlbmRTaG93biQubmV4dCghdGhpcy5sYXllckxlZ2VuZFNob3duJC52YWx1ZSk7XG4gICAgdGhpcy5sYXllclNlcnZpY2VcbiAgICAgIC5jcmVhdGVBc3luY0xheWVyKHRoaXMubGF5ZXIub3B0aW9ucylcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKChsYXllcikgPT4gdGhpcy5pZ29MYXllciQubmV4dChsYXllcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIHRvZ2dsZSBidXR0b24gY2xpY2ssIGVtaXQgdGhlIGFkZGVkIGNoYW5nZSBldmVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uVG9nZ2xlQ2xpY2soZXZlbnQpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdtb3VzZWVudGVyJyAmJiB0aGlzLm1vdXNlSW5zaWRlQWRkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnY2xpY2snOlxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSkge1xuICAgICAgICAgIGlmICh0aGlzLmFkZGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZShldmVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWRkKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQoZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21vdXNlZW50ZXInOlxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSAmJiAhdGhpcy5hZGRlZCkge1xuICAgICAgICAgIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmlzUHJldmlldyQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW91c2VJbnNpZGVBZGQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21vdXNlbGVhdmUnOlxuICAgICAgICBpZiAodGhpcy5pc1ByZXZpZXckLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmUoZXZlbnQpO1xuICAgICAgICAgIHRoaXMuaXNQcmV2aWV3JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdXNlSW5zaWRlQWRkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSB0cnVlXG4gICAqL1xuICBwcml2YXRlIGFkZChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuYWRkZWQpIHtcbiAgICAgIHRoaXMuYWRkZWQgPSB0cnVlO1xuICAgICAgdGhpcy5hZGRlZENoYW5nZS5lbWl0KHsgYWRkZWQ6IHRydWUsIGxheWVyOiB0aGlzLmxheWVyLCBldmVudCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBhZGRlZCBjaGFuZ2UgZXZlbnQgd2l0aCBhZGRlZCA9IGZhbHNlXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZShldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hZGRlZCkge1xuICAgICAgdGhpcy5hZGRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5hZGRlZENoYW5nZS5lbWl0KHsgYWRkZWQ6IGZhbHNlLCBsYXllcjogdGhpcy5sYXllciwgZXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgaGF2ZUdyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKCF0aGlzLmxheWVyLmFkZHJlc3MgfHwgdGhpcy5sYXllci5hZGRyZXNzLnNwbGl0KCcuJykubGVuZ3RoID09PSAxKTtcbiAgfVxuXG4gIGlzSW5SZXNvbHV0aW9uc1JhbmdlKHJlc29sdXRpb246IG51bWJlcikge1xuICAgIGNvbnN0IG1pblJlc29sdXRpb24gPVxuICAgICAgIXRoaXMubGF5ZXIub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8XG4gICAgICBOdW1iZXIuaXNOYU4odGhpcy5sYXllci5vcHRpb25zLm1pblJlc29sdXRpb24pXG4gICAgICAgID8gMFxuICAgICAgICA6IHRoaXMubGF5ZXIub3B0aW9ucy5taW5SZXNvbHV0aW9uO1xuICAgIGNvbnN0IG1heFJlc29sdXRpb24gPVxuICAgICAgIXRoaXMubGF5ZXIub3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8XG4gICAgICBOdW1iZXIuaXNOYU4odGhpcy5sYXllci5vcHRpb25zLm1heFJlc29sdXRpb24pXG4gICAgICAgID8gSW5maW5pdHlcbiAgICAgICAgOiB0aGlzLmxheWVyLm9wdGlvbnMubWF4UmVzb2x1dGlvbjtcbiAgICB0aGlzLmluUmFuZ2UkLm5leHQoXG4gICAgICByZXNvbHV0aW9uID49IG1pblJlc29sdXRpb24gJiYgcmVzb2x1dGlvbiA8PSBtYXhSZXNvbHV0aW9uXG4gICAgKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICBpZiAodGhpcy5sYXllcj8uaWQpIHtcbiAgICAgIGNvbnN0IG9MYXllciA9IHRoaXMubWFwLmdldExheWVyQnlJZCh0aGlzLmxheWVyPy5pZCk7XG4gICAgICBvTGF5ZXJcbiAgICAgICAgPyB0aGlzLmlzVmlzaWJsZSQubmV4dChvTGF5ZXIudmlzaWJsZSlcbiAgICAgICAgOiB0aGlzLmlzVmlzaWJsZSQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QmFkZ2VJY29uKCkge1xuICAgIGlmICh0aGlzLmluUmFuZ2UkLmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZSQuZ2V0VmFsdWUoKSA/ICcnIDogJ2V5ZS1vZmYnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2V5ZS1vZmYnO1xuICAgIH1cbiAgfVxuXG4gIGNvbXB1dGVUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuYWRkZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzUHJldmlldyQudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXAnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmluUmFuZ2UkLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZSQudmFsdWVcbiAgICAgICAgICA/ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcCdcbiAgICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcE5vdFZpc2libGUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcE91dFJhbmdlJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaW5SYW5nZSQudmFsdWVcbiAgICAgICAgPyAnaWdvLmdlby5jYXRhbG9nLmxheWVyLmFkZFRvTWFwJ1xuICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXBPdXRSYW5nZSc7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWxpc3QtaXRlbT5cbiAgPG1hdC1pY29uXG4gICAgKm5nSWY9XCJoYXZlR3JvdXAoKVwiXG4gICAgY2xhc3M9XCJjYXRhbG9nLWJyb3dzZXItbGF5ZXItY2FycmV0XCJcbiAgICBtYXRMaXN0SXRlbUljb25cbiAgICBzdmdJY29uPVwiYmxhbmtcIlxuICA+PC9tYXQtaWNvbj5cbiAgPHNwYW5cbiAgICBtYXRMaXN0SXRlbVRpdGxlXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW25nQ2xhc3NdPVwiY2F0YWxvZ0FsbG93TGVnZW5kID8gJ2lnby1jYXRhbG9nbGF5ZXItdGl0bGUnIDogJydcIlxuICAgIChjbGljayk9XCJhc2tGb3JMZWdlbmQoJGV2ZW50KVwiXG4gICAgW21hdFRvb2x0aXBdPVwiY29tcHV0ZVRpdGxlVG9vbHRpcCgpXCJcbiAgPlxuICAgIHt7IHRpdGxlIH19XG4gIDwvc3Bhbj5cblxuICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cbiAgICA8YnV0dG9uICpuZ0lmPVwibGF5ZXIuZXh0ZXJuYWxQcm92aWRlclwiIGRpc2FibGVkPVwidHJ1ZVwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBjbGFzcz1cImlnby1jYXRhbG9nbGF5ZXItZXh0ZXJuYWwtaWNvblwiXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5jYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIubGF5ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIHN2Z0ljb249XCJlYXJ0aC1hcnJvdy1yaWdodFwiXG4gICAgICA+XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxpZ28tbWV0YWRhdGEtYnV0dG9uIFtsYXllcl09XCIkYW55KGxheWVyKVwiPjwvaWdvLW1ldGFkYXRhLWJ1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiY29tcHV0ZVRvb2x0aXAoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sb3JdPVwiKGlzUHJldmlldyQgfCBhc3luYykgPyAnJyA6IGFkZGVkID8gJ3dhcm4nIDogJydcIlxuICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICBtYXRCYWRnZT1cImljb25cIlxuICAgICAgICBbaWdvTWF0QmFkZ2VJY29uXT1cImdldEJhZGdlSWNvbigpXCJcbiAgICAgICAgaWdvTWF0QmFkZ2VDb2xvcj1cInJnYmEoMCwwLDAsMC44NylcIlxuICAgICAgICBpZ29NYXRCYWRnZUJhY2tncm91bmRDb2xvcj1cIm5vbmVcIlxuICAgICAgICBbaWdvTWF0QmFkZ2VJbnZlcnNlQ29sb3JdPVwidHJ1ZVwiXG4gICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCJcbiAgICAgICAgICAoKGluUmFuZ2UkIHwgYXN5bmMpICYmIChpc1Zpc2libGUkIHwgYXN5bmMpID09PSB0cnVlKSB8fFxuICAgICAgICAgICgoaW5SYW5nZSQgfCBhc3luYykgJiYgIWFkZGVkKSB8fFxuICAgICAgICAgICgoaW5SYW5nZSQgfCBhc3luYykgJiYgKGlzUHJldmlldyQgfCBhc3luYykpXG4gICAgICAgIFwiXG4gICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihpblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXG4gICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXG4gICAgICAgIFtzdmdJY29uXT1cIihpc1ByZXZpZXckIHwgYXN5bmMpID8gJ3BsdXMnIDogYWRkZWQgPyAnZGVsZXRlJyA6ICdwbHVzJ1wiXG4gICAgICA+XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWNhdGFsb2dsYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gIDxpZ28tbGF5ZXItbGVnZW5kXG4gICAgKm5nSWY9XCJcbiAgICAgIChsYXllckxlZ2VuZFNob3duJCB8IGFzeW5jKSAmJiAoaWdvTGF5ZXIkIHwgYXN5bmMpICYmIGNhdGFsb2dBbGxvd0xlZ2VuZFxuICAgIFwiXG4gICAgW2xheWVyXT1cImlnb0xheWVyJCB8IGFzeW5jXCJcbiAgPlxuICA8L2lnby1sYXllci1sZWdlbmQ+XG48L2Rpdj5cbiJdfQ==
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLWxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci1sYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXItbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGNBQWMsRUFDZixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlE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QkFDUCxhQUFhO3dCQUNiLElBQUk7d0JBQ0osYUFBYTt3QkFDYixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7aUZBa0JRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7XG4gIElnb0JhZGdlSWNvbkRpcmVjdGl2ZSxcbiAgZ2V0RW50aXR5SWNvbixcbiAgZ2V0RW50aXR5VGl0bGVcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5ZXIsIFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycyc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBNZXRhZGF0YUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21ldGFkYXRhLWJ1dHRvbi9tZXRhZGF0YS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1ldGFkYXRhTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBZGRlZENoYW5nZUVtaXR0ZXIsIENhdGFsb2dJdGVtTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG4vKipcbiAqIENhdGFsb2cgYnJvd3NlciBsYXllciBpdGVtXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jYXRhbG9nLWJyb3dzZXItbGF5ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1icm93c2VyLWxheWVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1icm93c2VyLWxheWVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNZXRhZGF0YUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICBJZ29CYWRnZUljb25EaXJlY3RpdmUsXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dCcm93c2VyTGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBpblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIGlzUHJldmlldyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgaXNWaXNpYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgaXNQcmV2aWV3JCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxhc3RUaW1lb3V0UmVxdWVzdDtcblxuICBwdWJsaWMgbGF5ZXJMZWdlbmRTaG93biQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgZmFsc2VcbiAgKTtcbiAgcHVibGljIGlnb0xheWVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGF5ZXI+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBtb3VzZUluc2lkZUFkZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHJlc29sdXRpb246IG51bWJlcjtcblxuICBASW5wdXQoKSBjYXRhbG9nQWxsb3dMZWdlbmQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ2F0YWxvZyBsYXllclxuICAgKi9cbiAgQElucHV0KCkgbGF5ZXI6IENhdGFsb2dJdGVtTGF5ZXI7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxheWVyIGlzIGFscmVhZHkgYWRkZWQgdG8gdGhlIG1hcFxuICAgKi9cbiAgQElucHV0KCkgYWRkZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBhZGQvcmVtb3ZlIGJ1dHRvbiBpcyBjbGlja2VkXG4gICAqL1xuICBAT3V0cHV0KCkgYWRkZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFkZGVkQ2hhbmdlRW1pdHRlcj4oKTtcblxuICBAT3V0cHV0KCkgYWRkZWRMYXllcklzUHJldmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0RW50aXR5VGl0bGUodGhpcy5sYXllcik7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRFbnRpdHlJY29uKHRoaXMubGF5ZXIpIHx8ICdsYXllcnMnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzUHJldmlldyQkID0gdGhpcy5pc1ByZXZpZXckLnN1YnNjcmliZSgodmFsdWUpID0+XG4gICAgICB0aGlzLmFkZGVkTGF5ZXJJc1ByZXZpZXcuZW1pdCh2YWx1ZSlcbiAgICApO1xuXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubWFwLmxheWVycyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaXNWaXNpYmxlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kLnN1YnNjcmliZShcbiAgICAgIChyZXNvbHV0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UocmVzb2x1dGlvbik7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3JCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbXB1dGVUaXRsZVRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnM7XG4gICAgaWYgKCFsYXllck9wdGlvbnMudG9vbHRpcCkge1xuICAgICAgcmV0dXJuIGdldEVudGl0eVRpdGxlKHRoaXMubGF5ZXIpO1xuICAgIH1cbiAgICBjb25zdCBsYXllclRvb2x0aXAgPSBsYXllck9wdGlvbnMudG9vbHRpcDtcbiAgICBjb25zdCBsYXllck1ldGFkYXRhID0gKGxheWVyT3B0aW9ucyBhcyBNZXRhZGF0YUxheWVyT3B0aW9ucykubWV0YWRhdGE7XG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMudG9vbHRpcC50eXBlKSB7XG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLlRJVExFOlxuICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQUJTVFJBQ1Q6XG4gICAgICAgIGlmIChsYXllck1ldGFkYXRhICYmIGxheWVyTWV0YWRhdGEuYWJzdHJhY3QpIHtcbiAgICAgICAgICByZXR1cm4gbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcbiAgICAgICAgfVxuICAgICAgY2FzZSBUb29sdGlwVHlwZS5DVVNUT006XG4gICAgICAgIGlmIChsYXllclRvb2x0aXAgJiYgbGF5ZXJUb29sdGlwLnRleHQpIHtcbiAgICAgICAgICByZXR1cm4gbGF5ZXJUb29sdGlwLnRleHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XG4gICAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtb3VzZSBldmVudCwgbW91c2VlbnRlciAvbW91c2VsZWF2ZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uTW91c2VFdmVudChldmVudCkge1xuICAgIHRoaXMub25Ub2dnbGVDbGljayhldmVudCk7XG4gIH1cblxuICBhc2tGb3JMZWdlbmQoZXZlbnQpIHtcbiAgICB0aGlzLmxheWVyTGVnZW5kU2hvd24kLm5leHQoIXRoaXMubGF5ZXJMZWdlbmRTaG93biQudmFsdWUpO1xuICAgIHRoaXMubGF5ZXJTZXJ2aWNlXG4gICAgICAuY3JlYXRlQXN5bmNMYXllcih0aGlzLmxheWVyLm9wdGlvbnMpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgobGF5ZXIpID0+IHRoaXMuaWdvTGF5ZXIkLm5leHQobGF5ZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiB0b2dnbGUgYnV0dG9uIGNsaWNrLCBlbWl0IHRoZSBhZGRlZCBjaGFuZ2UgZXZlbnRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblRvZ2dsZUNsaWNrKGV2ZW50KSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XG4gICAgfVxuICAgIGlmIChldmVudC50eXBlID09PSAnbW91c2VlbnRlcicgJiYgdGhpcy5tb3VzZUluc2lkZUFkZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NsaWNrJzpcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJldmlldyQudmFsdWUpIHtcbiAgICAgICAgICBpZiAodGhpcy5hZGRlZCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb3VzZWVudGVyJzpcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJldmlldyQudmFsdWUgJiYgIXRoaXMuYWRkZWQpIHtcbiAgICAgICAgICB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGQoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdXNlSW5zaWRlQWRkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb3VzZWxlYXZlJzpcbiAgICAgICAgaWYgKHRoaXMuaXNQcmV2aWV3JC52YWx1ZSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmlzUHJldmlldyQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3VzZUluc2lkZUFkZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IGFkZGVkIGNoYW5nZSBldmVudCB3aXRoIGFkZGVkID0gdHJ1ZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmFkZGVkKSB7XG4gICAgICB0aGlzLmFkZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkZWRDaGFuZ2UuZW1pdCh7IGFkZGVkOiB0cnVlLCBsYXllcjogdGhpcy5sYXllciwgZXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSBmYWxzZVxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWRkZWQpIHtcbiAgICAgIHRoaXMuYWRkZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWRkZWRDaGFuZ2UuZW1pdCh7IGFkZGVkOiBmYWxzZSwgbGF5ZXI6IHRoaXMubGF5ZXIsIGV2ZW50IH0pO1xuICAgIH1cbiAgfVxuXG4gIGhhdmVHcm91cCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISghdGhpcy5sYXllci5hZGRyZXNzIHx8IHRoaXMubGF5ZXIuYWRkcmVzcy5zcGxpdCgnLicpLmxlbmd0aCA9PT0gMSk7XG4gIH1cblxuICBpc0luUmVzb2x1dGlvbnNSYW5nZShyZXNvbHV0aW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBtaW5SZXNvbHV0aW9uID1cbiAgICAgICF0aGlzLmxheWVyLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgTnVtYmVyLmlzTmFOKHRoaXMubGF5ZXIub3B0aW9ucy5taW5SZXNvbHV0aW9uKVxuICAgICAgICA/IDBcbiAgICAgICAgOiB0aGlzLmxheWVyLm9wdGlvbnMubWluUmVzb2x1dGlvbjtcbiAgICBjb25zdCBtYXhSZXNvbHV0aW9uID1cbiAgICAgICF0aGlzLmxheWVyLm9wdGlvbnMubWF4UmVzb2x1dGlvbiB8fFxuICAgICAgTnVtYmVyLmlzTmFOKHRoaXMubGF5ZXIub3B0aW9ucy5tYXhSZXNvbHV0aW9uKVxuICAgICAgICA/IEluZmluaXR5XG4gICAgICAgIDogdGhpcy5sYXllci5vcHRpb25zLm1heFJlc29sdXRpb247XG4gICAgdGhpcy5pblJhbmdlJC5uZXh0KFxuICAgICAgcmVzb2x1dGlvbiA+PSBtaW5SZXNvbHV0aW9uICYmIHJlc29sdXRpb24gPD0gbWF4UmVzb2x1dGlvblxuICAgICk7XG4gIH1cblxuICBpc1Zpc2libGUoKSB7XG4gICAgaWYgKHRoaXMubGF5ZXI/LmlkKSB7XG4gICAgICBjb25zdCBvTGF5ZXIgPSB0aGlzLm1hcC5nZXRMYXllckJ5SWQodGhpcy5sYXllcj8uaWQpO1xuICAgICAgb0xheWVyXG4gICAgICAgID8gdGhpcy5pc1Zpc2libGUkLm5leHQob0xheWVyLnZpc2libGUpXG4gICAgICAgIDogdGhpcy5pc1Zpc2libGUkLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldEJhZGdlSWNvbigpIHtcbiAgICBpZiAodGhpcy5pblJhbmdlJC5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUkLmdldFZhbHVlKCkgPyAnJyA6ICd2aXNpYmlsaXR5X29mZic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAndmlzaWJpbGl0eV9vZmYnO1xuICAgIH1cbiAgfVxuXG4gIGNvbXB1dGVUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuYWRkZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzUHJldmlldyQudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXAnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmluUmFuZ2UkLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZSQudmFsdWVcbiAgICAgICAgICA/ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcCdcbiAgICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcE5vdFZpc2libGUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIucmVtb3ZlRnJvbU1hcE91dFJhbmdlJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaW5SYW5nZSQudmFsdWVcbiAgICAgICAgPyAnaWdvLmdlby5jYXRhbG9nLmxheWVyLmFkZFRvTWFwJ1xuICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXBPdXRSYW5nZSc7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWxpc3QtaXRlbT5cbiAgPG1hdC1pY29uXG4gICAgKm5nSWY9XCJoYXZlR3JvdXAoKVwiXG4gICAgY2xhc3M9XCJjYXRhbG9nLWJyb3dzZXItbGF5ZXItY2FycmV0XCJcbiAgICBtYXRMaXN0SXRlbUljb25cbiAgPjwvbWF0LWljb24+XG4gIDxzcGFuXG4gICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFtuZ0NsYXNzXT1cImNhdGFsb2dBbGxvd0xlZ2VuZCA/ICdpZ28tY2F0YWxvZ2xheWVyLXRpdGxlJyA6ICcnXCJcbiAgICAoY2xpY2spPVwiYXNrRm9yTGVnZW5kKCRldmVudClcIlxuICAgIFttYXRUb29sdGlwXT1cImNvbXB1dGVUaXRsZVRvb2x0aXAoKVwiXG4gID5cbiAgICB7eyB0aXRsZSB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBtYXRMaXN0SXRlbU1ldGE+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImxheWVyLmV4dGVybmFsUHJvdmlkZXJcIiBkaXNhYmxlZD1cInRydWVcIiBtYXQtaWNvbi1idXR0b24+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgY2xhc3M9XCJpZ28tY2F0YWxvZ2xheWVyLWV4dGVybmFsLWljb25cIlxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLmxheWVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPlxuICAgICAgICBwdWJsaWNcbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGlnby1tZXRhZGF0YS1idXR0b24gW2xheWVyXT1cIiRhbnkobGF5ZXIpXCI+PC9pZ28tbWV0YWRhdGEtYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUV2ZW50KCRldmVudClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUV2ZW50KCRldmVudClcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJjb21wdXRlVG9vbHRpcCgpIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjb2xvcl09XCIoaXNQcmV2aWV3JCB8IGFzeW5jKSA/ICcnIDogYWRkZWQgPyAnd2FybicgOiAnJ1wiXG4gICAgICAoY2xpY2spPVwib25Ub2dnbGVDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgIG1hdEJhZGdlPVwiaWNvblwiXG4gICAgICAgIFtpZ29NYXRCYWRnZUljb25dPVwiZ2V0QmFkZ2VJY29uKClcIlxuICAgICAgICBpZ29NYXRCYWRnZUNvbG9yPVwicmdiYSgwLDAsMCwwLjg3KVwiXG4gICAgICAgIGlnb01hdEJhZGdlQmFja2dyb3VuZENvbG9yPVwibm9uZVwiXG4gICAgICAgIFtpZ29NYXRCYWRnZUludmVyc2VDb2xvcl09XCJ0cnVlXCJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIlxuICAgICAgICAgICgoaW5SYW5nZSQgfCBhc3luYykgJiYgKGlzVmlzaWJsZSQgfCBhc3luYykgPT09IHRydWUpIHx8XG4gICAgICAgICAgKChpblJhbmdlJCB8IGFzeW5jKSAmJiAhYWRkZWQpIHx8XG4gICAgICAgICAgKChpblJhbmdlJCB8IGFzeW5jKSAmJiAoaXNQcmV2aWV3JCB8IGFzeW5jKSlcbiAgICAgICAgXCJcbiAgICAgICAgW21hdEJhZGdlRGlzYWJsZWRdPVwiKGluUmFuZ2UkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgID5cbiAgICAgICAge3sgKGlzUHJldmlldyQgfCBhc3luYykgPyAncGx1cycgOiBhZGRlZCA/ICdkZWxldGUnIDogJ2FkZCcgfX1cbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9tYXQtbGlzdC1pdGVtPlxuXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tY2F0YWxvZ2xheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cbiAgPGlnby1sYXllci1sZWdlbmRcbiAgICAqbmdJZj1cIlxuICAgICAgKGxheWVyTGVnZW5kU2hvd24kIHwgYXN5bmMpICYmIChpZ29MYXllciQgfCBhc3luYykgJiYgY2F0YWxvZ0FsbG93TGVnZW5kXG4gICAgXCJcbiAgICBbbGF5ZXJdPVwiaWdvTGF5ZXIkIHwgYXN5bmNcIlxuICA+XG4gIDwvaWdvLWxheWVyLWxlZ2VuZD5cbjwvZGl2PlxuIl19
@@ -38,7 +38,7 @@ export class CatalogLibaryItemComponent {
38
38
  this.catalogRemove.emit();
39
39
  }
40
40
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogLibaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogLibaryItemComponent, isStandalone: true, selector: "igo-catalog-library-item", inputs: { catalog: "catalog", map: "map" }, outputs: { catalogRemove: "catalogRemove" }, ngImport: i0, template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n <mat-icon\n *ngIf=\"catalog.externalProvider\"\n matListItemIcon\n class=\"igo-external-provider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.catalog' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n <button\n *ngIf=\"catalog.removable\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.library.remove' | translate\"\n color=\"warn\"\n (click)=\"removeCatalogFromLibrary($event)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n\n <button\n class=\"igo-blank\"\n *ngIf=\"!catalog.removable\"\n disabled=\"true\"\n mat-icon-button\n >\n <mat-icon svgIcon=\"blank\"></mat-icon>\n </button>\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogLibaryItemComponent, isStandalone: true, selector: "igo-catalog-library-item", inputs: { catalog: "catalog", map: "map" }, outputs: { catalogRemove: "catalogRemove" }, ngImport: i0, template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n <mat-icon\n *ngIf=\"catalog.externalProvider\"\n matListItemIcon\n class=\"igo-external-provider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.catalog' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n <button\n *ngIf=\"catalog.removable\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.library.remove' | translate\"\n color=\"warn\"\n (click)=\"removeCatalogFromLibrary($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n class=\"igo-blank\"\n *ngIf=\"!catalog.removable\"\n disabled=\"true\"\n mat-icon-button\n >\n <mat-icon></mat-icon>\n </button>\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
42
  }
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogLibaryItemComponent, decorators: [{
44
44
  type: Component,
@@ -49,7 +49,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
49
49
  MatTooltipModule,
50
50
  MatButtonModule,
51
51
  TranslateModule
52
- ], template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n <mat-icon\n *ngIf=\"catalog.externalProvider\"\n matListItemIcon\n class=\"igo-external-provider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.catalog' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n svgIcon=\"earth-arrow-right\"\n >\n </mat-icon>\n <button\n *ngIf=\"catalog.removable\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.library.remove' | translate\"\n color=\"warn\"\n (click)=\"removeCatalogFromLibrary($event)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n\n <button\n class=\"igo-blank\"\n *ngIf=\"!catalog.removable\"\n disabled=\"true\"\n mat-icon-button\n >\n <mat-icon svgIcon=\"blank\"></mat-icon>\n </button>\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"] }]
52
+ ], template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n <mat-icon\n *ngIf=\"catalog.externalProvider\"\n matListItemIcon\n class=\"igo-external-provider\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.externalProvider.catalog' | translate\"\n color=\"primary\"\n (click)=\"$event.stopPropagation()\"\n >\n public\n </mat-icon>\n <button\n *ngIf=\"catalog.removable\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.catalog.library.remove' | translate\"\n color=\"warn\"\n (click)=\"removeCatalogFromLibrary($event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <button\n class=\"igo-blank\"\n *ngIf=\"!catalog.removable\"\n disabled=\"true\"\n mat-icon-button\n >\n <mat-icon></mat-icon>\n </button>\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"] }]
53
53
  }], propDecorators: { catalog: [{
54
54
  type: Input
55
55
  }], map: [{
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
57
57
  }], catalogRemove: [{
58
58
  type: Output
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFFckQ7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQzs7T0FFRztJQUNNLE9BQU8sQ0FBVTtJQUUxQjs7T0FFRztJQUNNLEdBQUcsQ0FBUztJQUVYLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTdDOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFLO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7dUdBdkJVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDZLQ3RDdkMsZ2pDQXVDQSx3SERUSSxhQUFhLG9iQUNiLElBQUksNEZBQ0osYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGVBQWUsMklBQ2YsZUFBZTs7MkZBR04sMEJBQTBCO2tCQWZ0QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCOzhCQU1RLE9BQU87c0JBQWYsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgZ2V0RW50aXR5VGl0bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgQ2F0YWxvZyB9IGZyb20gJy4uL3NoYXJlZC9jYXRhbG9nLmFic3RyYWN0JztcblxuLyoqXG4gKiBDYXRhbG9nIGxpYnJhcnkgaXRlbVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWxpYnJhcnktaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENhdGFsb2dcbiAgICovXG4gIEBJbnB1dCgpIGNhdGFsb2c6IENhdGFsb2c7XG5cbiAgLyoqXG4gICAqIE1hcCB0byBhZGQgdGhlIGNhdGFsb2cgaXRlbXMgdG9cbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBPdXRwdXQoKSBjYXRhbG9nUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRFbnRpdHlUaXRsZSh0aGlzLmNhdGFsb2cpO1xuICB9XG5cbiAgcmVtb3ZlQ2F0YWxvZ0Zyb21MaWJyYXJ5KGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jYXRhbG9nUmVtb3ZlLmVtaXQoKTtcbiAgfVxufVxuIiwiPG1hdC1saXN0LWl0ZW0+XG4gIDxzcGFuIG1hdExpc3RJdGVtVGl0bGU+XG4gICAge3sgdGl0bGUgfX1cbiAgPC9zcGFuPlxuICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyXCJcbiAgICAgIG1hdExpc3RJdGVtSWNvblxuICAgICAgY2xhc3M9XCJpZ28tZXh0ZXJuYWwtcHJvdmlkZXJcIlxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIHN2Z0ljb249XCJlYXJ0aC1hcnJvdy1yaWdodFwiXG4gICAgPlxuICAgIDwvbWF0LWljb24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJjYXRhbG9nLnJlbW92YWJsZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmNhdGFsb2cubGlicmFyeS5yZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAoY2xpY2spPVwicmVtb3ZlQ2F0YWxvZ0Zyb21MaWJyYXJ5KCRldmVudClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiaWdvLWJsYW5rXCJcbiAgICAgICpuZ0lmPVwiIWNhdGFsb2cucmVtb3ZhYmxlXCJcbiAgICAgIGRpc2FibGVkPVwidHJ1ZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImJsYW5rXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L21hdC1saXN0LWl0ZW0+XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvY2F0YWxvZy9jYXRhbG9nLWxpYnJhcnkvY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFFckQ7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQzs7T0FFRztJQUNNLE9BQU8sQ0FBVTtJQUUxQjs7T0FFRztJQUNNLEdBQUcsQ0FBUztJQUVYLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTdDOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFLO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7dUdBdkJVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDZLQ3RDdkMsMC9CQXVDQSx3SERUSSxhQUFhLG9iQUNiLElBQUksNEZBQ0osYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGVBQWUsMklBQ2YsZUFBZTs7MkZBR04sMEJBQTBCO2tCQWZ0QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCOzhCQU1RLE9BQU87c0JBQWYsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgZ2V0RW50aXR5VGl0bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgQ2F0YWxvZyB9IGZyb20gJy4uL3NoYXJlZC9jYXRhbG9nLmFic3RyYWN0JztcblxuLyoqXG4gKiBDYXRhbG9nIGxpYnJhcnkgaXRlbVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1saWJyYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWxpYnJhcnktaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENhdGFsb2dcbiAgICovXG4gIEBJbnB1dCgpIGNhdGFsb2c6IENhdGFsb2c7XG5cbiAgLyoqXG4gICAqIE1hcCB0byBhZGQgdGhlIGNhdGFsb2cgaXRlbXMgdG9cbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBPdXRwdXQoKSBjYXRhbG9nUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRFbnRpdHlUaXRsZSh0aGlzLmNhdGFsb2cpO1xuICB9XG5cbiAgcmVtb3ZlQ2F0YWxvZ0Zyb21MaWJyYXJ5KGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jYXRhbG9nUmVtb3ZlLmVtaXQoKTtcbiAgfVxufVxuIiwiPG1hdC1saXN0LWl0ZW0+XG4gIDxzcGFuIG1hdExpc3RJdGVtVGl0bGU+XG4gICAge3sgdGl0bGUgfX1cbiAgPC9zcGFuPlxuICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyXCJcbiAgICAgIG1hdExpc3RJdGVtSWNvblxuICAgICAgY2xhc3M9XCJpZ28tZXh0ZXJuYWwtcHJvdmlkZXJcIlxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICA+XG4gICAgICBwdWJsaWNcbiAgICA8L21hdC1pY29uPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY2F0YWxvZy5yZW1vdmFibGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkucmVtb3ZlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgKGNsaWNrKT1cInJlbW92ZUNhdGFsb2dGcm9tTGlicmFyeSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiaWdvLWJsYW5rXCJcbiAgICAgICpuZ0lmPVwiIWNhdGFsb2cucmVtb3ZhYmxlXCJcbiAgICAgIGRpc2FibGVkPVwidHJ1ZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICA+XG4gICAgICA8bWF0LWljb24+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L21hdC1saXN0LWl0ZW0+XG4iXX0=
@@ -186,7 +186,7 @@ export class CatalogLibaryComponent {
186
186
  });
187
187
  }
188
188
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogLibaryComponent, deps: [{ token: i1.CapabilitiesService }, { token: i2.MessageService }, { token: i3.StorageService }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
189
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogLibaryComponent, isStandalone: true, selector: "igo-catalog-library", inputs: { store: "store", map: "map", addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, outputs: { catalogSelectChange: "catalogSelectChange" }, ngImport: i0, template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\"\n >\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=\"btnAddCatalog\">\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\"\n >\n {{ 'igo.geo.catalog.library.addBtn' | translate }}\n <mat-icon svgIcon=\"earth-plus\"></mat-icon>\n </button>\n</div>\n", styles: [":host igo-list{height:auto}:host .btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\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: CatalogLibaryItemComponent, selector: "igo-catalog-library-item", inputs: ["catalog", "map"], outputs: ["catalogRemove"] }, { 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CatalogLibaryComponent, isStandalone: true, selector: "igo-catalog-library", inputs: { store: "store", map: "map", addCatalogAllowed: "addCatalogAllowed", predefinedCatalogs: "predefinedCatalogs" }, outputs: { catalogSelectChange: "catalogSelectChange" }, ngImport: i0, template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\"\n >\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=\"btnAddCatalog\">\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\"\n >\n {{ 'igo.geo.catalog.library.addBtn' | translate }}\n <mat-icon>library_add</mat-icon>\n </button>\n</div>\n", styles: [":host igo-list{height:auto}:host .btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\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: CatalogLibaryItemComponent, selector: "igo-catalog-library-item", inputs: ["catalog", "map"], outputs: ["catalogRemove"] }, { 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CatalogLibaryComponent, decorators: [{
192
192
  type: Component,
@@ -201,7 +201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
201
201
  MatIconModule,
202
202
  AsyncPipe,
203
203
  TranslateModule
204
- ], template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\"\n >\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=\"btnAddCatalog\">\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\"\n >\n {{ 'igo.geo.catalog.library.addBtn' | translate }}\n <mat-icon svgIcon=\"earth-plus\"></mat-icon>\n </button>\n</div>\n", styles: [":host igo-list{height:auto}:host .btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\n"] }]
204
+ ], template: "<igo-list [navigation]=\"false\">\n <ng-template ngFor let-catalog [ngForOf]=\"getCatalogs() | async\">\n <igo-catalog-library-item\n igoListItem\n color=\"accent\"\n [map]=\"map\"\n [catalog]=\"catalog\"\n (catalogRemove)=\"onCatalogRemove(catalog)\"\n (select)=\"onCatalogSelect(catalog)\"\n >\n </igo-catalog-library-item>\n </ng-template>\n</igo-list>\n\n<div *ngIf=\"addCatalogAllowed\" class=\"btnAddCatalog\">\n <button\n mat-raised-button\n [matTooltip]=\"'igo.geo.catalog.library.addBtn' | translate\"\n matTooltipPosition=\"above\"\n color=\"primary\"\n (click)=\"addCatalogDialog()\"\n >\n {{ 'igo.geo.catalog.library.addBtn' | translate }}\n <mat-icon>library_add</mat-icon>\n </button>\n</div>\n", styles: [":host igo-list{height:auto}:host .btnAddCatalog{justify-content:center;display:flex;margin:30px 0}\n"] }]
205
205
  }], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.MessageService }, { type: i3.StorageService }, { type: i4.MatDialog }], propDecorators: { store: [{
206
206
  type: Input
207
207
  }], map: [{
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
213
213
  }], catalogSelectChange: [{
214
214
  type: Output
215
215
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxF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QUNKLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsS0FBSztnQkFDTCxZQUFZO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBNU1VLHNCQUFzQjsyRkFBdEIsc0JBQXNCLGtRQ3REbkMsbXhCQTBCQSw4SkRnQkksYUFBYSwwRkFDYixLQUFLLG1IQUNMLDBCQUEwQiw2SEFDMUIsaUJBQWlCLDZSQUNqQixJQUFJLDRGQUNKLGVBQWUsMk5BQ2YsZ0JBQWdCLDRUQUNoQixhQUFhLCtLQUNiLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sc0JBQXNCO2tCQW5CbEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixLQUFLO3dCQUNMLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7MEtBTVEsS0FBSztzQkFBYixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtJLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSwgTGlzdENvbXBvbmVudCwgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcblxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IHN0YW5kYXJkaXplVXJsIH0gZnJvbSAnLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcbmltcG9ydCB7IENhdGFsb2cgfSBmcm9tICcuLi9zaGFyZWQvY2F0YWxvZy5hYnN0cmFjdCc7XG5pbXBvcnQgeyBBZGRDYXRhbG9nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtY2F0YWxvZy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnktaXRlbS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBicm93c2UgYSBsaXN0IG9mIGF2YWlsYWJsZSBjYXRhbG9nc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExpc3RDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgQ2F0YWxvZ0xpYmFyeUl0ZW1Db21wb25lbnQsXG4gICAgTGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTGliYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3RvcmUgaG9sZGluZyB0aGUgY2F0YWxvZ3NcbiAgICovXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZTxDYXRhbG9nPjtcblxuICAvKipcbiAgICogTWFwIHRvIGFkZCB0aGUgY2F0YWxvZyBpdGVtcyB0b1xuICAgKi9cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIGFkZENhdGFsb2dBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIHByZWRlZmluZWRDYXRhbG9nczogQ2F0YWxvZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgYSBjYXRhbG9nIGlzIHNlbGVjdGVkIG9yIHVuc2VsZWN0ZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjYXRhbG9nU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgY2F0YWxvZzogQ2F0YWxvZztcbiAgfT4oKTtcblxuICBzdWJtaXREaXNhYmxlZCA9IHRydWU7XG4gIHByaXZhdGUgYWRkaW5nQ2F0YWxvZyQkOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGFkZGVkQ2F0YWxvZ3MoKTogQ2F0YWxvZ1tdIHtcbiAgICByZXR1cm4gKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdhZGRlZENhdGFsb2dzJykgfHwgW10pIGFzIENhdGFsb2dbXTtcbiAgfVxuICBzZXQgYWRkZWRDYXRhbG9ncyhjYXRhbG9nczogQ2F0YWxvZ1tdKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2FkZGVkQ2F0YWxvZ3MnLCBjYXRhbG9ncyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5zdGF0ZS5jbGVhcigpO1xuXG4gICAgdGhpcy5wcmVkZWZpbmVkQ2F0YWxvZ3MgPSB0aGlzLnByZWRlZmluZWRDYXRhbG9ncy5tYXAoKGMpID0+IHtcbiAgICAgIGMuaWQgPSBNZDUuaGFzaFN0cigoYy50eXBlIHx8ICd3bXMnKSArIHN0YW5kYXJkaXplVXJsKGMudXJsKSkgYXMgc3RyaW5nO1xuICAgICAgYy50aXRsZSA9IGMudGl0bGUgPT09ICcnIHx8ICFjLnRpdGxlID8gYy51cmwgOiBjLnRpdGxlO1xuICAgICAgcmV0dXJuIGM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDYXRhbG9ncygpOiBPYnNlcnZhYmxlPENhdGFsb2dbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnZpZXcuYWxsJCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBjYXRhbG9nIGlzIHNlbGVjdGVkLCB1cGRhdGUgaXQncyBzdGF0ZSBpbiB0aGUgc3RvcmVcbiAgICogYW5kIGVtaXQgdGhlIGNhdGFsb2cgc2VsZWN0IGNoYW5nZSBldmVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQ2F0YWxvZ1NlbGVjdChjYXRhbG9nOiBDYXRhbG9nKSB7XG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUoXG4gICAgICBjYXRhbG9nLFxuICAgICAge1xuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgZm9jdXNlZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICAgIHRoaXMuY2F0YWxvZ1NlbGVjdENoYW5nZS5lbWl0KHsgc2VsZWN0ZWQ6IHRydWUsIGNhdGFsb2cgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWRkaW5nQ2F0YWxvZygpIHtcbiAgICBpZiAodGhpcy5hZGRpbmdDYXRhbG9nJCQpIHtcbiAgICAgIHRoaXMuYWRkaW5nQ2F0YWxvZyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2F0YWxvZyhhZGRlZENhdGFsb2c6IENhdGFsb2cpIHtcbiAgICBpZiAoIWFkZGVkQ2F0YWxvZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgaWQgPSBNZDUuaGFzaFN0cihcbiAgICAgIGFkZGVkQ2F0YWxvZy50eXBlICsgc3RhbmRhcmRpemVVcmwoYWRkZWRDYXRhbG9nLnVybClcbiAgICApIGFzIHN0cmluZztcbiAgICBjb25zdCBwcmVkZWZpbmVkQ2F0YWxvZyA9IHRoaXMucHJlZGVmaW5lZENhdGFsb2dzLmZpbmQoXG4gICAgICAoYykgPT4gYy5pZCA9PT0gYWRkZWRDYXRhbG9nLmlkXG4gICAgKTtcblxuICAgIGlmIChwcmVkZWZpbmVkQ2F0YWxvZykge1xuICAgICAgYWRkZWRDYXRhbG9nLnZlcnNpb24gPSBwcmVkZWZpbmVkQ2F0YWxvZy52ZXJzaW9uO1xuICAgICAgYWRkZWRDYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIgPSBwcmVkZWZpbmVkQ2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyO1xuICAgICAgaWQgPSBwcmVkZWZpbmVkQ2F0YWxvZy5pZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdG9yZS5nZXQoaWQpKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0Lm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0LnRpdGxlJ1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcblxuICAgIHRoaXMuYWRkaW5nQ2F0YWxvZyQkID0gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FwYWJpbGl0aWVzKFxuICAgICAgICBhZGRlZENhdGFsb2cudHlwZSBhcyBhbnksXG4gICAgICAgIGFkZGVkQ2F0YWxvZy51cmwsXG4gICAgICAgIGFkZGVkQ2F0YWxvZy52ZXJzaW9uXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgIGlmIChlLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENhdGFsb2dEaWFsb2codHJ1ZSwgYWRkZWRDYXRhbG9nKTtcbiAgICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZScsXG4gICAgICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgeyB2YWx1ZTogYWRkZWRDYXRhbG9nLnVybCB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2FwYWJpbGl0aWVzKSA9PiB7XG4gICAgICAgIGxldCB0aXRsZTtcbiAgICAgICAgbGV0IHZlcnNpb247XG4gICAgICAgIHN3aXRjaCAoYWRkZWRDYXRhbG9nLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICd3bXMnOlxuICAgICAgICAgICAgdGl0bGUgPSBhZGRlZENhdGFsb2cudGl0bGUgfHwgY2FwYWJpbGl0aWVzLlNlcnZpY2UuVGl0bGU7XG4gICAgICAgICAgICB2ZXJzaW9uID0gYWRkZWRDYXRhbG9nLnZlcnNpb24gfHwgY2FwYWJpbGl0aWVzLnZlcnNpb247XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdhcmNnaXNyZXN0JzpcbiAgICAgICAgICBjYXNlICdpbWFnZWFyY2dpc3Jlc3QnOlxuICAgICAgICAgIGNhc2UgJ3RpbGVhcmNnaXNyZXN0JzpcbiAgICAgICAgICAgIHRpdGxlID0gYWRkZWRDYXRhbG9nLnRpdGxlIHx8IGNhcGFiaWxpdGllcy5tYXBOYW1lO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgICB0aXRsZSA9XG4gICAgICAgICAgICAgIGFkZGVkQ2F0YWxvZy50aXRsZSB8fFxuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuU2VydmljZUlkZW50aWZpY2F0aW9uLlNlcnZpY2VUeXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRpdGxlID0gYWRkZWRDYXRhbG9nLnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2F0YWxvZ1RvQWRkID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHByZWRlZmluZWRDYXRhbG9nLFxuICAgICAgICAgICAgT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB1cmw6IGFkZGVkQ2F0YWxvZy51cmwsXG4gICAgICAgICAgICAgIHR5cGU6IGFkZGVkQ2F0YWxvZy50eXBlIHx8ICd3bXMnLFxuICAgICAgICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBhZGRlZENhdGFsb2cuZXh0ZXJuYWxQcm92aWRlciB8fCBmYWxzZSxcbiAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkgYXMgQ2F0YWxvZ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0b3JlLmluc2VydChjYXRhbG9nVG9BZGQpO1xuICAgICAgICBjb25zdCBuZXdDYXRhbG9ncyA9IHRoaXMuYWRkZWRDYXRhbG9ncy5zbGljZSgwKTtcbiAgICAgICAgbmV3Q2F0YWxvZ3MucHVzaChjYXRhbG9nVG9BZGQpO1xuICAgICAgICB0aGlzLmFkZGVkQ2F0YWxvZ3MgPSBuZXdDYXRhbG9ncztcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcbiAgfVxuXG4gIG9uQ2F0YWxvZ1JlbW92ZShjYXRhbG9nKSB7XG4gICAgdGhpcy5zdG9yZS5kZWxldGUoY2F0YWxvZyk7XG4gICAgdGhpcy5hZGRlZENhdGFsb2dzID0gdGhpcy5hZGRlZENhdGFsb2dzXG4gICAgICAuc2xpY2UoMClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGNhdGFsb2cuaWQpO1xuICB9XG5cbiAgYWRkQ2F0YWxvZ0RpYWxvZyhlcnJvcj8sIGFkZGVkQ2F0YWxvZz86IENhdGFsb2cpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNzAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBwcmVkZWZpbmVkQ2F0YWxvZ3M6IHRoaXMucHJlZGVmaW5lZENhdGFsb2dzLFxuICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGFkZGVkQ2F0YWxvZ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChjYXRhbG9nKSA9PiB7XG4gICAgICB0aGlzLmFkZENhdGFsb2coY2F0YWxvZyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNhdGFsb2cgW25nRm9yT2ZdPVwiZ2V0Q2F0YWxvZ3MoKSB8IGFzeW5jXCI+XG4gICAgPGlnby1jYXRhbG9nLWxpYnJhcnktaXRlbVxuICAgICAgaWdvTGlzdEl0ZW1cbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgIFtjYXRhbG9nXT1cImNhdGFsb2dcIlxuICAgICAgKGNhdGFsb2dSZW1vdmUpPVwib25DYXRhbG9nUmVtb3ZlKGNhdGFsb2cpXCJcbiAgICAgIChzZWxlY3QpPVwib25DYXRhbG9nU2VsZWN0KGNhdGFsb2cpXCJcbiAgICA+XG4gICAgPC9pZ28tY2F0YWxvZy1saWJyYXJ5LWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuXG48ZGl2ICpuZ0lmPVwiYWRkQ2F0YWxvZ0FsbG93ZWRcIiBjbGFzcz1cImJ0bkFkZENhdGFsb2dcIj5cbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5saWJyYXJ5LmFkZEJ0bicgfCB0cmFuc2xhdGVcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIChjbGljayk9XCJhZGRDYXRhbG9nRGlhbG9nKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uY2F0YWxvZy5saWJyYXJ5LmFkZEJ0bicgfCB0cmFuc2xhdGUgfX1cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImVhcnRoLXBsdXNcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1saWJyYXJ5L2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctbGlicmFyeS9jYXRhbG9nLWxpYnJhcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxF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QUNKLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsS0FBSztnQkFDTCxZQUFZO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBNU1VLHNCQUFzQjsyRkFBdEIsc0JBQXNCLGtRQ3REbkMsdXdCQTBCQSw4SkRnQkksYUFBYSwwRkFDYixLQUFLLG1IQUNMLDBCQUEwQiw2SEFDMUIsaUJBQWlCLDZSQUNqQixJQUFJLDRGQUNKLGVBQWUsMk5BQ2YsZ0JBQWdCLDRUQUNoQixhQUFhLCtLQUNiLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sc0JBQXNCO2tCQW5CbEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixLQUFLO3dCQUNMLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsZUFBZTtxQkFDaEI7MEtBTVEsS0FBSztzQkFBYixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtJLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSwgTGlzdENvbXBvbmVudCwgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcblxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IHN0YW5kYXJkaXplVXJsIH0gZnJvbSAnLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcbmltcG9ydCB7IENhdGFsb2cgfSBmcm9tICcuLi9zaGFyZWQvY2F0YWxvZy5hYnN0cmFjdCc7XG5pbXBvcnQgeyBBZGRDYXRhbG9nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtY2F0YWxvZy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENhdGFsb2dMaWJhcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYXRhbG9nLWxpYnJhcnktaXRlbS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBicm93c2UgYSBsaXN0IG9mIGF2YWlsYWJsZSBjYXRhbG9nc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1saWJyYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2ctbGlicmFyeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExpc3RDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgQ2F0YWxvZ0xpYmFyeUl0ZW1Db21wb25lbnQsXG4gICAgTGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTGliYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogU3RvcmUgaG9sZGluZyB0aGUgY2F0YWxvZ3NcbiAgICovXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZTxDYXRhbG9nPjtcblxuICAvKipcbiAgICogTWFwIHRvIGFkZCB0aGUgY2F0YWxvZyBpdGVtcyB0b1xuICAgKi9cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIGFkZENhdGFsb2dBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBpZiB0aGUgZm9ybSB0byBhZGQgYSBjYXRhbG9nIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIHByZWRlZmluZWRDYXRhbG9nczogQ2F0YWxvZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgYSBjYXRhbG9nIGlzIHNlbGVjdGVkIG9yIHVuc2VsZWN0ZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjYXRhbG9nU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgY2F0YWxvZzogQ2F0YWxvZztcbiAgfT4oKTtcblxuICBzdWJtaXREaXNhYmxlZCA9IHRydWU7XG4gIHByaXZhdGUgYWRkaW5nQ2F0YWxvZyQkOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGFkZGVkQ2F0YWxvZ3MoKTogQ2F0YWxvZ1tdIHtcbiAgICByZXR1cm4gKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdhZGRlZENhdGFsb2dzJykgfHwgW10pIGFzIENhdGFsb2dbXTtcbiAgfVxuICBzZXQgYWRkZWRDYXRhbG9ncyhjYXRhbG9nczogQ2F0YWxvZ1tdKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2FkZGVkQ2F0YWxvZ3MnLCBjYXRhbG9ncyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5zdGF0ZS5jbGVhcigpO1xuXG4gICAgdGhpcy5wcmVkZWZpbmVkQ2F0YWxvZ3MgPSB0aGlzLnByZWRlZmluZWRDYXRhbG9ncy5tYXAoKGMpID0+IHtcbiAgICAgIGMuaWQgPSBNZDUuaGFzaFN0cigoYy50eXBlIHx8ICd3bXMnKSArIHN0YW5kYXJkaXplVXJsKGMudXJsKSkgYXMgc3RyaW5nO1xuICAgICAgYy50aXRsZSA9IGMudGl0bGUgPT09ICcnIHx8ICFjLnRpdGxlID8gYy51cmwgOiBjLnRpdGxlO1xuICAgICAgcmV0dXJuIGM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDYXRhbG9ncygpOiBPYnNlcnZhYmxlPENhdGFsb2dbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnZpZXcuYWxsJCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBjYXRhbG9nIGlzIHNlbGVjdGVkLCB1cGRhdGUgaXQncyBzdGF0ZSBpbiB0aGUgc3RvcmVcbiAgICogYW5kIGVtaXQgdGhlIGNhdGFsb2cgc2VsZWN0IGNoYW5nZSBldmVudFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQ2F0YWxvZ1NlbGVjdChjYXRhbG9nOiBDYXRhbG9nKSB7XG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUoXG4gICAgICBjYXRhbG9nLFxuICAgICAge1xuICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgZm9jdXNlZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICAgIHRoaXMuY2F0YWxvZ1NlbGVjdENoYW5nZS5lbWl0KHsgc2VsZWN0ZWQ6IHRydWUsIGNhdGFsb2cgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWRkaW5nQ2F0YWxvZygpIHtcbiAgICBpZiAodGhpcy5hZGRpbmdDYXRhbG9nJCQpIHtcbiAgICAgIHRoaXMuYWRkaW5nQ2F0YWxvZyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2F0YWxvZyhhZGRlZENhdGFsb2c6IENhdGFsb2cpIHtcbiAgICBpZiAoIWFkZGVkQ2F0YWxvZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgaWQgPSBNZDUuaGFzaFN0cihcbiAgICAgIGFkZGVkQ2F0YWxvZy50eXBlICsgc3RhbmRhcmRpemVVcmwoYWRkZWRDYXRhbG9nLnVybClcbiAgICApIGFzIHN0cmluZztcbiAgICBjb25zdCBwcmVkZWZpbmVkQ2F0YWxvZyA9IHRoaXMucHJlZGVmaW5lZENhdGFsb2dzLmZpbmQoXG4gICAgICAoYykgPT4gYy5pZCA9PT0gYWRkZWRDYXRhbG9nLmlkXG4gICAgKTtcblxuICAgIGlmIChwcmVkZWZpbmVkQ2F0YWxvZykge1xuICAgICAgYWRkZWRDYXRhbG9nLnZlcnNpb24gPSBwcmVkZWZpbmVkQ2F0YWxvZy52ZXJzaW9uO1xuICAgICAgYWRkZWRDYXRhbG9nLmV4dGVybmFsUHJvdmlkZXIgPSBwcmVkZWZpbmVkQ2F0YWxvZy5leHRlcm5hbFByb3ZpZGVyO1xuICAgICAgaWQgPSBwcmVkZWZpbmVkQ2F0YWxvZy5pZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdG9yZS5nZXQoaWQpKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0Lm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmdlby5jYXRhbG9nLmxpYnJhcnkuaW5saXN0LnRpdGxlJ1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcblxuICAgIHRoaXMuYWRkaW5nQ2F0YWxvZyQkID0gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FwYWJpbGl0aWVzKFxuICAgICAgICBhZGRlZENhdGFsb2cudHlwZSBhcyBhbnksXG4gICAgICAgIGFkZGVkQ2F0YWxvZy51cmwsXG4gICAgICAgIGFkZGVkQ2F0YWxvZy52ZXJzaW9uXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgIGlmIChlLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENhdGFsb2dEaWFsb2codHJ1ZSwgYWRkZWRDYXRhbG9nKTtcbiAgICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgJ2lnby5nZW8uY2F0YWxvZy51bmF2YWlsYWJsZScsXG4gICAgICAgICAgICAnaWdvLmdlby5jYXRhbG9nLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgeyB2YWx1ZTogYWRkZWRDYXRhbG9nLnVybCB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2FwYWJpbGl0aWVzKSA9PiB7XG4gICAgICAgIGxldCB0aXRsZTtcbiAgICAgICAgbGV0IHZlcnNpb247XG4gICAgICAgIHN3aXRjaCAoYWRkZWRDYXRhbG9nLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICd3bXMnOlxuICAgICAgICAgICAgdGl0bGUgPSBhZGRlZENhdGFsb2cudGl0bGUgfHwgY2FwYWJpbGl0aWVzLlNlcnZpY2UuVGl0bGU7XG4gICAgICAgICAgICB2ZXJzaW9uID0gYWRkZWRDYXRhbG9nLnZlcnNpb24gfHwgY2FwYWJpbGl0aWVzLnZlcnNpb247XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdhcmNnaXNyZXN0JzpcbiAgICAgICAgICBjYXNlICdpbWFnZWFyY2dpc3Jlc3QnOlxuICAgICAgICAgIGNhc2UgJ3RpbGVhcmNnaXNyZXN0JzpcbiAgICAgICAgICAgIHRpdGxlID0gYWRkZWRDYXRhbG9nLnRpdGxlIHx8IGNhcGFiaWxpdGllcy5tYXBOYW1lO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgICB0aXRsZSA9XG4gICAgICAgICAgICAgIGFkZGVkQ2F0YWxvZy50aXRsZSB8fFxuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuU2VydmljZUlkZW50aWZpY2F0aW9uLlNlcnZpY2VUeXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRpdGxlID0gYWRkZWRDYXRhbG9nLnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2F0YWxvZ1RvQWRkID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHByZWRlZmluZWRDYXRhbG9nLFxuICAgICAgICAgICAgT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB1cmw6IGFkZGVkQ2F0YWxvZy51cmwsXG4gICAgICAgICAgICAgIHR5cGU6IGFkZGVkQ2F0YWxvZy50eXBlIHx8ICd3bXMnLFxuICAgICAgICAgICAgICBleHRlcm5hbFByb3ZpZGVyOiBhZGRlZENhdGFsb2cuZXh0ZXJuYWxQcm92aWRlciB8fCBmYWxzZSxcbiAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkgYXMgQ2F0YWxvZ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0b3JlLmluc2VydChjYXRhbG9nVG9BZGQpO1xuICAgICAgICBjb25zdCBuZXdDYXRhbG9ncyA9IHRoaXMuYWRkZWRDYXRhbG9ncy5zbGljZSgwKTtcbiAgICAgICAgbmV3Q2F0YWxvZ3MucHVzaChjYXRhbG9nVG9BZGQpO1xuICAgICAgICB0aGlzLmFkZGVkQ2F0YWxvZ3MgPSBuZXdDYXRhbG9ncztcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFkZGluZ0NhdGFsb2coKTtcbiAgfVxuXG4gIG9uQ2F0YWxvZ1JlbW92ZShjYXRhbG9nKSB7XG4gICAgdGhpcy5zdG9yZS5kZWxldGUoY2F0YWxvZyk7XG4gICAgdGhpcy5hZGRlZENhdGFsb2dzID0gdGhpcy5hZGRlZENhdGFsb2dzXG4gICAgICAuc2xpY2UoMClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGNhdGFsb2cuaWQpO1xuICB9XG5cbiAgYWRkQ2F0YWxvZ0RpYWxvZyhlcnJvcj8sIGFkZGVkQ2F0YWxvZz86IENhdGFsb2cpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZENhdGFsb2dEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNzAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBwcmVkZWZpbmVkQ2F0YWxvZ3M6IHRoaXMucHJlZGVmaW5lZENhdGFsb2dzLFxuICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGFkZGVkQ2F0YWxvZ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChjYXRhbG9nKSA9PiB7XG4gICAgICB0aGlzLmFkZENhdGFsb2coY2F0YWxvZyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNhdGFsb2cgW25nRm9yT2ZdPVwiZ2V0Q2F0YWxvZ3MoKSB8IGFzeW5jXCI+XG4gICAgPGlnby1jYXRhbG9nLWxpYnJhcnktaXRlbVxuICAgICAgaWdvTGlzdEl0ZW1cbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgIFtjYXRhbG9nXT1cImNhdGFsb2dcIlxuICAgICAgKGNhdGFsb2dSZW1vdmUpPVwib25DYXRhbG9nUmVtb3ZlKGNhdGFsb2cpXCJcbiAgICAgIChzZWxlY3QpPVwib25DYXRhbG9nU2VsZWN0KGNhdGFsb2cpXCJcbiAgICA+XG4gICAgPC9pZ28tY2F0YWxvZy1saWJyYXJ5LWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuXG48ZGl2ICpuZ0lmPVwiYWRkQ2F0YWxvZ0FsbG93ZWRcIiBjbGFzcz1cImJ0bkFkZENhdGFsb2dcIj5cbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uY2F0YWxvZy5saWJyYXJ5LmFkZEJ0bicgfCB0cmFuc2xhdGVcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIChjbGljayk9XCJhZGRDYXRhbG9nRGlhbG9nKClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uY2F0YWxvZy5saWJyYXJ5LmFkZEJ0bicgfCB0cmFuc2xhdGUgfX1cbiAgICA8bWF0LWljb24+bGlicmFyeV9hZGQ8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19