geonetwork-ui 2.5.0-dev.ee5be4e65 → 2.5.0-dev.f8f8616a0

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 (183) hide show
  1. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  2. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
  3. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  4. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  5. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  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 +2 -2
  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 +25 -5
  14. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  15. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -1
  16. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -3
  17. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  18. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +3 -3
  19. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  20. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  21. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +37 -2
  22. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  23. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +2 -7
  24. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  25. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  26. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  27. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  28. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  29. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  30. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  31. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  32. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  33. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  34. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  35. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  36. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  37. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  38. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  39. package/esm2022/translations/de.json +2 -73
  40. package/esm2022/translations/en.json +2 -73
  41. package/esm2022/translations/es.json +1 -72
  42. package/esm2022/translations/fr.json +12 -83
  43. package/esm2022/translations/it.json +19 -89
  44. package/esm2022/translations/nl.json +1 -72
  45. package/esm2022/translations/pt.json +1 -72
  46. package/fesm2022/geonetwork-ui.mjs +291 -816
  47. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  48. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  49. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  50. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  51. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  52. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  53. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  54. package/libs/feature/editor/src/index.d.ts +1 -0
  55. package/libs/feature/editor/src/index.d.ts.map +1 -1
  56. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  57. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  58. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  59. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  60. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  61. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  62. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  63. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  64. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  65. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  66. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +1 -0
  67. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  68. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  69. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  70. package/libs/ui/inputs/src/index.d.ts +0 -1
  71. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  72. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +16 -1
  73. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  74. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  75. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  76. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -3
  77. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  78. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  79. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  80. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  81. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  82. package/libs/ui/widgets/src/index.d.ts +0 -1
  83. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  84. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  85. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  86. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  87. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  88. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  89. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  90. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  91. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  92. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  93. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  94. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  95. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  96. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  97. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  98. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  99. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  100. package/package.json +1 -1
  101. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  102. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
  103. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  104. package/src/libs/feature/editor/src/index.ts +1 -0
  105. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  106. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  107. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  108. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  109. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  110. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  111. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  112. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  113. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +13 -0
  114. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  115. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  116. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +2 -2
  117. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  118. package/src/libs/ui/inputs/src/index.ts +0 -1
  119. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +42 -0
  120. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  121. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -7
  122. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  123. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  124. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  125. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  126. package/src/libs/ui/widgets/src/index.ts +0 -1
  127. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  128. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  129. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  130. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  131. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  132. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  133. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  134. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  135. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  136. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  137. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  138. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  139. package/translations/de.json +2 -73
  140. package/translations/en.json +2 -73
  141. package/translations/es.json +1 -72
  142. package/translations/fr.json +12 -83
  143. package/translations/it.json +19 -89
  144. package/translations/nl.json +1 -72
  145. package/translations/pt.json +1 -72
  146. package/translations/sk.json +1 -72
  147. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  148. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  149. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  150. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  151. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  152. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  153. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  154. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  155. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  156. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  157. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  158. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  159. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  160. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  161. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  162. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  163. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  164. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  165. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  166. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  167. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  168. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  169. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  170. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  171. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  172. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  173. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  174. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  175. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  176. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  177. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  178. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  179. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  180. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  181. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  182. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  183. 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",
@@ -19023,9 +18951,10 @@ var de = {
19023
18951
  "record.action.download": "Herunterladen",
19024
18952
  "record.action.duplicate": "",
19025
18953
  "record.action.duplicating": "",
18954
+ "record.action.rollback": "",
19026
18955
  "record.action.view": "Anzeigen",
19027
18956
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
19028
- "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",
19029
18958
  "record.metadata.about": "Beschreibung",
19030
18959
  "record.metadata.api": "API",
19031
18960
  "record.metadata.api.form.closeButton": "Schließen",
@@ -19202,7 +19131,6 @@ var de = {
19202
19131
  "tooltip.url.open": "URL öffnen",
19203
19132
  "ui.readLess": "Weniger lesen",
19204
19133
  "ui.readMore": "Weiterlesen",
19205
- "wfs.aggregations.notsupported": "",
19206
19134
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
19207
19135
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
19208
19136
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
@@ -19253,24 +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.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
19258
- "datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
19259
- "datafeeder.analysisProgressBar.subtitle": "The analysis may take several minutes, please wait.",
19260
- "datafeeder.analysisProgressBar.title": "Analysis in progress",
19261
- "datafeeder.datasetValidation.datasetInformation": "The provided dataset contains {number} entities",
19262
- "datafeeder.datasetValidation.submitButton": "OK, my data is correct",
19263
- "datafeeder.datasetValidation.title": "Make sure your data is correct",
19264
- "datafeeder.datasetValidation.unknown": " - ",
19265
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
19266
- "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
19267
- "datafeeder.form.abstract": "How would you describe your dataset?",
19268
- "datafeeder.form.datepicker": "Do you know when the dataset was created?",
19269
- "datafeeder.form.description": "Finally, please describe the process used to create the dataset",
19270
- "datafeeder.form.dropdown": "For which scale was it created?",
19271
- "datafeeder.form.tags": "Select one or more tags that fit your dataset",
19272
- "datafeeder.form.title": "Give your dataset the best title",
19273
- "datafeeder.formsPage.title": "Tell us more about your dataset",
19274
19184
  "datafeeder.month.april": "April",
19275
19185
  "datafeeder.month.august": "August",
19276
19186
  "datafeeder.month.december": "December",
@@ -19283,59 +19193,6 @@ var en = {
19283
19193
  "datafeeder.month.november": "November",
19284
19194
  "datafeeder.month.october": "October",
19285
19195
  "datafeeder.month.september": "September",
19286
- "datafeeder.publish.hint": "You can safely exit this page, you will be notified when the process is over",
19287
- "datafeeder.publish.illustration.title": "Another dataset \n to publish?",
19288
- "datafeeder.publish.subtitle": "Publishing may take several minutes.",
19289
- "datafeeder.publish.title": "Thank you! \n Your dataset is being published",
19290
- "datafeeder.publish.upload": "Upload it now",
19291
- "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
19292
- "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
19293
- "datafeeder.publishSuccess.mapViewer": "Map viewer",
19294
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
19295
- "datafeeder.publishSuccess.subtitle": "View your data in:",
19296
- "datafeeder.publishSuccess.title": "Congratulations! \n Your dataset has been published",
19297
- "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
19298
- "datafeeder.summarizePage.illustration": "No mistake? Let's go!",
19299
- "datafeeder.summarizePage.previous": "Previous",
19300
- "datafeeder.summarizePage.submit": "Submit",
19301
- "datafeeder.summarizePage.title": "You're almost there...",
19302
- "datafeeder.upload.acceptedFormats": "Accepted file formats:",
19303
- "datafeeder.upload.checkboxLabel": "I hold the rights to publish this dataset",
19304
- "datafeeder.upload.error.subtitle.analysis": "Check that the file contains a valid geospatial dataset",
19305
- "datafeeder.upload.error.subtitle.cantOpenFile": "Please check that the file is valid",
19306
- "datafeeder.upload.error.subtitle.fileFormat": "Remember: only SHP",
19307
- "datafeeder.upload.error.subtitle.fileSize": "Remember: {size} MB maximum",
19308
- "datafeeder.upload.error.title.analysis": "Error during the dataset analysis",
19309
- "datafeeder.upload.error.title.cantOpenFile": "Error while opening the file",
19310
- "datafeeder.upload.error.title.fileFormat": "The selected file format is not supported",
19311
- "datafeeder.upload.error.title.fileHasntSelected": "No file selected",
19312
- "datafeeder.upload.error.title.fileSize": "The file size is too large",
19313
- "datafeeder.upload.error.title.noRightsToSendData": "You are not allowed to publish this dataset",
19314
- "datafeeder.upload.illustration.enrichment": "Enrichment",
19315
- "datafeeder.upload.illustration.import": "Import",
19316
- "datafeeder.upload.illustration.title": "Adding data \n has never been easier",
19317
- "datafeeder.upload.illustration.validation": "Validation",
19318
- "datafeeder.upload.illustration.verification": "Verification",
19319
- "datafeeder.upload.inputLabel": "Import your file",
19320
- "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
19321
- "datafeeder.upload.title": "Upload your dataset",
19322
- "datafeeder.upload.uploadButton": "Upload",
19323
- "datafeeder.validation.csv.delimiter": "Delimiter",
19324
- "datafeeder.validation.csv.delimiter.comma": "Comma",
19325
- "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
19326
- "datafeeder.validation.csv.lat.field": "Latitude column",
19327
- "datafeeder.validation.csv.lng.field": "Longitude column",
19328
- "datafeeder.validation.csv.quote.double": "Double quote",
19329
- "datafeeder.validation.csv.quote.none": "None",
19330
- "datafeeder.validation.csv.quote.simple": "Single quote",
19331
- "datafeeder.validation.csv.quoteChar": "Quote separator",
19332
- "datafeeder.validation.encoding": "Encoding",
19333
- "datafeeder.validation.extent.title": "Here is the dataset extent",
19334
- "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
19335
- "datafeeder.validation.projection": "Spatial reference system:",
19336
- "datafeeder.validation.projection.unknown": "Choose a spatial reference system",
19337
- "datafeeder.validation.sample.title": "And a sample entity from the dataset",
19338
- "datafeeder.wizard.emptyRequiredValuesMessage": "Please fill in mandatory fields",
19339
19196
  "datafeeder.wizardSummarize.createdAt": "Created at",
19340
19197
  "datafeeder.wizardSummarize.scale": "Scale",
19341
19198
  "datahub.header.datasets": "Datasets",
@@ -19639,9 +19496,10 @@ var en = {
19639
19496
  "record.action.download": "Download",
19640
19497
  "record.action.duplicate": "Duplicate",
19641
19498
  "record.action.duplicating": "Duplicating...",
19499
+ "record.action.rollback": "Rollback",
19642
19500
  "record.action.view": "View",
19643
19501
  "record.externalViewer.open": "Open in the external map viewer",
19644
- "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",
19645
19503
  "record.metadata.about": "Description",
19646
19504
  "record.metadata.api": "API",
19647
19505
  "record.metadata.api.form.closeButton": "Close",
@@ -19818,7 +19676,6 @@ var en = {
19818
19676
  "tooltip.url.open": "Open URL",
19819
19677
  "ui.readLess": "Read less",
19820
19678
  "ui.readMore": "Read more",
19821
- "wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
19822
19679
  "wfs.feature.limit": "Too many features to display the WFS layer!",
19823
19680
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
19824
19681
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
@@ -19869,24 +19726,6 @@ var es = {
19869
19726
  "dashboard.records.userEmail": "",
19870
19727
  "dashboard.records.username": "",
19871
19728
  "dashboard.records.users": "",
19872
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
19873
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
19874
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
19875
- "datafeeder.analysisProgressBar.subtitle": "",
19876
- "datafeeder.analysisProgressBar.title": "",
19877
- "datafeeder.datasetValidation.datasetInformation": "",
19878
- "datafeeder.datasetValidation.submitButton": "",
19879
- "datafeeder.datasetValidation.title": "",
19880
- "datafeeder.datasetValidation.unknown": "",
19881
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19882
- "datafeeder.datasetValidationCsv.lineNumbers": "",
19883
- "datafeeder.form.abstract": "",
19884
- "datafeeder.form.datepicker": "",
19885
- "datafeeder.form.description": "",
19886
- "datafeeder.form.dropdown": "",
19887
- "datafeeder.form.tags": "",
19888
- "datafeeder.form.title": "",
19889
- "datafeeder.formsPage.title": "",
19890
19729
  "datafeeder.month.april": "",
19891
19730
  "datafeeder.month.august": "",
19892
19731
  "datafeeder.month.december": "",
@@ -19899,59 +19738,6 @@ var es = {
19899
19738
  "datafeeder.month.november": "",
19900
19739
  "datafeeder.month.october": "",
19901
19740
  "datafeeder.month.september": "",
19902
- "datafeeder.publish.hint": "",
19903
- "datafeeder.publish.illustration.title": "",
19904
- "datafeeder.publish.subtitle": "",
19905
- "datafeeder.publish.title": "",
19906
- "datafeeder.publish.upload": "",
19907
- "datafeeder.publishSuccess.geonetworkRecord": "",
19908
- "datafeeder.publishSuccess.illustration.title": "",
19909
- "datafeeder.publishSuccess.mapViewer": "",
19910
- "datafeeder.publishSuccess.ogcFeature": "",
19911
- "datafeeder.publishSuccess.subtitle": "",
19912
- "datafeeder.publishSuccess.title": "",
19913
- "datafeeder.publishSuccess.uploadAnotherData": "",
19914
- "datafeeder.summarizePage.illustration": "",
19915
- "datafeeder.summarizePage.previous": "",
19916
- "datafeeder.summarizePage.submit": "",
19917
- "datafeeder.summarizePage.title": "",
19918
- "datafeeder.upload.acceptedFormats": "",
19919
- "datafeeder.upload.checkboxLabel": "",
19920
- "datafeeder.upload.error.subtitle.analysis": "",
19921
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
19922
- "datafeeder.upload.error.subtitle.fileFormat": "",
19923
- "datafeeder.upload.error.subtitle.fileSize": "",
19924
- "datafeeder.upload.error.title.analysis": "",
19925
- "datafeeder.upload.error.title.cantOpenFile": "",
19926
- "datafeeder.upload.error.title.fileFormat": "",
19927
- "datafeeder.upload.error.title.fileHasntSelected": "",
19928
- "datafeeder.upload.error.title.fileSize": "",
19929
- "datafeeder.upload.error.title.noRightsToSendData": "",
19930
- "datafeeder.upload.illustration.enrichment": "",
19931
- "datafeeder.upload.illustration.import": "",
19932
- "datafeeder.upload.illustration.title": "",
19933
- "datafeeder.upload.illustration.validation": "",
19934
- "datafeeder.upload.illustration.verification": "",
19935
- "datafeeder.upload.inputLabel": "",
19936
- "datafeeder.upload.maxFileSize": "",
19937
- "datafeeder.upload.title": "",
19938
- "datafeeder.upload.uploadButton": "",
19939
- "datafeeder.validation.csv.delimiter": "",
19940
- "datafeeder.validation.csv.delimiter.comma": "Coma",
19941
- "datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
19942
- "datafeeder.validation.csv.lat.field": "",
19943
- "datafeeder.validation.csv.lng.field": "",
19944
- "datafeeder.validation.csv.quote.double": "Comillas dobles",
19945
- "datafeeder.validation.csv.quote.none": "Ninguno",
19946
- "datafeeder.validation.csv.quote.simple": "Comillas simples",
19947
- "datafeeder.validation.csv.quoteChar": "",
19948
- "datafeeder.validation.encoding": "",
19949
- "datafeeder.validation.extent.title": "",
19950
- "datafeeder.validation.extent.title.unknown": "",
19951
- "datafeeder.validation.projection": "",
19952
- "datafeeder.validation.projection.unknown": "",
19953
- "datafeeder.validation.sample.title": "",
19954
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
19955
19741
  "datafeeder.wizardSummarize.createdAt": "",
19956
19742
  "datafeeder.wizardSummarize.scale": "",
19957
19743
  "datahub.header.datasets": "",
@@ -20255,6 +20041,7 @@ var es = {
20255
20041
  "record.action.download": "",
20256
20042
  "record.action.duplicate": "",
20257
20043
  "record.action.duplicating": "",
20044
+ "record.action.rollback": "",
20258
20045
  "record.action.view": "",
20259
20046
  "record.externalViewer.open": "",
20260
20047
  "record.feature.limit": "",
@@ -20434,7 +20221,6 @@ var es = {
20434
20221
  "tooltip.url.open": "",
20435
20222
  "ui.readLess": "",
20436
20223
  "ui.readMore": "",
20437
- "wfs.aggregations.notsupported": "",
20438
20224
  "wfs.feature.limit": "",
20439
20225
  "wfs.featuretype.notfound": "",
20440
20226
  "wfs.geojsongml.notsupported": "",
@@ -20485,24 +20271,6 @@ var fr = {
20485
20271
  "dashboard.records.userEmail": "Email",
20486
20272
  "dashboard.records.username": "Nom d'utilisateur",
20487
20273
  "dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
20488
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
20489
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
20490
- "datafeeder.analysisProgressBar.illustration.samplingData": "Échantillonnage \n des données",
20491
- "datafeeder.analysisProgressBar.subtitle": "L'analyse peut prendre plusieurs minutes, merci de patienter.",
20492
- "datafeeder.analysisProgressBar.title": "Analyse en cours",
20493
- "datafeeder.datasetValidation.datasetInformation": "Le jeu de données fourni contient {number} entités",
20494
- "datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
20495
- "datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
20496
- "datafeeder.datasetValidation.unknown": " - ",
20497
- "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é",
20498
- "datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
20499
- "datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
20500
- "datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
20501
- "datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
20502
- "datafeeder.form.dropdown": "Et pour quelle échelle ?",
20503
- "datafeeder.form.tags": "Choisissez un ou plusieurs mots-clés correspondant à vos données",
20504
- "datafeeder.form.title": "Donnez un titre à votre jeu de données",
20505
- "datafeeder.formsPage.title": "Dites-nous en plus sur ces données",
20506
20274
  "datafeeder.month.april": "Avril",
20507
20275
  "datafeeder.month.august": "Août",
20508
20276
  "datafeeder.month.december": "Décembre",
@@ -20515,59 +20283,6 @@ var fr = {
20515
20283
  "datafeeder.month.november": "Novembre",
20516
20284
  "datafeeder.month.october": "Octobre",
20517
20285
  "datafeeder.month.september": "Septembre",
20518
- "datafeeder.publish.hint": "Vous pouvez quitter cette page en toute sécurité, vous serez prévenus quand le processus sera terminé",
20519
- "datafeeder.publish.illustration.title": "Une autre donnée \n à publier ?",
20520
- "datafeeder.publish.subtitle": "La publication peut prendre plusieurs minutes.",
20521
- "datafeeder.publish.title": "Merci! \n Vos données sont en cours de publication",
20522
- "datafeeder.publish.upload": "Télécharger maintenant",
20523
- "datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnées",
20524
- "datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
20525
- "datafeeder.publishSuccess.mapViewer": "Visualiseur",
20526
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
20527
- "datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
20528
- "datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
20529
- "datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
20530
- "datafeeder.summarizePage.illustration": "Pas d'erreur ? C'est parti !",
20531
- "datafeeder.summarizePage.previous": "Précédent",
20532
- "datafeeder.summarizePage.submit": "Publier",
20533
- "datafeeder.summarizePage.title": "On y est presque...",
20534
- "datafeeder.upload.acceptedFormats": "Formats de fichier acceptés :",
20535
- "datafeeder.upload.checkboxLabel": "J'ai le droit de publier cette donnée",
20536
- "datafeeder.upload.error.subtitle.analysis": "Le fichier transféré contient-il des données géographiques valides ?",
20537
- "datafeeder.upload.error.subtitle.cantOpenFile": "Vérifiez la validité du fichier sélectionné",
20538
- "datafeeder.upload.error.subtitle.fileFormat": "Rappel : uniquement des SHP",
20539
- "datafeeder.upload.error.subtitle.fileSize": "Rappel : {size} Mo maximum",
20540
- "datafeeder.upload.error.title.analysis": "Erreur lors de l'analyse des données",
20541
- "datafeeder.upload.error.title.cantOpenFile": "Erreur lors de l'ouverture du fichier",
20542
- "datafeeder.upload.error.title.fileFormat": "Le format du fichier n'est pas supporté",
20543
- "datafeeder.upload.error.title.fileHasntSelected": "Aucun fichier n'a été sélectionné",
20544
- "datafeeder.upload.error.title.fileSize": "La taille du fichier est trop importante",
20545
- "datafeeder.upload.error.title.noRightsToSendData": "Vous n'avez pas validé les droits de publication",
20546
- "datafeeder.upload.illustration.enrichment": "Enrichissement",
20547
- "datafeeder.upload.illustration.import": "Import",
20548
- "datafeeder.upload.illustration.title": "Ajouter des données n'a jamais été aussi simple",
20549
- "datafeeder.upload.illustration.validation": "Validation",
20550
- "datafeeder.upload.illustration.verification": "Vérification",
20551
- "datafeeder.upload.inputLabel": "Ajouter votre fichier",
20552
- "datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
20553
- "datafeeder.upload.title": "Importez vos données",
20554
- "datafeeder.upload.uploadButton": "Transférer",
20555
- "datafeeder.validation.csv.delimiter": "Séparateur de colonne",
20556
- "datafeeder.validation.csv.delimiter.comma": "Virgule",
20557
- "datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
20558
- "datafeeder.validation.csv.lat.field": "Colonne latitude",
20559
- "datafeeder.validation.csv.lng.field": "Colonne longitude",
20560
- "datafeeder.validation.csv.quote.double": "Double guillemets",
20561
- "datafeeder.validation.csv.quote.none": "Aucun",
20562
- "datafeeder.validation.csv.quote.simple": "Simple guillemet",
20563
- "datafeeder.validation.csv.quoteChar": "Séparateur de texte",
20564
- "datafeeder.validation.encoding": "Encodage",
20565
- "datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
20566
- "datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
20567
- "datafeeder.validation.projection": "Projection :",
20568
- "datafeeder.validation.projection.unknown": "Choisissez une projection",
20569
- "datafeeder.validation.sample.title": "Et un exemple d'objet",
20570
- "datafeeder.wizard.emptyRequiredValuesMessage": "Veuillez remplir les champs obligatoires",
20571
20286
  "datafeeder.wizardSummarize.createdAt": "Créée le",
20572
20287
  "datafeeder.wizardSummarize.scale": "Échelle",
20573
20288
  "datahub.header.datasets": "Données",
@@ -20713,14 +20428,14 @@ var fr = {
20713
20428
  "editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
20714
20429
  "editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
20715
20430
  "editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
20716
- "editor.record.form.license.cc-by": "",
20717
- "editor.record.form.license.cc-by-sa": "",
20718
- "editor.record.form.license.cc-zero": "",
20431
+ "editor.record.form.license.cc-by": "Creative Commons CC-BY",
20432
+ "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
20433
+ "editor.record.form.license.cc-zero": "Creative Commons CC-0",
20719
20434
  "editor.record.form.license.etalab": "Licence Ouverte (Etalab)",
20720
20435
  "editor.record.form.license.etalab-v2": "Licence Ouverte v2.0 (Etalab)",
20721
- "editor.record.form.license.odbl": "",
20722
- "editor.record.form.license.odc-by": "",
20723
- "editor.record.form.license.pddl": "",
20436
+ "editor.record.form.license.odbl": "Open Data Commons ODbL",
20437
+ "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
20438
+ "editor.record.form.license.pddl": "Open Data Commons PDDL",
20724
20439
  "editor.record.form.license.unknown": "Inconnue ou absente",
20725
20440
  "editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
20726
20441
  "editor.record.form.page.description": "Description du jeu de données",
@@ -20773,7 +20488,7 @@ var fr = {
20773
20488
  "editor.record.resourceError.closeMessage": "Compris",
20774
20489
  "editor.record.resourceError.title": "Erreur avec les pièces jointes",
20775
20490
  "editor.record.saveStatus.draftWithChangesPending": "Sauvegardé - Modifications non publiées",
20776
- "editor.record.saveStatus.recordNotPublished": "",
20491
+ "editor.record.saveStatus.recordNotPublished": "Sauvegardé - non publié",
20777
20492
  "editor.record.saveStatus.recordUpToDate": "Sauvegardé - Jeu de données à jour",
20778
20493
  "editor.record.undo.confirmation.cancelText": "Garder les modifications",
20779
20494
  "editor.record.undo.confirmation.confirmText": "Retirer les modifications",
@@ -20783,7 +20498,7 @@ var fr = {
20783
20498
  "editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à ce jeu de données",
20784
20499
  "editor.record.upToDate": "Ce jeu de données est à jour",
20785
20500
  "editor.sidebar.logout": "Se déconnecter",
20786
- "editor.sidebar.menu.editor": "",
20501
+ "editor.sidebar.menu.editor": "Editeur",
20787
20502
  "editor.temporary.disabled": "Pas encore implémenté",
20788
20503
  "externalviewer.dataset.unnamed": "Couche du datahub",
20789
20504
  "facets.block.title.OrgForResource": "Organisation",
@@ -20831,7 +20546,7 @@ var fr = {
20831
20546
  "map.add.layer": "Ajouter une couche",
20832
20547
  "map.add.layer.catalog": "Du catalogue",
20833
20548
  "map.add.layer.file": "À partir d'un fichier",
20834
- "map.add.layer.ogc.api": "",
20549
+ "map.add.layer.ogc.api": "Depuis un service OGC API",
20835
20550
  "map.add.layer.wfs": "Depuis un service WFS",
20836
20551
  "map.add.layer.wms": "Depuis un service WMS",
20837
20552
  "map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
@@ -20844,7 +20559,7 @@ var fr = {
20844
20559
  "map.loading.data": "Chargement des données...",
20845
20560
  "map.loading.service": "Chargement du service...",
20846
20561
  "map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
20847
- "map.ogc.urlInput.hint": "",
20562
+ "map.ogc.urlInput.hint": "Entrez l'URL du service OGC API",
20848
20563
  "map.select.layer": "Source de données",
20849
20564
  "map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
20850
20565
  "map.wms.urlInput.hint": "Entrez l'URL du service WMS",
@@ -20871,9 +20586,10 @@ var fr = {
20871
20586
  "record.action.download": "Télécharger",
20872
20587
  "record.action.duplicate": "Dupliquer",
20873
20588
  "record.action.duplicating": "Duplication...",
20589
+ "record.action.rollback": "Restaurer",
20874
20590
  "record.action.view": "Voir",
20875
20591
  "record.externalViewer.open": "Ouvrir dans le visualiseur externe",
20876
- "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",
20877
20593
  "record.metadata.about": "Description",
20878
20594
  "record.metadata.api": "API",
20879
20595
  "record.metadata.api.form.closeButton": "Fermer",
@@ -21050,7 +20766,6 @@ var fr = {
21050
20766
  "tooltip.url.open": "Ouvrir l'URL",
21051
20767
  "ui.readLess": "Réduire",
21052
20768
  "ui.readMore": "Lire la suite",
21053
- "wfs.aggregations.notsupported": "Agrégations non supportées pour les services WFS",
21054
20769
  "wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
21055
20770
  "wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
21056
20771
  "wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
@@ -21101,24 +20816,6 @@ var it = {
21101
20816
  "dashboard.records.userEmail": "Email",
21102
20817
  "dashboard.records.username": "Nome utente",
21103
20818
  "dashboard.records.users": "utenti",
21104
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Rilevamento del formato dei file",
21105
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Recupero delle informazioni dal dataset",
21106
- "datafeeder.analysisProgressBar.illustration.samplingData": "Campionatura dei dati",
21107
- "datafeeder.analysisProgressBar.subtitle": "L'analisi potrebbe richiedere alcuni minuti, si prega di attendere.",
21108
- "datafeeder.analysisProgressBar.title": "Analisi in corso",
21109
- "datafeeder.datasetValidation.datasetInformation": "Il dataset fornito contiene {number} entità",
21110
- "datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
21111
- "datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
21112
- "datafeeder.datasetValidation.unknown": " - ",
21113
- "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",
21114
- "datafeeder.datasetValidationCsv.lineNumbers": "Riepilogo delle prime 5 righe del CSV:",
21115
- "datafeeder.form.abstract": "Come descrivere il suo dataset?",
21116
- "datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
21117
- "datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
21118
- "datafeeder.form.dropdown": "Per quale scala è stato creato?",
21119
- "datafeeder.form.tags": "Seleziona uno o più parole chiave che corrispondano al suo dataset",
21120
- "datafeeder.form.title": "Dà al suo dataset il miglior titolo",
21121
- "datafeeder.formsPage.title": "Diteci di più sul suo dataset",
21122
20819
  "datafeeder.month.april": "Aprile",
21123
20820
  "datafeeder.month.august": "Agosto",
21124
20821
  "datafeeder.month.december": "Dicembre",
@@ -21131,59 +20828,6 @@ var it = {
21131
20828
  "datafeeder.month.november": "Novembre",
21132
20829
  "datafeeder.month.october": "Ottobre",
21133
20830
  "datafeeder.month.september": "Settembre",
21134
- "datafeeder.publish.hint": "Puo lasciare questa pagina in sicurezza, sarà avvisato quando il processo sarà completo",
21135
- "datafeeder.publish.illustration.title": "Un altro dato da pubblicare?",
21136
- "datafeeder.publish.subtitle": "La pubblicazione potrebbe richiedere alcuni minuti.",
21137
- "datafeeder.publish.title": "Grazie! \n I suei dati sono in fase di pubblicazione",
21138
- "datafeeder.publish.upload": "Carica ora",
21139
- "datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
21140
- "datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
21141
- "datafeeder.publishSuccess.mapViewer": "Visualizzatore",
21142
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
21143
- "datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
21144
- "datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
21145
- "datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
21146
- "datafeeder.summarizePage.illustration": "Nessun errore? Avanti!",
21147
- "datafeeder.summarizePage.previous": "Precedente",
21148
- "datafeeder.summarizePage.submit": "Pubblica",
21149
- "datafeeder.summarizePage.title": "Ci siamo quasi...",
21150
- "datafeeder.upload.acceptedFormats": "Formati di file accettati:",
21151
- "datafeeder.upload.checkboxLabel": "Ho il diritto di pubblicare questi dati",
21152
- "datafeeder.upload.error.subtitle.analysis": "Il file trasferito contiene dati geografici validi?",
21153
- "datafeeder.upload.error.subtitle.cantOpenFile": "Verifica la validità del file selezionato",
21154
- "datafeeder.upload.error.subtitle.fileFormat": "Ricorda: solo SHP",
21155
- "datafeeder.upload.error.subtitle.fileSize": "Ricorda: dimensione massima {size} MB",
21156
- "datafeeder.upload.error.title.analysis": "Errore durante l'analisi dei dati",
21157
- "datafeeder.upload.error.title.cantOpenFile": "Errore durante l'apertura del file",
21158
- "datafeeder.upload.error.title.fileFormat": "Formato del file non supportato",
21159
- "datafeeder.upload.error.title.fileHasntSelected": "Nessun file selezionato",
21160
- "datafeeder.upload.error.title.fileSize": "Dimensione del file troppo grande",
21161
- "datafeeder.upload.error.title.noRightsToSendData": "Non avete validato i diritti di pubblicazione",
21162
- "datafeeder.upload.illustration.enrichment": "Arricchimento",
21163
- "datafeeder.upload.illustration.import": "Importazione",
21164
- "datafeeder.upload.illustration.title": "Aggiungere dati non è mai stato così facile",
21165
- "datafeeder.upload.illustration.validation": "Validazione",
21166
- "datafeeder.upload.illustration.verification": "Verifica",
21167
- "datafeeder.upload.inputLabel": "Aggiunge il suo file",
21168
- "datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
21169
- "datafeeder.upload.title": "Importa i suoi dati",
21170
- "datafeeder.upload.uploadButton": "Carica",
21171
- "datafeeder.validation.csv.delimiter": "Separatore di colonne",
21172
- "datafeeder.validation.csv.delimiter.comma": "Virgola",
21173
- "datafeeder.validation.csv.delimiter.semicolon": "Punto e virgola",
21174
- "datafeeder.validation.csv.lat.field": "Colonna di latitudine",
21175
- "datafeeder.validation.csv.lng.field": "Colonna di longitudine",
21176
- "datafeeder.validation.csv.quote.double": "Virgolette doppie",
21177
- "datafeeder.validation.csv.quote.none": "Nessun",
21178
- "datafeeder.validation.csv.quote.simple": "Citazione semplice",
21179
- "datafeeder.validation.csv.quoteChar": "Separatore di testo",
21180
- "datafeeder.validation.encoding": "Codifica",
21181
- "datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
21182
- "datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
21183
- "datafeeder.validation.projection": "Proiezione:",
21184
- "datafeeder.validation.projection.unknown": "Seleziona una proiezione",
21185
- "datafeeder.validation.sample.title": "E un esempio di oggetto",
21186
- "datafeeder.wizard.emptyRequiredValuesMessage": "Si prega di compilare i campi obbligatori",
21187
20831
  "datafeeder.wizardSummarize.createdAt": "Creato il",
21188
20832
  "datafeeder.wizardSummarize.scale": "Scala",
21189
20833
  "datahub.header.datasets": "Dati",
@@ -21267,9 +20911,9 @@ var it = {
21267
20911
  "editor.record.deleteError.title": "Errore durante l'eliminazione",
21268
20912
  "editor.record.deleteSuccess.body": "Il dataset è stato eliminato correttamente",
21269
20913
  "editor.record.deleteSuccess.title": "Eliminazione riuscita",
21270
- "editor.record.error.back": "",
21271
- "editor.record.error.explanation": "",
21272
- "editor.record.error.message": "",
20914
+ "editor.record.error.back": "Ritorna al catalogo",
20915
+ "editor.record.error.explanation": "Forse non ha accesso a questa pagina oppure questo collegamento potrebbe non essere valido.",
20916
+ "editor.record.error.message": "Qualcosa è andato storto",
21273
20917
  "editor.record.form.bottomButtons.comeBackLater": "Ritorna più tardi",
21274
20918
  "editor.record.form.bottomButtons.next": "Avanti",
21275
20919
  "editor.record.form.bottomButtons.previous": "Precedente",
@@ -21329,18 +20973,18 @@ var it = {
21329
20973
  "editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
21330
20974
  "editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
21331
20975
  "editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
21332
- "editor.record.form.license.cc-by": "",
21333
- "editor.record.form.license.cc-by-sa": "",
21334
- "editor.record.form.license.cc-zero": "",
20976
+ "editor.record.form.license.cc-by": "Creative Commons CC-BY",
20977
+ "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
20978
+ "editor.record.form.license.cc-zero": "Creative Commons CC-0",
21335
20979
  "editor.record.form.license.etalab": "Licenza aperta (Etalab)",
21336
20980
  "editor.record.form.license.etalab-v2": "Licenza aperta v2.0 (Etalab)",
21337
- "editor.record.form.license.odbl": "",
21338
- "editor.record.form.license.odc-by": "",
21339
- "editor.record.form.license.pddl": "",
20981
+ "editor.record.form.license.odbl": "Open Data Commons ODbL",
20982
+ "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
20983
+ "editor.record.form.license.pddl": "Open Data Commons PDDL",
21340
20984
  "editor.record.form.license.unknown": "Sconosciuto o assente",
21341
20985
  "editor.record.form.page.accessAndContact": "Informazioni per l'uso",
21342
20986
  "editor.record.form.page.description": "Descrizione del dataset",
21343
- "editor.record.form.page.resources": "",
20987
+ "editor.record.form.page.resources": "Risorse",
21344
20988
  "editor.record.form.section.about.description": "Queste informazioni riguardano il dataset",
21345
20989
  "editor.record.form.section.about.label": "Informazioni sul dataset",
21346
20990
  "editor.record.form.section.annexes.description": "Gli allegati sono risorse facoltative. Sono allegati al dataset e aiutano a comprendere meglio i dati (avviso, ecc.).",
@@ -21367,7 +21011,7 @@ var it = {
21367
21011
  "editor.record.loadError.body": "Impossibile caricare il dataset:",
21368
21012
  "editor.record.loadError.closeMessage": "Capito",
21369
21013
  "editor.record.loadError.title": "Errore durante il caricamento",
21370
- "editor.record.lock.reason": "",
21014
+ "editor.record.lock.reason": "Non è un editore di uno dei gruppi autorizzati",
21371
21015
  "editor.record.onlineResource.protocol.other": "Altro",
21372
21016
  "editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
21373
21017
  "editor.record.onlineResourceError.closeMessage": "Capito",
@@ -21389,7 +21033,7 @@ var it = {
21389
21033
  "editor.record.resourceError.closeMessage": "Capito",
21390
21034
  "editor.record.resourceError.title": "Errore con gli allegati",
21391
21035
  "editor.record.saveStatus.draftWithChangesPending": "Salvato - Modifiche non pubblicate",
21392
- "editor.record.saveStatus.recordNotPublished": "",
21036
+ "editor.record.saveStatus.recordNotPublished": "Salvato - non pubblicato",
21393
21037
  "editor.record.saveStatus.recordUpToDate": "Salvato - Dataset aggiornato",
21394
21038
  "editor.record.undo.confirmation.cancelText": "Mantieni le modifiche",
21395
21039
  "editor.record.undo.confirmation.confirmText": "Annulla le modifiche",
@@ -21399,7 +21043,7 @@ var it = {
21399
21043
  "editor.record.undo.tooltip.enabled": "Fare clic su questo pulsante per annullare le modifiche apportate a questo dataset",
21400
21044
  "editor.record.upToDate": "Questo dataset è aggiornato",
21401
21045
  "editor.sidebar.logout": "Esci",
21402
- "editor.sidebar.menu.editor": "",
21046
+ "editor.sidebar.menu.editor": "Editore",
21403
21047
  "editor.temporary.disabled": "Non ancora implementato",
21404
21048
  "externalviewer.dataset.unnamed": "Layer del datahub",
21405
21049
  "facets.block.title.OrgForResource": "Organizzazione",
@@ -21447,7 +21091,7 @@ var it = {
21447
21091
  "map.add.layer": "Aggiungere un layer",
21448
21092
  "map.add.layer.catalog": "Dal catalogo",
21449
21093
  "map.add.layer.file": "Da un file",
21450
- "map.add.layer.ogc.api": "",
21094
+ "map.add.layer.ogc.api": "Da OGC API",
21451
21095
  "map.add.layer.wfs": "Da un WFS",
21452
21096
  "map.add.layer.wms": "Da un WMS",
21453
21097
  "map.addFromFile.placeholder": "Clicca o trascina un file qui",
@@ -21460,7 +21104,7 @@ var it = {
21460
21104
  "map.loading.data": "Caricamento dati...",
21461
21105
  "map.loading.service": "Caricamento del servizio...",
21462
21106
  "map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
21463
- "map.ogc.urlInput.hint": "",
21107
+ "map.ogc.urlInput.hint": "Inserisci URL del servizio OGC API",
21464
21108
  "map.select.layer": "Sorgente dati",
21465
21109
  "map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
21466
21110
  "map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
@@ -21486,10 +21130,11 @@ var it = {
21486
21130
  "record.action.delete": "Elimina",
21487
21131
  "record.action.download": "Scarica",
21488
21132
  "record.action.duplicate": "Duplicato",
21489
- "record.action.duplicating": "",
21133
+ "record.action.duplicating": "Duplicazione",
21134
+ "record.action.rollback": "Annulla",
21490
21135
  "record.action.view": "Visualizza",
21491
21136
  "record.externalViewer.open": "Aprire nel visualizzatore esterno",
21492
- "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 ",
21493
21138
  "record.metadata.about": "Descrizione",
21494
21139
  "record.metadata.api": "API",
21495
21140
  "record.metadata.api.form.closeButton": "Chiude",
@@ -21666,7 +21311,7 @@ var it = {
21666
21311
  "tooltip.url.open": "Aprire l'URL",
21667
21312
  "ui.readLess": "Ridurre",
21668
21313
  "ui.readMore": "Leggere di più",
21669
- "wfs.aggregations.notsupported": "",
21314
+ "wfs.aggregations.notsupported": "Aggregazioni non supportate per i servizi WFS",
21670
21315
  "wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
21671
21316
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
21672
21317
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
@@ -21717,24 +21362,6 @@ var nl = {
21717
21362
  "dashboard.records.userEmail": "",
21718
21363
  "dashboard.records.username": "",
21719
21364
  "dashboard.records.users": "",
21720
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
21721
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
21722
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
21723
- "datafeeder.analysisProgressBar.subtitle": "",
21724
- "datafeeder.analysisProgressBar.title": "",
21725
- "datafeeder.datasetValidation.datasetInformation": "",
21726
- "datafeeder.datasetValidation.submitButton": "",
21727
- "datafeeder.datasetValidation.title": "",
21728
- "datafeeder.datasetValidation.unknown": "",
21729
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
21730
- "datafeeder.datasetValidationCsv.lineNumbers": "",
21731
- "datafeeder.form.abstract": "",
21732
- "datafeeder.form.datepicker": "",
21733
- "datafeeder.form.description": "",
21734
- "datafeeder.form.dropdown": "",
21735
- "datafeeder.form.tags": "",
21736
- "datafeeder.form.title": "",
21737
- "datafeeder.formsPage.title": "",
21738
21365
  "datafeeder.month.april": "",
21739
21366
  "datafeeder.month.august": "",
21740
21367
  "datafeeder.month.december": "",
@@ -21747,59 +21374,6 @@ var nl = {
21747
21374
  "datafeeder.month.november": "",
21748
21375
  "datafeeder.month.october": "",
21749
21376
  "datafeeder.month.september": "",
21750
- "datafeeder.publish.hint": "",
21751
- "datafeeder.publish.illustration.title": "",
21752
- "datafeeder.publish.subtitle": "",
21753
- "datafeeder.publish.title": "",
21754
- "datafeeder.publish.upload": "",
21755
- "datafeeder.publishSuccess.geonetworkRecord": "",
21756
- "datafeeder.publishSuccess.illustration.title": "",
21757
- "datafeeder.publishSuccess.mapViewer": "",
21758
- "datafeeder.publishSuccess.ogcFeature": "",
21759
- "datafeeder.publishSuccess.subtitle": "",
21760
- "datafeeder.publishSuccess.title": "",
21761
- "datafeeder.publishSuccess.uploadAnotherData": "",
21762
- "datafeeder.summarizePage.illustration": "",
21763
- "datafeeder.summarizePage.previous": "",
21764
- "datafeeder.summarizePage.submit": "",
21765
- "datafeeder.summarizePage.title": "",
21766
- "datafeeder.upload.acceptedFormats": "",
21767
- "datafeeder.upload.checkboxLabel": "",
21768
- "datafeeder.upload.error.subtitle.analysis": "",
21769
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
21770
- "datafeeder.upload.error.subtitle.fileFormat": "",
21771
- "datafeeder.upload.error.subtitle.fileSize": "",
21772
- "datafeeder.upload.error.title.analysis": "",
21773
- "datafeeder.upload.error.title.cantOpenFile": "",
21774
- "datafeeder.upload.error.title.fileFormat": "",
21775
- "datafeeder.upload.error.title.fileHasntSelected": "",
21776
- "datafeeder.upload.error.title.fileSize": "",
21777
- "datafeeder.upload.error.title.noRightsToSendData": "",
21778
- "datafeeder.upload.illustration.enrichment": "",
21779
- "datafeeder.upload.illustration.import": "",
21780
- "datafeeder.upload.illustration.title": "",
21781
- "datafeeder.upload.illustration.validation": "",
21782
- "datafeeder.upload.illustration.verification": "",
21783
- "datafeeder.upload.inputLabel": "",
21784
- "datafeeder.upload.maxFileSize": "",
21785
- "datafeeder.upload.title": "",
21786
- "datafeeder.upload.uploadButton": "",
21787
- "datafeeder.validation.csv.delimiter": "",
21788
- "datafeeder.validation.csv.delimiter.comma": "",
21789
- "datafeeder.validation.csv.delimiter.semicolon": "",
21790
- "datafeeder.validation.csv.lat.field": "",
21791
- "datafeeder.validation.csv.lng.field": "",
21792
- "datafeeder.validation.csv.quote.double": "",
21793
- "datafeeder.validation.csv.quote.none": "",
21794
- "datafeeder.validation.csv.quote.simple": "",
21795
- "datafeeder.validation.csv.quoteChar": "",
21796
- "datafeeder.validation.encoding": "",
21797
- "datafeeder.validation.extent.title": "",
21798
- "datafeeder.validation.extent.title.unknown": "",
21799
- "datafeeder.validation.projection": "",
21800
- "datafeeder.validation.projection.unknown": "",
21801
- "datafeeder.validation.sample.title": "",
21802
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
21803
21377
  "datafeeder.wizardSummarize.createdAt": "",
21804
21378
  "datafeeder.wizardSummarize.scale": "",
21805
21379
  "datahub.header.datasets": "",
@@ -22103,6 +21677,7 @@ var nl = {
22103
21677
  "record.action.download": "",
22104
21678
  "record.action.duplicate": "",
22105
21679
  "record.action.duplicating": "",
21680
+ "record.action.rollback": "",
22106
21681
  "record.action.view": "",
22107
21682
  "record.externalViewer.open": "",
22108
21683
  "record.feature.limit": "",
@@ -22282,7 +21857,6 @@ var nl = {
22282
21857
  "tooltip.url.open": "",
22283
21858
  "ui.readLess": "",
22284
21859
  "ui.readMore": "",
22285
- "wfs.aggregations.notsupported": "",
22286
21860
  "wfs.feature.limit": "",
22287
21861
  "wfs.featuretype.notfound": "",
22288
21862
  "wfs.geojsongml.notsupported": "",
@@ -22333,24 +21907,6 @@ var pt = {
22333
21907
  "dashboard.records.userEmail": "",
22334
21908
  "dashboard.records.username": "",
22335
21909
  "dashboard.records.users": "",
22336
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
22337
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
22338
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
22339
- "datafeeder.analysisProgressBar.subtitle": "",
22340
- "datafeeder.analysisProgressBar.title": "",
22341
- "datafeeder.datasetValidation.datasetInformation": "",
22342
- "datafeeder.datasetValidation.submitButton": "",
22343
- "datafeeder.datasetValidation.title": "",
22344
- "datafeeder.datasetValidation.unknown": "",
22345
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
22346
- "datafeeder.datasetValidationCsv.lineNumbers": "",
22347
- "datafeeder.form.abstract": "",
22348
- "datafeeder.form.datepicker": "",
22349
- "datafeeder.form.description": "",
22350
- "datafeeder.form.dropdown": "",
22351
- "datafeeder.form.tags": "",
22352
- "datafeeder.form.title": "",
22353
- "datafeeder.formsPage.title": "",
22354
21910
  "datafeeder.month.april": "",
22355
21911
  "datafeeder.month.august": "",
22356
21912
  "datafeeder.month.december": "",
@@ -22363,59 +21919,6 @@ var pt = {
22363
21919
  "datafeeder.month.november": "",
22364
21920
  "datafeeder.month.october": "",
22365
21921
  "datafeeder.month.september": "",
22366
- "datafeeder.publish.hint": "",
22367
- "datafeeder.publish.illustration.title": "",
22368
- "datafeeder.publish.subtitle": "",
22369
- "datafeeder.publish.title": "",
22370
- "datafeeder.publish.upload": "",
22371
- "datafeeder.publishSuccess.geonetworkRecord": "",
22372
- "datafeeder.publishSuccess.illustration.title": "",
22373
- "datafeeder.publishSuccess.mapViewer": "",
22374
- "datafeeder.publishSuccess.ogcFeature": "",
22375
- "datafeeder.publishSuccess.subtitle": "",
22376
- "datafeeder.publishSuccess.title": "",
22377
- "datafeeder.publishSuccess.uploadAnotherData": "",
22378
- "datafeeder.summarizePage.illustration": "",
22379
- "datafeeder.summarizePage.previous": "",
22380
- "datafeeder.summarizePage.submit": "",
22381
- "datafeeder.summarizePage.title": "",
22382
- "datafeeder.upload.acceptedFormats": "",
22383
- "datafeeder.upload.checkboxLabel": "",
22384
- "datafeeder.upload.error.subtitle.analysis": "",
22385
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
22386
- "datafeeder.upload.error.subtitle.fileFormat": "",
22387
- "datafeeder.upload.error.subtitle.fileSize": "",
22388
- "datafeeder.upload.error.title.analysis": "",
22389
- "datafeeder.upload.error.title.cantOpenFile": "",
22390
- "datafeeder.upload.error.title.fileFormat": "",
22391
- "datafeeder.upload.error.title.fileHasntSelected": "",
22392
- "datafeeder.upload.error.title.fileSize": "",
22393
- "datafeeder.upload.error.title.noRightsToSendData": "",
22394
- "datafeeder.upload.illustration.enrichment": "",
22395
- "datafeeder.upload.illustration.import": "",
22396
- "datafeeder.upload.illustration.title": "",
22397
- "datafeeder.upload.illustration.validation": "",
22398
- "datafeeder.upload.illustration.verification": "",
22399
- "datafeeder.upload.inputLabel": "",
22400
- "datafeeder.upload.maxFileSize": "",
22401
- "datafeeder.upload.title": "",
22402
- "datafeeder.upload.uploadButton": "",
22403
- "datafeeder.validation.csv.delimiter": "",
22404
- "datafeeder.validation.csv.delimiter.comma": "",
22405
- "datafeeder.validation.csv.delimiter.semicolon": "",
22406
- "datafeeder.validation.csv.lat.field": "",
22407
- "datafeeder.validation.csv.lng.field": "",
22408
- "datafeeder.validation.csv.quote.double": "",
22409
- "datafeeder.validation.csv.quote.none": "",
22410
- "datafeeder.validation.csv.quote.simple": "",
22411
- "datafeeder.validation.csv.quoteChar": "",
22412
- "datafeeder.validation.encoding": "",
22413
- "datafeeder.validation.extent.title": "",
22414
- "datafeeder.validation.extent.title.unknown": "",
22415
- "datafeeder.validation.projection": "",
22416
- "datafeeder.validation.projection.unknown": "",
22417
- "datafeeder.validation.sample.title": "",
22418
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
22419
21922
  "datafeeder.wizardSummarize.createdAt": "",
22420
21923
  "datafeeder.wizardSummarize.scale": "",
22421
21924
  "datahub.header.datasets": "",
@@ -22719,6 +22222,7 @@ var pt = {
22719
22222
  "record.action.download": "",
22720
22223
  "record.action.duplicate": "",
22721
22224
  "record.action.duplicating": "",
22225
+ "record.action.rollback": "",
22722
22226
  "record.action.view": "",
22723
22227
  "record.externalViewer.open": "",
22724
22228
  "record.feature.limit": "",
@@ -22898,7 +22402,6 @@ var pt = {
22898
22402
  "tooltip.url.open": "",
22899
22403
  "ui.readLess": "",
22900
22404
  "ui.readMore": "",
22901
- "wfs.aggregations.notsupported": "",
22902
22405
  "wfs.feature.limit": "",
22903
22406
  "wfs.featuretype.notfound": "",
22904
22407
  "wfs.geojsongml.notsupported": "",
@@ -26350,66 +25853,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26350
25853
  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" }]
26351
25854
  }] });
26352
25855
 
26353
- class StepBarComponent {
26354
- constructor(cdr) {
26355
- this.cdr = cdr;
26356
- this.currentStep = 1;
26357
- this.type = 'default';
26358
- }
26359
- get stepCounter() {
26360
- return new Array(this.steps);
26361
- }
26362
- get color() {
26363
- switch (this.type) {
26364
- case 'default':
26365
- return {
26366
- outerBar: 'bg-gray-200',
26367
- innerBar: 'bg-gray-100',
26368
- };
26369
- case 'primary':
26370
- return {
26371
- outerBar: 'bg-primary',
26372
- innerBar: 'bg-primary-lighter',
26373
- };
26374
- case 'secondary':
26375
- return {
26376
- outerBar: 'bg-secondary',
26377
- innerBar: 'bg-secondary-lighter',
26378
- };
26379
- }
26380
- }
26381
- getCircleColor(index) {
26382
- return index === this.currentStep
26383
- ? 'bg-black'
26384
- : index < this.currentStep
26385
- ? 'bg-white'
26386
- : this.color.innerBar;
26387
- }
26388
- getChecked(index) {
26389
- return index + 1 < this.currentStep;
26390
- }
26391
- 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 }); }
26392
- 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"] }] }); }
26393
- }
26394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, decorators: [{
26395
- type: Component,
26396
- 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"] }]
26397
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { steps: [{
26398
- type: Input
26399
- }], currentStep: [{
26400
- type: Input
26401
- }], type: [{
26402
- type: Input
26403
- }] } });
26404
-
26405
25856
  class UiWidgetsModule {
26406
25857
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26407
- 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,
25858
+ 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,
26408
25859
  FormsModule,
26409
25860
  ReactiveFormsModule,
26410
25861
  TagInputModule,
26411
25862
  UtilSharedModule,
26412
- MatProgressSpinnerModule], exports: [StepBarComponent] }); }
25863
+ MatProgressSpinnerModule] }); }
26413
25864
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
26414
25865
  TranslateModule.forChild(),
26415
25866
  NgxDropzoneModule,
@@ -26422,7 +25873,7 @@ class UiWidgetsModule {
26422
25873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, decorators: [{
26423
25874
  type: NgModule,
26424
25875
  args: [{
26425
- declarations: [ColorScaleComponent, StepBarComponent],
25876
+ declarations: [ColorScaleComponent],
26426
25877
  imports: [
26427
25878
  CommonModule,
26428
25879
  TranslateModule.forChild(),
@@ -26433,7 +25884,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26433
25884
  UtilSharedModule,
26434
25885
  MatProgressSpinnerModule,
26435
25886
  ],
26436
- exports: [StepBarComponent],
25887
+ exports: [],
26437
25888
  }]
26438
25889
  }] });
26439
25890
 
@@ -26677,6 +26128,7 @@ class AutocompleteComponent {
26677
26128
  this.minCharacterCount = 3;
26678
26129
  // this will show a submit button next to the input; if false, a search icon will appear on the left
26679
26130
  this.allowSubmit = false;
26131
+ this.forceTrackPosition = false;
26680
26132
  this.itemSelected = new EventEmitter();
26681
26133
  this.inputSubmitted = new EventEmitter();
26682
26134
  this.inputCleared = new EventEmitter();
@@ -26686,12 +26138,30 @@ class AutocompleteComponent {
26686
26138
  this.lastInputValue$ = new ReplaySubject(1);
26687
26139
  this.error = null;
26688
26140
  this.subscription = new Subscription();
26141
+ this.lastPosition = null;
26689
26142
  this.displayWithFn = (item) => item.toString();
26690
26143
  this.displayWithFnInternal = (item) => {
26691
26144
  if (item === null || item === undefined)
26692
26145
  return null;
26693
26146
  return this.displayWithFn(item);
26694
26147
  };
26148
+ /**
26149
+ * !!! This function is used only for web component mode,
26150
+ * the autocomplete dropdown may not update its position
26151
+ * if the page or container is disabling wind scroll.
26152
+ */
26153
+ this.trackPosition = () => {
26154
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen;
26155
+ const rect = this.inputRef.nativeElement.getBoundingClientRect();
26156
+ if (dropdownOpened &&
26157
+ (!this.lastPosition ||
26158
+ rect.top !== this.lastPosition.top ||
26159
+ rect.left !== this.lastPosition.left)) {
26160
+ this.triggerRef.updatePosition();
26161
+ }
26162
+ this.lastPosition = rect;
26163
+ requestAnimationFrame(this.trackPosition);
26164
+ };
26695
26165
  }
26696
26166
  ngOnChanges(changes) {
26697
26167
  const { value } = changes;
@@ -26743,9 +26213,23 @@ class AutocompleteComponent {
26743
26213
  this.inputRef.nativeElement.focus();
26744
26214
  this.cdRef.detectChanges();
26745
26215
  }
26216
+ this.startTrackingPosition();
26217
+ }
26218
+ /**
26219
+ * !!! This function is used only for web component mode,
26220
+ * the autocomplete dropdown may not update its position
26221
+ * if the page or container is disabling wind scroll.
26222
+ */
26223
+ startTrackingPosition() {
26224
+ if (this.forceTrackPosition) {
26225
+ requestAnimationFrame(this.trackPosition);
26226
+ }
26746
26227
  }
26747
26228
  ngOnDestroy() {
26748
26229
  this.subscription?.unsubscribe();
26230
+ if (this.intervalIdPosition) {
26231
+ clearInterval(this.intervalIdPosition);
26232
+ }
26749
26233
  }
26750
26234
  updateInputValue(value) {
26751
26235
  if (value) {
@@ -26793,7 +26277,7 @@ class AutocompleteComponent {
26793
26277
  }
26794
26278
  }
26795
26279
  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 }); }
26796
- 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: [
26280
+ 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: [
26797
26281
  provideIcons({
26798
26282
  iconoirSearch,
26799
26283
  matClose,
@@ -26838,6 +26322,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26838
26322
  type: Input
26839
26323
  }], allowSubmit: [{
26840
26324
  type: Input
26325
+ }], forceTrackPosition: [{
26326
+ type: Input
26841
26327
  }], itemSelected: [{
26842
26328
  type: Output
26843
26329
  }], inputSubmitted: [{
@@ -26951,72 +26437,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26951
26437
  type: Output
26952
26438
  }] } });
26953
26439
 
26954
- class ChipsInputComponent {
26955
- onChange(event) {
26956
- this.rawChange.next(event);
26957
- }
26958
- constructor(http, translate) {
26959
- this.http = http;
26960
- this.translate = translate;
26961
- this.required = false;
26962
- this.loadOnce = false;
26963
- this.autocompleteItems = [];
26964
- this.invalid = false;
26965
- this.items = [];
26966
- this.requestAutocompleteItems = (text) => {
26967
- if (this.url) {
26968
- if (this.loadOnce && this.loadedItems) {
26969
- return this.loadedItems;
26970
- }
26971
- const url = this.url(text);
26972
- const lang = LANG_2_TO_3_MAPPER[this.translate.currentLang.slice(0, 2)];
26973
- return this.http
26974
- .get(url.replace('${lang}', lang))
26975
- .pipe(map$1((item) => item.map((i) => i.values[lang])));
26976
- }
26977
- else {
26978
- return of(this.autocompleteItems || []);
26979
- }
26980
- };
26981
- this.rawChange = new Subject();
26982
- this.itemsChange = this.rawChange.pipe(distinctUntilChanged());
26983
- this.subscription = new Subscription();
26984
- }
26985
- ngOnInit() {
26986
- if (this.loadOnce) {
26987
- this.loadedItems = this.requestAutocompleteItems('*').pipe(shareReplay(1));
26988
- }
26989
- this.items = this.selectedItems;
26990
- this.subscription = this.rawChange
26991
- .pipe(tap$1((v) => (this.invalid = v.length === 0)))
26992
- .subscribe();
26993
- this.rawChange.next(this.items);
26994
- }
26995
- ngOnDestroy() {
26996
- this.subscription.unsubscribe();
26997
- }
26998
- 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 }); }
26999
- 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"] }] }); }
27000
- }
27001
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, decorators: [{
27002
- type: Component,
27003
- 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"] }]
27004
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.TranslateService }], propDecorators: { url: [{
27005
- type: Input
27006
- }], placeholder: [{
27007
- type: Input
27008
- }], selectedItems: [{
27009
- type: Input
27010
- }], required: [{
27011
- type: Input
27012
- }], loadOnce: [{
27013
- type: Input
27014
- }], autocompleteItems: [{
27015
- type: Input
27016
- }], itemsChange: [{
27017
- type: Output
27018
- }] } });
27019
-
27020
26440
  class CopyTextButtonComponent {
27021
26441
  constructor() {
27022
26442
  this.displayText = true;
@@ -27693,11 +27113,6 @@ class UrlInputComponent {
27693
27113
  this.uploadClick = new EventEmitter();
27694
27114
  this.inputValue = '';
27695
27115
  }
27696
- ngOnChanges(changes) {
27697
- if (changes['value']) {
27698
- this.inputValue = changes['value'].currentValue;
27699
- }
27700
- }
27701
27116
  handleInput(event) {
27702
27117
  const value = event.target.value;
27703
27118
  this.inputValue = value;
@@ -27729,7 +27144,7 @@ class UrlInputComponent {
27729
27144
  provideNgIconsConfig({
27730
27145
  size: '1.5em',
27731
27146
  }),
27732
- ], 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 }); }
27147
+ ], 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 }); }
27733
27148
  }
27734
27149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UrlInputComponent, decorators: [{
27735
27150
  type: Component,
@@ -28096,7 +27511,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28096
27511
  class UiInputsModule {
28097
27512
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28098
27513
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, declarations: [DragAndDropFileInputComponent,
28099
- ChipsInputComponent,
28100
27514
  DropdownMultiselectComponent,
28101
27515
  ViewportIntersectorComponent,
28102
27516
  CheckboxComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
@@ -28124,7 +27538,6 @@ class UiInputsModule {
28124
27538
  ButtonComponent,
28125
27539
  DragAndDropFileInputComponent,
28126
27540
  TextAreaComponent,
28127
- ChipsInputComponent,
28128
27541
  DropdownMultiselectComponent,
28129
27542
  ViewportIntersectorComponent,
28130
27543
  CheckToggleComponent,
@@ -28169,7 +27582,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28169
27582
  args: [{
28170
27583
  declarations: [
28171
27584
  DragAndDropFileInputComponent,
28172
- ChipsInputComponent,
28173
27585
  DropdownMultiselectComponent,
28174
27586
  ViewportIntersectorComponent,
28175
27587
  CheckboxComponent,
@@ -28215,7 +27627,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28215
27627
  ButtonComponent,
28216
27628
  DragAndDropFileInputComponent,
28217
27629
  TextAreaComponent,
28218
- ChipsInputComponent,
28219
27630
  DropdownMultiselectComponent,
28220
27631
  ViewportIntersectorComponent,
28221
27632
  CheckToggleComponent,
@@ -28881,7 +28292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28881
28292
 
28882
28293
  class MarkdownParserComponent {
28883
28294
  get parsedMarkdown() {
28884
- return marked.parse(this.textContent);
28295
+ return marked.parse(this.textContent ?? '');
28885
28296
  }
28886
28297
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28887
28298
  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 }); }
@@ -30301,7 +29712,7 @@ class ApplicationBannerComponent {
30301
29712
  matWarning,
30302
29713
  }),
30303
29714
  provideNgIconsConfig({ size: '1.5em' }),
30304
- ], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute top-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"{ 'pt-5': message.length > 200 }\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\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: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29715
+ ], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\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: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30305
29716
  }
30306
29717
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, decorators: [{
30307
29718
  type: Component,
@@ -30313,7 +29724,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30313
29724
  matWarning,
30314
29725
  }),
30315
29726
  provideNgIconsConfig({ size: '1.5em' }),
30316
- ], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute top-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"{ 'pt-5': message.length > 200 }\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n" }]
29727
+ ], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n" }]
30317
29728
  }], propDecorators: { message: [{
30318
29729
  type: Input
30319
29730
  }], title: [{
@@ -30611,6 +30022,7 @@ class ActionMenuComponent {
30611
30022
  this.duplicate = new EventEmitter();
30612
30023
  this.delete = new EventEmitter();
30613
30024
  this.closeActionMenu = new EventEmitter();
30025
+ this.rollback = new EventEmitter();
30614
30026
  this.sectionDisplayed = 'mainMenu';
30615
30027
  }
30616
30028
  openMenu() {
@@ -30621,11 +30033,16 @@ class ActionMenuComponent {
30621
30033
  this.cdr.markForCheck();
30622
30034
  }
30623
30035
  displayDeleteMenu() {
30624
- this.sectionDisplayed = 'deleteMenu';
30036
+ if (this.isDraftPage) {
30037
+ this.sectionDisplayed = 'rollbackMenu';
30038
+ }
30039
+ else {
30040
+ this.sectionDisplayed = 'deleteMenu';
30041
+ }
30625
30042
  this.cdr.markForCheck();
30626
30043
  }
30627
30044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$b.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
30628
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { 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"] }] }); }
30045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { 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"] }] }); }
30629
30046
  }
30630
30047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
30631
30048
  type: Component,
@@ -30636,17 +30053,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30636
30053
  MatDialogModule,
30637
30054
  ConfirmationDialogComponent,
30638
30055
  TranslateModule,
30639
- ], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
30056
+ ], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
30640
30057
  }], ctorParameters: () => [{ type: i1$b.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
30641
30058
  type: Input
30642
30059
  }], canDelete: [{
30643
30060
  type: Input
30061
+ }], isDraftPage: [{
30062
+ type: Input
30644
30063
  }], duplicate: [{
30645
30064
  type: Output
30646
30065
  }], delete: [{
30647
30066
  type: Output
30648
30067
  }], closeActionMenu: [{
30649
30068
  type: Output
30069
+ }], rollback: [{
30070
+ type: Output
30650
30071
  }], trigger: [{
30651
30072
  type: ViewChild,
30652
30073
  args: [MatMenuTrigger]
@@ -30671,6 +30092,7 @@ class ResultsTableComponent {
30671
30092
  this.recordClick = new EventEmitter();
30672
30093
  this.duplicateRecord = new EventEmitter();
30673
30094
  this.deleteRecord = new EventEmitter();
30095
+ this.rollbackDraft = new EventEmitter();
30674
30096
  this.recordsSelectedChange = new EventEmitter();
30675
30097
  this.isActionMenuOpen = false;
30676
30098
  }
@@ -30749,6 +30171,10 @@ class ResultsTableComponent {
30749
30171
  this.deleteRecord.emit(item);
30750
30172
  this.closeActionMenu();
30751
30173
  }
30174
+ handleRollback(item) {
30175
+ this.rollbackDraft.emit(item);
30176
+ this.closeActionMenu();
30177
+ }
30752
30178
  setSortBy(col, order) {
30753
30179
  this.sortByChange.emit([col, order]);
30754
30180
  }
@@ -30773,7 +30199,7 @@ class ResultsTableComponent {
30773
30199
  this.recordsSelectedChange.emit([[record], selected]);
30774
30200
  }
30775
30201
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1$9.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
30776
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\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: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { 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: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
30202
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\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: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { 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: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "isDraftPage"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
30777
30203
  }
30778
30204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
30779
30205
  type: Component,
@@ -30787,7 +30213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30787
30213
  ActionMenuComponent,
30788
30214
  NgIconComponent,
30789
30215
  CdkOverlayOrigin,
30790
- ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
30216
+ ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
30791
30217
  }], ctorParameters: () => [{ type: i1$9.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }], propDecorators: { records: [{
30792
30218
  type: Input
30793
30219
  }], selectedRecordsIdentifiers: [{
@@ -30812,6 +30238,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30812
30238
  type: Output
30813
30239
  }], deleteRecord: [{
30814
30240
  type: Output
30241
+ }], rollbackDraft: [{
30242
+ type: Output
30815
30243
  }], recordsSelectedChange: [{
30816
30244
  type: Output
30817
30245
  }], actionMenuButtons: [{
@@ -31825,6 +31253,7 @@ class FuzzySearchComponent {
31825
31253
  this.searchService = searchService;
31826
31254
  this.recordsRepository = recordsRepository;
31827
31255
  this.autoFocus = false;
31256
+ this.forceTrackPosition = false;
31828
31257
  this.itemSelected = new EventEmitter();
31829
31258
  this.inputSubmitted = new EventEmitter();
31830
31259
  this.displayWithFn = (record) => record.title;
@@ -31867,16 +31296,18 @@ class FuzzySearchComponent {
31867
31296
  }
31868
31297
  }
31869
31298
  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 }); }
31870
- 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 }); }
31299
+ 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 }); }
31871
31300
  }
31872
31301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FuzzySearchComponent, decorators: [{
31873
31302
  type: Component,
31874
- 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" }]
31303
+ 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" }]
31875
31304
  }], ctorParameters: () => [{ type: SearchFacade }, { type: SearchService }, { type: RecordsRepositoryInterface }], propDecorators: { autocomplete: [{
31876
31305
  type: ViewChild,
31877
31306
  args: [AutocompleteComponent]
31878
31307
  }], autoFocus: [{
31879
31308
  type: Input
31309
+ }], forceTrackPosition: [{
31310
+ type: Input
31880
31311
  }], itemSelected: [{
31881
31312
  type: Output
31882
31313
  }], inputSubmitted: [{
@@ -33068,7 +32499,7 @@ class ResultsTableContainerComponent {
33068
32499
  this.subscription.unsubscribe();
33069
32500
  }
33070
32501
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }, { token: NotificationsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
33071
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "recordsSelectedChange"] }] }); }
32502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "rollbackDraft", "recordsSelectedChange"] }] }); }
33072
32503
  }
33073
32504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
33074
32505
  type: Component,
@@ -34939,7 +34370,7 @@ class AddLayerFromCatalogComponent {
34939
34370
  ADDLAYER: new ResultsLayoutConfigItem(AddLayerRecordPreviewComponent, 'py-2', '', 'flex flex-col divide-y divide-y-grey-50'),
34940
34371
  },
34941
34372
  },
34942
- ], 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 }); }
34373
+ ], 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 }); }
34943
34374
  }
34944
34375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLayerFromCatalogComponent, decorators: [{
34945
34376
  type: Component,
@@ -35490,20 +34921,23 @@ function fetchHeaders(url) {
35490
34921
  return parseHeaders(response.headers);
35491
34922
  });
35492
34923
  }
35493
- function fetchDataAsText(url) {
35494
- return useCache(() => sharedFetch(url)
34924
+ function fetchDataAsText(url, cacheActive) {
34925
+ const fetchFactory = () => sharedFetch(url)
35495
34926
  .catch((error) => {
35496
34927
  throw FetchError.corsOrNetwork(error.message);
35497
34928
  })
35498
34929
  .then(async (response) => {
35499
34930
  if (!response.ok) {
35500
- throw FetchError.http(response.status, await response.text());
34931
+ const clonedResponse = response.clone();
34932
+ throw FetchError.http(response.status, await clonedResponse.text());
35501
34933
  }
35502
- return response.text();
35503
- }), url, 'asText');
34934
+ const clonedResponse = response.clone();
34935
+ return clonedResponse.text();
34936
+ });
34937
+ return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
35504
34938
  }
35505
- function fetchDataAsArrayBuffer(url) {
35506
- return useCache(() => sharedFetch(url)
34939
+ function fetchDataAsArrayBuffer(url, cacheActive) {
34940
+ const fetchFactory = () => sharedFetch(url)
35507
34941
  .catch((error) => {
35508
34942
  throw FetchError.corsOrNetwork(error.message);
35509
34943
  })
@@ -35513,7 +34947,8 @@ function fetchDataAsArrayBuffer(url) {
35513
34947
  }
35514
34948
  // convert to a numeric array so that we can store the response in cache
35515
34949
  return Array.from(new Uint8Array(await response.arrayBuffer()));
35516
- }), url, 'asArrayBuffer').then((array) => {
34950
+ });
34951
+ return (cacheActive ? useCache(fetchFactory, url, 'asArrayBuffer') : fetchFactory()).then((array) => {
35517
34952
  return new Uint8Array(array).buffer;
35518
34953
  });
35519
34954
  }
@@ -35659,68 +35094,6 @@ function getJsonDataItemsProxy(items) {
35659
35094
  });
35660
35095
  }
35661
35096
 
35662
- class BaseReader {
35663
- constructor(url) {
35664
- this.url = url;
35665
- this.selected = null;
35666
- this.groupedBy = null;
35667
- this.aggregations = null;
35668
- this.filter = null;
35669
- this.sort = null;
35670
- this.startIndex = null;
35671
- this.count = null;
35672
- }
35673
- load() {
35674
- throw new Error('not implemented');
35675
- }
35676
- get properties() {
35677
- throw new Error('not implemented');
35678
- }
35679
- get info() {
35680
- throw new Error('not implemented');
35681
- }
35682
- read() {
35683
- throw new Error('not implemented');
35684
- }
35685
- selectAll() {
35686
- this.groupedBy = null;
35687
- this.aggregations = null;
35688
- this.selected = null;
35689
- this.filter = null;
35690
- this.startIndex = null;
35691
- this.count = null;
35692
- return this;
35693
- }
35694
- select(...selectedFields) {
35695
- this.selected = selectedFields;
35696
- this.aggregations = null; // clear aggregations & groups when selecting fields
35697
- this.groupedBy = null;
35698
- return this;
35699
- }
35700
- groupBy(...groupBy) {
35701
- this.groupedBy = groupBy;
35702
- this.selected = null; // clear normal field selection when aggregating
35703
- return this;
35704
- }
35705
- aggregate(...aggregations) {
35706
- this.aggregations = aggregations;
35707
- return this;
35708
- }
35709
- where(filter) {
35710
- this.filter = filter;
35711
- return this;
35712
- }
35713
- orderBy(...fieldSorts) {
35714
- this.sort = fieldSorts;
35715
- return this;
35716
- }
35717
- limit(startIndex, count) {
35718
- this.startIndex = startIndex;
35719
- this.count = count;
35720
- return this;
35721
- }
35722
- }
35723
-
35724
35097
  function filterToSql(filter) {
35725
35098
  const operator = filter[0];
35726
35099
  const args = filter.slice(1);
@@ -35814,7 +35187,80 @@ function generateSqlQuery(selected = null, filter = null, sort = null, startInde
35814
35187
  return sqlSelect + sqlFrom + sqlGroupBy + sqlOrderBy + sqlWhere + sqlLimit;
35815
35188
  }
35816
35189
 
35817
- class BaseFileReader extends BaseReader {
35190
+ class BaseReader {
35191
+ constructor(url) {
35192
+ this.url = url;
35193
+ this.selected = null;
35194
+ this.groupedBy = null;
35195
+ this.aggregations = null;
35196
+ this.filter = null;
35197
+ this.sort = null;
35198
+ this.startIndex = null;
35199
+ this.count = null;
35200
+ }
35201
+ load() {
35202
+ throw new Error('not implemented');
35203
+ }
35204
+ get properties() {
35205
+ throw new Error('not implemented');
35206
+ }
35207
+ get info() {
35208
+ throw new Error('not implemented');
35209
+ }
35210
+ read() {
35211
+ throw new Error('not implemented');
35212
+ }
35213
+ selectAll() {
35214
+ this.groupedBy = null;
35215
+ this.aggregations = null;
35216
+ this.selected = null;
35217
+ this.filter = null;
35218
+ this.startIndex = null;
35219
+ this.count = null;
35220
+ return this;
35221
+ }
35222
+ select(...selectedFields) {
35223
+ this.selected = selectedFields;
35224
+ this.aggregations = null; // clear aggregations & groups when selecting fields
35225
+ this.groupedBy = null;
35226
+ return this;
35227
+ }
35228
+ groupBy(...groupBy) {
35229
+ this.groupedBy = groupBy;
35230
+ this.selected = null; // clear normal field selection when aggregating
35231
+ return this;
35232
+ }
35233
+ aggregate(...aggregations) {
35234
+ this.aggregations = aggregations;
35235
+ return this;
35236
+ }
35237
+ where(filter) {
35238
+ this.filter = filter;
35239
+ return this;
35240
+ }
35241
+ orderBy(...fieldSorts) {
35242
+ this.sort = fieldSorts;
35243
+ return this;
35244
+ }
35245
+ limit(startIndex, count) {
35246
+ this.startIndex = startIndex;
35247
+ this.count = count;
35248
+ return this;
35249
+ }
35250
+ }
35251
+
35252
+ class BaseCacheReader extends BaseReader {
35253
+ constructor(url, cacheActive = true) {
35254
+ super(url);
35255
+ this.url = url;
35256
+ this.cacheActive = cacheActive;
35257
+ }
35258
+ setCacheActive(value) {
35259
+ this.cacheActive = value;
35260
+ }
35261
+ }
35262
+
35263
+ class BaseFileReader extends BaseCacheReader {
35818
35264
  getData() {
35819
35265
  throw new Error('not implemented');
35820
35266
  }
@@ -35878,7 +35324,7 @@ function parseCsv(text) {
35878
35324
  }
35879
35325
  class CsvReader extends BaseFileReader {
35880
35326
  getData() {
35881
- return fetchDataAsText(this.url).then(parseCsv);
35327
+ return fetchDataAsText(this.url, this.cacheActive).then(parseCsv);
35882
35328
  }
35883
35329
  }
35884
35330
 
@@ -35895,7 +35341,7 @@ function parseJson(text) {
35895
35341
  }
35896
35342
  class JsonReader extends BaseFileReader {
35897
35343
  getData() {
35898
- return fetchDataAsText(this.url).then(parseJson);
35344
+ return fetchDataAsText(this.url, this.cacheActive).then(parseJson);
35899
35345
  }
35900
35346
  }
35901
35347
 
@@ -35914,7 +35360,7 @@ function parseGeojson(text) {
35914
35360
  }
35915
35361
  class GeojsonReader extends BaseFileReader {
35916
35362
  getData() {
35917
- return fetchDataAsText(this.url).then(parseGeojson);
35363
+ return fetchDataAsText(this.url, this.cacheActive).then(parseGeojson);
35918
35364
  }
35919
35365
  }
35920
35366
 
@@ -35936,7 +35382,7 @@ function parseExcel(buffer) {
35936
35382
  }
35937
35383
  class ExcelReader extends BaseFileReader {
35938
35384
  getData() {
35939
- return fetchDataAsArrayBuffer(this.url).then(parseExcel);
35385
+ return fetchDataAsArrayBuffer(this.url, this.cacheActive).then(parseExcel);
35940
35386
  }
35941
35387
  }
35942
35388
 
@@ -35963,19 +35409,21 @@ function parseGml(text, namespace, version) {
35963
35409
  throw Error("Couldn't retrieve namespace url");
35964
35410
  }
35965
35411
  class GmlReader extends BaseFileReader {
35966
- constructor(url, namespace, version) {
35412
+ constructor(url, namespace, version, cacheActive = true) {
35967
35413
  super(url);
35414
+ this.url = url;
35968
35415
  this.namespace = namespace;
35969
35416
  this.version = version;
35417
+ this.cacheActive = cacheActive;
35970
35418
  }
35971
35419
  getData() {
35972
- return fetchDataAsText(this.url).then((text) => parseGml(text, this.namespace, this.version));
35420
+ return fetchDataAsText(this.url, this.cacheActive).then((text) => parseGml(text, this.namespace, this.version));
35973
35421
  }
35974
35422
  }
35975
35423
 
35976
- class WfsReader extends BaseReader {
35977
- constructor(url, wfsEndpoint, featureTypeName) {
35978
- super(url);
35424
+ class WfsReader extends BaseCacheReader {
35425
+ constructor(url, wfsEndpoint, featureTypeName, cacheActive) {
35426
+ super(url, cacheActive);
35979
35427
  this.endpoint = wfsEndpoint;
35980
35428
  this.featureTypeName = featureTypeName;
35981
35429
  this.version = this.endpoint.getVersion();
@@ -36030,9 +35478,9 @@ class WfsReader extends BaseReader {
36030
35478
  throw new Error('wfs.geojsongml.notsupported');
36031
35479
  }
36032
35480
  }
36033
- getData() {
36034
- if (this.aggregations || this.groupedBy) {
36035
- throw new Error(marker('wfs.aggregations.notsupported'));
35481
+ async getData(aggregation, groupedBy) {
35482
+ if (aggregation || groupedBy) {
35483
+ return { items: await this.getQueryData() };
36036
35484
  }
36037
35485
  const asJson = this.endpoint.supportsJson(this.featureTypeName);
36038
35486
  const attributes = this.selected ?? undefined;
@@ -36052,19 +35500,26 @@ class WfsReader extends BaseReader {
36052
35500
  // Direct update on string url to prevent encoding of +A and +D
36053
35501
  url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`;
36054
35502
  }
36055
- return fetchDataAsText(url).then((text) => asJson
35503
+ return fetchDataAsText(url, this.cacheActive).then((text) => asJson
36056
35504
  ? parseGeojson(text)
36057
35505
  : parseGml(text, this.featureTypeName, this.version));
36058
35506
  }
35507
+ async getQueryData() {
35508
+ const items = (await this.getData()).items;
35509
+ const jsonItems = getJsonDataItemsProxy(items);
35510
+ const query = generateSqlQuery(this.selected, this.filter, this.sort, this.startIndex, this.count, this.groupedBy, this.aggregations);
35511
+ const result = await import('alasql').then((module) => module.default(query, [jsonItems]));
35512
+ return result.map(jsonToGeojsonFeature);
35513
+ }
36059
35514
  load() {
36060
35515
  // Nothing to load for Wfs
36061
35516
  }
36062
35517
  async read() {
36063
- return (await this.getData()).items;
35518
+ return (await this.getData(this.aggregations, this.groupedBy)).items;
36064
35519
  }
36065
35520
  }
36066
35521
 
36067
- async function openDataset(url, typeHint, options) {
35522
+ async function openDataset(url, typeHint, options, cacheActive) {
36068
35523
  const fileType = await inferDatasetType(url, typeHint);
36069
35524
  let reader;
36070
35525
  try {
@@ -36088,6 +35543,7 @@ async function openDataset(url, typeHint, options) {
36088
35543
  reader = await WfsReader.createReader(url, options.wfsFeatureType);
36089
35544
  break;
36090
35545
  }
35546
+ reader.setCacheActive(cacheActive);
36091
35547
  reader.load();
36092
35548
  return reader;
36093
35549
  }
@@ -36104,8 +35560,8 @@ async function openDataset(url, typeHint, options) {
36104
35560
  * 2. otherwise, look for a Content-Type header in the response with a supported mime type
36105
35561
  * 3. if no valid mime type was found, look for an explicit file extension in the url (.csv, .geojson etc.)
36106
35562
  */
36107
- async function readDataset(url, typeHint, options) {
36108
- const reader = await openDataset(url, typeHint, options);
35563
+ async function readDataset(url, typeHint, options, cacheActive = true) {
35564
+ const reader = await openDataset(url, typeHint, options, cacheActive);
36109
35565
  try {
36110
35566
  return await reader.read();
36111
35567
  }
@@ -36266,18 +35722,18 @@ class DataService {
36266
35722
  mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
36267
35723
  }));
36268
35724
  }
36269
- readAsGeoJson(link) {
36270
- return this.getDataset(link).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
35725
+ readAsGeoJson(link, cacheActive) {
35726
+ return this.getDataset(link, cacheActive).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
36271
35727
  type: 'FeatureCollection',
36272
35728
  features,
36273
35729
  })));
36274
35730
  }
36275
- getDataset(link) {
35731
+ getDataset(link, cacheActive) {
36276
35732
  if (link.type === 'service' && link.accessServiceProtocol === 'wfs') {
36277
35733
  const wfsUrlEndpoint = this.proxy.getProxiedUrl(link.url.toString());
36278
35734
  return from(openDataset(wfsUrlEndpoint, 'wfs', {
36279
35735
  wfsFeatureType: link.name,
36280
- }));
35736
+ }, cacheActive));
36281
35737
  }
36282
35738
  else if (link.type === 'download') {
36283
35739
  const linkProxifiedUrl = this.proxy.getProxiedUrl(link.url.toString());
@@ -36285,18 +35741,18 @@ class DataService {
36285
35741
  const supportedType = SupportedTypes.indexOf(format) > -1
36286
35742
  ? format
36287
35743
  : undefined;
36288
- return from(openDataset(linkProxifiedUrl, supportedType)).pipe();
35744
+ return from(openDataset(linkProxifiedUrl, supportedType, undefined, cacheActive)).pipe();
36289
35745
  }
36290
35746
  else if (link.type === 'service' &&
36291
35747
  link.accessServiceProtocol === 'esriRest') {
36292
35748
  const url = this.getDownloadUrlFromEsriRest(link.url.toString(), 'geojson');
36293
- return from(openDataset(url, 'geojson')).pipe();
35749
+ return from(openDataset(url, 'geojson', undefined, cacheActive)).pipe();
36294
35750
  }
36295
35751
  else if (link.type === 'service' &&
36296
35752
  link.accessServiceProtocol === 'ogcFeatures') {
36297
35753
  return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(switchMap$1((collectionInfo) => {
36298
35754
  const geojsonUrl = collectionInfo.jsonDownloadLink;
36299
- return openDataset(geojsonUrl, 'geojson');
35755
+ return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
36300
35756
  }), tap$1((url) => {
36301
35757
  if (url === null) {
36302
35758
  throw new Error('wfs.geojsongml.notsupported');
@@ -36861,6 +36317,7 @@ class ChartViewComponent {
36861
36317
  this.dataService = dataService;
36862
36318
  this.changeDetector = changeDetector;
36863
36319
  this.translateService = translateService;
36320
+ this.cacheActive = true;
36864
36321
  this.currentLink$ = new BehaviorSubject(null);
36865
36322
  this.aggregation$ = new BehaviorSubject('sum');
36866
36323
  this.xProperty$ = new BehaviorSubject(undefined);
@@ -36890,7 +36347,7 @@ class ChartViewComponent {
36890
36347
  this.dataset$ = this.currentLink$.pipe(filter((link) => !!link), switchMap$1((link) => {
36891
36348
  this.error = null;
36892
36349
  this.loading = true;
36893
- return this.dataService.getDataset(link).pipe(catchError((error) => {
36350
+ return this.dataService.getDataset(link, this.cacheActive).pipe(catchError((error) => {
36894
36351
  this.handleError(error);
36895
36352
  return EMPTY;
36896
36353
  }));
@@ -36959,7 +36416,7 @@ class ChartViewComponent {
36959
36416
  this.changeDetector.detectChanges();
36960
36417
  }
36961
36418
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
36962
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.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>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36419
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.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>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36963
36420
  }
36964
36421
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, decorators: [{
36965
36422
  type: Component,
@@ -36971,7 +36428,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
36971
36428
  LoadingMaskComponent,
36972
36429
  PopupAlertComponent,
36973
36430
  ], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.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>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
36974
- }], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { link: [{
36431
+ }], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
36432
+ type: Input
36433
+ }], link: [{
36975
36434
  type: Input
36976
36435
  }], aggregation: [{
36977
36436
  type: Input
@@ -37144,6 +36603,7 @@ class TableViewComponent {
37144
36603
  constructor(dataService, translateService) {
37145
36604
  this.dataService = dataService;
37146
36605
  this.translateService = translateService;
36606
+ this.cacheActive = true;
37147
36607
  this.currentLink$ = new BehaviorSubject(null);
37148
36608
  this.loading = false;
37149
36609
  this.error = null;
@@ -37161,7 +36621,7 @@ class TableViewComponent {
37161
36621
  }), startWith(undefined), shareReplay(1));
37162
36622
  }
37163
36623
  getDatasetReader(link) {
37164
- return this.dataService.getDataset(link);
36624
+ return this.dataService.getDataset(link, this.cacheActive);
37165
36625
  }
37166
36626
  onTableSelect(event) {
37167
36627
  console.log(event);
@@ -37184,7 +36644,7 @@ class TableViewComponent {
37184
36644
  this.loading = false;
37185
36645
  }
37186
36646
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, deps: [{ token: DataService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
37187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36647
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { cacheActive: "cacheActive", link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37188
36648
  }
37189
36649
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, decorators: [{
37190
36650
  type: Component,
@@ -37195,7 +36655,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37195
36655
  PopupAlertComponent,
37196
36656
  TranslateModule,
37197
36657
  ], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.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" }]
37198
- }], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { link: [{
36658
+ }], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
36659
+ type: Input
36660
+ }], link: [{
37199
36661
  type: Input
37200
36662
  }] } });
37201
36663
 
@@ -37216,6 +36678,13 @@ class MdViewFacade {
37216
36678
  this.metadata$ = this.store.pipe(select(getMetadata), filter((md) => !!md));
37217
36679
  this.featureCatalog$ = this.store.pipe(select(getFeatureCatalog));
37218
36680
  this.isIncomplete$ = this.store.pipe(select(getMetadataIsIncomplete), filter((incomplete) => incomplete !== null));
36681
+ this.isHighUpdateFrequency$ = this.metadata$.pipe(map$1((record) => {
36682
+ if (record.updateFrequency instanceof Object) {
36683
+ return (record.updateFrequency.per === 'day' &&
36684
+ record.updateFrequency.updatedTimes > 1);
36685
+ }
36686
+ return record.updateFrequency === 'continual';
36687
+ }));
37219
36688
  this.error$ = this.store.pipe(select(getMetadataError));
37220
36689
  this.related$ = this.store.pipe(select(getRelated));
37221
36690
  this.chartConfig$ = this.store.pipe(select(getChartConfig));
@@ -37901,10 +37370,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37901
37370
  }] } });
37902
37371
 
37903
37372
  class DataViewComponent {
37373
+ set exceedsLimit(value) {
37374
+ this.excludeWfs$.next(value);
37375
+ }
37904
37376
  constructor(mdViewFacade) {
37905
37377
  this.mdViewFacade = mdViewFacade;
37906
37378
  this.displaySource = true;
37907
37379
  this.chartConfig$ = new BehaviorSubject(null);
37380
+ this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map$1((highF) => !highF));
37381
+ this.hidePreview = false;
37382
+ this.excludeWfs$ = new BehaviorSubject(false);
37908
37383
  this.compatibleDataLinks$ = combineLatest([
37909
37384
  this.mdViewFacade.dataLinks$,
37910
37385
  this.mdViewFacade.geoDataLinks$,
@@ -37915,7 +37390,7 @@ class DataViewComponent {
37915
37390
  }));
37916
37391
  this.dropdownChoices$ = this.compatibleDataLinks$.pipe(tap$1((links) => {
37917
37392
  if (links.indexOf(this.selectedLink$.value) === -1) {
37918
- this.selectedLink$.next(links[0]);
37393
+ this.selectLink(JSON.stringify(links[0]));
37919
37394
  }
37920
37395
  }), map$1((links) => links.map((link) => ({
37921
37396
  label: getLinkLabel(link),
@@ -37929,10 +37404,20 @@ class DataViewComponent {
37929
37404
  selectLink(linkAsString) {
37930
37405
  const link = JSON.parse(linkAsString);
37931
37406
  link.url = new URL(link.url);
37932
- this.selectedLink$.next(link);
37407
+ this.excludeWfs$
37408
+ .pipe(tap$1((excludeWfs) => {
37409
+ this.hidePreview =
37410
+ link['accessServiceProtocol'] === 'wfs' &&
37411
+ excludeWfs &&
37412
+ this.mode === 'chart'
37413
+ ? true
37414
+ : false;
37415
+ this.selectedLink$.next(link);
37416
+ }))
37417
+ .subscribe();
37933
37418
  }
37934
37419
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
37935
- 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 [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\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: ["link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37420
+ 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 }); }
37936
37421
  }
37937
37422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
37938
37423
  type: Component,
@@ -37942,11 +37427,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37942
37427
  TableViewComponent,
37943
37428
  TranslateModule,
37944
37429
  ChartViewComponent,
37945
- ], 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 [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n" }]
37430
+ PopupAlertComponent,
37431
+ ], 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" }]
37946
37432
  }], ctorParameters: () => [{ type: MdViewFacade }], propDecorators: { mode: [{
37947
37433
  type: Input
37948
37434
  }], displaySource: [{
37949
37435
  type: Input
37436
+ }], exceedsLimit: [{
37437
+ type: Input
37950
37438
  }], chartConfig$: [{
37951
37439
  type: Output
37952
37440
  }] } });
@@ -38118,7 +37606,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38118
37606
  marker('map.dropdown.placeholder');
38119
37607
  marker('wfs.feature.limit');
38120
37608
  class MapViewComponent {
38121
- set excludeWfs(value) {
37609
+ set exceedsLimit(value) {
38122
37610
  this.excludeWfs$.next(value);
38123
37611
  }
38124
37612
  toggleLegend() {
@@ -38137,6 +37625,7 @@ class MapViewComponent {
38137
37625
  this.changeRef = changeRef;
38138
37626
  this.displaySource = true;
38139
37627
  this.excludeWfs$ = new BehaviorSubject(false);
37628
+ this.hidePreview = false;
38140
37629
  this.showLegend = true;
38141
37630
  this.legendExists = false;
38142
37631
  this.compatibleMapLinks$ = combineLatest([
@@ -38163,9 +37652,10 @@ class MapViewComponent {
38163
37652
  return of([]);
38164
37653
  }
38165
37654
  if (excludeWfs && link.accessServiceProtocol === 'wfs') {
38166
- this.error = 'wfs.feature.limit';
37655
+ this.hidePreview = true;
38167
37656
  return of([]);
38168
37657
  }
37658
+ this.hidePreview = false;
38169
37659
  this.loading = true;
38170
37660
  this.error = null;
38171
37661
  return this.getLayerFromLink(link).pipe(map$1((layer) => [layer]), catchError((e) => {
@@ -38235,7 +37725,8 @@ class MapViewComponent {
38235
37725
  link.accessServiceProtocol === 'esriRest' ||
38236
37726
  link.accessServiceProtocol === 'ogcFeatures')) ||
38237
37727
  link.type === 'download') {
38238
- return this.dataService.readAsGeoJson(link).pipe(map$1((data) => ({
37728
+ const cacheActive = true; // TODO implement whether should be true or false
37729
+ return this.dataService.readAsGeoJson(link, cacheActive).pipe(map$1((data) => ({
38239
37730
  type: 'geojson',
38240
37731
  data,
38241
37732
  })));
@@ -38246,7 +37737,7 @@ class MapViewComponent {
38246
37737
  this.selectedLinkIndex$.next(link);
38247
37738
  }
38248
37739
  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 }); }
38249
- 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 }); }
37740
+ 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 }); }
38250
37741
  }
38251
37742
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, decorators: [{
38252
37743
  type: Component,
@@ -38262,8 +37753,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38262
37753
  ExternalViewerButtonComponent,
38263
37754
  ButtonComponent,
38264
37755
  MapLegendComponent,
38265
- ], 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" }]
38266
- }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { excludeWfs: [{
37756
+ ], 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" }]
37757
+ }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { exceedsLimit: [{
38267
37758
  type: Input
38268
37759
  }], displaySource: [{
38269
37760
  type: Input
@@ -39096,9 +38587,8 @@ var WizardFieldType;
39096
38587
  (function (WizardFieldType) {
39097
38588
  WizardFieldType[WizardFieldType["TEXT"] = 0] = "TEXT";
39098
38589
  WizardFieldType[WizardFieldType["TEXT_AREA"] = 1] = "TEXT_AREA";
39099
- WizardFieldType[WizardFieldType["CHIPS"] = 2] = "CHIPS";
39100
- WizardFieldType[WizardFieldType["DATA_PICKER"] = 3] = "DATA_PICKER";
39101
- WizardFieldType[WizardFieldType["DROPDOWN"] = 4] = "DROPDOWN";
38590
+ WizardFieldType[WizardFieldType["DATA_PICKER"] = 2] = "DATA_PICKER";
38591
+ WizardFieldType[WizardFieldType["DROPDOWN"] = 3] = "DROPDOWN";
39102
38592
  })(WizardFieldType || (WizardFieldType = {}));
39103
38593
 
39104
38594
  class WizardService {
@@ -39220,9 +38710,6 @@ class WizardFieldComponent {
39220
38710
  case WizardFieldType.TEXT: {
39221
38711
  return data || '';
39222
38712
  }
39223
- case WizardFieldType.CHIPS: {
39224
- return data ? JSON.parse(data) : [];
39225
- }
39226
38713
  case WizardFieldType.TEXT_AREA: {
39227
38714
  return data || '';
39228
38715
  }
@@ -39252,10 +38739,6 @@ class WizardFieldComponent {
39252
38739
  this.initializeTextInputListener();
39253
38740
  break;
39254
38741
  }
39255
- case WizardFieldType.CHIPS: {
39256
- this.initializeChipsListener();
39257
- break;
39258
- }
39259
38742
  case WizardFieldType.TEXT_AREA: {
39260
38743
  this.initializeTextAreaListener();
39261
38744
  return;
@@ -39275,11 +38758,6 @@ class WizardFieldComponent {
39275
38758
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
39276
38759
  }));
39277
38760
  }
39278
- initializeChipsListener() {
39279
- this.subs.add(this.chips.itemsChange.subscribe((items) => {
39280
- this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, JSON.stringify(items));
39281
- }));
39282
- }
39283
38761
  initializeTextAreaListener() {
39284
38762
  this.subs.add(this.textArea.valueChange.subscribe((value) => {
39285
38763
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
@@ -39313,7 +38791,7 @@ class WizardFieldComponent {
39313
38791
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39314
38792
  },
39315
38793
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39316
- ], 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 }); }
38794
+ ], 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 }); }
39317
38795
  }
39318
38796
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WizardFieldComponent, decorators: [{
39319
38797
  type: Component,
@@ -39325,15 +38803,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39325
38803
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39326
38804
  },
39327
38805
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39328
- ], 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"] }]
38806
+ ], 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"] }]
39329
38807
  }], ctorParameters: () => [{ type: WizardService }, { type: i0.ChangeDetectorRef }], propDecorators: { wizardFieldConfig: [{
39330
38808
  type: Input
39331
38809
  }], searchText: [{
39332
38810
  type: ViewChild,
39333
38811
  args: ['searchText']
39334
- }], chips: [{
39335
- type: ViewChild,
39336
- args: ['chips']
39337
38812
  }], textArea: [{
39338
38813
  type: ViewChild,
39339
38814
  args: ['textArea']
@@ -39640,7 +39115,7 @@ class GenericKeywordsComponent {
39640
39115
  provideIcons({
39641
39116
  matWarningAmberOutline,
39642
39117
  }),
39643
- ], 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 }); }
39118
+ ], 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 }); }
39644
39119
  }
39645
39120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
39646
39121
  type: Component,
@@ -40258,7 +39733,7 @@ class FormFieldContactsForResourceComponent {
40258
39733
  provideNgIconsConfig({
40259
39734
  size: '1.5rem',
40260
39735
  }),
40261
- ], 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 }); }
39736
+ ], 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", "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 }); }
40262
39737
  }
40263
39738
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
40264
39739
  type: Component,
@@ -40356,7 +39831,7 @@ class FormFieldContactsComponent {
40356
39831
  this.subscription.unsubscribe();
40357
39832
  }
40358
39833
  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 }); }
40359
- 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 }); }
39834
+ 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 }); }
40360
39835
  }
40361
39836
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, decorators: [{
40362
39837
  type: Component,
@@ -40705,7 +40180,7 @@ class OnlineServiceResourceInputComponent {
40705
40180
  provideNgIconsConfig({
40706
40181
  size: '1.5em',
40707
40182
  }),
40708
- ], 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 }); }
40183
+ ], 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 }); }
40709
40184
  }
40710
40185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
40711
40186
  type: Component,
@@ -41977,5 +41452,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41977
41452
  * Generated bundle index. Do not edit.
41978
41453
  */
41979
41454
 
41980
- 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 };
41455
+ 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 };
41981
41456
  //# sourceMappingURL=geonetwork-ui.mjs.map