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

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 (169) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  4. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +2 -2
  6. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -5
  7. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  8. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  9. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  10. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  11. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
  12. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  13. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  14. package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -2
  16. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +5 -5
  17. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
  18. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
  19. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
  20. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +6 -3
  21. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  22. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  23. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  24. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  25. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  26. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  27. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
  28. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  29. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
  30. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  31. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  32. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  33. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  34. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +4 -4
  35. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  36. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -9
  37. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  38. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  39. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  40. package/esm2022/translations/de.json +58 -33
  41. package/esm2022/translations/en.json +29 -4
  42. package/esm2022/translations/es.json +29 -4
  43. package/esm2022/translations/fr.json +30 -5
  44. package/esm2022/translations/it.json +29 -4
  45. package/esm2022/translations/nl.json +29 -4
  46. package/esm2022/translations/pt.json +29 -4
  47. package/fesm2022/geonetwork-ui.mjs +496 -204
  48. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  49. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  50. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  51. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  52. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  53. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  54. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -1
  55. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  56. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  57. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  58. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -1
  59. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  60. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  61. package/libs/feature/catalog/src/index.d.ts +1 -0
  62. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  63. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  64. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  65. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  66. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  67. package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
  68. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  69. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
  70. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  71. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
  72. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  73. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
  74. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  75. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  76. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  77. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  78. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  79. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  80. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  81. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  82. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  83. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  84. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  85. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  86. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  87. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  88. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  89. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  90. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
  91. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  92. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  93. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  94. package/libs/ui/elements/src/index.d.ts +0 -1
  95. package/libs/ui/elements/src/index.d.ts.map +1 -1
  96. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  97. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  98. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  99. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  100. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -19
  101. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  102. package/libs/ui/layout/src/index.d.ts +1 -0
  103. package/libs/ui/layout/src/index.d.ts.map +1 -1
  104. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  105. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  106. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  107. package/package.json +1 -1
  108. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
  109. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  110. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  111. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  112. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +1 -1
  113. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +26 -15
  114. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  115. package/src/libs/common/domain/src/lib/platform.service.interface.ts +5 -1
  116. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -0
  117. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  118. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  119. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  120. package/src/libs/feature/catalog/src/index.ts +1 -0
  121. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
  122. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  123. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  124. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  125. package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
  126. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +8 -6
  127. package/src/libs/feature/editor/src/lib/fields.config.ts +4 -4
  128. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
  129. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
  130. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
  131. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
  132. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +6 -2
  133. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  134. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  135. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  136. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
  137. package/src/libs/feature/search/src/lib/state/search.facade.ts +5 -0
  138. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  139. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
  140. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  141. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  142. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
  143. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  144. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  145. package/src/libs/ui/elements/src/index.ts +0 -1
  146. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  147. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  148. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  149. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  150. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  151. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -4
  152. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
  153. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
  154. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
  155. package/src/libs/ui/layout/src/index.ts +1 -0
  156. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
  157. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  158. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  159. package/translations/de.json +58 -33
  160. package/translations/en.json +29 -4
  161. package/translations/es.json +29 -4
  162. package/translations/fr.json +30 -5
  163. package/translations/it.json +29 -4
  164. package/translations/nl.json +29 -4
  165. package/translations/pt.json +29 -4
  166. package/translations/sk.json +30 -5
  167. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  168. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  169. /package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.css +0 -0
@@ -2176,6 +2176,7 @@ const mapKeywords = (thesauri, language) => {
2176
2176
  keywords.push({
2177
2177
  label: selectTranslatedValue(keyword, language),
2178
2178
  type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
2179
+ ...(keyword.link && { key: keyword.link }),
2179
2180
  ...(thesaurus && { thesaurus }),
2180
2181
  });
2181
2182
  }
@@ -17309,7 +17310,7 @@ var de = {
17309
17310
  "Add Layer As": "",
17310
17311
  "button.login": "",
17311
17312
  "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}}",
17313
+ "catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
17313
17314
  "chart.aggregation.average": "Durchschnitt",
17314
17315
  "chart.aggregation.count": "Anzahl",
17315
17316
  "chart.aggregation.max": "Maximum",
@@ -17356,6 +17357,8 @@ var de = {
17356
17357
  "datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
17357
17358
  "datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
17358
17359
  "datafeeder.datasetValidation.unknown": " - ",
17360
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
17361
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
17359
17362
  "datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
17360
17363
  "datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
17361
17364
  "datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
@@ -17383,6 +17386,7 @@ var de = {
17383
17386
  "datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
17384
17387
  "datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
17385
17388
  "datafeeder.publishSuccess.mapViewer": "Kartenviewer",
17389
+ "datafeeder.publishSuccess.ogcFeature": "",
17386
17390
  "datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
17387
17391
  "datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
17388
17392
  "datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
@@ -17411,6 +17415,15 @@ var de = {
17411
17415
  "datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
17412
17416
  "datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
17413
17417
  "datafeeder.upload.uploadButton": "Hochladen",
17418
+ "datafeeder.validation.csv.delimiter": "",
17419
+ "datafeeder.validation.csv.delimiter.comma": "",
17420
+ "datafeeder.validation.csv.delimiter.semicolon": "",
17421
+ "datafeeder.validation.csv.lat.field": "",
17422
+ "datafeeder.validation.csv.lng.field": "",
17423
+ "datafeeder.validation.csv.quote.double": "",
17424
+ "datafeeder.validation.csv.quote.none": "",
17425
+ "datafeeder.validation.csv.quote.simple": "",
17426
+ "datafeeder.validation.csv.quoteChar": "",
17414
17427
  "datafeeder.validation.encoding": "Codierung",
17415
17428
  "datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
17416
17429
  "datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
@@ -17424,7 +17437,7 @@ var de = {
17424
17437
  "datahub.header.lastRecords": "Die neuesten",
17425
17438
  "datahub.header.myfavorites": "Meine Favoriten",
17426
17439
  "datahub.header.news": "Startseite",
17427
- "datahub.header.organisations": "Organisationen",
17440
+ "datahub.header.organizations": "Organisationen",
17428
17441
  "datahub.header.popularRecords": "Die beliebtesten",
17429
17442
  "datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
17430
17443
  "datahub.news.contact.contactus": "Kontaktieren Sie uns",
@@ -17460,37 +17473,42 @@ var de = {
17460
17473
  "downloads.format.unknown": "unbekannt",
17461
17474
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
17462
17475
  dropFile: dropFile$6,
17476
+ "editor.record.form.abstract": "Kurzbeschreibung",
17477
+ "editor.record.form.keywords": "Schlüsselwörter",
17463
17478
  "editor.record.form.license": "Lizenz",
17464
- "editor.record.form.license.cc-by": "",
17465
- "editor.record.form.license.cc-by-sa": "",
17466
- "editor.record.form.license.cc-zero": "",
17467
- "editor.record.form.license.etalab": "",
17468
- "editor.record.form.license.etalab-v2": "",
17469
- "editor.record.form.license.odbl": "",
17470
- "editor.record.form.license.odc-by": "",
17471
- "editor.record.form.license.pddl": "",
17479
+ "editor.record.form.license.cc-by": "Creative Commons CC-BY",
17480
+ "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
17481
+ "editor.record.form.license.cc-zero": "Creative Commons CC-0",
17482
+ "editor.record.form.license.etalab": "Offene Lizenz (Etalab)",
17483
+ "editor.record.form.license.etalab-v2": "Offene Lizenz v2.0 (Etalab)",
17484
+ "editor.record.form.license.odbl": "Open Data Commons ODbL",
17485
+ "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
17486
+ "editor.record.form.license.pddl": "Open Data Commons PDDL",
17472
17487
  "editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
17473
- "editor.record.form.resourceUpdated": "",
17474
- "editor.record.form.temporalExtents": "",
17475
- "editor.record.form.temporalExtents.addDate": "",
17476
- "editor.record.form.temporalExtents.addRange": "",
17477
- "editor.record.form.temporalExtents.date": "",
17478
- "editor.record.form.temporalExtents.range": "",
17479
- "editor.record.form.updateFrequency": "",
17480
- "editor.record.form.updateFrequency.planned": "",
17481
- "editor.record.loadError.body": "",
17482
- "editor.record.loadError.closeMessage": "",
17483
- "editor.record.loadError.title": "",
17484
- "editor.record.publish": "",
17485
- "editor.record.publishError.body": "",
17486
- "editor.record.publishError.closeMessage": "",
17487
- "editor.record.publishError.title": "",
17488
- "editor.record.publishSuccess.body": "",
17489
- "editor.record.publishSuccess.title": "",
17490
- "editor.record.saveStatus.asDraftOnly": "",
17491
- "editor.record.saveStatus.draftWithChangesPending": "",
17492
- "editor.record.saveStatus.recordUpToDate": "",
17493
- "editor.record.upToDate": "",
17488
+ "editor.record.form.metadata.title": "Metadaten-Titel",
17489
+ "editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
17490
+ "editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
17491
+ "editor.record.form.temporalExtents": "Zeitlicher Umfang",
17492
+ "editor.record.form.temporalExtents.addDate": "Zeitpunkt",
17493
+ "editor.record.form.temporalExtents.addRange": "Zeitraum",
17494
+ "editor.record.form.temporalExtents.date": "Datum",
17495
+ "editor.record.form.temporalExtents.range": "Datumsbereich",
17496
+ "editor.record.form.unique.identifier": "Eindeutige Kennung (ID)",
17497
+ "editor.record.form.updateFrequency": "Aktualisierungshäufigkeit",
17498
+ "editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
17499
+ "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
17500
+ "editor.record.loadError.closeMessage": "Verstanden",
17501
+ "editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
17502
+ "editor.record.publish": "Diesen Datensatz veröffentlichen",
17503
+ "editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
17504
+ "editor.record.publishError.closeMessage": "Verstanden",
17505
+ "editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
17506
+ "editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
17507
+ "editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
17508
+ "editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
17509
+ "editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
17510
+ "editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
17511
+ "editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
17494
17512
  "externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
17495
17513
  "facets.block.title.OrgForResource": "Organisation",
17496
17514
  "facets.block.title.availableInServices": "Verfügbar für",
@@ -17559,6 +17577,10 @@ var de = {
17559
17577
  "organisations.sortBy.nameDesc": "Name Z → A",
17560
17578
  "organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
17561
17579
  "organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
17580
+ "organization.details.lastPublishedDatasets": "",
17581
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
17582
+ "organization.details.mailContact": "",
17583
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
17562
17584
  "pagination.nextPage": "Nächste Seite",
17563
17585
  "pagination.page": "Seite",
17564
17586
  "pagination.pageOf": "von",
@@ -17596,7 +17618,7 @@ var de = {
17596
17618
  "record.metadata.preview": "Vorschau",
17597
17619
  "record.metadata.producer": "Datenproduzent",
17598
17620
  "record.metadata.publication": "Veröffentlichungsdatum",
17599
- "record.metadata.publications": "Veröffentlichungen",
17621
+ "record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
17600
17622
  "record.metadata.quality": "Metadatenqualität",
17601
17623
  "record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
17602
17624
  "record.metadata.quality.contact.success": "Kontakt angegeben",
@@ -17656,6 +17678,8 @@ var de = {
17656
17678
  "results.sortBy.relevancy": "Relevanz",
17657
17679
  "search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
17658
17680
  "search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
17681
+ "search.error.organizationHasNoDataset": "",
17682
+ "search.error.organizationNotFound": "",
17659
17683
  "search.error.receivedError": "Ein Fehler ist aufgetreten",
17660
17684
  "search.error.recordHasnolink": "",
17661
17685
  "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
@@ -17683,9 +17707,11 @@ var de = {
17683
17707
  "search.filters.minimize": "Minimieren",
17684
17708
  "search.filters.myRecords": "Nur meine Datensätze anzeigen",
17685
17709
  "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.",
17710
+ "search.filters.organization": "",
17686
17711
  "search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
17712
+ "search.filters.producerOrg": "",
17687
17713
  "search.filters.publicationYear": "Veröffentlichungsjahr",
17688
- "search.filters.publisher": "Organisationen",
17714
+ "search.filters.publisherOrg": "",
17689
17715
  "search.filters.representationType": "Repräsentationstyp",
17690
17716
  "search.filters.resourceType": "Ressourcentyp",
17691
17717
  "search.filters.standard": "Standard",
@@ -17719,7 +17745,7 @@ var en = {
17719
17745
  "Add Layer As": "",
17720
17746
  "button.login": "Log in",
17721
17747
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
17722
- "catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
17748
+ "catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
17723
17749
  "chart.aggregation.average": "average",
17724
17750
  "chart.aggregation.count": "count",
17725
17751
  "chart.aggregation.max": "max",
@@ -17766,6 +17792,8 @@ var en = {
17766
17792
  "datafeeder.datasetValidation.submitButton": "OK, my data are correct",
17767
17793
  "datafeeder.datasetValidation.title": "Make sure your data are correct",
17768
17794
  "datafeeder.datasetValidation.unknown": " - ",
17795
+ "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",
17796
+ "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
17769
17797
  "datafeeder.form.abstract": "How would you describe your dataset?",
17770
17798
  "datafeeder.form.datepicker": "Do you know when the dataset was created?",
17771
17799
  "datafeeder.form.description": "Finally, please describe the process that was used to create the dataset",
@@ -17793,6 +17821,7 @@ var en = {
17793
17821
  "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
17794
17822
  "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
17795
17823
  "datafeeder.publishSuccess.mapViewer": "Map viewer",
17824
+ "datafeeder.publishSuccess.ogcFeature": "OGC API",
17796
17825
  "datafeeder.publishSuccess.subtitle": "View your data in:",
17797
17826
  "datafeeder.publishSuccess.title": "Congratulation! \n Your dataset has been published",
17798
17827
  "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
@@ -17821,6 +17850,15 @@ var en = {
17821
17850
  "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
17822
17851
  "datafeeder.upload.title": "Upload your dataset",
17823
17852
  "datafeeder.upload.uploadButton": "Upload",
17853
+ "datafeeder.validation.csv.delimiter": "Delimiter",
17854
+ "datafeeder.validation.csv.delimiter.comma": "Comma",
17855
+ "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
17856
+ "datafeeder.validation.csv.lat.field": "Latitude column",
17857
+ "datafeeder.validation.csv.lng.field": "Longitude column",
17858
+ "datafeeder.validation.csv.quote.double": "Double quote",
17859
+ "datafeeder.validation.csv.quote.none": "None",
17860
+ "datafeeder.validation.csv.quote.simple": "Simple quote",
17861
+ "datafeeder.validation.csv.quoteChar": "Quote separator",
17824
17862
  "datafeeder.validation.encoding": "encoding",
17825
17863
  "datafeeder.validation.extent.title": "Here is the dataset extent",
17826
17864
  "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
@@ -17834,7 +17872,7 @@ var en = {
17834
17872
  "datahub.header.lastRecords": "The latest",
17835
17873
  "datahub.header.myfavorites": "My favorites",
17836
17874
  "datahub.header.news": "Home",
17837
- "datahub.header.organisations": "Organisations",
17875
+ "datahub.header.organizations": "Organizations",
17838
17876
  "datahub.header.popularRecords": "The most popular",
17839
17877
  "datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
17840
17878
  "datahub.news.contact.contactus": "Contact us",
@@ -17870,6 +17908,8 @@ var en = {
17870
17908
  "downloads.format.unknown": "unknown",
17871
17909
  "downloads.wfs.featuretype.not.found": "The layer was not found",
17872
17910
  dropFile: dropFile$5,
17911
+ "editor.record.form.abstract": "Abstract",
17912
+ "editor.record.form.keywords": "Keywords",
17873
17913
  "editor.record.form.license": "License",
17874
17914
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
17875
17915
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
@@ -17880,12 +17920,15 @@ var en = {
17880
17920
  "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
17881
17921
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
17882
17922
  "editor.record.form.license.unknown": "Unknown or absent",
17923
+ "editor.record.form.metadata.title": "Metadata title",
17924
+ "editor.record.form.record.updated": "Record updated",
17883
17925
  "editor.record.form.resourceUpdated": "Last update date",
17884
17926
  "editor.record.form.temporalExtents": "Temporal extent",
17885
17927
  "editor.record.form.temporalExtents.addDate": "Time instant",
17886
17928
  "editor.record.form.temporalExtents.addRange": "Time period",
17887
17929
  "editor.record.form.temporalExtents.date": "Date",
17888
17930
  "editor.record.form.temporalExtents.range": "Date range",
17931
+ "editor.record.form.unique.identifier": "Unique identifier",
17889
17932
  "editor.record.form.updateFrequency": "Update frequency",
17890
17933
  "editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
17891
17934
  "editor.record.loadError.body": "The record could not be loaded:",
@@ -17969,6 +18012,10 @@ var en = {
17969
18012
  "organisations.sortBy.nameDesc": "Name Z → A",
17970
18013
  "organisations.sortBy.recordCountAsc": "Publications 0 → 9",
17971
18014
  "organisations.sortBy.recordCountDesc": "Publications 9 → 0",
18015
+ "organization.details.lastPublishedDatasets": "",
18016
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
18017
+ "organization.details.mailContact": "Contact by email",
18018
+ "organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
17972
18019
  "pagination.nextPage": "Next page",
17973
18020
  "pagination.page": "page",
17974
18021
  "pagination.pageOf": "of",
@@ -18006,7 +18053,7 @@ var en = {
18006
18053
  "record.metadata.preview": "Preview",
18007
18054
  "record.metadata.producer": "Data producer",
18008
18055
  "record.metadata.publication": "Date of publication",
18009
- "record.metadata.publications": "publications",
18056
+ "record.metadata.publications": "{count, plural, =0{publication} one{publication} other{publications}}",
18010
18057
  "record.metadata.quality": "Metadata Quality",
18011
18058
  "record.metadata.quality.contact.failed": "Contact is not specified",
18012
18059
  "record.metadata.quality.contact.success": "Contact is specified",
@@ -18066,6 +18113,8 @@ var en = {
18066
18113
  "results.sortBy.relevancy": "Relevancy",
18067
18114
  "search.autocomplete.error": "Suggestions could not be fetched:",
18068
18115
  "search.error.couldNotReachApi": "The API could not be reached",
18116
+ "search.error.organizationHasNoDataset": "This organization has no dataset yet.",
18117
+ "search.error.organizationNotFound": "This organization could not be found.",
18069
18118
  "search.error.receivedError": "An error was received",
18070
18119
  "search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
18071
18120
  "search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
@@ -18093,9 +18142,11 @@ var en = {
18093
18142
  "search.filters.minimize": "Minimize",
18094
18143
  "search.filters.myRecords": "Show only my records",
18095
18144
  "search.filters.myRecordsHelp": "When this is enabled, records only created by myself are shown; records created by others will not show up.",
18145
+ "search.filters.organization": "Organization",
18096
18146
  "search.filters.otherRecords": "Showing records from another person",
18147
+ "search.filters.producerOrg": "Producer",
18097
18148
  "search.filters.publicationYear": "Publication year",
18098
- "search.filters.publisher": "Organizations",
18149
+ "search.filters.publisherOrg": "Publisher",
18099
18150
  "search.filters.representationType": "Representation type",
18100
18151
  "search.filters.resourceType": "Resource type",
18101
18152
  "search.filters.standard": "Standard",
@@ -18129,7 +18180,7 @@ var es = {
18129
18180
  "Add Layer As": "",
18130
18181
  "button.login": "",
18131
18182
  "catalog.figures.datasets": "conjuntos de datos",
18132
- "catalog.figures.organisations": "organizaciones",
18183
+ "catalog.figures.organizations": "organizaciones",
18133
18184
  "chart.aggregation.average": "promedio",
18134
18185
  "chart.aggregation.count": "conteo",
18135
18186
  "chart.aggregation.max": "máximo",
@@ -18176,6 +18227,8 @@ var es = {
18176
18227
  "datafeeder.datasetValidation.submitButton": "",
18177
18228
  "datafeeder.datasetValidation.title": "",
18178
18229
  "datafeeder.datasetValidation.unknown": "",
18230
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
18231
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
18179
18232
  "datafeeder.form.abstract": "",
18180
18233
  "datafeeder.form.datepicker": "",
18181
18234
  "datafeeder.form.description": "",
@@ -18203,6 +18256,7 @@ var es = {
18203
18256
  "datafeeder.publishSuccess.geonetworkRecord": "",
18204
18257
  "datafeeder.publishSuccess.illustration.title": "",
18205
18258
  "datafeeder.publishSuccess.mapViewer": "",
18259
+ "datafeeder.publishSuccess.ogcFeature": "",
18206
18260
  "datafeeder.publishSuccess.subtitle": "",
18207
18261
  "datafeeder.publishSuccess.title": "",
18208
18262
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -18231,6 +18285,15 @@ var es = {
18231
18285
  "datafeeder.upload.maxFileSize": "",
18232
18286
  "datafeeder.upload.title": "",
18233
18287
  "datafeeder.upload.uploadButton": "",
18288
+ "datafeeder.validation.csv.delimiter": "",
18289
+ "datafeeder.validation.csv.delimiter.comma": "Coma",
18290
+ "datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
18291
+ "datafeeder.validation.csv.lat.field": "",
18292
+ "datafeeder.validation.csv.lng.field": "",
18293
+ "datafeeder.validation.csv.quote.double": "Comillas dobles",
18294
+ "datafeeder.validation.csv.quote.none": "Ninguno",
18295
+ "datafeeder.validation.csv.quote.simple": "Comillas simples",
18296
+ "datafeeder.validation.csv.quoteChar": "",
18234
18297
  "datafeeder.validation.encoding": "",
18235
18298
  "datafeeder.validation.extent.title": "",
18236
18299
  "datafeeder.validation.extent.title.unknown": "",
@@ -18244,7 +18307,7 @@ var es = {
18244
18307
  "datahub.header.lastRecords": "",
18245
18308
  "datahub.header.myfavorites": "",
18246
18309
  "datahub.header.news": "",
18247
- "datahub.header.organisations": "",
18310
+ "datahub.header.organizations": "",
18248
18311
  "datahub.header.popularRecords": "",
18249
18312
  "datahub.header.title.html": "",
18250
18313
  "datahub.news.contact.contactus": "",
@@ -18280,6 +18343,8 @@ var es = {
18280
18343
  "downloads.format.unknown": "",
18281
18344
  "downloads.wfs.featuretype.not.found": "",
18282
18345
  dropFile: dropFile$4,
18346
+ "editor.record.form.abstract": "",
18347
+ "editor.record.form.keywords": "",
18283
18348
  "editor.record.form.license": "",
18284
18349
  "editor.record.form.license.cc-by": "",
18285
18350
  "editor.record.form.license.cc-by-sa": "",
@@ -18290,12 +18355,15 @@ var es = {
18290
18355
  "editor.record.form.license.odc-by": "",
18291
18356
  "editor.record.form.license.pddl": "",
18292
18357
  "editor.record.form.license.unknown": "",
18358
+ "editor.record.form.metadata.title": "",
18359
+ "editor.record.form.record.updated": "",
18293
18360
  "editor.record.form.resourceUpdated": "",
18294
18361
  "editor.record.form.temporalExtents": "",
18295
18362
  "editor.record.form.temporalExtents.addDate": "",
18296
18363
  "editor.record.form.temporalExtents.addRange": "",
18297
18364
  "editor.record.form.temporalExtents.date": "",
18298
18365
  "editor.record.form.temporalExtents.range": "",
18366
+ "editor.record.form.unique.identifier": "",
18299
18367
  "editor.record.form.updateFrequency": "",
18300
18368
  "editor.record.form.updateFrequency.planned": "",
18301
18369
  "editor.record.loadError.body": "",
@@ -18379,6 +18447,10 @@ var es = {
18379
18447
  "organisations.sortBy.nameDesc": "",
18380
18448
  "organisations.sortBy.recordCountAsc": "",
18381
18449
  "organisations.sortBy.recordCountDesc": "",
18450
+ "organization.details.lastPublishedDatasets": "",
18451
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
18452
+ "organization.details.mailContact": "",
18453
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
18382
18454
  "pagination.nextPage": "",
18383
18455
  "pagination.page": "",
18384
18456
  "pagination.pageOf": "",
@@ -18416,7 +18488,7 @@ var es = {
18416
18488
  "record.metadata.preview": "",
18417
18489
  "record.metadata.producer": "",
18418
18490
  "record.metadata.publication": "",
18419
- "record.metadata.publications": "",
18491
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
18420
18492
  "record.metadata.quality": "",
18421
18493
  "record.metadata.quality.contact.failed": "",
18422
18494
  "record.metadata.quality.contact.success": "",
@@ -18476,6 +18548,8 @@ var es = {
18476
18548
  "results.sortBy.relevancy": "",
18477
18549
  "search.autocomplete.error": "",
18478
18550
  "search.error.couldNotReachApi": "",
18551
+ "search.error.organizationHasNoDataset": "",
18552
+ "search.error.organizationNotFound": "",
18479
18553
  "search.error.receivedError": "",
18480
18554
  "search.error.recordHasnolink": "",
18481
18555
  "search.error.recordNotFound": "",
@@ -18503,9 +18577,11 @@ var es = {
18503
18577
  "search.filters.minimize": "",
18504
18578
  "search.filters.myRecords": "",
18505
18579
  "search.filters.myRecordsHelp": "",
18580
+ "search.filters.organization": "",
18506
18581
  "search.filters.otherRecords": "",
18582
+ "search.filters.producerOrg": "",
18507
18583
  "search.filters.publicationYear": "",
18508
- "search.filters.publisher": "",
18584
+ "search.filters.publisherOrg": "",
18509
18585
  "search.filters.representationType": "",
18510
18586
  "search.filters.resourceType": "",
18511
18587
  "search.filters.standard": "",
@@ -18539,7 +18615,7 @@ var fr = {
18539
18615
  "Add Layer As": "",
18540
18616
  "button.login": "Se connecter",
18541
18617
  "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}}",
18618
+ "catalog.figures.organizations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
18543
18619
  "chart.aggregation.average": "moyenne",
18544
18620
  "chart.aggregation.count": "nombre",
18545
18621
  "chart.aggregation.max": "maximum",
@@ -18586,6 +18662,8 @@ var fr = {
18586
18662
  "datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
18587
18663
  "datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
18588
18664
  "datafeeder.datasetValidation.unknown": " - ",
18665
+ "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é",
18666
+ "datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
18589
18667
  "datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
18590
18668
  "datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
18591
18669
  "datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
@@ -18612,7 +18690,8 @@ var fr = {
18612
18690
  "datafeeder.publish.upload": "Upload maintenant",
18613
18691
  "datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnée",
18614
18692
  "datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
18615
- "datafeeder.publishSuccess.mapViewer": "Visualisateur",
18693
+ "datafeeder.publishSuccess.mapViewer": "Visualiseur",
18694
+ "datafeeder.publishSuccess.ogcFeature": "OGC API",
18616
18695
  "datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
18617
18696
  "datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
18618
18697
  "datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
@@ -18641,6 +18720,15 @@ var fr = {
18641
18720
  "datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
18642
18721
  "datafeeder.upload.title": "Importez vos données",
18643
18722
  "datafeeder.upload.uploadButton": "Transférer",
18723
+ "datafeeder.validation.csv.delimiter": "Séparateur de colonne",
18724
+ "datafeeder.validation.csv.delimiter.comma": "Virgule",
18725
+ "datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
18726
+ "datafeeder.validation.csv.lat.field": "Colonne latitude",
18727
+ "datafeeder.validation.csv.lng.field": "Colonne longitude",
18728
+ "datafeeder.validation.csv.quote.double": "Double guillemets",
18729
+ "datafeeder.validation.csv.quote.none": "Aucun",
18730
+ "datafeeder.validation.csv.quote.simple": "Simple guillemet",
18731
+ "datafeeder.validation.csv.quoteChar": "Séparateur de texte",
18644
18732
  "datafeeder.validation.encoding": "encodage",
18645
18733
  "datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
18646
18734
  "datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
@@ -18654,7 +18742,7 @@ var fr = {
18654
18742
  "datahub.header.lastRecords": "Les plus récentes",
18655
18743
  "datahub.header.myfavorites": "Mes favoris",
18656
18744
  "datahub.header.news": "Accueil",
18657
- "datahub.header.organisations": "Organisations",
18745
+ "datahub.header.organizations": "Organisations",
18658
18746
  "datahub.header.popularRecords": "Les plus appréciées",
18659
18747
  "datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
18660
18748
  "datahub.news.contact.contactus": "Contactez-nous",
@@ -18690,6 +18778,8 @@ var fr = {
18690
18778
  "downloads.format.unknown": "inconnu",
18691
18779
  "downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
18692
18780
  dropFile: dropFile$3,
18781
+ "editor.record.form.abstract": "",
18782
+ "editor.record.form.keywords": "",
18693
18783
  "editor.record.form.license": "Licence",
18694
18784
  "editor.record.form.license.cc-by": "",
18695
18785
  "editor.record.form.license.cc-by-sa": "",
@@ -18700,12 +18790,15 @@ var fr = {
18700
18790
  "editor.record.form.license.odc-by": "",
18701
18791
  "editor.record.form.license.pddl": "",
18702
18792
  "editor.record.form.license.unknown": "Non-reconnue ou absente",
18793
+ "editor.record.form.metadata.title": "",
18794
+ "editor.record.form.record.updated": "",
18703
18795
  "editor.record.form.resourceUpdated": "Date de dernière révision",
18704
18796
  "editor.record.form.temporalExtents": "Étendue temporelle",
18705
18797
  "editor.record.form.temporalExtents.addDate": "Date déterminée",
18706
18798
  "editor.record.form.temporalExtents.addRange": "Période de temps",
18707
18799
  "editor.record.form.temporalExtents.date": "Date concernée",
18708
18800
  "editor.record.form.temporalExtents.range": "Période concernée",
18801
+ "editor.record.form.unique.identifier": "",
18709
18802
  "editor.record.form.updateFrequency": "Fréquence de mise à jour",
18710
18803
  "editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
18711
18804
  "editor.record.loadError.body": "",
@@ -18789,6 +18882,10 @@ var fr = {
18789
18882
  "organisations.sortBy.nameDesc": "Nom Z → A",
18790
18883
  "organisations.sortBy.recordCountAsc": "Données 0 → 9",
18791
18884
  "organisations.sortBy.recordCountDesc": "Données 9 → 0",
18885
+ "organization.details.lastPublishedDatasets": "",
18886
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
18887
+ "organization.details.mailContact": "Contacter par mail",
18888
+ "organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
18792
18889
  "pagination.nextPage": "Page suivante",
18793
18890
  "pagination.page": "page",
18794
18891
  "pagination.pageOf": "sur",
@@ -18826,7 +18923,7 @@ var fr = {
18826
18923
  "record.metadata.preview": "Aperçu",
18827
18924
  "record.metadata.producer": "Producteur de la donnée",
18828
18925
  "record.metadata.publication": "Date de publication",
18829
- "record.metadata.publications": "données",
18926
+ "record.metadata.publications": "{count, plural, =0{donnée} one{donnée} other{données}}",
18830
18927
  "record.metadata.quality": "Qualité des métadonnées",
18831
18928
  "record.metadata.quality.contact.failed": "Contact n'est pas renseigné",
18832
18929
  "record.metadata.quality.contact.success": "Contact est renseigné",
@@ -18886,6 +18983,8 @@ var fr = {
18886
18983
  "results.sortBy.relevancy": "Pertinence",
18887
18984
  "search.autocomplete.error": "Les suggestions ne peuvent pas être récupérées",
18888
18985
  "search.error.couldNotReachApi": "Problème de connexion à l'API",
18986
+ "search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
18987
+ "search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
18889
18988
  "search.error.receivedError": "Erreur retournée",
18890
18989
  "search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
18891
18990
  "search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
@@ -18913,9 +19012,11 @@ var fr = {
18913
19012
  "search.filters.minimize": "Réduire",
18914
19013
  "search.filters.myRecords": "Voir mes données",
18915
19014
  "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.",
19015
+ "search.filters.organization": "Organisation",
18916
19016
  "search.filters.otherRecords": "Affichage des données d'un autre utilisateur",
19017
+ "search.filters.producerOrg": "Producteur",
18917
19018
  "search.filters.publicationYear": "Année de publication",
18918
- "search.filters.publisher": "Organisations",
19019
+ "search.filters.publisherOrg": "Distributeur",
18919
19020
  "search.filters.representationType": "Type de représentation",
18920
19021
  "search.filters.resourceType": "Type de ressource",
18921
19022
  "search.filters.standard": "Standard",
@@ -18949,7 +19050,7 @@ var it = {
18949
19050
  "Add Layer As": "",
18950
19051
  "button.login": "",
18951
19052
  "catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
18952
- "catalog.figures.organisations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
19053
+ "catalog.figures.organizations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
18953
19054
  "chart.aggregation.average": "media",
18954
19055
  "chart.aggregation.count": "conteggio",
18955
19056
  "chart.aggregation.max": "massimo",
@@ -18996,6 +19097,8 @@ var it = {
18996
19097
  "datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
18997
19098
  "datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
18998
19099
  "datafeeder.datasetValidation.unknown": " - ",
19100
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19101
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
18999
19102
  "datafeeder.form.abstract": "Come descrivere il suo dataset?",
19000
19103
  "datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
19001
19104
  "datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
@@ -19023,6 +19126,7 @@ var it = {
19023
19126
  "datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
19024
19127
  "datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
19025
19128
  "datafeeder.publishSuccess.mapViewer": "Visualizzatore",
19129
+ "datafeeder.publishSuccess.ogcFeature": "",
19026
19130
  "datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
19027
19131
  "datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
19028
19132
  "datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
@@ -19051,6 +19155,15 @@ var it = {
19051
19155
  "datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
19052
19156
  "datafeeder.upload.title": "Importa i suoi dati",
19053
19157
  "datafeeder.upload.uploadButton": "Carica",
19158
+ "datafeeder.validation.csv.delimiter": "",
19159
+ "datafeeder.validation.csv.delimiter.comma": "",
19160
+ "datafeeder.validation.csv.delimiter.semicolon": "",
19161
+ "datafeeder.validation.csv.lat.field": "",
19162
+ "datafeeder.validation.csv.lng.field": "",
19163
+ "datafeeder.validation.csv.quote.double": "",
19164
+ "datafeeder.validation.csv.quote.none": "",
19165
+ "datafeeder.validation.csv.quote.simple": "",
19166
+ "datafeeder.validation.csv.quoteChar": "",
19054
19167
  "datafeeder.validation.encoding": "Codifica",
19055
19168
  "datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
19056
19169
  "datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
@@ -19064,7 +19177,7 @@ var it = {
19064
19177
  "datahub.header.lastRecords": "Ultimi",
19065
19178
  "datahub.header.myfavorites": "Miei preferiti",
19066
19179
  "datahub.header.news": "Home",
19067
- "datahub.header.organisations": "Organizzazioni",
19180
+ "datahub.header.organizations": "Organizzazioni",
19068
19181
  "datahub.header.popularRecords": "Più popolari",
19069
19182
  "datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
19070
19183
  "datahub.news.contact.contactus": "Contattateci",
@@ -19100,6 +19213,8 @@ var it = {
19100
19213
  "downloads.format.unknown": "sconosciuto",
19101
19214
  "downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
19102
19215
  dropFile: dropFile$2,
19216
+ "editor.record.form.abstract": "",
19217
+ "editor.record.form.keywords": "",
19103
19218
  "editor.record.form.license": "Licenza",
19104
19219
  "editor.record.form.license.cc-by": "",
19105
19220
  "editor.record.form.license.cc-by-sa": "",
@@ -19110,12 +19225,15 @@ var it = {
19110
19225
  "editor.record.form.license.odc-by": "",
19111
19226
  "editor.record.form.license.pddl": "",
19112
19227
  "editor.record.form.license.unknown": "Non riconosciuta o assente",
19228
+ "editor.record.form.metadata.title": "",
19229
+ "editor.record.form.record.updated": "",
19113
19230
  "editor.record.form.resourceUpdated": "",
19114
19231
  "editor.record.form.temporalExtents": "",
19115
19232
  "editor.record.form.temporalExtents.addDate": "",
19116
19233
  "editor.record.form.temporalExtents.addRange": "",
19117
19234
  "editor.record.form.temporalExtents.date": "",
19118
19235
  "editor.record.form.temporalExtents.range": "",
19236
+ "editor.record.form.unique.identifier": "",
19119
19237
  "editor.record.form.updateFrequency": "",
19120
19238
  "editor.record.form.updateFrequency.planned": "",
19121
19239
  "editor.record.loadError.body": "",
@@ -19199,6 +19317,10 @@ var it = {
19199
19317
  "organisations.sortBy.nameDesc": "Nome Z → A",
19200
19318
  "organisations.sortBy.recordCountAsc": "Dati 0 → 9",
19201
19319
  "organisations.sortBy.recordCountDesc": "Dati 9 → 0",
19320
+ "organization.details.lastPublishedDatasets": "",
19321
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
19322
+ "organization.details.mailContact": "",
19323
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
19202
19324
  "pagination.nextPage": "Pagina successiva",
19203
19325
  "pagination.page": "pagina",
19204
19326
  "pagination.pageOf": "di",
@@ -19236,7 +19358,7 @@ var it = {
19236
19358
  "record.metadata.preview": "Anteprima",
19237
19359
  "record.metadata.producer": "Produttore dei dati",
19238
19360
  "record.metadata.publication": "Data di pubblicazione",
19239
- "record.metadata.publications": "pubblicazioni",
19361
+ "record.metadata.publications": "{count, plural, =0{pubblicazione} one{pubblicazione} other{pubblicazioni}}",
19240
19362
  "record.metadata.quality": "Qualità dei metadati",
19241
19363
  "record.metadata.quality.contact.failed": "Il contatto non è specificato",
19242
19364
  "record.metadata.quality.contact.success": "Il contatto è specificato",
@@ -19296,6 +19418,8 @@ var it = {
19296
19418
  "results.sortBy.relevancy": "Rilevanza",
19297
19419
  "search.autocomplete.error": "Impossibile recuperare le suggerimenti",
19298
19420
  "search.error.couldNotReachApi": "Problema di connessione all'API",
19421
+ "search.error.organizationHasNoDataset": "",
19422
+ "search.error.organizationNotFound": "",
19299
19423
  "search.error.receivedError": "Errore ricevuto",
19300
19424
  "search.error.recordHasnolink": "",
19301
19425
  "search.error.recordNotFound": "Impossibile trovare questo dato",
@@ -19323,9 +19447,11 @@ var it = {
19323
19447
  "search.filters.minimize": "Riduci",
19324
19448
  "search.filters.myRecords": "Visualizza i miei dati",
19325
19449
  "search.filters.myRecordsHelp": "Quando attivato, mostra solo i dati creati con il mio utente. I dati creati da altri utenti non sono visualizzati.",
19450
+ "search.filters.organization": "",
19326
19451
  "search.filters.otherRecords": "Visualizzazione dei dati di un altro utente",
19452
+ "search.filters.producerOrg": "",
19327
19453
  "search.filters.publicationYear": "Anno di pubblicazione",
19328
- "search.filters.publisher": "Organizzazioni",
19454
+ "search.filters.publisherOrg": "",
19329
19455
  "search.filters.representationType": "Tipo di rappresentazione",
19330
19456
  "search.filters.resourceType": "Tipo di risorsa",
19331
19457
  "search.filters.standard": "Standard",
@@ -19359,7 +19485,7 @@ var nl = {
19359
19485
  "Add Layer As": "",
19360
19486
  "button.login": "",
19361
19487
  "catalog.figures.datasets": "datasets",
19362
- "catalog.figures.organisations": "organisaties",
19488
+ "catalog.figures.organizations": "organisaties",
19363
19489
  "chart.aggregation.average": "gemiddelde",
19364
19490
  "chart.aggregation.count": "aantal",
19365
19491
  "chart.aggregation.max": "max",
@@ -19406,6 +19532,8 @@ var nl = {
19406
19532
  "datafeeder.datasetValidation.submitButton": "",
19407
19533
  "datafeeder.datasetValidation.title": "",
19408
19534
  "datafeeder.datasetValidation.unknown": "",
19535
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19536
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
19409
19537
  "datafeeder.form.abstract": "",
19410
19538
  "datafeeder.form.datepicker": "",
19411
19539
  "datafeeder.form.description": "",
@@ -19433,6 +19561,7 @@ var nl = {
19433
19561
  "datafeeder.publishSuccess.geonetworkRecord": "",
19434
19562
  "datafeeder.publishSuccess.illustration.title": "",
19435
19563
  "datafeeder.publishSuccess.mapViewer": "",
19564
+ "datafeeder.publishSuccess.ogcFeature": "",
19436
19565
  "datafeeder.publishSuccess.subtitle": "",
19437
19566
  "datafeeder.publishSuccess.title": "",
19438
19567
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -19461,6 +19590,15 @@ var nl = {
19461
19590
  "datafeeder.upload.maxFileSize": "",
19462
19591
  "datafeeder.upload.title": "",
19463
19592
  "datafeeder.upload.uploadButton": "",
19593
+ "datafeeder.validation.csv.delimiter": "",
19594
+ "datafeeder.validation.csv.delimiter.comma": "",
19595
+ "datafeeder.validation.csv.delimiter.semicolon": "",
19596
+ "datafeeder.validation.csv.lat.field": "",
19597
+ "datafeeder.validation.csv.lng.field": "",
19598
+ "datafeeder.validation.csv.quote.double": "",
19599
+ "datafeeder.validation.csv.quote.none": "",
19600
+ "datafeeder.validation.csv.quote.simple": "",
19601
+ "datafeeder.validation.csv.quoteChar": "",
19464
19602
  "datafeeder.validation.encoding": "",
19465
19603
  "datafeeder.validation.extent.title": "",
19466
19604
  "datafeeder.validation.extent.title.unknown": "",
@@ -19474,7 +19612,7 @@ var nl = {
19474
19612
  "datahub.header.lastRecords": "",
19475
19613
  "datahub.header.myfavorites": "",
19476
19614
  "datahub.header.news": "",
19477
- "datahub.header.organisations": "",
19615
+ "datahub.header.organizations": "",
19478
19616
  "datahub.header.popularRecords": "",
19479
19617
  "datahub.header.title.html": "",
19480
19618
  "datahub.news.contact.contactus": "",
@@ -19510,6 +19648,8 @@ var nl = {
19510
19648
  "downloads.format.unknown": "",
19511
19649
  "downloads.wfs.featuretype.not.found": "",
19512
19650
  dropFile: dropFile$1,
19651
+ "editor.record.form.abstract": "",
19652
+ "editor.record.form.keywords": "",
19513
19653
  "editor.record.form.license": "",
19514
19654
  "editor.record.form.license.cc-by": "",
19515
19655
  "editor.record.form.license.cc-by-sa": "",
@@ -19520,12 +19660,15 @@ var nl = {
19520
19660
  "editor.record.form.license.odc-by": "",
19521
19661
  "editor.record.form.license.pddl": "",
19522
19662
  "editor.record.form.license.unknown": "",
19663
+ "editor.record.form.metadata.title": "",
19664
+ "editor.record.form.record.updated": "",
19523
19665
  "editor.record.form.resourceUpdated": "",
19524
19666
  "editor.record.form.temporalExtents": "",
19525
19667
  "editor.record.form.temporalExtents.addDate": "",
19526
19668
  "editor.record.form.temporalExtents.addRange": "",
19527
19669
  "editor.record.form.temporalExtents.date": "",
19528
19670
  "editor.record.form.temporalExtents.range": "",
19671
+ "editor.record.form.unique.identifier": "",
19529
19672
  "editor.record.form.updateFrequency": "",
19530
19673
  "editor.record.form.updateFrequency.planned": "",
19531
19674
  "editor.record.loadError.body": "",
@@ -19609,6 +19752,10 @@ var nl = {
19609
19752
  "organisations.sortBy.nameDesc": "",
19610
19753
  "organisations.sortBy.recordCountAsc": "",
19611
19754
  "organisations.sortBy.recordCountDesc": "",
19755
+ "organization.details.lastPublishedDatasets": "",
19756
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
19757
+ "organization.details.mailContact": "",
19758
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
19612
19759
  "pagination.nextPage": "",
19613
19760
  "pagination.page": "",
19614
19761
  "pagination.pageOf": "",
@@ -19646,7 +19793,7 @@ var nl = {
19646
19793
  "record.metadata.preview": "",
19647
19794
  "record.metadata.producer": "",
19648
19795
  "record.metadata.publication": "",
19649
- "record.metadata.publications": "",
19796
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
19650
19797
  "record.metadata.quality": "",
19651
19798
  "record.metadata.quality.contact.failed": "",
19652
19799
  "record.metadata.quality.contact.success": "",
@@ -19706,6 +19853,8 @@ var nl = {
19706
19853
  "results.sortBy.relevancy": "",
19707
19854
  "search.autocomplete.error": "",
19708
19855
  "search.error.couldNotReachApi": "",
19856
+ "search.error.organizationHasNoDataset": "",
19857
+ "search.error.organizationNotFound": "",
19709
19858
  "search.error.receivedError": "",
19710
19859
  "search.error.recordHasnolink": "",
19711
19860
  "search.error.recordNotFound": "",
@@ -19733,9 +19882,11 @@ var nl = {
19733
19882
  "search.filters.minimize": "",
19734
19883
  "search.filters.myRecords": "",
19735
19884
  "search.filters.myRecordsHelp": "",
19885
+ "search.filters.organization": "",
19736
19886
  "search.filters.otherRecords": "",
19887
+ "search.filters.producerOrg": "",
19737
19888
  "search.filters.publicationYear": "",
19738
- "search.filters.publisher": "",
19889
+ "search.filters.publisherOrg": "",
19739
19890
  "search.filters.representationType": "",
19740
19891
  "search.filters.resourceType": "",
19741
19892
  "search.filters.standard": "",
@@ -19769,7 +19920,7 @@ var pt = {
19769
19920
  "Add Layer As": "",
19770
19921
  "button.login": "",
19771
19922
  "catalog.figures.datasets": "conjuntos de dados",
19772
- "catalog.figures.organisations": "organizações",
19923
+ "catalog.figures.organizations": "organizações",
19773
19924
  "chart.aggregation.average": "média",
19774
19925
  "chart.aggregation.count": "contagem",
19775
19926
  "chart.aggregation.max": "máximo",
@@ -19816,6 +19967,8 @@ var pt = {
19816
19967
  "datafeeder.datasetValidation.submitButton": "",
19817
19968
  "datafeeder.datasetValidation.title": "",
19818
19969
  "datafeeder.datasetValidation.unknown": "",
19970
+ "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19971
+ "datafeeder.datasetValidationCsv.lineNumbers": "",
19819
19972
  "datafeeder.form.abstract": "",
19820
19973
  "datafeeder.form.datepicker": "",
19821
19974
  "datafeeder.form.description": "",
@@ -19843,6 +19996,7 @@ var pt = {
19843
19996
  "datafeeder.publishSuccess.geonetworkRecord": "",
19844
19997
  "datafeeder.publishSuccess.illustration.title": "",
19845
19998
  "datafeeder.publishSuccess.mapViewer": "",
19999
+ "datafeeder.publishSuccess.ogcFeature": "",
19846
20000
  "datafeeder.publishSuccess.subtitle": "",
19847
20001
  "datafeeder.publishSuccess.title": "",
19848
20002
  "datafeeder.publishSuccess.uploadAnotherData": "",
@@ -19871,6 +20025,15 @@ var pt = {
19871
20025
  "datafeeder.upload.maxFileSize": "",
19872
20026
  "datafeeder.upload.title": "",
19873
20027
  "datafeeder.upload.uploadButton": "",
20028
+ "datafeeder.validation.csv.delimiter": "",
20029
+ "datafeeder.validation.csv.delimiter.comma": "",
20030
+ "datafeeder.validation.csv.delimiter.semicolon": "",
20031
+ "datafeeder.validation.csv.lat.field": "",
20032
+ "datafeeder.validation.csv.lng.field": "",
20033
+ "datafeeder.validation.csv.quote.double": "",
20034
+ "datafeeder.validation.csv.quote.none": "",
20035
+ "datafeeder.validation.csv.quote.simple": "",
20036
+ "datafeeder.validation.csv.quoteChar": "",
19874
20037
  "datafeeder.validation.encoding": "",
19875
20038
  "datafeeder.validation.extent.title": "",
19876
20039
  "datafeeder.validation.extent.title.unknown": "",
@@ -19884,7 +20047,7 @@ var pt = {
19884
20047
  "datahub.header.lastRecords": "",
19885
20048
  "datahub.header.myfavorites": "",
19886
20049
  "datahub.header.news": "",
19887
- "datahub.header.organisations": "",
20050
+ "datahub.header.organizations": "",
19888
20051
  "datahub.header.popularRecords": "",
19889
20052
  "datahub.header.title.html": "",
19890
20053
  "datahub.news.contact.contactus": "",
@@ -19920,6 +20083,8 @@ var pt = {
19920
20083
  "downloads.format.unknown": "",
19921
20084
  "downloads.wfs.featuretype.not.found": "",
19922
20085
  dropFile: dropFile,
20086
+ "editor.record.form.abstract": "",
20087
+ "editor.record.form.keywords": "",
19923
20088
  "editor.record.form.license": "",
19924
20089
  "editor.record.form.license.cc-by": "",
19925
20090
  "editor.record.form.license.cc-by-sa": "",
@@ -19930,12 +20095,15 @@ var pt = {
19930
20095
  "editor.record.form.license.odc-by": "",
19931
20096
  "editor.record.form.license.pddl": "",
19932
20097
  "editor.record.form.license.unknown": "",
20098
+ "editor.record.form.metadata.title": "",
20099
+ "editor.record.form.record.updated": "",
19933
20100
  "editor.record.form.resourceUpdated": "",
19934
20101
  "editor.record.form.temporalExtents": "",
19935
20102
  "editor.record.form.temporalExtents.addDate": "",
19936
20103
  "editor.record.form.temporalExtents.addRange": "",
19937
20104
  "editor.record.form.temporalExtents.date": "",
19938
20105
  "editor.record.form.temporalExtents.range": "",
20106
+ "editor.record.form.unique.identifier": "",
19939
20107
  "editor.record.form.updateFrequency": "",
19940
20108
  "editor.record.form.updateFrequency.planned": "",
19941
20109
  "editor.record.loadError.body": "",
@@ -20019,6 +20187,10 @@ var pt = {
20019
20187
  "organisations.sortBy.nameDesc": "",
20020
20188
  "organisations.sortBy.recordCountAsc": "",
20021
20189
  "organisations.sortBy.recordCountDesc": "",
20190
+ "organization.details.lastPublishedDatasets": "",
20191
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
20192
+ "organization.details.mailContact": "",
20193
+ "organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
20022
20194
  "pagination.nextPage": "",
20023
20195
  "pagination.page": "",
20024
20196
  "pagination.pageOf": "",
@@ -20056,7 +20228,7 @@ var pt = {
20056
20228
  "record.metadata.preview": "",
20057
20229
  "record.metadata.producer": "",
20058
20230
  "record.metadata.publication": "",
20059
- "record.metadata.publications": "",
20231
+ "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
20060
20232
  "record.metadata.quality": "",
20061
20233
  "record.metadata.quality.contact.failed": "",
20062
20234
  "record.metadata.quality.contact.success": "",
@@ -20116,6 +20288,8 @@ var pt = {
20116
20288
  "results.sortBy.relevancy": "",
20117
20289
  "search.autocomplete.error": "",
20118
20290
  "search.error.couldNotReachApi": "",
20291
+ "search.error.organizationHasNoDataset": "",
20292
+ "search.error.organizationNotFound": "",
20119
20293
  "search.error.receivedError": "",
20120
20294
  "search.error.recordHasnolink": "",
20121
20295
  "search.error.recordNotFound": "",
@@ -20143,9 +20317,11 @@ var pt = {
20143
20317
  "search.filters.minimize": "",
20144
20318
  "search.filters.myRecords": "",
20145
20319
  "search.filters.myRecordsHelp": "",
20320
+ "search.filters.organization": "",
20146
20321
  "search.filters.otherRecords": "",
20322
+ "search.filters.producerOrg": "",
20147
20323
  "search.filters.publicationYear": "",
20148
- "search.filters.publisher": "",
20324
+ "search.filters.publisherOrg": "",
20149
20325
  "search.filters.representationType": "",
20150
20326
  "search.filters.resourceType": "",
20151
20327
  "search.filters.standard": "",
@@ -21311,9 +21487,11 @@ class OrganizationsFromMetadataService {
21311
21487
  return fullOrg;
21312
21488
  return {
21313
21489
  ...fullOrg,
21490
+ email: emails[0],
21314
21491
  ...(group.description && { description: group.description }),
21315
21492
  ...(group.logo && { logoUrl: getAsUrl(`${IMAGE_URL$1}${group.logo}`) }),
21316
21493
  ...(group.website && { website: getAsUrl(group.website) }),
21494
+ ...(group.email && { email: group.email }),
21317
21495
  };
21318
21496
  });
21319
21497
  }
@@ -21414,6 +21592,7 @@ class OrganizationsFromGroupsService {
21414
21592
  return {
21415
21593
  name: group.label[lang3],
21416
21594
  ...(group.description && { description: group.description }),
21595
+ ...(group.email && { email: group.email }),
21417
21596
  ...(group.logo && {
21418
21597
  logoUrl: getAsUrl(`${IMAGE_URL}${group.logo}`),
21419
21598
  }),
@@ -21678,7 +21857,7 @@ class Gn4PlatformMapper {
21678
21857
  userFromApi(apiUser) {
21679
21858
  if (!apiUser)
21680
21859
  return null;
21681
- const { enabled, emailAddresses, organisation, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
21860
+ const { enabled, emailAddresses, organization, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
21682
21861
  return { ...apiUser, id: id.toString() };
21683
21862
  }
21684
21863
  keywordsFromApi(keywords, thesaurus, lang3) {
@@ -21780,8 +21959,6 @@ class Gn4PlatformService {
21780
21959
  this.allThesaurus$ = this.httpClient
21781
21960
  .get(`${this.registriesApiService.configuration.basePath}/thesaurus?_content_type=json`)
21782
21961
  .pipe(map$1((thesaurus) => {
21783
- // FIXME: find a better way to exclude place keywords
21784
- // thesaurus[0].filter((thes) => thes.dname !== 'place')
21785
21962
  return thesaurus[0];
21786
21963
  }), shareReplay(1));
21787
21964
  this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
@@ -21825,8 +22002,14 @@ class Gn4PlatformService {
21825
22002
  }
21826
22003
  return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
21827
22004
  }
21828
- searchKeywords(query) {
21829
- const keywords$ = this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, null, null, `*${query}*`);
22005
+ searchKeywords(query, keywordTypes) {
22006
+ const keywords$ = this.allThesaurus$.pipe(switchMap((thesaurus) => {
22007
+ const selectedThesauri = [];
22008
+ keywordTypes.map((keywordType) => {
22009
+ selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
22010
+ });
22011
+ return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
22012
+ }));
21830
22013
  return combineLatest([keywords$, this.allThesaurus$]).pipe(map$1(([keywords, thesaurus]) => {
21831
22014
  return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
21832
22015
  }));
@@ -26875,11 +27058,11 @@ class ApiCardComponent {
26875
27058
  }
26876
27059
  }
26877
27060
  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 }); }
27061
+ 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
27062
  }
26880
27063
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, decorators: [{
26881
27064
  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" }]
27065
+ 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
27066
  }], propDecorators: { link: [{
26884
27067
  type: Input
26885
27068
  }], currentLink: [{
@@ -27024,17 +27207,19 @@ var ErrorType;
27024
27207
  ErrorType[ErrorType["RECEIVED_ERROR"] = 1] = "RECEIVED_ERROR";
27025
27208
  ErrorType[ErrorType["RECORD_NOT_FOUND"] = 2] = "RECORD_NOT_FOUND";
27026
27209
  ErrorType[ErrorType["DATASET_HAS_NO_LINK"] = 3] = "DATASET_HAS_NO_LINK";
27210
+ ErrorType[ErrorType["ORGANIZATION_HAS_NO_DATASET"] = 4] = "ORGANIZATION_HAS_NO_DATASET";
27211
+ ErrorType[ErrorType["ORGANIZATION_NOT_FOUND"] = 5] = "ORGANIZATION_NOT_FOUND";
27027
27212
  })(ErrorType || (ErrorType = {}));
27028
27213
  class ErrorComponent {
27029
27214
  constructor() {
27030
27215
  this.types = ErrorType;
27031
27216
  }
27032
27217
  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 }); }
27218
+ 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
27219
  }
27035
27220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, decorators: [{
27036
27221
  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"] }]
27222
+ 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
27223
  }], propDecorators: { type: [{
27039
27224
  type: Input
27040
27225
  }], error: [{
@@ -27134,71 +27319,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27134
27319
  type: Output
27135
27320
  }] } });
27136
27321
 
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
27322
  class MetadataCatalogComponent {
27203
27323
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27204
27324
  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 +27393,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27273
27393
  args: ['contentDiv']
27274
27394
  }] } });
27275
27395
 
27396
+ class MaxLinesComponent {
27397
+ constructor(cdr) {
27398
+ this.cdr = cdr;
27399
+ this.maxLines = 6;
27400
+ this.isExpanded = false;
27401
+ this.maxHeight = '';
27402
+ this.showToggleButton = false;
27403
+ }
27404
+ ngAfterViewInit() {
27405
+ this.calculateMaxHeight();
27406
+ this.observer = new ResizeObserver((mutations) => {
27407
+ mutations.forEach(() => {
27408
+ this.calculateMaxHeight();
27409
+ });
27410
+ });
27411
+ this.observer.observe(this.container.nativeElement.children[0]);
27412
+ }
27413
+ toggleDisplay() {
27414
+ this.isExpanded = !this.isExpanded;
27415
+ this.calculateMaxHeight();
27416
+ }
27417
+ calculateMaxHeight() {
27418
+ const containerElement = this.container.nativeElement;
27419
+ const contentElement = containerElement.children[0];
27420
+ const contentHeight = contentElement.getBoundingClientRect().height;
27421
+ if (contentHeight) {
27422
+ if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
27423
+ this.showToggleButton = true;
27424
+ this.maxHeight = this.isExpanded
27425
+ ? `${contentHeight}px`
27426
+ : `${this.maxLines * this.getLineHeight(contentElement)}px`;
27427
+ }
27428
+ else {
27429
+ this.showToggleButton = false;
27430
+ this.maxHeight = `${contentHeight}px`;
27431
+ }
27432
+ containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
27433
+ this.cdr.detectChanges();
27434
+ }
27435
+ }
27436
+ getLineHeight(element) {
27437
+ const computedStyle = window.getComputedStyle(element);
27438
+ const lineHeight = parseFloat(computedStyle.lineHeight);
27439
+ const fontSize = parseFloat(computedStyle.fontSize || '14');
27440
+ const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
27441
+ return result;
27442
+ }
27443
+ ngOnDestroy() {
27444
+ if (!this.observer)
27445
+ return;
27446
+ this.observer.unobserve(this.container.nativeElement.children[0]);
27447
+ }
27448
+ 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 }); }
27449
+ 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 }); }
27450
+ }
27451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
27452
+ type: Component,
27453
+ 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" }]
27454
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
27455
+ type: Input
27456
+ }], container: [{
27457
+ type: ViewChild,
27458
+ args: ['container']
27459
+ }] } });
27460
+
27276
27461
  /* eslint-disable @angular-eslint/directive-selector */
27277
27462
  class GnUiLinkifyDirective {
27278
27463
  constructor(el, renderer) {
@@ -27412,7 +27597,7 @@ class MetadataInfoComponent {
27412
27597
  this.keyword.emit(keyword);
27413
27598
  }
27414
27599
  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 }); }
27600
+ 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
27601
  }
27417
27602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, decorators: [{
27418
27603
  type: Component,
@@ -27683,13 +27868,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
27683
27868
  }] } });
27684
27869
 
27685
27870
  class RelatedRecordCardComponent {
27871
+ constructor() {
27872
+ this.extraClass = '';
27873
+ this.baseClasses = [
27874
+ 'w-72',
27875
+ 'h-96',
27876
+ 'overflow-hidden',
27877
+ 'rounded-lg',
27878
+ 'bg-white',
27879
+ 'cursor-pointer',
27880
+ 'block',
27881
+ 'hover:-translate-y-2 ',
27882
+ 'duration-[180ms]',
27883
+ ].join(' ');
27884
+ }
27885
+ get classList() {
27886
+ return `${this.baseClasses} ${this.extraClass}`;
27887
+ }
27686
27888
  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 }); }
27889
+ 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
27890
  }
27689
27891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
27690
27892
  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: [{
27893
+ 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" }]
27894
+ }], ctorParameters: function () { return []; }, propDecorators: { record: [{
27895
+ type: Input
27896
+ }], extraClass: [{
27693
27897
  type: Input
27694
27898
  }] } });
27695
27899
 
@@ -28246,7 +28450,6 @@ class UiElementsModule {
28246
28450
  UserPreviewComponent,
28247
28451
  GnUiLinkifyDirective,
28248
28452
  PaginationButtonsComponent,
28249
- MaxLinesComponent,
28250
28453
  RecordApiFormComponent,
28251
28454
  UserFeedbackItemComponent,
28252
28455
  ImageOverlayPreviewComponent], imports: [CommonModule,
@@ -28261,7 +28464,8 @@ class UiElementsModule {
28261
28464
  MarkdownParserComponent,
28262
28465
  ThumbnailComponent,
28263
28466
  TimeSincePipe,
28264
- BadgeComponent], exports: [MetadataInfoComponent,
28467
+ BadgeComponent,
28468
+ MaxLinesComponent], exports: [MetadataInfoComponent,
28265
28469
  ContentGhostComponent,
28266
28470
  DownloadItemComponent,
28267
28471
  DownloadsListComponent,
@@ -28277,7 +28481,6 @@ class UiElementsModule {
28277
28481
  AvatarComponent,
28278
28482
  UserPreviewComponent,
28279
28483
  PaginationButtonsComponent,
28280
- MaxLinesComponent,
28281
28484
  RecordApiFormComponent,
28282
28485
  MarkdownParserComponent,
28283
28486
  UserFeedbackItemComponent,
@@ -28293,7 +28496,8 @@ class UiElementsModule {
28293
28496
  UiInputsModule,
28294
28497
  FormsModule,
28295
28498
  ThumbnailComponent,
28296
- BadgeComponent] }); }
28499
+ BadgeComponent,
28500
+ MaxLinesComponent] }); }
28297
28501
  }
28298
28502
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiElementsModule, decorators: [{
28299
28503
  type: NgModule,
@@ -28314,6 +28518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28314
28518
  ThumbnailComponent,
28315
28519
  TimeSincePipe,
28316
28520
  BadgeComponent,
28521
+ MaxLinesComponent,
28317
28522
  ],
28318
28523
  declarations: [
28319
28524
  MetadataInfoComponent,
@@ -28332,7 +28537,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28332
28537
  UserPreviewComponent,
28333
28538
  GnUiLinkifyDirective,
28334
28539
  PaginationButtonsComponent,
28335
- MaxLinesComponent,
28336
28540
  RecordApiFormComponent,
28337
28541
  UserFeedbackItemComponent,
28338
28542
  ImageOverlayPreviewComponent,
@@ -28354,7 +28558,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28354
28558
  AvatarComponent,
28355
28559
  UserPreviewComponent,
28356
28560
  PaginationButtonsComponent,
28357
- MaxLinesComponent,
28358
28561
  RecordApiFormComponent,
28359
28562
  MarkdownParserComponent,
28360
28563
  UserFeedbackItemComponent,
@@ -29111,6 +29314,9 @@ const getSearchResults = createSelector(getSearchStateSearch, (state) => state.r
29111
29314
  const getSearchResultsLoading = createSelector(getSearchStateSearch, (state) => state.loadingResults);
29112
29315
  const getSearchResultsAggregations = createSelector(getSearchStateSearch, (state) => state.results.aggregations);
29113
29316
  const getSearchResultsHits = createSelector(getSearchStateSearch, (state) => state.results.count);
29317
+ const isBeginningOfResults = createSelector(getSearchStateSearch, (state) => {
29318
+ return state.params.currentPage === 0;
29319
+ });
29114
29320
  const isEndOfResults = createSelector(getSearchStateSearch, (state) => {
29115
29321
  return (state.params.currentPage * state.params.pageSize +
29116
29322
  state.params.pageSize >=
@@ -29144,6 +29350,7 @@ class SearchFacade {
29144
29350
  this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId));
29145
29351
  this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId));
29146
29352
  this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId));
29353
+ this.isBeginningOfResults$ = this.store.pipe(select(isBeginningOfResults, searchId));
29147
29354
  this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId));
29148
29355
  this.totalPages$ = this.store.pipe(select(totalPages, searchId));
29149
29356
  this.currentPage$ = this.store.pipe(select(currentPage, searchId));
@@ -30340,12 +30547,14 @@ marker('search.filters.keyword');
30340
30547
  marker('search.filters.isSpatial');
30341
30548
  marker('search.filters.license');
30342
30549
  marker('search.filters.publicationYear');
30343
- marker('search.filters.publisher');
30550
+ marker('search.filters.organization');
30344
30551
  marker('search.filters.representationType');
30345
30552
  marker('search.filters.resourceType');
30346
30553
  marker('search.filters.standard');
30347
30554
  marker('search.filters.topic');
30348
30555
  marker('search.filters.contact');
30556
+ marker('search.filters.producerOrg');
30557
+ marker('search.filters.publisherOrg');
30349
30558
  class FieldsService {
30350
30559
  get supportedFields() {
30351
30560
  return Object.keys(this.fields);
@@ -30353,7 +30562,7 @@ class FieldsService {
30353
30562
  constructor(injector) {
30354
30563
  this.injector = injector;
30355
30564
  this.fields = {
30356
- publisher: new OrganizationSearchField(this.injector),
30565
+ organization: new OrganizationSearchField(this.injector),
30357
30566
  format: new SimpleSearchField('format', this.injector, 'asc'),
30358
30567
  resourceType: new TranslatedSearchField('resourceType', this.injector, 'asc'),
30359
30568
  representationType: new TranslatedSearchField('cl_spatialRepresentationType.key', this.injector, 'asc'),
@@ -30366,6 +30575,8 @@ class FieldsService {
30366
30575
  q: new FullTextSearchField(),
30367
30576
  license: new LicenseSearchField(this.injector),
30368
30577
  owner: new OwnerSearchField(this.injector),
30578
+ producerOrg: new MultilingualSearchField('originatorOrgForResourceObject', this.injector, 'asc', 'key'),
30579
+ publisherOrg: new MultilingualSearchField('distributorOrgForResourceObject', this.injector, 'asc', 'key'),
30369
30580
  };
30370
30581
  }
30371
30582
  getAvailableValues(fieldName) {
@@ -31383,12 +31594,9 @@ const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => sta
31383
31594
 
31384
31595
  class FigureComponent {
31385
31596
  constructor() {
31597
+ this.unit = '';
31386
31598
  this.color = 'primary';
31387
31599
  }
31388
- get hoverTitle() {
31389
- return `${this.figure.toString()} ${this.unit || ''}
31390
- ${this.title}`;
31391
- }
31392
31600
  get textClass() {
31393
31601
  return this.color === 'primary' ? 'text-primary' : 'text-secondary';
31394
31602
  }
@@ -31396,11 +31604,11 @@ ${this.title}`;
31396
31604
  return this.color === 'primary' ? 'bg-primary-white' : 'bg-secondary-white';
31397
31605
  }
31398
31606
  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 }); }
31607
+ 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
31608
  }
31401
31609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, decorators: [{
31402
31610
  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"] }]
31611
+ 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
31612
  }], propDecorators: { icon: [{
31405
31613
  type: Input
31406
31614
  }], title: [{
@@ -32987,7 +33195,10 @@ class MdViewFacade {
32987
33195
  return collectionRecords && collectionRecords.geometry
32988
33196
  ? link
32989
33197
  : null;
32990
- }), defaultIfEmpty(null));
33198
+ }), defaultIfEmpty(null), catchError((e) => {
33199
+ console.error(e);
33200
+ return of(null);
33201
+ }));
32991
33202
  }
32992
33203
  else {
32993
33204
  return of(link);
@@ -33348,15 +33559,15 @@ class OrganisationPreviewComponent {
33348
33559
  }
33349
33560
  clickOrganisation(event) {
33350
33561
  event.preventDefault();
33351
- this.clickedOrganisation.emit(this.organisation);
33562
+ this.clickedOrganisation.emit(this.organization);
33352
33563
  }
33353
33564
  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 }); }
33565
+ 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
33566
  }
33356
33567
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
33357
33568
  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: [{
33569
+ 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"] }]
33570
+ }], propDecorators: { organization: [{
33360
33571
  type: Input
33361
33572
  }], organisationUrl: [{
33362
33573
  type: Input
@@ -33468,7 +33679,8 @@ class UiCatalogModule {
33468
33679
  LanguageSwitcherComponent,
33469
33680
  OrganisationsResultComponent], imports: [CommonModule, i1$1.TranslateModule, UiElementsModule,
33470
33681
  UiInputsModule,
33471
- MatIconModule], exports: [CatalogTitleComponent,
33682
+ MatIconModule,
33683
+ RouterLink], exports: [CatalogTitleComponent,
33472
33684
  OrganisationPreviewComponent,
33473
33685
  OrganisationsFilterComponent,
33474
33686
  LanguageSwitcherComponent,
@@ -33495,6 +33707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33495
33707
  UiElementsModule,
33496
33708
  UiInputsModule,
33497
33709
  MatIconModule,
33710
+ RouterLink,
33498
33711
  ],
33499
33712
  exports: [
33500
33713
  CatalogTitleComponent,
@@ -33542,6 +33755,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33542
33755
  type: Input
33543
33756
  }] } });
33544
33757
 
33758
+ // expects the replacement key ${name}
33759
+ const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken('organization-page-url-token');
33760
+
33545
33761
  class OrganisationsComponent {
33546
33762
  constructor(organisationsService, urlTemplate) {
33547
33763
  this.organisationsService = organisationsService;
@@ -33613,17 +33829,17 @@ class OrganisationsComponent {
33613
33829
  return null;
33614
33830
  return this.urlTemplate.replace('${name}', organisation.name);
33615
33831
  }
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 }); }
33832
+ 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 }); }
33833
+ 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
33834
  }
33619
33835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, decorators: [{
33620
33836
  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" }]
33837
+ 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
33838
  }], ctorParameters: function () { return [{ type: OrganizationsServiceInterface }, { type: undefined, decorators: [{
33623
33839
  type: Optional
33624
33840
  }, {
33625
33841
  type: Inject,
33626
- args: [ORGANIZATION_URL_TOKEN]
33842
+ args: [ORGANIZATION_PAGE_URL_TOKEN]
33627
33843
  }] }]; }, propDecorators: { itemsOnPage: [{
33628
33844
  type: Input
33629
33845
  }], orgSelect: [{
@@ -33702,9 +33918,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33702
33918
  class RecordsService {
33703
33919
  constructor(recordsRepository) {
33704
33920
  this.recordsRepository = recordsRepository;
33705
- this.recordsCount$ = this.recordsRepository
33706
- .getMatchesCount({})
33707
- .pipe(shareReplay(1), catchError(() => of(0)));
33921
+ this.recordsCount$ = of(true).pipe(switchMap(() => this.recordsRepository.getMatchesCount({})), shareReplay(1));
33708
33922
  }
33709
33923
  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
33924
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, providedIn: 'root' }); }
@@ -33754,37 +33968,54 @@ const GN_UI_VERSION = new InjectionToken('gnUiVersion');
33754
33968
 
33755
33969
  const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken('webComponentEmbedderUrl');
33756
33970
  class DataViewPermalinkComponent {
33971
+ set viewType(value) {
33972
+ this.viewType$.next(value);
33973
+ }
33757
33974
  constructor(config, wcEmbedderBaseUrl, version, facade) {
33758
33975
  this.config = config;
33759
33976
  this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
33760
33977
  this.version = version;
33761
33978
  this.facade = facade;
33979
+ this.viewType$ = new BehaviorSubject('map');
33762
33980
  this.permalinkUrl$ = combineLatest([
33981
+ this.viewType$,
33763
33982
  this.facade.chartConfig$,
33764
33983
  this.facade.metadata$,
33765
- ]).pipe(map$2(([config, metadata]) => {
33766
- if (config) {
33767
- const { aggregation, xProperty, yProperty, chartType } = config;
33768
- const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin);
33769
- url.searchParams.set('v', `${this.version}`);
33770
- url.searchParams.append('e', `gn-dataset-view-chart`);
33771
- url.searchParams.append('a', `api-url=${this.config.basePath}`);
33772
- url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
33773
- url.searchParams.append('a', `primary-color=#0f4395`);
33774
- url.searchParams.append('a', `secondary-color=#8bc832`);
33775
- url.searchParams.append('a', `main-color=#555`);
33776
- url.searchParams.append('a', `background-color=#fdfbff`);
33777
- url.searchParams.append('a', `aggregation=${aggregation}`);
33778
- url.searchParams.append('a', `x-property=${xProperty}`);
33779
- url.searchParams.append('a', `y-property=${yProperty}`);
33780
- url.searchParams.append('a', `chart-type=${chartType}`);
33781
- return url.toString();
33984
+ ]).pipe(map$2(([viewType, config, metadata]) => {
33985
+ const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin);
33986
+ url.searchParams.set('v', `${this.version}`);
33987
+ if (viewType === 'chart') {
33988
+ if (config) {
33989
+ const { aggregation, xProperty, yProperty, chartType } = config;
33990
+ url.searchParams.append('e', `gn-dataset-view-chart`);
33991
+ url.searchParams.append('a', `aggregation=${aggregation}`);
33992
+ url.searchParams.append('a', `x-property=${xProperty}`);
33993
+ url.searchParams.append('a', `y-property=${yProperty}`);
33994
+ url.searchParams.append('a', `chart-type=${chartType}`);
33995
+ }
33996
+ else {
33997
+ return '';
33998
+ }
33782
33999
  }
33783
- return '';
34000
+ else if (viewType === 'table') {
34001
+ // table
34002
+ url.searchParams.append('e', `gn-dataset-view-table`);
34003
+ }
34004
+ else {
34005
+ // map
34006
+ url.searchParams.append('e', `gn-dataset-view-map`);
34007
+ }
34008
+ url.searchParams.append('a', `api-url=${this.config.basePath}`);
34009
+ url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
34010
+ url.searchParams.append('a', `primary-color=#0f4395`);
34011
+ url.searchParams.append('a', `secondary-color=#8bc832`);
34012
+ url.searchParams.append('a', `main-color=#555`);
34013
+ url.searchParams.append('a', `background-color=#fdfbff`);
34014
+ return url.toString();
33784
34015
  }));
33785
34016
  }
33786
34017
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, deps: [{ token: Configuration }, { token: WEB_COMPONENT_EMBEDDER_URL, optional: true }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
33787
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34018
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33788
34019
  }
33789
34020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
33790
34021
  type: Component,
@@ -33800,37 +34031,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33800
34031
  }] }, { type: undefined, decorators: [{
33801
34032
  type: Inject,
33802
34033
  args: [GN_UI_VERSION]
33803
- }] }, { type: MdViewFacade }]; } });
34034
+ }] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
34035
+ type: Input
34036
+ }] } });
33804
34037
 
33805
34038
  class DataViewWebComponentComponent {
34039
+ set viewType(value) {
34040
+ this.viewType$.next(value);
34041
+ }
33806
34042
  constructor(config, version, facade) {
33807
34043
  this.config = config;
33808
34044
  this.version = version;
33809
34045
  this.facade = facade;
33810
- this.webComponentHtml$ = combineLatest(this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([config, metadata]) => {
33811
- if (config) {
33812
- const { aggregation, xProperty, yProperty, chartType } = config;
34046
+ this.viewType$ = new BehaviorSubject('map');
34047
+ this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
34048
+ if (viewType === 'chart') {
34049
+ if (config) {
34050
+ const { aggregation, xProperty, yProperty, chartType } = config;
34051
+ return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
34052
+ <gn-dataset-view-chart
34053
+ api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
34054
+ dataset-id="${metadata.uniqueIdentifier}"
34055
+ aggregation="${aggregation}"
34056
+ x-property="${xProperty}"
34057
+ y-property="${yProperty}"
34058
+ chart-type="${chartType}"
34059
+ primary-color="#0f4395"
34060
+ secondary-color="#8bc832"
34061
+ main-color="#555"
34062
+ background-color="#fdfbff"
34063
+ main-font="'Inter', sans-serif"
34064
+ title-font="'DM Serif Display', serif"
34065
+ ></gn-dataset-view-chart>`;
34066
+ }
34067
+ return '';
34068
+ }
34069
+ else if (viewType === 'table') {
34070
+ return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
34071
+ <gn-dataset-view-table
34072
+ api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
34073
+ dataset-id="${metadata.uniqueIdentifier}"
34074
+ primary-color="#0f4395"
34075
+ secondary-color="#8bc832"
34076
+ main-color="#555"
34077
+ background-color="#fdfbff"
34078
+ main-font="'Inter', sans-serif"
34079
+ title-font="'DM Serif Display', serif"
34080
+ ></gn-dataset-view-table>`;
34081
+ }
34082
+ else {
33813
34083
  return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
33814
- <gn-dataset-view-chart
34084
+ <gn-dataset-view-map
33815
34085
  api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
33816
34086
  dataset-id="${metadata.uniqueIdentifier}"
33817
- aggregation="${aggregation}"
33818
- x-property="${xProperty}"
33819
- y-property="${yProperty}"
33820
- chart-type="${chartType}"
33821
34087
  primary-color="#0f4395"
33822
34088
  secondary-color="#8bc832"
33823
34089
  main-color="#555"
33824
34090
  background-color="#fdfbff"
33825
34091
  main-font="'Inter', sans-serif"
33826
34092
  title-font="'DM Serif Display', serif"
33827
- ></gn-dataset-view-chart>`;
34093
+ ></gn-dataset-view-map>`;
33828
34094
  }
33829
- return '';
33830
34095
  }));
33831
34096
  }
33832
34097
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, deps: [{ token: Configuration }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
33833
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34098
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33834
34099
  }
33835
34100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
33836
34101
  type: Component,
@@ -33841,24 +34106,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33841
34106
  }] }, { type: undefined, decorators: [{
33842
34107
  type: Inject,
33843
34108
  args: [GN_UI_VERSION]
33844
- }] }, { type: MdViewFacade }]; } });
34109
+ }] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
34110
+ type: Input
34111
+ }] } });
33845
34112
 
33846
34113
  class DataViewShareComponent {
34114
+ set viewType(value) {
34115
+ this._viewType = value;
34116
+ }
34117
+ get viewType() {
34118
+ return this._viewType;
34119
+ }
33847
34120
  constructor(wcEmbedderBaseUrl) {
33848
34121
  this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
33849
34122
  }
33850
34123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, deps: [{ token: WEB_COMPONENT_EMBEDDER_URL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
33851
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$5.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink" }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$5.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: ["viewType"] }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: ["viewType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33852
34125
  }
33853
34126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
33854
34127
  type: Component,
33855
- args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
34128
+ args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
33856
34129
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
33857
34130
  type: Optional
33858
34131
  }, {
33859
34132
  type: Inject,
33860
34133
  args: [WEB_COMPONENT_EMBEDDER_URL]
33861
- }] }]; } });
34134
+ }] }]; }, propDecorators: { viewType: [{
34135
+ type: Input
34136
+ }] } });
33862
34137
 
33863
34138
  class FeatureRecordModule {
33864
34139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -33953,21 +34228,21 @@ const DEFAULT_FIELDS = [
33953
34228
  {
33954
34229
  model: 'title',
33955
34230
  formFieldConfig: {
33956
- labelKey: 'Metadata title',
34231
+ labelKey: marker('editor.record.form.metadata.title'),
33957
34232
  type: 'text',
33958
34233
  },
33959
34234
  },
33960
34235
  {
33961
34236
  model: 'abstract',
33962
34237
  formFieldConfig: {
33963
- labelKey: 'Abstract',
34238
+ labelKey: marker('editor.record.form.abstract'),
33964
34239
  type: 'rich',
33965
34240
  },
33966
34241
  },
33967
34242
  {
33968
34243
  model: 'uniqueIdentifier',
33969
34244
  formFieldConfig: {
33970
- labelKey: 'Unique identifier',
34245
+ labelKey: marker('editor.record.form.unique.identifier'),
33971
34246
  type: 'text',
33972
34247
  locked: true,
33973
34248
  },
@@ -33975,7 +34250,7 @@ const DEFAULT_FIELDS = [
33975
34250
  {
33976
34251
  model: 'recordUpdated',
33977
34252
  formFieldConfig: {
33978
- labelKey: 'Record Updated',
34253
+ labelKey: marker('editor.record.form.record.updated'),
33979
34254
  type: 'text',
33980
34255
  locked: true,
33981
34256
  },
@@ -34603,7 +34878,9 @@ class FormFieldKeywordsComponent {
34603
34878
  return `${item.title} (${item.value.thesaurus?.name})`;
34604
34879
  };
34605
34880
  this.autoCompleteAction = (query) => {
34606
- return this.platformService.searchKeywords(query).pipe(map$2((keywords) => keywords.map((keyword) => {
34881
+ return this.platformService
34882
+ .searchKeywords(query, ['temporal', 'theme', 'other'])
34883
+ .pipe(map$2((keywords) => keywords.map((keyword) => {
34607
34884
  return { title: keyword.label, value: keyword };
34608
34885
  })));
34609
34886
  };
@@ -35179,6 +35456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35179
35456
  const ROUTER_STATE_KEY = 'router';
35180
35457
  const ROUTER_ROUTE_SEARCH = 'search';
35181
35458
  const ROUTER_ROUTE_DATASET = 'dataset';
35459
+ const ROUTER_ROUTE_ORGANIZATION = 'organization';
35182
35460
  var ROUTE_PARAMS;
35183
35461
  (function (ROUTE_PARAMS) {
35184
35462
  ROUTE_PARAMS["SORT"] = "_sort";
@@ -35210,11 +35488,18 @@ class RouterService {
35210
35488
  path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
35211
35489
  component: this.routerConfig.recordRouteComponent,
35212
35490
  },
35491
+ {
35492
+ path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
35493
+ component: this.routerConfig.organizationRouteComponent,
35494
+ },
35213
35495
  ];
35214
35496
  }
35215
35497
  getSearchRoute() {
35216
35498
  return ROUTER_ROUTE_SEARCH;
35217
35499
  }
35500
+ getOrganizationPageRoute() {
35501
+ return ROUTER_ROUTE_ORGANIZATION;
35502
+ }
35218
35503
  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
35504
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
35220
35505
  }
@@ -35261,6 +35546,13 @@ class RouterFacade {
35261
35546
  this.store.dispatch(setIncompleteMetadata({ incomplete: metadata }));
35262
35547
  });
35263
35548
  }
35549
+ goToOrganization(organizationName) {
35550
+ const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`;
35551
+ this.go({
35552
+ path,
35553
+ queryParamsHandling: '',
35554
+ });
35555
+ }
35264
35556
  updateSearch(query) {
35265
35557
  this.go({
35266
35558
  path: this.routerService.getSearchRoute(),
@@ -35541,5 +35833,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
35541
35833
  * Generated bundle index. Do not edit.
35542
35834
  */
35543
35835
 
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 };
35836
+ 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
35837
  //# sourceMappingURL=geonetwork-ui.mjs.map