geonetwork-ui 2.4.0-dev.e1bb65c4 → 2.4.0-dev.e4dc8777

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 (144) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  2. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +2 -2
  4. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -5
  5. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  7. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  8. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  9. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
  10. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  11. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  12. package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
  13. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -2
  14. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +6 -3
  15. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  16. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  17. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  18. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  19. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  20. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  21. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
  22. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  23. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
  24. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  25. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  26. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  27. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  28. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +4 -4
  29. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  30. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -9
  31. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  32. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  33. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  34. package/esm2022/translations/de.json +25 -4
  35. package/esm2022/translations/en.json +25 -4
  36. package/esm2022/translations/es.json +25 -4
  37. package/esm2022/translations/fr.json +26 -5
  38. package/esm2022/translations/it.json +25 -4
  39. package/esm2022/translations/nl.json +25 -4
  40. package/esm2022/translations/pt.json +25 -4
  41. package/fesm2022/geonetwork-ui.mjs +338 -136
  42. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  43. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  44. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  45. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -1
  46. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  47. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  48. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  49. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -1
  50. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  51. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  52. package/libs/feature/catalog/src/index.d.ts +1 -0
  53. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  54. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  55. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  56. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  57. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  58. package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
  59. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  60. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  61. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  62. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  63. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  64. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  65. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  66. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  67. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  68. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  69. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  70. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  71. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  72. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  73. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  74. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  75. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
  76. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  77. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  78. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  79. package/libs/ui/elements/src/index.d.ts +0 -1
  80. package/libs/ui/elements/src/index.d.ts.map +1 -1
  81. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  82. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  83. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  84. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  85. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -19
  86. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  87. package/libs/ui/layout/src/index.d.ts +1 -0
  88. package/libs/ui/layout/src/index.d.ts.map +1 -1
  89. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  90. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  91. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  94. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  95. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +1 -1
  96. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +26 -15
  97. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  98. package/src/libs/common/domain/src/lib/platform.service.interface.ts +5 -1
  99. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -0
  100. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  101. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  102. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  103. package/src/libs/feature/catalog/src/index.ts +1 -0
  104. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
  105. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  106. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  107. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  108. package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
  109. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +8 -6
  110. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +6 -2
  111. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  112. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  113. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  114. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
  115. package/src/libs/feature/search/src/lib/state/search.facade.ts +5 -0
  116. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  117. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
  118. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  119. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  120. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
  121. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  122. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  123. package/src/libs/ui/elements/src/index.ts +0 -1
  124. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  125. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  126. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  127. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  128. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  129. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -4
  130. package/src/libs/ui/layout/src/index.ts +1 -0
  131. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
  132. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  133. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  134. package/translations/de.json +25 -4
  135. package/translations/en.json +25 -4
  136. package/translations/es.json +25 -4
  137. package/translations/fr.json +26 -5
  138. package/translations/it.json +25 -4
  139. package/translations/nl.json +25 -4
  140. package/translations/pt.json +25 -4
  141. package/translations/sk.json +26 -5
  142. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  143. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  144. /package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.css +0 -0
@@ -17309,7 +17309,7 @@ var de = {
17309
17309
  "Add Layer As": "",
17310
17310
  "button.login": "",
17311
17311
  "catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
17312
- "catalog.figures.organisations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
17312
+ "catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
17313
17313
  "chart.aggregation.average": "Durchschnitt",
17314
17314
  "chart.aggregation.count": "Anzahl",
17315
17315
  "chart.aggregation.max": "Maximum",
@@ -17356,6 +17356,8 @@ var de = {
17356
17356
  "datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
17357
17357
  "datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
17358
17358
  "datafeeder.datasetValidation.unknown": " - ",
17359
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
17360
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
17359
17361
  "datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
17360
17362
  "datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
17361
17363
  "datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
@@ -17383,6 +17385,7 @@ var de = {
17383
17385
  "datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
17384
17386
  "datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
17385
17387
  "datafeeder.publishSuccess.mapViewer": "Kartenviewer",
17388
+ "datafeeder.publishSuccess.ogcFeature": "",
17386
17389
  "datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
17387
17390
  "datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
17388
17391
  "datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
@@ -17411,6 +17414,15 @@ var de = {
17411
17414
  "datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
17412
17415
  "datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
17413
17416
  "datafeeder.upload.uploadButton": "Hochladen",
17417
+ "datafeeder.validation.csv.delimiter": "",
17418
+ "datafeeder.validation.csv.delimiter.comma": "",
17419
+ "datafeeder.validation.csv.delimiter.semicolon": "",
17420
+ "datafeeder.validation.csv.lat.field": "",
17421
+ "datafeeder.validation.csv.lng.field": "",
17422
+ "datafeeder.validation.csv.quote.double": "",
17423
+ "datafeeder.validation.csv.quote.none": "",
17424
+ "datafeeder.validation.csv.quote.simple": "",
17425
+ "datafeeder.validation.csv.quoteChar": "",
17414
17426
  "datafeeder.validation.encoding": "Codierung",
17415
17427
  "datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
17416
17428
  "datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
@@ -17424,7 +17436,7 @@ var de = {
17424
17436
  "datahub.header.lastRecords": "Die neuesten",
17425
17437
  "datahub.header.myfavorites": "Meine Favoriten",
17426
17438
  "datahub.header.news": "Startseite",
17427
- "datahub.header.organisations": "Organisationen",
17439
+ "datahub.header.organizations": "Organisationen",
17428
17440
  "datahub.header.popularRecords": "Die beliebtesten",
17429
17441
  "datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
17430
17442
  "datahub.news.contact.contactus": "Kontaktieren Sie uns",
@@ -17460,6 +17472,7 @@ var de = {
17460
17472
  "downloads.format.unknown": "unbekannt",
17461
17473
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
17462
17474
  dropFile: dropFile$6,
17475
+ "editor.record.form.keywords": "Schlagwörter",
17463
17476
  "editor.record.form.license": "Lizenz",
17464
17477
  "editor.record.form.license.cc-by": "",
17465
17478
  "editor.record.form.license.cc-by-sa": "",
@@ -17559,6 +17572,10 @@ var de = {
17559
17572
  "organisations.sortBy.nameDesc": "Name Z → A",
17560
17573
  "organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
17561
17574
  "organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
17575
+ "organization.details.lastPublishedDatasets": "",
17576
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
17577
+ "organization.details.mailContact": "",
17578
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
17562
17579
  "pagination.nextPage": "Nächste Seite",
17563
17580
  "pagination.page": "Seite",
17564
17581
  "pagination.pageOf": "von",
@@ -17596,7 +17613,7 @@ var de = {
17596
17613
  "record.metadata.preview": "Vorschau",
17597
17614
  "record.metadata.producer": "Datenproduzent",
17598
17615
  "record.metadata.publication": "Veröffentlichungsdatum",
17599
- "record.metadata.publications": "Veröffentlichungen",
17616
+ "record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
17600
17617
  "record.metadata.quality": "Metadatenqualität",
17601
17618
  "record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
17602
17619
  "record.metadata.quality.contact.success": "Kontakt angegeben",
@@ -17656,6 +17673,8 @@ var de = {
17656
17673
  "results.sortBy.relevancy": "Relevanz",
17657
17674
  "search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
17658
17675
  "search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
17676
+ "search.error.organizationHasNoDataset": "",
17677
+ "search.error.organizationNotFound": "",
17659
17678
  "search.error.receivedError": "Ein Fehler ist aufgetreten",
17660
17679
  "search.error.recordHasnolink": "",
17661
17680
  "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
@@ -17683,9 +17702,11 @@ var de = {
17683
17702
  "search.filters.minimize": "Minimieren",
17684
17703
  "search.filters.myRecords": "Nur meine Datensätze anzeigen",
17685
17704
  "search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Datensätze angezeigt; Datensätze, die von anderen erstellt wurden, werden nicht angezeigt.",
17705
+ "search.filters.organization": "",
17686
17706
  "search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
17707
+ "search.filters.producerOrg": "",
17687
17708
  "search.filters.publicationYear": "Veröffentlichungsjahr",
17688
- "search.filters.publisher": "Organisationen",
17709
+ "search.filters.publisherOrg": "",
17689
17710
  "search.filters.representationType": "Repräsentationstyp",
17690
17711
  "search.filters.resourceType": "Ressourcentyp",
17691
17712
  "search.filters.standard": "Standard",
@@ -17719,7 +17740,7 @@ var en = {
17719
17740
  "Add Layer As": "",
17720
17741
  "button.login": "Log in",
17721
17742
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
17722
- "catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
17743
+ "catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
17723
17744
  "chart.aggregation.average": "average",
17724
17745
  "chart.aggregation.count": "count",
17725
17746
  "chart.aggregation.max": "max",
@@ -17766,6 +17787,8 @@ var en = {
17766
17787
  "datafeeder.datasetValidation.submitButton": "OK, my data are correct",
17767
17788
  "datafeeder.datasetValidation.title": "Make sure your data are correct",
17768
17789
  "datafeeder.datasetValidation.unknown": " - ",
17790
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
17791
+ "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
17769
17792
  "datafeeder.form.abstract": "How would you describe your dataset?",
17770
17793
  "datafeeder.form.datepicker": "Do you know when the dataset was created?",
17771
17794
  "datafeeder.form.description": "Finally, please describe the process that was used to create the dataset",
@@ -17793,6 +17816,7 @@ var en = {
17793
17816
  "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
17794
17817
  "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
17795
17818
  "datafeeder.publishSuccess.mapViewer": "Map viewer",
17819
+ "datafeeder.publishSuccess.ogcFeature": "OGC API",
17796
17820
  "datafeeder.publishSuccess.subtitle": "View your data in:",
17797
17821
  "datafeeder.publishSuccess.title": "Congratulation! \n Your dataset has been published",
17798
17822
  "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
@@ -17821,6 +17845,15 @@ var en = {
17821
17845
  "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
17822
17846
  "datafeeder.upload.title": "Upload your dataset",
17823
17847
  "datafeeder.upload.uploadButton": "Upload",
17848
+ "datafeeder.validation.csv.delimiter": "Delimiter",
17849
+ "datafeeder.validation.csv.delimiter.comma": "Comma",
17850
+ "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
17851
+ "datafeeder.validation.csv.lat.field": "Latitude column",
17852
+ "datafeeder.validation.csv.lng.field": "Longitude column",
17853
+ "datafeeder.validation.csv.quote.double": "Double quote",
17854
+ "datafeeder.validation.csv.quote.none": "None",
17855
+ "datafeeder.validation.csv.quote.simple": "Simple quote",
17856
+ "datafeeder.validation.csv.quoteChar": "Quote separator",
17824
17857
  "datafeeder.validation.encoding": "encoding",
17825
17858
  "datafeeder.validation.extent.title": "Here is the dataset extent",
17826
17859
  "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
@@ -17834,7 +17867,7 @@ var en = {
17834
17867
  "datahub.header.lastRecords": "The latest",
17835
17868
  "datahub.header.myfavorites": "My favorites",
17836
17869
  "datahub.header.news": "Home",
17837
- "datahub.header.organisations": "Organisations",
17870
+ "datahub.header.organizations": "Organizations",
17838
17871
  "datahub.header.popularRecords": "The most popular",
17839
17872
  "datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
17840
17873
  "datahub.news.contact.contactus": "Contact us",
@@ -17870,6 +17903,7 @@ var en = {
17870
17903
  "downloads.format.unknown": "unknown",
17871
17904
  "downloads.wfs.featuretype.not.found": "The layer was not found",
17872
17905
  dropFile: dropFile$5,
17906
+ "editor.record.form.keywords": "Keywords",
17873
17907
  "editor.record.form.license": "License",
17874
17908
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
17875
17909
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
@@ -17969,6 +18003,10 @@ var en = {
17969
18003
  "organisations.sortBy.nameDesc": "Name Z → A",
17970
18004
  "organisations.sortBy.recordCountAsc": "Publications 0 → 9",
17971
18005
  "organisations.sortBy.recordCountDesc": "Publications 9 → 0",
18006
+ "organization.details.lastPublishedDatasets": "Last published datasets",
18007
+ "organization.details.lastPublishedDatasets.searchAllButton": "Search all",
18008
+ "organization.details.mailContact": "Contact by email",
18009
+ "organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
17972
18010
  "pagination.nextPage": "Next page",
17973
18011
  "pagination.page": "page",
17974
18012
  "pagination.pageOf": "of",
@@ -18006,7 +18044,7 @@ var en = {
18006
18044
  "record.metadata.preview": "Preview",
18007
18045
  "record.metadata.producer": "Data producer",
18008
18046
  "record.metadata.publication": "Date of publication",
18009
- "record.metadata.publications": "publications",
18047
+ "record.metadata.publications": "{count, plural, =0{publication} one{publication} other{publications}}",
18010
18048
  "record.metadata.quality": "Metadata Quality",
18011
18049
  "record.metadata.quality.contact.failed": "Contact is not specified",
18012
18050
  "record.metadata.quality.contact.success": "Contact is specified",
@@ -18066,6 +18104,8 @@ var en = {
18066
18104
  "results.sortBy.relevancy": "Relevancy",
18067
18105
  "search.autocomplete.error": "Suggestions could not be fetched:",
18068
18106
  "search.error.couldNotReachApi": "The API could not be reached",
18107
+ "search.error.organizationHasNoDataset": "This organization has no dataset yet.",
18108
+ "search.error.organizationNotFound": "This organization could not be found.",
18069
18109
  "search.error.receivedError": "An error was received",
18070
18110
  "search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
18071
18111
  "search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
@@ -18093,9 +18133,11 @@ var en = {
18093
18133
  "search.filters.minimize": "Minimize",
18094
18134
  "search.filters.myRecords": "Show only my records",
18095
18135
  "search.filters.myRecordsHelp": "When this is enabled, records only created by myself are shown; records created by others will not show up.",
18136
+ "search.filters.organization": "Organization",
18096
18137
  "search.filters.otherRecords": "Showing records from another person",
18138
+ "search.filters.producerOrg": "Producer",
18097
18139
  "search.filters.publicationYear": "Publication year",
18098
- "search.filters.publisher": "Organizations",
18140
+ "search.filters.publisherOrg": "Publisher",
18099
18141
  "search.filters.representationType": "Representation type",
18100
18142
  "search.filters.resourceType": "Resource type",
18101
18143
  "search.filters.standard": "Standard",
@@ -18129,7 +18171,7 @@ var es = {
18129
18171
  "Add Layer As": "",
18130
18172
  "button.login": "",
18131
18173
  "catalog.figures.datasets": "conjuntos de datos",
18132
- "catalog.figures.organisations": "organizaciones",
18174
+ "catalog.figures.organizations": "organizaciones",
18133
18175
  "chart.aggregation.average": "promedio",
18134
18176
  "chart.aggregation.count": "conteo",
18135
18177
  "chart.aggregation.max": "máximo",
@@ -18176,6 +18218,8 @@ var es = {
18176
18218
  "datafeeder.datasetValidation.submitButton": "",
18177
18219
  "datafeeder.datasetValidation.title": "",
18178
18220
  "datafeeder.datasetValidation.unknown": "",
18221
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
18222
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
18179
18223
  "datafeeder.form.abstract": "",
18180
18224
  "datafeeder.form.datepicker": "",
18181
18225
  "datafeeder.form.description": "",
@@ -18203,6 +18247,7 @@ var es = {
18203
18247
  "datafeeder.publishSuccess.geonetworkRecord": "",
18204
18248
  "datafeeder.publishSuccess.illustration.title": "",
18205
18249
  "datafeeder.publishSuccess.mapViewer": "",
18250
+ "datafeeder.publishSuccess.ogcFeature": "",
18206
18251
  "datafeeder.publishSuccess.subtitle": "",
18207
18252
  "datafeeder.publishSuccess.title": "",
18208
18253
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -18231,6 +18276,15 @@ var es = {
18231
18276
  "datafeeder.upload.maxFileSize": "",
18232
18277
  "datafeeder.upload.title": "",
18233
18278
  "datafeeder.upload.uploadButton": "",
18279
+ "datafeeder.validation.csv.delimiter": "",
18280
+ "datafeeder.validation.csv.delimiter.comma": "Coma",
18281
+ "datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
18282
+ "datafeeder.validation.csv.lat.field": "",
18283
+ "datafeeder.validation.csv.lng.field": "",
18284
+ "datafeeder.validation.csv.quote.double": "Comillas dobles",
18285
+ "datafeeder.validation.csv.quote.none": "Ninguno",
18286
+ "datafeeder.validation.csv.quote.simple": "Comillas simples",
18287
+ "datafeeder.validation.csv.quoteChar": "",
18234
18288
  "datafeeder.validation.encoding": "",
18235
18289
  "datafeeder.validation.extent.title": "",
18236
18290
  "datafeeder.validation.extent.title.unknown": "",
@@ -18244,7 +18298,7 @@ var es = {
18244
18298
  "datahub.header.lastRecords": "",
18245
18299
  "datahub.header.myfavorites": "",
18246
18300
  "datahub.header.news": "",
18247
- "datahub.header.organisations": "",
18301
+ "datahub.header.organizations": "",
18248
18302
  "datahub.header.popularRecords": "",
18249
18303
  "datahub.header.title.html": "",
18250
18304
  "datahub.news.contact.contactus": "",
@@ -18280,6 +18334,7 @@ var es = {
18280
18334
  "downloads.format.unknown": "",
18281
18335
  "downloads.wfs.featuretype.not.found": "",
18282
18336
  dropFile: dropFile$4,
18337
+ "editor.record.form.keywords": "",
18283
18338
  "editor.record.form.license": "",
18284
18339
  "editor.record.form.license.cc-by": "",
18285
18340
  "editor.record.form.license.cc-by-sa": "",
@@ -18379,6 +18434,10 @@ var es = {
18379
18434
  "organisations.sortBy.nameDesc": "",
18380
18435
  "organisations.sortBy.recordCountAsc": "",
18381
18436
  "organisations.sortBy.recordCountDesc": "",
18437
+ "organization.details.lastPublishedDatasets": "",
18438
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
18439
+ "organization.details.mailContact": "",
18440
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
18382
18441
  "pagination.nextPage": "",
18383
18442
  "pagination.page": "",
18384
18443
  "pagination.pageOf": "",
@@ -18416,7 +18475,7 @@ var es = {
18416
18475
  "record.metadata.preview": "",
18417
18476
  "record.metadata.producer": "",
18418
18477
  "record.metadata.publication": "",
18419
- "record.metadata.publications": "",
18478
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
18420
18479
  "record.metadata.quality": "",
18421
18480
  "record.metadata.quality.contact.failed": "",
18422
18481
  "record.metadata.quality.contact.success": "",
@@ -18476,6 +18535,8 @@ var es = {
18476
18535
  "results.sortBy.relevancy": "",
18477
18536
  "search.autocomplete.error": "",
18478
18537
  "search.error.couldNotReachApi": "",
18538
+ "search.error.organizationHasNoDataset": "",
18539
+ "search.error.organizationNotFound": "",
18479
18540
  "search.error.receivedError": "",
18480
18541
  "search.error.recordHasnolink": "",
18481
18542
  "search.error.recordNotFound": "",
@@ -18503,9 +18564,11 @@ var es = {
18503
18564
  "search.filters.minimize": "",
18504
18565
  "search.filters.myRecords": "",
18505
18566
  "search.filters.myRecordsHelp": "",
18567
+ "search.filters.organization": "",
18506
18568
  "search.filters.otherRecords": "",
18569
+ "search.filters.producerOrg": "",
18507
18570
  "search.filters.publicationYear": "",
18508
- "search.filters.publisher": "",
18571
+ "search.filters.publisherOrg": "",
18509
18572
  "search.filters.representationType": "",
18510
18573
  "search.filters.resourceType": "",
18511
18574
  "search.filters.standard": "",
@@ -18539,7 +18602,7 @@ var fr = {
18539
18602
  "Add Layer As": "",
18540
18603
  "button.login": "Se connecter",
18541
18604
  "catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
18542
- "catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
18605
+ "catalog.figures.organizations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
18543
18606
  "chart.aggregation.average": "moyenne",
18544
18607
  "chart.aggregation.count": "nombre",
18545
18608
  "chart.aggregation.max": "maximum",
@@ -18586,6 +18649,8 @@ var fr = {
18586
18649
  "datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
18587
18650
  "datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
18588
18651
  "datafeeder.datasetValidation.unknown": " - ",
18652
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "*Le tableau doit afficher les 5 premières lignes (hors en-tête)<br>Si ce n'est pas le cas, vérifier que le fichier est bien formatté",
18653
+ "datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
18589
18654
  "datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
18590
18655
  "datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
18591
18656
  "datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
@@ -18612,7 +18677,8 @@ var fr = {
18612
18677
  "datafeeder.publish.upload": "Upload maintenant",
18613
18678
  "datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnée",
18614
18679
  "datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
18615
- "datafeeder.publishSuccess.mapViewer": "Visualisateur",
18680
+ "datafeeder.publishSuccess.mapViewer": "Visualiseur",
18681
+ "datafeeder.publishSuccess.ogcFeature": "OGC API",
18616
18682
  "datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
18617
18683
  "datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
18618
18684
  "datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
@@ -18641,6 +18707,15 @@ var fr = {
18641
18707
  "datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
18642
18708
  "datafeeder.upload.title": "Importez vos données",
18643
18709
  "datafeeder.upload.uploadButton": "Transférer",
18710
+ "datafeeder.validation.csv.delimiter": "Séparateur de colonne",
18711
+ "datafeeder.validation.csv.delimiter.comma": "Virgule",
18712
+ "datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
18713
+ "datafeeder.validation.csv.lat.field": "Colonne latitude",
18714
+ "datafeeder.validation.csv.lng.field": "Colonne longitude",
18715
+ "datafeeder.validation.csv.quote.double": "Double guillemets",
18716
+ "datafeeder.validation.csv.quote.none": "Aucun",
18717
+ "datafeeder.validation.csv.quote.simple": "Simple guillemet",
18718
+ "datafeeder.validation.csv.quoteChar": "Séparateur de texte",
18644
18719
  "datafeeder.validation.encoding": "encodage",
18645
18720
  "datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
18646
18721
  "datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
@@ -18654,7 +18729,7 @@ var fr = {
18654
18729
  "datahub.header.lastRecords": "Les plus récentes",
18655
18730
  "datahub.header.myfavorites": "Mes favoris",
18656
18731
  "datahub.header.news": "Accueil",
18657
- "datahub.header.organisations": "Organisations",
18732
+ "datahub.header.organizations": "Organisations",
18658
18733
  "datahub.header.popularRecords": "Les plus appréciées",
18659
18734
  "datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
18660
18735
  "datahub.news.contact.contactus": "Contactez-nous",
@@ -18690,6 +18765,7 @@ var fr = {
18690
18765
  "downloads.format.unknown": "inconnu",
18691
18766
  "downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
18692
18767
  dropFile: dropFile$3,
18768
+ "editor.record.form.keywords": "Mots-clés",
18693
18769
  "editor.record.form.license": "Licence",
18694
18770
  "editor.record.form.license.cc-by": "",
18695
18771
  "editor.record.form.license.cc-by-sa": "",
@@ -18789,6 +18865,10 @@ var fr = {
18789
18865
  "organisations.sortBy.nameDesc": "Nom Z → A",
18790
18866
  "organisations.sortBy.recordCountAsc": "Données 0 → 9",
18791
18867
  "organisations.sortBy.recordCountDesc": "Données 9 → 0",
18868
+ "organization.details.lastPublishedDatasets": "Dernières données publiées",
18869
+ "organization.details.lastPublishedDatasets.searchAllButton": "Rechercher tous",
18870
+ "organization.details.mailContact": "Contacter par mail",
18871
+ "organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
18792
18872
  "pagination.nextPage": "Page suivante",
18793
18873
  "pagination.page": "page",
18794
18874
  "pagination.pageOf": "sur",
@@ -18826,7 +18906,7 @@ var fr = {
18826
18906
  "record.metadata.preview": "Aperçu",
18827
18907
  "record.metadata.producer": "Producteur de la donnée",
18828
18908
  "record.metadata.publication": "Date de publication",
18829
- "record.metadata.publications": "données",
18909
+ "record.metadata.publications": "{count, plural, =0{donnée} one{donnée} other{données}}",
18830
18910
  "record.metadata.quality": "Qualité des métadonnées",
18831
18911
  "record.metadata.quality.contact.failed": "Contact n'est pas renseigné",
18832
18912
  "record.metadata.quality.contact.success": "Contact est renseigné",
@@ -18886,6 +18966,8 @@ var fr = {
18886
18966
  "results.sortBy.relevancy": "Pertinence",
18887
18967
  "search.autocomplete.error": "Les suggestions ne peuvent pas être récupérées",
18888
18968
  "search.error.couldNotReachApi": "Problème de connexion à l'API",
18969
+ "search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
18970
+ "search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
18889
18971
  "search.error.receivedError": "Erreur retournée",
18890
18972
  "search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
18891
18973
  "search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
@@ -18913,9 +18995,11 @@ var fr = {
18913
18995
  "search.filters.minimize": "Réduire",
18914
18996
  "search.filters.myRecords": "Voir mes données",
18915
18997
  "search.filters.myRecordsHelp": "Quand activé, n'affiche que les données créées avec mon utilisateur. Les données créées par les autres utilisateurs ne sont pas affichées.",
18998
+ "search.filters.organization": "Organisation",
18916
18999
  "search.filters.otherRecords": "Affichage des données d'un autre utilisateur",
19000
+ "search.filters.producerOrg": "Producteur",
18917
19001
  "search.filters.publicationYear": "Année de publication",
18918
- "search.filters.publisher": "Organisations",
19002
+ "search.filters.publisherOrg": "Distributeur",
18919
19003
  "search.filters.representationType": "Type de représentation",
18920
19004
  "search.filters.resourceType": "Type de ressource",
18921
19005
  "search.filters.standard": "Standard",
@@ -18949,7 +19033,7 @@ var it = {
18949
19033
  "Add Layer As": "",
18950
19034
  "button.login": "",
18951
19035
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
18952
- "catalog.figures.organisations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
19036
+ "catalog.figures.organizations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
18953
19037
  "chart.aggregation.average": "media",
18954
19038
  "chart.aggregation.count": "conteggio",
18955
19039
  "chart.aggregation.max": "massimo",
@@ -18996,6 +19080,8 @@ var it = {
18996
19080
  "datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
18997
19081
  "datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
18998
19082
  "datafeeder.datasetValidation.unknown": " - ",
19083
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19084
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
18999
19085
  "datafeeder.form.abstract": "Come descrivere il suo dataset?",
19000
19086
  "datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
19001
19087
  "datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
@@ -19023,6 +19109,7 @@ var it = {
19023
19109
  "datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
19024
19110
  "datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
19025
19111
  "datafeeder.publishSuccess.mapViewer": "Visualizzatore",
19112
+ "datafeeder.publishSuccess.ogcFeature": "",
19026
19113
  "datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
19027
19114
  "datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
19028
19115
  "datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
@@ -19051,6 +19138,15 @@ var it = {
19051
19138
  "datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
19052
19139
  "datafeeder.upload.title": "Importa i suoi dati",
19053
19140
  "datafeeder.upload.uploadButton": "Carica",
19141
+ "datafeeder.validation.csv.delimiter": "",
19142
+ "datafeeder.validation.csv.delimiter.comma": "",
19143
+ "datafeeder.validation.csv.delimiter.semicolon": "",
19144
+ "datafeeder.validation.csv.lat.field": "",
19145
+ "datafeeder.validation.csv.lng.field": "",
19146
+ "datafeeder.validation.csv.quote.double": "",
19147
+ "datafeeder.validation.csv.quote.none": "",
19148
+ "datafeeder.validation.csv.quote.simple": "",
19149
+ "datafeeder.validation.csv.quoteChar": "",
19054
19150
  "datafeeder.validation.encoding": "Codifica",
19055
19151
  "datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
19056
19152
  "datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
@@ -19064,7 +19160,7 @@ var it = {
19064
19160
  "datahub.header.lastRecords": "Ultimi",
19065
19161
  "datahub.header.myfavorites": "Miei preferiti",
19066
19162
  "datahub.header.news": "Home",
19067
- "datahub.header.organisations": "Organizzazioni",
19163
+ "datahub.header.organizations": "Organizzazioni",
19068
19164
  "datahub.header.popularRecords": "Più popolari",
19069
19165
  "datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
19070
19166
  "datahub.news.contact.contactus": "Contattateci",
@@ -19100,6 +19196,7 @@ var it = {
19100
19196
  "downloads.format.unknown": "sconosciuto",
19101
19197
  "downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
19102
19198
  dropFile: dropFile$2,
19199
+ "editor.record.form.keywords": "",
19103
19200
  "editor.record.form.license": "Licenza",
19104
19201
  "editor.record.form.license.cc-by": "",
19105
19202
  "editor.record.form.license.cc-by-sa": "",
@@ -19199,6 +19296,10 @@ var it = {
19199
19296
  "organisations.sortBy.nameDesc": "Nome Z → A",
19200
19297
  "organisations.sortBy.recordCountAsc": "Dati 0 → 9",
19201
19298
  "organisations.sortBy.recordCountDesc": "Dati 9 → 0",
19299
+ "organization.details.lastPublishedDatasets": "",
19300
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
19301
+ "organization.details.mailContact": "",
19302
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
19202
19303
  "pagination.nextPage": "Pagina successiva",
19203
19304
  "pagination.page": "pagina",
19204
19305
  "pagination.pageOf": "di",
@@ -19236,7 +19337,7 @@ var it = {
19236
19337
  "record.metadata.preview": "Anteprima",
19237
19338
  "record.metadata.producer": "Produttore dei dati",
19238
19339
  "record.metadata.publication": "Data di pubblicazione",
19239
- "record.metadata.publications": "pubblicazioni",
19340
+ "record.metadata.publications": "{count, plural, =0{pubblicazione} one{pubblicazione} other{pubblicazioni}}",
19240
19341
  "record.metadata.quality": "Qualità dei metadati",
19241
19342
  "record.metadata.quality.contact.failed": "Il contatto non è specificato",
19242
19343
  "record.metadata.quality.contact.success": "Il contatto è specificato",
@@ -19296,6 +19397,8 @@ var it = {
19296
19397
  "results.sortBy.relevancy": "Rilevanza",
19297
19398
  "search.autocomplete.error": "Impossibile recuperare le suggerimenti",
19298
19399
  "search.error.couldNotReachApi": "Problema di connessione all'API",
19400
+ "search.error.organizationHasNoDataset": "",
19401
+ "search.error.organizationNotFound": "",
19299
19402
  "search.error.receivedError": "Errore ricevuto",
19300
19403
  "search.error.recordHasnolink": "",
19301
19404
  "search.error.recordNotFound": "Impossibile trovare questo dato",
@@ -19323,9 +19426,11 @@ var it = {
19323
19426
  "search.filters.minimize": "Riduci",
19324
19427
  "search.filters.myRecords": "Visualizza i miei dati",
19325
19428
  "search.filters.myRecordsHelp": "Quando attivato, mostra solo i dati creati con il mio utente. I dati creati da altri utenti non sono visualizzati.",
19429
+ "search.filters.organization": "",
19326
19430
  "search.filters.otherRecords": "Visualizzazione dei dati di un altro utente",
19431
+ "search.filters.producerOrg": "",
19327
19432
  "search.filters.publicationYear": "Anno di pubblicazione",
19328
- "search.filters.publisher": "Organizzazioni",
19433
+ "search.filters.publisherOrg": "",
19329
19434
  "search.filters.representationType": "Tipo di rappresentazione",
19330
19435
  "search.filters.resourceType": "Tipo di risorsa",
19331
19436
  "search.filters.standard": "Standard",
@@ -19359,7 +19464,7 @@ var nl = {
19359
19464
  "Add Layer As": "",
19360
19465
  "button.login": "",
19361
19466
  "catalog.figures.datasets": "datasets",
19362
- "catalog.figures.organisations": "organisaties",
19467
+ "catalog.figures.organizations": "organisaties",
19363
19468
  "chart.aggregation.average": "gemiddelde",
19364
19469
  "chart.aggregation.count": "aantal",
19365
19470
  "chart.aggregation.max": "max",
@@ -19406,6 +19511,8 @@ var nl = {
19406
19511
  "datafeeder.datasetValidation.submitButton": "",
19407
19512
  "datafeeder.datasetValidation.title": "",
19408
19513
  "datafeeder.datasetValidation.unknown": "",
19514
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19515
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
19409
19516
  "datafeeder.form.abstract": "",
19410
19517
  "datafeeder.form.datepicker": "",
19411
19518
  "datafeeder.form.description": "",
@@ -19433,6 +19540,7 @@ var nl = {
19433
19540
  "datafeeder.publishSuccess.geonetworkRecord": "",
19434
19541
  "datafeeder.publishSuccess.illustration.title": "",
19435
19542
  "datafeeder.publishSuccess.mapViewer": "",
19543
+ "datafeeder.publishSuccess.ogcFeature": "",
19436
19544
  "datafeeder.publishSuccess.subtitle": "",
19437
19545
  "datafeeder.publishSuccess.title": "",
19438
19546
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -19461,6 +19569,15 @@ var nl = {
19461
19569
  "datafeeder.upload.maxFileSize": "",
19462
19570
  "datafeeder.upload.title": "",
19463
19571
  "datafeeder.upload.uploadButton": "",
19572
+ "datafeeder.validation.csv.delimiter": "",
19573
+ "datafeeder.validation.csv.delimiter.comma": "",
19574
+ "datafeeder.validation.csv.delimiter.semicolon": "",
19575
+ "datafeeder.validation.csv.lat.field": "",
19576
+ "datafeeder.validation.csv.lng.field": "",
19577
+ "datafeeder.validation.csv.quote.double": "",
19578
+ "datafeeder.validation.csv.quote.none": "",
19579
+ "datafeeder.validation.csv.quote.simple": "",
19580
+ "datafeeder.validation.csv.quoteChar": "",
19464
19581
  "datafeeder.validation.encoding": "",
19465
19582
  "datafeeder.validation.extent.title": "",
19466
19583
  "datafeeder.validation.extent.title.unknown": "",
@@ -19474,7 +19591,7 @@ var nl = {
19474
19591
  "datahub.header.lastRecords": "",
19475
19592
  "datahub.header.myfavorites": "",
19476
19593
  "datahub.header.news": "",
19477
- "datahub.header.organisations": "",
19594
+ "datahub.header.organizations": "",
19478
19595
  "datahub.header.popularRecords": "",
19479
19596
  "datahub.header.title.html": "",
19480
19597
  "datahub.news.contact.contactus": "",
@@ -19510,6 +19627,7 @@ var nl = {
19510
19627
  "downloads.format.unknown": "",
19511
19628
  "downloads.wfs.featuretype.not.found": "",
19512
19629
  dropFile: dropFile$1,
19630
+ "editor.record.form.keywords": "",
19513
19631
  "editor.record.form.license": "",
19514
19632
  "editor.record.form.license.cc-by": "",
19515
19633
  "editor.record.form.license.cc-by-sa": "",
@@ -19609,6 +19727,10 @@ var nl = {
19609
19727
  "organisations.sortBy.nameDesc": "",
19610
19728
  "organisations.sortBy.recordCountAsc": "",
19611
19729
  "organisations.sortBy.recordCountDesc": "",
19730
+ "organization.details.lastPublishedDatasets": "",
19731
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
19732
+ "organization.details.mailContact": "",
19733
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
19612
19734
  "pagination.nextPage": "",
19613
19735
  "pagination.page": "",
19614
19736
  "pagination.pageOf": "",
@@ -19646,7 +19768,7 @@ var nl = {
19646
19768
  "record.metadata.preview": "",
19647
19769
  "record.metadata.producer": "",
19648
19770
  "record.metadata.publication": "",
19649
- "record.metadata.publications": "",
19771
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
19650
19772
  "record.metadata.quality": "",
19651
19773
  "record.metadata.quality.contact.failed": "",
19652
19774
  "record.metadata.quality.contact.success": "",
@@ -19706,6 +19828,8 @@ var nl = {
19706
19828
  "results.sortBy.relevancy": "",
19707
19829
  "search.autocomplete.error": "",
19708
19830
  "search.error.couldNotReachApi": "",
19831
+ "search.error.organizationHasNoDataset": "",
19832
+ "search.error.organizationNotFound": "",
19709
19833
  "search.error.receivedError": "",
19710
19834
  "search.error.recordHasnolink": "",
19711
19835
  "search.error.recordNotFound": "",
@@ -19733,9 +19857,11 @@ var nl = {
19733
19857
  "search.filters.minimize": "",
19734
19858
  "search.filters.myRecords": "",
19735
19859
  "search.filters.myRecordsHelp": "",
19860
+ "search.filters.organization": "",
19736
19861
  "search.filters.otherRecords": "",
19862
+ "search.filters.producerOrg": "",
19737
19863
  "search.filters.publicationYear": "",
19738
- "search.filters.publisher": "",
19864
+ "search.filters.publisherOrg": "",
19739
19865
  "search.filters.representationType": "",
19740
19866
  "search.filters.resourceType": "",
19741
19867
  "search.filters.standard": "",
@@ -19769,7 +19895,7 @@ var pt = {
19769
19895
  "Add Layer As": "",
19770
19896
  "button.login": "",
19771
19897
  "catalog.figures.datasets": "conjuntos de dados",
19772
- "catalog.figures.organisations": "organizações",
19898
+ "catalog.figures.organizations": "organizações",
19773
19899
  "chart.aggregation.average": "média",
19774
19900
  "chart.aggregation.count": "contagem",
19775
19901
  "chart.aggregation.max": "máximo",
@@ -19816,6 +19942,8 @@ var pt = {
19816
19942
  "datafeeder.datasetValidation.submitButton": "",
19817
19943
  "datafeeder.datasetValidation.title": "",
19818
19944
  "datafeeder.datasetValidation.unknown": "",
19945
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19946
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
19819
19947
  "datafeeder.form.abstract": "",
19820
19948
  "datafeeder.form.datepicker": "",
19821
19949
  "datafeeder.form.description": "",
@@ -19843,6 +19971,7 @@ var pt = {
19843
19971
  "datafeeder.publishSuccess.geonetworkRecord": "",
19844
19972
  "datafeeder.publishSuccess.illustration.title": "",
19845
19973
  "datafeeder.publishSuccess.mapViewer": "",
19974
+ "datafeeder.publishSuccess.ogcFeature": "",
19846
19975
  "datafeeder.publishSuccess.subtitle": "",
19847
19976
  "datafeeder.publishSuccess.title": "",
19848
19977
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -19871,6 +20000,15 @@ var pt = {
19871
20000
  "datafeeder.upload.maxFileSize": "",
19872
20001
  "datafeeder.upload.title": "",
19873
20002
  "datafeeder.upload.uploadButton": "",
20003
+ "datafeeder.validation.csv.delimiter": "",
20004
+ "datafeeder.validation.csv.delimiter.comma": "",
20005
+ "datafeeder.validation.csv.delimiter.semicolon": "",
20006
+ "datafeeder.validation.csv.lat.field": "",
20007
+ "datafeeder.validation.csv.lng.field": "",
20008
+ "datafeeder.validation.csv.quote.double": "",
20009
+ "datafeeder.validation.csv.quote.none": "",
20010
+ "datafeeder.validation.csv.quote.simple": "",
20011
+ "datafeeder.validation.csv.quoteChar": "",
19874
20012
  "datafeeder.validation.encoding": "",
19875
20013
  "datafeeder.validation.extent.title": "",
19876
20014
  "datafeeder.validation.extent.title.unknown": "",
@@ -19884,7 +20022,7 @@ var pt = {
19884
20022
  "datahub.header.lastRecords": "",
19885
20023
  "datahub.header.myfavorites": "",
19886
20024
  "datahub.header.news": "",
19887
- "datahub.header.organisations": "",
20025
+ "datahub.header.organizations": "",
19888
20026
  "datahub.header.popularRecords": "",
19889
20027
  "datahub.header.title.html": "",
19890
20028
  "datahub.news.contact.contactus": "",
@@ -19920,6 +20058,7 @@ var pt = {
19920
20058
  "downloads.format.unknown": "",
19921
20059
  "downloads.wfs.featuretype.not.found": "",
19922
20060
  dropFile: dropFile,
20061
+ "editor.record.form.keywords": "",
19923
20062
  "editor.record.form.license": "",
19924
20063
  "editor.record.form.license.cc-by": "",
19925
20064
  "editor.record.form.license.cc-by-sa": "",
@@ -20019,6 +20158,10 @@ var pt = {
20019
20158
  "organisations.sortBy.nameDesc": "",
20020
20159
  "organisations.sortBy.recordCountAsc": "",
20021
20160
  "organisations.sortBy.recordCountDesc": "",
20161
+ "organization.details.lastPublishedDatasets": "",
20162
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
20163
+ "organization.details.mailContact": "",
20164
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
20022
20165
  "pagination.nextPage": "",
20023
20166
  "pagination.page": "",
20024
20167
  "pagination.pageOf": "",
@@ -20056,7 +20199,7 @@ var pt = {
20056
20199
  "record.metadata.preview": "",
20057
20200
  "record.metadata.producer": "",
20058
20201
  "record.metadata.publication": "",
20059
- "record.metadata.publications": "",
20202
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
20060
20203
  "record.metadata.quality": "",
20061
20204
  "record.metadata.quality.contact.failed": "",
20062
20205
  "record.metadata.quality.contact.success": "",
@@ -20116,6 +20259,8 @@ var pt = {
20116
20259
  "results.sortBy.relevancy": "",
20117
20260
  "search.autocomplete.error": "",
20118
20261
  "search.error.couldNotReachApi": "",
20262
+ "search.error.organizationHasNoDataset": "",
20263
+ "search.error.organizationNotFound": "",
20119
20264
  "search.error.receivedError": "",
20120
20265
  "search.error.recordHasnolink": "",
20121
20266
  "search.error.recordNotFound": "",
@@ -20143,9 +20288,11 @@ var pt = {
20143
20288
  "search.filters.minimize": "",
20144
20289
  "search.filters.myRecords": "",
20145
20290
  "search.filters.myRecordsHelp": "",
20291
+ "search.filters.organization": "",
20146
20292
  "search.filters.otherRecords": "",
20293
+ "search.filters.producerOrg": "",
20147
20294
  "search.filters.publicationYear": "",
20148
- "search.filters.publisher": "",
20295
+ "search.filters.publisherOrg": "",
20149
20296
  "search.filters.representationType": "",
20150
20297
  "search.filters.resourceType": "",
20151
20298
  "search.filters.standard": "",
@@ -21311,9 +21458,11 @@ class OrganizationsFromMetadataService {
21311
21458
  return fullOrg;
21312
21459
  return {
21313
21460
  ...fullOrg,
21461
+ email: emails[0],
21314
21462
  ...(group.description && { description: group.description }),
21315
21463
  ...(group.logo && { logoUrl: getAsUrl(`${IMAGE_URL$1}${group.logo}`) }),
21316
21464
  ...(group.website && { website: getAsUrl(group.website) }),
21465
+ ...(group.email && { email: group.email }),
21317
21466
  };
21318
21467
  });
21319
21468
  }
@@ -21414,6 +21563,7 @@ class OrganizationsFromGroupsService {
21414
21563
  return {
21415
21564
  name: group.label[lang3],
21416
21565
  ...(group.description && { description: group.description }),
21566
+ ...(group.email && { email: group.email }),
21417
21567
  ...(group.logo && {
21418
21568
  logoUrl: getAsUrl(`${IMAGE_URL}${group.logo}`),
21419
21569
  }),
@@ -21678,7 +21828,7 @@ class Gn4PlatformMapper {
21678
21828
  userFromApi(apiUser) {
21679
21829
  if (!apiUser)
21680
21830
  return null;
21681
- const { enabled, emailAddresses, organisation, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
21831
+ const { enabled, emailAddresses, organization, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
21682
21832
  return { ...apiUser, id: id.toString() };
21683
21833
  }
21684
21834
  keywordsFromApi(keywords, thesaurus, lang3) {
@@ -21780,8 +21930,6 @@ class Gn4PlatformService {
21780
21930
  this.allThesaurus$ = this.httpClient
21781
21931
  .get(`${this.registriesApiService.configuration.basePath}/thesaurus?_content_type=json`)
21782
21932
  .pipe(map$1((thesaurus) => {
21783
- // FIXME: find a better way to exclude place keywords
21784
- // thesaurus[0].filter((thes) => thes.dname !== 'place')
21785
21933
  return thesaurus[0];
21786
21934
  }), shareReplay(1));
21787
21935
  this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
@@ -21825,8 +21973,14 @@ class Gn4PlatformService {
21825
21973
  }
21826
21974
  return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
21827
21975
  }
21828
- searchKeywords(query) {
21829
- const keywords$ = this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, null, null, `*${query}*`);
21976
+ searchKeywords(query, keywordTypes) {
21977
+ const keywords$ = this.allThesaurus$.pipe(switchMap((thesaurus) => {
21978
+ const selectedThesauri = [];
21979
+ keywordTypes.map((keywordType) => {
21980
+ selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
21981
+ });
21982
+ return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
21983
+ }));
21830
21984
  return combineLatest([keywords$, this.allThesaurus$]).pipe(map$1(([keywords, thesaurus]) => {
21831
21985
  return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
21832
21986
  }));
@@ -26875,11 +27029,11 @@ class ApiCardComponent {
26875
27029
  }
26876
27030
  }
26877
27031
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26878
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden\"\n [ngClass]=\"{ 'cursor-pointer': displayApiFormButton }\"\n (click)=\"openRecordApiFormPanel()\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <gn-ui-copy-text-button\n *ngIf=\"!displayApiFormButton\"\n [text]=\"link.url.toString()\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.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: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27032
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.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: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26879
27033
  }
26880
27034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, decorators: [{
26881
27035
  type: Component,
26882
- args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden\"\n [ngClass]=\"{ 'cursor-pointer': displayApiFormButton }\"\n (click)=\"openRecordApiFormPanel()\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <gn-ui-copy-text-button\n *ngIf=\"!displayApiFormButton\"\n [text]=\"link.url.toString()\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n</div>\n" }]
27036
+ args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
26883
27037
  }], propDecorators: { link: [{
26884
27038
  type: Input
26885
27039
  }], currentLink: [{
@@ -27024,17 +27178,19 @@ var ErrorType;
27024
27178
  ErrorType[ErrorType["RECEIVED_ERROR"] = 1] = "RECEIVED_ERROR";
27025
27179
  ErrorType[ErrorType["RECORD_NOT_FOUND"] = 2] = "RECORD_NOT_FOUND";
27026
27180
  ErrorType[ErrorType["DATASET_HAS_NO_LINK"] = 3] = "DATASET_HAS_NO_LINK";
27181
+ ErrorType[ErrorType["ORGANIZATION_HAS_NO_DATASET"] = 4] = "ORGANIZATION_HAS_NO_DATASET";
27182
+ ErrorType[ErrorType["ORGANIZATION_NOT_FOUND"] = 5] = "ORGANIZATION_NOT_FOUND";
27027
27183
  })(ErrorType || (ErrorType = {}));
27028
27184
  class ErrorComponent {
27029
27185
  constructor() {
27030
27186
  this.types = ErrorType;
27031
27187
  }
27032
27188
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27033
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ErrorComponent, selector: "gn-ui-error", inputs: { type: "type", error: "error", recordId: "recordId" }, ngImport: i0, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark</mat-icon\n >\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark</mat-icon\n >\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark</mat-icon\n >\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"], dependencies: [{ kind: "directive", type: i1$3.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: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ErrorComponent, selector: "gn-ui-error", inputs: { type: "type", error: "error", recordId: "recordId" }, ngImport: i0, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark\n </mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div *ngIf=\"type === types.ORGANIZATION_HAS_NO_DATASET\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.organizationHasNoDataset</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.ORGANIZATION_NOT_FOUND\"\n data-test=\"org-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.organizationNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"], dependencies: [{ kind: "directive", type: i1$3.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: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27034
27190
  }
27035
27191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, decorators: [{
27036
27192
  type: Component,
27037
- args: [{ selector: 'gn-ui-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark</mat-icon\n >\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark</mat-icon\n >\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark</mat-icon\n >\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"] }]
27193
+ args: [{ selector: 'gn-ui-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark\n </mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div *ngIf=\"type === types.ORGANIZATION_HAS_NO_DATASET\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.organizationHasNoDataset</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.ORGANIZATION_NOT_FOUND\"\n data-test=\"org-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.organizationNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"] }]
27038
27194
  }], propDecorators: { type: [{
27039
27195
  type: Input
27040
27196
  }], error: [{
@@ -27134,71 +27290,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27134
27290
  type: Output
27135
27291
  }] } });
27136
27292
 
27137
- class MaxLinesComponent {
27138
- constructor(cdr) {
27139
- this.cdr = cdr;
27140
- this.maxLines = 6;
27141
- this.isExpanded = false;
27142
- this.maxHeight = '';
27143
- this.showToggleButton = false;
27144
- }
27145
- ngAfterViewInit() {
27146
- this.calculateMaxHeight();
27147
- this.observer = new ResizeObserver((mutations) => {
27148
- mutations.forEach(() => {
27149
- this.calculateMaxHeight();
27150
- });
27151
- });
27152
- this.observer.observe(this.container.nativeElement.children[0]);
27153
- }
27154
- toggleDisplay() {
27155
- this.isExpanded = !this.isExpanded;
27156
- this.calculateMaxHeight();
27157
- }
27158
- calculateMaxHeight() {
27159
- const containerElement = this.container.nativeElement;
27160
- const contentElement = containerElement.children[0];
27161
- const contentHeight = contentElement.getBoundingClientRect().height;
27162
- if (contentHeight) {
27163
- if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
27164
- this.showToggleButton = true;
27165
- this.maxHeight = this.isExpanded
27166
- ? `${contentHeight}px`
27167
- : `${this.maxLines * this.getLineHeight(contentElement)}px`;
27168
- }
27169
- else {
27170
- this.showToggleButton = false;
27171
- this.maxHeight = `${contentHeight}px`;
27172
- }
27173
- containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
27174
- this.cdr.detectChanges();
27175
- }
27176
- }
27177
- getLineHeight(element) {
27178
- const computedStyle = window.getComputedStyle(element);
27179
- const lineHeight = parseFloat(computedStyle.lineHeight);
27180
- const fontSize = parseFloat(computedStyle.fontSize || '14');
27181
- const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
27182
- return result;
27183
- }
27184
- ngOnDestroy() {
27185
- if (!this.observer)
27186
- return;
27187
- this.observer.unobserve(this.container.nativeElement.children[0]);
27188
- }
27189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27191
- }
27192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
27193
- type: Component,
27194
- args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
27195
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
27196
- type: Input
27197
- }], container: [{
27198
- type: ViewChild,
27199
- args: ['container']
27200
- }] } });
27201
-
27202
27293
  class MetadataCatalogComponent {
27203
27294
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27204
27295
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataCatalogComponent, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div>\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -27273,6 +27364,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27273
27364
  args: ['contentDiv']
27274
27365
  }] } });
27275
27366
 
27367
+ class MaxLinesComponent {
27368
+ constructor(cdr) {
27369
+ this.cdr = cdr;
27370
+ this.maxLines = 6;
27371
+ this.isExpanded = false;
27372
+ this.maxHeight = '';
27373
+ this.showToggleButton = false;
27374
+ }
27375
+ ngAfterViewInit() {
27376
+ this.calculateMaxHeight();
27377
+ this.observer = new ResizeObserver((mutations) => {
27378
+ mutations.forEach(() => {
27379
+ this.calculateMaxHeight();
27380
+ });
27381
+ });
27382
+ this.observer.observe(this.container.nativeElement.children[0]);
27383
+ }
27384
+ toggleDisplay() {
27385
+ this.isExpanded = !this.isExpanded;
27386
+ this.calculateMaxHeight();
27387
+ }
27388
+ calculateMaxHeight() {
27389
+ const containerElement = this.container.nativeElement;
27390
+ const contentElement = containerElement.children[0];
27391
+ const contentHeight = contentElement.getBoundingClientRect().height;
27392
+ if (contentHeight) {
27393
+ if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
27394
+ this.showToggleButton = true;
27395
+ this.maxHeight = this.isExpanded
27396
+ ? `${contentHeight}px`
27397
+ : `${this.maxLines * this.getLineHeight(contentElement)}px`;
27398
+ }
27399
+ else {
27400
+ this.showToggleButton = false;
27401
+ this.maxHeight = `${contentHeight}px`;
27402
+ }
27403
+ containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
27404
+ this.cdr.detectChanges();
27405
+ }
27406
+ }
27407
+ getLineHeight(element) {
27408
+ const computedStyle = window.getComputedStyle(element);
27409
+ const lineHeight = parseFloat(computedStyle.lineHeight);
27410
+ const fontSize = parseFloat(computedStyle.fontSize || '14');
27411
+ const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
27412
+ return result;
27413
+ }
27414
+ ngOnDestroy() {
27415
+ if (!this.observer)
27416
+ return;
27417
+ this.observer.unobserve(this.container.nativeElement.children[0]);
27418
+ }
27419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27420
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27421
+ }
27422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
27423
+ type: Component,
27424
+ args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
27425
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
27426
+ type: Input
27427
+ }], container: [{
27428
+ type: ViewChild,
27429
+ args: ['container']
27430
+ }] } });
27431
+
27276
27432
  /* eslint-disable @angular-eslint/directive-selector */
27277
27433
  class GnUiLinkifyDirective {
27278
27434
  constructor(el, renderer) {
@@ -27412,7 +27568,7 @@ class MetadataInfoComponent {
27412
27568
  this.keyword.emit(keyword);
27413
27569
  }
27414
27570
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27415
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block 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 </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 *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\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 mt-5 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>\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$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.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: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27571
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block 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 </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 *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\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 mt-5 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>\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$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.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: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27416
27572
  }
27417
27573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, decorators: [{
27418
27574
  type: Component,
@@ -27683,13 +27839,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27683
27839
  }] } });
27684
27840
 
27685
27841
  class RelatedRecordCardComponent {
27842
+ constructor() {
27843
+ this.extraClass = '';
27844
+ this.baseClasses = [
27845
+ 'w-72',
27846
+ 'h-96',
27847
+ 'overflow-hidden',
27848
+ 'rounded-lg',
27849
+ 'bg-white',
27850
+ 'cursor-pointer',
27851
+ 'block',
27852
+ 'hover:-translate-y-2 ',
27853
+ 'duration-[180ms]',
27854
+ ].join(' ');
27855
+ }
27856
+ get classList() {
27857
+ return `${this.baseClasses} ${this.extraClass}`;
27858
+ }
27686
27859
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27687
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record" }, ngImport: i0, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27860
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27688
27861
  }
27689
27862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
27690
27863
  type: Component,
27691
- args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n" }]
27692
- }], propDecorators: { record: [{
27864
+ args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n" }]
27865
+ }], ctorParameters: function () { return []; }, propDecorators: { record: [{
27866
+ type: Input
27867
+ }], extraClass: [{
27693
27868
  type: Input
27694
27869
  }] } });
27695
27870
 
@@ -28246,7 +28421,6 @@ class UiElementsModule {
28246
28421
  UserPreviewComponent,
28247
28422
  GnUiLinkifyDirective,
28248
28423
  PaginationButtonsComponent,
28249
- MaxLinesComponent,
28250
28424
  RecordApiFormComponent,
28251
28425
  UserFeedbackItemComponent,
28252
28426
  ImageOverlayPreviewComponent], imports: [CommonModule,
@@ -28261,7 +28435,8 @@ class UiElementsModule {
28261
28435
  MarkdownParserComponent,
28262
28436
  ThumbnailComponent,
28263
28437
  TimeSincePipe,
28264
- BadgeComponent], exports: [MetadataInfoComponent,
28438
+ BadgeComponent,
28439
+ MaxLinesComponent], exports: [MetadataInfoComponent,
28265
28440
  ContentGhostComponent,
28266
28441
  DownloadItemComponent,
28267
28442
  DownloadsListComponent,
@@ -28277,7 +28452,6 @@ class UiElementsModule {
28277
28452
  AvatarComponent,
28278
28453
  UserPreviewComponent,
28279
28454
  PaginationButtonsComponent,
28280
- MaxLinesComponent,
28281
28455
  RecordApiFormComponent,
28282
28456
  MarkdownParserComponent,
28283
28457
  UserFeedbackItemComponent,
@@ -28293,7 +28467,8 @@ class UiElementsModule {
28293
28467
  UiInputsModule,
28294
28468
  FormsModule,
28295
28469
  ThumbnailComponent,
28296
- BadgeComponent] }); }
28470
+ BadgeComponent,
28471
+ MaxLinesComponent] }); }
28297
28472
  }
28298
28473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiElementsModule, decorators: [{
28299
28474
  type: NgModule,
@@ -28314,6 +28489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28314
28489
  ThumbnailComponent,
28315
28490
  TimeSincePipe,
28316
28491
  BadgeComponent,
28492
+ MaxLinesComponent,
28317
28493
  ],
28318
28494
  declarations: [
28319
28495
  MetadataInfoComponent,
@@ -28332,7 +28508,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28332
28508
  UserPreviewComponent,
28333
28509
  GnUiLinkifyDirective,
28334
28510
  PaginationButtonsComponent,
28335
- MaxLinesComponent,
28336
28511
  RecordApiFormComponent,
28337
28512
  UserFeedbackItemComponent,
28338
28513
  ImageOverlayPreviewComponent,
@@ -28354,7 +28529,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28354
28529
  AvatarComponent,
28355
28530
  UserPreviewComponent,
28356
28531
  PaginationButtonsComponent,
28357
- MaxLinesComponent,
28358
28532
  RecordApiFormComponent,
28359
28533
  MarkdownParserComponent,
28360
28534
  UserFeedbackItemComponent,
@@ -29111,6 +29285,9 @@ const getSearchResults = createSelector(getSearchStateSearch, (state) => state.r
29111
29285
  const getSearchResultsLoading = createSelector(getSearchStateSearch, (state) => state.loadingResults);
29112
29286
  const getSearchResultsAggregations = createSelector(getSearchStateSearch, (state) => state.results.aggregations);
29113
29287
  const getSearchResultsHits = createSelector(getSearchStateSearch, (state) => state.results.count);
29288
+ const isBeginningOfResults = createSelector(getSearchStateSearch, (state) => {
29289
+ return state.params.currentPage === 0;
29290
+ });
29114
29291
  const isEndOfResults = createSelector(getSearchStateSearch, (state) => {
29115
29292
  return (state.params.currentPage * state.params.pageSize +
29116
29293
  state.params.pageSize >=
@@ -29144,6 +29321,7 @@ class SearchFacade {
29144
29321
  this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId));
29145
29322
  this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId));
29146
29323
  this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId));
29324
+ this.isBeginningOfResults$ = this.store.pipe(select(isBeginningOfResults, searchId));
29147
29325
  this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId));
29148
29326
  this.totalPages$ = this.store.pipe(select(totalPages, searchId));
29149
29327
  this.currentPage$ = this.store.pipe(select(currentPage, searchId));
@@ -30340,12 +30518,14 @@ marker('search.filters.keyword');
30340
30518
  marker('search.filters.isSpatial');
30341
30519
  marker('search.filters.license');
30342
30520
  marker('search.filters.publicationYear');
30343
- marker('search.filters.publisher');
30521
+ marker('search.filters.organization');
30344
30522
  marker('search.filters.representationType');
30345
30523
  marker('search.filters.resourceType');
30346
30524
  marker('search.filters.standard');
30347
30525
  marker('search.filters.topic');
30348
30526
  marker('search.filters.contact');
30527
+ marker('search.filters.producerOrg');
30528
+ marker('search.filters.publisherOrg');
30349
30529
  class FieldsService {
30350
30530
  get supportedFields() {
30351
30531
  return Object.keys(this.fields);
@@ -30353,7 +30533,7 @@ class FieldsService {
30353
30533
  constructor(injector) {
30354
30534
  this.injector = injector;
30355
30535
  this.fields = {
30356
- publisher: new OrganizationSearchField(this.injector),
30536
+ organization: new OrganizationSearchField(this.injector),
30357
30537
  format: new SimpleSearchField('format', this.injector, 'asc'),
30358
30538
  resourceType: new TranslatedSearchField('resourceType', this.injector, 'asc'),
30359
30539
  representationType: new TranslatedSearchField('cl_spatialRepresentationType.key', this.injector, 'asc'),
@@ -30366,6 +30546,8 @@ class FieldsService {
30366
30546
  q: new FullTextSearchField(),
30367
30547
  license: new LicenseSearchField(this.injector),
30368
30548
  owner: new OwnerSearchField(this.injector),
30549
+ producerOrg: new MultilingualSearchField('originatorOrgForResourceObject', this.injector, 'asc', 'key'),
30550
+ publisherOrg: new MultilingualSearchField('distributorOrgForResourceObject', this.injector, 'asc', 'key'),
30369
30551
  };
30370
30552
  }
30371
30553
  getAvailableValues(fieldName) {
@@ -31383,12 +31565,9 @@ const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => sta
31383
31565
 
31384
31566
  class FigureComponent {
31385
31567
  constructor() {
31568
+ this.unit = '';
31386
31569
  this.color = 'primary';
31387
31570
  }
31388
- get hoverTitle() {
31389
- return `${this.figure.toString()} ${this.unit || ''}
31390
- ${this.title}`;
31391
- }
31392
31571
  get textClass() {
31393
31572
  return this.color === 'primary' ? 'text-primary' : 'text-secondary';
31394
31573
  }
@@ -31396,11 +31575,11 @@ ${this.title}`;
31396
31575
  return this.color === 'primary' ? 'bg-primary-white' : 'bg-secondary-white';
31397
31576
  }
31398
31577
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FigureComponent, selector: "gn-ui-figure", inputs: { icon: "icon", title: "title", figure: "figure", unit: "unit", color: "color" }, ngImport: i0, template: "<div\n translate\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n [title]=\"hoverTitle\"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\">{{ figure }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31578
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FigureComponent, selector: "gn-ui-figure", inputs: { icon: "icon", title: "title", figure: "figure", unit: "unit", color: "color" }, ngImport: i0, template: "<div\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n data-test=\"figureTitle\"\n [title]=\"\n figure.toString() +\n ' ' +\n unit +\n ' ' +\n (title | translate: { count: figure })\n \"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\" data-test=\"figure\">{{\n figure\n }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31400
31579
  }
31401
31580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, decorators: [{
31402
31581
  type: Component,
31403
- args: [{ selector: 'gn-ui-figure', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n translate\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n [title]=\"hoverTitle\"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\">{{ figure }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"] }]
31582
+ args: [{ selector: 'gn-ui-figure', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n data-test=\"figureTitle\"\n [title]=\"\n figure.toString() +\n ' ' +\n unit +\n ' ' +\n (title | translate: { count: figure })\n \"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\" data-test=\"figure\">{{\n figure\n }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"] }]
31404
31583
  }], propDecorators: { icon: [{
31405
31584
  type: Input
31406
31585
  }], title: [{
@@ -32987,7 +33166,10 @@ class MdViewFacade {
32987
33166
  return collectionRecords && collectionRecords.geometry
32988
33167
  ? link
32989
33168
  : null;
32990
- }), defaultIfEmpty(null));
33169
+ }), defaultIfEmpty(null), catchError((e) => {
33170
+ console.error(e);
33171
+ return of(null);
33172
+ }));
32991
33173
  }
32992
33174
  else {
32993
33175
  return of(link);
@@ -33348,15 +33530,15 @@ class OrganisationPreviewComponent {
33348
33530
  }
33349
33531
  clickOrganisation(event) {
33350
33532
  event.preventDefault();
33351
- this.clickedOrganisation.emit(this.organisation);
33533
+ this.clickedOrganisation.emit(this.organization);
33352
33534
  }
33353
33535
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33354
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: { organisation: "organisation", organisationUrl: "organisationUrl" }, outputs: { clickedOrganisation: "clickedOrganisation" }, ngImport: i0, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organisation.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organisation.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organisation.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organisation.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organisation.recordCount\n }}</span>\n <span translate>record.metadata.publications</span>\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33536
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: { organization: "organization", organisationUrl: "organisationUrl" }, outputs: { clickedOrganisation: "clickedOrganisation" }, ngImport: i0, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organization.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organization.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organization.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organization.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organization.recordCount\n }}</span>\n <span translate [translateParams]=\"{ count: organization.recordCount }\"\n >record.metadata.publications</span\n >\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33355
33537
  }
33356
33538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
33357
33539
  type: Component,
33358
- args: [{ selector: 'gn-ui-organisation-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organisation.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organisation.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organisation.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organisation.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organisation.recordCount\n }}</span>\n <span translate>record.metadata.publications</span>\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"] }]
33359
- }], propDecorators: { organisation: [{
33540
+ args: [{ selector: 'gn-ui-organisation-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organization.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organization.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organization.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organization.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organization.recordCount\n }}</span>\n <span translate [translateParams]=\"{ count: organization.recordCount }\"\n >record.metadata.publications</span\n >\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"] }]
33541
+ }], propDecorators: { organization: [{
33360
33542
  type: Input
33361
33543
  }], organisationUrl: [{
33362
33544
  type: Input
@@ -33468,7 +33650,8 @@ class UiCatalogModule {
33468
33650
  LanguageSwitcherComponent,
33469
33651
  OrganisationsResultComponent], imports: [CommonModule, i1$1.TranslateModule, UiElementsModule,
33470
33652
  UiInputsModule,
33471
- MatIconModule], exports: [CatalogTitleComponent,
33653
+ MatIconModule,
33654
+ RouterLink], exports: [CatalogTitleComponent,
33472
33655
  OrganisationPreviewComponent,
33473
33656
  OrganisationsFilterComponent,
33474
33657
  LanguageSwitcherComponent,
@@ -33495,6 +33678,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33495
33678
  UiElementsModule,
33496
33679
  UiInputsModule,
33497
33680
  MatIconModule,
33681
+ RouterLink,
33498
33682
  ],
33499
33683
  exports: [
33500
33684
  CatalogTitleComponent,
@@ -33542,6 +33726,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33542
33726
  type: Input
33543
33727
  }] } });
33544
33728
 
33729
+ // expects the replacement key ${name}
33730
+ const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken('organization-page-url-token');
33731
+
33545
33732
  class OrganisationsComponent {
33546
33733
  constructor(organisationsService, urlTemplate) {
33547
33734
  this.organisationsService = organisationsService;
@@ -33613,17 +33800,17 @@ class OrganisationsComponent {
33613
33800
  return null;
33614
33801
  return this.urlTemplate.replace('${name}', organisation.name);
33615
33802
  }
33616
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, deps: [{ token: OrganizationsServiceInterface }, { token: ORGANIZATION_URL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
33617
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationsComponent, selector: "gn-ui-organisations", inputs: { itemsOnPage: "itemsOnPage" }, outputs: { orgSelect: "orgSelect" }, ngImport: i0, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organisation]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: ["organisation", "organisationUrl"], outputs: ["clickedOrganisation"] }, { kind: "component", type: OrganisationsFilterComponent, selector: "gn-ui-organisations-filter", outputs: ["sortBy", "filterBy"] }, { kind: "component", type: OrganisationsResultComponent, selector: "gn-ui-organisations-result", inputs: ["hits", "total"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "component", type: PaginationComponent, selector: "gn-ui-pagination", inputs: ["currentPage", "nPages", "hideButton"], outputs: ["newCurrentPageEvent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, deps: [{ token: OrganizationsServiceInterface }, { token: ORGANIZATION_PAGE_URL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
33804
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationsComponent, selector: "gn-ui-organisations", inputs: { itemsOnPage: "itemsOnPage" }, outputs: { orgSelect: "orgSelect" }, ngImport: i0, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organization]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: ["organization", "organisationUrl"], outputs: ["clickedOrganisation"] }, { kind: "component", type: OrganisationsFilterComponent, selector: "gn-ui-organisations-filter", outputs: ["sortBy", "filterBy"] }, { kind: "component", type: OrganisationsResultComponent, selector: "gn-ui-organisations-result", inputs: ["hits", "total"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "component", type: PaginationComponent, selector: "gn-ui-pagination", inputs: ["currentPage", "nPages", "hideButton"], outputs: ["newCurrentPageEvent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33618
33805
  }
33619
33806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, decorators: [{
33620
33807
  type: Component,
33621
- args: [{ selector: 'gn-ui-organisations', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organisation]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n" }]
33808
+ args: [{ selector: 'gn-ui-organisations', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organization]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n" }]
33622
33809
  }], ctorParameters: function () { return [{ type: OrganizationsServiceInterface }, { type: undefined, decorators: [{
33623
33810
  type: Optional
33624
33811
  }, {
33625
33812
  type: Inject,
33626
- args: [ORGANIZATION_URL_TOKEN]
33813
+ args: [ORGANIZATION_PAGE_URL_TOKEN]
33627
33814
  }] }]; }, propDecorators: { itemsOnPage: [{
33628
33815
  type: Input
33629
33816
  }], orgSelect: [{
@@ -33702,9 +33889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33702
33889
  class RecordsService {
33703
33890
  constructor(recordsRepository) {
33704
33891
  this.recordsRepository = recordsRepository;
33705
- this.recordsCount$ = this.recordsRepository
33706
- .getMatchesCount({})
33707
- .pipe(shareReplay(1), catchError(() => of(0)));
33892
+ this.recordsCount$ = of(true).pipe(switchMap(() => this.recordsRepository.getMatchesCount({})), shareReplay(1));
33708
33893
  }
33709
33894
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, deps: [{ token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
33710
33895
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, providedIn: 'root' }); }
@@ -34603,7 +34788,9 @@ class FormFieldKeywordsComponent {
34603
34788
  return `${item.title} (${item.value.thesaurus?.name})`;
34604
34789
  };
34605
34790
  this.autoCompleteAction = (query) => {
34606
- return this.platformService.searchKeywords(query).pipe(map$2((keywords) => keywords.map((keyword) => {
34791
+ return this.platformService
34792
+ .searchKeywords(query, ['temporal', 'theme', 'other'])
34793
+ .pipe(map$2((keywords) => keywords.map((keyword) => {
34607
34794
  return { title: keyword.label, value: keyword };
34608
34795
  })));
34609
34796
  };
@@ -35179,6 +35366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35179
35366
  const ROUTER_STATE_KEY = 'router';
35180
35367
  const ROUTER_ROUTE_SEARCH = 'search';
35181
35368
  const ROUTER_ROUTE_DATASET = 'dataset';
35369
+ const ROUTER_ROUTE_ORGANIZATION = 'organization';
35182
35370
  var ROUTE_PARAMS;
35183
35371
  (function (ROUTE_PARAMS) {
35184
35372
  ROUTE_PARAMS["SORT"] = "_sort";
@@ -35210,11 +35398,18 @@ class RouterService {
35210
35398
  path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
35211
35399
  component: this.routerConfig.recordRouteComponent,
35212
35400
  },
35401
+ {
35402
+ path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
35403
+ component: this.routerConfig.organizationRouteComponent,
35404
+ },
35213
35405
  ];
35214
35406
  }
35215
35407
  getSearchRoute() {
35216
35408
  return ROUTER_ROUTE_SEARCH;
35217
35409
  }
35410
+ getOrganizationPageRoute() {
35411
+ return ROUTER_ROUTE_ORGANIZATION;
35412
+ }
35218
35413
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [{ token: ROUTER_CONFIG }, { token: i1$7.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
35219
35414
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
35220
35415
  }
@@ -35261,6 +35456,13 @@ class RouterFacade {
35261
35456
  this.store.dispatch(setIncompleteMetadata({ incomplete: metadata }));
35262
35457
  });
35263
35458
  }
35459
+ goToOrganization(organizationName) {
35460
+ const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`;
35461
+ this.go({
35462
+ path,
35463
+ queryParamsHandling: '',
35464
+ });
35465
+ }
35264
35466
  updateSearch(query) {
35265
35467
  this.go({
35266
35468
  path: this.routerService.getSearchRoute(),
@@ -35541,5 +35743,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35541
35743
  * Generated bundle index. Do not edit.
35542
35744
  */
35543
35745
 
35544
- export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
35746
+ export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
35545
35747
  //# sourceMappingURL=geonetwork-ui.mjs.map