@igo2/geo 20.1.0-next.13 → 20.1.0-next.14

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.
@@ -9154,7 +9154,7 @@ class LayerGroupComponent {
9154
9154
  this.selectChange.emit(event.checked);
9155
9155
  }
9156
9156
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LayerGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9157
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: LayerGroupComponent, isStandalone: true, selector: "igo-layer-group", inputs: { layer: { classPropertyName: "layer", publicName: "layer", isSignal: true, isRequired: false, transformFunction: null }, viewerOptions: { classPropertyName: "viewerOptions", publicName: "viewerOptions", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selectionDisabled: { classPropertyName: "selectionDisabled", publicName: "selectionDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action", visibilityChange: "visibilityChange", expand: "expand", selectChange: "selectChange" }, host: { properties: { "class.disabled": "this.isDisabled" } }, ngImport: i0, template: "<div class=\"layer-content\">\n @if (viewerOptions().mode === 'selection') {\n <mat-checkbox\n [checked]=\"selected()\"\n [disabled]=\"selectionDisabled()\"\n (change)=\"handleSelect($event)\"\n />\n }\n <ng-content />\n <span class=\"igo-layer-title\" (click)=\"handleExpand()\">{{\n layer().title\n }}</span>\n</div>\n\n<div class=\"list-actions\">\n <div class=\"list-secondary-actions\">\n <button\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerGroupTool($event)\"\n >\n <mat-icon>more_horiz</mat-icon>\n </button>\n </div>\n\n <igo-layer-visibility-button\n [layer]=\"layer()\"\n [disabled]=\"isDisabled\"\n [tooltip]=\"tooltipMessage\"\n [inResolutionsRange]=\"layer().isInResolutionsRange$ | async\"\n (visibilityChange)=\"toggleVisibility($event)\"\n />\n</div>\n", styles: [":host ::ng-deep .list-secondary-actions button{visibility:hidden}:host ::ng-deep .list-secondary-actions button.disabled{visibility:visible}:host:hover ::ng-deep .list-secondary-actions button{visibility:visible}:host.disabled ::ng-deep .igo-layer-title,:host.disabled ::ng-deep .list-secondary-actions{opacity:.54}:host{display:flex;align-items:center;justify-content:space-between;background-color:var(--mat-sys-surface)}:host ::ng-deep button.mat-default mat-icon{color:var(--mat-sys-on-surface);fill:var(--mat-sys-on-surface)}:host ::ng-deep button.disabled mat-icon{color:var(--mat-sys-on-secondary-fixed);fill:var(--mat-sys-on-secondary-fixed);opacity:.64}.igo-layer-title{flex:1;font-weight:700;cursor:pointer;max-height:48px;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2}.layer-browser-group-carret{margin-right:10px}.layer-content{display:flex;align-items:center;flex:1}.list-actions{display:flex;margin-left:4px;margin-right:4px}.child-list{padding-left:26px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LayerVisibilityButtonComponent, selector: "igo-layer-visibility-button", inputs: ["layer", "tooltip", "disabled", "showQueryBadge", "inResolutionsRange"], outputs: ["visibilityChange"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9157
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: LayerGroupComponent, isStandalone: true, selector: "igo-layer-group", inputs: { layer: { classPropertyName: "layer", publicName: "layer", isSignal: true, isRequired: false, transformFunction: null }, viewerOptions: { classPropertyName: "viewerOptions", publicName: "viewerOptions", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selectionDisabled: { classPropertyName: "selectionDisabled", publicName: "selectionDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action", visibilityChange: "visibilityChange", expand: "expand", selectChange: "selectChange" }, host: { properties: { "class.disabled": "this.isDisabled" } }, ngImport: i0, template: "<div class=\"layer-content\">\n <ng-content />\n\n @if (viewerOptions().mode === 'selection') {\n <mat-checkbox\n [checked]=\"selected()\"\n [disabled]=\"selectionDisabled()\"\n (change)=\"handleSelect($event)\"\n />\n }\n <span class=\"igo-layer-title\" (click)=\"handleExpand()\">{{\n layer().title\n }}</span>\n</div>\n\n<div class=\"list-actions\">\n <div class=\"list-secondary-actions\">\n <button\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerGroupTool($event)\"\n >\n <mat-icon>more_horiz</mat-icon>\n </button>\n </div>\n\n <igo-layer-visibility-button\n [layer]=\"layer()\"\n [disabled]=\"isDisabled\"\n [tooltip]=\"tooltipMessage\"\n [inResolutionsRange]=\"layer().isInResolutionsRange$ | async\"\n (visibilityChange)=\"toggleVisibility($event)\"\n />\n</div>\n", styles: [":host ::ng-deep .list-secondary-actions button{visibility:hidden}:host ::ng-deep .list-secondary-actions button.disabled{visibility:visible}:host:hover ::ng-deep .list-secondary-actions button{visibility:visible}:host.disabled ::ng-deep .igo-layer-title,:host.disabled ::ng-deep .list-secondary-actions{opacity:.54}:host{display:flex;align-items:center;justify-content:space-between;background-color:var(--mat-sys-surface)}:host ::ng-deep button.mat-default mat-icon{color:var(--mat-sys-on-surface);fill:var(--mat-sys-on-surface)}:host ::ng-deep button.disabled mat-icon{color:var(--mat-sys-on-secondary-fixed);fill:var(--mat-sys-on-secondary-fixed);opacity:.64}.igo-layer-title{flex:1;font-weight:700;cursor:pointer;max-height:48px;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2}.layer-browser-group-carret{margin-right:10px}.layer-content{display:flex;align-items:center;flex:1}.list-actions{display:flex;margin-left:4px;margin-right:4px}.child-list{padding-left:26px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LayerVisibilityButtonComponent, selector: "igo-layer-visibility-button", inputs: ["layer", "tooltip", "disabled", "showQueryBadge", "inResolutionsRange"], outputs: ["visibilityChange"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9158
9158
  }
9159
9159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LayerGroupComponent, decorators: [{
9160
9160
  type: Component,
@@ -9166,7 +9166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
9166
9166
  MatIconModule,
9167
9167
  LayerVisibilityButtonComponent,
9168
9168
  IgoLanguageModule
9169
- ], template: "<div class=\"layer-content\">\n @if (viewerOptions().mode === 'selection') {\n <mat-checkbox\n [checked]=\"selected()\"\n [disabled]=\"selectionDisabled()\"\n (change)=\"handleSelect($event)\"\n />\n }\n <ng-content />\n <span class=\"igo-layer-title\" (click)=\"handleExpand()\">{{\n layer().title\n }}</span>\n</div>\n\n<div class=\"list-actions\">\n <div class=\"list-secondary-actions\">\n <button\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerGroupTool($event)\"\n >\n <mat-icon>more_horiz</mat-icon>\n </button>\n </div>\n\n <igo-layer-visibility-button\n [layer]=\"layer()\"\n [disabled]=\"isDisabled\"\n [tooltip]=\"tooltipMessage\"\n [inResolutionsRange]=\"layer().isInResolutionsRange$ | async\"\n (visibilityChange)=\"toggleVisibility($event)\"\n />\n</div>\n", styles: [":host ::ng-deep .list-secondary-actions button{visibility:hidden}:host ::ng-deep .list-secondary-actions button.disabled{visibility:visible}:host:hover ::ng-deep .list-secondary-actions button{visibility:visible}:host.disabled ::ng-deep .igo-layer-title,:host.disabled ::ng-deep .list-secondary-actions{opacity:.54}:host{display:flex;align-items:center;justify-content:space-between;background-color:var(--mat-sys-surface)}:host ::ng-deep button.mat-default mat-icon{color:var(--mat-sys-on-surface);fill:var(--mat-sys-on-surface)}:host ::ng-deep button.disabled mat-icon{color:var(--mat-sys-on-secondary-fixed);fill:var(--mat-sys-on-secondary-fixed);opacity:.64}.igo-layer-title{flex:1;font-weight:700;cursor:pointer;max-height:48px;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2}.layer-browser-group-carret{margin-right:10px}.layer-content{display:flex;align-items:center;flex:1}.list-actions{display:flex;margin-left:4px;margin-right:4px}.child-list{padding-left:26px}\n"] }]
9169
+ ], template: "<div class=\"layer-content\">\n <ng-content />\n\n @if (viewerOptions().mode === 'selection') {\n <mat-checkbox\n [checked]=\"selected()\"\n [disabled]=\"selectionDisabled()\"\n (change)=\"handleSelect($event)\"\n />\n }\n <span class=\"igo-layer-title\" (click)=\"handleExpand()\">{{\n layer().title\n }}</span>\n</div>\n\n<div class=\"list-actions\">\n <div class=\"list-secondary-actions\">\n <button\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerGroupTool($event)\"\n >\n <mat-icon>more_horiz</mat-icon>\n </button>\n </div>\n\n <igo-layer-visibility-button\n [layer]=\"layer()\"\n [disabled]=\"isDisabled\"\n [tooltip]=\"tooltipMessage\"\n [inResolutionsRange]=\"layer().isInResolutionsRange$ | async\"\n (visibilityChange)=\"toggleVisibility($event)\"\n />\n</div>\n", styles: [":host ::ng-deep .list-secondary-actions button{visibility:hidden}:host ::ng-deep .list-secondary-actions button.disabled{visibility:visible}:host:hover ::ng-deep .list-secondary-actions button{visibility:visible}:host.disabled ::ng-deep .igo-layer-title,:host.disabled ::ng-deep .list-secondary-actions{opacity:.54}:host{display:flex;align-items:center;justify-content:space-between;background-color:var(--mat-sys-surface)}:host ::ng-deep button.mat-default mat-icon{color:var(--mat-sys-on-surface);fill:var(--mat-sys-on-surface)}:host ::ng-deep button.disabled mat-icon{color:var(--mat-sys-on-secondary-fixed);fill:var(--mat-sys-on-secondary-fixed);opacity:.64}.igo-layer-title{flex:1;font-weight:700;cursor:pointer;max-height:48px;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;box-orient:vertical;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2}.layer-browser-group-carret{margin-right:10px}.layer-content{display:flex;align-items:center;flex:1}.list-actions{display:flex;margin-left:4px;margin-right:4px}.child-list{padding-left:26px}\n"] }]
9170
9170
  }], propDecorators: { layer: [{ type: i0.Input, args: [{ isSignal: true, alias: "layer", required: false }] }], viewerOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewerOptions", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], selectionDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionDisabled", required: false }] }], action: [{ type: i0.Output, args: ["action"] }], visibilityChange: [{ type: i0.Output, args: ["visibilityChange"] }], expand: [{ type: i0.Output, args: ["expand"] }], selectChange: [{ type: i0.Output, args: ["selectChange"] }], isDisabled: [{
9171
9171
  type: HostBinding,
9172
9172
  args: ['class.disabled']
@@ -10591,96 +10591,96 @@ class DataSourceService {
10591
10591
  messageService = inject(MessageService);
10592
10592
  authInterceptor = inject(AuthInterceptor);
10593
10593
  datasources$ = new BehaviorSubject([]);
10594
- createAsyncDataSource(context, detailedContextUri) {
10595
- if (!context.type) {
10596
- console.error(context);
10594
+ createAsyncDataSource(options, detailedContextUri) {
10595
+ if (!options.type) {
10596
+ console.error(options);
10597
10597
  throw new Error('Datasource needs a type');
10598
10598
  }
10599
10599
  let dataSource;
10600
- switch (context.type.toLowerCase()) {
10600
+ switch (options.type.toLowerCase()) {
10601
10601
  case 'osm':
10602
- dataSource = this.createOSMDataSource(context);
10602
+ dataSource = this.createOSMDataSource(options);
10603
10603
  break;
10604
10604
  case 'vector':
10605
- dataSource = this.createFeatureDataSource(context);
10605
+ dataSource = this.createFeatureDataSource(options);
10606
10606
  break;
10607
10607
  case 'wfs':
10608
- dataSource = this.createWFSDataSource(context);
10608
+ dataSource = this.createWFSDataSource(options);
10609
10609
  break;
10610
10610
  case 'wms': {
10611
- const wmsContext = context;
10611
+ const wmsContext = options;
10612
10612
  ObjectUtils.removeDuplicateCaseInsensitive(wmsContext.params);
10613
10613
  dataSource = this.createWMSDataSource(wmsContext, detailedContextUri);
10614
10614
  break;
10615
10615
  }
10616
10616
  case 'wmts':
10617
- dataSource = this.createWMTSDataSource(context);
10617
+ dataSource = this.createWMTSDataSource(options);
10618
10618
  break;
10619
10619
  case 'xyz':
10620
- dataSource = this.createXYZDataSource(context);
10620
+ dataSource = this.createXYZDataSource(options);
10621
10621
  break;
10622
10622
  case 'tiledebug':
10623
- dataSource = this.createTileDebugDataSource(context);
10623
+ dataSource = this.createTileDebugDataSource(options);
10624
10624
  break;
10625
10625
  case 'carto':
10626
- dataSource = this.createCartoDataSource(context);
10626
+ dataSource = this.createCartoDataSource(options);
10627
10627
  break;
10628
10628
  case 'arcgisrest':
10629
- dataSource = this.createArcGISRestDataSource(context, detailedContextUri);
10629
+ dataSource = this.createArcGISRestDataSource(options, detailedContextUri);
10630
10630
  break;
10631
10631
  case 'imagearcgisrest':
10632
- dataSource = this.createArcGISRestImageDataSource(context, detailedContextUri);
10632
+ dataSource = this.createArcGISRestImageDataSource(options, detailedContextUri);
10633
10633
  break;
10634
10634
  case 'websocket':
10635
- dataSource = this.createWebSocketDataSource(context);
10635
+ dataSource = this.createWebSocketDataSource(options);
10636
10636
  break;
10637
10637
  case 'mvt':
10638
- dataSource = this.createMVTDataSource(context);
10638
+ dataSource = this.createMVTDataSource(options);
10639
10639
  break;
10640
10640
  case 'tilearcgisrest':
10641
- dataSource = this.createTileArcGISRestDataSource(context, detailedContextUri);
10641
+ dataSource = this.createTileArcGISRestDataSource(options, detailedContextUri);
10642
10642
  break;
10643
10643
  case 'cluster':
10644
- dataSource = this.createClusterDataSource(context);
10644
+ dataSource = this.createClusterDataSource(options);
10645
10645
  break;
10646
10646
  default:
10647
- console.error(context);
10647
+ console.error(options);
10648
10648
  throw new Error('Invalid datasource type');
10649
10649
  }
10650
10650
  this.datasources$.next(this.datasources$.value.concat([dataSource]));
10651
10651
  return dataSource;
10652
10652
  }
10653
- createOSMDataSource(context) {
10654
- return new Observable((d) => d.next(new OSMDataSource(context)));
10653
+ createOSMDataSource(options) {
10654
+ return new Observable((d) => d.next(new OSMDataSource(options)));
10655
10655
  }
10656
- createFeatureDataSource(context) {
10657
- return new Observable((d) => d.next(new FeatureDataSource(context)));
10656
+ createFeatureDataSource(options) {
10657
+ return new Observable((d) => d.next(new FeatureDataSource(options)));
10658
10658
  }
10659
- createWebSocketDataSource(context) {
10660
- return new Observable((d) => d.next(new WebSocketDataSource(context)));
10659
+ createWebSocketDataSource(options) {
10660
+ return new Observable((d) => d.next(new WebSocketDataSource(options)));
10661
10661
  }
10662
- createWFSDataSource(context) {
10663
- return new Observable((d) => d.next(new WFSDataSource(context, this.wfsDataSourceService, this.ogcFilterService, this.authInterceptor)));
10662
+ createWFSDataSource(options) {
10663
+ return new Observable((d) => d.next(new WFSDataSource(options, this.wfsDataSourceService, this.ogcFilterService, this.authInterceptor)));
10664
10664
  }
10665
- createWMSDataSource(context, detailedContextUri) {
10665
+ createWMSDataSource(options, detailedContextUri) {
10666
10666
  const observables = [];
10667
- if (context.optionsFromCapabilities && window.navigator.onLine) {
10668
- observables.push(this.capabilitiesService.getWMSOptions(context).pipe(catchError$1((e) => {
10669
- this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
10667
+ if (options.optionsFromCapabilities && window.navigator.onLine) {
10668
+ observables.push(this.capabilitiesService.getWMSOptions(options).pipe(catchError$1((e) => {
10669
+ this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: options.params.LAYERS });
10670
10670
  throw e;
10671
10671
  })));
10672
10672
  }
10673
10673
  if (this.optionsService &&
10674
- context.optionsFromApi &&
10674
+ options.optionsFromApi &&
10675
10675
  window.navigator.onLine) {
10676
- observables.push(this.optionsService.getWMSOptions(context, detailedContextUri).pipe(catchError$1((e) => {
10676
+ observables.push(this.optionsService.getWMSOptions(options, detailedContextUri).pipe(catchError$1((e) => {
10677
10677
  e.error.toDisplay = true;
10678
10678
  e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
10679
10679
  e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
10680
10680
  return of({});
10681
10681
  })));
10682
10682
  }
10683
- observables.push(of(context));
10683
+ observables.push(of(options));
10684
10684
  return forkJoin(observables).pipe(map((options) => {
10685
10685
  const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
10686
10686
  if (optionsMerged?.params) {
@@ -10700,44 +10700,44 @@ class DataSourceService {
10700
10700
  }
10701
10701
  return uppercasedParams;
10702
10702
  }
10703
- createWMTSDataSource(context) {
10704
- if (context.optionsFromCapabilities && window.navigator.onLine) {
10705
- return this.capabilitiesService.getWMTSOptions(context).pipe(map((options) => {
10703
+ createWMTSDataSource(options) {
10704
+ if (options.optionsFromCapabilities && window.navigator.onLine) {
10705
+ return this.capabilitiesService.getWMTSOptions(options).pipe(map((options) => {
10706
10706
  return options ? new WMTSDataSource(options) : undefined;
10707
10707
  }), catchError$1(() => {
10708
- this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.layer });
10708
+ this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: options.layer });
10709
10709
  return of(undefined);
10710
10710
  }));
10711
10711
  }
10712
- return new Observable((d) => d.next(new WMTSDataSource(context)));
10712
+ return new Observable((d) => d.next(new WMTSDataSource(options)));
10713
10713
  }
10714
- createXYZDataSource(context) {
10715
- return new Observable((d) => d.next(new XYZDataSource(context)));
10714
+ createXYZDataSource(options) {
10715
+ return new Observable((d) => d.next(new XYZDataSource(options)));
10716
10716
  }
10717
- createTileDebugDataSource(context) {
10718
- return new Observable((d) => d.next(new TileDebugDataSource(context)));
10717
+ createTileDebugDataSource(options) {
10718
+ return new Observable((d) => d.next(new TileDebugDataSource(options)));
10719
10719
  }
10720
- createCartoDataSource(context) {
10721
- if (context.mapId) {
10720
+ createCartoDataSource(options) {
10721
+ if (options.mapId) {
10722
10722
  return this.capabilitiesService
10723
- .getCartoOptions(context)
10723
+ .getCartoOptions(options)
10724
10724
  .pipe(map((options) => new CartoDataSource(options)));
10725
10725
  }
10726
- return new Observable((d) => d.next(new CartoDataSource(context)));
10726
+ return new Observable((d) => d.next(new CartoDataSource(options)));
10727
10727
  }
10728
- createArcGISRestDataSource(context, detailedContextUri) {
10728
+ createArcGISRestDataSource(options, detailedContextUri) {
10729
10729
  const observables = [];
10730
10730
  if (window.navigator.onLine) {
10731
- observables.push(this.capabilitiesService.getArcgisOptions(context).pipe(catchError$1((e) => {
10732
- this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.layer });
10731
+ observables.push(this.capabilitiesService.getArcgisOptions(options).pipe(catchError$1((e) => {
10732
+ this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: options.layer });
10733
10733
  throw e;
10734
10734
  })));
10735
10735
  }
10736
10736
  if (this.optionsService &&
10737
- context.optionsFromApi &&
10737
+ options.optionsFromApi &&
10738
10738
  window.navigator.onLine) {
10739
10739
  observables.push(this.optionsService
10740
- .getArcgisRestOptions(context, detailedContextUri)
10740
+ .getArcgisRestOptions(options, detailedContextUri)
10741
10741
  .pipe(catchError$1((e) => {
10742
10742
  e.error.toDisplay = true;
10743
10743
  e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
@@ -10745,7 +10745,7 @@ class DataSourceService {
10745
10745
  return of({});
10746
10746
  })));
10747
10747
  }
10748
- observables.push(of(context));
10748
+ observables.push(of(options));
10749
10749
  return forkJoin(observables).pipe(map((options) => {
10750
10750
  const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
10751
10751
  return new ArcGISRestDataSource(optionsMerged);
@@ -10753,19 +10753,19 @@ class DataSourceService {
10753
10753
  return of(undefined);
10754
10754
  }));
10755
10755
  }
10756
- createArcGISRestImageDataSource(context, detailedContextUri) {
10756
+ createArcGISRestImageDataSource(options, detailedContextUri) {
10757
10757
  const observables = [];
10758
10758
  if (window.navigator.onLine) {
10759
- observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError$1((e) => {
10760
- this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
10759
+ observables.push(this.capabilitiesService.getImageArcgisOptions(options).pipe(catchError$1((e) => {
10760
+ this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: options.params.LAYERS });
10761
10761
  throw e;
10762
10762
  })));
10763
10763
  }
10764
10764
  if (this.optionsService &&
10765
- context.optionsFromApi &&
10765
+ options.optionsFromApi &&
10766
10766
  window.navigator.onLine) {
10767
10767
  observables.push(this.optionsService
10768
- .getArcgisRestOptions(context, detailedContextUri)
10768
+ .getArcgisRestOptions(options, detailedContextUri)
10769
10769
  .pipe(catchError$1((e) => {
10770
10770
  e.error.toDisplay = true;
10771
10771
  e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
@@ -10773,7 +10773,7 @@ class DataSourceService {
10773
10773
  return of({});
10774
10774
  })));
10775
10775
  }
10776
- observables.push(of(context));
10776
+ observables.push(of(options));
10777
10777
  return forkJoin(observables).pipe(map((options) => {
10778
10778
  const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
10779
10779
  return new ImageArcGISRestDataSource(optionsMerged);
@@ -10781,19 +10781,19 @@ class DataSourceService {
10781
10781
  return of(undefined);
10782
10782
  }));
10783
10783
  }
10784
- createTileArcGISRestDataSource(context, detailedContextUri) {
10784
+ createTileArcGISRestDataSource(options, detailedContextUri) {
10785
10785
  const observables = [];
10786
10786
  if (window.navigator.onLine) {
10787
- observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError$1((e) => {
10788
- this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
10787
+ observables.push(this.capabilitiesService.getImageArcgisOptions(options).pipe(catchError$1((e) => {
10788
+ this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: options.params.LAYERS });
10789
10789
  throw e;
10790
10790
  })));
10791
10791
  }
10792
10792
  if (this.optionsService &&
10793
- context.optionsFromApi &&
10793
+ options.optionsFromApi &&
10794
10794
  window.navigator.onLine) {
10795
10795
  observables.push(this.optionsService
10796
- .getArcgisRestOptions(context, detailedContextUri)
10796
+ .getArcgisRestOptions(options, detailedContextUri)
10797
10797
  .pipe(catchError$1((e) => {
10798
10798
  e.error.toDisplay = true;
10799
10799
  e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
@@ -10801,7 +10801,7 @@ class DataSourceService {
10801
10801
  return of({});
10802
10802
  })));
10803
10803
  }
10804
- observables.push(of(context));
10804
+ observables.push(of(options));
10805
10805
  return forkJoin(observables).pipe(map((options) => {
10806
10806
  const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
10807
10807
  return new TileArcGISRestDataSource(optionsMerged);
@@ -10809,11 +10809,11 @@ class DataSourceService {
10809
10809
  return of(undefined);
10810
10810
  }));
10811
10811
  }
10812
- createMVTDataSource(context) {
10813
- return new Observable((d) => d.next(new MVTDataSource(context)));
10812
+ createMVTDataSource(options) {
10813
+ return new Observable((d) => d.next(new MVTDataSource(options)));
10814
10814
  }
10815
- createClusterDataSource(context) {
10816
- return new Observable((d) => d.next(new ClusterDataSource(context)));
10815
+ createClusterDataSource(options) {
10816
+ return new Observable((d) => d.next(new ClusterDataSource(options)));
10817
10817
  }
10818
10818
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DataSourceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10819
10819
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DataSourceService, providedIn: 'root' });
@@ -32978,7 +32978,7 @@ class SearchResultsItemComponent {
32978
32978
  }
32979
32979
  }
32980
32980
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchResultsItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32981
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SearchResultsItemComponent, isStandalone: true, selector: "igo-search-results-item", inputs: { result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, withZoomButton: { classPropertyName: "withZoomButton", publicName: "withZoomButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zoomEvent: "zoomEvent" }, ngImport: i0, template: "<mat-list-item\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n>\n @if (icon) {\n <mat-icon matListItemIcon>{{ showIcons() ? icon : 'blank' }}</mat-icon>\n }\n\n @if (titleHtml) {\n <span\n matListItemTitle\n [innerHtml]=\"titleHtml\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltipHtml\"\n matTooltipClass=\"search-result-tooltip\"\n ></span>\n } @else {\n @if (!titleHtml) {\n <span matTooltipShowDelay=\"500\" [matTooltip]=\"title\">{{ title }}</span>\n }\n }\n\n <div matListItemMeta>\n @if (withZoomButton()) {\n <button igoStopPropagation mat-icon-button (click)=\"onZoomHandler()\">\n <mat-icon>search</mat-icon>\n </button>\n }\n\n <ng-content select=\"[igoSearchItemToolbar]\" />\n </div>\n</mat-list-item>\n", styles: [":host ::ng-deep small{color:#8c8c8c}:host div[matlistitemmeta]:empty{display:none}:host ::ng-deep .search-result-tooltip{white-space:pre-line}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:#000}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#000000de}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: StopPropagationDirective, selector: "[igoStopPropagation]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32981
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SearchResultsItemComponent, isStandalone: true, selector: "igo-search-results-item", inputs: { result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, withZoomButton: { classPropertyName: "withZoomButton", publicName: "withZoomButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zoomEvent: "zoomEvent" }, ngImport: i0, template: "<mat-list-item\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n>\n @if (icon) {\n <mat-icon matListItemIcon>{{ showIcons() ? icon : 'blank' }}</mat-icon>\n }\n\n @if (titleHtml) {\n <span\n matListItemTitle\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n [innerHtml]=\"titleHtml\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltipHtml\"\n matTooltipClass=\"search-result-tooltip\"\n ></span>\n } @else {\n <span\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n >{{ title }}</span\n >\n }\n\n <div matListItemMeta>\n @if (withZoomButton()) {\n <button igoStopPropagation mat-icon-button (click)=\"onZoomHandler()\">\n <mat-icon>search</mat-icon>\n </button>\n }\n\n <ng-content select=\"[igoSearchItemToolbar]\" />\n </div>\n</mat-list-item>\n", styles: [":host ::ng-deep small{color:#8c8c8c}:host div[matlistitemmeta]:empty{display:none}:host ::ng-deep .search-result-tooltip{white-space:pre-line}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:#000}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#000000de}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: StopPropagationDirective, selector: "[igoStopPropagation]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32982
32982
  }
32983
32983
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchResultsItemComponent, decorators: [{
32984
32984
  type: Component,
@@ -32988,7 +32988,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
32988
32988
  MatTooltipModule,
32989
32989
  MatButtonModule,
32990
32990
  StopPropagationDirective
32991
- ], template: "<mat-list-item\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n>\n @if (icon) {\n <mat-icon matListItemIcon>{{ showIcons() ? icon : 'blank' }}</mat-icon>\n }\n\n @if (titleHtml) {\n <span\n matListItemTitle\n [innerHtml]=\"titleHtml\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltipHtml\"\n matTooltipClass=\"search-result-tooltip\"\n ></span>\n } @else {\n @if (!titleHtml) {\n <span matTooltipShowDelay=\"500\" [matTooltip]=\"title\">{{ title }}</span>\n }\n }\n\n <div matListItemMeta>\n @if (withZoomButton()) {\n <button igoStopPropagation mat-icon-button (click)=\"onZoomHandler()\">\n <mat-icon>search</mat-icon>\n </button>\n }\n\n <ng-content select=\"[igoSearchItemToolbar]\" />\n </div>\n</mat-list-item>\n", styles: [":host ::ng-deep small{color:#8c8c8c}:host div[matlistitemmeta]:empty{display:none}:host ::ng-deep .search-result-tooltip{white-space:pre-line}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:#000}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#000000de}\n"] }]
32991
+ ], template: "<mat-list-item\n (mouseenter)=\"onMouseEvent($event)\"\n (mouseleave)=\"onMouseEvent($event)\"\n>\n @if (icon) {\n <mat-icon matListItemIcon>{{ showIcons() ? icon : 'blank' }}</mat-icon>\n }\n\n @if (titleHtml) {\n <span\n matListItemTitle\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n [innerHtml]=\"titleHtml\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltipHtml\"\n matTooltipClass=\"search-result-tooltip\"\n ></span>\n } @else {\n <span\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"title\"\n >{{ title }}</span\n >\n }\n\n <div matListItemMeta>\n @if (withZoomButton()) {\n <button igoStopPropagation mat-icon-button (click)=\"onZoomHandler()\">\n <mat-icon>search</mat-icon>\n </button>\n }\n\n <ng-content select=\"[igoSearchItemToolbar]\" />\n </div>\n</mat-list-item>\n", styles: [":host ::ng-deep small{color:#8c8c8c}:host div[matlistitemmeta]:empty{display:none}:host ::ng-deep .search-result-tooltip{white-space:pre-line}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:#000}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#000000de}\n"] }]
32992
32992
  }], propDecorators: { result: [{ type: i0.Input, args: [{ isSignal: true, alias: "result", required: false }] }], map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: false }] }], showIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcons", required: false }] }], withZoomButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "withZoomButton", required: false }] }], zoomEvent: [{ type: i0.Output, args: ["zoomEvent"] }] } });
32993
32993
 
32994
32994
  class SaveFeatureDialogComponent {
@@ -39241,6 +39241,7 @@ class CatalogBrowserLayerComponent {
39241
39241
  this.mouseInsideAdd = true;
39242
39242
  break;
39243
39243
  case 'mouseleave':
39244
+ clearTimeout(this.lastTimeoutRequest);
39244
39245
  if (this.isPreview$.value) {
39245
39246
  this.remove(event);
39246
39247
  this.isPreview$.next(false);
@@ -39319,7 +39320,7 @@ class CatalogBrowserLayerComponent {
39319
39320
  }
39320
39321
  }
39321
39322
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CatalogBrowserLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CatalogBrowserLayerComponent, isStandalone: true, selector: "igo-catalog-browser-layer", inputs: { resolution: { classPropertyName: "resolution", publicName: "resolution", isSignal: true, isRequired: false, transformFunction: null }, catalogAllowLegend: { classPropertyName: "catalogAllowLegend", publicName: "catalogAllowLegend", isSignal: true, isRequired: false, transformFunction: null }, layer: { classPropertyName: "layer", publicName: "layer", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, added: { classPropertyName: "added", publicName: "added", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, ngImport: i0, template: "<mat-list-item>\n @if (haveGroup()) {\n <mat-icon class=\"catalog-browser-layer-carret\" matListItemIcon />\n }\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend() ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend()\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n @if (layer().externalProvider) {\n <button 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 }\n <igo-metadata-button [layer]=\"$any(layer())\" />\n\n @let isRange = inRange$ | async;\n @let isVisible = isVisible$ | async;\n @let isPreview = isPreview$ | async;\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 ? '' : 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 (isRange && isVisible) ||\n (isRange && !added()) ||\n (isRange && isPreview)\n \"\n [matBadgeDisabled]=\"isRange === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ isPreview ? 'preview' : added() ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n @let igoLayer = igoLayer$ | async;\n @if ((layerLegendShown$ | async) && igoLayer && catalogAllowLegend()) {\n <igo-layer-legend [layer]=\"igoLayer\" />\n }\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: i1$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i4$4.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: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39323
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CatalogBrowserLayerComponent, isStandalone: true, selector: "igo-catalog-browser-layer", inputs: { resolution: { classPropertyName: "resolution", publicName: "resolution", isSignal: true, isRequired: false, transformFunction: null }, catalogAllowLegend: { classPropertyName: "catalogAllowLegend", publicName: "catalogAllowLegend", isSignal: true, isRequired: false, transformFunction: null }, layer: { classPropertyName: "layer", publicName: "layer", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, added: { classPropertyName: "added", publicName: "added", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addedChange: "addedChange", addedLayerIsPreview: "addedLayerIsPreview" }, ngImport: i0, template: "<mat-list-item>\n @if (haveGroup()) {\n <mat-icon class=\"catalog-browser-layer-carret\" matListItemIcon />\n }\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n [ngClass]=\"catalogAllowLegend() ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend()\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n @if (layer().externalProvider) {\n <button 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 }\n <igo-metadata-button [layer]=\"$any(layer())\" />\n\n @let isRange = inRange$ | async;\n @let isVisible = isVisible$ | async;\n @let isPreview = isPreview$ | async;\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 ? '' : 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 (isRange && isVisible) ||\n (isRange && !added()) ||\n (isRange && isPreview)\n \"\n [matBadgeDisabled]=\"isRange === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ isPreview ? 'preview' : added() ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n @let igoLayer = igoLayer$ | async;\n @if ((layerLegendShown$ | async) && igoLayer && catalogAllowLegend()) {\n <igo-layer-legend [layer]=\"igoLayer\" />\n }\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: i1$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MetadataButtonComponent, selector: "igo-metadata-button", inputs: ["layer", "color"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i4$4.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: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39323
39324
  }
39324
39325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CatalogBrowserLayerComponent, decorators: [{
39325
39326
  type: Component,
@@ -39335,7 +39336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
39335
39336
  LayerLegendComponent,
39336
39337
  AsyncPipe,
39337
39338
  IgoLanguageModule
39338
- ], template: "<mat-list-item>\n @if (haveGroup()) {\n <mat-icon class=\"catalog-browser-layer-carret\" matListItemIcon />\n }\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n [ngClass]=\"catalogAllowLegend() ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend()\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n @if (layer().externalProvider) {\n <button 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 }\n <igo-metadata-button [layer]=\"$any(layer())\" />\n\n @let isRange = inRange$ | async;\n @let isVisible = isVisible$ | async;\n @let isPreview = isPreview$ | async;\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 ? '' : 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 (isRange && isVisible) ||\n (isRange && !added()) ||\n (isRange && isPreview)\n \"\n [matBadgeDisabled]=\"isRange === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ isPreview ? 'preview' : added() ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n @let igoLayer = igoLayer$ | async;\n @if ((layerLegendShown$ | async) && igoLayer && catalogAllowLegend()) {\n <igo-layer-legend [layer]=\"igoLayer\" />\n }\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"] }]
39339
+ ], template: "<mat-list-item>\n @if (haveGroup()) {\n <mat-icon class=\"catalog-browser-layer-carret\" matListItemIcon />\n }\n <span\n matListItemTitle\n matTooltipShowDelay=\"500\"\n class=\"igo-list-item-with-text-overflow-ellipsis\"\n [ngClass]=\"catalogAllowLegend() ? 'igo-cataloglayer-title' : ''\"\n (click)=\"askForLegend()\"\n [matTooltip]=\"computeTitleTooltip()\"\n >\n {{ title }}\n </span>\n\n <div matListItemMeta>\n @if (layer().externalProvider) {\n <button 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 }\n <igo-metadata-button [layer]=\"$any(layer())\" />\n\n @let isRange = inRange$ | async;\n @let isVisible = isVisible$ | async;\n @let isPreview = isPreview$ | async;\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 ? '' : 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 (isRange && isVisible) ||\n (isRange && !added()) ||\n (isRange && isPreview)\n \"\n [matBadgeDisabled]=\"isRange === false\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n >\n {{ isPreview ? 'preview' : added() ? 'delete' : 'add' }}\n </mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-cataloglayer-legend-container\">\n @let igoLayer = igoLayer$ | async;\n @if ((layerLegendShown$ | async) && igoLayer && catalogAllowLegend()) {\n <igo-layer-legend [layer]=\"igoLayer\" />\n }\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"] }]
39339
39340
  }], propDecorators: { resolution: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolution", required: false }] }], catalogAllowLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "catalogAllowLegend", required: false }] }], layer: [{ type: i0.Input, args: [{ isSignal: true, alias: "layer", required: false }] }], map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: false }] }], added: [{ type: i0.Input, args: [{ isSignal: true, alias: "added", required: false }] }], addedChange: [{ type: i0.Output, args: ["addedChange"] }], addedLayerIsPreview: [{ type: i0.Output, args: ["addedLayerIsPreview"] }] } });
39340
39341
 
39341
39342
  /**
@@ -39562,6 +39563,7 @@ class CatalogBrowserComponent {
39562
39563
  * Whether a group can be toggled when it's collapsed
39563
39564
  */
39564
39565
  toggleCollapsedGroup = input(true, ...(ngDevMode ? [{ debugName: "toggleCollapsedGroup" }] : []));
39566
+ isAddingLayers = new BehaviorSubject(false);
39565
39567
  /**
39566
39568
  * @internal
39567
39569
  */
@@ -39645,6 +39647,7 @@ class CatalogBrowserComponent {
39645
39647
  * @param layers Catalog layers
39646
39648
  */
39647
39649
  addLayersToMap(catalogLayers, event) {
39650
+ this.isAddingLayers.next(true);
39648
39651
  const layers$ = catalogLayers.map((layer) => {
39649
39652
  if (!layer.options.sourceOptions.optionsFromApi) {
39650
39653
  layer.options.sourceOptions.optionsFromApi = true;
@@ -39661,6 +39664,7 @@ class CatalogBrowserComponent {
39661
39664
  }
39662
39665
  this.store().state.updateMany(catalogLayers, { added: true });
39663
39666
  this.map().layerController.add(...layers.filter(Boolean));
39667
+ this.isAddingLayers.next(false);
39664
39668
  });
39665
39669
  }
39666
39670
  /**
@@ -39668,6 +39672,20 @@ class CatalogBrowserComponent {
39668
39672
  * @param layers Catalog layers
39669
39673
  */
39670
39674
  removeLayersFromMap(layers) {
39675
+ if (this.isAddingLayers.value) {
39676
+ this.isAddingLayers
39677
+ .pipe(first((value) => value === false))
39678
+ .subscribe((_isReady) => {
39679
+ this._removeLayersFromMap(layers);
39680
+ });
39681
+ }
39682
+ else
39683
+ ;
39684
+ {
39685
+ this._removeLayersFromMap(layers);
39686
+ }
39687
+ }
39688
+ _removeLayersFromMap(layers) {
39671
39689
  layers.forEach((layer) => {
39672
39690
  this.store().state.update(layer, { added: false });
39673
39691
  if (layer.options.baseLayer === true) {
@@ -39914,7 +39932,7 @@ class CatalogLibraryItemComponent {
39914
39932
  this.catalogRemove.emit();
39915
39933
  }
39916
39934
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CatalogLibraryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CatalogLibraryItemComponent, isStandalone: true, selector: "igo-catalog-library-item", inputs: { catalog: { classPropertyName: "catalog", publicName: "catalog", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { catalogRemove: "catalogRemove" }, ngImport: i0, template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n @if (catalog().externalProvider) {\n <mat-icon\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 }\n @if (catalog().removable) {\n <button\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\n @if (!catalog().removable) {\n <button class=\"igo-blank\" disabled=\"true\" mat-icon-button>\n <mat-icon />\n </button>\n }\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$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39935
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CatalogLibraryItemComponent, isStandalone: true, selector: "igo-catalog-library-item", inputs: { catalog: { classPropertyName: "catalog", publicName: "catalog", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { catalogRemove: "catalogRemove" }, ngImport: i0, template: "<mat-list-item>\n <span matListItemTitle class=\"igo-list-item-with-text-overflow-ellipsis\">\n {{ title }}\n </span>\n <div matListItemMeta>\n @if (catalog().externalProvider) {\n <mat-icon\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 }\n @if (catalog().removable) {\n <button\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\n @if (!catalog().removable) {\n <button class=\"igo-blank\" disabled=\"true\" mat-icon-button>\n <mat-icon />\n </button>\n }\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$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39918
39936
  }
39919
39937
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CatalogLibraryItemComponent, decorators: [{
39920
39938
  type: Component,
@@ -39924,7 +39942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
39924
39942
  MatTooltipModule,
39925
39943
  MatButtonModule,
39926
39944
  IgoLanguageModule
39927
- ], template: "<mat-list-item>\n <span matListItemTitle>\n {{ title }}\n </span>\n <div matListItemMeta>\n @if (catalog().externalProvider) {\n <mat-icon\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 }\n @if (catalog().removable) {\n <button\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\n @if (!catalog().removable) {\n <button class=\"igo-blank\" disabled=\"true\" mat-icon-button>\n <mat-icon />\n </button>\n }\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"] }]
39945
+ ], template: "<mat-list-item>\n <span matListItemTitle class=\"igo-list-item-with-text-overflow-ellipsis\">\n {{ title }}\n </span>\n <div matListItemMeta>\n @if (catalog().externalProvider) {\n <mat-icon\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 }\n @if (catalog().removable) {\n <button\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\n @if (!catalog().removable) {\n <button class=\"igo-blank\" disabled=\"true\" mat-icon-button>\n <mat-icon />\n </button>\n }\n </div>\n</mat-list-item>\n", styles: [".igo-blank{cursor:pointer}.igo-external-provider{cursor:help}\n"] }]
39928
39946
  }], propDecorators: { catalog: [{ type: i0.Input, args: [{ isSignal: true, alias: "catalog", required: false }] }], map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: false }] }], catalogRemove: [{ type: i0.Output, args: ["catalogRemove"] }] } });
39929
39947
 
39930
39948
  /**