geonetwork-ui 2.3.0-dev.376e0e90 → 2.3.0-dev.6e2b8bea

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 (50) hide show
  1. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -2
  2. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
  3. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -3
  4. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -7
  5. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
  6. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +52 -25
  7. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +12 -49
  8. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -2
  9. package/esm2022/translations/de.json +2 -0
  10. package/esm2022/translations/en.json +2 -0
  11. package/esm2022/translations/es.json +2 -0
  12. package/esm2022/translations/fr.json +2 -0
  13. package/esm2022/translations/it.json +2 -0
  14. package/esm2022/translations/nl.json +2 -0
  15. package/esm2022/translations/pt.json +2 -0
  16. package/fesm2022/geonetwork-ui.mjs +2574 -2491
  17. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  18. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  19. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
  20. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
  21. package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -1
  22. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  23. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
  24. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  25. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
  26. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  27. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  28. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -3
  29. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  30. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  33. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
  34. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
  35. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
  36. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -0
  37. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +8 -0
  38. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
  39. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
  40. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +60 -32
  41. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +17 -61
  42. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -1
  43. package/translations/de.json +2 -0
  44. package/translations/en.json +2 -0
  45. package/translations/es.json +2 -0
  46. package/translations/fr.json +2 -0
  47. package/translations/it.json +2 -0
  48. package/translations/nl.json +2 -0
  49. package/translations/pt.json +2 -0
  50. package/translations/sk.json +2 -0
@@ -38,7 +38,11 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
38
38
  });
39
39
  }
40
40
  else if (link.accessServiceProtocol === 'wmts') {
41
- return this.mapUtils.getWmtsLayerFromCapabilities(link);
41
+ return of({
42
+ url: link.url.toString(),
43
+ type: MapContextLayerTypeEnum.WMTS,
44
+ name: link.name,
45
+ });
42
46
  }
43
47
  return throwError(() => 'protocol not supported');
44
48
  }
@@ -52,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
52
56
  type: Component,
53
57
  args: [{ selector: 'gn-ui-add-layer-record-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n" }]
54
58
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LinkClassifierService }, { type: i2.MapFacade }, { type: i3.MapUtilsService }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3L2FkZC1sYXllci1yZWNvcmQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixTQUFTLEdBQ1YsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0scUNBQXFDLENBQUE7Ozs7Ozs7O0FBWTVDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDeEUsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsTUFBd0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDN0IsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN4QixjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixRQUF5QjtRQUVqQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFMUCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBR25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXlCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBeUI7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDekIsT0FBTyxVQUFVLENBQ2YsR0FBRyxFQUFFLENBQUMsb0RBQW9ELENBQzNELENBQUE7UUFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLEVBQUU7WUFDeEMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztnQkFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQTtTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUN4RDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF5QjtRQUNwQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQTFDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkMxQjNDLDh3QkF1QkE7OzJGREdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5pbXBvcnQge1xuICBnZXRMaW5rTGFiZWwsXG4gIExpbmtDbGFzc2lmaWVyU2VydmljZSxcbiAgTGlua1VzYWdlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0UmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1yZWNvcmQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUmVjb3JkUHJldmlld0NvbXBvbmVudCB7XG4gIGdldCBtYXBMaW5rcygpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5yZWNvcmQgYXMgRGF0YXNldFJlY29yZCkuZGlzdHJpYnV0aW9ucy5maWx0ZXIoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgICkgYXMgRGF0YXNldERpc3RyaWJ1dGlvbltdXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUxpbmtDbGljayhsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uKSB7XG4gICAgY29uc3QgbGF5ZXIgPSBhd2FpdCB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykudG9Qcm9taXNlKClcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyLCB0aXRsZTogdGhpcy5yZWNvcmQudGl0bGUgfSlcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSAhPT0gJ3NlcnZpY2UnKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICgpID0+ICdtYXAgbGF5ZXIgY291bGQgbm90IGJlIGJ1aWx0IGZvciB0aGlzIGRpc3RyaWJ1dGlvbidcbiAgICAgIClcbiAgICBpZiAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cycpIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcFV0aWxzLmdldFdtdHNMYXllckZyb21DYXBhYmlsaXRpZXMobGluaylcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG5cbiAgZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0TGlua0xhYmVsKGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyByb3VuZGVkLXNtXCIgW3RpdGxlXT1cInJlY29yZC5hYnN0cmFjdFwiPlxuICA8Z24tdWktdGh1bWJuYWlsXG4gICAgY2xhc3M9XCJ3LTE2IGgtMTYgc2hyaW5rLTAgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMTAwXCJcbiAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsLnRvU3RyaW5nKClcIlxuICA+PC9nbi11aS10aHVtYm5haWw+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdHJ1bmNhdGVcIj5cbiAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgIDwvaDE+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBtYXBMaW5rc1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGxpbmspXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIiFweS1bOHB4XSAhcHgtWzEycHhdXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCB0ZXh0LVsxMnB4XSBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICB7eyBnZXRMaW5rTGFiZWwobGluaykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3L2FkZC1sYXllci1yZWNvcmQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixTQUFTLEdBQ1YsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0scUNBQXFDLENBQUE7Ozs7Ozs7O0FBWTVDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDeEUsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsTUFBd0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDN0IsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN4QixjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixRQUF5QjtRQUVqQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFMUCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBR25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXlCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBeUI7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDekIsT0FBTyxVQUFVLENBQ2YsR0FBRyxFQUFFLENBQUMsb0RBQW9ELENBQzNELENBQUE7UUFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLEVBQUU7WUFDeEMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztnQkFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQTtTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFO1lBQ2hELE9BQU8sRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLHVCQUF1QixDQUFDLElBQUk7Z0JBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNoQixDQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF5QjtRQUNwQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQTlDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkMxQjNDLDh3QkF1QkE7OzJGREdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5pbXBvcnQge1xuICBnZXRMaW5rTGFiZWwsXG4gIExpbmtDbGFzc2lmaWVyU2VydmljZSxcbiAgTGlua1VzYWdlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0UmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1yZWNvcmQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUmVjb3JkUHJldmlld0NvbXBvbmVudCB7XG4gIGdldCBtYXBMaW5rcygpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5yZWNvcmQgYXMgRGF0YXNldFJlY29yZCkuZGlzdHJpYnV0aW9ucy5maWx0ZXIoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgICkgYXMgRGF0YXNldERpc3RyaWJ1dGlvbltdXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUxpbmtDbGljayhsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uKSB7XG4gICAgY29uc3QgbGF5ZXIgPSBhd2FpdCB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykudG9Qcm9taXNlKClcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyLCB0aXRsZTogdGhpcy5yZWNvcmQudGl0bGUgfSlcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSAhPT0gJ3NlcnZpY2UnKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICgpID0+ICdtYXAgbGF5ZXIgY291bGQgbm90IGJlIGJ1aWx0IGZvciB0aGlzIGRpc3RyaWJ1dGlvbidcbiAgICAgIClcbiAgICBpZiAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uV01UUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG5cbiAgZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0TGlua0xhYmVsKGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyByb3VuZGVkLXNtXCIgW3RpdGxlXT1cInJlY29yZC5hYnN0cmFjdFwiPlxuICA8Z24tdWktdGh1bWJuYWlsXG4gICAgY2xhc3M9XCJ3LTE2IGgtMTYgc2hyaW5rLTAgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMTAwXCJcbiAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsLnRvU3RyaW5nKClcIlxuICA+PC9nbi11aS10aHVtYm5haWw+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdHJ1bmNhdGVcIj5cbiAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgIDwvaDE+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBtYXBMaW5rc1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGxpbmspXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIiFweS1bOHB4XSAhcHgtWzEycHhdXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCB0ZXh0LVsxMnB4XSBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICB7eyBnZXRMaW5rTGFiZWwobGluaykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { Component, Output, EventEmitter, Input, ChangeDetectorRef, } from '@angular/core';
2
+ import { OgcApiEndpoint } from '@camptocamp/ogc-client';
3
+ import { Subject, debounceTime } from 'rxjs';
4
+ import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@ngx-translate/core";
11
+ import * as i3 from "../../../../../ui/inputs/src/lib/button/button.component";
12
+ import * as i4 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
13
+ export class AddLayerFromOgcApiComponent {
14
+ constructor(changeDetectorRef) {
15
+ this.changeDetectorRef = changeDetectorRef;
16
+ this.layerAdded = new EventEmitter();
17
+ this.urlChange = new Subject();
18
+ this.layerUrl = '';
19
+ this.loading = false;
20
+ this.layers = [];
21
+ this.ogcEndpoint = null;
22
+ this.errorMessage = null;
23
+ }
24
+ ngOnInit() {
25
+ this.urlChange.pipe(debounceTime(700)).subscribe(() => {
26
+ this.loadLayers();
27
+ this.changeDetectorRef.detectChanges(); // manually trigger change detection
28
+ });
29
+ }
30
+ async loadLayers() {
31
+ this.errorMessage = null;
32
+ try {
33
+ this.loading = true;
34
+ if (this.ogcUrl.trim() === '') {
35
+ this.layers = [];
36
+ return;
37
+ }
38
+ this.ogcEndpoint = await new OgcApiEndpoint(this.ogcUrl);
39
+ // Currently only supports feature collections
40
+ this.layers = await this.ogcEndpoint.featureCollections;
41
+ }
42
+ catch (error) {
43
+ const err = error;
44
+ this.layers = [];
45
+ this.errorMessage = 'Error loading layers: ' + err.message;
46
+ }
47
+ finally {
48
+ this.loading = false;
49
+ this.changeDetectorRef.markForCheck();
50
+ }
51
+ }
52
+ async addLayer(layer) {
53
+ this.layerUrl = await this.ogcEndpoint.getCollectionItemsUrl(layer);
54
+ const layerToAdd = {
55
+ name: layer,
56
+ url: this.layerUrl,
57
+ type: MapContextLayerTypeEnum.OGCAPI,
58
+ };
59
+ this.layerAdded.emit({ ...layerToAdd, title: layer });
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromOgcApiComponent, isStandalone: true, selector: "gn-ui-add-layer-from-ogc-api", inputs: { ogcUrl: "ogcUrl" }, outputs: { layerAdded: "layerAdded" }, ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }] }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'gn-ui-add-layer-from-ogc-api', standalone: true, imports: [CommonModule, TranslateModule, UiInputsModule], template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n" }]
67
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { ogcUrl: [{
68
+ type: Input
69
+ }], layerAdded: [{
70
+ type: Output
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20tb2djLWFwaS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvYWRkLWxheWVyLWZyb20tb2djLWFwaS9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUVaLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7Ozs7O0FBVTlDLE1BQU0sT0FBTywyQkFBMkI7SUFXdEMsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUOUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUE7UUFFbkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUE7UUFDakMsYUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNiLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixXQUFNLEdBQWEsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQW1CLElBQUksQ0FBQTtRQUNsQyxpQkFBWSxHQUFrQixJQUFJLENBQUE7SUFFeUIsQ0FBQztJQUU1RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsb0NBQW9DO1FBQzdFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSTtZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNoQixPQUFNO2FBQ1A7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXhELDhDQUE4QztZQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQTtTQUN4RDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQTtTQUMzRDtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUN0QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFbkUsTUFBTSxVQUFVLEdBQXlCO1lBQ3ZDLElBQUksRUFBRSxLQUFLO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ2xCLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1NBQ3JDLENBQUE7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7OEdBbkRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDZKQzNCeEMsMmpDQW9DQSx5RERYWSxZQUFZLCtQQUFFLGVBQWUsa09BQUUsY0FBYzs7MkZBRTVDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSw4QkFBOEIsY0FHNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7d0dBRy9DLE1BQU07c0JBQWQsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2djQXBpRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXBMYXllciB9IGZyb20gJy4uLytzdGF0ZS9tYXAubW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFkZExheWVyRnJvbU9nY0FwaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9nY1VybDogc3RyaW5nXG4gIEBPdXRwdXQoKSBsYXllckFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNYXBMYXllcj4oKVxuXG4gIHVybENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuICBsYXllclVybCA9ICcnXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBsYXllcnM6IHN0cmluZ1tdID0gW11cbiAgb2djRW5kcG9pbnQ6IE9nY0FwaUVuZHBvaW50ID0gbnVsbFxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cmxDaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUoNzAwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZExheWVycygpXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSAvLyBtYW51YWxseSB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgbG9hZExheWVycygpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGxcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKHRoaXMub2djVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMub2djRW5kcG9pbnQgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5vZ2NVcmwpXG5cbiAgICAgIC8vIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGZlYXR1cmUgY29sbGVjdGlvbnNcbiAgICAgIHRoaXMubGF5ZXJzID0gYXdhaXQgdGhpcy5vZ2NFbmRwb2ludC5mZWF0dXJlQ29sbGVjdGlvbnNcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyID0gZXJyb3IgYXMgRXJyb3JcbiAgICAgIHRoaXMubGF5ZXJzID0gW11cbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Vycm9yIGxvYWRpbmcgbGF5ZXJzOiAnICsgZXJyLm1lc3NhZ2VcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGRMYXllcihsYXllcjogc3RyaW5nKSB7XG4gICAgdGhpcy5sYXllclVybCA9IGF3YWl0IHRoaXMub2djRW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW1zVXJsKGxheWVyKVxuXG4gICAgY29uc3QgbGF5ZXJUb0FkZDogTWFwQ29udGV4dExheWVyTW9kZWwgPSB7XG4gICAgICBuYW1lOiBsYXllcixcbiAgICAgIHVybDogdGhpcy5sYXllclVybCxcbiAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLk9HQ0FQSSxcbiAgICB9XG4gICAgdGhpcy5sYXllckFkZGVkLmVtaXQoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogbGF5ZXIgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTVcIj5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBbKHZhbHVlKV09XCJvZ2NVcmxcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJ1cmxDaGFuZ2UubmV4dCgkZXZlbnQpXCJcbiAgICBbaGludF09XCInbWFwLm9nYy51cmxJbnB1dC5oaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJ3LTk2XCJcbiAgPlxuICA8L2duLXVpLXRleHQtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIG10LTJcIj5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgPHAgY2xhc3M9XCJsb2FkaW5nLW1lc3NhZ2VcIiB0cmFuc2xhdGU+bWFwLmxvYWRpbmcuc2VydmljZTwvcD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgbGF5ZXJzLmxlbmd0aCA+IDBcIj5cbiAgPGgyIGNsYXNzPVwiZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sYXllcnMuYXZhaWxhYmxlPC9oMj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgbGF5ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBteS0yIGxheWVyLWl0ZW0tdHJlZVwiPlxuICAgICAgPHAgY2xhc3M9XCJtYXgtdy14cyBvdmVyZmxvdy1oaWRkZW4gb3ZlcmZsb3ctZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAge3sgbGF5ZXIgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJsYXllci1hZGQtYnRuXCJcbiAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkTGF5ZXIobGF5ZXIpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cInRleHQtc20gIXB4LTIgIXB5LTFcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjxzcGFuIHRyYW5zbGF0ZT4gbWFwLmxheWVyLmFkZCA8L3NwYW4+PC9nbi11aS1idXR0b25cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -25,6 +25,7 @@ import { AddLayerFromFileComponent } from './add-layer-from-file/add-layer-from-
25
25
  import { AddLayerFromWfsComponent } from './add-layer-from-wfs/add-layer-from-wfs.component';
26
26
  import { GeocodingComponent } from './geocoding/geocoding.component';
27
27
  import { GEOCODING_PROVIDER } from './geocoding.service';
28
+ import { AddLayerFromOgcApiComponent } from './add-layer-from-ogc-api/add-layer-from-ogc-api.component';
28
29
  import * as i0 from "@angular/core";
29
30
  import * as i1 from "@ngrx/store";
30
31
  import * as i2 from "@ngrx/effects";
@@ -46,7 +47,8 @@ export class FeatureMapModule {
46
47
  MatTabsModule,
47
48
  TranslateModule,
48
49
  FeatureSearchModule, i1.StoreFeatureModule, i2.EffectsFeatureModule, UiElementsModule,
49
- UiInputsModule], exports: [MapContextComponent,
50
+ UiInputsModule,
51
+ AddLayerFromOgcApiComponent], exports: [MapContextComponent,
50
52
  MapInstanceDirective,
51
53
  LayersPanelComponent,
52
54
  AddLayerFromCatalogComponent,
@@ -72,7 +74,8 @@ export class FeatureMapModule {
72
74
  StoreModule.forFeature(fromMap.MAP_FEATURE_KEY, fromMap.mapReducer),
73
75
  EffectsModule.forFeature([MapEffects]),
74
76
  UiElementsModule,
75
- UiInputsModule] }); }
77
+ UiInputsModule,
78
+ AddLayerFromOgcApiComponent] }); }
76
79
  }
77
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, decorators: [{
78
81
  type: NgModule,
@@ -109,6 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
109
112
  EffectsModule.forFeature([MapEffects]),
110
113
  UiElementsModule,
111
114
  UiInputsModule,
115
+ AddLayerFromOgcApiComponent,
112
116
  ],
113
117
  providers: [
114
118
  {
@@ -123,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
123
127
  ],
124
128
  }]
125
129
  }] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNC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Qjs0QkFDNUIsUUFBUSxFQUFFLGlCQUFpQjt5QkFDNUI7d0JBQ0QsU0FBUzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQXNCO3lCQUM1RDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFVpTWFwTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgZGVmYXVsdE1hcE9wdGlvbnMsIEZFQVRVUkVfTUFQX09QVElPTlMgfSBmcm9tICcuL2NvbnN0YW50J1xuaW1wb3J0IHsgTWFwSW5zdGFuY2VEaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZXIvbWFwLWluc3RhbmNlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hcENvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL21hcC1jb250ZXh0L2NvbXBvbmVudC9tYXAtY29udGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBMYXllcnNQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXJzLXBhbmVsL2xheWVycy1wYW5lbC5jb21wb25lbnQnXG5pbXBvcnQgeyBVaUxheW91dE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nLmNvbXBvbmVudCdcbmltcG9ydCB7IEZlYXR1cmVTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvc2VhcmNoL3NyYydcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cydcbmltcG9ydCAqIGFzIGZyb21NYXAgZnJvbSAnLi8rc3RhdGUvbWFwLnJlZHVjZXInXG5pbXBvcnQgeyBNYXBFZmZlY3RzIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmVmZmVjdHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgTWFwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBBZGRMYXllckZyb21XbXNDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLXdtcy9hZGQtbGF5ZXItZnJvbS13bXMuY29tcG9uZW50J1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tZmlsZS9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyRnJvbVdmc0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20td2ZzL2FkZC1sYXllci1mcm9tLXdmcy5jb21wb25lbnQnXG5pbXBvcnQgeyBHZW9jb2RpbmdDb21wb25lbnQgfSBmcm9tICcuL2dlb2NvZGluZy9nZW9jb2RpbmcuY29tcG9uZW50J1xuaW1wb3J0IHsgR0VPQ09ESU5HX1BST1ZJREVSLCBHZW9jb2RpbmdQcm92aWRlciB9IGZyb20gJy4vZ2VvY29kaW5nLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE1hcENvbnRleHRDb21wb25lbnQsXG4gICAgTWFwSW5zdGFuY2VEaXJlY3RpdmUsXG4gICAgTGF5ZXJzUGFuZWxDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCxcbiAgICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbVdtc0NvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21GaWxlQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbVdmc0NvbXBvbmVudCxcbiAgICBHZW9jb2RpbmdDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNYXBDb250ZXh0Q29tcG9uZW50LFxuICAgIE1hcEluc3RhbmNlRGlyZWN0aXZlLFxuICAgIExheWVyc1BhbmVsQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEdlb2NvZGluZ0NvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaU1hcE1vZHVsZSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZlYXR1cmVTZWFyY2hNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShmcm9tTWFwLk1BUF9GRUFUVVJFX0tFWSwgZnJvbU1hcC5tYXBSZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01hcEVmZmVjdHNdKSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGRUFUVVJFX01BUF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IGRlZmF1bHRNYXBPcHRpb25zLFxuICAgIH0sXG4gICAgTWFwRmFjYWRlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdFT0NPRElOR19QUk9WSURFUixcbiAgICAgIHVzZVZhbHVlOiBbJ2dlb25hbWVzJywgeyBtYXhSb3dzOiA1IH1dIGFzIEdlb2NvZGluZ1Byb3ZpZGVyLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYXBNb2R1bGUge31cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNC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dEMsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFzQjt5QkFDNUQ7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyRnJvbUZpbGVDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWZpbGUvYWRkLWxheWVyLWZyb20tZmlsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBBZGRMYXllckZyb21XZnNDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLXdmcy9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50J1xuaW1wb3J0IHsgR2VvY29kaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9jb2RpbmcvZ2VvY29kaW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IEdFT0NPRElOR19QUk9WSURFUiwgR2VvY29kaW5nUHJvdmlkZXIgfSBmcm9tICcuL2dlb2NvZGluZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tT2djQXBpQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBDb250ZXh0Q29tcG9uZW50LFxuICAgIE1hcEluc3RhbmNlRGlyZWN0aXZlLFxuICAgIExheWVyc1BhbmVsQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21XbXNDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21XZnNDb21wb25lbnQsXG4gICAgR2VvY29kaW5nQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBHZW9jb2RpbmdDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlNYXBNb2R1bGUsXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGZWF0dXJlU2VhcmNoTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZnJvbU1hcC5NQVBfRkVBVFVSRV9LRVksIGZyb21NYXAubWFwUmVkdWNlciksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtNYXBFZmZlY3RzXSksXG4gICAgVWlFbGVtZW50c01vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBBZGRMYXllckZyb21PZ2NBcGlDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZFQVRVUkVfTUFQX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogZGVmYXVsdE1hcE9wdGlvbnMsXG4gICAgfSxcbiAgICBNYXBGYWNhZGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogR0VPQ09ESU5HX1BST1ZJREVSLFxuICAgICAgdXNlVmFsdWU6IFsnZ2VvbmFtZXMnLCB7IG1heFJvd3M6IDUgfV0gYXMgR2VvY29kaW5nUHJvdmlkZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hcE1vZHVsZSB7fVxuIl19
@@ -7,23 +7,28 @@ import * as i3 from "../../../../../ui/layout/src/lib/expandable-panel-button/ex
7
7
  import * as i4 from "@angular/material/icon";
8
8
  import * as i5 from "@angular/material/tabs";
9
9
  import * as i6 from "@ngx-translate/core";
10
- import * as i7 from "../add-layer-from-catalog/add-layer-from-catalog.component";
11
- import * as i8 from "../add-layer-from-wms/add-layer-from-wms.component";
12
- import * as i9 from "../add-layer-from-file/add-layer-from-file.component";
13
- import * as i10 from "../add-layer-from-wfs/add-layer-from-wfs.component";
10
+ import * as i7 from "../add-layer-from-ogc-api/add-layer-from-ogc-api.component";
11
+ import * as i8 from "../add-layer-from-catalog/add-layer-from-catalog.component";
12
+ import * as i9 from "../add-layer-from-wms/add-layer-from-wms.component";
13
+ import * as i10 from "../add-layer-from-file/add-layer-from-file.component";
14
+ import * as i11 from "../add-layer-from-wfs/add-layer-from-wfs.component";
14
15
  export class LayersPanelComponent {
15
16
  constructor(mapFacade) {
16
17
  this.mapFacade = mapFacade;
17
18
  this.layers$ = this.mapFacade.layers$;
19
+ this.ogcUrl = '';
18
20
  }
19
21
  deleteLayer(index) {
20
22
  this.mapFacade.removeLayer(index);
21
23
  }
24
+ addLayer(layer) {
25
+ this.mapFacade.addLayer(layer);
26
+ }
22
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, deps: [{ token: i1.MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: i8.AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: i9.AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: i10.AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromOgcApiComponent, selector: "gn-ui-add-layer-from-ogc-api", inputs: ["ogcUrl"], outputs: ["layerAdded"] }, { kind: "component", type: i8.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: i9.AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: i10.AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: i11.AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
29
  }
25
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, decorators: [{
26
31
  type: Component,
27
- args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
32
+ args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
28
33
  }], ctorParameters: function () { return [{ type: i1.MapFacade }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7Ozs7QUFRaEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRHhDLFlBQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQTtJQUNXLENBQUM7SUFFNUMsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQzs4R0FOVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwwRENUakMsMC9EQXVEQTs7MkZEOUNhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL21hcC5mYWNhZGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWxheWVycy1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sYXllcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExheWVyc1BhbmVsQ29tcG9uZW50IHtcbiAgbGF5ZXJzJCA9IHRoaXMubWFwRmFjYWRlLmxheWVycyRcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSkge31cblxuICBkZWxldGVMYXllcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXBGYWNhZGUucmVtb3ZlTGF5ZXIoaW5kZXgpXG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkIHNoYWRvdyBzaGFkb3ctbGcgcmVsYXRpdmUgaC1mdWxsIHctWzQwMHB4XSBvdmVyZmxvdy1oaWRkZW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXItMlwiPmxheWVyczwvbWF0LWljb24+XG4gICAgPHNwYW4gdHJhbnNsYXRlPm1hcC5sYXllcnMubGlzdDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHB4LTQgZGl2aWRlLXkgZGl2aWRlLXktZ3JheS01MFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBsYXllcnMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0zXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIC1tbC0yIG1yLTIgc2hyaW5rLTBcIlxuICAgICAgICA+Y2hldnJvbl9yaWdodDwvbWF0LWljb25cbiAgICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibXItMiBncm93XCI+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW4+XG4gICAgICA8YVxuICAgICAgICBocmVmXG4gICAgICAgIGNsYXNzPVwidW5kZXJsaW5lIHRleHQtc20gdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTkwMFwiXG4gICAgICAgIChjbGljayk9XCJkZWxldGVMYXllcihpbmRleClcIlxuICAgICAgPlxuICAgICAgICBkZWxldGVcbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxnbi11aS1leHBhbmRhYmxlLXBhbmVsLWJ1dHRvbiBbdGl0bGVUZW1wbGF0ZV09XCJhZGRMYXllclRpdGxlXCI+XG4gICAgPG1hdC10YWItZ3JvdXAgYW5pbWF0aW9uRHVyYXRpb249XCIyMDBtc1wiIGNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIuY2F0YWxvZycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxnbi11aS1hZGQtbGF5ZXItZnJvbS1jYXRhbG9nPjwvZ24tdWktYWRkLWxheWVyLWZyb20tY2F0YWxvZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIud21zJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLXdtcz48L2duLXVpLWFkZC1sYXllci1mcm9tLXdtcz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIud2ZzJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLXdmcz48L2duLXVpLWFkZC1sYXllci1mcm9tLXdmcz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIuZmlsZScgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxnbi11aS1hZGQtbGF5ZXItZnJvbS1maWxlPjwvZ24tdWktYWRkLWxheWVyLWZyb20tZmlsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICA8L2duLXVpLWV4cGFuZGFibGUtcGFuZWwtYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYWRkTGF5ZXJUaXRsZT5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtci00XCI+YWRkX2NpcmNsZTwvbWF0LWljb24+XG4gIDxzcGFuIHRyYW5zbGF0ZT5tYXAuYWRkLmxheWVyPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBUWhELE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZ4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUE7UUFDaEMsV0FBTSxHQUFHLEVBQUUsQ0FBQTtJQUNnQyxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLENBQUM7OEdBWFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMERDVGpDLG96RUErREE7OzJGRHREYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1sYXllcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMYXllcnNQYW5lbENvbXBvbmVudCB7XG4gIGxheWVycyQgPSB0aGlzLm1hcEZhY2FkZS5sYXllcnMkXG4gIG9nY1VybCA9ICcnXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUpIHt9XG5cbiAgZGVsZXRlTGF5ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFwRmFjYWRlLnJlbW92ZUxheWVyKGluZGV4KVxuICB9XG5cbiAgYWRkTGF5ZXIobGF5ZXIpIHtcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcihsYXllcilcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImJnLXdoaXRlIHJvdW5kZWQgc2hhZG93IHNoYWRvdy1sZyByZWxhdGl2ZSBoLWZ1bGwgdy1bNDAwcHhdIG92ZXJmbG93LWhpZGRlblwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtci0yXCI+bGF5ZXJzPC9tYXQtaWNvbj5cbiAgICA8c3BhbiB0cmFuc2xhdGU+bWFwLmxheWVycy5saXN0PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHgtNCBkaXZpZGUteSBkaXZpZGUteS1ncmF5LTUwXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGxheWVyIG9mIGxheWVycyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHB5LTNcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgLW1sLTIgbXItMiBzaHJpbmstMFwiXG4gICAgICAgID5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtci0yIGdyb3dcIj57eyBsYXllci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDxhXG4gICAgICAgIGhyZWZcbiAgICAgICAgY2xhc3M9XCJ1bmRlcmxpbmUgdGV4dC1zbSB0ZXh0LXJlZC03MDAgaG92ZXI6dGV4dC1yZWQtOTAwXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUxheWVyKGluZGV4KVwiXG4gICAgICA+XG4gICAgICAgIGRlbGV0ZVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGduLXVpLWV4cGFuZGFibGUtcGFuZWwtYnV0dG9uIFt0aXRsZVRlbXBsYXRlXT1cImFkZExheWVyVGl0bGVcIj5cbiAgICA8bWF0LXRhYi1ncm91cCBhbmltYXRpb25EdXJhdGlvbj1cIjIwMG1zXCIgY2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5jYXRhbG9nJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLWNhdGFsb2c+PC9nbi11aS1hZGQtbGF5ZXItZnJvbS1jYXRhbG9nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci53bXMnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20td21zPjwvZ24tdWktYWRkLWxheWVyLWZyb20td21zPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci53ZnMnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20td2ZzPjwvZ24tdWktYWRkLWxheWVyLWZyb20td2ZzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5vZ2MuYXBpJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPGduLXVpLWFkZC1sYXllci1mcm9tLW9nYy1hcGlcbiAgICAgICAgICAgIFtvZ2NVcmxdPVwib2djVXJsXCJcbiAgICAgICAgICAgIChsYXllckFkZGVkKT1cImFkZExheWVyKCRldmVudClcIlxuICAgICAgICAgID48L2duLXVpLWFkZC1sYXllci1mcm9tLW9nYy1hcGk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLmZpbGUnIHwgdHJhbnNsYXRlXCIgYm9keUNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20tZmlsZT48L2duLXVpLWFkZC1sYXllci1mcm9tLWZpbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9nbi11aS1leHBhbmRhYmxlLXBhbmVsLWJ1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2FkZExheWVyVGl0bGU+XG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXItNFwiPmFkZF9jaXJjbGU8L21hdC1pY29uPlxuICA8c3BhbiB0cmFuc2xhdGU+bWFwLmFkZC5sYXllcjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,5 +5,6 @@ export var MapContextLayerTypeEnum;
5
5
  MapContextLayerTypeEnum["WMTS"] = "wmts";
6
6
  MapContextLayerTypeEnum["WFS"] = "wfs";
7
7
  MapContextLayerTypeEnum["GEOJSON"] = "geojson";
8
+ MapContextLayerTypeEnum["OGCAPI"] = "ogcapi";
8
9
  })(MapContextLayerTypeEnum || (MapContextLayerTypeEnum = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFOLElBQVksdUJBTVg7QUFORCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsc0NBQVcsQ0FBQTtJQUNYLHdDQUFhLENBQUE7SUFDYixzQ0FBVyxDQUFBO0lBQ1gsOENBQW1CLENBQUE7QUFDckIsQ0FBQyxFQU5XLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFNbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJ1xuaW1wb3J0IHR5cGUgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnb2wvc291cmNlL1dNVFMnXG5cbmV4cG9ydCBlbnVtIE1hcENvbnRleHRMYXllclR5cGVFbnVtIHtcbiAgWFlaID0gJ3h5eicsXG4gIFdNUyA9ICd3bXMnLFxuICBXTVRTID0gJ3dtdHMnLFxuICBXRlMgPSAnd2ZzJyxcbiAgR0VPSlNPTiA9ICdnZW9qc29uJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TW9kZWwge1xuICBsYXllcnM6IE1hcENvbnRleHRMYXllck1vZGVsW11cbiAgdmlldz86IE1hcENvbnRleHRWaWV3TW9kZWxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXbXNNb2RlbCB7XG4gIHR5cGU6ICd3bXMnXG4gIHVybDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbnRleHRMYXllcldtdHNNb2RlbCB7XG4gIHR5cGU6ICd3bXRzJ1xuICBvcHRpb25zOiBPcHRpb25zXG4gIGV4dGVudD86IEV4dGVudFxufVxuXG5pbnRlcmZhY2UgTWFwQ29udGV4dExheWVyV2ZzTW9kZWwge1xuICB0eXBlOiAnd2ZzJ1xuICB1cmw6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWwge1xuICB0eXBlOiAneHl6J1xuICBuYW1lPzogc3RyaW5nXG59XG5pbnRlcmZhY2UgTGF5ZXJYeXpNb2RlbFdpdGhVcmwgZXh0ZW5kcyBMYXllclh5ek1vZGVsIHtcbiAgdXJsOiBzdHJpbmdcbiAgdXJscz86IG5ldmVyXG59XG5pbnRlcmZhY2UgTGF5ZXJYeXpNb2RlbFdpdGhVcmxzIGV4dGVuZHMgTGF5ZXJYeXpNb2RlbCB7XG4gIHVybHM6IHN0cmluZ1tdXG4gIHVybD86IG5ldmVyXG59XG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbCA9XG4gIHwgTGF5ZXJYeXpNb2RlbFdpdGhVcmxcbiAgfCBMYXllclh5ek1vZGVsV2l0aFVybHNcblxuaW50ZXJmYWNlIExheWVyR2VvanNvbiB7XG4gIHR5cGU6ICdnZW9qc29uJ1xufVxuaW50ZXJmYWNlIExheWVyR2VvanNvbldpdGhVcmwgZXh0ZW5kcyBMYXllckdlb2pzb24ge1xuICB1cmw6IHN0cmluZ1xuICBkYXRhPzogbmV2ZXJcbn1cbmludGVyZmFjZSBMYXllckdlb2pzb25XaXRoRGF0YSBleHRlbmRzIExheWVyR2VvanNvbiB7XG4gIGRhdGE6IEZlYXR1cmVDb2xsZWN0aW9uIHwgc3RyaW5nXG4gIHVybD86IG5ldmVyXG59XG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJHZW9qc29uTW9kZWwgPVxuICB8IExheWVyR2VvanNvbldpdGhVcmxcbiAgfCBMYXllckdlb2pzb25XaXRoRGF0YVxuXG5leHBvcnQgdHlwZSBNYXBDb250ZXh0TGF5ZXJNb2RlbCA9XG4gIHwgTWFwQ29udGV4dExheWVyV21zTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJXbXRzTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJXZnNNb2RlbFxuICB8IE1hcENvbnRleHRMYXllclh5ek1vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyR2VvanNvbk1vZGVsXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dFZpZXdNb2RlbCB7XG4gIGNlbnRlcj86IENvb3JkaW5hdGUgLy8gZXhwcmVzc2VkIGluIGxvbmcvbGF0IChFUFNHOjQzMjYpXG4gIHpvb20/OiBudW1iZXJcbiAgZXh0ZW50PzogRXh0ZW50IC8vIGV4cHJlc3NlZCBpbiBsb25nL2xhdCAoRVBTRzo0MzI2KVxuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudCAvLyBleHByZXNzZWQgaW4gbG9uZy9sYXQgKEVQU0c6NDMyNilcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFOLElBQVksdUJBT1g7QUFQRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsc0NBQVcsQ0FBQTtJQUNYLHdDQUFhLENBQUE7SUFDYixzQ0FBVyxDQUFBO0lBQ1gsOENBQW1CLENBQUE7SUFDbkIsNENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVBXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFPbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJ1xuaW1wb3J0IHR5cGUgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnXG5cbmV4cG9ydCBlbnVtIE1hcENvbnRleHRMYXllclR5cGVFbnVtIHtcbiAgWFlaID0gJ3h5eicsXG4gIFdNUyA9ICd3bXMnLFxuICBXTVRTID0gJ3dtdHMnLFxuICBXRlMgPSAnd2ZzJyxcbiAgR0VPSlNPTiA9ICdnZW9qc29uJyxcbiAgT0dDQVBJID0gJ29nY2FwaScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dE1vZGVsIHtcbiAgbGF5ZXJzOiBNYXBDb250ZXh0TGF5ZXJNb2RlbFtdXG4gIHZpZXc/OiBNYXBDb250ZXh0Vmlld01vZGVsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dExheWVyV21zTW9kZWwge1xuICB0eXBlOiAnd21zJ1xuICB1cmw6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXbXRzTW9kZWwge1xuICB0eXBlOiAnd210cydcbiAgdXJsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbmludGVyZmFjZSBNYXBDb250ZXh0TGF5ZXJXZnNNb2RlbCB7XG4gIHR5cGU6ICd3ZnMnXG4gIHVybDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbnRleHRMYXllck9nY2FwaU1vZGVsIHtcbiAgdHlwZTogJ29nY2FwaSdcbiAgdXJsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbmludGVyZmFjZSBMYXllclh5ek1vZGVsIHtcbiAgdHlwZTogJ3h5eidcbiAgbmFtZT86IHN0cmluZ1xufVxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWxXaXRoVXJsIGV4dGVuZHMgTGF5ZXJYeXpNb2RlbCB7XG4gIHVybDogc3RyaW5nXG4gIHVybHM/OiBuZXZlclxufVxuaW50ZXJmYWNlIExheWVyWHl6TW9kZWxXaXRoVXJscyBleHRlbmRzIExheWVyWHl6TW9kZWwge1xuICB1cmxzOiBzdHJpbmdbXVxuICB1cmw/OiBuZXZlclxufVxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyWHl6TW9kZWwgPVxuICB8IExheWVyWHl6TW9kZWxXaXRoVXJsXG4gIHwgTGF5ZXJYeXpNb2RlbFdpdGhVcmxzXG5cbmludGVyZmFjZSBMYXllckdlb2pzb24ge1xuICB0eXBlOiAnZ2VvanNvbidcbn1cbmludGVyZmFjZSBMYXllckdlb2pzb25XaXRoVXJsIGV4dGVuZHMgTGF5ZXJHZW9qc29uIHtcbiAgdXJsOiBzdHJpbmdcbiAgZGF0YT86IG5ldmVyXG59XG5pbnRlcmZhY2UgTGF5ZXJHZW9qc29uV2l0aERhdGEgZXh0ZW5kcyBMYXllckdlb2pzb24ge1xuICBkYXRhOiBGZWF0dXJlQ29sbGVjdGlvbiB8IHN0cmluZ1xuICB1cmw/OiBuZXZlclxufVxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyR2VvanNvbk1vZGVsID1cbiAgfCBMYXllckdlb2pzb25XaXRoVXJsXG4gIHwgTGF5ZXJHZW9qc29uV2l0aERhdGFcblxuZXhwb3J0IHR5cGUgTWFwQ29udGV4dExheWVyTW9kZWwgPVxuICB8IE1hcENvbnRleHRMYXllcldtc01vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyV210c01vZGVsXG4gIHwgTWFwQ29udGV4dExheWVyV2ZzTW9kZWxcbiAgfCBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbFxuICB8IE1hcENvbnRleHRMYXllckdlb2pzb25Nb2RlbFxuICB8IE1hcENvbnRleHRMYXllck9nY2FwaU1vZGVsXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQ29udGV4dFZpZXdNb2RlbCB7XG4gIGNlbnRlcj86IENvb3JkaW5hdGUgLy8gZXhwcmVzc2VkIGluIGxvbmcvbGF0IChFUFNHOjQzMjYpXG4gIHpvb20/OiBudW1iZXJcbiAgZXh0ZW50PzogRXh0ZW50IC8vIGV4cHJlc3NlZCBpbiBsb25nL2xhdCAoRVBTRzo0MzI2KVxuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudCAvLyBleHByZXNzZWQgaW4gbG9uZy9sYXQgKEVQU0c6NDMyNilcbn1cbiJdfQ==
@@ -12,7 +12,7 @@ import { MapUtilsService } from '../utils/map-utils.service';
12
12
  import { bbox as bboxStrategy } from 'ol/loadingstrategy';
13
13
  import { fromLonLat } from 'ol/proj';
14
14
  import WMTS from 'ol/source/WMTS';
15
- import { removeSearchParams } from '../../../../../../libs/util/shared/src';
15
+ import { WfsEndpoint, WmtsEndpoint } from '@camptocamp/ogc-client';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "../utils/map-utils.service";
18
18
  import * as i2 from "../style/map-style.service";
@@ -54,6 +54,14 @@ export class MapContextService {
54
54
  const { type } = layerModel;
55
55
  const style = this.styleService.styles.default;
56
56
  switch (type) {
57
+ case MapContextLayerTypeEnum.OGCAPI:
58
+ return new VectorLayer({
59
+ source: new VectorSource({
60
+ format: new GeoJSON(),
61
+ url: layerModel.url,
62
+ }),
63
+ style,
64
+ });
57
65
  case MapContextLayerTypeEnum.XYZ:
58
66
  return new TileLayer({
59
67
  source: new XYZ({
@@ -64,39 +72,58 @@ export class MapContextService {
64
72
  case MapContextLayerTypeEnum.WMS:
65
73
  return new TileLayer({
66
74
  source: new TileWMS({
67
- url: removeSearchParams(layerModel.url, ['request', 'service']),
75
+ url: layerModel.url,
68
76
  params: { LAYERS: layerModel.name },
69
77
  gutter: 20,
70
78
  }),
71
79
  });
72
- case MapContextLayerTypeEnum.WMTS:
73
- return new TileLayer({
74
- source: new WMTS(layerModel.options),
80
+ case MapContextLayerTypeEnum.WMTS: {
81
+ // TODO: isolate this in utils service
82
+ const olLayer = new TileLayer({});
83
+ const endpoint = new WmtsEndpoint(layerModel.url);
84
+ endpoint.isReady().then(async (endpoint) => {
85
+ const layerName = endpoint.getSingleLayerName() ?? layerModel.name;
86
+ const layer = endpoint.getLayerByName(layerName);
87
+ const matrixSet = layer.matrixSets[0];
88
+ const tileGrid = await endpoint.getOpenLayersTileGrid(layer.name);
89
+ const resourceUrl = layer.resourceLinks[0];
90
+ const dimensions = endpoint.getDefaultDimensions(layer.name);
91
+ olLayer.setSource(new WMTS({
92
+ layer: layer.name,
93
+ style: layer.defaultStyle,
94
+ matrixSet: matrixSet.identifier,
95
+ format: resourceUrl.format,
96
+ url: resourceUrl.url,
97
+ requestEncoding: resourceUrl.encoding,
98
+ tileGrid,
99
+ projection: matrixSet.crs,
100
+ dimensions,
101
+ }));
75
102
  });
76
- case MapContextLayerTypeEnum.WFS:
77
- return new VectorLayer({
78
- source: new VectorSource({
103
+ return olLayer;
104
+ }
105
+ case MapContextLayerTypeEnum.WFS: {
106
+ const olLayer = new VectorLayer({
107
+ style,
108
+ });
109
+ new WfsEndpoint(layerModel.url).isReady().then((endpoint) => {
110
+ const featureType = endpoint.getSingleFeatureTypeName() ?? layerModel.name;
111
+ olLayer.setSource(new VectorSource({
79
112
  format: new GeoJSON(),
80
113
  url: function (extent) {
81
- const urlObj = new URL(removeSearchParams(layerModel.url, [
82
- 'service',
83
- 'version',
84
- 'request',
85
- ]));
86
- urlObj.searchParams.set('service', 'WFS');
87
- urlObj.searchParams.set('version', '1.1.0');
88
- urlObj.searchParams.set('request', 'GetFeature');
89
- urlObj.searchParams.set('outputFormat', 'application/json');
90
- urlObj.searchParams.set('typename', layerModel.name);
91
- urlObj.searchParams.set('srsname', 'EPSG:3857');
92
- urlObj.searchParams.set('bbox', `${extent.join(',')},EPSG:3857`);
93
- urlObj.searchParams.set('maxFeatures', WFS_MAX_FEATURES.toString());
94
- return urlObj.toString();
114
+ return endpoint.getFeatureUrl(featureType, {
115
+ maxFeatures: WFS_MAX_FEATURES,
116
+ asJson: true,
117
+ outputCrs: 'EPSG:3857',
118
+ extent,
119
+ extentCrs: 'EPSG:3857',
120
+ });
95
121
  },
96
122
  strategy: bboxStrategy,
97
- }),
98
- style,
123
+ }));
99
124
  });
125
+ return olLayer;
126
+ }
100
127
  case MapContextLayerTypeEnum.GEOJSON: {
101
128
  if ('url' in layerModel) {
102
129
  return new VectorLayer({
@@ -218,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
218
245
  providedIn: 'root',
219
246
  }]
220
247
  }], ctorParameters: function () { return [{ type: i1.MapUtilsService }, { type: i2.MapStyleService }]; } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFFTCx1QkFBdUIsR0FJeEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUU1QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUE7QUFFMUIsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFBO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQTtBQUMvQixPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQTtBQUMzQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOzs7O0FBSTNFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUE0QjtJQUNoRSxJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztJQUNqQyxJQUFJLEVBQUU7UUFDSixxRUFBcUU7UUFDckUscUVBQXFFO1FBQ3JFLHFFQUFxRTtLQUN0RTtDQUNGLENBQUE7QUFFRCxNQUFN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LEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUMvRCxDQUFBO1NBQ0o7SUFDSCxDQUFDOzhHQXpNVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi9zdHlsZS9tYXAtc3R5bGUuc2VydmljZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbiAgTWFwQ29udGV4dExheWVyWHl6TW9kZWwsXG4gIE1hcENvbnRleHRNb2RlbCxcbiAgTWFwQ29udGV4dFZpZXdNb2RlbCxcbn0gZnJvbSAnLi9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCBNYXAgZnJvbSAnb2wvTWFwJ1xuaW1wb3J0IFZpZXcgZnJvbSAnb2wvVmlldydcbmltcG9ydCBMYXllciBmcm9tICdvbC9sYXllci9CYXNlJ1xuaW1wb3J0IFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3RvcidcbmltcG9ydCBUaWxlV01TIGZyb20gJ29sL3NvdXJjZS9UaWxlV01TJ1xuaW1wb3J0IFRpbGVMYXllciBmcm9tICdvbC9sYXllci9UaWxlJ1xuaW1wb3J0IFhZWiBmcm9tICdvbC9zb3VyY2UvWFlaJ1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJ1xuaW1wb3J0IEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nXG5pbXBvcnQgeyBNYXBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi91dGlscy9tYXAtdXRpbHMuc2VydmljZSdcbmltcG9ydCB7IGJib3ggYXMgYmJveFN0cmF0ZWd5IH0gZnJvbSAnb2wvbG9hZGluZ3N0cmF0ZWd5J1xuaW1wb3J0IHsgTGF5ZXJDb25maWcsIE1hcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYydcbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGZyb21Mb25MYXQgfSBmcm9tICdvbC9wcm9qJ1xuaW1wb3J0IFdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnXG5pbXBvcnQgeyByZW1vdmVTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSdcbmltcG9ydCBGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBU0VMQVlFUl9DT05URVhUOiBNYXBDb250ZXh0TGF5ZXJYeXpNb2RlbCA9IHtcbiAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uWFlaLFxuICB1cmxzOiBbXG4gICAgYGh0dHBzOi8vYS5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vcmFzdGVydGlsZXMvdm95YWdlci97en0ve3h9L3t5fS5wbmdgLFxuICAgIGBodHRwczovL2IuYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgICBgaHR0cHM6Ly9jLmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gIF0sXG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZJRVc6IE1hcENvbnRleHRWaWV3TW9kZWwgPSB7XG4gIGNlbnRlcjogWzAsIDE1XSxcbiAgem9vbTogMixcbn1cblxuZXhwb3J0IGNvbnN0IFdGU19NQVhfRkVBVFVSRVMgPSAxMDAwMFxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwQ29udGV4dFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IE1hcFN0eWxlU2VydmljZVxuICApIHt9XG5cbiAgcmVzZXRNYXBGcm9tQ29udGV4dChcbiAgICBtYXA6IE1hcCxcbiAgICBtYXBDb250ZXh0OiBNYXBDb250ZXh0TW9kZWwsXG4gICAgbWFwQ29uZmlnPzogTWFwQ29uZmlnXG4gICk6IE1hcCB7XG4gICAgaWYgKG1hcENvbmZpZykge1xuICAgICAgbWFwQ29udGV4dCA9IHRoaXMubWVyZ2VNYXBDb25maWdXaXRoQ29udGV4dChtYXBDb250ZXh0LCBtYXBDb25maWcpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1hcENvbnRleHQubGF5ZXJzID0gdGhpcy5hZGREZWZhdWx0QmFzZWxheWVyQ29udGV4dChtYXBDb250ZXh0LmxheWVycylcbiAgICB9XG4gICAgaWYgKFxuICAgICAgIW1hcENvbnRleHQudmlldz8uZXh0ZW50ICYmXG4gICAgICAoIW1hcENvbnRleHQudmlldz8uY2VudGVyIHx8ICFtYXBDb250ZXh0LnZpZXc/Lnpvb20pXG4gICAgKSB7XG4gICAgICBtYXBDb250ZXh0LnZpZXcgPSB0aGlzLmdldEZhbGxiYWNrVmlldyhtYXBDb25maWcpXG4gICAgfVxuICAgIG1hcC5zZXRWaWV3KHRoaXMuY3JlYXRlVmlldyhtYXBDb250ZXh0LnZpZXcsIG1hcCkpXG4gICAgbWFwLmdldExheWVycygpLmNsZWFyKClcbiAgICBtYXBDb250ZXh0LmxheWVycy5mb3JFYWNoKChsYXllcikgPT4gbWFwLmFkZExheWVyKHRoaXMuY3JlYXRlTGF5ZXIobGF5ZXIpKSlcbiAgICByZXR1cm4gbWFwXG4gIH1cblxuICBjcmVhdGVMYXllcihsYXllck1vZGVsOiBNYXBDb250ZXh0TGF5ZXJNb2RlbCk6IExheWVyIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IGxheWVyTW9kZWxcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlLnN0eWxlcy5kZWZhdWx0XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLlhZWjpcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFhZWih7XG4gICAgICAgICAgICB1cmw6ICd1cmwnIGluIGxheWVyTW9kZWwgPyBsYXllck1vZGVsLnVybCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVybHM6ICd1cmxzJyBpbiBsYXllck1vZGVsID8gbGF5ZXJNb2RlbC51cmxzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVM6XG4gICAgICAgIHJldHVybiBuZXcgVGlsZUxheWVyKHtcbiAgICAgICAgICBzb3VyY2U6IG5ldyBUaWxlV01TKHtcbiAgICAgICAgICAgIHVybDogcmVtb3ZlU2VhcmNoUGFyYW1zKGxheWVyTW9kZWwudXJsLCBbJ3JlcXVlc3QnLCAnc2VydmljZSddKSxcbiAgICAgICAgICAgIHBhcmFtczogeyBMQVlFUlM6IGxheWVyTW9kZWwubmFtZSB9LFxuICAgICAgICAgICAgZ3V0dGVyOiAyMCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSlcbiAgICAgIGNhc2UgTWFwQ29udGV4dExheWVyVHlwZUVudW0uV01UUzpcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFdNVFMobGF5ZXJNb2RlbC5vcHRpb25zKSxcbiAgICAgICAgfSlcbiAgICAgIGNhc2UgTWFwQ29udGV4dExheWVyVHlwZUVudW0uV0ZTOlxuICAgICAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgZm9ybWF0OiBuZXcgR2VvSlNPTigpLFxuICAgICAgICAgICAgdXJsOiBmdW5jdGlvbiAoZXh0ZW50KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgICAgcmVtb3ZlU2VhcmNoUGFyYW1zKGxheWVyTW9kZWwudXJsLCBbXG4gICAgICAgICAgICAgICAgICAnc2VydmljZScsXG4gICAgICAgICAgICAgICAgICAndmVyc2lvbicsXG4gICAgICAgICAgICAgICAgICAncmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB1cmxPYmouc2VhcmNoUGFyYW1zLnNldCgnc2VydmljZScsICdXRlMnKVxuICAgICAgICAgICAgICB1cmxPYmouc2VhcmNoUGFyYW1zLnNldCgndmVyc2lvbicsICcxLjEuMCcpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCdyZXF1ZXN0JywgJ0dldEZlYXR1cmUnKVxuICAgICAgICAgICAgICB1cmxPYmouc2VhcmNoUGFyYW1zLnNldCgnb3V0cHV0Rm9ybWF0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICAgICAgICAgICAgICB1cmxPYmouc2VhcmNoUGFyYW1zLnNldCgndHlwZW5hbWUnLCBsYXllck1vZGVsLm5hbWUpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCdzcnNuYW1lJywgJ0VQU0c6Mzg1NycpXG4gICAgICAgICAgICAgIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KCdiYm94JywgYCR7ZXh0ZW50LmpvaW4oJywnKX0sRVBTRzozODU3YClcbiAgICAgICAgICAgICAgdXJsT2JqLnNlYXJjaFBhcmFtcy5zZXQoXG4gICAgICAgICAgICAgICAgJ21heEZlYXR1cmVzJyxcbiAgICAgICAgICAgICAgICBXRlNfTUFYX0ZFQVRVUkVTLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gdXJsT2JqLnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJhdGVneTogYmJveFN0cmF0ZWd5LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0eWxlLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5HRU9KU09OOiB7XG4gICAgICAgIGlmICgndXJsJyBpbiBsYXllck1vZGVsKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICAgIHVybDogbGF5ZXJNb2RlbC51cmwsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGdlb2pzb24gPSBsYXllck1vZGVsLmRhdGFcbiAgICAgICAgICBpZiAodHlwZW9mIGdlb2pzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBnZW9qc29uID0gSlNPTi5wYXJzZShnZW9qc29uKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0EgbGF5ZXIgY291bGQgbm90IGJlIGNyZWF0ZWQnLCBsYXllck1vZGVsLCBlKVxuICAgICAgICAgICAgICBnZW9qc29uID0geyB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLCBmZWF0dXJlczogW10gfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMubWFwVXRpbHMucmVhZEZlYXR1cmVDb2xsZWN0aW9uKFxuICAgICAgICAgICAgZ2VvanNvbiBhcyBGZWF0dXJlQ29sbGVjdGlvblxuICAgICAgICAgICkgYXMgRmVhdHVyZTxHZW9tZXRyeT5bXVxuICAgICAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHtcbiAgICAgICAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGxheWVyIHR5cGU6ICR7bGF5ZXJNb2RlbC50eXBlfWApXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlVmlldyh2aWV3TW9kZWw6IE1hcENvbnRleHRWaWV3TW9kZWwsIG1hcD86IE1hcCk6IFZpZXcge1xuICAgIGNvbnN0IHsgY2VudGVyOiBjZW50ZXJJblZpZXdQcm9qLCB6b29tLCBtYXhab29tLCBtYXhFeHRlbnQgfSA9IHZpZXdNb2RlbFxuICAgIGNvbnN0IGNlbnRlciA9IGNlbnRlckluVmlld1Byb2pcbiAgICAgID8gZnJvbUxvbkxhdChjZW50ZXJJblZpZXdQcm9qLCAnRVBTRzozODU3JylcbiAgICAgIDogWzAsIDBdXG4gICAgY29uc3QgdmlldyA9IG5ldyBWaWV3KHtcbiAgICAgIGNlbnRlcixcbiAgICAgIHpvb20sXG4gICAgICBtYXhab29tLFxuICAgICAgZXh0ZW50OiBtYXhFeHRlbnQsXG4gICAgICBtdWx0aVdvcmxkOiBmYWxzZSxcbiAgICAgIGNvbnN0cmFpblJlc29sdXRpb246IHRydWUsXG4gICAgfSlcbiAgICBpZiAodmlld01vZGVsLmV4dGVudCAmJiBtYXApIHtcbiAgICAgIHZpZXcuZml0KHZpZXdNb2RlbC5leHRlbnQsIHtcbiAgICAgICAgc2l6ZTogbWFwLmdldFNpemUoKSxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB2aWV3XG4gIH1cblxuICBhZGREZWZhdWx0QmFzZWxheWVyQ29udGV4dChcbiAgICBsYXllcnM6IE1hcENvbnRleHRMYXllck1vZGVsW11cbiAgKTogTWFwQ29udGV4dExheWVyTW9kZWxbXSB7XG4gICAgcmV0dXJuIGxheWVycy5pbmNsdWRlcyhERUZBVUxUX0JBU0VMQVlFUl9DT05URVhUKVxuICAgICAgPyBsYXllcnNcbiAgICAgIDogW0RFRkFVTFRfQkFTRUxBWUVSX0NPTlRFWFQsIC4uLmxheWVyc11cbiAgfVxuXG4gIG1lcmdlTWFwQ29uZmlnV2l0aENvbnRleHQoXG4gICAgbWFwQ29udGV4dDogTWFwQ29udGV4dE1vZGVsLFxuICAgIG1hcENvbmZpZzogTWFwQ29uZmlnXG4gICk6IE1hcENvbnRleHRNb2RlbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm1hcENvbnRleHQsXG4gICAgICB2aWV3OiB7XG4gICAgICAgIC4uLm1hcENvbnRleHQudmlldyxcbiAgICAgICAgLi4uKG1hcENvbmZpZy5NQVhfWk9PTSAmJiB7XG4gICAgICAgICAgbWF4Wm9vbTogbWFwQ29uZmlnLk1BWF9aT09NLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKG1hcENvbmZpZy5NQVhfRVhURU5UICYmIHtcbiAgICAgICAgICBtYXhFeHRlbnQ6IG1hcENvbmZpZy5NQVhfRVhURU5ULFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICBsYXllcnM6IFtcbiAgICAgICAgLi4uKG1hcENvbmZpZy5ET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUFxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IFtERUZBVUxUX0JBU0VMQVlFUl9DT05URVhUXSksXG4gICAgICAgIC4uLm1hcENvbmZpZy5NQVBfTEFZRVJTLm1hcCh0aGlzLmdldENvbnRleHRMYXllckZyb21Db25maWcpLFxuICAgICAgICAuLi5tYXBDb250ZXh0LmxheWVycyxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgZ2V0RmFsbGJhY2tWaWV3KG1hcENvbmZpZzogTWFwQ29uZmlnKTogTWFwQ29udGV4dFZpZXdNb2RlbCB7XG4gICAgcmV0dXJuIG1hcENvbmZpZz8uTUFYX0VYVEVOVFxuICAgICAgPyB7IGV4dGVudDogbWFwQ29uZmlnLk1BWF9FWFRFTlQgfVxuICAgICAgOiBERUZBVUxUX1ZJRVdcbiAgfVxuXG4gIGdldENvbnRleHRMYXllckZyb21Db25maWcoY29uZmlnOiBMYXllckNvbmZpZyk6IE1hcENvbnRleHRMYXllck1vZGVsIHtcbiAgICBzd2l0Y2ggKGNvbmZpZy5UWVBFKSB7XG4gICAgICBjYXNlICd3bXMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICd3bXMnLFxuICAgICAgICAgIHVybDogY29uZmlnLlVSTCxcbiAgICAgICAgICBuYW1lOiBjb25maWcuTkFNRSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAnd2ZzJyxcbiAgICAgICAgICB1cmw6IGNvbmZpZy5VUkwsXG4gICAgICAgICAgbmFtZTogY29uZmlnLk5BTUUsXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ3h5eic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogY29uZmlnLlRZUEUsXG4gICAgICAgICAgdXJsOiBjb25maWcuVVJMLFxuICAgICAgICAgIG5hbWU6IGNvbmZpZy5OQU1FLFxuICAgICAgICB9XG4gICAgICBjYXNlICdnZW9qc29uJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBjb25maWcuVFlQRSxcbiAgICAgICAgICAuLi4oY29uZmlnLkRBVEEgPyB7IGRhdGE6IGNvbmZpZy5EQVRBIH0gOiB7IHVybDogY29uZmlnLlVSTCB9KSxcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFFTCx1QkFBdUIsR0FJeEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUU1QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUE7QUFFMUIsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUE7QUFDekMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUE7QUFDdkMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFBO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQTtBQUMvQixPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQTtBQUMzQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBR2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7Ozs7QUFFbEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQTRCO0lBQ2hFLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO0lBQ2pDLElBQUksRUFBRTtRQUNKLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUscUVBQXFFO0tBQ3RFO0NBQ0YsQ0FBQTtB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc3R5bGUvbWFwLXN0eWxlLnNlcnZpY2UnXG5pbXBvcnQge1xuICBNYXBDb250ZXh0TGF5ZXJNb2RlbCxcbiAgTWFwQ29udGV4dExheWVyVHlwZUVudW0sXG4gIE1hcENvbnRleHRMYXllclh5ek1vZGVsLFxuICBNYXBDb250ZXh0TW9kZWwsXG4gIE1hcENvbnRleHRWaWV3TW9kZWwsXG59IGZyb20gJy4vbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQgTWFwIGZyb20gJ29sL01hcCdcbmltcG9ydCBWaWV3IGZyb20gJ29sL1ZpZXcnXG5pbXBvcnQgTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvQmFzZSdcbmltcG9ydCBWZWN0b3JMYXllciBmcm9tICdvbC9sYXllci9WZWN0b3InXG5pbXBvcnQgVGlsZVdNUyBmcm9tICdvbC9zb3VyY2UvVGlsZVdNUydcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSdcbmltcG9ydCBYWVogZnJvbSAnb2wvc291cmNlL1hZWidcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3RvcidcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UnXG5pbXBvcnQgeyBiYm94IGFzIGJib3hTdHJhdGVneSB9IGZyb20gJ29sL2xvYWRpbmdzdHJhdGVneSdcbmltcG9ydCB7IExheWVyQ29uZmlnLCBNYXBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBmcm9tTG9uTGF0IH0gZnJvbSAnb2wvcHJvaidcbmltcG9ydCBXTVRTIGZyb20gJ29sL3NvdXJjZS9XTVRTJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSdcbmltcG9ydCB7IFdmc0VuZHBvaW50LCBXbXRzRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQVNFTEFZRVJfQ09OVEVYVDogTWFwQ29udGV4dExheWVyWHl6TW9kZWwgPSB7XG4gIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLlhZWixcbiAgdXJsczogW1xuICAgIGBodHRwczovL2EuYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgICBgaHR0cHM6Ly9iLmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9yYXN0ZXJ0aWxlcy92b3lhZ2VyL3t6fS97eH0ve3l9LnBuZ2AsXG4gICAgYGh0dHBzOi8vYy5iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vcmFzdGVydGlsZXMvdm95YWdlci97en0ve3h9L3t5fS5wbmdgLFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9WSUVXOiBNYXBDb250ZXh0Vmlld01vZGVsID0ge1xuICBjZW50ZXI6IFswLCAxNV0sXG4gIHpvb206IDIsXG59XG5cbmV4cG9ydCBjb25zdCBXRlNfTUFYX0ZFQVRVUkVTID0gMTAwMDBcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hcENvbnRleHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBNYXBTdHlsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHJlc2V0TWFwRnJvbUNvbnRleHQoXG4gICAgbWFwOiBNYXAsXG4gICAgbWFwQ29udGV4dDogTWFwQ29udGV4dE1vZGVsLFxuICAgIG1hcENvbmZpZz86IE1hcENvbmZpZ1xuICApOiBNYXAge1xuICAgIGlmIChtYXBDb25maWcpIHtcbiAgICAgIG1hcENvbnRleHQgPSB0aGlzLm1lcmdlTWFwQ29uZmlnV2l0aENvbnRleHQobWFwQ29udGV4dCwgbWFwQ29uZmlnKVxuICAgIH0gZWxzZSB7XG4gICAgICBtYXBDb250ZXh0LmxheWVycyA9IHRoaXMuYWRkRGVmYXVsdEJhc2VsYXllckNvbnRleHQobWFwQ29udGV4dC5sYXllcnMpXG4gICAgfVxuICAgIGlmIChcbiAgICAgICFtYXBDb250ZXh0LnZpZXc/LmV4dGVudCAmJlxuICAgICAgKCFtYXBDb250ZXh0LnZpZXc/LmNlbnRlciB8fCAhbWFwQ29udGV4dC52aWV3Py56b29tKVxuICAgICkge1xuICAgICAgbWFwQ29udGV4dC52aWV3ID0gdGhpcy5nZXRGYWxsYmFja1ZpZXcobWFwQ29uZmlnKVxuICAgIH1cbiAgICBtYXAuc2V0Vmlldyh0aGlzLmNyZWF0ZVZpZXcobWFwQ29udGV4dC52aWV3LCBtYXApKVxuICAgIG1hcC5nZXRMYXllcnMoKS5jbGVhcigpXG4gICAgbWFwQ29udGV4dC5sYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IG1hcC5hZGRMYXllcih0aGlzLmNyZWF0ZUxheWVyKGxheWVyKSkpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgY3JlYXRlTGF5ZXIobGF5ZXJNb2RlbDogTWFwQ29udGV4dExheWVyTW9kZWwpOiBMYXllciB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBsYXllck1vZGVsXG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZS5zdHlsZXMuZGVmYXVsdFxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5PR0NBUEk6XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICB1cmw6IGxheWVyTW9kZWwudXJsLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0eWxlLFxuICAgICAgICB9KVxuXG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLlhZWjpcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgICAgIHNvdXJjZTogbmV3IFhZWih7XG4gICAgICAgICAgICB1cmw6ICd1cmwnIGluIGxheWVyTW9kZWwgPyBsYXllck1vZGVsLnVybCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVybHM6ICd1cmxzJyBpbiBsYXllck1vZGVsID8gbGF5ZXJNb2RlbC51cmxzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgY2FzZSBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bS5XTVM6XG4gICAgICAgIHJldHVybiBuZXcgVGlsZUxheWVyKHtcbiAgICAgICAgICBzb3VyY2U6IG5ldyBUaWxlV01TKHtcbiAgICAgICAgICAgIHVybDogbGF5ZXJNb2RlbC51cmwsXG4gICAgICAgICAgICBwYXJhbXM6IHsgTEFZRVJTOiBsYXllck1vZGVsLm5hbWUgfSxcbiAgICAgICAgICAgIGd1dHRlcjogMjAsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pXG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNVFM6IHtcbiAgICAgICAgLy8gVE9ETzogaXNvbGF0ZSB0aGlzIGluIHV0aWxzIHNlcnZpY2VcbiAgICAgICAgY29uc3Qgb2xMYXllciA9IG5ldyBUaWxlTGF5ZXIoe30pXG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IFdtdHNFbmRwb2ludChsYXllck1vZGVsLnVybClcbiAgICAgICAgZW5kcG9pbnQuaXNSZWFkeSgpLnRoZW4oYXN5bmMgKGVuZHBvaW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGF5ZXJOYW1lID0gZW5kcG9pbnQuZ2V0U2luZ2xlTGF5ZXJOYW1lKCkgPz8gbGF5ZXJNb2RlbC5uYW1lXG4gICAgICAgICAgY29uc3QgbGF5ZXIgPSBlbmRwb2ludC5nZXRMYXllckJ5TmFtZShsYXllck5hbWUpXG4gICAgICAgICAgY29uc3QgbWF0cml4U2V0ID0gbGF5ZXIubWF0cml4U2V0c1swXVxuICAgICAgICAgIGNvbnN0IHRpbGVHcmlkID0gYXdhaXQgZW5kcG9pbnQuZ2V0T3BlbkxheWVyc1RpbGVHcmlkKGxheWVyLm5hbWUpXG4gICAgICAgICAgY29uc3QgcmVzb3VyY2VVcmwgPSBsYXllci5yZXNvdXJjZUxpbmtzWzBdXG4gICAgICAgICAgY29uc3QgZGltZW5zaW9ucyA9IGVuZHBvaW50LmdldERlZmF1bHREaW1lbnNpb25zKGxheWVyLm5hbWUpXG4gICAgICAgICAgb2xMYXllci5zZXRTb3VyY2UoXG4gICAgICAgICAgICBuZXcgV01UUyh7XG4gICAgICAgICAgICAgIGxheWVyOiBsYXllci5uYW1lLFxuICAgICAgICAgICAgICBzdHlsZTogbGF5ZXIuZGVmYXVsdFN0eWxlLFxuICAgICAgICAgICAgICBtYXRyaXhTZXQ6IG1hdHJpeFNldC5pZGVudGlmaWVyLFxuICAgICAgICAgICAgICBmb3JtYXQ6IHJlc291cmNlVXJsLmZvcm1hdCxcbiAgICAgICAgICAgICAgdXJsOiByZXNvdXJjZVVybC51cmwsXG4gICAgICAgICAgICAgIHJlcXVlc3RFbmNvZGluZzogcmVzb3VyY2VVcmwuZW5jb2RpbmcsXG4gICAgICAgICAgICAgIHRpbGVHcmlkLFxuICAgICAgICAgICAgICBwcm9qZWN0aW9uOiBtYXRyaXhTZXQuY3JzLFxuICAgICAgICAgICAgICBkaW1lbnNpb25zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBvbExheWVyXG4gICAgICB9XG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLldGUzoge1xuICAgICAgICBjb25zdCBvbExheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgICBzdHlsZSxcbiAgICAgICAgfSlcbiAgICAgICAgbmV3IFdmc0VuZHBvaW50KGxheWVyTW9kZWwudXJsKS5pc1JlYWR5KCkudGhlbigoZW5kcG9pbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBmZWF0dXJlVHlwZSA9XG4gICAgICAgICAgICBlbmRwb2ludC5nZXRTaW5nbGVGZWF0dXJlVHlwZU5hbWUoKSA/PyBsYXllck1vZGVsLm5hbWVcbiAgICAgICAgICBvbExheWVyLnNldFNvdXJjZShcbiAgICAgICAgICAgIG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgICAgIHVybDogZnVuY3Rpb24gKGV4dGVudDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZSwge1xuICAgICAgICAgICAgICAgICAgbWF4RmVhdHVyZXM6IFdGU19NQVhfRkVBVFVSRVMsXG4gICAgICAgICAgICAgICAgICBhc0pzb246IHRydWUsXG4gICAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjM4NTcnLFxuICAgICAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICAgICAgZXh0ZW50Q3JzOiAnRVBTRzozODU3JyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzdHJhdGVneTogYmJveFN0cmF0ZWd5LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBvbExheWVyXG4gICAgICB9XG4gICAgICBjYXNlIE1hcENvbnRleHRMYXllclR5cGVFbnVtLkdFT0pTT046IHtcbiAgICAgICAgaWYgKCd1cmwnIGluIGxheWVyTW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgICAgICAgIGZvcm1hdDogbmV3IEdlb0pTT04oKSxcbiAgICAgICAgICAgICAgdXJsOiBsYXllck1vZGVsLnVybCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZ2VvanNvbiA9IGxheWVyTW9kZWwuZGF0YVxuICAgICAgICAgIGlmICh0eXBlb2YgZ2VvanNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGdlb2pzb24gPSBKU09OLnBhcnNlKGdlb2pzb24pXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQSBsYXllciBjb3VsZCBub3QgYmUgY3JlYXRlZCcsIGxheWVyTW9kZWwsIGUpXG4gICAgICAgICAgICAgIGdlb2pzb24gPSB7IHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsIGZlYXR1cmVzOiBbXSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gdGhpcy5tYXBVdGlscy5yZWFkRmVhdHVyZUNvbGxlY3Rpb24oXG4gICAgICAgICAgICBnZW9qc29uIGFzIEZlYXR1cmVDb2xsZWN0aW9uXG4gICAgICAgICAgKSBhcyBGZWF0dXJlPEdlb21ldHJ5PltdXG4gICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbGF5ZXIgdHlwZTogJHtsYXllck1vZGVsLnR5cGV9YClcbiAgICB9XG4gIH1cblxuICBjcmVhdGVWaWV3KHZpZXdNb2RlbDogTWFwQ29udGV4dFZpZXdNb2RlbCwgbWFwPzogTWFwKTogVmlldyB7XG4gICAgY29uc3QgeyBjZW50ZXI6IGNlbnRlckluVmlld1Byb2osIHpvb20sIG1heFpvb20sIG1heEV4dGVudCB9ID0gdmlld01vZGVsXG4gICAgY29uc3QgY2VudGVyID0gY2VudGVySW5WaWV3UHJvalxuICAgICAgPyBmcm9tTG9uTGF0KGNlbnRlckluVmlld1Byb2osICdFUFNHOjM4NTcnKVxuICAgICAgOiBbMCwgMF1cbiAgICBjb25zdCB2aWV3ID0gbmV3IFZpZXcoe1xuICAgICAgY2VudGVyLFxuICAgICAgem9vbSxcbiAgICAgIG1heFpvb20sXG4gICAgICBleHRlbnQ6IG1heEV4dGVudCxcbiAgICAgIG11bHRpV29ybGQ6IGZhbHNlLFxuICAgICAgY29uc3RyYWluUmVzb2x1dGlvbjogdHJ1ZSxcbiAgICB9KVxuICAgIGlmICh2aWV3TW9kZWwuZXh0ZW50ICYmIG1hcCkge1xuICAgICAgdmlldy5maXQodmlld01vZGVsLmV4dGVudCwge1xuICAgICAgICBzaXplOiBtYXAuZ2V0U2l6ZSgpLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHZpZXdcbiAgfVxuXG4gIGFkZERlZmF1bHRCYXNlbGF5ZXJDb250ZXh0KFxuICAgIGxheWVyczogTWFwQ29udGV4dExheWVyTW9kZWxbXVxuICApOiBNYXBDb250ZXh0TGF5ZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gbGF5ZXJzLmluY2x1ZGVzKERFRkFVTFRfQkFTRUxBWUVSX0NPTlRFWFQpXG4gICAgICA/IGxheWVyc1xuICAgICAgOiBbREVGQVVMVF9CQVNFTEFZRVJfQ09OVEVYVCwgLi4ubGF5ZXJzXVxuICB9XG5cbiAgbWVyZ2VNYXBDb25maWdXaXRoQ29udGV4dChcbiAgICBtYXBDb250ZXh0OiBNYXBDb250ZXh0TW9kZWwsXG4gICAgbWFwQ29uZmlnOiBNYXBDb25maWdcbiAgKTogTWFwQ29udGV4dE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFwQ29udGV4dCxcbiAgICAgIHZpZXc6IHtcbiAgICAgICAgLi4ubWFwQ29udGV4dC52aWV3LFxuICAgICAgICAuLi4obWFwQ29uZmlnLk1BWF9aT09NICYmIHtcbiAgICAgICAgICBtYXhab29tOiBtYXBDb25maWcuTUFYX1pPT00sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4obWFwQ29uZmlnLk1BWF9FWFRFTlQgJiYge1xuICAgICAgICAgIG1heEV4dGVudDogbWFwQ29uZmlnLk1BWF9FWFRFTlQsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIGxheWVyczogW1xuICAgICAgICAuLi4obWFwQ29uZmlnLkRPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW0RFRkFVTFRfQkFTRUxBWUVSX0NPTlRFWFRdKSxcbiAgICAgICAgLi4ubWFwQ29uZmlnLk1BUF9MQVlFUlMubWFwKHRoaXMuZ2V0Q29udGV4dExheWVyRnJvbUNvbmZpZyksXG4gICAgICAgIC4uLm1hcENvbnRleHQubGF5ZXJzLFxuICAgICAgXSxcbiAgICB9XG4gIH1cblxuICBnZXRGYWxsYmFja1ZpZXcobWFwQ29uZmlnOiBNYXBDb25maWcpOiBNYXBDb250ZXh0Vmlld01vZGVsIHtcbiAgICByZXR1cm4gbWFwQ29uZmlnPy5NQVhfRVhURU5UXG4gICAgICA/IHsgZXh0ZW50OiBtYXBDb25maWcuTUFYX0VYVEVOVCB9XG4gICAgICA6IERFRkFVTFRfVklFV1xuICB9XG5cbiAgZ2V0Q29udGV4dExheWVyRnJvbUNvbmZpZyhjb25maWc6IExheWVyQ29uZmlnKTogTWFwQ29udGV4dExheWVyTW9kZWwge1xuICAgIHN3aXRjaCAoY29uZmlnLlRZUEUpIHtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgICAgdXJsOiBjb25maWcuVVJMLFxuICAgICAgICAgIG5hbWU6IGNvbmZpZy5OQU1FLFxuICAgICAgICB9XG4gICAgICBjYXNlICd3ZnMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICd3ZnMnLFxuICAgICAgICAgIHVybDogY29uZmlnLlVSTCxcbiAgICAgICAgICBuYW1lOiBjb25maWcuTkFNRSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAneHl6JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBjb25maWcuVFlQRSxcbiAgICAgICAgICB1cmw6IGNvbmZpZy5VUkwsXG4gICAgICAgICAgbmFtZTogY29uZmlnLk5BTUUsXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2dlb2pzb24nOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6IGNvbmZpZy5UWVBFLFxuICAgICAgICAgIC4uLihjb25maWcuREFUQSA/IHsgZGF0YTogY29uZmlnLkRBVEEgfSA6IHsgdXJsOiBjb25maWcuVVJMIH0pLFxuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=