geonetwork-ui 2.7.0-dev.dadaab772 → 2.7.0-dev.e3a54608e

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 (92) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
  2. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +47 -3
  3. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -3
  4. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +11 -1
  5. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  6. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  7. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -2
  8. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  9. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  10. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  11. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  12. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
  13. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
  14. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  15. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  16. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  17. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +7 -7
  18. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  19. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  20. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  21. package/esm2022/translations/de.json +10 -0
  22. package/esm2022/translations/en.json +10 -0
  23. package/esm2022/translations/es.json +10 -0
  24. package/esm2022/translations/fr.json +10 -0
  25. package/esm2022/translations/it.json +10 -0
  26. package/esm2022/translations/nl.json +10 -0
  27. package/esm2022/translations/pt.json +10 -0
  28. package/esm2022/translations/sk.json +10 -0
  29. package/fesm2022/geonetwork-ui.mjs +2498 -2293
  30. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  31. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  32. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  33. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  34. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
  35. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  36. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  37. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  38. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  39. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  40. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  41. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  42. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  43. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  44. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  45. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  46. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  47. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
  48. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  49. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  50. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  51. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  52. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  53. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  54. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  55. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  56. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  57. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  58. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  59. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  60. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  61. package/package.json +11 -10
  62. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  63. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +50 -3
  64. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +7 -5
  65. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +11 -0
  66. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  67. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  68. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +3 -1
  69. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  70. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  71. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  72. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  73. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  74. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  75. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
  76. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
  77. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  78. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  79. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  80. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  81. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +8 -9
  82. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  83. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  84. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  85. package/translations/de.json +10 -0
  86. package/translations/en.json +10 -0
  87. package/translations/es.json +10 -0
  88. package/translations/fr.json +10 -0
  89. package/translations/it.json +10 -0
  90. package/translations/nl.json +10 -0
  91. package/translations/pt.json +10 -0
  92. package/translations/sk.json +10 -0
@@ -49,7 +49,7 @@ export class ApiCardComponent {
49
49
  }
50
50
  }
51
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
53
53
  provideIcons({
54
54
  iconoirSettings,
55
55
  }),
@@ -68,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
68
68
  provideIcons({
69
69
  iconoirSettings,
70
70
  }),
71
- ], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
71
+ ], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
72
72
  }], propDecorators: { link: [{
73
73
  type: Input
74
74
  }], currentLink: [{
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
78
78
  }], openRecordApiForm: [{
79
79
  type: Output
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBd0JuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBcEI3QjtRQXdCbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLGlDQUFpQztZQUNwQyxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BDLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsRUFBRSxFQUFFLGtDQUFrQztTQUN2QyxDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVkLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ2Isc0JBQWlCLEdBQ3pCLElBQUksWUFBWSxFQUE4QixDQUFBO0tBMEJqRDtJQXJDQyxJQUFhLElBQUksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFPRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssS0FBSztZQUM5QyxDQUFDLENBQUMsc0NBQXNDO1lBQ3hDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0I7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxhQUFhO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssT0FBTyxDQUFBO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWU7WUFDbEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDakUsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBL0NVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdOQ3hDN0IsdzlGQXVGQSx5REQ1REksWUFBWSx3WUFDWix1QkFBdUIsMkhBQ3ZCLGtCQUFrQiw2R0FDbEIsYUFBYSxpREFDYixnQkFBZ0IsNlRBQ2hCLE1BQU0sa0dBRU87WUFDYixZQUFZLENBQUM7Z0JBQ1gsZUFBZTthQUNoQixDQUFDO1NBQ0g7OzRGQUVVLGdCQUFnQjtrQkFwQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixNQUFNO3FCQUNQLGlCQUNjO3dCQUNiLFlBQVksQ0FBQzs0QkFDWCxlQUFlO3lCQUNoQixDQUFDO3FCQUNIOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29weVRleHRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclNldHRpbmdzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nSWNvbixcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyU2V0dGluZ3MsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX3NpemU6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbiAgQElucHV0KCkgbGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgY3VycmVudExpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ2duLXVpLWNhcmQtbCBweS0yIHB4LTUgZmxleC1yb3cnLFxuICAgIE06ICdnbi11aS1jYXJkLW0gcHktMiBweC01IGZsZXgtcm93JyxcbiAgICBTOiAnZ24tdWktY2FyZC1zIHAtNCBmbGV4LWNvbCcsXG4gICAgWFM6ICdnbi11aS1jYXJkLXhzIHB5LTIgcHgtNSBmbGV4LXJvdycsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXVxuICB9XG4gIGdldCBzaXplKCk6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUycge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcbiAgZGlzcGxheUFwaUZvcm1CdXR0b246IGJvb2xlYW5cbiAgY3VycmVudGx5QWN0aXZlID0gZmFsc2VcbiAgQE91dHB1dCgpIG9wZW5SZWNvcmRBcGlGb3JtOiBFdmVudEVtaXR0ZXI8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPigpXG5cbiAgZ2V0IGdlbmVyYXRlZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnXG4gICAgICA/ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlXZnMnXG4gICAgICA6ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlBUEknXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BsYXlBcGlGb3JtQnV0dG9uID1cbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycgfHxcbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnR1BGREwnXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPVxuICAgICAgY2hhbmdlcy5jdXJyZW50TGluay5jdXJyZW50VmFsdWUgPT09IHRoaXMubGluayA/IHRydWUgOiBmYWxzZVxuICB9XG5cbiAgb3BlblJlY29yZEFwaUZvcm1QYW5lbCgpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbikge1xuICAgICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPSAhdGhpcy5jdXJyZW50bHlBY3RpdmVcbiAgICAgIHRoaXMub3BlblJlY29yZEFwaUZvcm0uZW1pdCh0aGlzLmN1cnJlbnRseUFjdGl2ZSA/IHRoaXMubGluayA6IHVuZGVmaW5lZClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiByb3VuZGVkIGZpbHRlciBvdmVyZmxvdy1oaWRkZW4gY2FyZC1zaGFkb3dcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSAhPT0gJ1MnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtaW4tdy1bMzJweF1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ1MnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICBbdGV4dF09XCJsaW5rLnVybFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiJ3Rvb2x0aXAudXJsLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNwbGF5VGV4dF09XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBwdC0xIHB4LTIgaC1bMzRweF1cIlxuICAgID48L2duLXVpLWNvcHktdGV4dC1idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJkaXNwbGF5QXBpRm9ybUJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZ24tdWktY2FyZC1pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3B5LTIgcHgtNCByb3VuZGVkLXItbWQgYmctZ3JheS00MDAgaG92ZXI6YmctZ3JheS02MDAgZm9jdXM6YmctZ3JheS04MDAgdGV4dC13aGl0ZSc6XG4gICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICB9XCJcbiAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAhY3VycmVudGx5QWN0aXZlXG4gICAgICAgICAgPyAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vcGVuRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jbG9zZUZvcm0nIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgIChjbGljayk9XCJvcGVuUmVjb3JkQXBpRm9ybVBhbmVsKClcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhbGlnbi1taWRkbGUgY2FyZC1pY29uXCJcbiAgICAgICAgbmFtZT1cImljb25vaXJTZXR0aW5nc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1zZWNvbmRhcnkgb3BhY2l0eS0xMDAnOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWRldGFpbFwiPlxuICAgICAge3sgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMi41IGl0ZW1zLWNlbnRlciBwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnR1BGREwnXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgdXBwZXJjYXNlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtcHJpbWFyeS1saWdodGVzdCBncm91cC1ob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICchYmctcHJpbWFyeSc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICAgID57eyBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1wiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIHVwcGVyY2FzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgZ3JvdXAtaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnIWJnLXByaW1hcnknOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5ncGZkbDwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnUydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcGktY2FyZC9hcGktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBd0JuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBcEI3QjtRQXdCbUIsaUJBQVksR0FBNkI7WUFDeEQsQ0FBQyxFQUFFLGlDQUFpQztZQUNwQyxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BDLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsRUFBRSxFQUFFLGtDQUFrQztTQUN2QyxDQUFBO1FBU0QsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVkLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ2Isc0JBQWlCLEdBQ3pCLElBQUksWUFBWSxFQUE4QixDQUFBO0tBMEJqRDtJQXJDQyxJQUFhLElBQUksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFPRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssS0FBSztZQUM5QyxDQUFDLENBQUMsc0NBQXNDO1lBQ3hDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0I7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxhQUFhO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLEtBQUs7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssT0FBTyxDQUFBO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGVBQWU7WUFDbEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDakUsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBL0NVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdOQ3hDN0IseWlHQTBGQSx5REQvREksWUFBWSx3WUFDWix1QkFBdUIsMkhBQ3ZCLGtCQUFrQiw2R0FDbEIsYUFBYSxpREFDYixnQkFBZ0IsNlRBQ2hCLE1BQU0sa0dBRU87WUFDYixZQUFZLENBQUM7Z0JBQ1gsZUFBZTthQUNoQixDQUFDO1NBQ0g7OzRGQUVVLGdCQUFnQjtrQkFwQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixNQUFNO3FCQUNQLGlCQUNjO3dCQUNiLFlBQVksQ0FBQzs0QkFDWCxlQUFlO3lCQUNoQixDQUFDO3FCQUNIOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29weVRleHRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclNldHRpbmdzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbnR5cGUgQ2FyZFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFwaS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWNhcmQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nSWNvbixcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyU2V0dGluZ3MsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX3NpemU6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUydcbiAgQElucHV0KCkgbGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgY3VycmVudExpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZUNsYXNzTWFwOiBSZWNvcmQ8Q2FyZFNpemUsIHN0cmluZz4gPSB7XG4gICAgTDogJ2duLXVpLWNhcmQtbCBweS0yIHB4LTUgZmxleC1yb3cnLFxuICAgIE06ICdnbi11aS1jYXJkLW0gcHktMiBweC01IGZsZXgtcm93JyxcbiAgICBTOiAnZ24tdWktY2FyZC1zIHAtNCBmbGV4LWNvbCcsXG4gICAgWFM6ICdnbi11aS1jYXJkLXhzIHB5LTIgcHgtNSBmbGV4LXJvdycsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2l6ZSh2YWx1ZTogQ2FyZFNpemUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWVcbiAgICB0aGlzLmNhcmRDbGFzcyA9IHRoaXMuc2l6ZUNsYXNzTWFwW3ZhbHVlXVxuICB9XG4gIGdldCBzaXplKCk6ICdMJyB8ICdNJyB8ICdTJyB8ICdYUycge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgY2FyZENsYXNzID0gJydcbiAgZGlzcGxheUFwaUZvcm1CdXR0b246IGJvb2xlYW5cbiAgY3VycmVudGx5QWN0aXZlID0gZmFsc2VcbiAgQE91dHB1dCgpIG9wZW5SZWNvcmRBcGlGb3JtOiBFdmVudEVtaXR0ZXI8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPigpXG5cbiAgZ2V0IGdlbmVyYXRlZFRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnXG4gICAgICA/ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlXZnMnXG4gICAgICA6ICdkYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlBUEknXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BsYXlBcGlGb3JtQnV0dG9uID1cbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycgfHxcbiAgICAgIHRoaXMubGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICB0aGlzLmxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnR1BGREwnXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPVxuICAgICAgY2hhbmdlcy5jdXJyZW50TGluay5jdXJyZW50VmFsdWUgPT09IHRoaXMubGluayA/IHRydWUgOiBmYWxzZVxuICB9XG5cbiAgb3BlblJlY29yZEFwaUZvcm1QYW5lbCgpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5QXBpRm9ybUJ1dHRvbikge1xuICAgICAgdGhpcy5jdXJyZW50bHlBY3RpdmUgPSAhdGhpcy5jdXJyZW50bHlBY3RpdmVcbiAgICAgIHRoaXMub3BlblJlY29yZEFwaUZvcm0uZW1pdCh0aGlzLmN1cnJlbnRseUFjdGl2ZSA/IHRoaXMubGluayA6IHVuZGVmaW5lZClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiByb3VuZGVkIGZpbHRlciBvdmVyZmxvdy1oaWRkZW4gY2FyZC1zaGFkb3dcIlxuICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSAhPT0gJ1MnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtaW4tdy1bMzJweF1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZSA9PT0gJ1MnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICBbdGV4dF09XCJsaW5rLnVybFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiJ3Rvb2x0aXAudXJsLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNwbGF5VGV4dF09XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBwdC0xIHB4LTIgaC1bMzRweF1cIlxuICAgID48L2duLXVpLWNvcHktdGV4dC1idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJkaXNwbGF5QXBpRm9ybUJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZ24tdWktY2FyZC1pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3B5LTIgcHgtNCByb3VuZGVkLXItbWQgYmctZ3JheS00MDAgaG92ZXI6YmctZ3JheS02MDAgZm9jdXM6YmctZ3JheS04MDAgdGV4dC13aGl0ZSc6XG4gICAgICAgICAgZGlzcGxheVRleHQsXG4gICAgICB9XCJcbiAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAhY3VycmVudGx5QWN0aXZlXG4gICAgICAgICAgPyAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5vcGVuRm9ybScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jbG9zZUZvcm0nIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgIChjbGljayk9XCJvcGVuUmVjb3JkQXBpRm9ybVBhbmVsKClcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhbGlnbi1taWRkbGUgY2FyZC1pY29uXCJcbiAgICAgICAgbmFtZT1cImljb25vaXJTZXR0aW5nc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1zZWNvbmRhcnkgb3BhY2l0eS0xMDAnOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLXRpdGxlXCI+XG4gICAgICB7eyBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnbi11aS1jYXJkLWRldGFpbFwiPlxuICAgICAge3sgbGluay5uYW1lIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMi41IGl0ZW1zLWNlbnRlciBwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnR1BGREwnXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgdXBwZXJjYXNlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtcHJpbWFyeS1saWdodGVzdCBncm91cC1ob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICchYmctcHJpbWFyeSc6IGN1cnJlbnRseUFjdGl2ZSxcbiAgICAgICAgfVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wue3tcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ0dQRkRMJ1wiXG4gICAgICAgIGNsYXNzPVwiYmctcHJpbWFyeS1vcGFjaXR5LTUwIHVwcGVyY2FzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgZ3JvdXAtaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnIWJnLXByaW1hcnknOiBjdXJyZW50bHlBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5ncGZkbDwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaXplID09PSAnUydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
2
2
  import { TranslateDirective, TranslateService } from '@ngx-translate/core';
3
3
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
4
- import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
4
+ import { getBadgeColor, getFileFormat, getIsMobile, } from '../../../../../../libs/util/shared/src';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
7
7
  import { DownloadItemComponent } from '../download-item/download-item.component';
@@ -16,6 +16,7 @@ export class DownloadsListComponent {
16
16
  constructor(translateService, changeDetector) {
17
17
  this.translateService = translateService;
18
18
  this.changeDetector = changeDetector;
19
+ this.isMobile$ = getIsMobile();
19
20
  this.activeFilterFormats = ['all'];
20
21
  }
21
22
  get linksCount() {
@@ -103,7 +104,7 @@ export class DownloadsListComponent {
103
104
  link.accessServiceProtocol === 'ogcFeatures'));
104
105
  }
105
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n class=\"md:block hidden\"\n *ngIf=\"_list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n class=\"md:block hidden\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5 md:hidden block\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
108
  }
108
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
109
110
  type: Component,
@@ -114,8 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
114
115
  DownloadItemComponent,
115
116
  TranslateDirective,
116
117
  PreviousNextButtonsComponent,
117
- ], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n class=\"md:block hidden\"\n *ngIf=\"_list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n class=\"md:block hidden\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5 md:hidden block\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
118
+ ], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n" }]
118
119
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { links: [{
119
120
  type: Input
120
121
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRXJGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiw0QkFBNEIsR0FDN0IsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQUU3QyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFVLENBQUE7QUFrQmhGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMs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RGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IGdldEJhZGdlQ29sb3IsIGdldEZpbGVGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IERvd25sb2FkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Rvd25sb2FkLWl0ZW0vZG93bmxvYWQtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQge1xuICBCbG9ja0xpc3RDb21wb25lbnQsXG4gIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcblxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIuYWxsJylcbm1hcmtlcignZGF0YWh1Yi5zZWFyY2guZmlsdGVyLm90aGVycycpXG5cbmNvbnN0IEZJTFRFUl9GT1JNQVRTID0gWydhbGwnLCAnY3N2JywgJ2V4Y2VsJywgJ2pzb24nLCAnc2hwJywgJ290aGVycyddIGFzIGNvbnN0XG50eXBlIEZpbHRlckZvcm1hdCA9ICh0eXBlb2YgRklMVEVSX0ZPUk1BVFMpW251bWJlcl1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZG93bmxvYWRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgRG93bmxvYWRJdGVtQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBQcmV2aW91c05leHRCdXR0b25zQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBfbGlzdDogQmxvY2tMaXN0Q29tcG9uZW50XG4gIEBJbnB1dCgpIGxpbmtzOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXVxuXG4gIGdldCBsaW5rc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRMaW5rcz8ubGVuZ3RoIHx8IDBcbiAgfVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAgICpuZ0lmPVwiX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAjYmxvY2tMaXN0XG4gICAgKGxpc3RDaGFuZ2VzKT1cInVwZGF0ZUxpc3QoJGV2ZW50KVwiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJnYXAtNCBwdC01IHBiLTdcIlxuICA+XG4gICAgPGduLXVpLWRvd25sb2FkLWl0ZW1cbiAgICAgICNibG9ja1xuICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiXG4gICAgICBbbGlua109XCJsaW5rXCJcbiAgICAgIFtjb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgICAgW2Zvcm1hdF09XCJnZXRMaW5rRm9ybWF0KGxpbmspXCJcbiAgICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgICAgIFtzaXplXT1cImJsb2NrTGlzdC5zdWJDb21wb25lbnRTaXplXCJcbiAgICA+PC9nbi11aS1kb3dubG9hZC1pdGVtPlxuICA8L2duLXVpLWJsb2NrLWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cIm1iLTUgbWQ6aGlkZGVuIGJsb2NrXCIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiPlxuICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgIHNpemU9XCJNXCJcbiAgICBbbGlua109XCJsaW5rXCJcbiAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbjwvZGl2PlxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsNEJBQTRCLEdBQzdCLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFFN0MsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFDbkMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFFdEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBVSxDQUFBO0FBa0JoRixNQUFNLE9BQU8sc0JB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QUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgZ2V0QmFkZ2VDb2xvcixcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0SXNNb2JpbGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRG93bmxvYWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgUHJldmlvdXNOZXh0QnV0dG9uc0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuXG5tYXJrZXIoJ2RhdGFodWIuc2VhcmNoLmZpbHRlci5hbGwnKVxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIub3RoZXJzJylcblxuY29uc3QgRklMVEVSX0ZPUk1BVFMgPSBbJ2FsbCcsICdjc3YnLCAnZXhjZWwnLCAnanNvbicsICdzaHAnLCAnb3RoZXJzJ10gYXMgY29uc3RcbnR5cGUgRmlsdGVyRm9ybWF0ID0gKHR5cGVvZiBGSUxURVJfRk9STUFUUylbbnVtYmVyXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kb3dubG9hZHMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2Fkc0xpc3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIF9saXN0OiBCbG9ja0xpc3RDb21wb25lbnRcbiAgQElucHV0KCkgbGlua3M6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbltdXG5cbiAgZ2V0IGxpbmtzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZExpbmtzPy5sZW5ndGggfHwgMFxuICB9XG5cbiAgaXNNb2JpbGUkID0gZ2V0SXNNb2JpbGUoKVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICNibG9ja0xpc3RcbiAgICAobGlzdENoYW5nZXMpPVwidXBkYXRlTGlzdCgkZXZlbnQpXCJcbiAgICBjb250YWluZXJDbGFzcz1cImdhcC00IHB0LTUgcGItN1wiXG4gID5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgI2Jsb2NrXG4gICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBmaWx0ZXJlZExpbmtzXCJcbiAgICAgIFtsaW5rXT1cImxpbmtcIlxuICAgICAgW2NvbG9yXT1cImdldExpbmtDb2xvcihsaW5rKVwiXG4gICAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgICAgW2lzRnJvbUFwaV09XCJpc0Zyb21BcGkobGluaylcIlxuICAgICAgW3NpemVdPVwiYmxvY2tMaXN0LnN1YkNvbXBvbmVudFNpemVcIlxuICAgID48L2duLXVpLWRvd25sb2FkLWl0ZW0+XG4gIDwvZ24tdWktYmxvY2stbGlzdD5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwibWItNVwiICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZpbHRlcmVkTGlua3NcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc01vYmlsZSQgfCBhc3luYykgPT09IHRydWVcIj5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgc2l6ZT1cIk1cIlxuICAgICAgW2xpbmtdPVwibGlua1wiXG4gICAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICAgIFtmb3JtYXRdPVwiZ2V0TGlua0Zvcm1hdChsaW5rKVwiXG4gICAgICBbaXNGcm9tQXBpXT1cImlzRnJvbUFwaShsaW5rKVwiXG4gICAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -3,7 +3,7 @@ import { matLocationSearchingOutline } from '@ng-icons/material-icons/outline';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
5
5
  import { NgIcon, provideIcons } from '@ng-icons/core';
6
- import { LinkClassifierService, LinkUsage } from '../../../../../../libs/util/shared/src';
6
+ import { getIsMobile, LinkClassifierService, LinkUsage, } from '../../../../../../libs/util/shared/src';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../../../../../../libs/util/shared/src";
9
9
  import * as i2 from "@angular/common";
@@ -29,9 +29,10 @@ export class GeoDataBadgeComponent {
29
29
  this.linkClassifier = linkClassifier;
30
30
  this.showLabel = true;
31
31
  this.styling = 'default';
32
+ this.isMobile$ = getIsMobile();
32
33
  }
33
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoDataBadgeComponent, deps: [{ token: i1.LinkClassifierService }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoDataBadgeComponent, isStandalone: true, selector: "gn-ui-geo-data-badge", inputs: { showLabel: "showLabel", styling: "styling", record: "record" }, ngImport: i0, template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span class=\"ml-1 hidden sm:inline-block shrink-0\" *ngIf=\"showLabel\" translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], viewProviders: [
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoDataBadgeComponent, isStandalone: true, selector: "gn-ui-geo-data-badge", inputs: { showLabel: "showLabel", styling: "styling", record: "record" }, ngImport: i0, template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span\n class=\"ml-1 inline-block shrink-0\"\n *ngIf=\"(isMobile$ | async) === false && showLabel\"\n translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], viewProviders: [
35
36
  provideIcons({
36
37
  matLocationSearchingOutline,
37
38
  }),
@@ -43,7 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43
44
  provideIcons({
44
45
  matLocationSearchingOutline,
45
46
  }),
46
- ], template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span class=\"ml-1 hidden sm:inline-block shrink-0\" *ngIf=\"showLabel\" translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"] }]
47
+ ], template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span\n class=\"ml-1 inline-block shrink-0\"\n *ngIf=\"(isMobile$ | async) === false && showLabel\"\n translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"] }]
47
48
  }], ctorParameters: () => [{ type: i1.LinkClassifierService }], propDecorators: { showLabel: [{
48
49
  type: Input
49
50
  }], styling: [{
@@ -51,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
51
52
  }], record: [{
52
53
  type: Input
53
54
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWRhdGEtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2dlby1kYXRhLWJhZGdlL2dlby1kYXRhLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9nZW8tZGF0YS1iYWRnZS9nZW8tZGF0YS1iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOzs7O0FBZXpGLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsU0FBUztRQUNQLE1BQU0sS0FBSyxHQUNULGlCQUFpQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDckUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3RELENBQUE7UUFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDdEQsQ0FBQTtRQUNELE9BQU8sU0FBUyxJQUFJLFVBQVUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsTUFBTSxXQUFXLEdBQ2YseUVBQXlFLENBQUE7UUFFM0UsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sR0FBRyxXQUFXLHdDQUF3QyxDQUFBO1lBQy9ELEtBQUssU0FBUztnQkFDWixPQUFPLEdBQUcsV0FBVywrQkFBK0IsQ0FBQTtZQUN0RDtnQkFDRSxPQUFPLDRCQUE0QixDQUFBO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBbUIsY0FBcUM7UUFBckMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBOUIvQyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLFlBQU8sR0FBRyxTQUFTLENBQUE7SUE2QitCLENBQUM7K0dBL0JqRCxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwSkNyQmxDLHFYQWFBLHFNRENZLFlBQVksbUlBQUUsTUFBTSw2R0FBRSxrQkFBa0IsNkdBQUUsYUFBYSx1Q0FDbEQ7WUFDYixZQUFZLENBQUM7Z0JBQ1gsMkJBQTJCO2FBQzVCLENBQUM7U0FDSDs7NEZBRVUscUJBQXFCO2tCQWJqQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLGlCQUNuRDt3QkFDYixZQUFZLENBQUM7NEJBQ1gsMkJBQTJCO3lCQUM1QixDQUFDO3FCQUNIOzBGQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgTGlua0NsYXNzaWZpZXJTZXJ2aWNlLCBMaW5rVXNhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZ2VvLWRhdGEtYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWRhdGEtYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW8tZGF0YS1iYWRnZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb24sIFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZV0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0TG9jYXRpb25TZWFyY2hpbmdPdXRsaW5lLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9EYXRhQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlXG4gIEBJbnB1dCgpIHN0eWxpbmcgPSAnZGVmYXVsdCdcbiAgQElucHV0KCkgcmVjb3JkOiBDYXRhbG9nUmVjb3JkXG5cbiAgaXNHZW9kYXRhKCkge1xuICAgIGNvbnN0IGxpbmtzID1cbiAgICAgICdvbmxpbmVSZXNvdXJjZXMnIGluIHRoaXMucmVjb3JkID8gdGhpcy5yZWNvcmQub25saW5lUmVzb3VyY2VzIDogW11cbiAgICBjb25zdCBoYXNNYXBBcGkgPSBsaW5rcy5zb21lKChsaW5rKSA9PlxuICAgICAgdGhpcy5saW5rQ2xhc3NpZmllci5oYXNVc2FnZShsaW5rLCBMaW5rVXNhZ2UuTUFQX0FQSSlcbiAgICApXG4gICAgY29uc3QgaGFzR2VvRGF0YSA9IGxpbmtzLnNvbWUoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5HRU9EQVRBKVxuICAgIClcbiAgICByZXR1cm4gaGFzTWFwQXBpIHx8IGhhc0dlb0RhdGFcbiAgfVxuXG4gIGdldCBiYWRnZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9XG4gICAgICAnZmxleCBzaHJpbmstMCBpdGVtcy1jZW50ZXIgYmFkZ2UtYnRuIGJhZGdlLWJ0biB0ZXh0LXhzIHB4LTIgaC02IG1pbi1oLTYnXG5cbiAgICBzd2l0Y2ggKHRoaXMuc3R5bGluZykge1xuICAgICAgY2FzZSAnbGlnaHQnOlxuICAgICAgICByZXR1cm4gYCR7YmFzZUNsYXNzZXN9IGJnLXByaW1hcnktd2hpdGUgdGV4dC1wcmltYXJ5LWRhcmtlc3RgXG4gICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc2VzfSBiZy1wcmltYXJ5LWRhcmtlciB0ZXh0LXdoaXRlYFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlcidcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbGlua0NsYXNzaWZpZXI6IExpbmtDbGFzc2lmaWVyU2VydmljZSkge31cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cImJhZGdlQ2xhc3Nlc1wiXG4gIFt0aXRsZV09XCIncmVjb3JkLm1ldGFkYXRhLmlzR2VvZ3JhcGhpY2FsJyB8IHRyYW5zbGF0ZVwiXG4gICpuZ0lmPVwiaXNHZW9kYXRhKClcIlxuPlxuICA8bmctaWNvblxuICAgIGNsYXNzPVwic2hyaW5rLTAgdGV4dC1bMC43NWVtXVwiXG4gICAgbmFtZT1cIm1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZVwiXG4gID48L25nLWljb24+XG4gIDxzcGFuIGNsYXNzPVwibWwtMSBoaWRkZW4gc206aW5saW5lLWJsb2NrIHNocmluay0wXCIgKm5nSWY9XCJzaG93TGFiZWxcIiB0cmFuc2xhdGVcbiAgICA+cmVjb3JkLm1ldGFkYXRhLmlzR2VvZ3JhcGhpY2FsPC9zcGFuXG4gID5cbjwvZGl2PlxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWRhdGEtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2dlby1kYXRhLWJhZGdlL2dlby1kYXRhLWJhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9nZW8tZGF0YS1iYWRnZS9nZW8tZGF0YS1iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsU0FBUyxHQUNWLE1BQU0sd0NBQXdDLENBQUE7Ozs7QUFlL0MsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxTQUFTO1FBQ1AsTUFBTSxLQUFLLEdBQ1QsaUJBQWlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNyRSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDdEQsQ0FBQTtRQUNELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUN0RCxDQUFBO1FBQ0QsT0FBTyxTQUFTLElBQUksVUFBVSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLFdBQVcsR0FDZix5RUFBeUUsQ0FBQTtRQUUzRSxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxHQUFHLFdBQVcsd0NBQXdDLENBQUE7WUFDL0QsS0FBSyxTQUFTO2dCQUNaLE9BQU8sR0FBRyxXQUFXLCtCQUErQixDQUFBO1lBQ3REO2dCQUNFLE9BQU8sNEJBQTRCLENBQUE7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFtQixjQUFxQztRQUFyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFoQy9DLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDaEIsWUFBTyxHQUFHLFNBQVMsQ0FBQTtRQUc1QixjQUFTLEdBQUcsV0FBVyxFQUFFLENBQUE7SUE0QmtDLENBQUM7K0dBakNqRCxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwSkN6QmxDLDJaQWdCQSxxTURFWSxZQUFZLHdMQUFFLE1BQU0sNkdBQUUsa0JBQWtCLDZHQUFFLGFBQWEsdUNBQ2xEO1lBQ2IsWUFBWSxDQUFDO2dCQUNYLDJCQUEyQjthQUM1QixDQUFDO1NBQ0g7OzRGQUVVLHFCQUFxQjtrQkFiakMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxpQkFDbkQ7d0JBQ2IsWUFBWSxDQUFDOzRCQUNYLDJCQUEyQjt5QkFDNUIsQ0FBQztxQkFDSDswRkFHUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXRMb2NhdGlvblNlYXJjaGluZ091dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGdldElzTW9iaWxlLFxuICBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gIExpbmtVc2FnZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWdlby1kYXRhLWJhZGdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1kYXRhLWJhZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2VvLWRhdGEtYmFkZ2UuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uLCBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGVdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIG1hdExvY2F0aW9uU2VhcmNoaW5nT3V0bGluZSxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvRGF0YUJhZGdlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZVxuICBASW5wdXQoKSBzdHlsaW5nID0gJ2RlZmF1bHQnXG4gIEBJbnB1dCgpIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuXG4gIGlzTW9iaWxlJCA9IGdldElzTW9iaWxlKClcblxuICBpc0dlb2RhdGEoKSB7XG4gICAgY29uc3QgbGlua3MgPVxuICAgICAgJ29ubGluZVJlc291cmNlcycgaW4gdGhpcy5yZWNvcmQgPyB0aGlzLnJlY29yZC5vbmxpbmVSZXNvdXJjZXMgOiBbXVxuICAgIGNvbnN0IGhhc01hcEFwaSA9IGxpbmtzLnNvbWUoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgIClcbiAgICBjb25zdCBoYXNHZW9EYXRhID0gbGlua3Muc29tZSgobGluaykgPT5cbiAgICAgIHRoaXMubGlua0NsYXNzaWZpZXIuaGFzVXNhZ2UobGluaywgTGlua1VzYWdlLkdFT0RBVEEpXG4gICAgKVxuICAgIHJldHVybiBoYXNNYXBBcGkgfHwgaGFzR2VvRGF0YVxuICB9XG5cbiAgZ2V0IGJhZGdlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID1cbiAgICAgICdmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBiYWRnZS1idG4gYmFkZ2UtYnRuIHRleHQteHMgcHgtMiBoLTYgbWluLWgtNidcblxuICAgIHN3aXRjaCAodGhpcy5zdHlsaW5nKSB7XG4gICAgICBjYXNlICdsaWdodCc6XG4gICAgICAgIHJldHVybiBgJHtiYXNlQ2xhc3Nlc30gYmctcHJpbWFyeS13aGl0ZSB0ZXh0LXByaW1hcnktZGFya2VzdGBcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICByZXR1cm4gYCR7YmFzZUNsYXNzZXN9IGJnLXByaW1hcnktZGFya2VyIHRleHQtd2hpdGVgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsaW5rQ2xhc3NpZmllcjogTGlua0NsYXNzaWZpZXJTZXJ2aWNlKSB7fVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiYmFkZ2VDbGFzc2VzXCJcbiAgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuaXNHZW9ncmFwaGljYWwnIHwgdHJhbnNsYXRlXCJcbiAgKm5nSWY9XCJpc0dlb2RhdGEoKVwiXG4+XG4gIDxuZy1pY29uXG4gICAgY2xhc3M9XCJzaHJpbmstMCB0ZXh0LVswLjc1ZW1dXCJcbiAgICBuYW1lPVwibWF0TG9jYXRpb25TZWFyY2hpbmdPdXRsaW5lXCJcbiAgPjwvbmctaWNvbj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cIm1sLTEgaW5saW5lLWJsb2NrIHNocmluay0wXCJcbiAgICAqbmdJZj1cIihpc01vYmlsZSQgfCBhc3luYykgPT09IGZhbHNlICYmIHNob3dMYWJlbFwiXG4gICAgdHJhbnNsYXRlXG4gICAgPnJlY29yZC5tZXRhZGF0YS5pc0dlb2dyYXBoaWNhbDwvc3BhblxuICA+XG48L2Rpdj5cbiJdfQ==
@@ -26,9 +26,6 @@ export class MetadataQualityComponent {
26
26
  get computedQualityScore() {
27
27
  return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
28
28
  }
29
- hasGetCapabilities(url) {
30
- return url.toLowerCase().includes('capabilities');
31
- }
32
29
  initialize() {
33
30
  if (!this.propsToValidate) {
34
31
  this.propsToValidate = getAllKeysValidator();
@@ -82,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
82
79
  }], forceComputeScore: [{
83
80
  type: Input
84
81
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSwwREFBMEQsQ0FBQTtBQUVqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLHVDQUF1QyxDQUFBO0FBQzlDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBRXBCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7QUEwQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUF4QnJDO1FBMEJXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFFZixtQkFBYyxHQUFHLElBQUksQ0FBQTtRQUVyQixzQkFBaUIsR0FBRyxLQUFLLENBQUEsQ0FBQyx5Q0FBeUM7UUFFNUUsVUFBSyxHQUEwQixFQUFFLENBQUE7S0FxQ2xDO0lBbkNDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRTdCLE9BQU8sT0FBTyxZQUFZLEtBQUssUUFBUTtZQUNyQyxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUE7SUFDL0IsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMzRSxDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUN4RSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ3hELENBQUE7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ25CLENBQUM7SUFDSCxDQUFDOytHQTVDVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwyUkFWeEI7WUFDVCxZQUFZLENBQUM7Z0JBQ1gsY0FBYzthQUNmLENBQUM7WUFDRixvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsV0FBVyxFQUFFLE9BQU87YUFDckIsQ0FBQztTQUNILCtDQ2hESCx1NkJBaUNBLDJIREFJLFlBQVksOFZBQ1osZ0JBQWdCLHdGQUNoQixvQkFBb0IsMEZBQ3BCLDRCQUE0QixtR0FDNUIsa0JBQWtCLGtIQUNsQixNQUFNOzs0RkFZRyx3QkFBd0I7a0JBeEJwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixrQkFBa0I7d0JBQ2xCLE1BQU07cUJBQ1AsYUFDVTt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsY0FBYzt5QkFDZixDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzs0QkFDYixXQUFXLEVBQUUsT0FBTzt5QkFDckIsQ0FBQztxQkFDSDs4QkFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBNZXRhZGF0YVF1YWxpdHlJdGVtLFxuICBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50LFxufSBmcm9tICcuLi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBQb3BvdmVyQ29tcG9uZW50LFxuICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7XG4gIGdldFF1YWxpdHlWYWxpZGF0b3JzLFxuICBnZXRBbGxLZXlzVmFsaWRhdG9yLFxuICB0eXBlIFZhbGlkYXRvck1hcHBlcktleXMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zLCBwcm92aWRlTmdJY29uc0NvbmZpZyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0SW5mb091dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtcXVhbGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgTWV0YWRhdGFRdWFsaXR5SXRlbUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgTmdJY29uLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0SW5mb091dGxpbmUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMmVtJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAnMS41cHgnLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YVF1YWxpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXRhZGF0YTogQ2F0YWxvZ1JlY29yZFxuICBASW5wdXQoKSBzbWFsbGVyID0gZmFsc2VcbiAgQElucHV0KCkgbWV0YWRhdGFRdWFsaXR5RGlzcGxheTogYm9vbGVhblxuICBASW5wdXQoKSBwb3BvdmVyRGlzcGxheSA9IHRydWVcbiAgQElucHV0KCkgcHJvcHNUb1ZhbGlkYXRlPzogVmFsaWRhdG9yTWFwcGVyS2V5c1tdXG4gIEBJbnB1dCgpIGZvcmNlQ29tcHV0ZVNjb3JlID0gZmFsc2UgLy8gSW5zdGVhZCBvZiByZXR1cm5pbmcgZXMnIHF1YWxpdHkgc2NvcmVcblxuICBpdGVtczogTWV0YWRhdGFRdWFsaXR5SXRlbVtdID0gW11cblxuICBnZXQgcXVhbGl0eVNjb3JlKCkge1xuICAgIGNvbnN0IHF1YWxpdHlTY29yZSA9ICF0aGlzLmZvcmNlQ29tcHV0ZVNjb3JlXG4gICAgICA/IHRoaXMubWV0YWRhdGE/LmV4dHJhcz8ucXVhbGl0eVNjb3JlXG4gICAgICA6IHRoaXMuY29tcHV0ZWRRdWFsaXR5U2NvcmVcblxuICAgIHJldHVybiB0eXBlb2YgcXVhbGl0eVNjb3JlID09PSAnbnVtYmVyJ1xuICAgICAgPyBxdWFsaXR5U2NvcmVcbiAgICAgIDogdGhpcy5jb21wdXRlZFF1YWxpdHlTY29yZVxuICB9XG5cbiAgZ2V0IGNvbXB1dGVkUXVhbGl0eVNjb3JlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoXG4gICAgICAodGhpcy5pdGVtcy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLmxlbmd0aCAqIDEwMCkgLyB0aGlzLml0ZW1zLmxlbmd0aFxuICAgIClcbiAgfVxuXG4gIGhhc0dldENhcGFiaWxpdGllcyh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1cmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2FwYWJpbGl0aWVzJylcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzVG9WYWxpZGF0ZSkge1xuICAgICAgdGhpcy5wcm9wc1RvVmFsaWRhdGUgPSBnZXRBbGxLZXlzVmFsaWRhdG9yKClcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1zID0gZ2V0UXVhbGl0eVZhbGlkYXRvcnModGhpcy5tZXRhZGF0YSwgdGhpcy5wcm9wc1RvVmFsaWRhdGUpLm1hcChcbiAgICAgICh7IG5hbWUsIHZhbGlkYXRvciB9KSA9PiAoeyBuYW1lLCB2YWx1ZTogdmFsaWRhdG9yKCkgfSlcbiAgICApXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21ldGFkYXRhJ10gfHwgY2hhbmdlc1snbWV0YWRhdGFRdWFsaXR5RGlzcGxheSddKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemUoKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cIm1ldGFkYXRhUXVhbGl0eURpc3BsYXlcIlxuICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1ldGFkYXRhLXF1YWxpdHkgbWluLXctMFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQteHMgbGVhZGluZy1bOHB4XSBtLWgtWzEyMHB4XSc6IHNtYWxsZXIgfVwiXG4+XG4gIDxnbi11aS1wcm9ncmVzcy1iYXJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIFt2YWx1ZV09XCJxdWFsaXR5U2NvcmVcIlxuICAgIFt0eXBlXT1cIidsaWdodCdcIlxuICAgIGNsYXNzPVwiZmxleC1ncm93XCJcbiAgPjwvZ24tdWktcHJvZ3Jlc3MtYmFyPlxuICA8Z24tdWktcG9wb3ZlclxuICAgICpuZ0lmPVwicG9wb3ZlckRpc3BsYXlcIlxuICAgIFtjb250ZW50XT1cInBvcG92ZXJJdGVtc1wiXG4gICAgdGhlbWU9XCJsaWdodC1ib3JkZXJcIlxuICAgIFtjbGFzc109XCJzbWFsbGVyID8gJ21sLTInIDogJ21sLTIgbXQtMSdcIlxuICA+XG4gICAgPG5nLWljb25cbiAgICAgIG5hbWU9XCJtYXRJbmZvT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImZsZXgtc2hyaW5rLTAgdGV4dC1ncmF5LTYwMFwiXG4gICAgPjwvbmctaWNvbj5cbiAgPC9nbi11aS1wb3BvdmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcG92ZXJJdGVtcz5cbiAgPGRpdiBjbGFzcz1cInAtMiBweS00XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTQgZm9udC1ib2xkXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5xdWFsaXR5LmRldGFpbHM8L2Rpdj5cbiAgICA8Z24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtXG4gICAgICAqbmdGb3I9XCJsZXQgZSBvZiBpdGVtc1wiXG4gICAgICBbbmFtZV09XCJlLm5hbWVcIlxuICAgICAgW3ZhbHVlXT1cImUudmFsdWVcIlxuICAgID48L2duLXVpLW1ldGFkYXRhLXF1YWxpdHktaXRlbT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSwwREFBMEQsQ0FBQTtBQUVqRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixHQUNyQixNQUFNLHVDQUF1QyxDQUFBO0FBQzlDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBRXBCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7QUEwQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUF4QnJDO1FBMEJXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFFZixtQkFBYyxHQUFHLElBQUksQ0FBQTtRQUVyQixzQkFBaUIsR0FBRyxLQUFLLENBQUEsQ0FBQyx5Q0FBeUM7UUFFNUUsVUFBSyxHQUEwQixFQUFFLENBQUE7S0FpQ2xDO0lBL0JDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRTdCLE9BQU8sT0FBTyxZQUFZLEtBQUssUUFBUTtZQUNyQyxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUE7SUFDL0IsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMzRSxDQUFBO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQ3hFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDeEQsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkIsQ0FBQztJQUNILENBQUM7K0dBeENVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDJSQVZ4QjtZQUNULFlBQVksQ0FBQztnQkFDWCxjQUFjO2FBQ2YsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTztnQkFDYixXQUFXLEVBQUUsT0FBTzthQUNyQixDQUFDO1NBQ0gsK0NDaERILHU2QkFpQ0EsMkhEQUksWUFBWSw4VkFDWixnQkFBZ0Isd0ZBQ2hCLG9CQUFvQiwwRkFDcEIsNEJBQTRCLG1HQUM1QixrQkFBa0Isa0hBQ2xCLE1BQU07OzRGQVlHLHdCQUF3QjtrQkF4QnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLGtCQUFrQjt3QkFDbEIsTUFBTTtxQkFDUCxhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxjQUFjO3lCQUNmLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPOzRCQUNiLFdBQVcsRUFBRSxPQUFPO3lCQUNyQixDQUFDO3FCQUNIOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW0sXG4gIE1ldGFkYXRhUXVhbGl0eUl0ZW1Db21wb25lbnQsXG59IGZyb20gJy4uL21ldGFkYXRhLXF1YWxpdHktaXRlbS9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIFBvcG92ZXJDb21wb25lbnQsXG4gIFByb2dyZXNzQmFyQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHtcbiAgZ2V0UXVhbGl0eVZhbGlkYXRvcnMsXG4gIGdldEFsbEtleXNWYWxpZGF0b3IsXG4gIHR5cGUgVmFsaWRhdG9yTWFwcGVyS2V5cyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMsIHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRJbmZvT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1xdWFsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBNZXRhZGF0YVF1YWxpdHlJdGVtQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBOZ0ljb24sXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBtYXRJbmZvT3V0bGluZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS4yZW0nLFxuICAgICAgc3Ryb2tlV2lkdGg6ICcxLjVweCcsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkXG4gIEBJbnB1dCgpIHNtYWxsZXIgPSBmYWxzZVxuICBASW5wdXQoKSBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5OiBib29sZWFuXG4gIEBJbnB1dCgpIHBvcG92ZXJEaXNwbGF5ID0gdHJ1ZVxuICBASW5wdXQoKSBwcm9wc1RvVmFsaWRhdGU/OiBWYWxpZGF0b3JNYXBwZXJLZXlzW11cbiAgQElucHV0KCkgZm9yY2VDb21wdXRlU2NvcmUgPSBmYWxzZSAvLyBJbnN0ZWFkIG9mIHJldHVybmluZyBlcycgcXVhbGl0eSBzY29yZVxuXG4gIGl0ZW1zOiBNZXRhZGF0YVF1YWxpdHlJdGVtW10gPSBbXVxuXG4gIGdldCBxdWFsaXR5U2NvcmUoKSB7XG4gICAgY29uc3QgcXVhbGl0eVNjb3JlID0gIXRoaXMuZm9yY2VDb21wdXRlU2NvcmVcbiAgICAgID8gdGhpcy5tZXRhZGF0YT8uZXh0cmFzPy5xdWFsaXR5U2NvcmVcbiAgICAgIDogdGhpcy5jb21wdXRlZFF1YWxpdHlTY29yZVxuXG4gICAgcmV0dXJuIHR5cGVvZiBxdWFsaXR5U2NvcmUgPT09ICdudW1iZXInXG4gICAgICA/IHF1YWxpdHlTY29yZVxuICAgICAgOiB0aGlzLmNvbXB1dGVkUXVhbGl0eVNjb3JlXG4gIH1cblxuICBnZXQgY29tcHV0ZWRRdWFsaXR5U2NvcmUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLml0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSkubGVuZ3RoICogMTAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAoIXRoaXMucHJvcHNUb1ZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnByb3BzVG9WYWxpZGF0ZSA9IGdldEFsbEtleXNWYWxpZGF0b3IoKVxuICAgIH1cblxuICAgIHRoaXMuaXRlbXMgPSBnZXRRdWFsaXR5VmFsaWRhdG9ycyh0aGlzLm1ldGFkYXRhLCB0aGlzLnByb3BzVG9WYWxpZGF0ZSkubWFwKFxuICAgICAgKHsgbmFtZSwgdmFsaWRhdG9yIH0pID0+ICh7IG5hbWUsIHZhbHVlOiB2YWxpZGF0b3IoKSB9KVxuICAgIClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbWV0YWRhdGEnXSB8fCBjaGFuZ2VzWydtZXRhZGF0YVF1YWxpdHlEaXNwbGF5J10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwibWV0YWRhdGFRdWFsaXR5RGlzcGxheVwiXG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWV0YWRhdGEtcXVhbGl0eSBtaW4tdy0wXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC14cyBsZWFkaW5nLVs4cHhdIG0taC1bMTIwcHhdJzogc21hbGxlciB9XCJcbj5cbiAgPGduLXVpLXByb2dyZXNzLWJhclxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW3ZhbHVlXT1cInF1YWxpdHlTY29yZVwiXG4gICAgW3R5cGVdPVwiJ2xpZ2h0J1wiXG4gICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICA+PC9nbi11aS1wcm9ncmVzcy1iYXI+XG4gIDxnbi11aS1wb3BvdmVyXG4gICAgKm5nSWY9XCJwb3BvdmVyRGlzcGxheVwiXG4gICAgW2NvbnRlbnRdPVwicG9wb3Zlckl0ZW1zXCJcbiAgICB0aGVtZT1cImxpZ2h0LWJvcmRlclwiXG4gICAgW2NsYXNzXT1cInNtYWxsZXIgPyAnbWwtMicgOiAnbWwtMiBtdC0xJ1wiXG4gID5cbiAgICA8bmctaWNvblxuICAgICAgbmFtZT1cIm1hdEluZm9PdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktNjAwXCJcbiAgICA+PC9uZy1pY29uPlxuICA8L2duLXVpLXBvcG92ZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wb3Zlckl0ZW1zPlxuICA8ZGl2IGNsYXNzPVwicC0yIHB5LTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBmb250LWJvbGRcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuZGV0YWlsczwvZGl2PlxuICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5LWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBlIG9mIGl0ZW1zXCJcbiAgICAgIFtuYW1lXT1cImUubmFtZVwiXG4gICAgICBbdmFsdWVdPVwiZS52YWx1ZVwiXG4gICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,13 +5,14 @@ import { NgIcon, provideIcons, provideNgIconsConfig } from '@ng-icons/core';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { of } from 'rxjs';
7
7
  import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
8
- import { createFuzzyFilter } from '../../../../../../libs/util/shared/src';
8
+ import { createFuzzyFilter, getIsMobile } from '../../../../../../libs/util/shared/src';
9
9
  import { iconoirSearch } from '@ng-icons/iconoir';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common";
12
12
  import * as i2 from "@angular/forms";
13
13
  export class SearchFeatureCatalogComponent {
14
14
  constructor() {
15
+ this.isMobile$ = getIsMobile();
15
16
  this.filteredFeatureCatalogChange = new EventEmitter();
16
17
  this.filterAction = (searchTerm) => {
17
18
  of(searchTerm)
@@ -44,7 +45,7 @@ export class SearchFeatureCatalogComponent {
44
45
  return (this.filteredFeatureCatalog?.featureTypes?.reduce((total, featureType) => total + (featureType.attributes?.length || 0), 0) || 0);
45
46
  }
46
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFeatureCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto hidden sm:inline\">\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [
48
49
  provideIcons({ iconoirSearch }),
49
50
  provideNgIconsConfig({
50
51
  size: '1.5rem',
@@ -64,10 +65,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
64
65
  provideNgIconsConfig({
65
66
  size: '1.5rem',
66
67
  }),
67
- ], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto hidden sm:inline\">\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n" }]
68
+ ], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n" }]
68
69
  }], propDecorators: { featureCatalog: [{
69
70
  type: Input
70
71
  }], filteredFeatureCatalogChange: [{
71
72
  type: Output
72
73
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7OztBQXFCakQsTUFBTSxPQUFPLDZCQUE2QjtJQW5CMUM7UUE4QlksaUNBQTRCLEdBQ3BDLElBQUksWUFBWSxFQUF5QixDQUFBO1FBRzNDLGlCQUFZLEdBQUcsQ0FBQyxVQUFrQixFQUFRLEVBQUU7WUFDMUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDWCxJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUMvRCxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNkLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNqRCxPQUFPLENBQ0wsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQzdCLENBQUMsV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQ2hFLENBQUE7Z0JBQ0gsQ0FBQyxDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHO29CQUM1QixHQUFHLElBQUksQ0FBQyxjQUFjO29CQUN0QixZQUFZLEVBQUUsUUFBUTtpQkFDdkIsQ0FBQTtnQkFDRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1lBQ3JFLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtLQWNGO0lBakRDLElBQWEsY0FBYyxDQUFDLEtBQTRCO1FBQ3RELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUE7SUFDckMsQ0FBQztJQUNELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0IsQ0FBQztJQStCRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FDTCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FDL0MsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDckUsQ0FBQyxDQUNGLElBQUksQ0FBQyxDQUNQLENBQUE7SUFDSCxDQUFDOytHQW5EVSw2QkFBNkI7bUdBQTdCLDZCQUE2QixpTkM5QjFDLDQ3Q0EyQ0EseUREMUJJLFlBQVksbUlBQ1osTUFBTSw2R0FDTixrQkFBa0IsNkdBQ2xCLGFBQWEsaURBQ2IsV0FBVyxvbUJBRUU7WUFDYixZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUMvQixvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDO1NBQ0g7OzRGQUVVLDZCQUE2QjtrQkFuQnpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE1BQU07d0JBQ04sa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLFdBQVc7cUJBQ1osaUJBQ2M7d0JBQ2IsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7d0JBQy9CLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIOzhCQUtZLGNBQWM7c0JBQTFCLEtBQUs7Z0JBUUksNEJBQTRCO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zLCBwcm92aWRlTmdJY29uc0NvbmZpZyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgRGF0YXNldEZlYXR1cmVDYXRhbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgY3JlYXRlRnV6enlGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc2VhcmNoLWZlYXR1cmUtY2F0YWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZmVhdHVyZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmdJY29uLFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclNlYXJjaCB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRmVhdHVyZUNhdGFsb2dDb21wb25lbnQge1xuICBwcml2YXRlIF9mZWF0dXJlQ2F0YWxvZzogRGF0YXNldEZlYXR1cmVDYXRhbG9nXG4gIHNlYXJjaFRlcm06IGFueVxuICBASW5wdXQoKSBzZXQgZmVhdHVyZUNhdGFsb2codmFsdWU6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZykge1xuICAgIHRoaXMuX2ZlYXR1cmVDYXRhbG9nID0gdmFsdWVcbiAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cgPSB2YWx1ZVxuICB9XG4gIGdldCBmZWF0dXJlQ2F0YWxvZygpOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2cge1xuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlQ2F0YWxvZ1xuICB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YXNldEZlYXR1cmVDYXRhbG9nPigpXG4gIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuXG4gIGZpbHRlckFjdGlvbiA9IChzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBvZihzZWFyY2hUZXJtKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKHRoaXMuZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1enp5RmlsdGVyID0gY3JlYXRlRnV6enlGaWx0ZXIoc2VhcmNoVGVybSlcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmdXp6eUZpbHRlcihmZWF0dXJlVHlwZS5uYW1lKSB8fFxuICAgICAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZpbml0aW9uICYmIGZ1enp5RmlsdGVyKGZlYXR1cmVUeXBlLmRlZmluaXRpb24pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZmVhdHVyZUNhdGFsb2csXG4gICAgICAgICAgICBmZWF0dXJlVHlwZXM6IGZpbHRlcmVkLFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGdldCB0b3RhbE9iamVjdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCB8fCAwXG4gIH1cblxuICBnZXQgdG90YWxBdHRyaWJ1dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgZmVhdHVyZVR5cGUpID0+IHRvdGFsICsgKGZlYXR1cmVUeXBlLmF0dHJpYnV0ZXM/Lmxlbmd0aCB8fCAwKSxcbiAgICAgICAgMFxuICAgICAgKSB8fCAwXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBtdC04IGJnLXdoaXRlIHJvdW5kZWQtbGcgYm9yZGVyLWIgc29saWQgYm9yZGVyLWdyYXktMzAwXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgc2hyaW5rLTBcIlxuICAgICpuZ0lmPVwiZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcz8ubGVuZ3RoID4gMVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLmZpbHRlci5pbnRvLmZlYXR1cmUuY2F0YWxvZycgfCB0cmFuc2xhdGVcIlxuICAgICAgY2xhc3M9XCJ3LVsyMjBweF0gaC04IHBsLTMgcHItMTAgcHktMiBib3JkZXIgcm91bmRlZC1tZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZmlsdGVyQWN0aW9uKHNlYXJjaFRlcm0pXCJcbiAgICAvPlxuICAgIDxuZy1pY29uXG4gICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTIuNSB0b3AtMSB3LTYgaC02IHRleHQtYmxhY2tcIlxuICAgICAgbmFtZT1cImljb25vaXJTZWFyY2hcIlxuICAgID48L25nLWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBweC0xIG1sLWF1dG8gaGlkZGVuIHNtOmlubGluZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzLWxhYmVsXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5yZWNvcmQuZmVhdHVyZS5jYXRhbG9nLm51bWJlci50b3RhbC5vYmplY3Q8L3NwYW5cbiAgICAgID48c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHB4LTEgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzXCJcbiAgICAgICAgPnt7IHRvdGFsT2JqZWN0cyB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0xLjVcIj58PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gcHgtMSB0ZXh0LWdyYXktOTAwXCJcbiAgICAgIGRhdGEtY3k9XCJ0b3RhbC1hdHRyaWJ1dGVzLWxhYmVsXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgICAgPnJlY29yZC5mZWF0dXJlLmNhdGFsb2cubnVtYmVyLnRvdGFsLmF0dHJpYnV0ZTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDBcIiBkYXRhLWN5PVwidG90YWwtYXR0cmlidXRlc1wiPnt7XG4gICAgICB0b3RhbEF0dHJpYnV0ZXNcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cvc2VhcmNoLWZlYXR1cmUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7Ozs7QUFxQmpELE1BQU0sT0FBTyw2QkFBNkI7SUFuQjFDO1FBOEJFLGNBQVMsR0FBRyxXQUFXLEVBQUUsQ0FBQTtRQUVmLGlDQUE0QixHQUNwQyxJQUFJLFlBQVksRUFBeUIsQ0FBQTtRQUczQyxpQkFBWSxHQUFHLENBQUMsVUFBa0IsRUFBUSxFQUFFO1lBQzFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ1gsSUFBSSxDQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDZCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtvQkFDakQsT0FBTyxDQUNMLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO3dCQUM3QixDQUFDLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUNoRSxDQUFBO2dCQUNILENBQUMsQ0FDRixDQUFBO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsR0FBRztvQkFDNUIsR0FBRyxJQUFJLENBQUMsY0FBYztvQkFDdEIsWUFBWSxFQUFFLFFBQVE7aUJBQ3ZCLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUNyRSxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLEVBQUUsQ0FBQTtRQUNoQixDQUFDLENBQUE7S0FjRjtJQW5EQyxJQUFhLGNBQWMsQ0FBQyxLQUE0QjtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtRQUM1QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7SUFpQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQ0wsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQy9DLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ3JFLENBQUMsQ0FDRixJQUFJLENBQUMsQ0FDUCxDQUFBO0lBQ0gsQ0FBQzsrR0FyRFUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsaU5DOUIxQyx5a0RBaURBLHlERGhDSSxZQUFZLHdMQUNaLE1BQU0sNkdBQ04sa0JBQWtCLDZHQUNsQixhQUFhLGlEQUNiLFdBQVcsb21CQUVFO1lBQ2IsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDL0Isb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQztTQUNIOzs0RkFFVSw2QkFBNkI7a0JBbkJ6QyxTQUFTOytCQUNFLDhCQUE4QixjQUc1QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixNQUFNO3dCQUNOLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixXQUFXO3FCQUNaLGlCQUNjO3dCQUNiLFlBQVksQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO3dCQUMvQixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQztxQkFDSDs4QkFLWSxjQUFjO3NCQUExQixLQUFLO2dCQVVJLDRCQUE0QjtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ0ljb24sIHByb3ZpZGVJY29ucywgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRJc01vYmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgaWNvbm9pclNlYXJjaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1zZWFyY2gtZmVhdHVyZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1mZWF0dXJlLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZmVhdHVyZS1jYXRhbG9nLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0ljb24sXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBpY29ub2lyU2VhcmNoIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVyZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGZWF0dXJlQ2F0YWxvZ0NvbXBvbmVudCB7XG4gIHByaXZhdGUgX2ZlYXR1cmVDYXRhbG9nOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2dcbiAgc2VhcmNoVGVybTogYW55XG4gIEBJbnB1dCgpIHNldCBmZWF0dXJlQ2F0YWxvZyh2YWx1ZTogRGF0YXNldEZlYXR1cmVDYXRhbG9nKSB7XG4gICAgdGhpcy5fZmVhdHVyZUNhdGFsb2cgPSB2YWx1ZVxuICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHZhbHVlXG4gIH1cbiAgZ2V0IGZlYXR1cmVDYXRhbG9nKCk6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZlYXR1cmVDYXRhbG9nXG4gIH1cblxuICBpc01vYmlsZSQgPSBnZXRJc01vYmlsZSgpXG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YXNldEZlYXR1cmVDYXRhbG9nPigpXG4gIGZpbHRlcmVkRmVhdHVyZUNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuXG4gIGZpbHRlckFjdGlvbiA9IChzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBvZihzZWFyY2hUZXJtKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKHRoaXMuZmVhdHVyZUNhdGFsb2c/LmZlYXR1cmVUeXBlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1enp5RmlsdGVyID0gY3JlYXRlRnV6enlGaWx0ZXIoc2VhcmNoVGVybSlcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBmdXp6eUZpbHRlcihmZWF0dXJlVHlwZS5uYW1lKSB8fFxuICAgICAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZpbml0aW9uICYmIGZ1enp5RmlsdGVyKGZlYXR1cmVUeXBlLmRlZmluaXRpb24pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZmVhdHVyZUNhdGFsb2csXG4gICAgICAgICAgICBmZWF0dXJlVHlwZXM6IGZpbHRlcmVkLFxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2dDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlcmVkRmVhdHVyZUNhdGFsb2cpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGdldCB0b3RhbE9iamVjdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCB8fCAwXG4gIH1cblxuICBnZXQgdG90YWxBdHRyaWJ1dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZmlsdGVyZWRGZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgZmVhdHVyZVR5cGUpID0+IHRvdGFsICsgKGZlYXR1cmVUeXBlLmF0dHJpYnV0ZXM/Lmxlbmd0aCB8fCAwKSxcbiAgICAgICAgMFxuICAgICAgKSB8fCAwXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBtdC04IGJnLXdoaXRlIHJvdW5kZWQtbGcgYm9yZGVyLWIgc29saWQgYm9yZGVyLWdyYXktMzAwXCJcbiAgKm5nSWY9XCJcbiAgICAoaXNNb2JpbGUkIHwgYXN5bmMpID09PSBmYWxzZSB8fCBmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJlbGF0aXZlIHNocmluay0wXCJcbiAgICAqbmdJZj1cImZlYXR1cmVDYXRhbG9nPy5mZWF0dXJlVHlwZXM/Lmxlbmd0aCA+IDFcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5maWx0ZXIuaW50by5mZWF0dXJlLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNsYXNzPVwidy1bMjIwcHhdIGgtOCBwbC0zIHByLTEwIHB5LTIgYm9yZGVyIHJvdW5kZWQtbWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlckFjdGlvbihzZWFyY2hUZXJtKVwiXG4gICAgLz5cbiAgICA8bmctaWNvblxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0yLjUgdG9wLTEgdy02IGgtNiB0ZXh0LWJsYWNrXCJcbiAgICAgIG5hbWU9XCJpY29ub2lyU2VhcmNoXCJcbiAgICA+PC9uZy1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgIGNsYXNzPVwidGV4dC1zbSBweC0xIG1sLWF1dG8gaW5saW5lXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWF0dXJlQ2F0YWxvZz8uZmVhdHVyZVR5cGVzPy5sZW5ndGggPiAxXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzLWxhYmVsXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5yZWNvcmQuZmVhdHVyZS5jYXRhbG9nLm51bWJlci50b3RhbC5vYmplY3Q8L3NwYW5cbiAgICAgID48c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHB4LTEgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgIGRhdGEtY3k9XCJ0b3RhbC1vYmplY3RzXCJcbiAgICAgICAgPnt7IHRvdGFsT2JqZWN0cyB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0xLjVcIj58PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gcHgtMSB0ZXh0LWdyYXktOTAwXCJcbiAgICAgIGRhdGEtY3k9XCJ0b3RhbC1hdHRyaWJ1dGVzLWxhYmVsXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgICAgPnJlY29yZC5mZWF0dXJlLmNhdGFsb2cubnVtYmVyLnRvdGFsLmF0dHJpYnV0ZTwvc3BhblxuICAgID48c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDBcIiBkYXRhLWN5PVwidG90YWwtYXR0cmlidXRlc1wiPnt7XG4gICAgICB0b3RhbEF0dHJpYnV0ZXNcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==