geonetwork-ui 2.2.0-dev.8cce3b0e → 2.2.0-dev.91cd6a97

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/metadata-converter/src/lib/gn4/atomic-operations.mjs +27 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +23 -11
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +4 -2
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +10 -9
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +33 -8
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +31 -14
  9. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  10. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
  11. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  12. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  13. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +17 -5
  14. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +2 -2
  15. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
  16. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  17. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  18. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  19. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  20. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  21. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  22. package/esm2022/translations/de.json +26 -19
  23. package/esm2022/translations/en.json +26 -19
  24. package/esm2022/translations/es.json +23 -16
  25. package/esm2022/translations/fr.json +27 -20
  26. package/esm2022/translations/it.json +26 -19
  27. package/esm2022/translations/nl.json +24 -17
  28. package/esm2022/translations/pt.json +23 -16
  29. package/fesm2022/geonetwork-ui.mjs +381 -178
  30. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  31. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +2 -0
  32. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  33. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  34. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  35. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
  36. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  37. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
  38. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
  39. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +3 -3
  40. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  41. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +1 -1
  42. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  43. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +16 -2
  44. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  45. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +9 -3
  46. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  47. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  48. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  49. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  50. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  51. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  52. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  53. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  54. package/package.json +1 -1
  55. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +56 -2
  56. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +51 -6
  57. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +205 -20
  58. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +29 -0
  59. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +30 -11
  60. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +3 -1
  61. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
  62. package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
  63. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +9 -9
  64. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +58 -20
  65. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +86 -38
  66. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -3
  67. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  68. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +44 -8
  69. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +3 -4
  70. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  71. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  72. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +114 -23
  73. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +20 -3
  74. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +1 -1
  75. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  76. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  77. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  78. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  79. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
  80. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  81. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  82. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  83. package/tailwind.base.config.js +3 -0
  84. package/tailwind.base.css +2 -2
  85. package/translations/de.json +26 -19
  86. package/translations/en.json +26 -19
  87. package/translations/es.json +23 -16
  88. package/translations/fr.json +27 -20
  89. package/translations/it.json +26 -19
  90. package/translations/nl.json +24 -17
  91. package/translations/pt.json +23 -16
  92. package/translations/sk.json +24 -17
@@ -27,11 +27,11 @@ export class MetadataContactComponent {
27
27
  this.organizationClick.emit(this.shownOrganization);
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
34
+ args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
35
35
  }], propDecorators: { metadata: [{
36
36
  type: Input
37
37
  }], organizationClick: [{
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
39
39
  }], contactClick: [{
40
40
  type: Output
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7OztBQWF0QixNQUFNLE9BQU8sd0JBQXdCO0lBTnJDO1FBUVksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUE7UUFDcEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFBO0tBd0J4RDtJQXRCQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0IsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7OEdBMUJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1MQ25CckMsNjFHQWtHQTs7MkZEL0VhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY29udGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuICBAT3V0cHV0KCkgb3JnYW5pemF0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE9yZ2FuaXphdGlvbj4oKVxuICBAT3V0cHV0KCkgY29udGFjdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsPigpXG5cbiAgZ2V0IHNob3duT3JnYW5pemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uXG4gIH1cblxuICBnZXQgY29udGFjdHMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLm1ldGFkYXRhLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMubWV0YWRhdGEuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMubWV0YWRhdGEuY29udGFjdHMpIHx8IFtdXG4gICAgKVxuICB9XG5cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgY29uc3QgYWRkcmVzc1BhcnRzID0gdGhpcy5jb250YWN0c1swXS5hZGRyZXNzXG4gICAgICAuc3BsaXQoJywnKVxuICAgICAgLm1hcCgocGFydCkgPT4gcGFydC50cmltKCkpXG4gICAgcmV0dXJuIGFkZHJlc3NQYXJ0c1xuICB9XG5cbiAgb25Pcmdhbml6YXRpb25DbGljaygpIHtcbiAgICB0aGlzLm9yZ2FuaXphdGlvbkNsaWNrLmVtaXQodGhpcy5zaG93bk9yZ2FuaXphdGlvbilcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTUgcHgtNSByb3VuZGVkIGJnLWdyYXktMTAwIHRleHQtYmxhY2sgbWItNlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtM1wiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmNvbnRhY3Q8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvbj8ubG9nb1VybD8uaHJlZlwiXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci1zb2xpZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgYmctd2hpdGUgaC0zMiBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsXCJcbiAgICAgICAgW3RodW1ibmFpbFVybF09XCJzaG93bk9yZ2FuaXphdGlvbi5sb2dvVXJsLmhyZWZcIlxuICAgICAgICBmaXQ9XCJjb250YWluXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtdGl0bGUgdGV4dC0yMSBtci0yIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uT3JnYW5pemF0aW9uQ2xpY2soKVwiXG4gICAgICAgICAgZGF0YS1jeT1cIm9yZ2FuaXphdGlvbi1uYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNob3duT3JnYW5pemF0aW9uPy5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd25Pcmdhbml6YXRpb24/LndlYnNpdGVcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJzaG93bk9yZ2FuaXphdGlvbi53ZWJzaXRlXCJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgIGNsYXNzPVwiY29udGFjdC13ZWJzaXRlIHRleHQtcHJpbWFyeSB0ZXh0LXNtIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgICAgPnt7IHNob3duT3JnYW5pemF0aW9uLndlYnNpdGUgfX1cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy1bMTJweF0gIWgtWzEycHhdICF0ZXh0LVsxMnB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGdhcC01IHB5LTMgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LnBob25lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5jYWxsX291dGxpbmU8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPnt7IGNvbnRhY3RzWzBdLnBob25lIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5lbWFpbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgbWFpbF9vdXRsaW5lPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKm5nSWY9XCJjb250YWN0cy5sZW5ndGhcIlxuICAgICAgICAgICAgW2hyZWZdPVwiJ21haWx0bzonICsgY29udGFjdHNbMF0uZW1haWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGhvdmVyOnVuZGVybGluZSBtbC0yXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICBkYXRhLWN5PVwiY29udGFjdC1lbWFpbFwiXG4gICAgICAgICAgICA+e3sgY29udGFjdHNbMF0uZW1haWwgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmZpcnN0TmFtZSB8fCBjb250YWN0c1swXT8ubGFzdE5hbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgPnBlcnNvbl9vdXRsaW5lPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgICAgICAge3sgY29udGFjdHNbMF0/LmZpcnN0TmFtZSB8fCAnJyB9fVxuICAgICAgICAgICAgICB7eyBjb250YWN0c1swXT8ubGFzdE5hbWUgfHwgJycgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8uYWRkcmVzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgbG9jYXRpb25fb248L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBhZGRyZXNzUGFydCBvZiBhZGRyZXNzXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIHt7IGFkZHJlc3NQYXJ0IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7OztBQWF0QixNQUFNLE9BQU8sd0JBQXdCO0lBTnJDO1FBUVksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUE7UUFDcEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFBO0tBd0J4RDtJQXRCQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0IsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7OEdBMUJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1MQ25CckMsNjJHQWtHQTs7MkZEL0VhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY29udGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuICBAT3V0cHV0KCkgb3JnYW5pemF0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE9yZ2FuaXphdGlvbj4oKVxuICBAT3V0cHV0KCkgY29udGFjdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsPigpXG5cbiAgZ2V0IHNob3duT3JnYW5pemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uXG4gIH1cblxuICBnZXQgY29udGFjdHMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLm1ldGFkYXRhLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMubWV0YWRhdGEuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMubWV0YWRhdGEuY29udGFjdHMpIHx8IFtdXG4gICAgKVxuICB9XG5cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgY29uc3QgYWRkcmVzc1BhcnRzID0gdGhpcy5jb250YWN0c1swXS5hZGRyZXNzXG4gICAgICAuc3BsaXQoJywnKVxuICAgICAgLm1hcCgocGFydCkgPT4gcGFydC50cmltKCkpXG4gICAgcmV0dXJuIGFkZHJlc3NQYXJ0c1xuICB9XG5cbiAgb25Pcmdhbml6YXRpb25DbGljaygpIHtcbiAgICB0aGlzLm9yZ2FuaXphdGlvbkNsaWNrLmVtaXQodGhpcy5zaG93bk9yZ2FuaXphdGlvbilcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTUgcHgtNSByb3VuZGVkIGJnLWdyYXktMTAwIHRleHQtYmxhY2sgbWItNlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5jb250YWN0PC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic2hvd25Pcmdhbml6YXRpb24/LmxvZ29Vcmw/LmhyZWZcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBib3JkZXItc29saWQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIGJnLXdoaXRlIGgtMzIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGh1bWJuYWlsXG4gICAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIHctZnVsbFwiXG4gICAgICAgIFt0aHVtYm5haWxVcmxdPVwic2hvd25Pcmdhbml6YXRpb24ubG9nb1VybC5ocmVmXCJcbiAgICAgICAgZml0PVwiY29udGFpblwiXG4gICAgICA+PC9nbi11aS10aHVtYm5haWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LXRpdGxlIHRleHQtMjEgbXItMiBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmVcIlxuICAgICAgICAgIChjbGljayk9XCJvbk9yZ2FuaXphdGlvbkNsaWNrKClcIlxuICAgICAgICAgIGRhdGEtY3k9XCJvcmdhbml6YXRpb24tbmFtZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzaG93bk9yZ2FuaXphdGlvbj8ubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3duT3JnYW5pemF0aW9uPy53ZWJzaXRlXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgW2hyZWZdPVwic2hvd25Pcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImNvbnRhY3Qtd2Vic2l0ZSB0ZXh0LXByaW1hcnkgdGV4dC1zbSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmUgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgID57eyBzaG93bk9yZ2FuaXphdGlvbi53ZWJzaXRlIH19XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctWzEycHhdICFoLVsxMnB4XSAhdGV4dC1bMTJweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+b3Blbl9pbl9uZXc8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtNSBweS0zIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5waG9uZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+Y2FsbF9vdXRsaW5lPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIj57eyBjb250YWN0c1swXS5waG9uZSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8uZW1haWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIG1haWxfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIGNvbnRhY3RzWzBdLmVtYWlsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBob3Zlcjp1bmRlcmxpbmUgbWwtMlwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgPnt7IGNvbnRhY3RzWzBdLmVtYWlsIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgY29udGFjdHNbMF0/Lmxhc3ROYW1lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5wZXJzb25fb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMlwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgJycgfX1cbiAgICAgICAgICAgICAge3sgY29udGFjdHNbMF0/Lmxhc3ROYW1lIHx8ICcnIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmFkZHJlc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGxvY2F0aW9uX29uPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCAqbmdGb3I9XCJsZXQgYWRkcmVzc1BhcnQgb2YgYWRkcmVzc1wiIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICB7eyBhZGRyZXNzUGFydCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { getTemporalRangeUnion } from '../../../../../../libs/util/shared/src';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
5
  import * as i2 from "@angular/material/icon";
@@ -8,8 +9,9 @@ import * as i5 from "@ngx-translate/core";
8
9
  import * as i6 from "../../../../inputs/src/lib/copy-text-button/copy-text-button.component";
9
10
  import * as i7 from "../markdown-parser/markdown-parser.component";
10
11
  import * as i8 from "../content-ghost/content-ghost.component";
11
- import * as i9 from "./linkify.directive";
12
- import * as i10 from "../max-lines/max-lines.component";
12
+ import * as i9 from "../thumbnail/thumbnail.component";
13
+ import * as i10 from "./linkify.directive";
14
+ import * as i11 from "../max-lines/max-lines.component";
13
15
  export class MetadataInfoComponent {
14
16
  constructor() {
15
17
  this.keyword = new EventEmitter();
@@ -57,6 +59,16 @@ export class MetadataInfoComponent {
57
59
  return undefined;
58
60
  }
59
61
  }
62
+ get temporalExtent() {
63
+ const temporalExtents = this.metadata.temporalExtents;
64
+ return getTemporalRangeUnion(temporalExtents);
65
+ }
66
+ get shownOrganization() {
67
+ return this.metadata.ownerOrganization;
68
+ }
69
+ get resourceContact() {
70
+ return this.metadata.contactsForResource?.[0];
71
+ }
60
72
  fieldReady(propName) {
61
73
  return !this.incomplete || propName in this.metadata;
62
74
  }
@@ -64,11 +76,11 @@ export class MetadataInfoComponent {
64
76
  this.keyword.emit(keyword);
65
77
  }
66
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words text-gray-900\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.themes?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.themes</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 lowercase\"\n *ngFor=\"let theme of metadata.themes\"\n >{{ theme }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: i4.ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: i7.MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: i8.ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: i9.GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: i10.MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div\n *ngIf=\"metadata.lineage\"\n class=\"text-gray-900 flex flex-col mb-5 pt-4 gap-2\"\n >\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: i4.ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: i7.MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: i8.ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "component", type: i9.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "directive", type: i10.GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: i11.MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
80
  }
69
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, decorators: [{
70
82
  type: Component,
71
- args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words text-gray-900\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.themes?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.themes</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 lowercase\"\n *ngFor=\"let theme of metadata.themes\"\n >{{ theme }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"] }]
83
+ args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div\n *ngIf=\"metadata.lineage\"\n class=\"text-gray-900 flex flex-col mb-5 pt-4 gap-2\"\n >\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"] }]
72
84
  }], propDecorators: { metadata: [{
73
85
  type: Input
74
86
  }], incomplete: [{
@@ -76,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
76
88
  }], keyword: [{
77
89
  type: Output
78
90
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1pbmZvL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7Ozs7OztBQVN0QixNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU1ksWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7S0FnRS9DO0lBN0RDLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUssSUFBSTtZQUN6QyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUNqRSxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUU7WUFDMUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3hFLENBQUE7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUU7WUFDMUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3hFLENBQUE7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO1lBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7aUJBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztpQkFDckIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQzlDLENBQUE7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxZQUFZLE1BQU0sRUFBRTtZQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQTtZQUM5RCxPQUFPLGlDQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUM1RTthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDNUQsT0FBTyxpQ0FBaUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtTQUN4RTthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUE7U0FDakI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM1QixDQUFDOzhHQWxFVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix3SkNmbEMsdXJMQWtLQTs7MkZEbkphLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEYXRhc2V0UmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSW5mb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPERhdGFzZXRSZWNvcmQ+XG4gIEBJbnB1dCgpIGluY29tcGxldGU6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGtleXdvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICB1cGRhdGVkVGltZXM6IG51bWJlclxuXG4gIGdldCBoYXNVc2FnZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tZXRhZGF0YS5leHRyYXM/LmlzT3BlbkRhdGEgPT09IHRydWUgfHxcbiAgICAgICh0aGlzLm1ldGFkYXRhLmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgdGhpcy5sZWdhbENvbnN0cmFpbnRzLmxlbmd0aCA+IDApIHx8XG4gICAgICAodGhpcy5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzPy5sZW5ndGggPiAwICYmXG4gICAgICAgIHRoaXMub3RoZXJDb25zdHJhaW50cy5sZW5ndGggPiAwKSB8fFxuICAgICAgKHRoaXMubWV0YWRhdGEubGljZW5zZXM/Lmxlbmd0aCA+IDAgJiYgdGhpcy5saWNlbnNlcy5sZW5ndGggPiAwKVxuICAgIClcbiAgfVxuXG4gIGdldCBsZWdhbENvbnN0cmFpbnRzKCkge1xuICAgIGxldCBhcnJheSA9IFtdXG4gICAgaWYgKHRoaXMubWV0YWRhdGEubGVnYWxDb25zdHJhaW50cz8ubGVuZ3RoKSB7XG4gICAgICBhcnJheSA9IGFycmF5LmNvbmNhdChcbiAgICAgICAgdGhpcy5tZXRhZGF0YS5sZWdhbENvbnN0cmFpbnRzLmZpbHRlcigoYykgPT4gYy50ZXh0KS5tYXAoKGMpID0+IGMudGV4dClcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5XG4gIH1cblxuICBnZXQgb3RoZXJDb25zdHJhaW50cygpIHtcbiAgICBsZXQgYXJyYXkgPSBbXVxuICAgIGlmICh0aGlzLm1ldGFkYXRhLm90aGVyQ29uc3RyYWludHM/Lmxlbmd0aCkge1xuICAgICAgYXJyYXkgPSBhcnJheS5jb25jYXQoXG4gICAgICAgIHRoaXMubWV0YWRhdGEub3RoZXJDb25zdHJhaW50cy5maWx0ZXIoKGMpID0+IGMudGV4dCkubWFwKChjKSA9PiBjLnRleHQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhcnJheVxuICB9XG5cbiAgZ2V0IGxpY2Vuc2VzKCk6IHsgdGV4dDogc3RyaW5nOyB1cmw6IHN0cmluZyB9W10ge1xuICAgIGxldCBhcnJheSA9IFtdXG4gICAgaWYgKHRoaXMubWV0YWRhdGEubGljZW5zZXM/Lmxlbmd0aCkge1xuICAgICAgYXJyYXkgPSBhcnJheS5jb25jYXQoXG4gICAgICAgIHRoaXMubWV0YWRhdGEubGljZW5zZXNcbiAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjLnRleHQpXG4gICAgICAgICAgLm1hcCgoYykgPT4gKHsgdGV4dDogYy50ZXh0LCB1cmw6IGMudXJsIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlcbiAgfVxuXG4gIGdldCB1cGRhdGVGcmVxdWVuY3koKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIHRoaXMudXBkYXRlZFRpbWVzID0gdGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kudXBkYXRlZFRpbWVzXG4gICAgICByZXR1cm4gYGRvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LiR7dGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kucGVyfWBcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLm1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBgZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuJHt0aGlzLm1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeX1gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBmaWVsZFJlYWR5KHByb3BOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gIXRoaXMuaW5jb21wbGV0ZSB8fCBwcm9wTmFtZSBpbiB0aGlzLm1ldGFkYXRhXG4gIH1cblxuICBvbktleXdvcmRDbGljayhrZXl3b3JkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmtleXdvcmQuZW1pdChrZXl3b3JkKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWItNiBtZC1kZXNjcmlwdGlvbiBzbTptYi00IHNtOnByLTE2XCI+XG4gIDxnbi11aS1jb250ZW50LWdob3N0IGdob3N0Q2xhc3M9XCJoLTMyXCIgW3Nob3dDb250ZW50XT1cImZpZWxkUmVhZHkoJ2Fic3RyYWN0JylcIj5cbiAgICA8Z24tdWktbWF4LWxpbmVzIFttYXhMaW5lc109XCI2XCIgKm5nSWY9XCJtZXRhZGF0YS5hYnN0cmFjdFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJtZXRhZGF0YS5hYnN0cmFjdFwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktbWF4LWxpbmVzPlxuICA8L2duLXVpLWNvbnRlbnQtZ2hvc3Q+XG48L2Rpdj5cblxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWwgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEudXNhZ2UnIHwgdHJhbnNsYXRlXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC1bMTBweF0gbXItNCBweS1bMTJweF0gcm91bmRlZCB0ZXh0LWdyYXktOTAwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGljZW5zZSBvZiBsaWNlbnNlc1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImxpY2Vuc2UudXJsOyBlbHNlIG5vVXJsXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJsaWNlbnNlLnVybFwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsaWNlbnNlLnRleHQgfX1cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy1bMTJweF0gIWgtWzEycHhdICF0ZXh0LVsxMnB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNub1VybD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiIGduVWlMaW5raWZ5PlxuICAgICAgICAgIHt7IGxpY2Vuc2UudGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2FsQ29uc3RyYWludHMubGVuZ3RoXCI+XG4gICAgICA8Z24tdWktbWFya2Rvd24tcGFyc2VyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb25zdHJhaW50IG9mIGxlZ2FsQ29uc3RyYWludHNcIlxuICAgICAgICBbdGV4dENvbnRlbnRdPVwiY29uc3RyYWludFwiXG4gICAgICA+XG4gICAgICA8L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJDb25zdHJhaW50cy5sZW5ndGhcIj5cbiAgICAgIDxkaXYgZ25VaUxpbmtpZnkgKm5nRm9yPVwibGV0IGNvbnN0cmFpbnQgb2Ygb3RoZXJDb25zdHJhaW50c1wiPlxuICAgICAgICA8aDUgdHJhbnNsYXRlIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1ibGFjayB0ZXh0LXNtIG1iLVsycHhdIG10LVsxNnB4XVwiPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzXG4gICAgICAgIDwvaDU+XG4gICAgICAgIDxnbi11aS1tYXJrZG93bi1wYXJzZXIgW3RleHRDb250ZW50XT1cImNvbnN0cmFpbnRcIj5cbiAgICAgICAgPC9nbi11aS1tYXJrZG93bi1wYXJzZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxzcGFuIGNsYXNzPVwibm9Vc2FnZVwiICpuZ0lmPVwiIWhhc1VzYWdlXCI+XG4gICAgICB7eyAncmVjb3JkLm1ldGFkYXRhLm5vVXNhZ2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsXG4gIGNsYXNzPVwibWV0YWRhdGEtb3JpZ2luXCJcbiAgKm5nSWY9XCJcbiAgICBtZXRhZGF0YS5saW5lYWdlIHx8XG4gICAgbWV0YWRhdGEucmVjb3JkVXBkYXRlZCB8fFxuICAgIG1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeSB8fFxuICAgIG1ldGFkYXRhLnN0YXR1c1xuICBcIlxuICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5vcmlnaW4nIHwgdHJhbnNsYXRlXCJcbj5cbiAgPHBcbiAgICAqbmdJZj1cIm1ldGFkYXRhLmxpbmVhZ2VcIlxuICAgIGNsYXNzPVwibWItNSBwdC00IHdoaXRlc3BhY2UtcHJlLWxpbmUgYnJlYWstd29yZHMgdGV4dC1ncmF5LTkwMFwiXG4gICAgZ25VaUxpbmtpZnlcbiAgPlxuICAgIHt7IG1ldGFkYXRhLmxpbmVhZ2UgfX1cbiAgPC9wPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJweS00IHB4LTYgcm91bmRlZCBiZy1ncmF5LTEwMCBncmlkIGdyaWQtY29scy0yIGdhcC15LVsxMHB4XSBnYXAteC1bMjBweF0gdGV4dC1ncmF5LTcwMCBpbmZvLWdyaWRcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnJlY29yZFVwZGF0ZWRcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlZE9uPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbXQtMVwiPlxuICAgICAgICB7eyBtZXRhZGF0YS5yZWNvcmRVcGRhdGVkICYmIG1ldGFkYXRhLnJlY29yZFVwZGF0ZWQudG9Mb2NhbGVTdHJpbmcoKSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ1cGRhdGVGcmVxdWVuY3lcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5PC9wPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbXQtMSB1cGRhdGVGcmVxdWVuY3lcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7IGNvdW50OiB1cGRhdGVkVGltZXMgfVwiXG4gICAgICA+XG4gICAgICAgIHt7IHVwZGF0ZUZyZXF1ZW5jeSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5zdGF0dXNcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlU3RhdHVzPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbXQtMVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgZG9tYWluLnJlY29yZC5zdGF0dXMue3sgbWV0YWRhdGEuc3RhdHVzIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9nbi11aS1leHBhbmRhYmxlLXBhbmVsPlxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWxcbiAgKm5nSWY9XCJtZXRhZGF0YS5sYW5kaW5nUGFnZVwiXG4gIFt0aXRsZV09XCIncmVjb3JkLm1ldGFkYXRhLmRldGFpbHMnIHwgdHJhbnNsYXRlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTQgbXItNCBweS01IHJvdW5kZWQgdGV4dC1ncmF5LTcwMFwiPlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5yZWNvcmRVcGRhdGVkXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZWRPbjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IG1ldGFkYXRhLnJlY29yZFVwZGF0ZWQgJiYgbWV0YWRhdGEucmVjb3JkVXBkYXRlZC50b0xvY2FsZVN0cmluZygpIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLmxhbmRpbmdQYWdlXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnNoZWV0PC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+XG4gICAgICAgIDxhIFtocmVmXT1cIm1ldGFkYXRhLmxhbmRpbmdQYWdlXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJicmVhay1hbGxcIiBnblVpTGlua2lmeT57eyBtZXRhZGF0YS5sYW5kaW5nUGFnZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5vd25lck9yZ2FuaXphdGlvblwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5vd25lcjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IG1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uLm5hbWUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEudW5pcXVlSWRlbnRpZmllclwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS51bmlxdWVJZDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbnRlbnQtYWxpZ24gaXRlbXMtZW5kIGdhcC0xXCI+XG4gICAgICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICAgICAgW3RleHRdPVwibWV0YWRhdGEudW5pcXVlSWRlbnRpZmllclwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIid0b29sdGlwLmlkLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbZGlzcGxheVRleHRdPVwiZmFsc2VcIlxuICAgICAgICA+PC9nbi11aS1jb3B5LXRleHQtYnV0dG9uPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgIHt7IG1ldGFkYXRhLnVuaXF1ZUlkZW50aWZpZXIgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnRoZW1lcz8ubGVuZ3RoXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gbWItMVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudGhlbWVzPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInNtOnBiLTQgc206cHItMTZcIj5cbiAgICAgICAgPGduLXVpLWJhZGdlXG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgbXItMiBsb3dlcmNhc2VcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0aGVtZSBvZiBtZXRhZGF0YS50aGVtZXNcIlxuICAgICAgICAgID57eyB0aGVtZSB9fTwvZ24tdWktYmFkZ2VcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLmtleXdvcmRzPy5sZW5ndGhcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBtYi0xXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5rZXl3b3JkczwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbTpwYi00IHNtOnByLTE2XCI+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIG1yLTIgbWItMiBsb3dlcmNhc2VcIlxuICAgICAgICAgIChjbGljayk9XCJvbktleXdvcmRDbGljayhrZXl3b3JkKVwiXG4gICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5d29yZCBvZiBtZXRhZGF0YS5rZXl3b3Jkc1wiXG4gICAgICAgICAgPnt7IGtleXdvcmQgfX08L2duLXVpLWJhZGdlXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1pbmZvL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFLdEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFROUUsTUFBTSxPQUFPLHFCQUFxQjtJQU5sQztRQVNZLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBNkVoRDtJQTFFQyxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLLElBQUk7WUFDekMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sR0FBRyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDakUsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFO1lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFO1lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtZQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2lCQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ3JCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM5QyxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsWUFBWSxNQUFNLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUE7WUFDOUQsT0FBTyxpQ0FBaUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUE7U0FDNUU7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFO1lBQzVELE9BQU8saUNBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUE7U0FDeEU7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFBO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQTtRQUNyRCxPQUFPLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZ0I7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUIsQ0FBQzs4R0EvRVUscUJBQXFCO2tHQUFyQixxQkFBcUIsd0pDbkJsQyxnOFJBNlBBOzsyRkQxT2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIERhdGFzZXRSZWNvcmQsXG4gIEtleXdvcmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldFRlbXBvcmFsUmFuZ2VVbmlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSW5mb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPERhdGFzZXRSZWNvcmQ+XG4gIEBJbnB1dCgpIGluY29tcGxldGU6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGtleXdvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleXdvcmQ+KClcbiAgdXBkYXRlZFRpbWVzOiBudW1iZXJcblxuICBnZXQgaGFzVXNhZ2UoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubWV0YWRhdGEuZXh0cmFzPy5pc09wZW5EYXRhID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5tZXRhZGF0YS5sZWdhbENvbnN0cmFpbnRzPy5sZW5ndGggPiAwICYmXG4gICAgICAgIHRoaXMubGVnYWxDb25zdHJhaW50cy5sZW5ndGggPiAwKSB8fFxuICAgICAgKHRoaXMubWV0YWRhdGEub3RoZXJDb25zdHJhaW50cz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICB0aGlzLm90aGVyQ29uc3RyYWludHMubGVuZ3RoID4gMCkgfHxcbiAgICAgICh0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzPy5sZW5ndGggPiAwICYmIHRoaXMubGljZW5zZXMubGVuZ3RoID4gMClcbiAgICApXG4gIH1cblxuICBnZXQgbGVnYWxDb25zdHJhaW50cygpIHtcbiAgICBsZXQgYXJyYXkgPSBbXVxuICAgIGlmICh0aGlzLm1ldGFkYXRhLmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCkge1xuICAgICAgYXJyYXkgPSBhcnJheS5jb25jYXQoXG4gICAgICAgIHRoaXMubWV0YWRhdGEubGVnYWxDb25zdHJhaW50cy5maWx0ZXIoKGMpID0+IGMudGV4dCkubWFwKChjKSA9PiBjLnRleHQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhcnJheVxuICB9XG5cbiAgZ2V0IG90aGVyQ29uc3RyYWludHMoKSB7XG4gICAgbGV0IGFycmF5ID0gW11cbiAgICBpZiAodGhpcy5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzPy5sZW5ndGgpIHtcbiAgICAgIGFycmF5ID0gYXJyYXkuY29uY2F0KFxuICAgICAgICB0aGlzLm1ldGFkYXRhLm90aGVyQ29uc3RyYWludHMuZmlsdGVyKChjKSA9PiBjLnRleHQpLm1hcCgoYykgPT4gYy50ZXh0KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlcbiAgfVxuXG4gIGdldCBsaWNlbnNlcygpOiB7IHRleHQ6IHN0cmluZzsgdXJsOiBzdHJpbmcgfVtdIHtcbiAgICBsZXQgYXJyYXkgPSBbXVxuICAgIGlmICh0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzPy5sZW5ndGgpIHtcbiAgICAgIGFycmF5ID0gYXJyYXkuY29uY2F0KFxuICAgICAgICB0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzXG4gICAgICAgICAgLmZpbHRlcigoYykgPT4gYy50ZXh0KVxuICAgICAgICAgIC5tYXAoKGMpID0+ICh7IHRleHQ6IGMudGV4dCwgdXJsOiBjLnVybCB9KSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5XG4gIH1cblxuICBnZXQgdXBkYXRlRnJlcXVlbmN5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICB0aGlzLnVwZGF0ZWRUaW1lcyA9IHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnVwZGF0ZWRUaW1lc1xuICAgICAgcmV0dXJuIGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3RoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnBlcn1gXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYGRvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LiR7dGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3l9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgZ2V0IHRlbXBvcmFsRXh0ZW50KCk6IHsgc3RhcnQ6IHN0cmluZzsgZW5kOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgdGVtcG9yYWxFeHRlbnRzID0gdGhpcy5tZXRhZGF0YS50ZW1wb3JhbEV4dGVudHNcbiAgICByZXR1cm4gZ2V0VGVtcG9yYWxSYW5nZVVuaW9uKHRlbXBvcmFsRXh0ZW50cylcbiAgfVxuXG4gIGdldCBzaG93bk9yZ2FuaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YS5vd25lck9yZ2FuaXphdGlvblxuICB9XG5cbiAgZ2V0IHJlc291cmNlQ29udGFjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YS5jb250YWN0c0ZvclJlc291cmNlPy5bMF1cbiAgfVxuXG4gIGZpZWxkUmVhZHkocHJvcE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAhdGhpcy5pbmNvbXBsZXRlIHx8IHByb3BOYW1lIGluIHRoaXMubWV0YWRhdGFcbiAgfVxuXG4gIG9uS2V5d29yZENsaWNrKGtleXdvcmQ6IEtleXdvcmQpIHtcbiAgICB0aGlzLmtleXdvcmQuZW1pdChrZXl3b3JkKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWItNiBtZC1kZXNjcmlwdGlvbiBzbTptYi00IHNtOnByLTE2XCI+XG4gIDxnbi11aS1jb250ZW50LWdob3N0IGdob3N0Q2xhc3M9XCJoLTMyXCIgW3Nob3dDb250ZW50XT1cImZpZWxkUmVhZHkoJ2Fic3RyYWN0JylcIj5cbiAgICA8Z24tdWktbWF4LWxpbmVzIFttYXhMaW5lc109XCI2XCIgKm5nSWY9XCJtZXRhZGF0YS5hYnN0cmFjdFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJtZXRhZGF0YS5hYnN0cmFjdFwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktbWF4LWxpbmVzPlxuICA8L2duLXVpLWNvbnRlbnQtZ2hvc3Q+XG48L2Rpdj5cblxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWwgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEudXNhZ2UnIHwgdHJhbnNsYXRlXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC1bMTBweF0gbXItNCBweS1bMTJweF0gcm91bmRlZCB0ZXh0LWdyYXktOTAwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGljZW5zZSBvZiBsaWNlbnNlc1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImxpY2Vuc2UudXJsOyBlbHNlIG5vVXJsXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJsaWNlbnNlLnVybFwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsaWNlbnNlLnRleHQgfX1cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy1bMTJweF0gIWgtWzEycHhdICF0ZXh0LVsxMnB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNub1VybD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiIGduVWlMaW5raWZ5PlxuICAgICAgICAgIHt7IGxpY2Vuc2UudGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2FsQ29uc3RyYWludHMubGVuZ3RoXCI+XG4gICAgICA8Z24tdWktbWFya2Rvd24tcGFyc2VyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb25zdHJhaW50IG9mIGxlZ2FsQ29uc3RyYWludHNcIlxuICAgICAgICBbdGV4dENvbnRlbnRdPVwiY29uc3RyYWludFwiXG4gICAgICA+XG4gICAgICA8L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJDb25zdHJhaW50cy5sZW5ndGhcIj5cbiAgICAgIDxkaXYgZ25VaUxpbmtpZnkgKm5nRm9yPVwibGV0IGNvbnN0cmFpbnQgb2Ygb3RoZXJDb25zdHJhaW50c1wiPlxuICAgICAgICA8aDUgdHJhbnNsYXRlIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1ibGFjayB0ZXh0LXNtIG1iLVsycHhdIG10LVsxNnB4XVwiPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzXG4gICAgICAgIDwvaDU+XG4gICAgICAgIDxnbi11aS1tYXJrZG93bi1wYXJzZXIgW3RleHRDb250ZW50XT1cImNvbnN0cmFpbnRcIj5cbiAgICAgICAgPC9nbi11aS1tYXJrZG93bi1wYXJzZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxzcGFuIGNsYXNzPVwibm9Vc2FnZVwiICpuZ0lmPVwiIWhhc1VzYWdlXCI+XG4gICAgICB7eyAncmVjb3JkLm1ldGFkYXRhLm5vVXNhZ2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsXG4gICpuZ0lmPVwiXG4gICAgbWV0YWRhdGEubGluZWFnZSB8fFxuICAgIG1ldGFkYXRhLnJlY29yZFVwZGF0ZWQgfHxcbiAgICBtZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgfHxcbiAgICBtZXRhZGF0YS5zdGF0dXNcbiAgXCJcbiAgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuZGV0YWlscycgfCB0cmFuc2xhdGVcIlxuPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJtZXRhZGF0YS5saW5lYWdlXCJcbiAgICBjbGFzcz1cInRleHQtZ3JheS05MDAgZmxleCBmbGV4LWNvbCBtYi01IHB0LTQgZ2FwLTJcIlxuICA+XG4gICAgPHAgY2xhc3M9XCJ3aGl0ZXNwYWNlLXByZS1saW5lIGJyZWFrLXdvcmRzIHRleHQtZ3JheS05MDBcIiBnblVpTGlua2lmeT5cbiAgICAgIHt7IG1ldGFkYXRhLmxpbmVhZ2UgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtNiBtYi04XCIgKm5nSWY9XCJyZXNvdXJjZUNvbnRhY3RcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInJlc291cmNlQ29udGFjdC5vcmdhbml6YXRpb24/LmxvZ29Vcmw/LmhyZWZcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBib3JkZXItc29saWQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIGJnLXdoaXRlIGgtMzIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGh1bWJuYWlsXG4gICAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIHctZnVsbFwiXG4gICAgICAgIFt0aHVtYm5haWxVcmxdPVwicmVzb3VyY2VDb250YWN0Lm9yZ2FuaXphdGlvbi5sb2dvVXJsLmhyZWZcIlxuICAgICAgICBmaXQ9XCJjb250YWluXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5wcm9kdWNlcjwvcD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC10aXRsZSB0ZXh0LTIxIG1yLTIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgZGF0YS1jeT1cIm9yZ2FuaXphdGlvbi1uYW1lXCJcbiAgICAgID5cbiAgICAgICAge3sgcmVzb3VyY2VDb250YWN0Lm9yZ2FuaXphdGlvbj8ubmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwicmVzb3VyY2VDb250YWN0Lm9yZ2FuaXphdGlvbj8ud2Vic2l0ZVwiPlxuICAgICAgICA8YVxuICAgICAgICAgIFtocmVmXT1cInJlc291cmNlQ29udGFjdC5vcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImNvbnRhY3Qtd2Vic2l0ZSB0ZXh0LXByaW1hcnkgdGV4dC1zbSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmUgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgID57eyByZXNvdXJjZUNvbnRhY3Qub3JnYW5pemF0aW9uLndlYnNpdGUgfX1cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy1bMTJweF0gIWgtWzEycHhdICF0ZXh0LVsxMnB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIiAqbmdJZj1cInJlc291cmNlQ29udGFjdC5lbWFpbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgbWFpbF9vdXRsaW5lPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKm5nSWY9XCJyZXNvdXJjZUNvbnRhY3QuZW1haWxcIlxuICAgICAgICAgICAgW2hyZWZdPVwiJ21haWx0bzonICsgcmVzb3VyY2VDb250YWN0LmVtYWlsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBob3Zlcjp1bmRlcmxpbmUgbWwtMlwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgPnt7IHJlc291cmNlQ29udGFjdD8uZW1haWwgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJweS02IHB4LTYgcm91bmRlZCBiZy1ncmF5LTEwMCBncmlkIGdyaWQtY29scy0yIGdhcC15LTYgZ2FwLXgtWzIwcHhdIHRleHQtZ3JheS03MDBcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnJlY29yZENyZWF0ZWRcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuY3JlYXRpb248L3A+XG4gICAgICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bSBtdC0xXCI+XG4gICAgICAgIHt7IG1ldGFkYXRhLnJlY29yZENyZWF0ZWQudG9Mb2NhbGVEYXRlU3RyaW5nKCkgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEucmVjb3JkUHVibGlzaGVkXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnB1YmxpY2F0aW9uPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbXQtMVwiPlxuICAgICAgICB7eyBtZXRhZGF0YS5yZWNvcmRQdWJsaXNoZWQudG9Mb2NhbGVEYXRlU3RyaW5nKCkgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidXBkYXRlRnJlcXVlbmN5XCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeTwvcD5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTEgdXBkYXRlRnJlcXVlbmN5XCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBjb3VudDogdXBkYXRlZFRpbWVzIH1cIlxuICAgICAgPlxuICAgICAgICB7eyB1cGRhdGVGcmVxdWVuY3kgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEubGFuZ3VhZ2VzXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gbWItMVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEubGFuZ3VhZ2VzPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTEgZmxleC13cmFwXCI+XG4gICAgICAgIDxwXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsYW5ndWFnZSBvZiBtZXRhZGF0YS5sYW5ndWFnZXNcIlxuICAgICAgICA+XG4gICAgICAgICAgbGFuZ3VhZ2Uue3sgbGFuZ3VhZ2UgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBvcmFsRXh0ZW50XCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnRlbXBvcmFsRXh0ZW50PC9wPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTEgbWItMSB0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cInRlbXBvcmFsRXh0ZW50LnN0YXJ0ICYmIHRlbXBvcmFsRXh0ZW50LmVuZFwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7XG4gICAgICAgICAgICBzdGFydDogdGVtcG9yYWxFeHRlbnQuc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IHRlbXBvcmFsRXh0ZW50LmVuZFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLnRlbXBvcmFsRXh0ZW50LmZyb21EYXRlVG9EYXRlXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cInRlbXBvcmFsRXh0ZW50LnN0YXJ0ICYmICF0ZW1wb3JhbEV4dGVudC5lbmRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBzdGFydDogdGVtcG9yYWxFeHRlbnQuc3RhcnQgfVwiXG4gICAgICAgID5cbiAgICAgICAgICByZWNvcmQubWV0YWRhdGEudGVtcG9yYWxFeHRlbnQuc2luY2VEYXRlXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cIiF0ZW1wb3JhbEV4dGVudC5zdGFydCAmJiB0ZW1wb3JhbEV4dGVudC5lbmRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBlbmQ6IHRlbXBvcmFsRXh0ZW50LmVuZCB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS50ZW1wb3JhbEV4dGVudC51bnRpbERhdGVcbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9nbi11aS1leHBhbmRhYmxlLXBhbmVsPlxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWxcbiAgKm5nSWY9XCJtZXRhZGF0YS5sYW5kaW5nUGFnZVwiXG4gIFt0aXRsZV09XCIncmVjb3JkLm1ldGFkYXRhLnRlY2huaWNhbCcgfCB0cmFuc2xhdGVcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBtci00IHB5LTUgcm91bmRlZCB0ZXh0LWdyYXktNzAwXCI+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnJlY29yZFVwZGF0ZWRcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlZE9uPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIj5cbiAgICAgICAge3sgbWV0YWRhdGEucmVjb3JkVXBkYXRlZCAmJiBtZXRhZGF0YS5yZWNvcmRVcGRhdGVkLnRvTG9jYWxlU3RyaW5nKCkgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEubGFuZGluZ1BhZ2VcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuc2hlZXQ8L3A+XG4gICAgICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgPGEgW2hyZWZdPVwibWV0YWRhdGEubGFuZGluZ1BhZ2VcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJyZWFrLWFsbFwiIGduVWlMaW5raWZ5Pnt7IG1ldGFkYXRhLmxhbmRpbmdQYWdlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLm93bmVyPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIj5cbiAgICAgICAge3sgbWV0YWRhdGEub3duZXJPcmdhbml6YXRpb24ubmFtZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS51bmlxdWVJZGVudGlmaWVyXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVuaXF1ZUlkPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgY29udGVudC1hbGlnbiBpdGVtcy1lbmQgZ2FwLTFcIj5cbiAgICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJtZXRhZGF0YS51bmlxdWVJZGVudGlmaWVyXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ3Rvb2x0aXAuaWQuY29weScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtkaXNwbGF5VGV4dF09XCJmYWxzZVwiXG4gICAgICAgID48L2duLXVpLWNvcHktdGV4dC1idXR0b24+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgICAge3sgbWV0YWRhdGEudW5pcXVlSWRlbnRpZmllciB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEudG9waWNzPy5sZW5ndGhcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBtYi0xXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50b3BpY3M8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwic206cGItNCBzbTpwci0xNlwiPlxuICAgICAgICA8Z24tdWktYmFkZ2VcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBtci0yIG1iLTIgbG93ZXJjYXNlXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdG9waWMgb2YgbWV0YWRhdGEudG9waWNzXCJcbiAgICAgICAgICA+e3sgdG9waWMgfX08L2duLXVpLWJhZGdlXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5rZXl3b3Jkcz8ubGVuZ3RoXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gbWItMVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEua2V5d29yZHM8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwic206cGItNCBzbTpwci0xNlwiPlxuICAgICAgICA8Z24tdWktYmFkZ2VcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBtci0yIG1iLTIgbG93ZXJjYXNlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25LZXl3b3JkQ2xpY2soa2V5d29yZClcIlxuICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGtleXdvcmQgb2YgbWV0YWRhdGEua2V5d29yZHNcIlxuICAgICAgICAgID57eyBrZXl3b3JkLmxhYmVsIH19PC9nbi11aS1iYWRnZVxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2duLXVpLWV4cGFuZGFibGUtcGFuZWw+XG4iXX0=
@@ -35,7 +35,7 @@ export class MetadataQualityComponent {
35
35
  this.items = [];
36
36
  this.add('title', !!this.metadata?.title);
37
37
  this.add('description', !!this.metadata?.abstract);
38
- this.add('topic', this.metadata?.themes?.length > 0);
38
+ this.add('topic', this.metadata?.topics?.length > 0);
39
39
  this.add('keywords', this.metadata?.keywords?.length > 0);
40
40
  this.add('legalConstraints', this.metadata?.legalConstraints?.length > 0);
41
41
  this.add('organisation', !!contact?.organization);
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
60
60
  }], metadataQualityDisplay: [{
61
61
  type: Input
62
62
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBOzs7Ozs7QUFVdEIsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQVFXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFHeEIsVUFBSyxHQUEwQixFQUFFLENBQUE7UUFFakMsZ0JBQVcsR0FBRyxLQUFLLENBQUE7S0ErQ3BCO0lBN0NDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQTtRQUN4RCxPQUFPLE9BQU8sWUFBWSxLQUFLLFFBQVE7WUFDckMsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDM0UsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRU8sR0FBRyxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3RDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7U0FDakM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7U0FDbEI7SUFDSCxDQUFDOzhHQXJEVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyTENoQnJDLDIxQkEyQkE7OzJGRFhhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlJdGVtIH0gZnJvbSAnLi4vbWV0YWRhdGEtcXVhbGl0eS1pdGVtL21ldGFkYXRhLXF1YWxpdHktaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1xdWFsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+XG4gIEBJbnB1dCgpIHNtYWxsZXIgPSBmYWxzZVxuICBASW5wdXQoKSBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5OiBib29sZWFuXG5cbiAgaXRlbXM6IE1ldGFkYXRhUXVhbGl0eUl0ZW1bXSA9IFtdXG5cbiAgaXNNZW51U2hvd24gPSBmYWxzZVxuXG4gIGdldCBxdWFsaXR5U2NvcmUoKSB7XG4gICAgY29uc3QgcXVhbGl0eVNjb3JlID0gdGhpcy5tZXRhZGF0YT8uZXh0cmFzPy5xdWFsaXR5U2NvcmVcbiAgICByZXR1cm4gdHlwZW9mIHF1YWxpdHlTY29yZSA9PT0gJ251bWJlcidcbiAgICAgID8gcXVhbGl0eVNjb3JlXG4gICAgICA6IHRoaXMuY2FsY3VsYXRlZFF1YWxpdHlTY29yZVxuICB9XG5cbiAgZ2V0IGNhbGN1bGF0ZWRRdWFsaXR5U2NvcmUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLml0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSkubGVuZ3RoICogMTAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgc2hvd01lbnUoKSB7XG4gICAgdGhpcy5pc01lbnVTaG93biA9IHRydWVcbiAgfVxuXG4gIGhpZGVNZW51KCkge1xuICAgIHRoaXMuaXNNZW51U2hvd24gPSBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBhZGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm1ldGFkYXRhUXVhbGl0eURpc3BsYXk/LltuYW1lXSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7IG5hbWUsIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBjb250YWN0ID0gdGhpcy5tZXRhZGF0YT8uY29udGFjdHM/LlswXVxuICAgIHRoaXMuaXRlbXMgPSBbXVxuICAgIHRoaXMuYWRkKCd0aXRsZScsICEhdGhpcy5tZXRhZGF0YT8udGl0bGUpXG4gICAgdGhpcy5hZGQoJ2Rlc2NyaXB0aW9uJywgISF0aGlzLm1ldGFkYXRhPy5hYnN0cmFjdClcbiAgICB0aGlzLmFkZCgndG9waWMnLCB0aGlzLm1ldGFkYXRhPy50aGVtZXM/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2tleXdvcmRzJywgdGhpcy5tZXRhZGF0YT8ua2V5d29yZHM/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2xlZ2FsQ29uc3RyYWludHMnLCB0aGlzLm1ldGFkYXRhPy5sZWdhbENvbnN0cmFpbnRzPy5sZW5ndGggPiAwKVxuICAgIHRoaXMuYWRkKCdvcmdhbmlzYXRpb24nLCAhIWNvbnRhY3Q/Lm9yZ2FuaXphdGlvbilcbiAgICB0aGlzLmFkZCgnY29udGFjdCcsICEhY29udGFjdD8uZW1haWwpXG4gICAgdGhpcy5hZGQoJ3VwZGF0ZUZyZXF1ZW5jeScsICEhdGhpcy5tZXRhZGF0YT8udXBkYXRlRnJlcXVlbmN5KVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtZXRhZGF0YSddIHx8IGNoYW5nZXNbJ21ldGFkYXRhUXVhbGl0eURpc3BsYXknXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCJcbiAgY2xhc3M9XCJtYi02IG1ldGFkYXRhLXF1YWxpdHlcIlxuICAobW91c2VlbnRlcik9XCJzaG93TWVudSgpXCJcbiAgKG1vdXNlbGVhdmUpPVwiaGlkZU1lbnUoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJtaW4tdy1bMjAwcHhdXCIgW2NsYXNzXT1cInNtYWxsZXIgPyAnbGVhZGluZy1bOHB4XScgOiAnJ1wiPlxuICAgIDxnbi11aS1wcm9ncmVzcy1iYXJcbiAgICAgIChmb2N1cyk9XCJzaG93TWVudSgpXCJcbiAgICAgIChibHVyKT1cImhpZGVNZW51KClcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFt2YWx1ZV09XCJxdWFsaXR5U2NvcmVcIlxuICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgID48L2duLXVpLXByb2dyZXNzLWJhcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIHotMTAgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFjayBib3JkZXItb3BhY2l0eS0zNSByb3VuZGVkLWxnIHNoYWRvdy1sZyBwLTUgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgIFtjbGFzc109XCJpc01lbnVTaG93biA/ICdibG9jaycgOiAnaGlkZGVuJ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBmb250LWJvbGRcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuZGV0YWlsczwvZGl2PlxuICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5LWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBlIG9mIGl0ZW1zXCJcbiAgICAgIFtuYW1lXT1cImUubmFtZVwiXG4gICAgICBbdmFsdWVdPVwiZS52YWx1ZVwiXG4gICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1xdWFsaXR5L21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBOzs7Ozs7QUFVdEIsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQVFXLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFHeEIsVUFBSyxHQUEwQixFQUFFLENBQUE7UUFFakMsZ0JBQVcsR0FBRyxLQUFLLENBQUE7S0ErQ3BCO0lBN0NDLElBQUksWUFBWTtRQUNkLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQTtRQUN4RCxPQUFPLE9BQU8sWUFBWSxLQUFLLFFBQVE7WUFDckMsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDM0UsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRU8sR0FBRyxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3RDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7U0FDakM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7U0FDbEI7SUFDSCxDQUFDOzhHQXJEVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyTENoQnJDLDIxQkEyQkE7OzJGRFhhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNZXRhZGF0YVF1YWxpdHlJdGVtIH0gZnJvbSAnLi4vbWV0YWRhdGEtcXVhbGl0eS1pdGVtL21ldGFkYXRhLXF1YWxpdHktaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1xdWFsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLXF1YWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhUXVhbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+XG4gIEBJbnB1dCgpIHNtYWxsZXIgPSBmYWxzZVxuICBASW5wdXQoKSBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5OiBib29sZWFuXG5cbiAgaXRlbXM6IE1ldGFkYXRhUXVhbGl0eUl0ZW1bXSA9IFtdXG5cbiAgaXNNZW51U2hvd24gPSBmYWxzZVxuXG4gIGdldCBxdWFsaXR5U2NvcmUoKSB7XG4gICAgY29uc3QgcXVhbGl0eVNjb3JlID0gdGhpcy5tZXRhZGF0YT8uZXh0cmFzPy5xdWFsaXR5U2NvcmVcbiAgICByZXR1cm4gdHlwZW9mIHF1YWxpdHlTY29yZSA9PT0gJ251bWJlcidcbiAgICAgID8gcXVhbGl0eVNjb3JlXG4gICAgICA6IHRoaXMuY2FsY3VsYXRlZFF1YWxpdHlTY29yZVxuICB9XG5cbiAgZ2V0IGNhbGN1bGF0ZWRRdWFsaXR5U2NvcmUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgICh0aGlzLml0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSkubGVuZ3RoICogMTAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgc2hvd01lbnUoKSB7XG4gICAgdGhpcy5pc01lbnVTaG93biA9IHRydWVcbiAgfVxuXG4gIGhpZGVNZW51KCkge1xuICAgIHRoaXMuaXNNZW51U2hvd24gPSBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBhZGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm1ldGFkYXRhUXVhbGl0eURpc3BsYXk/LltuYW1lXSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7IG5hbWUsIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBjb250YWN0ID0gdGhpcy5tZXRhZGF0YT8uY29udGFjdHM/LlswXVxuICAgIHRoaXMuaXRlbXMgPSBbXVxuICAgIHRoaXMuYWRkKCd0aXRsZScsICEhdGhpcy5tZXRhZGF0YT8udGl0bGUpXG4gICAgdGhpcy5hZGQoJ2Rlc2NyaXB0aW9uJywgISF0aGlzLm1ldGFkYXRhPy5hYnN0cmFjdClcbiAgICB0aGlzLmFkZCgndG9waWMnLCB0aGlzLm1ldGFkYXRhPy50b3BpY3M/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2tleXdvcmRzJywgdGhpcy5tZXRhZGF0YT8ua2V5d29yZHM/Lmxlbmd0aCA+IDApXG4gICAgdGhpcy5hZGQoJ2xlZ2FsQ29uc3RyYWludHMnLCB0aGlzLm1ldGFkYXRhPy5sZWdhbENvbnN0cmFpbnRzPy5sZW5ndGggPiAwKVxuICAgIHRoaXMuYWRkKCdvcmdhbmlzYXRpb24nLCAhIWNvbnRhY3Q/Lm9yZ2FuaXphdGlvbilcbiAgICB0aGlzLmFkZCgnY29udGFjdCcsICEhY29udGFjdD8uZW1haWwpXG4gICAgdGhpcy5hZGQoJ3VwZGF0ZUZyZXF1ZW5jeScsICEhdGhpcy5tZXRhZGF0YT8udXBkYXRlRnJlcXVlbmN5KVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtZXRhZGF0YSddIHx8IGNoYW5nZXNbJ21ldGFkYXRhUXVhbGl0eURpc3BsYXknXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJtZXRhZGF0YVF1YWxpdHlEaXNwbGF5XCJcbiAgY2xhc3M9XCJtYi02IG1ldGFkYXRhLXF1YWxpdHlcIlxuICAobW91c2VlbnRlcik9XCJzaG93TWVudSgpXCJcbiAgKG1vdXNlbGVhdmUpPVwiaGlkZU1lbnUoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJtaW4tdy1bMjAwcHhdXCIgW2NsYXNzXT1cInNtYWxsZXIgPyAnbGVhZGluZy1bOHB4XScgOiAnJ1wiPlxuICAgIDxnbi11aS1wcm9ncmVzcy1iYXJcbiAgICAgIChmb2N1cyk9XCJzaG93TWVudSgpXCJcbiAgICAgIChibHVyKT1cImhpZGVNZW51KClcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFt2YWx1ZV09XCJxdWFsaXR5U2NvcmVcIlxuICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgID48L2duLXVpLXByb2dyZXNzLWJhcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIHotMTAgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFjayBib3JkZXItb3BhY2l0eS0zNSByb3VuZGVkLWxnIHNoYWRvdy1sZyBwLTUgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgIFtjbGFzc109XCJpc01lbnVTaG93biA/ICdibG9jaycgOiAnaGlkZGVuJ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBmb250LWJvbGRcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnF1YWxpdHkuZGV0YWlsczwvZGl2PlxuICAgIDxnbi11aS1tZXRhZGF0YS1xdWFsaXR5LWl0ZW1cbiAgICAgICpuZ0Zvcj1cImxldCBlIG9mIGl0ZW1zXCJcbiAgICAgIFtuYW1lXT1cImUubmFtZVwiXG4gICAgICBbdmFsdWVdPVwiZS52YWx1ZVwiXG4gICAgPjwvZ24tdWktbWV0YWRhdGEtcXVhbGl0eS1pdGVtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -69,11 +69,11 @@ export class ThumbnailComponent {
69
69
  }
70
70
  }
71
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, deps: [{ token: THUMBNAIL_PLACEHOLDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
73
  }
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, decorators: [{
75
75
  type: Component,
76
- args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
76
+ args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
77
77
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
78
78
  type: Optional
79
79
  }, {
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
92
92
  }], placeholderShown: [{
93
93
  type: Output
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUE7OztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUE7QUFPRCxNQUFNLG1CQUFtQixHQUN2Qiw0eUNBQTR5QyxDQUFBO0FBUzl5QyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVDLENBQUM7SUFHRCxZQUdVLHNCQUE4QjtRQUE5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFmL0IsUUFBRyxHQUE4QixPQUFPLENBQUE7UUFHdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUd4RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxtQkFBbUIsQ0FBQTtRQUkzRCxXQUFNLEdBQTJCLEVBQUUsQ0FBQTtJQU14QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxDQUFD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OzBCQWlCNUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxxQkFBcUI7NENBZnRCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNxQixVQUFVO3NCQUFwQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ00sZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDbkIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGNvbnN0IFRIVU1CTkFJTF9QTEFDRUhPTERFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAndGh1bWJuYWlsLXBsYWNlaG9sZGVyJ1xuKVxuXG50eXBlIFRodW1ibmFpbEltYWdlT2JqZWN0ID0ge1xuICB1cmw6IHN0cmluZ1xuICBmaXQ/OiAnY292ZXInIHwgJ2NvbnRhaW4nIHwgJ3NjYWxlLWRvd24nXG59XG5cbmNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVIgPVxuICAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHQUFBQUJnQ0FZQUFBRGltSGM0QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUEzWEFBQU4xd0ZDS0p0NEFBQUFCM1JKVFVVSDVna05EQ1VGWWpBMW53QUFBMXBKUkVGVWVOcnRuVzJUbWpBVVJoOENMbFRkcm11bi8vLzN0WjIyK3pMdVlsZWhIN2pzTUdvZ3dSaWllYzRNTTQ0SzZEM3gzaEF3QUlRUVFnZ2hoSkRZU001Y1B3TlFBTWdCcEFDVWcyMkdUZzJnQXJBRDhBOUFLWSs5Q3NnQUxBRjhZUnNHQUx3RGVBV3c5eUdnQUxDS29LV1ArV1U4aXd4alVzdWRMQmo4M3NaY2lJaVBTd2hvV3o3cEo1ZFVaRlFYbEVYT1ovRE5lVEJ0M0puaEJwYzlhYWNHc09uMEJ1b0lVazNiKzV0ckduRUM0QjdBazRzVWxJblJVK3dCL0piZ1Z4RzE4S3JUQmMwMUVtWW1jVEZKUVVWUHkvOXpUaC80QnRoTERPcWVlbkIyRGRCdFpCTjU4THNTTnBjVW9FdFRKV00vR0l2TWhRRGRlOWo2aDJPaFhBam82LzJRL2xna0xnU1FDMElCRkVBQlpFS3lpYVF2NUFBdjdmU2xTK2xQVnhSd09YVG5FdG9UUEFzMDR5ZlJIR01vejhGL0hPaWFKZktlZ2dMYzc4ZG1PSHNWUzMzeTlTVVhzRHVMbHNnNkZPQXcvZmhZaHdJMHBKN1dvUUFTcG9DOXAzVW9RRVBwYVIwSzBMQ0IzZkIxZTZLZkFoeFJ3ZUFLZ1E1UHNReEorQ3pDSllDL0E3K0VXdDRUelZDRTc3R2dFc0JQSEEvRzdRQnN3Y0U0Yitub1ZSWjJReGtDQ3FBQVFnRVVRQ2lBQWdnRlVBQ2hBQW9nRkVBQmhBSmNmVDlGQWRPeFF1Qi9NTDlsQWZkby9xV1l5Mk1LOEVpTzVtcnJsaVVDdmRJdWRBRXpXV3pReld1eHdqUm5BSzlXd0F6QVdoWlRDZTNsN2NyeU5RclFCTC90eFpoS0dHcmx3YzM2b2dJUGZ2ZHpmaHVRc0RETTgwRVZaWFVGd2UrbUVKMkVPd0JmTGZZVFRGRldWeEw4UXdsM25lZFN5ZTFqamhFeUNqQVBmbGZDV2lTY1UxaURLTXJxeW9KL0tPRnhSRGYxc0NnL3hDeGdUUEM3RW5JSG42R1lzaWlyS3cyK2F5WXJ5b3JCbjdZb0t3Yi9xQ2dudHl3ZzFPQlBkcVNzR1B5VFJYbnAwN2d2UGdEOEFBbDZLSUlDQ0FWUUFBbEx3T2c1TVNOaTlOeXFKZ0txQUhwUW9aTlp4czVLZ0c3U0RON0FaemdXT3hjQ3Rwcm41L3dWZkxiK3VXWHNyQVNVUFhsdkhibUVUR0tRakJWZ01pdFZKVHVhYVFTMnQvR29FTWVFM29uRW9yMmpsSzRSdndONEcxdTlUNG42enA2UE1UV0FYekNZZENxMTJPQ09oZGVZWnpUM21JRXJBVzFGcitIbU5PQXQ4MktTZXNZSUFKb1J6UjJhSVZ1bW8rTXM4V3dUL0hPT1psTTBZK1p6eHYyenAvZ0NUemZ6UE95R3RkZmdwN0xFY0R2YnZTeGJXWGcvSFVJSUlZUVFRb2d4L3dITG9YN05vQ01GUHdBQUFBQkpSVTVFcmtKZ2dnPT0nXG5cbnR5cGUgRml0T3B0aW9ucyA9ICdjb3ZlcicgfCAnY29udGFpbicgfCAnc2NhbGUtZG93bidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktdGh1bWJuYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRodW1ibmFpbFVybDogc3RyaW5nIHwgc3RyaW5nW11cbiAgQElucHV0KCkgZml0OiBGaXRPcHRpb25zIHwgRml0T3B0aW9uc1tdID0gJ2NvdmVyJ1xuICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnKSBpbWdFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnKSBjb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxuICBAT3V0cHV0KCkgcGxhY2Vob2xkZXJTaG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBpbWdVcmw6IHN0cmluZ1xuICBpbWdGaXQ6IEZpdE9wdGlvbnNcbiAgcGxhY2Vob2xkZXJVcmwgPSB0aGlzLm9wdGlvbmFsUGxhY2Vob2xkZXJVcmwgfHwgREVGQVVMVF9QTEFDRUhPTERFUlxuICBnZXQgaXNQbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbWdVcmwgPT09IHRoaXMucGxhY2Vob2xkZXJVcmxcbiAgfVxuICBwcml2YXRlIGltYWdlczogVGh1bWJuYWlsSW1hZ2VPYmplY3RbXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRIVU1CTkFJTF9QTEFDRUhPTERFUilcbiAgICBwcml2YXRlIG9wdGlvbmFsUGxhY2Vob2xkZXJVcmw6IHN0cmluZ1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVJbWFnZUxpc3QoKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghKCd0aHVtYm5haWxVcmwnIGluIGNoYW5nZXMpICYmICEoJ2ZpdCcgaW4gY2hhbmdlcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUltYWdlTGlzdCgpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUltYWdlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMudGh1bWJuYWlsVXJsKSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cmxzID0gQXJyYXkuaXNBcnJheSh0aGlzLnRodW1ibmFpbFVybClcbiAgICAgID8gdGhpcy50aHVtYm5haWxVcmxcbiAgICAgIDogW3RoaXMudGh1bWJuYWlsVXJsXVxuICAgIHRoaXMuaW1hZ2VzID0gdXJsc1xuICAgICAgLm1hcCgodXJsLCBpbmRleCkgPT4gKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBmaXQ6IChBcnJheS5pc0FycmF5KHRoaXMuZml0KSA/IHRoaXMuZml0W2luZGV4XSA6IHRoaXMuZml0KSB8fCAnY292ZXInLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKChpbWcpID0+ICEhaW1nLnVybClcbiAgICBpZiAoIXRoaXMuaW1hZ2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh0aGlzLmltYWdlc1swXSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmV3U3JjSW1hZ2UoaW1hZ2U6IFRodW1ibmFpbEltYWdlT2JqZWN0KSB7XG4gICAgdGhpcy5pbWdGaXQgPSBpbWFnZS5maXRcbiAgICB0aGlzLmltZ1VybCA9IGltYWdlLnVybFxuICAgIHRoaXMucGxhY2Vob2xkZXJTaG93bi5lbWl0KHRoaXMuaXNQbGFjZWhvbGRlcilcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh7IHVybDogdGhpcy5wbGFjZWhvbGRlclVybCwgZml0OiAnc2NhbGUtZG93bicgfSlcbiAgfVxuXG4gIHVzZUZhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLmltYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmltYWdlcy5zaGlmdCgpXG4gICAgICB0aGlzLnNldE5ld1NyY0ltYWdlKHRoaXMuaW1hZ2VzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICB9XG4gIH1cblxuICBzZXRPYmplY3RGaXQoKSB7XG4gICAgY29uc3QgY3cgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudFdpZHRoXG4gICAgY29uc3QgY2ggPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudEhlaWdodFxuICAgIGlmIChcbiAgICAgIHRoaXMuaW1nRWxlbWVudC5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCA8IGN3ICYmXG4gICAgICB0aGlzLmltZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5uYXR1cmFsSGVpZ2h0IDwgY2hcbiAgICApIHtcbiAgICAgIHRoaXMuaW1nRml0ID0gJ3NjYWxlLWRvd24nXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNjb250YWluZXJFbGVtZW50XG4gIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByZWxhdGl2ZSBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJpc1BsYWNlaG9sZGVyID8gJ2JnLWdyYXktMTAwJyA6ICdiZy13aGl0ZSdcIlxuICBbYXR0ci5kYXRhLWN5LWlzLXBsYWNlaG9sZGVyXT1cImlzUGxhY2Vob2xkZXIudG9TdHJpbmcoKVwiXG4+XG4gIDxpbWdcbiAgICAjaW1hZ2VFbGVtZW50XG4gICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgb2JqZWN0LWNlbnRlclwiXG4gICAgW25nQ2xhc3NdPVwiaW1nRml0ID09PSAnY29udGFpbicgPyAnaC00LzUnIDogJ2gtZnVsbCdcIlxuICAgIFtuZ1N0eWxlXT1cInsgb2JqZWN0Rml0OiBpbWdGaXQgfVwiXG4gICAgYWx0PVwidGh1bWJuYWlsXCJcbiAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgKGxvYWQpPVwic2V0T2JqZWN0Rml0KClcIlxuICAgIFtzcmNdPVwiaW1nVXJsXCJcbiAgICAoZXJyb3IpPVwidXNlRmFsbGJhY2soKVwiXG4gIC8+XG48L2Rpdj5cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUE7OztBQUV0QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUE7QUFPRCxNQUFNLG1CQUFtQixHQUN2Qiw0eUNBQTR5QyxDQUFBO0FBUzl5QyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVDLENBQUM7SUFHRCxZQUdVLHNCQUE4QjtRQUE5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFmL0IsUUFBRyxHQUE4QixPQUFPLENBQUE7UUFHdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUd4RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxtQkFBbUIsQ0FBQTtRQUkzRCxXQUFNLEdBQTJCLEVBQUUsQ0FBQTtJQU14QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxDQUFD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OzBCQWlCNUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxxQkFBcUI7NENBZnRCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNxQixVQUFVO3NCQUFwQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ00sZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDbkIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGNvbnN0IFRIVU1CTkFJTF9QTEFDRUhPTERFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAndGh1bWJuYWlsLXBsYWNlaG9sZGVyJ1xuKVxuXG50eXBlIFRodW1ibmFpbEltYWdlT2JqZWN0ID0ge1xuICB1cmw6IHN0cmluZ1xuICBmaXQ/OiAnY292ZXInIHwgJ2NvbnRhaW4nIHwgJ3NjYWxlLWRvd24nXG59XG5cbmNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVIgPVxuICAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHQUFBQUJnQ0FZQUFBRGltSGM0QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUEzWEFBQU4xd0ZDS0p0NEFBQUFCM1JKVFVVSDVna05EQ1VGWWpBMW53QUFBMXBKUkVGVWVOcnRuVzJUbWpBVVJoOENMbFRkcm11bi8vLzN0WjIyK3pMdVlsZWhIN2pzTUdvZ3dSaWllYzRNTTQ0SzZEM3gzaEF3QUlRUVFnZ2hoSkRZU001Y1B3TlFBTWdCcEFDVWcyMkdUZzJnQXJBRDhBOUFLWSs5Q3NnQUxBRjhZUnNHQUx3RGVBV3c5eUdnQUxDS29LV1ArV1U4aXd4alVzdWRMQmo4M3NaY2lJaVBTd2hvV3o3cEo1ZFVaRlFYbEVYT1ovRE5lVEJ0M0puaEJwYzlhYWNHc09uMEJ1b0lVazNiKzV0ckduRUM0QjdBazRzVWxJblJVK3dCL0piZ1Z4RzE4S3JUQmMwMUVtWW1jVEZKUVVWUHkvOXpUaC80QnRoTERPcWVlbkIyRGRCdFpCTjU4THNTTnBjVW9FdFRKV00vR0l2TWhRRGRlOWo2aDJPaFhBam82LzJRL2xna0xnU1FDMElCRkVBQlpFS3lpYVF2NUFBdjdmU2xTK2xQVnhSd09YVG5FdG9UUEFzMDR5ZlJIR01vejhGL0hPaWFKZktlZ2dMYzc4ZG1PSHNWUzMzeTlTVVhzRHVMbHNnNkZPQXcvZmhZaHdJMHBKN1dvUUFTcG9DOXAzVW9RRVBwYVIwSzBMQ0IzZkIxZTZLZkFoeFJ3ZUFLZ1E1UHNReEorQ3pDSllDL0E3K0VXdDRUelZDRTc3R2dFc0JQSEEvRzdRQnN3Y0U0Yitub1ZSWjJReGtDQ3FBQVFnRVVRQ2lBQWdnRlVBQ2hBQW9nRkVBQmhBSmNmVDlGQWRPeFF1Qi9NTDlsQWZkby9xV1l5Mk1LOEVpTzVtcnJsaVVDdmRJdWRBRXpXV3pReld1eHdqUm5BSzlXd0F6QVdoWlRDZTNsN2NyeU5RclFCTC90eFpoS0dHcmx3YzM2b2dJUGZ2ZHpmaHVRc0RETTgwRVZaWFVGd2UrbUVKMkVPd0JmTGZZVFRGRldWeEw4UXdsM25lZFN5ZTFqamhFeUNqQVBmbGZDV2lTY1UxaURLTXJxeW9KL0tPRnhSRGYxc0NnL3hDeGdUUEM3RW5JSG42R1lzaWlyS3cyK2F5WXJ5b3JCbjdZb0t3Yi9xQ2dudHl3ZzFPQlBkcVNzR1B5VFJYbnAwN2d2UGdEOEFBbDZLSUlDQ0FWUUFBbEx3T2c1TVNOaTlOeXFKZ0txQUhwUW9aTlp4czVLZ0c3U0RON0FaemdXT3hjQ3Rwcm41L3dWZkxiK3VXWHNyQVNVUFhsdkhibUVUR0tRakJWZ01pdFZKVHVhYVFTMnQvR29FTWVFM29uRW9yMmpsSzRSdndONEcxdTlUNG42enA2UE1UV0FYekNZZENxMTJPQ09oZGVZWnpUM21JRXJBVzFGcitIbU5PQXQ4MktTZXNZSUFKb1J6UjJhSVZ1bW8rTXM4V3dUL0hPT1psTTBZK1p6eHYyenAvZ0NUemZ6UE95R3RkZmdwN0xFY0R2YnZTeGJXWGcvSFVJSUlZUVFRb2d4L3dITG9YN05vQ01GUHdBQUFBQkpSVTVFcmtKZ2dnPT0nXG5cbnR5cGUgRml0T3B0aW9ucyA9ICdjb3ZlcicgfCAnY29udGFpbicgfCAnc2NhbGUtZG93bidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktdGh1bWJuYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRodW1ibmFpbFVybDogc3RyaW5nIHwgc3RyaW5nW11cbiAgQElucHV0KCkgZml0OiBGaXRPcHRpb25zIHwgRml0T3B0aW9uc1tdID0gJ2NvdmVyJ1xuICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnKSBpbWdFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnKSBjb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxuICBAT3V0cHV0KCkgcGxhY2Vob2xkZXJTaG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBpbWdVcmw6IHN0cmluZ1xuICBpbWdGaXQ6IEZpdE9wdGlvbnNcbiAgcGxhY2Vob2xkZXJVcmwgPSB0aGlzLm9wdGlvbmFsUGxhY2Vob2xkZXJVcmwgfHwgREVGQVVMVF9QTEFDRUhPTERFUlxuICBnZXQgaXNQbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbWdVcmwgPT09IHRoaXMucGxhY2Vob2xkZXJVcmxcbiAgfVxuICBwcml2YXRlIGltYWdlczogVGh1bWJuYWlsSW1hZ2VPYmplY3RbXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRIVU1CTkFJTF9QTEFDRUhPTERFUilcbiAgICBwcml2YXRlIG9wdGlvbmFsUGxhY2Vob2xkZXJVcmw6IHN0cmluZ1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVJbWFnZUxpc3QoKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghKCd0aHVtYm5haWxVcmwnIGluIGNoYW5nZXMpICYmICEoJ2ZpdCcgaW4gY2hhbmdlcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUltYWdlTGlzdCgpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUltYWdlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMudGh1bWJuYWlsVXJsKSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cmxzID0gQXJyYXkuaXNBcnJheSh0aGlzLnRodW1ibmFpbFVybClcbiAgICAgID8gdGhpcy50aHVtYm5haWxVcmxcbiAgICAgIDogW3RoaXMudGh1bWJuYWlsVXJsXVxuICAgIHRoaXMuaW1hZ2VzID0gdXJsc1xuICAgICAgLm1hcCgodXJsLCBpbmRleCkgPT4gKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBmaXQ6IChBcnJheS5pc0FycmF5KHRoaXMuZml0KSA/IHRoaXMuZml0W2luZGV4XSA6IHRoaXMuZml0KSB8fCAnY292ZXInLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKChpbWcpID0+ICEhaW1nLnVybClcbiAgICBpZiAoIXRoaXMuaW1hZ2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh0aGlzLmltYWdlc1swXSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmV3U3JjSW1hZ2UoaW1hZ2U6IFRodW1ibmFpbEltYWdlT2JqZWN0KSB7XG4gICAgdGhpcy5pbWdGaXQgPSBpbWFnZS5maXRcbiAgICB0aGlzLmltZ1VybCA9IGltYWdlLnVybFxuICAgIHRoaXMucGxhY2Vob2xkZXJTaG93bi5lbWl0KHRoaXMuaXNQbGFjZWhvbGRlcilcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXdTcmNJbWFnZSh7IHVybDogdGhpcy5wbGFjZWhvbGRlclVybCwgZml0OiAnc2NhbGUtZG93bicgfSlcbiAgfVxuXG4gIHVzZUZhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLmltYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmltYWdlcy5zaGlmdCgpXG4gICAgICB0aGlzLnNldE5ld1NyY0ltYWdlKHRoaXMuaW1hZ2VzWzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFBsYWNlaG9sZGVyKClcbiAgICB9XG4gIH1cblxuICBzZXRPYmplY3RGaXQoKSB7XG4gICAgY29uc3QgY3cgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudFdpZHRoXG4gICAgY29uc3QgY2ggPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudEhlaWdodFxuICAgIGlmIChcbiAgICAgIHRoaXMuaW1nRWxlbWVudC5uYXRpdmVFbGVtZW50Lm5hdHVyYWxXaWR0aCA8IGN3ICYmXG4gICAgICB0aGlzLmltZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5uYXR1cmFsSGVpZ2h0IDwgY2hcbiAgICApIHtcbiAgICAgIHRoaXMuaW1nRml0ID0gJ3NjYWxlLWRvd24nXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNjb250YWluZXJFbGVtZW50XG4gIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByZWxhdGl2ZSBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJpc1BsYWNlaG9sZGVyID8gJ2JnLWdyYXktMTAwJyA6ICdiZy13aGl0ZSdcIlxuICBbYXR0ci5kYXRhLWN5LWlzLXBsYWNlaG9sZGVyXT1cImlzUGxhY2Vob2xkZXIudG9TdHJpbmcoKVwiXG4+XG4gIDxpbWdcbiAgICAjaW1hZ2VFbGVtZW50XG4gICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgb2JqZWN0LWNlbnRlclwiXG4gICAgW25nQ2xhc3NdPVwiaW1nRml0ID09PSAnY29udGFpbicgPyAnaC00LzUgdy00LzUnIDogJ2gtZnVsbCdcIlxuICAgIFtuZ1N0eWxlXT1cInsgb2JqZWN0Rml0OiBpbWdGaXQgfVwiXG4gICAgYWx0PVwidGh1bWJuYWlsXCJcbiAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgKGxvYWQpPVwic2V0T2JqZWN0Rml0KClcIlxuICAgIFtzcmNdPVwiaW1nVXJsXCJcbiAgICAoZXJyb3IpPVwidXNlRmFsbGJhY2soKVwiXG4gIC8+XG48L2Rpdj5cbiJdfQ==