geonetwork-ui 2.5.0-dev.4e621e7b5 → 2.5.0-dev.59720aa72

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 (137) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +2 -2
  2. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -8
  3. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  4. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  5. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +4 -4
  6. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +2 -2
  7. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  8. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -12
  9. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  10. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  11. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  12. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  13. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +24 -5
  14. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +8 -6
  15. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -3
  16. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +7 -8
  17. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  18. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  19. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +37 -2
  20. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  21. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +2 -7
  22. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  23. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  24. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +5 -3
  25. package/esm2022/translations/de.json +1 -72
  26. package/esm2022/translations/en.json +1 -64
  27. package/esm2022/translations/es.json +0 -71
  28. package/esm2022/translations/fr.json +1 -72
  29. package/esm2022/translations/it.json +1 -72
  30. package/esm2022/translations/nl.json +0 -71
  31. package/esm2022/translations/pt.json +0 -71
  32. package/fesm2022/geonetwork-ui.mjs +113 -695
  33. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  34. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  35. package/libs/feature/editor/src/index.d.ts +1 -0
  36. package/libs/feature/editor/src/index.d.ts.map +1 -1
  37. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  38. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  39. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  40. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  41. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  42. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  43. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  44. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  45. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +4 -1
  46. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  47. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  48. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  49. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  50. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  51. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
  52. package/libs/ui/inputs/src/index.d.ts +0 -1
  53. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  54. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +16 -1
  55. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  56. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  57. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  58. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -3
  59. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  60. package/libs/ui/widgets/src/index.d.ts +0 -1
  61. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  62. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  63. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  64. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +1 -1
  67. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +3 -11
  68. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +90 -0
  69. package/src/libs/feature/editor/src/index.ts +1 -0
  70. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  71. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  72. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -11
  73. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  74. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  75. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  76. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  77. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -13
  78. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +23 -4
  79. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  80. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +4 -2
  81. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  82. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  83. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +8 -8
  84. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +4 -6
  85. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  86. package/src/libs/ui/inputs/src/index.ts +0 -1
  87. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +42 -0
  88. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  89. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -7
  90. package/src/libs/ui/widgets/src/index.ts +0 -1
  91. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  92. package/src/libs/util/data-fetcher/src/lib/utils.ts +4 -2
  93. package/translations/de.json +1 -72
  94. package/translations/en.json +1 -64
  95. package/translations/es.json +0 -71
  96. package/translations/fr.json +1 -72
  97. package/translations/it.json +1 -72
  98. package/translations/nl.json +0 -71
  99. package/translations/pt.json +0 -71
  100. package/translations/sk.json +0 -71
  101. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  102. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  103. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  104. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  105. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  106. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  107. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  108. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  109. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  110. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  111. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  112. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  113. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  114. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  115. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  116. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  117. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  118. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  119. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  120. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  121. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  122. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  123. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  124. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  125. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  126. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  127. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  128. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  129. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  130. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  131. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  132. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  133. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  134. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  135. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  136. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  137. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -37,7 +37,6 @@ import * as i1$6 from '@angular/material/autocomplete';
37
37
  import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
38
38
  import * as i3 from 'ngx-dropzone';
39
39
  import { NgxDropzoneModule } from 'ngx-dropzone';
40
- import * as i5 from 'ngx-chips';
41
40
  import { TagInputModule } from 'ngx-chips';
42
41
  import * as i1$5 from '@angular/material/progress-spinner';
43
42
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@@ -18637,24 +18636,6 @@ var de = {
18637
18636
  "dashboard.records.userEmail": "E-Mail",
18638
18637
  "dashboard.records.username": "Benutzername",
18639
18638
  "dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
18640
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
18641
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
18642
- "datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
18643
- "datafeeder.analysisProgressBar.subtitle": "Die Analyse kann einige Minuten dauern. Bitte warten Sie.",
18644
- "datafeeder.analysisProgressBar.title": "Analyse in Bearbeitung",
18645
- "datafeeder.datasetValidation.datasetInformation": "Der bereitgestellte Datensatz enthält {number} Elemente",
18646
- "datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
18647
- "datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
18648
- "datafeeder.datasetValidation.unknown": " - ",
18649
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
18650
- "datafeeder.datasetValidationCsv.lineNumbers": "",
18651
- "datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
18652
- "datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
18653
- "datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
18654
- "datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
18655
- "datafeeder.form.tags": "Wählen Sie einen oder mehrere Tage aus, die zu Ihrem Datensatz passen",
18656
- "datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
18657
- "datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
18658
18639
  "datafeeder.month.april": "April",
18659
18640
  "datafeeder.month.august": "August",
18660
18641
  "datafeeder.month.december": "Dezember",
@@ -18667,59 +18648,6 @@ var de = {
18667
18648
  "datafeeder.month.november": "November",
18668
18649
  "datafeeder.month.october": "Oktober",
18669
18650
  "datafeeder.month.september": "September",
18670
- "datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist.",
18671
- "datafeeder.publish.illustration.title": "Ein weiterer Datensatz \n zum Veröffentlichen?",
18672
- "datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
18673
- "datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
18674
- "datafeeder.publish.upload": "Jetzt hochladen",
18675
- "datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
18676
- "datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
18677
- "datafeeder.publishSuccess.mapViewer": "Kartenviewer",
18678
- "datafeeder.publishSuccess.ogcFeature": "",
18679
- "datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
18680
- "datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
18681
- "datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
18682
- "datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
18683
- "datafeeder.summarizePage.previous": "Zurück",
18684
- "datafeeder.summarizePage.submit": "Absenden",
18685
- "datafeeder.summarizePage.title": "Sie sind fast fertig...",
18686
- "datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
18687
- "datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
18688
- "datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen geografischen Datensatz enthält",
18689
- "datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
18690
- "datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
18691
- "datafeeder.upload.error.subtitle.fileSize": "Beachten Sie: Maximale Dateigröße {size} MB",
18692
- "datafeeder.upload.error.title.analysis": "Fehler während der Datensatzanalyse",
18693
- "datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
18694
- "datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
18695
- "datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
18696
- "datafeeder.upload.error.title.fileSize": "Die Dateigröße ist zu groß",
18697
- "datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
18698
- "datafeeder.upload.illustration.enrichment": "Anreicherung",
18699
- "datafeeder.upload.illustration.import": "Import",
18700
- "datafeeder.upload.illustration.title": "Das Hinzufügen von Daten \n war noch nie so einfach",
18701
- "datafeeder.upload.illustration.validation": "Validierung",
18702
- "datafeeder.upload.illustration.verification": "Überprüfung",
18703
- "datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
18704
- "datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
18705
- "datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
18706
- "datafeeder.upload.uploadButton": "Hochladen",
18707
- "datafeeder.validation.csv.delimiter": "",
18708
- "datafeeder.validation.csv.delimiter.comma": "",
18709
- "datafeeder.validation.csv.delimiter.semicolon": "",
18710
- "datafeeder.validation.csv.lat.field": "",
18711
- "datafeeder.validation.csv.lng.field": "",
18712
- "datafeeder.validation.csv.quote.double": "",
18713
- "datafeeder.validation.csv.quote.none": "",
18714
- "datafeeder.validation.csv.quote.simple": "",
18715
- "datafeeder.validation.csv.quoteChar": "",
18716
- "datafeeder.validation.encoding": "Codierung",
18717
- "datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
18718
- "datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
18719
- "datafeeder.validation.projection": "Raumbezugssystem:",
18720
- "datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem aus",
18721
- "datafeeder.validation.sample.title": "Und eine Beispielentität aus dem Datensatz",
18722
- "datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
18723
18651
  "datafeeder.wizardSummarize.createdAt": "Erstellt am",
18724
18652
  "datafeeder.wizardSummarize.scale": "Maßstab",
18725
18653
  "datahub.header.datasets": "Datensätze",
@@ -19026,7 +18954,7 @@ var de = {
19026
18954
  "record.action.rollback": "",
19027
18955
  "record.action.view": "Anzeigen",
19028
18956
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
19029
- "record.feature.limit": "Die Ressource enthält mehr als {count} Features und kann hier nicht angezeigt werden.",
18957
+ "record.feature.limit": "Die Vorschau wurde aufgrund zu vieler Elemente deaktiviert",
19030
18958
  "record.metadata.about": "Beschreibung",
19031
18959
  "record.metadata.api": "API",
19032
18960
  "record.metadata.api.form.closeButton": "Schließen",
@@ -19253,16 +19181,6 @@ var en = {
19253
19181
  "dashboard.records.userEmail": "Email",
19254
19182
  "dashboard.records.username": "Username",
19255
19183
  "dashboard.records.users": "{count, plural, =1{user} other{users}}",
19256
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
19257
- "datafeeder.anaeditor.record.saveStatus.recordNotPublishedasetValidationCsv.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",
19258
- "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
19259
- "datafeeder.form.abstract": "How would you describe your dataset?",
19260
- "datafeeder.form.datepicker": "Do you know when the dataset was created?",
19261
- "datafeeder.form.description": "Finally, please describe the process used to create the dataset",
19262
- "datafeeder.form.dropdown": "For which scale was it created?",
19263
- "datafeeder.form.tags": "Select one or more tags that fit your dataset",
19264
- "datafeeder.form.title": "Give your dataset the best title",
19265
- "datafeeder.formsPage.title": "Tell us more about your dataset",
19266
19184
  "datafeeder.month.april": "April",
19267
19185
  "datafeeder.month.august": "August",
19268
19186
  "datafeeder.month.december": "December",
@@ -19275,59 +19193,6 @@ var en = {
19275
19193
  "datafeeder.month.november": "November",
19276
19194
  "datafeeder.month.october": "October",
19277
19195
  "datafeeder.month.september": "September",
19278
- "datafeeder.publish.hint": "You can safely exit this page, you will be notified when the process is over",
19279
- "datafeeder.publish.illustration.title": "Another dataset \n to publish?",
19280
- "datafeeder.publish.subtitle": "Publishing may take several minutes.",
19281
- "datafeeder.publish.title": "Thank you! \n Your dataset is being published",
19282
- "datafeeder.publish.upload": "Upload it now",
19283
- "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
19284
- "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
19285
- "datafeeder.publishSuccess.mapViewer": "Map viewer",
19286
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
19287
- "datafeeder.publishSuccess.subtitle": "View your data in:",
19288
- "datafeeder.publishSuccess.title": "Congratulations! \n Your dataset has been published",
19289
- "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
19290
- "datafeeder.summarizePage.illustration": "No mistake? Let's go!",
19291
- "datafeeder.summarizePage.previous": "Previous",
19292
- "datafeeder.summarizePage.submit": "Submit",
19293
- "datafeeder.summarizePage.title": "You're almost there...",
19294
- "datafeeder.upload.acceptedFormats": "Accepted file formats:",
19295
- "datafeeder.upload.checkboxLabel": "I hold the rights to publish this dataset",
19296
- "datafeeder.upload.error.subtitle.analysis": "Check that the file contains a valid geospatial dataset",
19297
- "datafeeder.upload.error.subtitle.cantOpenFile": "Please check that the file is valid",
19298
- "datafeeder.upload.error.subtitle.fileFormat": "Remember: only SHP",
19299
- "datafeeder.upload.error.subtitle.fileSize": "Remember: {size} MB maximum",
19300
- "datafeeder.upload.error.title.analysis": "Error during the dataset analysis",
19301
- "datafeeder.upload.error.title.cantOpenFile": "Error while opening the file",
19302
- "datafeeder.upload.error.title.fileFormat": "The selected file format is not supported",
19303
- "datafeeder.upload.error.title.fileHasntSelected": "No file selected",
19304
- "datafeeder.upload.error.title.fileSize": "The file size is too large",
19305
- "datafeeder.upload.error.title.noRightsToSendData": "You are not allowed to publish this dataset",
19306
- "datafeeder.upload.illustration.enrichment": "Enrichment",
19307
- "datafeeder.upload.illustration.import": "Import",
19308
- "datafeeder.upload.illustration.title": "Adding data \n has never been easier",
19309
- "datafeeder.upload.illustration.validation": "Validation",
19310
- "datafeeder.upload.illustration.verification": "Verification",
19311
- "datafeeder.upload.inputLabel": "Import your file",
19312
- "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
19313
- "datafeeder.upload.title": "Upload your dataset",
19314
- "datafeeder.upload.uploadButton": "Upload",
19315
- "datafeeder.validation.csv.delimiter": "Delimiter",
19316
- "datafeeder.validation.csv.delimiter.comma": "Comma",
19317
- "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
19318
- "datafeeder.validation.csv.lat.field": "Latitude column",
19319
- "datafeeder.validation.csv.lng.field": "Longitude column",
19320
- "datafeeder.validation.csv.quote.double": "Double quote",
19321
- "datafeeder.validation.csv.quote.none": "None",
19322
- "datafeeder.validation.csv.quote.simple": "Single quote",
19323
- "datafeeder.validation.csv.quoteChar": "Quote separator",
19324
- "datafeeder.validation.encoding": "Encoding",
19325
- "datafeeder.validation.extent.title": "Here is the dataset extent",
19326
- "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
19327
- "datafeeder.validation.projection": "Spatial reference system:",
19328
- "datafeeder.validation.projection.unknown": "Choose a spatial reference system",
19329
- "datafeeder.validation.sample.title": "And a sample entity from the dataset",
19330
- "datafeeder.wizard.emptyRequiredValuesMessage": "Please fill in mandatory fields",
19331
19196
  "datafeeder.wizardSummarize.createdAt": "Created at",
19332
19197
  "datafeeder.wizardSummarize.scale": "Scale",
19333
19198
  "datahub.header.datasets": "Datasets",
@@ -19634,7 +19499,7 @@ var en = {
19634
19499
  "record.action.rollback": "Rollback",
19635
19500
  "record.action.view": "View",
19636
19501
  "record.externalViewer.open": "Open in the external map viewer",
19637
- "record.feature.limit": "The resource contains more than {count} features and cannot be displayed here.",
19502
+ "record.feature.limit": "Preview disabled due to too many elements",
19638
19503
  "record.metadata.about": "Description",
19639
19504
  "record.metadata.api": "API",
19640
19505
  "record.metadata.api.form.closeButton": "Close",
@@ -19861,24 +19726,6 @@ var es = {
19861
19726
  "dashboard.records.userEmail": "",
19862
19727
  "dashboard.records.username": "",
19863
19728
  "dashboard.records.users": "",
19864
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
19865
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
19866
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
19867
- "datafeeder.analysisProgressBar.subtitle": "",
19868
- "datafeeder.analysisProgressBar.title": "",
19869
- "datafeeder.datasetValidation.datasetInformation": "",
19870
- "datafeeder.datasetValidation.submitButton": "",
19871
- "datafeeder.datasetValidation.title": "",
19872
- "datafeeder.datasetValidation.unknown": "",
19873
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19874
- "datafeeder.datasetValidationCsv.lineNumbers": "",
19875
- "datafeeder.form.abstract": "",
19876
- "datafeeder.form.datepicker": "",
19877
- "datafeeder.form.description": "",
19878
- "datafeeder.form.dropdown": "",
19879
- "datafeeder.form.tags": "",
19880
- "datafeeder.form.title": "",
19881
- "datafeeder.formsPage.title": "",
19882
19729
  "datafeeder.month.april": "",
19883
19730
  "datafeeder.month.august": "",
19884
19731
  "datafeeder.month.december": "",
@@ -19891,59 +19738,6 @@ var es = {
19891
19738
  "datafeeder.month.november": "",
19892
19739
  "datafeeder.month.october": "",
19893
19740
  "datafeeder.month.september": "",
19894
- "datafeeder.publish.hint": "",
19895
- "datafeeder.publish.illustration.title": "",
19896
- "datafeeder.publish.subtitle": "",
19897
- "datafeeder.publish.title": "",
19898
- "datafeeder.publish.upload": "",
19899
- "datafeeder.publishSuccess.geonetworkRecord": "",
19900
- "datafeeder.publishSuccess.illustration.title": "",
19901
- "datafeeder.publishSuccess.mapViewer": "",
19902
- "datafeeder.publishSuccess.ogcFeature": "",
19903
- "datafeeder.publishSuccess.subtitle": "",
19904
- "datafeeder.publishSuccess.title": "",
19905
- "datafeeder.publishSuccess.uploadAnotherData": "",
19906
- "datafeeder.summarizePage.illustration": "",
19907
- "datafeeder.summarizePage.previous": "",
19908
- "datafeeder.summarizePage.submit": "",
19909
- "datafeeder.summarizePage.title": "",
19910
- "datafeeder.upload.acceptedFormats": "",
19911
- "datafeeder.upload.checkboxLabel": "",
19912
- "datafeeder.upload.error.subtitle.analysis": "",
19913
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
19914
- "datafeeder.upload.error.subtitle.fileFormat": "",
19915
- "datafeeder.upload.error.subtitle.fileSize": "",
19916
- "datafeeder.upload.error.title.analysis": "",
19917
- "datafeeder.upload.error.title.cantOpenFile": "",
19918
- "datafeeder.upload.error.title.fileFormat": "",
19919
- "datafeeder.upload.error.title.fileHasntSelected": "",
19920
- "datafeeder.upload.error.title.fileSize": "",
19921
- "datafeeder.upload.error.title.noRightsToSendData": "",
19922
- "datafeeder.upload.illustration.enrichment": "",
19923
- "datafeeder.upload.illustration.import": "",
19924
- "datafeeder.upload.illustration.title": "",
19925
- "datafeeder.upload.illustration.validation": "",
19926
- "datafeeder.upload.illustration.verification": "",
19927
- "datafeeder.upload.inputLabel": "",
19928
- "datafeeder.upload.maxFileSize": "",
19929
- "datafeeder.upload.title": "",
19930
- "datafeeder.upload.uploadButton": "",
19931
- "datafeeder.validation.csv.delimiter": "",
19932
- "datafeeder.validation.csv.delimiter.comma": "Coma",
19933
- "datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
19934
- "datafeeder.validation.csv.lat.field": "",
19935
- "datafeeder.validation.csv.lng.field": "",
19936
- "datafeeder.validation.csv.quote.double": "Comillas dobles",
19937
- "datafeeder.validation.csv.quote.none": "Ninguno",
19938
- "datafeeder.validation.csv.quote.simple": "Comillas simples",
19939
- "datafeeder.validation.csv.quoteChar": "",
19940
- "datafeeder.validation.encoding": "",
19941
- "datafeeder.validation.extent.title": "",
19942
- "datafeeder.validation.extent.title.unknown": "",
19943
- "datafeeder.validation.projection": "",
19944
- "datafeeder.validation.projection.unknown": "",
19945
- "datafeeder.validation.sample.title": "",
19946
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
19947
19741
  "datafeeder.wizardSummarize.createdAt": "",
19948
19742
  "datafeeder.wizardSummarize.scale": "",
19949
19743
  "datahub.header.datasets": "",
@@ -20477,24 +20271,6 @@ var fr = {
20477
20271
  "dashboard.records.userEmail": "Email",
20478
20272
  "dashboard.records.username": "Nom d'utilisateur",
20479
20273
  "dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
20480
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
20481
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
20482
- "datafeeder.analysisProgressBar.illustration.samplingData": "Échantillonnage \n des données",
20483
- "datafeeder.analysisProgressBar.subtitle": "L'analyse peut prendre plusieurs minutes, merci de patienter.",
20484
- "datafeeder.analysisProgressBar.title": "Analyse en cours",
20485
- "datafeeder.datasetValidation.datasetInformation": "Le jeu de données fourni contient {number} entités",
20486
- "datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
20487
- "datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
20488
- "datafeeder.datasetValidation.unknown": " - ",
20489
- "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érifiez que le fichier est bien formaté",
20490
- "datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
20491
- "datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
20492
- "datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
20493
- "datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
20494
- "datafeeder.form.dropdown": "Et pour quelle échelle ?",
20495
- "datafeeder.form.tags": "Choisissez un ou plusieurs mots-clés correspondant à vos données",
20496
- "datafeeder.form.title": "Donnez un titre à votre jeu de données",
20497
- "datafeeder.formsPage.title": "Dites-nous en plus sur ces données",
20498
20274
  "datafeeder.month.april": "Avril",
20499
20275
  "datafeeder.month.august": "Août",
20500
20276
  "datafeeder.month.december": "Décembre",
@@ -20507,59 +20283,6 @@ var fr = {
20507
20283
  "datafeeder.month.november": "Novembre",
20508
20284
  "datafeeder.month.october": "Octobre",
20509
20285
  "datafeeder.month.september": "Septembre",
20510
- "datafeeder.publish.hint": "Vous pouvez quitter cette page en toute sécurité, vous serez prévenus quand le processus sera terminé",
20511
- "datafeeder.publish.illustration.title": "Une autre donnée \n à publier ?",
20512
- "datafeeder.publish.subtitle": "La publication peut prendre plusieurs minutes.",
20513
- "datafeeder.publish.title": "Merci! \n Vos données sont en cours de publication",
20514
- "datafeeder.publish.upload": "Télécharger maintenant",
20515
- "datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnées",
20516
- "datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
20517
- "datafeeder.publishSuccess.mapViewer": "Visualiseur",
20518
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
20519
- "datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
20520
- "datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
20521
- "datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
20522
- "datafeeder.summarizePage.illustration": "Pas d'erreur ? C'est parti !",
20523
- "datafeeder.summarizePage.previous": "Précédent",
20524
- "datafeeder.summarizePage.submit": "Publier",
20525
- "datafeeder.summarizePage.title": "On y est presque...",
20526
- "datafeeder.upload.acceptedFormats": "Formats de fichier acceptés :",
20527
- "datafeeder.upload.checkboxLabel": "J'ai le droit de publier cette donnée",
20528
- "datafeeder.upload.error.subtitle.analysis": "Le fichier transféré contient-il des données géographiques valides ?",
20529
- "datafeeder.upload.error.subtitle.cantOpenFile": "Vérifiez la validité du fichier sélectionné",
20530
- "datafeeder.upload.error.subtitle.fileFormat": "Rappel : uniquement des SHP",
20531
- "datafeeder.upload.error.subtitle.fileSize": "Rappel : {size} Mo maximum",
20532
- "datafeeder.upload.error.title.analysis": "Erreur lors de l'analyse des données",
20533
- "datafeeder.upload.error.title.cantOpenFile": "Erreur lors de l'ouverture du fichier",
20534
- "datafeeder.upload.error.title.fileFormat": "Le format du fichier n'est pas supporté",
20535
- "datafeeder.upload.error.title.fileHasntSelected": "Aucun fichier n'a été sélectionné",
20536
- "datafeeder.upload.error.title.fileSize": "La taille du fichier est trop importante",
20537
- "datafeeder.upload.error.title.noRightsToSendData": "Vous n'avez pas validé les droits de publication",
20538
- "datafeeder.upload.illustration.enrichment": "Enrichissement",
20539
- "datafeeder.upload.illustration.import": "Import",
20540
- "datafeeder.upload.illustration.title": "Ajouter des données n'a jamais été aussi simple",
20541
- "datafeeder.upload.illustration.validation": "Validation",
20542
- "datafeeder.upload.illustration.verification": "Vérification",
20543
- "datafeeder.upload.inputLabel": "Ajouter votre fichier",
20544
- "datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
20545
- "datafeeder.upload.title": "Importez vos données",
20546
- "datafeeder.upload.uploadButton": "Transférer",
20547
- "datafeeder.validation.csv.delimiter": "Séparateur de colonne",
20548
- "datafeeder.validation.csv.delimiter.comma": "Virgule",
20549
- "datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
20550
- "datafeeder.validation.csv.lat.field": "Colonne latitude",
20551
- "datafeeder.validation.csv.lng.field": "Colonne longitude",
20552
- "datafeeder.validation.csv.quote.double": "Double guillemets",
20553
- "datafeeder.validation.csv.quote.none": "Aucun",
20554
- "datafeeder.validation.csv.quote.simple": "Simple guillemet",
20555
- "datafeeder.validation.csv.quoteChar": "Séparateur de texte",
20556
- "datafeeder.validation.encoding": "Encodage",
20557
- "datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
20558
- "datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
20559
- "datafeeder.validation.projection": "Projection :",
20560
- "datafeeder.validation.projection.unknown": "Choisissez une projection",
20561
- "datafeeder.validation.sample.title": "Et un exemple d'objet",
20562
- "datafeeder.wizard.emptyRequiredValuesMessage": "Veuillez remplir les champs obligatoires",
20563
20286
  "datafeeder.wizardSummarize.createdAt": "Créée le",
20564
20287
  "datafeeder.wizardSummarize.scale": "Échelle",
20565
20288
  "datahub.header.datasets": "Données",
@@ -20866,7 +20589,7 @@ var fr = {
20866
20589
  "record.action.rollback": "Restaurer",
20867
20590
  "record.action.view": "Voir",
20868
20591
  "record.externalViewer.open": "Ouvrir dans le visualiseur externe",
20869
- "record.feature.limit": "La ressource contient plus de {count} entités et ne peut pas être affichée ici.",
20592
+ "record.feature.limit": "L’aperçu a été désactivé en raison d’un trop grand nombre d'éléments",
20870
20593
  "record.metadata.about": "Description",
20871
20594
  "record.metadata.api": "API",
20872
20595
  "record.metadata.api.form.closeButton": "Fermer",
@@ -21093,24 +20816,6 @@ var it = {
21093
20816
  "dashboard.records.userEmail": "Email",
21094
20817
  "dashboard.records.username": "Nome utente",
21095
20818
  "dashboard.records.users": "utenti",
21096
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Rilevamento del formato dei file",
21097
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Recupero delle informazioni dal dataset",
21098
- "datafeeder.analysisProgressBar.illustration.samplingData": "Campionatura dei dati",
21099
- "datafeeder.analysisProgressBar.subtitle": "L'analisi potrebbe richiedere alcuni minuti, si prega di attendere.",
21100
- "datafeeder.analysisProgressBar.title": "Analisi in corso",
21101
- "datafeeder.datasetValidation.datasetInformation": "Il dataset fornito contiene {number} entità",
21102
- "datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
21103
- "datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
21104
- "datafeeder.datasetValidation.unknown": " - ",
21105
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "*La tabella dovrebbe visualizzare le prime 5 righe (esclusa l'intestazione)<br>In caso contrario, verificare che il file sia formattato correttamente",
21106
- "datafeeder.datasetValidationCsv.lineNumbers": "Riepilogo delle prime 5 righe del CSV:",
21107
- "datafeeder.form.abstract": "Come descrivere il suo dataset?",
21108
- "datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
21109
- "datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
21110
- "datafeeder.form.dropdown": "Per quale scala è stato creato?",
21111
- "datafeeder.form.tags": "Seleziona uno o più parole chiave che corrispondano al suo dataset",
21112
- "datafeeder.form.title": "Dà al suo dataset il miglior titolo",
21113
- "datafeeder.formsPage.title": "Diteci di più sul suo dataset",
21114
20819
  "datafeeder.month.april": "Aprile",
21115
20820
  "datafeeder.month.august": "Agosto",
21116
20821
  "datafeeder.month.december": "Dicembre",
@@ -21123,59 +20828,6 @@ var it = {
21123
20828
  "datafeeder.month.november": "Novembre",
21124
20829
  "datafeeder.month.october": "Ottobre",
21125
20830
  "datafeeder.month.september": "Settembre",
21126
- "datafeeder.publish.hint": "Puo lasciare questa pagina in sicurezza, sarà avvisato quando il processo sarà completo",
21127
- "datafeeder.publish.illustration.title": "Un altro dato da pubblicare?",
21128
- "datafeeder.publish.subtitle": "La pubblicazione potrebbe richiedere alcuni minuti.",
21129
- "datafeeder.publish.title": "Grazie! \n I suei dati sono in fase di pubblicazione",
21130
- "datafeeder.publish.upload": "Carica ora",
21131
- "datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
21132
- "datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
21133
- "datafeeder.publishSuccess.mapViewer": "Visualizzatore",
21134
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
21135
- "datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
21136
- "datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
21137
- "datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
21138
- "datafeeder.summarizePage.illustration": "Nessun errore? Avanti!",
21139
- "datafeeder.summarizePage.previous": "Precedente",
21140
- "datafeeder.summarizePage.submit": "Pubblica",
21141
- "datafeeder.summarizePage.title": "Ci siamo quasi...",
21142
- "datafeeder.upload.acceptedFormats": "Formati di file accettati:",
21143
- "datafeeder.upload.checkboxLabel": "Ho il diritto di pubblicare questi dati",
21144
- "datafeeder.upload.error.subtitle.analysis": "Il file trasferito contiene dati geografici validi?",
21145
- "datafeeder.upload.error.subtitle.cantOpenFile": "Verifica la validità del file selezionato",
21146
- "datafeeder.upload.error.subtitle.fileFormat": "Ricorda: solo SHP",
21147
- "datafeeder.upload.error.subtitle.fileSize": "Ricorda: dimensione massima {size} MB",
21148
- "datafeeder.upload.error.title.analysis": "Errore durante l'analisi dei dati",
21149
- "datafeeder.upload.error.title.cantOpenFile": "Errore durante l'apertura del file",
21150
- "datafeeder.upload.error.title.fileFormat": "Formato del file non supportato",
21151
- "datafeeder.upload.error.title.fileHasntSelected": "Nessun file selezionato",
21152
- "datafeeder.upload.error.title.fileSize": "Dimensione del file troppo grande",
21153
- "datafeeder.upload.error.title.noRightsToSendData": "Non avete validato i diritti di pubblicazione",
21154
- "datafeeder.upload.illustration.enrichment": "Arricchimento",
21155
- "datafeeder.upload.illustration.import": "Importazione",
21156
- "datafeeder.upload.illustration.title": "Aggiungere dati non è mai stato così facile",
21157
- "datafeeder.upload.illustration.validation": "Validazione",
21158
- "datafeeder.upload.illustration.verification": "Verifica",
21159
- "datafeeder.upload.inputLabel": "Aggiunge il suo file",
21160
- "datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
21161
- "datafeeder.upload.title": "Importa i suoi dati",
21162
- "datafeeder.upload.uploadButton": "Carica",
21163
- "datafeeder.validation.csv.delimiter": "Separatore di colonne",
21164
- "datafeeder.validation.csv.delimiter.comma": "Virgola",
21165
- "datafeeder.validation.csv.delimiter.semicolon": "Punto e virgola",
21166
- "datafeeder.validation.csv.lat.field": "Colonna di latitudine",
21167
- "datafeeder.validation.csv.lng.field": "Colonna di longitudine",
21168
- "datafeeder.validation.csv.quote.double": "Virgolette doppie",
21169
- "datafeeder.validation.csv.quote.none": "Nessun",
21170
- "datafeeder.validation.csv.quote.simple": "Citazione semplice",
21171
- "datafeeder.validation.csv.quoteChar": "Separatore di testo",
21172
- "datafeeder.validation.encoding": "Codifica",
21173
- "datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
21174
- "datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
21175
- "datafeeder.validation.projection": "Proiezione:",
21176
- "datafeeder.validation.projection.unknown": "Seleziona una proiezione",
21177
- "datafeeder.validation.sample.title": "E un esempio di oggetto",
21178
- "datafeeder.wizard.emptyRequiredValuesMessage": "Si prega di compilare i campi obbligatori",
21179
20831
  "datafeeder.wizardSummarize.createdAt": "Creato il",
21180
20832
  "datafeeder.wizardSummarize.scale": "Scala",
21181
20833
  "datahub.header.datasets": "Dati",
@@ -21482,7 +21134,7 @@ var it = {
21482
21134
  "record.action.rollback": "Annulla",
21483
21135
  "record.action.view": "Visualizza",
21484
21136
  "record.externalViewer.open": "Aprire nel visualizzatore esterno",
21485
- "record.feature.limit": "La risorsa contiene più di {count} funzionalità e non può essere visualizzata qui.",
21137
+ "record.feature.limit": "La visualizzazione è stata disabilitata a causa di troppi elementi ",
21486
21138
  "record.metadata.about": "Descrizione",
21487
21139
  "record.metadata.api": "API",
21488
21140
  "record.metadata.api.form.closeButton": "Chiude",
@@ -21710,24 +21362,6 @@ var nl = {
21710
21362
  "dashboard.records.userEmail": "",
21711
21363
  "dashboard.records.username": "",
21712
21364
  "dashboard.records.users": "",
21713
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
21714
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
21715
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
21716
- "datafeeder.analysisProgressBar.subtitle": "",
21717
- "datafeeder.analysisProgressBar.title": "",
21718
- "datafeeder.datasetValidation.datasetInformation": "",
21719
- "datafeeder.datasetValidation.submitButton": "",
21720
- "datafeeder.datasetValidation.title": "",
21721
- "datafeeder.datasetValidation.unknown": "",
21722
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
21723
- "datafeeder.datasetValidationCsv.lineNumbers": "",
21724
- "datafeeder.form.abstract": "",
21725
- "datafeeder.form.datepicker": "",
21726
- "datafeeder.form.description": "",
21727
- "datafeeder.form.dropdown": "",
21728
- "datafeeder.form.tags": "",
21729
- "datafeeder.form.title": "",
21730
- "datafeeder.formsPage.title": "",
21731
21365
  "datafeeder.month.april": "",
21732
21366
  "datafeeder.month.august": "",
21733
21367
  "datafeeder.month.december": "",
@@ -21740,59 +21374,6 @@ var nl = {
21740
21374
  "datafeeder.month.november": "",
21741
21375
  "datafeeder.month.october": "",
21742
21376
  "datafeeder.month.september": "",
21743
- "datafeeder.publish.hint": "",
21744
- "datafeeder.publish.illustration.title": "",
21745
- "datafeeder.publish.subtitle": "",
21746
- "datafeeder.publish.title": "",
21747
- "datafeeder.publish.upload": "",
21748
- "datafeeder.publishSuccess.geonetworkRecord": "",
21749
- "datafeeder.publishSuccess.illustration.title": "",
21750
- "datafeeder.publishSuccess.mapViewer": "",
21751
- "datafeeder.publishSuccess.ogcFeature": "",
21752
- "datafeeder.publishSuccess.subtitle": "",
21753
- "datafeeder.publishSuccess.title": "",
21754
- "datafeeder.publishSuccess.uploadAnotherData": "",
21755
- "datafeeder.summarizePage.illustration": "",
21756
- "datafeeder.summarizePage.previous": "",
21757
- "datafeeder.summarizePage.submit": "",
21758
- "datafeeder.summarizePage.title": "",
21759
- "datafeeder.upload.acceptedFormats": "",
21760
- "datafeeder.upload.checkboxLabel": "",
21761
- "datafeeder.upload.error.subtitle.analysis": "",
21762
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
21763
- "datafeeder.upload.error.subtitle.fileFormat": "",
21764
- "datafeeder.upload.error.subtitle.fileSize": "",
21765
- "datafeeder.upload.error.title.analysis": "",
21766
- "datafeeder.upload.error.title.cantOpenFile": "",
21767
- "datafeeder.upload.error.title.fileFormat": "",
21768
- "datafeeder.upload.error.title.fileHasntSelected": "",
21769
- "datafeeder.upload.error.title.fileSize": "",
21770
- "datafeeder.upload.error.title.noRightsToSendData": "",
21771
- "datafeeder.upload.illustration.enrichment": "",
21772
- "datafeeder.upload.illustration.import": "",
21773
- "datafeeder.upload.illustration.title": "",
21774
- "datafeeder.upload.illustration.validation": "",
21775
- "datafeeder.upload.illustration.verification": "",
21776
- "datafeeder.upload.inputLabel": "",
21777
- "datafeeder.upload.maxFileSize": "",
21778
- "datafeeder.upload.title": "",
21779
- "datafeeder.upload.uploadButton": "",
21780
- "datafeeder.validation.csv.delimiter": "",
21781
- "datafeeder.validation.csv.delimiter.comma": "",
21782
- "datafeeder.validation.csv.delimiter.semicolon": "",
21783
- "datafeeder.validation.csv.lat.field": "",
21784
- "datafeeder.validation.csv.lng.field": "",
21785
- "datafeeder.validation.csv.quote.double": "",
21786
- "datafeeder.validation.csv.quote.none": "",
21787
- "datafeeder.validation.csv.quote.simple": "",
21788
- "datafeeder.validation.csv.quoteChar": "",
21789
- "datafeeder.validation.encoding": "",
21790
- "datafeeder.validation.extent.title": "",
21791
- "datafeeder.validation.extent.title.unknown": "",
21792
- "datafeeder.validation.projection": "",
21793
- "datafeeder.validation.projection.unknown": "",
21794
- "datafeeder.validation.sample.title": "",
21795
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
21796
21377
  "datafeeder.wizardSummarize.createdAt": "",
21797
21378
  "datafeeder.wizardSummarize.scale": "",
21798
21379
  "datahub.header.datasets": "",
@@ -22326,24 +21907,6 @@ var pt = {
22326
21907
  "dashboard.records.userEmail": "",
22327
21908
  "dashboard.records.username": "",
22328
21909
  "dashboard.records.users": "",
22329
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
22330
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
22331
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
22332
- "datafeeder.analysisProgressBar.subtitle": "",
22333
- "datafeeder.analysisProgressBar.title": "",
22334
- "datafeeder.datasetValidation.datasetInformation": "",
22335
- "datafeeder.datasetValidation.submitButton": "",
22336
- "datafeeder.datasetValidation.title": "",
22337
- "datafeeder.datasetValidation.unknown": "",
22338
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
22339
- "datafeeder.datasetValidationCsv.lineNumbers": "",
22340
- "datafeeder.form.abstract": "",
22341
- "datafeeder.form.datepicker": "",
22342
- "datafeeder.form.description": "",
22343
- "datafeeder.form.dropdown": "",
22344
- "datafeeder.form.tags": "",
22345
- "datafeeder.form.title": "",
22346
- "datafeeder.formsPage.title": "",
22347
21910
  "datafeeder.month.april": "",
22348
21911
  "datafeeder.month.august": "",
22349
21912
  "datafeeder.month.december": "",
@@ -22356,59 +21919,6 @@ var pt = {
22356
21919
  "datafeeder.month.november": "",
22357
21920
  "datafeeder.month.october": "",
22358
21921
  "datafeeder.month.september": "",
22359
- "datafeeder.publish.hint": "",
22360
- "datafeeder.publish.illustration.title": "",
22361
- "datafeeder.publish.subtitle": "",
22362
- "datafeeder.publish.title": "",
22363
- "datafeeder.publish.upload": "",
22364
- "datafeeder.publishSuccess.geonetworkRecord": "",
22365
- "datafeeder.publishSuccess.illustration.title": "",
22366
- "datafeeder.publishSuccess.mapViewer": "",
22367
- "datafeeder.publishSuccess.ogcFeature": "",
22368
- "datafeeder.publishSuccess.subtitle": "",
22369
- "datafeeder.publishSuccess.title": "",
22370
- "datafeeder.publishSuccess.uploadAnotherData": "",
22371
- "datafeeder.summarizePage.illustration": "",
22372
- "datafeeder.summarizePage.previous": "",
22373
- "datafeeder.summarizePage.submit": "",
22374
- "datafeeder.summarizePage.title": "",
22375
- "datafeeder.upload.acceptedFormats": "",
22376
- "datafeeder.upload.checkboxLabel": "",
22377
- "datafeeder.upload.error.subtitle.analysis": "",
22378
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
22379
- "datafeeder.upload.error.subtitle.fileFormat": "",
22380
- "datafeeder.upload.error.subtitle.fileSize": "",
22381
- "datafeeder.upload.error.title.analysis": "",
22382
- "datafeeder.upload.error.title.cantOpenFile": "",
22383
- "datafeeder.upload.error.title.fileFormat": "",
22384
- "datafeeder.upload.error.title.fileHasntSelected": "",
22385
- "datafeeder.upload.error.title.fileSize": "",
22386
- "datafeeder.upload.error.title.noRightsToSendData": "",
22387
- "datafeeder.upload.illustration.enrichment": "",
22388
- "datafeeder.upload.illustration.import": "",
22389
- "datafeeder.upload.illustration.title": "",
22390
- "datafeeder.upload.illustration.validation": "",
22391
- "datafeeder.upload.illustration.verification": "",
22392
- "datafeeder.upload.inputLabel": "",
22393
- "datafeeder.upload.maxFileSize": "",
22394
- "datafeeder.upload.title": "",
22395
- "datafeeder.upload.uploadButton": "",
22396
- "datafeeder.validation.csv.delimiter": "",
22397
- "datafeeder.validation.csv.delimiter.comma": "",
22398
- "datafeeder.validation.csv.delimiter.semicolon": "",
22399
- "datafeeder.validation.csv.lat.field": "",
22400
- "datafeeder.validation.csv.lng.field": "",
22401
- "datafeeder.validation.csv.quote.double": "",
22402
- "datafeeder.validation.csv.quote.none": "",
22403
- "datafeeder.validation.csv.quote.simple": "",
22404
- "datafeeder.validation.csv.quoteChar": "",
22405
- "datafeeder.validation.encoding": "",
22406
- "datafeeder.validation.extent.title": "",
22407
- "datafeeder.validation.extent.title.unknown": "",
22408
- "datafeeder.validation.projection": "",
22409
- "datafeeder.validation.projection.unknown": "",
22410
- "datafeeder.validation.sample.title": "",
22411
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
22412
21922
  "datafeeder.wizardSummarize.createdAt": "",
22413
21923
  "datafeeder.wizardSummarize.scale": "",
22414
21924
  "datahub.header.datasets": "",
@@ -23082,7 +22592,7 @@ class Gn4FieldMapper {
23082
22592
  featureTypes: selectField(source, 'featureTypes'),
23083
22593
  }, output),
23084
22594
  related: (output, source) => {
23085
- const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')), '_source');
22595
+ const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')) ?? {}, '_source');
23086
22596
  const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
23087
22597
  return featureCatalogIdentifier
23088
22598
  ? this.addExtra({ featureCatalogIdentifier }, output)
@@ -24034,14 +23544,10 @@ class Gn4Repository {
24034
23544
  return this.getExternalRecordAsXml(recordDownloadUrl).pipe(exhaustMap(async (fetchedRecordAsXml) => {
24035
23545
  const converter = findConverterForDocument(fetchedRecordAsXml);
24036
23546
  const record = await converter.readRecord(fetchedRecordAsXml);
24037
- const tempId = this.generateTemporaryId();
24038
23547
  record.title = `${record.title} (Copy)`;
24039
- record.uniqueIdentifier = tempId;
24040
- const recordAsXml = await converter.writeRecord(record, fetchedRecordAsXml);
24041
- this.saveRecordToLocalStorage(recordAsXml, record.uniqueIdentifier);
24042
- this._draftsChanged.next();
24043
- return tempId;
24044
- }), catchError((error) => {
23548
+ await converter.writeRecord(record, fetchedRecordAsXml);
23549
+ return this.saveRecord(record, '', false);
23550
+ }), exhaustMap((uuidObservable) => uuidObservable), catchError((error) => {
24045
23551
  return throwError(() => error);
24046
23552
  }));
24047
23553
  }
@@ -26343,66 +25849,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26343
25849
  args: [{ selector: 'gn-ui-color-scale', template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n" }]
26344
25850
  }] });
26345
25851
 
26346
- class StepBarComponent {
26347
- constructor(cdr) {
26348
- this.cdr = cdr;
26349
- this.currentStep = 1;
26350
- this.type = 'default';
26351
- }
26352
- get stepCounter() {
26353
- return new Array(this.steps);
26354
- }
26355
- get color() {
26356
- switch (this.type) {
26357
- case 'default':
26358
- return {
26359
- outerBar: 'bg-gray-200',
26360
- innerBar: 'bg-gray-100',
26361
- };
26362
- case 'primary':
26363
- return {
26364
- outerBar: 'bg-primary',
26365
- innerBar: 'bg-primary-lighter',
26366
- };
26367
- case 'secondary':
26368
- return {
26369
- outerBar: 'bg-secondary',
26370
- innerBar: 'bg-secondary-lighter',
26371
- };
26372
- }
26373
- }
26374
- getCircleColor(index) {
26375
- return index === this.currentStep
26376
- ? 'bg-black'
26377
- : index < this.currentStep
26378
- ? 'bg-white'
26379
- : this.color.innerBar;
26380
- }
26381
- getChecked(index) {
26382
- return index + 1 < this.currentStep;
26383
- }
26384
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
26385
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StepBarComponent, selector: "gn-ui-step-bar", inputs: { steps: "steps", currentStep: "currentStep", type: "type" }, ngImport: i0, template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
26386
- }
26387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, decorators: [{
26388
- type: Component,
26389
- args: [{ selector: 'gn-ui-step-bar', template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"] }]
26390
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { steps: [{
26391
- type: Input
26392
- }], currentStep: [{
26393
- type: Input
26394
- }], type: [{
26395
- type: Input
26396
- }] } });
26397
-
26398
25852
  class UiWidgetsModule {
26399
25853
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26400
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent, StepBarComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
25854
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
26401
25855
  FormsModule,
26402
25856
  ReactiveFormsModule,
26403
25857
  TagInputModule,
26404
25858
  UtilSharedModule,
26405
- MatProgressSpinnerModule], exports: [StepBarComponent] }); }
25859
+ MatProgressSpinnerModule] }); }
26406
25860
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
26407
25861
  TranslateModule.forChild(),
26408
25862
  NgxDropzoneModule,
@@ -26415,7 +25869,7 @@ class UiWidgetsModule {
26415
25869
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, decorators: [{
26416
25870
  type: NgModule,
26417
25871
  args: [{
26418
- declarations: [ColorScaleComponent, StepBarComponent],
25872
+ declarations: [ColorScaleComponent],
26419
25873
  imports: [
26420
25874
  CommonModule,
26421
25875
  TranslateModule.forChild(),
@@ -26426,7 +25880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26426
25880
  UtilSharedModule,
26427
25881
  MatProgressSpinnerModule,
26428
25882
  ],
26429
- exports: [StepBarComponent],
25883
+ exports: [],
26430
25884
  }]
26431
25885
  }] });
26432
25886
 
@@ -26670,6 +26124,7 @@ class AutocompleteComponent {
26670
26124
  this.minCharacterCount = 3;
26671
26125
  // this will show a submit button next to the input; if false, a search icon will appear on the left
26672
26126
  this.allowSubmit = false;
26127
+ this.forceTrackPosition = false;
26673
26128
  this.itemSelected = new EventEmitter();
26674
26129
  this.inputSubmitted = new EventEmitter();
26675
26130
  this.inputCleared = new EventEmitter();
@@ -26679,12 +26134,30 @@ class AutocompleteComponent {
26679
26134
  this.lastInputValue$ = new ReplaySubject(1);
26680
26135
  this.error = null;
26681
26136
  this.subscription = new Subscription();
26137
+ this.lastPosition = null;
26682
26138
  this.displayWithFn = (item) => item.toString();
26683
26139
  this.displayWithFnInternal = (item) => {
26684
26140
  if (item === null || item === undefined)
26685
26141
  return null;
26686
26142
  return this.displayWithFn(item);
26687
26143
  };
26144
+ /**
26145
+ * !!! This function is used only for web component mode,
26146
+ * the autocomplete dropdown may not update its position
26147
+ * if the page or container is disabling wind scroll.
26148
+ */
26149
+ this.trackPosition = () => {
26150
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen;
26151
+ const rect = this.inputRef.nativeElement.getBoundingClientRect();
26152
+ if (dropdownOpened &&
26153
+ (!this.lastPosition ||
26154
+ rect.top !== this.lastPosition.top ||
26155
+ rect.left !== this.lastPosition.left)) {
26156
+ this.triggerRef.updatePosition();
26157
+ }
26158
+ this.lastPosition = rect;
26159
+ requestAnimationFrame(this.trackPosition);
26160
+ };
26688
26161
  }
26689
26162
  ngOnChanges(changes) {
26690
26163
  const { value } = changes;
@@ -26736,9 +26209,23 @@ class AutocompleteComponent {
26736
26209
  this.inputRef.nativeElement.focus();
26737
26210
  this.cdRef.detectChanges();
26738
26211
  }
26212
+ this.startTrackingPosition();
26213
+ }
26214
+ /**
26215
+ * !!! This function is used only for web component mode,
26216
+ * the autocomplete dropdown may not update its position
26217
+ * if the page or container is disabling wind scroll.
26218
+ */
26219
+ startTrackingPosition() {
26220
+ if (this.forceTrackPosition) {
26221
+ requestAnimationFrame(this.trackPosition);
26222
+ }
26739
26223
  }
26740
26224
  ngOnDestroy() {
26741
26225
  this.subscription?.unsubscribe();
26226
+ if (this.intervalIdPosition) {
26227
+ clearInterval(this.intervalIdPosition);
26228
+ }
26742
26229
  }
26743
26230
  updateInputValue(value) {
26744
26231
  if (value) {
@@ -26786,7 +26273,7 @@ class AutocompleteComponent {
26786
26273
  }
26787
26274
  }
26788
26275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
26789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, providers: [
26276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", forceTrackPosition: "forceTrackPosition", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, providers: [
26790
26277
  provideIcons({
26791
26278
  iconoirSearch,
26792
26279
  matClose,
@@ -26831,6 +26318,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26831
26318
  type: Input
26832
26319
  }], allowSubmit: [{
26833
26320
  type: Input
26321
+ }], forceTrackPosition: [{
26322
+ type: Input
26834
26323
  }], itemSelected: [{
26835
26324
  type: Output
26836
26325
  }], inputSubmitted: [{
@@ -26944,72 +26433,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26944
26433
  type: Output
26945
26434
  }] } });
26946
26435
 
26947
- class ChipsInputComponent {
26948
- onChange(event) {
26949
- this.rawChange.next(event);
26950
- }
26951
- constructor(http, translate) {
26952
- this.http = http;
26953
- this.translate = translate;
26954
- this.required = false;
26955
- this.loadOnce = false;
26956
- this.autocompleteItems = [];
26957
- this.invalid = false;
26958
- this.items = [];
26959
- this.requestAutocompleteItems = (text) => {
26960
- if (this.url) {
26961
- if (this.loadOnce && this.loadedItems) {
26962
- return this.loadedItems;
26963
- }
26964
- const url = this.url(text);
26965
- const lang = LANG_2_TO_3_MAPPER[this.translate.currentLang.slice(0, 2)];
26966
- return this.http
26967
- .get(url.replace('${lang}', lang))
26968
- .pipe(map$1((item) => item.map((i) => i.values[lang])));
26969
- }
26970
- else {
26971
- return of(this.autocompleteItems || []);
26972
- }
26973
- };
26974
- this.rawChange = new Subject();
26975
- this.itemsChange = this.rawChange.pipe(distinctUntilChanged());
26976
- this.subscription = new Subscription();
26977
- }
26978
- ngOnInit() {
26979
- if (this.loadOnce) {
26980
- this.loadedItems = this.requestAutocompleteItems('*').pipe(shareReplay(1));
26981
- }
26982
- this.items = this.selectedItems;
26983
- this.subscription = this.rawChange
26984
- .pipe(tap$1((v) => (this.invalid = v.length === 0)))
26985
- .subscribe();
26986
- this.rawChange.next(this.items);
26987
- }
26988
- ngOnDestroy() {
26989
- this.subscription.unsubscribe();
26990
- }
26991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, deps: [{ token: i1.HttpClient }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
26992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "inputText", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i5.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "autocompleteObservable", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems"] }] }); }
26993
- }
26994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, decorators: [{
26995
- type: Component,
26996
- args: [{ selector: 'gn-ui-chips-input', template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"] }]
26997
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.TranslateService }], propDecorators: { url: [{
26998
- type: Input
26999
- }], placeholder: [{
27000
- type: Input
27001
- }], selectedItems: [{
27002
- type: Input
27003
- }], required: [{
27004
- type: Input
27005
- }], loadOnce: [{
27006
- type: Input
27007
- }], autocompleteItems: [{
27008
- type: Input
27009
- }], itemsChange: [{
27010
- type: Output
27011
- }] } });
27012
-
27013
26436
  class CopyTextButtonComponent {
27014
26437
  constructor() {
27015
26438
  this.displayText = true;
@@ -27686,11 +27109,6 @@ class UrlInputComponent {
27686
27109
  this.uploadClick = new EventEmitter();
27687
27110
  this.inputValue = '';
27688
27111
  }
27689
- ngOnChanges(changes) {
27690
- if (changes['value']) {
27691
- this.inputValue = changes['value'].currentValue;
27692
- }
27693
- }
27694
27112
  handleInput(event) {
27695
27113
  const value = event.target.value;
27696
27114
  this.inputValue = value;
@@ -27722,7 +27140,7 @@ class UrlInputComponent {
27722
27140
  provideNgIconsConfig({
27723
27141
  size: '1.5em',
27724
27142
  }),
27725
- ], usesOnChanges: true, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input gn-ui-url-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"showValidateButton\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === '' || !isValidUrl(input.value)\"\n (buttonClick)=\"handleUpload(input)\"\n >\n <ng-content>\n <ng-icon name=\"iconoirArrowUp\"></ng-icon>\n </ng-content>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6rem) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27143
+ ], ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input gn-ui-url-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"showValidateButton\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === '' || !isValidUrl(input.value)\"\n (buttonClick)=\"handleUpload(input)\"\n >\n <ng-content>\n <ng-icon name=\"iconoirArrowUp\"></ng-icon>\n </ng-content>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6rem) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27726
27144
  }
27727
27145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UrlInputComponent, decorators: [{
27728
27146
  type: Component,
@@ -28089,7 +27507,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28089
27507
  class UiInputsModule {
28090
27508
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28091
27509
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, declarations: [DragAndDropFileInputComponent,
28092
- ChipsInputComponent,
28093
27510
  DropdownMultiselectComponent,
28094
27511
  ViewportIntersectorComponent,
28095
27512
  CheckboxComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
@@ -28117,7 +27534,6 @@ class UiInputsModule {
28117
27534
  ButtonComponent,
28118
27535
  DragAndDropFileInputComponent,
28119
27536
  TextAreaComponent,
28120
- ChipsInputComponent,
28121
27537
  DropdownMultiselectComponent,
28122
27538
  ViewportIntersectorComponent,
28123
27539
  CheckToggleComponent,
@@ -28162,7 +27578,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28162
27578
  args: [{
28163
27579
  declarations: [
28164
27580
  DragAndDropFileInputComponent,
28165
- ChipsInputComponent,
28166
27581
  DropdownMultiselectComponent,
28167
27582
  ViewportIntersectorComponent,
28168
27583
  CheckboxComponent,
@@ -28208,7 +27623,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28208
27623
  ButtonComponent,
28209
27624
  DragAndDropFileInputComponent,
28210
27625
  TextAreaComponent,
28211
- ChipsInputComponent,
28212
27626
  DropdownMultiselectComponent,
28213
27627
  ViewportIntersectorComponent,
28214
27628
  CheckToggleComponent,
@@ -28874,7 +28288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28874
28288
 
28875
28289
  class MarkdownParserComponent {
28876
28290
  get parsedMarkdown() {
28877
- return marked.parse(this.textContent);
28291
+ return marked.parse(this.textContent ?? '');
28878
28292
  }
28879
28293
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28880
28294
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MarkdownParserComponent, isStandalone: true, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent", whitoutStyles: "whitoutStyles" }, ngImport: i0, template: "<div\n [class]=\"whitoutStyles ? '' : 'markdown-body'\"\n [innerHTML]=\"parsedMarkdown\"\n></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;line-height:1.5;word-wrap:break-word;height:100%}:host ::ng-deep .markdown-body strong{@apply font-bold;color:var(--color-secondary-darker)}:host ::ng-deep .markdown-body h1,:host ::ng-deep .markdown-body h2,:host ::ng-deep .markdown-body h3,:host ::ng-deep .markdown-body h4,:host ::ng-deep .markdown-body h5,:host ::ng-deep .markdown-body h6{margin-top:24px;margin-bottom:16px;line-height:1.25;@apply text-title font-title font-bold;}:host ::ng-deep .markdown-body :first-child{margin-top:0}:host ::ng-deep .markdown-body h1{margin:.67em 0;padding-bottom:.3em;font-size:2em;color:var(--color-primary)}:host ::ng-deep .markdown-body h2{padding-bottom:.3em;font-size:1.5em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h3{font-size:1.25em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h4{font-size:1em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h5{font-size:.875em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h6{font-size:.85em;color:var(--color-secondary-lighter)}:host ::ng-deep .markdown-body p{margin-top:0;margin-bottom:10px}:host ::ng-deep .markdown-body p>a{margin-top:0;margin-bottom:10px;color:var(--color-primary)!important;text-decoration:none}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important;@apply underline;}:host ::ng-deep .markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-secondary-lighter);border-left:.25em solid var(--color-primary-lighter)}:host ::ng-deep .markdown-body pre{margin-top:0;margin-bottom:0;font-size:12px;background-color:var(--color-gray-100);word-wrap:normal}:host ::ng-deep .markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--color-secondary);border-radius:6px}:host ::ng-deep .markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;border-radius:6px}:host ::ng-deep .markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;border:0}:host ::ng-deep .markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-secondary);height:.15em;padding:0;margin:24px 0;background-color:var(--color-secondary);border:0}:host ::ng-deep .markdown-body hr:before{display:table;content:\"\"}:host ::ng-deep .markdown-body hr:after{display:table;clear:both;content:\"\"}:host ::ng-deep .markdown-body ul,:host ::ng-deep .markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em;list-style:revert}:host ::ng-deep .markdown-body ol ol,:host ::ng-deep .markdown-body ul ol{list-style-type:lower-roman}:host ::ng-deep .markdown-body ul ul ol,:host ::ng-deep .markdown-body ul ol ol,:host ::ng-deep .markdown-body ol ul ol,:host ::ng-deep .markdown-body ol ol ol{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}:host ::ng-deep .markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}:host ::ng-deep .markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}:host ::ng-deep .markdown-body ol[type=\"1\"]{list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body div>ol:not([type]){list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;padding-bottom:15px}:host ::ng-deep .markdown-body td,:host ::ng-deep .markdown-body th{padding:0}:host ::ng-deep .markdown-body th{color:var(--color-secondary)}:host ::ng-deep .markdown-body table th,:host ::ng-deep .markdown-body table td{padding:6px 13px;border:1px solid var(--color-gray-500)}:host ::ng-deep .markdown-body table td>:last-child{margin-bottom:0}:host ::ng-deep .markdown-body table tr{background-color:#fff;border-top:1px solid var(--color-secondary-lighter)}:host ::ng-deep .markdown-body table tr:nth-child(2n){background-color:var(--color-gray-100)}:host ::ng-deep .markdown-body table img{background-color:transparent}:host ::ng-deep .markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent}:host ::ng-deep .markdown-body img[align=right]{padding-left:20px}:host ::ng-deep .markdown-body img[align=left]{padding-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -29490,11 +28904,10 @@ class ImageInputComponent {
29490
28904
  }
29491
28905
  }
29492
28906
  handleDropFiles(files) {
29493
- if (!this.showUrlInput) {
29494
- const validFiles = this.filterTypeImage(files);
29495
- if (validFiles.length > 0) {
29496
- this.resizeAndEmit(validFiles[0]);
29497
- }
28907
+ const validFiles = this.filterTypeImage(files);
28908
+ if (validFiles.length > 0) {
28909
+ this.showUrlInput = false;
28910
+ this.resizeAndEmit(validFiles[0]);
29498
28911
  }
29499
28912
  }
29500
28913
  handleFileInput(event) {
@@ -29592,7 +29005,7 @@ class ImageInputComponent {
29592
29005
  provideNgIconsConfig({
29593
29006
  size: '1.5rem',
29594
29007
  }),
29595
- ], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput || disabled ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"\n showUrlInput || isUploadInProgress || uploadError || disabled\n \"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29008
+ ], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || uploadError || disabled ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || uploadError || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29596
29009
  }
29597
29010
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, decorators: [{
29598
29011
  type: Component,
@@ -29618,7 +29031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
29618
29031
  provideNgIconsConfig({
29619
29032
  size: '1.5rem',
29620
29033
  }),
29621
- ], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput || disabled ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"\n showUrlInput || isUploadInProgress || uploadError || disabled\n \"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
29034
+ ], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || uploadError || disabled ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || uploadError || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
29622
29035
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { maxSizeMB: [{
29623
29036
  type: Input
29624
29037
  }], previewUrl: [{
@@ -31835,6 +31248,7 @@ class FuzzySearchComponent {
31835
31248
  this.searchService = searchService;
31836
31249
  this.recordsRepository = recordsRepository;
31837
31250
  this.autoFocus = false;
31251
+ this.forceTrackPosition = false;
31838
31252
  this.itemSelected = new EventEmitter();
31839
31253
  this.inputSubmitted = new EventEmitter();
31840
31254
  this.displayWithFn = (record) => record.title;
@@ -31877,16 +31291,18 @@ class FuzzySearchComponent {
31877
31291
  }
31878
31292
  }
31879
31293
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FuzzySearchComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
31880
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31294
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus", forceTrackPosition: "forceTrackPosition" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n [forceTrackPosition]=\"forceTrackPosition\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31881
31295
  }
31882
31296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FuzzySearchComponent, decorators: [{
31883
31297
  type: Component,
31884
- args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n" }]
31298
+ args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n [forceTrackPosition]=\"forceTrackPosition\"\n></gn-ui-autocomplete>\n" }]
31885
31299
  }], ctorParameters: () => [{ type: SearchFacade }, { type: SearchService }, { type: RecordsRepositoryInterface }], propDecorators: { autocomplete: [{
31886
31300
  type: ViewChild,
31887
31301
  args: [AutocompleteComponent]
31888
31302
  }], autoFocus: [{
31889
31303
  type: Input
31304
+ }], forceTrackPosition: [{
31305
+ type: Input
31890
31306
  }], itemSelected: [{
31891
31307
  type: Output
31892
31308
  }], inputSubmitted: [{
@@ -34949,7 +34365,7 @@ class AddLayerFromCatalogComponent {
34949
34365
  ADDLAYER: new ResultsLayoutConfigItem(AddLayerRecordPreviewComponent, 'py-2', '', 'flex flex-col divide-y divide-y-grey-50'),
34950
34366
  },
34951
34367
  },
34952
- ], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus"], outputs: ["itemSelected", "inputSubmitted"] }, { kind: "component", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34368
+ ], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus", "forceTrackPosition"], outputs: ["itemSelected", "inputSubmitted"] }, { kind: "component", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34953
34369
  }
34954
34370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLayerFromCatalogComponent, decorators: [{
34955
34371
  type: Component,
@@ -35507,9 +34923,11 @@ function fetchDataAsText(url, cacheActive) {
35507
34923
  })
35508
34924
  .then(async (response) => {
35509
34925
  if (!response.ok) {
35510
- throw FetchError.http(response.status, await response.text());
34926
+ const clonedResponse = response.clone();
34927
+ throw FetchError.http(response.status, await clonedResponse.text());
35511
34928
  }
35512
- return response.text();
34929
+ const clonedResponse = response.clone();
34930
+ return clonedResponse.text();
35513
34931
  });
35514
34932
  return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
35515
34933
  }
@@ -37947,11 +37365,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37947
37365
  }] } });
37948
37366
 
37949
37367
  class DataViewComponent {
37368
+ set exceedsLimit(value) {
37369
+ this.excludeWfs$.next(value);
37370
+ }
37950
37371
  constructor(mdViewFacade) {
37951
37372
  this.mdViewFacade = mdViewFacade;
37952
37373
  this.displaySource = true;
37953
37374
  this.chartConfig$ = new BehaviorSubject(null);
37954
37375
  this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map$1((highF) => !highF));
37376
+ this.hidePreview = false;
37377
+ this.excludeWfs$ = new BehaviorSubject(false);
37955
37378
  this.compatibleDataLinks$ = combineLatest([
37956
37379
  this.mdViewFacade.dataLinks$,
37957
37380
  this.mdViewFacade.geoDataLinks$,
@@ -37962,7 +37385,7 @@ class DataViewComponent {
37962
37385
  }));
37963
37386
  this.dropdownChoices$ = this.compatibleDataLinks$.pipe(tap$1((links) => {
37964
37387
  if (links.indexOf(this.selectedLink$.value) === -1) {
37965
- this.selectedLink$.next(links[0]);
37388
+ this.selectLink(JSON.stringify(links[0]));
37966
37389
  }
37967
37390
  }), map$1((links) => links.map((link) => ({
37968
37391
  label: getLinkLabel(link),
@@ -37976,10 +37399,20 @@ class DataViewComponent {
37976
37399
  selectLink(linkAsString) {
37977
37400
  const link = JSON.parse(linkAsString);
37978
37401
  link.url = new URL(link.url);
37979
- this.selectedLink$.next(link);
37402
+ this.excludeWfs$
37403
+ .pipe(tap$1((excludeWfs) => {
37404
+ this.hidePreview =
37405
+ link['accessServiceProtocol'] === 'wfs' &&
37406
+ excludeWfs &&
37407
+ this.mode === 'chart'
37408
+ ? true
37409
+ : false;
37410
+ this.selectedLink$.next(link);
37411
+ }))
37412
+ .subscribe();
37980
37413
  }
37981
37414
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
37982
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["cacheActive", "link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["cacheActive", "link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37415
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource", exceedsLimit: "exceedsLimit" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["cacheActive", "link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["cacheActive", "link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37983
37416
  }
37984
37417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
37985
37418
  type: Component,
@@ -37989,11 +37422,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37989
37422
  TableViewComponent,
37990
37423
  TranslateModule,
37991
37424
  ChartViewComponent,
37992
- ], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n" }]
37425
+ PopupAlertComponent,
37426
+ ], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n" }]
37993
37427
  }], ctorParameters: () => [{ type: MdViewFacade }], propDecorators: { mode: [{
37994
37428
  type: Input
37995
37429
  }], displaySource: [{
37996
37430
  type: Input
37431
+ }], exceedsLimit: [{
37432
+ type: Input
37997
37433
  }], chartConfig$: [{
37998
37434
  type: Output
37999
37435
  }] } });
@@ -38165,7 +37601,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38165
37601
  marker('map.dropdown.placeholder');
38166
37602
  marker('wfs.feature.limit');
38167
37603
  class MapViewComponent {
38168
- set excludeWfs(value) {
37604
+ set exceedsLimit(value) {
38169
37605
  this.excludeWfs$.next(value);
38170
37606
  }
38171
37607
  toggleLegend() {
@@ -38184,6 +37620,7 @@ class MapViewComponent {
38184
37620
  this.changeRef = changeRef;
38185
37621
  this.displaySource = true;
38186
37622
  this.excludeWfs$ = new BehaviorSubject(false);
37623
+ this.hidePreview = false;
38187
37624
  this.showLegend = true;
38188
37625
  this.legendExists = false;
38189
37626
  this.compatibleMapLinks$ = combineLatest([
@@ -38210,9 +37647,10 @@ class MapViewComponent {
38210
37647
  return of([]);
38211
37648
  }
38212
37649
  if (excludeWfs && link.accessServiceProtocol === 'wfs') {
38213
- this.error = 'wfs.feature.limit';
37650
+ this.hidePreview = true;
38214
37651
  return of([]);
38215
37652
  }
37653
+ this.hidePreview = false;
38216
37654
  this.loading = true;
38217
37655
  this.error = null;
38218
37656
  return this.getLayerFromLink(link).pipe(map$1((layer) => [layer]), catchError((e) => {
@@ -38294,7 +37732,7 @@ class MapViewComponent {
38294
37732
  this.selectedLinkIndex$.next(link);
38295
37733
  }
38296
37734
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, deps: [{ token: MdViewFacade }, { token: MapUtilsService }, { token: DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
38297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { excludeWfs: "excludeWfs", displaySource: "displaySource" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: MapLegendComponent, selector: "gn-ui-map-legend", inputs: ["context"], outputs: ["legendStatusChange"] }], viewProviders: [provideIcons({ matClose })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37735
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", displaySource: "displaySource" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: MapLegendComponent, selector: "gn-ui-map-legend", inputs: ["context"], outputs: ["legendStatusChange"] }], viewProviders: [provideIcons({ matClose })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38298
37736
  }
38299
37737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, decorators: [{
38300
37738
  type: Component,
@@ -38310,8 +37748,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38310
37748
  ExternalViewerButtonComponent,
38311
37749
  ButtonComponent,
38312
37750
  MapLegendComponent,
38313
- ], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
38314
- }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { excludeWfs: [{
37751
+ ], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n" }]
37752
+ }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { exceedsLimit: [{
38315
37753
  type: Input
38316
37754
  }], displaySource: [{
38317
37755
  type: Input
@@ -39144,9 +38582,8 @@ var WizardFieldType;
39144
38582
  (function (WizardFieldType) {
39145
38583
  WizardFieldType[WizardFieldType["TEXT"] = 0] = "TEXT";
39146
38584
  WizardFieldType[WizardFieldType["TEXT_AREA"] = 1] = "TEXT_AREA";
39147
- WizardFieldType[WizardFieldType["CHIPS"] = 2] = "CHIPS";
39148
- WizardFieldType[WizardFieldType["DATA_PICKER"] = 3] = "DATA_PICKER";
39149
- WizardFieldType[WizardFieldType["DROPDOWN"] = 4] = "DROPDOWN";
38585
+ WizardFieldType[WizardFieldType["DATA_PICKER"] = 2] = "DATA_PICKER";
38586
+ WizardFieldType[WizardFieldType["DROPDOWN"] = 3] = "DROPDOWN";
39150
38587
  })(WizardFieldType || (WizardFieldType = {}));
39151
38588
 
39152
38589
  class WizardService {
@@ -39268,9 +38705,6 @@ class WizardFieldComponent {
39268
38705
  case WizardFieldType.TEXT: {
39269
38706
  return data || '';
39270
38707
  }
39271
- case WizardFieldType.CHIPS: {
39272
- return data ? JSON.parse(data) : [];
39273
- }
39274
38708
  case WizardFieldType.TEXT_AREA: {
39275
38709
  return data || '';
39276
38710
  }
@@ -39300,10 +38734,6 @@ class WizardFieldComponent {
39300
38734
  this.initializeTextInputListener();
39301
38735
  break;
39302
38736
  }
39303
- case WizardFieldType.CHIPS: {
39304
- this.initializeChipsListener();
39305
- break;
39306
- }
39307
38737
  case WizardFieldType.TEXT_AREA: {
39308
38738
  this.initializeTextAreaListener();
39309
38739
  return;
@@ -39323,11 +38753,6 @@ class WizardFieldComponent {
39323
38753
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
39324
38754
  }));
39325
38755
  }
39326
- initializeChipsListener() {
39327
- this.subs.add(this.chips.itemsChange.subscribe((items) => {
39328
- this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, JSON.stringify(items));
39329
- }));
39330
- }
39331
38756
  initializeTextAreaListener() {
39332
38757
  this.subs.add(this.textArea.valueChange.subscribe((value) => {
39333
38758
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
@@ -39361,7 +38786,7 @@ class WizardFieldComponent {
39361
38786
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39362
38787
  },
39363
38788
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39364
- ], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i1$8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i1$8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38789
+ ], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i1$8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i1$8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39365
38790
  }
39366
38791
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WizardFieldComponent, decorators: [{
39367
38792
  type: Component,
@@ -39373,15 +38798,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39373
38798
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39374
38799
  },
39375
38800
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39376
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"] }]
38801
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"] }]
39377
38802
  }], ctorParameters: () => [{ type: WizardService }, { type: i0.ChangeDetectorRef }], propDecorators: { wizardFieldConfig: [{
39378
38803
  type: Input
39379
38804
  }], searchText: [{
39380
38805
  type: ViewChild,
39381
38806
  args: ['searchText']
39382
- }], chips: [{
39383
- type: ViewChild,
39384
- args: ['chips']
39385
38807
  }], textArea: [{
39386
38808
  type: ViewChild,
39387
38809
  args: ['textArea']
@@ -39588,15 +39010,15 @@ class ImportRecordComponent {
39588
39010
  importRecord(url) {
39589
39011
  this.isRecordImportInProgress = true;
39590
39012
  this.recordsRepository.duplicateExternalRecord(url).subscribe({
39591
- next: (recordTempId) => {
39592
- if (recordTempId) {
39013
+ next: (uuid) => {
39014
+ if (uuid) {
39593
39015
  this.notificationsService.showNotification({
39594
39016
  type: 'success',
39595
39017
  title: this.translateService.instant('editor.record.importFromExternalFile.success.title'),
39596
39018
  text: `${this.translateService.instant('editor.record.importFromExternalFile.success.body')}`,
39597
39019
  }, 2500);
39598
39020
  this.router
39599
- .navigate(['/edit', recordTempId])
39021
+ .navigate(['/edit', uuid])
39600
39022
  .catch((err) => console.error(err));
39601
39023
  }
39602
39024
  this.closeImportMenu.next();
@@ -39688,7 +39110,7 @@ class GenericKeywordsComponent {
39688
39110
  provideIcons({
39689
39111
  matWarningAmberOutline,
39690
39112
  }),
39691
- ], ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.record.form.keywords.place.withoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39113
+ ], ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.record.form.keywords.place.withoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39692
39114
  }
39693
39115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
39694
39116
  type: Component,
@@ -40201,20 +39623,16 @@ class FormFieldContactsForResourceComponent {
40201
39623
  this.organizationsServiceInterface = organizationsServiceInterface;
40202
39624
  this.valueChange = new EventEmitter();
40203
39625
  this.contactsForRessourceByRole = new Map();
40204
- this.rolesToPick = [
40205
- 'resource_provider',
40206
- 'custodian',
40207
- 'owner',
40208
- 'point_of_contact',
40209
- 'author',
40210
- 'publisher',
40211
- ];
39626
+ this.roleValues = RoleValues;
39627
+ this.rolesToPick = this.roleValues.filter((role) => role !== 'other' && role !== 'unspecified');
40212
39628
  this.roleSectionsToDisplay = [];
40213
39629
  this.allOrganizations = new Map();
40214
39630
  /**
40215
39631
  * gn-ui-autocomplete
40216
39632
  */
40217
- this.displayWithFn = (user) => `${user.name} ${user.surname} ${user.organisation ? `(${user.organisation})` : ''}`;
39633
+ this.displayWithFn = (user) => user.name
39634
+ ? `${user.name} ${user.surname} ${user.organisation ? `(${user.organisation})` : ''}`
39635
+ : ``;
40218
39636
  /**
40219
39637
  * gn-ui-autocomplete
40220
39638
  */
@@ -40306,7 +39724,7 @@ class FormFieldContactsForResourceComponent {
40306
39724
  provideNgIconsConfig({
40307
39725
  size: '1.5rem',
40308
39726
  }),
40309
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39727
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n *ngIf=\"role !== 'unspecified' && role !== 'other'\"\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40310
39728
  }
40311
39729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
40312
39730
  type: Component,
@@ -40325,7 +39743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
40325
39743
  provideNgIconsConfig({
40326
39744
  size: '1.5rem',
40327
39745
  }),
40328
- ], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
39746
+ ], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n *ngIf=\"role !== 'unspecified' && role !== 'other'\"\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
40329
39747
  }], ctorParameters: () => [{ type: PlatformServiceInterface }, { type: OrganizationsServiceInterface }], propDecorators: { value: [{
40330
39748
  type: Input
40331
39749
  }], valueChange: [{
@@ -40404,7 +39822,7 @@ class FormFieldContactsComponent {
40404
39822
  this.subscription.unsubscribe();
40405
39823
  }
40406
39824
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, deps: [{ token: PlatformServiceInterface }, { token: OrganizationsServiceInterface }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
40407
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39825
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40408
39826
  }
40409
39827
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, decorators: [{
40410
39828
  type: Component,
@@ -40753,7 +40171,7 @@ class OnlineServiceResourceInputComponent {
40753
40171
  provideNgIconsConfig({
40754
40172
  size: '1.5em',
40755
40173
  }),
40756
- ], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40174
+ ], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40757
40175
  }
40758
40176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
40759
40177
  type: Component,
@@ -42025,5 +41443,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
42025
41443
  * Generated bundle index. Do not edit.
42026
41444
  */
42027
41445
 
42028
- export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, 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, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, 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, RecordMetaComponent, 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, SETTINGS_URL, 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, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, 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, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
41446
+ export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, 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, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, 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, RecordMetaComponent, 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, SETTINGS_URL, 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, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, 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, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
42029
41447
  //# sourceMappingURL=geonetwork-ui.mjs.map