geonetwork-ui 2.4.3 → 2.5.0-dev.1103960a3

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 (207) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +20 -17
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +22 -2
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  11. 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 -1
  12. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  14. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  15. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  16. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  17. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  18. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  19. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  20. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  21. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  22. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  23. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  24. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +3 -3
  25. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  26. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  27. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  28. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  29. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  30. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  31. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  32. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  33. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  34. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  35. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  36. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  37. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  38. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  39. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  40. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  41. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  42. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +9 -7
  43. package/esm2022/translations/de.json +4 -76
  44. package/esm2022/translations/en.json +4 -76
  45. package/esm2022/translations/es.json +3 -75
  46. package/esm2022/translations/fr.json +16 -88
  47. package/esm2022/translations/it.json +21 -92
  48. package/esm2022/translations/nl.json +3 -75
  49. package/esm2022/translations/pt.json +3 -75
  50. package/fesm2022/geonetwork-ui.mjs +346 -844
  51. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  52. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  53. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  54. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  55. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  56. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  57. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  58. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  59. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  60. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  61. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  62. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  63. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  64. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  65. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  66. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  67. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  68. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  69. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  70. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  71. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  72. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  73. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  74. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  75. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  76. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  77. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  78. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  79. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  80. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  81. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  82. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  83. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  84. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  85. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  86. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  87. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  88. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  89. package/libs/ui/inputs/src/index.d.ts +0 -1
  90. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  91. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  92. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  93. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  94. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  95. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  96. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  97. package/libs/ui/widgets/src/index.d.ts +0 -1
  98. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  99. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  100. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  101. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  102. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  103. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  104. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  105. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  106. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  107. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  108. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  109. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  110. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  111. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  112. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  113. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  114. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  115. package/package.json +1 -1
  116. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  117. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  118. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +22 -16
  119. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +41 -2
  120. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  121. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  122. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +75 -0
  123. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  124. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
  125. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  126. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  127. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +1 -0
  128. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  129. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  130. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  131. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  132. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  133. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  134. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  135. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  136. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  137. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  138. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  139. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  140. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  141. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  142. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +2 -2
  143. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  144. package/src/libs/ui/inputs/src/index.ts +0 -1
  145. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  146. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  147. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  148. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  149. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  150. package/src/libs/ui/widgets/src/index.ts +0 -1
  151. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  152. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  153. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  154. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  155. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  156. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  157. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  158. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  159. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  160. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  161. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  162. package/src/libs/util/data-fetcher/src/lib/utils.ts +36 -32
  163. package/translations/de.json +4 -76
  164. package/translations/en.json +4 -76
  165. package/translations/es.json +3 -75
  166. package/translations/fr.json +16 -88
  167. package/translations/it.json +21 -92
  168. package/translations/nl.json +3 -75
  169. package/translations/pt.json +3 -75
  170. package/translations/sk.json +3 -75
  171. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  172. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  173. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  174. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  175. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  176. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  177. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  178. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  179. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  180. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  181. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  182. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  183. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  184. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  185. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  186. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  187. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  188. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  189. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  190. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  191. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  192. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  193. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  194. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  195. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  196. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  197. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  198. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  199. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  200. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  201. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  202. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  203. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  204. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  205. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  206. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  207. 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';
@@ -18621,8 +18620,6 @@ var de = {
18621
18620
  "chart.type.lineSmooth": "Geglättes Liniendiagramm",
18622
18621
  "chart.type.pie": "Kreisdiagramm",
18623
18622
  "dashboard.catalog.allRecords": "Metadatenkatalog",
18624
- "dashboard.catalog.contacts": "Kontakte",
18625
- "dashboard.catalog.thesaurus": "Thesaurus",
18626
18623
  "dashboard.createRecord": "Neuer Eintrag",
18627
18624
  "dashboard.importRecord": "",
18628
18625
  "dashboard.importRecord.importExternal": "",
@@ -18635,29 +18632,10 @@ var de = {
18635
18632
  "dashboard.records.myDraft": "Meine Entwürfe",
18636
18633
  "dashboard.records.myRecords": "Meine Datensätze",
18637
18634
  "dashboard.records.search": "Suche nach \"{searchText}\"",
18638
- "dashboard.records.templates": "Vorlagen",
18639
18635
  "dashboard.records.userDetail": "Name",
18640
18636
  "dashboard.records.userEmail": "E-Mail",
18641
18637
  "dashboard.records.username": "Benutzername",
18642
18638
  "dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
18643
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
18644
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
18645
- "datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
18646
- "datafeeder.analysisProgressBar.subtitle": "Die Analyse kann einige Minuten dauern. Bitte warten Sie.",
18647
- "datafeeder.analysisProgressBar.title": "Analyse in Bearbeitung",
18648
- "datafeeder.datasetValidation.datasetInformation": "Der bereitgestellte Datensatz enthält {number} Elemente",
18649
- "datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
18650
- "datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
18651
- "datafeeder.datasetValidation.unknown": " - ",
18652
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
18653
- "datafeeder.datasetValidationCsv.lineNumbers": "",
18654
- "datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
18655
- "datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
18656
- "datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
18657
- "datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
18658
- "datafeeder.form.tags": "Wählen Sie einen oder mehrere Tage aus, die zu Ihrem Datensatz passen",
18659
- "datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
18660
- "datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
18661
18639
  "datafeeder.month.april": "April",
18662
18640
  "datafeeder.month.august": "August",
18663
18641
  "datafeeder.month.december": "Dezember",
@@ -18670,59 +18648,6 @@ var de = {
18670
18648
  "datafeeder.month.november": "November",
18671
18649
  "datafeeder.month.october": "Oktober",
18672
18650
  "datafeeder.month.september": "September",
18673
- "datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist.",
18674
- "datafeeder.publish.illustration.title": "Ein weiterer Datensatz \n zum Veröffentlichen?",
18675
- "datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
18676
- "datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
18677
- "datafeeder.publish.upload": "Jetzt hochladen",
18678
- "datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
18679
- "datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
18680
- "datafeeder.publishSuccess.mapViewer": "Kartenviewer",
18681
- "datafeeder.publishSuccess.ogcFeature": "",
18682
- "datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
18683
- "datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
18684
- "datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
18685
- "datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
18686
- "datafeeder.summarizePage.previous": "Zurück",
18687
- "datafeeder.summarizePage.submit": "Absenden",
18688
- "datafeeder.summarizePage.title": "Sie sind fast fertig...",
18689
- "datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
18690
- "datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
18691
- "datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen geografischen Datensatz enthält",
18692
- "datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
18693
- "datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
18694
- "datafeeder.upload.error.subtitle.fileSize": "Beachten Sie: Maximale Dateigröße {size} MB",
18695
- "datafeeder.upload.error.title.analysis": "Fehler während der Datensatzanalyse",
18696
- "datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
18697
- "datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
18698
- "datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
18699
- "datafeeder.upload.error.title.fileSize": "Die Dateigröße ist zu groß",
18700
- "datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
18701
- "datafeeder.upload.illustration.enrichment": "Anreicherung",
18702
- "datafeeder.upload.illustration.import": "Import",
18703
- "datafeeder.upload.illustration.title": "Das Hinzufügen von Daten \n war noch nie so einfach",
18704
- "datafeeder.upload.illustration.validation": "Validierung",
18705
- "datafeeder.upload.illustration.verification": "Überprüfung",
18706
- "datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
18707
- "datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
18708
- "datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
18709
- "datafeeder.upload.uploadButton": "Hochladen",
18710
- "datafeeder.validation.csv.delimiter": "",
18711
- "datafeeder.validation.csv.delimiter.comma": "",
18712
- "datafeeder.validation.csv.delimiter.semicolon": "",
18713
- "datafeeder.validation.csv.lat.field": "",
18714
- "datafeeder.validation.csv.lng.field": "",
18715
- "datafeeder.validation.csv.quote.double": "",
18716
- "datafeeder.validation.csv.quote.none": "",
18717
- "datafeeder.validation.csv.quote.simple": "",
18718
- "datafeeder.validation.csv.quoteChar": "",
18719
- "datafeeder.validation.encoding": "Codierung",
18720
- "datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
18721
- "datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
18722
- "datafeeder.validation.projection": "Raumbezugssystem:",
18723
- "datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem aus",
18724
- "datafeeder.validation.sample.title": "Und eine Beispielentität aus dem Datensatz",
18725
- "datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
18726
18651
  "datafeeder.wizardSummarize.createdAt": "Erstellt am",
18727
18652
  "datafeeder.wizardSummarize.scale": "Maßstab",
18728
18653
  "datahub.header.datasets": "Datensätze",
@@ -19026,9 +18951,10 @@ var de = {
19026
18951
  "record.action.download": "Herunterladen",
19027
18952
  "record.action.duplicate": "",
19028
18953
  "record.action.duplicating": "",
18954
+ "record.action.rollback": "",
19029
18955
  "record.action.view": "Anzeigen",
19030
18956
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
19031
- "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",
19032
18958
  "record.metadata.about": "Beschreibung",
19033
18959
  "record.metadata.api": "API",
19034
18960
  "record.metadata.api.form.closeButton": "Schließen",
@@ -19148,6 +19074,8 @@ var de = {
19148
19074
  "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
19149
19075
  "search.field.any.placeholder": "Suche Datensätze ...",
19150
19076
  "search.field.sortBy": "Sortieren nach:",
19077
+ "search.filters.availableServices.download": "",
19078
+ "search.filters.availableServices.view": "",
19151
19079
  "search.filters.changeDate": "Letzte Aktualisierung",
19152
19080
  "search.filters.clear": "Zurücksetzen",
19153
19081
  "search.filters.contact": "Kontakte",
@@ -19203,7 +19131,6 @@ var de = {
19203
19131
  "tooltip.url.open": "URL öffnen",
19204
19132
  "ui.readLess": "Weniger lesen",
19205
19133
  "ui.readMore": "Weiterlesen",
19206
- "wfs.aggregations.notsupported": "",
19207
19134
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
19208
19135
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
19209
19136
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
@@ -19238,8 +19165,6 @@ var en = {
19238
19165
  "chart.type.lineSmooth": "smooth line chart",
19239
19166
  "chart.type.pie": "pie chart",
19240
19167
  "dashboard.catalog.allRecords": "Datasets",
19241
- "dashboard.catalog.contacts": "Contacts",
19242
- "dashboard.catalog.thesaurus": "Thesaurus",
19243
19168
  "dashboard.createRecord": "New dataset",
19244
19169
  "dashboard.importRecord": "Import",
19245
19170
  "dashboard.importRecord.importExternal": "Import an external file",
@@ -19252,29 +19177,10 @@ var en = {
19252
19177
  "dashboard.records.myDraft": "My drafts",
19253
19178
  "dashboard.records.myRecords": "My datasets",
19254
19179
  "dashboard.records.search": "Search for \"{searchText}\"",
19255
- "dashboard.records.templates": "Templates",
19256
19180
  "dashboard.records.userDetail": "Name",
19257
19181
  "dashboard.records.userEmail": "Email",
19258
19182
  "dashboard.records.username": "Username",
19259
19183
  "dashboard.records.users": "{count, plural, =1{user} other{users}}",
19260
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
19261
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
19262
- "datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
19263
- "datafeeder.analysisProgressBar.subtitle": "The analysis may take several minutes, please wait.",
19264
- "datafeeder.analysisProgressBar.title": "Analysis in progress",
19265
- "datafeeder.datasetValidation.datasetInformation": "The provided dataset contains {number} entities",
19266
- "datafeeder.datasetValidation.submitButton": "OK, my data is correct",
19267
- "datafeeder.datasetValidation.title": "Make sure your data is correct",
19268
- "datafeeder.datasetValidation.unknown": " - ",
19269
- "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",
19270
- "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
19271
- "datafeeder.form.abstract": "How would you describe your dataset?",
19272
- "datafeeder.form.datepicker": "Do you know when the dataset was created?",
19273
- "datafeeder.form.description": "Finally, please describe the process used to create the dataset",
19274
- "datafeeder.form.dropdown": "For which scale was it created?",
19275
- "datafeeder.form.tags": "Select one or more tags that fit your dataset",
19276
- "datafeeder.form.title": "Give your dataset the best title",
19277
- "datafeeder.formsPage.title": "Tell us more about your dataset",
19278
19184
  "datafeeder.month.april": "April",
19279
19185
  "datafeeder.month.august": "August",
19280
19186
  "datafeeder.month.december": "December",
@@ -19287,59 +19193,6 @@ var en = {
19287
19193
  "datafeeder.month.november": "November",
19288
19194
  "datafeeder.month.october": "October",
19289
19195
  "datafeeder.month.september": "September",
19290
- "datafeeder.publish.hint": "You can safely exit this page, you will be notified when the process is over",
19291
- "datafeeder.publish.illustration.title": "Another dataset \n to publish?",
19292
- "datafeeder.publish.subtitle": "Publishing may take several minutes.",
19293
- "datafeeder.publish.title": "Thank you! \n Your dataset is being published",
19294
- "datafeeder.publish.upload": "Upload it now",
19295
- "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
19296
- "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
19297
- "datafeeder.publishSuccess.mapViewer": "Map viewer",
19298
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
19299
- "datafeeder.publishSuccess.subtitle": "View your data in:",
19300
- "datafeeder.publishSuccess.title": "Congratulations! \n Your dataset has been published",
19301
- "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
19302
- "datafeeder.summarizePage.illustration": "No mistake? Let's go!",
19303
- "datafeeder.summarizePage.previous": "Previous",
19304
- "datafeeder.summarizePage.submit": "Submit",
19305
- "datafeeder.summarizePage.title": "You're almost there...",
19306
- "datafeeder.upload.acceptedFormats": "Accepted file formats:",
19307
- "datafeeder.upload.checkboxLabel": "I hold the rights to publish this dataset",
19308
- "datafeeder.upload.error.subtitle.analysis": "Check that the file contains a valid geospatial dataset",
19309
- "datafeeder.upload.error.subtitle.cantOpenFile": "Please check that the file is valid",
19310
- "datafeeder.upload.error.subtitle.fileFormat": "Remember: only SHP",
19311
- "datafeeder.upload.error.subtitle.fileSize": "Remember: {size} MB maximum",
19312
- "datafeeder.upload.error.title.analysis": "Error during the dataset analysis",
19313
- "datafeeder.upload.error.title.cantOpenFile": "Error while opening the file",
19314
- "datafeeder.upload.error.title.fileFormat": "The selected file format is not supported",
19315
- "datafeeder.upload.error.title.fileHasntSelected": "No file selected",
19316
- "datafeeder.upload.error.title.fileSize": "The file size is too large",
19317
- "datafeeder.upload.error.title.noRightsToSendData": "You are not allowed to publish this dataset",
19318
- "datafeeder.upload.illustration.enrichment": "Enrichment",
19319
- "datafeeder.upload.illustration.import": "Import",
19320
- "datafeeder.upload.illustration.title": "Adding data \n has never been easier",
19321
- "datafeeder.upload.illustration.validation": "Validation",
19322
- "datafeeder.upload.illustration.verification": "Verification",
19323
- "datafeeder.upload.inputLabel": "Import your file",
19324
- "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
19325
- "datafeeder.upload.title": "Upload your dataset",
19326
- "datafeeder.upload.uploadButton": "Upload",
19327
- "datafeeder.validation.csv.delimiter": "Delimiter",
19328
- "datafeeder.validation.csv.delimiter.comma": "Comma",
19329
- "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
19330
- "datafeeder.validation.csv.lat.field": "Latitude column",
19331
- "datafeeder.validation.csv.lng.field": "Longitude column",
19332
- "datafeeder.validation.csv.quote.double": "Double quote",
19333
- "datafeeder.validation.csv.quote.none": "None",
19334
- "datafeeder.validation.csv.quote.simple": "Single quote",
19335
- "datafeeder.validation.csv.quoteChar": "Quote separator",
19336
- "datafeeder.validation.encoding": "Encoding",
19337
- "datafeeder.validation.extent.title": "Here is the dataset extent",
19338
- "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
19339
- "datafeeder.validation.projection": "Spatial reference system:",
19340
- "datafeeder.validation.projection.unknown": "Choose a spatial reference system",
19341
- "datafeeder.validation.sample.title": "And a sample entity from the dataset",
19342
- "datafeeder.wizard.emptyRequiredValuesMessage": "Please fill in mandatory fields",
19343
19196
  "datafeeder.wizardSummarize.createdAt": "Created at",
19344
19197
  "datafeeder.wizardSummarize.scale": "Scale",
19345
19198
  "datahub.header.datasets": "Datasets",
@@ -19643,9 +19496,10 @@ var en = {
19643
19496
  "record.action.download": "Download",
19644
19497
  "record.action.duplicate": "Duplicate",
19645
19498
  "record.action.duplicating": "Duplicating...",
19499
+ "record.action.rollback": "Rollback",
19646
19500
  "record.action.view": "View",
19647
19501
  "record.externalViewer.open": "Open in the external map viewer",
19648
- "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",
19649
19503
  "record.metadata.about": "Description",
19650
19504
  "record.metadata.api": "API",
19651
19505
  "record.metadata.api.form.closeButton": "Close",
@@ -19765,6 +19619,8 @@ var en = {
19765
19619
  "search.error.recordNotFound": "The dataset with identifier \"{ id }\" could not be found.",
19766
19620
  "search.field.any.placeholder": "Search datasets ...",
19767
19621
  "search.field.sortBy": "Sort by:",
19622
+ "search.filters.availableServices.download": "",
19623
+ "search.filters.availableServices.view": "",
19768
19624
  "search.filters.changeDate": "Updated",
19769
19625
  "search.filters.clear": "Reset",
19770
19626
  "search.filters.contact": "Contacts",
@@ -19820,7 +19676,6 @@ var en = {
19820
19676
  "tooltip.url.open": "Open URL",
19821
19677
  "ui.readLess": "Read less",
19822
19678
  "ui.readMore": "Read more",
19823
- "wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
19824
19679
  "wfs.feature.limit": "Too many features to display the WFS layer!",
19825
19680
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
19826
19681
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
@@ -19855,8 +19710,6 @@ var es = {
19855
19710
  "chart.type.lineSmooth": "gráfico de líneas suave",
19856
19711
  "chart.type.pie": "gráfico circular",
19857
19712
  "dashboard.catalog.allRecords": "",
19858
- "dashboard.catalog.contacts": "",
19859
- "dashboard.catalog.thesaurus": "",
19860
19713
  "dashboard.createRecord": "",
19861
19714
  "dashboard.importRecord": "",
19862
19715
  "dashboard.importRecord.importExternal": "",
@@ -19869,29 +19722,10 @@ var es = {
19869
19722
  "dashboard.records.myDraft": "Mis borradores",
19870
19723
  "dashboard.records.myRecords": "Mis Registros",
19871
19724
  "dashboard.records.search": "Buscar \"{searchText}\"",
19872
- "dashboard.records.templates": "",
19873
19725
  "dashboard.records.userDetail": "",
19874
19726
  "dashboard.records.userEmail": "",
19875
19727
  "dashboard.records.username": "",
19876
19728
  "dashboard.records.users": "",
19877
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
19878
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
19879
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
19880
- "datafeeder.analysisProgressBar.subtitle": "",
19881
- "datafeeder.analysisProgressBar.title": "",
19882
- "datafeeder.datasetValidation.datasetInformation": "",
19883
- "datafeeder.datasetValidation.submitButton": "",
19884
- "datafeeder.datasetValidation.title": "",
19885
- "datafeeder.datasetValidation.unknown": "",
19886
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
19887
- "datafeeder.datasetValidationCsv.lineNumbers": "",
19888
- "datafeeder.form.abstract": "",
19889
- "datafeeder.form.datepicker": "",
19890
- "datafeeder.form.description": "",
19891
- "datafeeder.form.dropdown": "",
19892
- "datafeeder.form.tags": "",
19893
- "datafeeder.form.title": "",
19894
- "datafeeder.formsPage.title": "",
19895
19729
  "datafeeder.month.april": "",
19896
19730
  "datafeeder.month.august": "",
19897
19731
  "datafeeder.month.december": "",
@@ -19904,59 +19738,6 @@ var es = {
19904
19738
  "datafeeder.month.november": "",
19905
19739
  "datafeeder.month.october": "",
19906
19740
  "datafeeder.month.september": "",
19907
- "datafeeder.publish.hint": "",
19908
- "datafeeder.publish.illustration.title": "",
19909
- "datafeeder.publish.subtitle": "",
19910
- "datafeeder.publish.title": "",
19911
- "datafeeder.publish.upload": "",
19912
- "datafeeder.publishSuccess.geonetworkRecord": "",
19913
- "datafeeder.publishSuccess.illustration.title": "",
19914
- "datafeeder.publishSuccess.mapViewer": "",
19915
- "datafeeder.publishSuccess.ogcFeature": "",
19916
- "datafeeder.publishSuccess.subtitle": "",
19917
- "datafeeder.publishSuccess.title": "",
19918
- "datafeeder.publishSuccess.uploadAnotherData": "",
19919
- "datafeeder.summarizePage.illustration": "",
19920
- "datafeeder.summarizePage.previous": "",
19921
- "datafeeder.summarizePage.submit": "",
19922
- "datafeeder.summarizePage.title": "",
19923
- "datafeeder.upload.acceptedFormats": "",
19924
- "datafeeder.upload.checkboxLabel": "",
19925
- "datafeeder.upload.error.subtitle.analysis": "",
19926
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
19927
- "datafeeder.upload.error.subtitle.fileFormat": "",
19928
- "datafeeder.upload.error.subtitle.fileSize": "",
19929
- "datafeeder.upload.error.title.analysis": "",
19930
- "datafeeder.upload.error.title.cantOpenFile": "",
19931
- "datafeeder.upload.error.title.fileFormat": "",
19932
- "datafeeder.upload.error.title.fileHasntSelected": "",
19933
- "datafeeder.upload.error.title.fileSize": "",
19934
- "datafeeder.upload.error.title.noRightsToSendData": "",
19935
- "datafeeder.upload.illustration.enrichment": "",
19936
- "datafeeder.upload.illustration.import": "",
19937
- "datafeeder.upload.illustration.title": "",
19938
- "datafeeder.upload.illustration.validation": "",
19939
- "datafeeder.upload.illustration.verification": "",
19940
- "datafeeder.upload.inputLabel": "",
19941
- "datafeeder.upload.maxFileSize": "",
19942
- "datafeeder.upload.title": "",
19943
- "datafeeder.upload.uploadButton": "",
19944
- "datafeeder.validation.csv.delimiter": "",
19945
- "datafeeder.validation.csv.delimiter.comma": "Coma",
19946
- "datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
19947
- "datafeeder.validation.csv.lat.field": "",
19948
- "datafeeder.validation.csv.lng.field": "",
19949
- "datafeeder.validation.csv.quote.double": "Comillas dobles",
19950
- "datafeeder.validation.csv.quote.none": "Ninguno",
19951
- "datafeeder.validation.csv.quote.simple": "Comillas simples",
19952
- "datafeeder.validation.csv.quoteChar": "",
19953
- "datafeeder.validation.encoding": "",
19954
- "datafeeder.validation.extent.title": "",
19955
- "datafeeder.validation.extent.title.unknown": "",
19956
- "datafeeder.validation.projection": "",
19957
- "datafeeder.validation.projection.unknown": "",
19958
- "datafeeder.validation.sample.title": "",
19959
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
19960
19741
  "datafeeder.wizardSummarize.createdAt": "",
19961
19742
  "datafeeder.wizardSummarize.scale": "",
19962
19743
  "datahub.header.datasets": "",
@@ -20260,6 +20041,7 @@ var es = {
20260
20041
  "record.action.download": "",
20261
20042
  "record.action.duplicate": "",
20262
20043
  "record.action.duplicating": "",
20044
+ "record.action.rollback": "",
20263
20045
  "record.action.view": "",
20264
20046
  "record.externalViewer.open": "",
20265
20047
  "record.feature.limit": "",
@@ -20382,6 +20164,8 @@ var es = {
20382
20164
  "search.error.recordNotFound": "",
20383
20165
  "search.field.any.placeholder": "",
20384
20166
  "search.field.sortBy": "",
20167
+ "search.filters.availableServices.download": "",
20168
+ "search.filters.availableServices.view": "",
20385
20169
  "search.filters.changeDate": "Última actualización",
20386
20170
  "search.filters.clear": "",
20387
20171
  "search.filters.contact": "",
@@ -20437,7 +20221,6 @@ var es = {
20437
20221
  "tooltip.url.open": "",
20438
20222
  "ui.readLess": "",
20439
20223
  "ui.readMore": "",
20440
- "wfs.aggregations.notsupported": "",
20441
20224
  "wfs.feature.limit": "",
20442
20225
  "wfs.featuretype.notfound": "",
20443
20226
  "wfs.geojsongml.notsupported": "",
@@ -20472,8 +20255,6 @@ var fr = {
20472
20255
  "chart.type.lineSmooth": "ligne lisse",
20473
20256
  "chart.type.pie": "camembert",
20474
20257
  "dashboard.catalog.allRecords": "Jeux de données",
20475
- "dashboard.catalog.contacts": "Annuaire",
20476
- "dashboard.catalog.thesaurus": "Thésaurus",
20477
20258
  "dashboard.createRecord": "Nouveau jeu de données",
20478
20259
  "dashboard.importRecord": "Importer",
20479
20260
  "dashboard.importRecord.importExternal": "Importer un jeu de données externe",
@@ -20486,29 +20267,10 @@ var fr = {
20486
20267
  "dashboard.records.myDraft": "Mes brouillons",
20487
20268
  "dashboard.records.myRecords": "Mes jeux de données",
20488
20269
  "dashboard.records.search": "Résultats pour \"{searchText}\"",
20489
- "dashboard.records.templates": "Modèles pré-remplis",
20490
20270
  "dashboard.records.userDetail": "Nom",
20491
20271
  "dashboard.records.userEmail": "Email",
20492
20272
  "dashboard.records.username": "Nom d'utilisateur",
20493
20273
  "dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
20494
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
20495
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
20496
- "datafeeder.analysisProgressBar.illustration.samplingData": "Échantillonnage \n des données",
20497
- "datafeeder.analysisProgressBar.subtitle": "L'analyse peut prendre plusieurs minutes, merci de patienter.",
20498
- "datafeeder.analysisProgressBar.title": "Analyse en cours",
20499
- "datafeeder.datasetValidation.datasetInformation": "Le jeu de données fourni contient {number} entités",
20500
- "datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
20501
- "datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
20502
- "datafeeder.datasetValidation.unknown": " - ",
20503
- "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é",
20504
- "datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
20505
- "datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
20506
- "datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
20507
- "datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
20508
- "datafeeder.form.dropdown": "Et pour quelle échelle ?",
20509
- "datafeeder.form.tags": "Choisissez un ou plusieurs mots-clés correspondant à vos données",
20510
- "datafeeder.form.title": "Donnez un titre à votre jeu de données",
20511
- "datafeeder.formsPage.title": "Dites-nous en plus sur ces données",
20512
20274
  "datafeeder.month.april": "Avril",
20513
20275
  "datafeeder.month.august": "Août",
20514
20276
  "datafeeder.month.december": "Décembre",
@@ -20521,59 +20283,6 @@ var fr = {
20521
20283
  "datafeeder.month.november": "Novembre",
20522
20284
  "datafeeder.month.october": "Octobre",
20523
20285
  "datafeeder.month.september": "Septembre",
20524
- "datafeeder.publish.hint": "Vous pouvez quitter cette page en toute sécurité, vous serez prévenus quand le processus sera terminé",
20525
- "datafeeder.publish.illustration.title": "Une autre donnée \n à publier ?",
20526
- "datafeeder.publish.subtitle": "La publication peut prendre plusieurs minutes.",
20527
- "datafeeder.publish.title": "Merci! \n Vos données sont en cours de publication",
20528
- "datafeeder.publish.upload": "Télécharger maintenant",
20529
- "datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnées",
20530
- "datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
20531
- "datafeeder.publishSuccess.mapViewer": "Visualiseur",
20532
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
20533
- "datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
20534
- "datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
20535
- "datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
20536
- "datafeeder.summarizePage.illustration": "Pas d'erreur ? C'est parti !",
20537
- "datafeeder.summarizePage.previous": "Précédent",
20538
- "datafeeder.summarizePage.submit": "Publier",
20539
- "datafeeder.summarizePage.title": "On y est presque...",
20540
- "datafeeder.upload.acceptedFormats": "Formats de fichier acceptés :",
20541
- "datafeeder.upload.checkboxLabel": "J'ai le droit de publier cette donnée",
20542
- "datafeeder.upload.error.subtitle.analysis": "Le fichier transféré contient-il des données géographiques valides ?",
20543
- "datafeeder.upload.error.subtitle.cantOpenFile": "Vérifiez la validité du fichier sélectionné",
20544
- "datafeeder.upload.error.subtitle.fileFormat": "Rappel : uniquement des SHP",
20545
- "datafeeder.upload.error.subtitle.fileSize": "Rappel : {size} Mo maximum",
20546
- "datafeeder.upload.error.title.analysis": "Erreur lors de l'analyse des données",
20547
- "datafeeder.upload.error.title.cantOpenFile": "Erreur lors de l'ouverture du fichier",
20548
- "datafeeder.upload.error.title.fileFormat": "Le format du fichier n'est pas supporté",
20549
- "datafeeder.upload.error.title.fileHasntSelected": "Aucun fichier n'a été sélectionné",
20550
- "datafeeder.upload.error.title.fileSize": "La taille du fichier est trop importante",
20551
- "datafeeder.upload.error.title.noRightsToSendData": "Vous n'avez pas validé les droits de publication",
20552
- "datafeeder.upload.illustration.enrichment": "Enrichissement",
20553
- "datafeeder.upload.illustration.import": "Import",
20554
- "datafeeder.upload.illustration.title": "Ajouter des données n'a jamais été aussi simple",
20555
- "datafeeder.upload.illustration.validation": "Validation",
20556
- "datafeeder.upload.illustration.verification": "Vérification",
20557
- "datafeeder.upload.inputLabel": "Ajouter votre fichier",
20558
- "datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
20559
- "datafeeder.upload.title": "Importez vos données",
20560
- "datafeeder.upload.uploadButton": "Transférer",
20561
- "datafeeder.validation.csv.delimiter": "Séparateur de colonne",
20562
- "datafeeder.validation.csv.delimiter.comma": "Virgule",
20563
- "datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
20564
- "datafeeder.validation.csv.lat.field": "Colonne latitude",
20565
- "datafeeder.validation.csv.lng.field": "Colonne longitude",
20566
- "datafeeder.validation.csv.quote.double": "Double guillemets",
20567
- "datafeeder.validation.csv.quote.none": "Aucun",
20568
- "datafeeder.validation.csv.quote.simple": "Simple guillemet",
20569
- "datafeeder.validation.csv.quoteChar": "Séparateur de texte",
20570
- "datafeeder.validation.encoding": "Encodage",
20571
- "datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
20572
- "datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
20573
- "datafeeder.validation.projection": "Projection :",
20574
- "datafeeder.validation.projection.unknown": "Choisissez une projection",
20575
- "datafeeder.validation.sample.title": "Et un exemple d'objet",
20576
- "datafeeder.wizard.emptyRequiredValuesMessage": "Veuillez remplir les champs obligatoires",
20577
20286
  "datafeeder.wizardSummarize.createdAt": "Créée le",
20578
20287
  "datafeeder.wizardSummarize.scale": "Échelle",
20579
20288
  "datahub.header.datasets": "Données",
@@ -20613,7 +20322,7 @@ var fr = {
20613
20322
  "domain.contact.role.point_of_contact": "Point de contact",
20614
20323
  "domain.contact.role.principal_investigator": "Chercheur principal",
20615
20324
  "domain.contact.role.processor": "Processeur",
20616
- "domain.contact.role.publisher": "Éditeur",
20325
+ "domain.contact.role.publisher": "Producteur",
20617
20326
  "domain.contact.role.resource_provider": "Fournisseur",
20618
20327
  "domain.contact.role.rights_holder": "Détenteur des droits",
20619
20328
  "domain.contact.role.sponsor": "Sponsor",
@@ -20677,7 +20386,7 @@ var fr = {
20677
20386
  "editor.record.form.constraint.otherConstraints": "Autres contraintes",
20678
20387
  "editor.record.form.constraint.securityConstraints": "Contraintes de sécurité",
20679
20388
  "editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
20680
- "editor.record.form.field.abstract": "Résumé",
20389
+ "editor.record.form.field.abstract": "Description",
20681
20390
  "editor.record.form.field.constraintsShortcuts": "",
20682
20391
  "editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
20683
20392
  "editor.record.form.field.contacts.placeholder": "Choisissez un contact",
@@ -20719,14 +20428,14 @@ var fr = {
20719
20428
  "editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
20720
20429
  "editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
20721
20430
  "editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
20722
- "editor.record.form.license.cc-by": "",
20723
- "editor.record.form.license.cc-by-sa": "",
20724
- "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",
20725
20434
  "editor.record.form.license.etalab": "Licence Ouverte (Etalab)",
20726
20435
  "editor.record.form.license.etalab-v2": "Licence Ouverte v2.0 (Etalab)",
20727
- "editor.record.form.license.odbl": "",
20728
- "editor.record.form.license.odc-by": "",
20729
- "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",
20730
20439
  "editor.record.form.license.unknown": "Inconnue ou absente",
20731
20440
  "editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
20732
20441
  "editor.record.form.page.description": "Description du jeu de données",
@@ -20779,7 +20488,7 @@ var fr = {
20779
20488
  "editor.record.resourceError.closeMessage": "Compris",
20780
20489
  "editor.record.resourceError.title": "Erreur avec les pièces jointes",
20781
20490
  "editor.record.saveStatus.draftWithChangesPending": "Sauvegardé - Modifications non publiées",
20782
- "editor.record.saveStatus.recordNotPublished": "",
20491
+ "editor.record.saveStatus.recordNotPublished": "Sauvegardé - non publié",
20783
20492
  "editor.record.saveStatus.recordUpToDate": "Sauvegardé - Jeu de données à jour",
20784
20493
  "editor.record.undo.confirmation.cancelText": "Garder les modifications",
20785
20494
  "editor.record.undo.confirmation.confirmText": "Retirer les modifications",
@@ -20789,7 +20498,7 @@ var fr = {
20789
20498
  "editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à ce jeu de données",
20790
20499
  "editor.record.upToDate": "Ce jeu de données est à jour",
20791
20500
  "editor.sidebar.logout": "Se déconnecter",
20792
- "editor.sidebar.menu.editor": "",
20501
+ "editor.sidebar.menu.editor": "Editeur",
20793
20502
  "editor.temporary.disabled": "Pas encore implémenté",
20794
20503
  "externalviewer.dataset.unnamed": "Couche du datahub",
20795
20504
  "facets.block.title.OrgForResource": "Organisation",
@@ -20837,7 +20546,7 @@ var fr = {
20837
20546
  "map.add.layer": "Ajouter une couche",
20838
20547
  "map.add.layer.catalog": "Du catalogue",
20839
20548
  "map.add.layer.file": "À partir d'un fichier",
20840
- "map.add.layer.ogc.api": "",
20549
+ "map.add.layer.ogc.api": "Depuis un service OGC API",
20841
20550
  "map.add.layer.wfs": "Depuis un service WFS",
20842
20551
  "map.add.layer.wms": "Depuis un service WMS",
20843
20552
  "map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
@@ -20850,7 +20559,7 @@ var fr = {
20850
20559
  "map.loading.data": "Chargement des données...",
20851
20560
  "map.loading.service": "Chargement du service...",
20852
20561
  "map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
20853
- "map.ogc.urlInput.hint": "",
20562
+ "map.ogc.urlInput.hint": "Entrez l'URL du service OGC API",
20854
20563
  "map.select.layer": "Source de données",
20855
20564
  "map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
20856
20565
  "map.wms.urlInput.hint": "Entrez l'URL du service WMS",
@@ -20877,9 +20586,10 @@ var fr = {
20877
20586
  "record.action.download": "Télécharger",
20878
20587
  "record.action.duplicate": "Dupliquer",
20879
20588
  "record.action.duplicating": "Duplication...",
20589
+ "record.action.rollback": "Restaurer",
20880
20590
  "record.action.view": "Voir",
20881
20591
  "record.externalViewer.open": "Ouvrir dans le visualiseur externe",
20882
- "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",
20883
20593
  "record.metadata.about": "Description",
20884
20594
  "record.metadata.api": "API",
20885
20595
  "record.metadata.api.form.closeButton": "Fermer",
@@ -20999,6 +20709,8 @@ var fr = {
20999
20709
  "search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
21000
20710
  "search.field.any.placeholder": "Rechercher un jeu de données...",
21001
20711
  "search.field.sortBy": "Trier par :",
20712
+ "search.filters.availableServices.download": "",
20713
+ "search.filters.availableServices.view": "",
21002
20714
  "search.filters.changeDate": "Mise à jour",
21003
20715
  "search.filters.clear": "Réinitialiser",
21004
20716
  "search.filters.contact": "Contacts",
@@ -21054,7 +20766,6 @@ var fr = {
21054
20766
  "tooltip.url.open": "Ouvrir l'URL",
21055
20767
  "ui.readLess": "Réduire",
21056
20768
  "ui.readMore": "Lire la suite",
21057
- "wfs.aggregations.notsupported": "Agrégations non supportées pour les services WFS",
21058
20769
  "wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
21059
20770
  "wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
21060
20771
  "wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
@@ -21089,8 +20800,6 @@ var it = {
21089
20800
  "chart.type.lineSmooth": "grafico a linea liscia",
21090
20801
  "chart.type.pie": "grafico a torta",
21091
20802
  "dashboard.catalog.allRecords": "Datasets",
21092
- "dashboard.catalog.contacts": "Contatti",
21093
- "dashboard.catalog.thesaurus": "Thesauri",
21094
20803
  "dashboard.createRecord": "Crea un record",
21095
20804
  "dashboard.importRecord": "Importare",
21096
20805
  "dashboard.importRecord.importExternal": "Importare un dataset esterno",
@@ -21103,29 +20812,10 @@ var it = {
21103
20812
  "dashboard.records.myDraft": "Le mie bozze",
21104
20813
  "dashboard.records.myRecords": "I miei dati",
21105
20814
  "dashboard.records.search": "Risultati per \"{searchText}\"",
21106
- "dashboard.records.templates": "Modelli precompilati",
21107
20815
  "dashboard.records.userDetail": "Nome",
21108
20816
  "dashboard.records.userEmail": "Email",
21109
20817
  "dashboard.records.username": "Nome utente",
21110
20818
  "dashboard.records.users": "utenti",
21111
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Rilevamento del formato dei file",
21112
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Recupero delle informazioni dal dataset",
21113
- "datafeeder.analysisProgressBar.illustration.samplingData": "Campionatura dei dati",
21114
- "datafeeder.analysisProgressBar.subtitle": "L'analisi potrebbe richiedere alcuni minuti, si prega di attendere.",
21115
- "datafeeder.analysisProgressBar.title": "Analisi in corso",
21116
- "datafeeder.datasetValidation.datasetInformation": "Il dataset fornito contiene {number} entità",
21117
- "datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
21118
- "datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
21119
- "datafeeder.datasetValidation.unknown": " - ",
21120
- "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",
21121
- "datafeeder.datasetValidationCsv.lineNumbers": "Riepilogo delle prime 5 righe del CSV:",
21122
- "datafeeder.form.abstract": "Come descrivere il suo dataset?",
21123
- "datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
21124
- "datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
21125
- "datafeeder.form.dropdown": "Per quale scala è stato creato?",
21126
- "datafeeder.form.tags": "Seleziona uno o più parole chiave che corrispondano al suo dataset",
21127
- "datafeeder.form.title": "Dà al suo dataset il miglior titolo",
21128
- "datafeeder.formsPage.title": "Diteci di più sul suo dataset",
21129
20819
  "datafeeder.month.april": "Aprile",
21130
20820
  "datafeeder.month.august": "Agosto",
21131
20821
  "datafeeder.month.december": "Dicembre",
@@ -21138,59 +20828,6 @@ var it = {
21138
20828
  "datafeeder.month.november": "Novembre",
21139
20829
  "datafeeder.month.october": "Ottobre",
21140
20830
  "datafeeder.month.september": "Settembre",
21141
- "datafeeder.publish.hint": "Puo lasciare questa pagina in sicurezza, sarà avvisato quando il processo sarà completo",
21142
- "datafeeder.publish.illustration.title": "Un altro dato da pubblicare?",
21143
- "datafeeder.publish.subtitle": "La pubblicazione potrebbe richiedere alcuni minuti.",
21144
- "datafeeder.publish.title": "Grazie! \n I suei dati sono in fase di pubblicazione",
21145
- "datafeeder.publish.upload": "Carica ora",
21146
- "datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
21147
- "datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
21148
- "datafeeder.publishSuccess.mapViewer": "Visualizzatore",
21149
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
21150
- "datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
21151
- "datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
21152
- "datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
21153
- "datafeeder.summarizePage.illustration": "Nessun errore? Avanti!",
21154
- "datafeeder.summarizePage.previous": "Precedente",
21155
- "datafeeder.summarizePage.submit": "Pubblica",
21156
- "datafeeder.summarizePage.title": "Ci siamo quasi...",
21157
- "datafeeder.upload.acceptedFormats": "Formati di file accettati:",
21158
- "datafeeder.upload.checkboxLabel": "Ho il diritto di pubblicare questi dati",
21159
- "datafeeder.upload.error.subtitle.analysis": "Il file trasferito contiene dati geografici validi?",
21160
- "datafeeder.upload.error.subtitle.cantOpenFile": "Verifica la validità del file selezionato",
21161
- "datafeeder.upload.error.subtitle.fileFormat": "Ricorda: solo SHP",
21162
- "datafeeder.upload.error.subtitle.fileSize": "Ricorda: dimensione massima {size} MB",
21163
- "datafeeder.upload.error.title.analysis": "Errore durante l'analisi dei dati",
21164
- "datafeeder.upload.error.title.cantOpenFile": "Errore durante l'apertura del file",
21165
- "datafeeder.upload.error.title.fileFormat": "Formato del file non supportato",
21166
- "datafeeder.upload.error.title.fileHasntSelected": "Nessun file selezionato",
21167
- "datafeeder.upload.error.title.fileSize": "Dimensione del file troppo grande",
21168
- "datafeeder.upload.error.title.noRightsToSendData": "Non avete validato i diritti di pubblicazione",
21169
- "datafeeder.upload.illustration.enrichment": "Arricchimento",
21170
- "datafeeder.upload.illustration.import": "Importazione",
21171
- "datafeeder.upload.illustration.title": "Aggiungere dati non è mai stato così facile",
21172
- "datafeeder.upload.illustration.validation": "Validazione",
21173
- "datafeeder.upload.illustration.verification": "Verifica",
21174
- "datafeeder.upload.inputLabel": "Aggiunge il suo file",
21175
- "datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
21176
- "datafeeder.upload.title": "Importa i suoi dati",
21177
- "datafeeder.upload.uploadButton": "Carica",
21178
- "datafeeder.validation.csv.delimiter": "Separatore di colonne",
21179
- "datafeeder.validation.csv.delimiter.comma": "Virgola",
21180
- "datafeeder.validation.csv.delimiter.semicolon": "Punto e virgola",
21181
- "datafeeder.validation.csv.lat.field": "Colonna di latitudine",
21182
- "datafeeder.validation.csv.lng.field": "Colonna di longitudine",
21183
- "datafeeder.validation.csv.quote.double": "Virgolette doppie",
21184
- "datafeeder.validation.csv.quote.none": "Nessun",
21185
- "datafeeder.validation.csv.quote.simple": "Citazione semplice",
21186
- "datafeeder.validation.csv.quoteChar": "Separatore di testo",
21187
- "datafeeder.validation.encoding": "Codifica",
21188
- "datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
21189
- "datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
21190
- "datafeeder.validation.projection": "Proiezione:",
21191
- "datafeeder.validation.projection.unknown": "Seleziona una proiezione",
21192
- "datafeeder.validation.sample.title": "E un esempio di oggetto",
21193
- "datafeeder.wizard.emptyRequiredValuesMessage": "Si prega di compilare i campi obbligatori",
21194
20831
  "datafeeder.wizardSummarize.createdAt": "Creato il",
21195
20832
  "datafeeder.wizardSummarize.scale": "Scala",
21196
20833
  "datahub.header.datasets": "Dati",
@@ -21274,9 +20911,9 @@ var it = {
21274
20911
  "editor.record.deleteError.title": "Errore durante l'eliminazione",
21275
20912
  "editor.record.deleteSuccess.body": "Il dataset è stato eliminato correttamente",
21276
20913
  "editor.record.deleteSuccess.title": "Eliminazione riuscita",
21277
- "editor.record.error.back": "",
21278
- "editor.record.error.explanation": "",
21279
- "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",
21280
20917
  "editor.record.form.bottomButtons.comeBackLater": "Ritorna più tardi",
21281
20918
  "editor.record.form.bottomButtons.next": "Avanti",
21282
20919
  "editor.record.form.bottomButtons.previous": "Precedente",
@@ -21336,18 +20973,18 @@ var it = {
21336
20973
  "editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
21337
20974
  "editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
21338
20975
  "editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
21339
- "editor.record.form.license.cc-by": "",
21340
- "editor.record.form.license.cc-by-sa": "",
21341
- "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",
21342
20979
  "editor.record.form.license.etalab": "Licenza aperta (Etalab)",
21343
20980
  "editor.record.form.license.etalab-v2": "Licenza aperta v2.0 (Etalab)",
21344
- "editor.record.form.license.odbl": "",
21345
- "editor.record.form.license.odc-by": "",
21346
- "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",
21347
20984
  "editor.record.form.license.unknown": "Sconosciuto o assente",
21348
20985
  "editor.record.form.page.accessAndContact": "Informazioni per l'uso",
21349
20986
  "editor.record.form.page.description": "Descrizione del dataset",
21350
- "editor.record.form.page.resources": "",
20987
+ "editor.record.form.page.resources": "Risorse",
21351
20988
  "editor.record.form.section.about.description": "Queste informazioni riguardano il dataset",
21352
20989
  "editor.record.form.section.about.label": "Informazioni sul dataset",
21353
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.).",
@@ -21374,7 +21011,7 @@ var it = {
21374
21011
  "editor.record.loadError.body": "Impossibile caricare il dataset:",
21375
21012
  "editor.record.loadError.closeMessage": "Capito",
21376
21013
  "editor.record.loadError.title": "Errore durante il caricamento",
21377
- "editor.record.lock.reason": "",
21014
+ "editor.record.lock.reason": "Non è un editore di uno dei gruppi autorizzati",
21378
21015
  "editor.record.onlineResource.protocol.other": "Altro",
21379
21016
  "editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
21380
21017
  "editor.record.onlineResourceError.closeMessage": "Capito",
@@ -21396,7 +21033,7 @@ var it = {
21396
21033
  "editor.record.resourceError.closeMessage": "Capito",
21397
21034
  "editor.record.resourceError.title": "Errore con gli allegati",
21398
21035
  "editor.record.saveStatus.draftWithChangesPending": "Salvato - Modifiche non pubblicate",
21399
- "editor.record.saveStatus.recordNotPublished": "",
21036
+ "editor.record.saveStatus.recordNotPublished": "Salvato - non pubblicato",
21400
21037
  "editor.record.saveStatus.recordUpToDate": "Salvato - Dataset aggiornato",
21401
21038
  "editor.record.undo.confirmation.cancelText": "Mantieni le modifiche",
21402
21039
  "editor.record.undo.confirmation.confirmText": "Annulla le modifiche",
@@ -21406,7 +21043,7 @@ var it = {
21406
21043
  "editor.record.undo.tooltip.enabled": "Fare clic su questo pulsante per annullare le modifiche apportate a questo dataset",
21407
21044
  "editor.record.upToDate": "Questo dataset è aggiornato",
21408
21045
  "editor.sidebar.logout": "Esci",
21409
- "editor.sidebar.menu.editor": "",
21046
+ "editor.sidebar.menu.editor": "Editore",
21410
21047
  "editor.temporary.disabled": "Non ancora implementato",
21411
21048
  "externalviewer.dataset.unnamed": "Layer del datahub",
21412
21049
  "facets.block.title.OrgForResource": "Organizzazione",
@@ -21454,7 +21091,7 @@ var it = {
21454
21091
  "map.add.layer": "Aggiungere un layer",
21455
21092
  "map.add.layer.catalog": "Dal catalogo",
21456
21093
  "map.add.layer.file": "Da un file",
21457
- "map.add.layer.ogc.api": "",
21094
+ "map.add.layer.ogc.api": "Da OGC API",
21458
21095
  "map.add.layer.wfs": "Da un WFS",
21459
21096
  "map.add.layer.wms": "Da un WMS",
21460
21097
  "map.addFromFile.placeholder": "Clicca o trascina un file qui",
@@ -21467,7 +21104,7 @@ var it = {
21467
21104
  "map.loading.data": "Caricamento dati...",
21468
21105
  "map.loading.service": "Caricamento del servizio...",
21469
21106
  "map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
21470
- "map.ogc.urlInput.hint": "",
21107
+ "map.ogc.urlInput.hint": "Inserisci URL del servizio OGC API",
21471
21108
  "map.select.layer": "Sorgente dati",
21472
21109
  "map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
21473
21110
  "map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
@@ -21493,10 +21130,11 @@ var it = {
21493
21130
  "record.action.delete": "Elimina",
21494
21131
  "record.action.download": "Scarica",
21495
21132
  "record.action.duplicate": "Duplicato",
21496
- "record.action.duplicating": "",
21133
+ "record.action.duplicating": "Duplicazione",
21134
+ "record.action.rollback": "Annulla",
21497
21135
  "record.action.view": "Visualizza",
21498
21136
  "record.externalViewer.open": "Aprire nel visualizzatore esterno",
21499
- "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 ",
21500
21138
  "record.metadata.about": "Descrizione",
21501
21139
  "record.metadata.api": "API",
21502
21140
  "record.metadata.api.form.closeButton": "Chiude",
@@ -21616,6 +21254,8 @@ var it = {
21616
21254
  "search.error.recordNotFound": "Impossibile trovare questi dati.",
21617
21255
  "search.field.any.placeholder": "Cerca un dataset...",
21618
21256
  "search.field.sortBy": "Ordina per:",
21257
+ "search.filters.availableServices.download": "",
21258
+ "search.filters.availableServices.view": "",
21619
21259
  "search.filters.changeDate": "Aggiornato",
21620
21260
  "search.filters.clear": "Ripristina",
21621
21261
  "search.filters.contact": "Contatti",
@@ -21671,7 +21311,7 @@ var it = {
21671
21311
  "tooltip.url.open": "Aprire l'URL",
21672
21312
  "ui.readLess": "Ridurre",
21673
21313
  "ui.readMore": "Leggere di più",
21674
- "wfs.aggregations.notsupported": "",
21314
+ "wfs.aggregations.notsupported": "Aggregazioni non supportate per i servizi WFS",
21675
21315
  "wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
21676
21316
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
21677
21317
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
@@ -21706,8 +21346,6 @@ var nl = {
21706
21346
  "chart.type.lineSmooth": "glad lijndiagram",
21707
21347
  "chart.type.pie": "cirkeldiagram",
21708
21348
  "dashboard.catalog.allRecords": "",
21709
- "dashboard.catalog.contacts": "",
21710
- "dashboard.catalog.thesaurus": "",
21711
21349
  "dashboard.createRecord": "",
21712
21350
  "dashboard.importRecord": "",
21713
21351
  "dashboard.importRecord.importExternal": "",
@@ -21720,29 +21358,10 @@ var nl = {
21720
21358
  "dashboard.records.myDraft": "Mijn concepten",
21721
21359
  "dashboard.records.myRecords": "Mijn Records",
21722
21360
  "dashboard.records.search": "Zoeken naar \"{searchText}\"",
21723
- "dashboard.records.templates": "",
21724
21361
  "dashboard.records.userDetail": "",
21725
21362
  "dashboard.records.userEmail": "",
21726
21363
  "dashboard.records.username": "",
21727
21364
  "dashboard.records.users": "",
21728
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
21729
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
21730
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
21731
- "datafeeder.analysisProgressBar.subtitle": "",
21732
- "datafeeder.analysisProgressBar.title": "",
21733
- "datafeeder.datasetValidation.datasetInformation": "",
21734
- "datafeeder.datasetValidation.submitButton": "",
21735
- "datafeeder.datasetValidation.title": "",
21736
- "datafeeder.datasetValidation.unknown": "",
21737
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
21738
- "datafeeder.datasetValidationCsv.lineNumbers": "",
21739
- "datafeeder.form.abstract": "",
21740
- "datafeeder.form.datepicker": "",
21741
- "datafeeder.form.description": "",
21742
- "datafeeder.form.dropdown": "",
21743
- "datafeeder.form.tags": "",
21744
- "datafeeder.form.title": "",
21745
- "datafeeder.formsPage.title": "",
21746
21365
  "datafeeder.month.april": "",
21747
21366
  "datafeeder.month.august": "",
21748
21367
  "datafeeder.month.december": "",
@@ -21755,59 +21374,6 @@ var nl = {
21755
21374
  "datafeeder.month.november": "",
21756
21375
  "datafeeder.month.october": "",
21757
21376
  "datafeeder.month.september": "",
21758
- "datafeeder.publish.hint": "",
21759
- "datafeeder.publish.illustration.title": "",
21760
- "datafeeder.publish.subtitle": "",
21761
- "datafeeder.publish.title": "",
21762
- "datafeeder.publish.upload": "",
21763
- "datafeeder.publishSuccess.geonetworkRecord": "",
21764
- "datafeeder.publishSuccess.illustration.title": "",
21765
- "datafeeder.publishSuccess.mapViewer": "",
21766
- "datafeeder.publishSuccess.ogcFeature": "",
21767
- "datafeeder.publishSuccess.subtitle": "",
21768
- "datafeeder.publishSuccess.title": "",
21769
- "datafeeder.publishSuccess.uploadAnotherData": "",
21770
- "datafeeder.summarizePage.illustration": "",
21771
- "datafeeder.summarizePage.previous": "",
21772
- "datafeeder.summarizePage.submit": "",
21773
- "datafeeder.summarizePage.title": "",
21774
- "datafeeder.upload.acceptedFormats": "",
21775
- "datafeeder.upload.checkboxLabel": "",
21776
- "datafeeder.upload.error.subtitle.analysis": "",
21777
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
21778
- "datafeeder.upload.error.subtitle.fileFormat": "",
21779
- "datafeeder.upload.error.subtitle.fileSize": "",
21780
- "datafeeder.upload.error.title.analysis": "",
21781
- "datafeeder.upload.error.title.cantOpenFile": "",
21782
- "datafeeder.upload.error.title.fileFormat": "",
21783
- "datafeeder.upload.error.title.fileHasntSelected": "",
21784
- "datafeeder.upload.error.title.fileSize": "",
21785
- "datafeeder.upload.error.title.noRightsToSendData": "",
21786
- "datafeeder.upload.illustration.enrichment": "",
21787
- "datafeeder.upload.illustration.import": "",
21788
- "datafeeder.upload.illustration.title": "",
21789
- "datafeeder.upload.illustration.validation": "",
21790
- "datafeeder.upload.illustration.verification": "",
21791
- "datafeeder.upload.inputLabel": "",
21792
- "datafeeder.upload.maxFileSize": "",
21793
- "datafeeder.upload.title": "",
21794
- "datafeeder.upload.uploadButton": "",
21795
- "datafeeder.validation.csv.delimiter": "",
21796
- "datafeeder.validation.csv.delimiter.comma": "",
21797
- "datafeeder.validation.csv.delimiter.semicolon": "",
21798
- "datafeeder.validation.csv.lat.field": "",
21799
- "datafeeder.validation.csv.lng.field": "",
21800
- "datafeeder.validation.csv.quote.double": "",
21801
- "datafeeder.validation.csv.quote.none": "",
21802
- "datafeeder.validation.csv.quote.simple": "",
21803
- "datafeeder.validation.csv.quoteChar": "",
21804
- "datafeeder.validation.encoding": "",
21805
- "datafeeder.validation.extent.title": "",
21806
- "datafeeder.validation.extent.title.unknown": "",
21807
- "datafeeder.validation.projection": "",
21808
- "datafeeder.validation.projection.unknown": "",
21809
- "datafeeder.validation.sample.title": "",
21810
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
21811
21377
  "datafeeder.wizardSummarize.createdAt": "",
21812
21378
  "datafeeder.wizardSummarize.scale": "",
21813
21379
  "datahub.header.datasets": "",
@@ -22111,6 +21677,7 @@ var nl = {
22111
21677
  "record.action.download": "",
22112
21678
  "record.action.duplicate": "",
22113
21679
  "record.action.duplicating": "",
21680
+ "record.action.rollback": "",
22114
21681
  "record.action.view": "",
22115
21682
  "record.externalViewer.open": "",
22116
21683
  "record.feature.limit": "",
@@ -22233,6 +21800,8 @@ var nl = {
22233
21800
  "search.error.recordNotFound": "",
22234
21801
  "search.field.any.placeholder": "",
22235
21802
  "search.field.sortBy": "",
21803
+ "search.filters.availableServices.download": "",
21804
+ "search.filters.availableServices.view": "",
22236
21805
  "search.filters.changeDate": "",
22237
21806
  "search.filters.clear": "",
22238
21807
  "search.filters.contact": "",
@@ -22288,7 +21857,6 @@ var nl = {
22288
21857
  "tooltip.url.open": "",
22289
21858
  "ui.readLess": "",
22290
21859
  "ui.readMore": "",
22291
- "wfs.aggregations.notsupported": "",
22292
21860
  "wfs.feature.limit": "",
22293
21861
  "wfs.featuretype.notfound": "",
22294
21862
  "wfs.geojsongml.notsupported": "",
@@ -22323,8 +21891,6 @@ var pt = {
22323
21891
  "chart.type.lineSmooth": "gráfico de linha suave",
22324
21892
  "chart.type.pie": "gráfico de pizza",
22325
21893
  "dashboard.catalog.allRecords": "",
22326
- "dashboard.catalog.contacts": "",
22327
- "dashboard.catalog.thesaurus": "",
22328
21894
  "dashboard.createRecord": "",
22329
21895
  "dashboard.importRecord": "",
22330
21896
  "dashboard.importRecord.importExternal": "",
@@ -22337,29 +21903,10 @@ var pt = {
22337
21903
  "dashboard.records.myDraft": "Meus rascunhos",
22338
21904
  "dashboard.records.myRecords": "Meus Registros",
22339
21905
  "dashboard.records.search": "Buscar por \"{searchText}\"",
22340
- "dashboard.records.templates": "",
22341
21906
  "dashboard.records.userDetail": "",
22342
21907
  "dashboard.records.userEmail": "",
22343
21908
  "dashboard.records.username": "",
22344
21909
  "dashboard.records.users": "",
22345
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
22346
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
22347
- "datafeeder.analysisProgressBar.illustration.samplingData": "",
22348
- "datafeeder.analysisProgressBar.subtitle": "",
22349
- "datafeeder.analysisProgressBar.title": "",
22350
- "datafeeder.datasetValidation.datasetInformation": "",
22351
- "datafeeder.datasetValidation.submitButton": "",
22352
- "datafeeder.datasetValidation.title": "",
22353
- "datafeeder.datasetValidation.unknown": "",
22354
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
22355
- "datafeeder.datasetValidationCsv.lineNumbers": "",
22356
- "datafeeder.form.abstract": "",
22357
- "datafeeder.form.datepicker": "",
22358
- "datafeeder.form.description": "",
22359
- "datafeeder.form.dropdown": "",
22360
- "datafeeder.form.tags": "",
22361
- "datafeeder.form.title": "",
22362
- "datafeeder.formsPage.title": "",
22363
21910
  "datafeeder.month.april": "",
22364
21911
  "datafeeder.month.august": "",
22365
21912
  "datafeeder.month.december": "",
@@ -22372,59 +21919,6 @@ var pt = {
22372
21919
  "datafeeder.month.november": "",
22373
21920
  "datafeeder.month.october": "",
22374
21921
  "datafeeder.month.september": "",
22375
- "datafeeder.publish.hint": "",
22376
- "datafeeder.publish.illustration.title": "",
22377
- "datafeeder.publish.subtitle": "",
22378
- "datafeeder.publish.title": "",
22379
- "datafeeder.publish.upload": "",
22380
- "datafeeder.publishSuccess.geonetworkRecord": "",
22381
- "datafeeder.publishSuccess.illustration.title": "",
22382
- "datafeeder.publishSuccess.mapViewer": "",
22383
- "datafeeder.publishSuccess.ogcFeature": "",
22384
- "datafeeder.publishSuccess.subtitle": "",
22385
- "datafeeder.publishSuccess.title": "",
22386
- "datafeeder.publishSuccess.uploadAnotherData": "",
22387
- "datafeeder.summarizePage.illustration": "",
22388
- "datafeeder.summarizePage.previous": "",
22389
- "datafeeder.summarizePage.submit": "",
22390
- "datafeeder.summarizePage.title": "",
22391
- "datafeeder.upload.acceptedFormats": "",
22392
- "datafeeder.upload.checkboxLabel": "",
22393
- "datafeeder.upload.error.subtitle.analysis": "",
22394
- "datafeeder.upload.error.subtitle.cantOpenFile": "",
22395
- "datafeeder.upload.error.subtitle.fileFormat": "",
22396
- "datafeeder.upload.error.subtitle.fileSize": "",
22397
- "datafeeder.upload.error.title.analysis": "",
22398
- "datafeeder.upload.error.title.cantOpenFile": "",
22399
- "datafeeder.upload.error.title.fileFormat": "",
22400
- "datafeeder.upload.error.title.fileHasntSelected": "",
22401
- "datafeeder.upload.error.title.fileSize": "",
22402
- "datafeeder.upload.error.title.noRightsToSendData": "",
22403
- "datafeeder.upload.illustration.enrichment": "",
22404
- "datafeeder.upload.illustration.import": "",
22405
- "datafeeder.upload.illustration.title": "",
22406
- "datafeeder.upload.illustration.validation": "",
22407
- "datafeeder.upload.illustration.verification": "",
22408
- "datafeeder.upload.inputLabel": "",
22409
- "datafeeder.upload.maxFileSize": "",
22410
- "datafeeder.upload.title": "",
22411
- "datafeeder.upload.uploadButton": "",
22412
- "datafeeder.validation.csv.delimiter": "",
22413
- "datafeeder.validation.csv.delimiter.comma": "",
22414
- "datafeeder.validation.csv.delimiter.semicolon": "",
22415
- "datafeeder.validation.csv.lat.field": "",
22416
- "datafeeder.validation.csv.lng.field": "",
22417
- "datafeeder.validation.csv.quote.double": "",
22418
- "datafeeder.validation.csv.quote.none": "",
22419
- "datafeeder.validation.csv.quote.simple": "",
22420
- "datafeeder.validation.csv.quoteChar": "",
22421
- "datafeeder.validation.encoding": "",
22422
- "datafeeder.validation.extent.title": "",
22423
- "datafeeder.validation.extent.title.unknown": "",
22424
- "datafeeder.validation.projection": "",
22425
- "datafeeder.validation.projection.unknown": "",
22426
- "datafeeder.validation.sample.title": "",
22427
- "datafeeder.wizard.emptyRequiredValuesMessage": "",
22428
21922
  "datafeeder.wizardSummarize.createdAt": "",
22429
21923
  "datafeeder.wizardSummarize.scale": "",
22430
21924
  "datahub.header.datasets": "",
@@ -22728,6 +22222,7 @@ var pt = {
22728
22222
  "record.action.download": "",
22729
22223
  "record.action.duplicate": "",
22730
22224
  "record.action.duplicating": "",
22225
+ "record.action.rollback": "",
22731
22226
  "record.action.view": "",
22732
22227
  "record.externalViewer.open": "",
22733
22228
  "record.feature.limit": "",
@@ -22850,6 +22345,8 @@ var pt = {
22850
22345
  "search.error.recordNotFound": "",
22851
22346
  "search.field.any.placeholder": "",
22852
22347
  "search.field.sortBy": "",
22348
+ "search.filters.availableServices.download": "",
22349
+ "search.filters.availableServices.view": "",
22853
22350
  "search.filters.changeDate": "",
22854
22351
  "search.filters.clear": "",
22855
22352
  "search.filters.contact": "",
@@ -22905,7 +22402,6 @@ var pt = {
22905
22402
  "tooltip.url.open": "",
22906
22403
  "ui.readLess": "",
22907
22404
  "ui.readMore": "",
22908
- "wfs.aggregations.notsupported": "",
22909
22405
  "wfs.feature.limit": "",
22910
22406
  "wfs.featuretype.notfound": "",
22911
22407
  "wfs.geojsongml.notsupported": "",
@@ -23092,6 +22588,16 @@ class Gn4FieldMapper {
23092
22588
  isOpenData: (output, source) => this.addExtra({
23093
22589
  isOpenData: selectField(source, 'isOpenData') !== 'false',
23094
22590
  }, output),
22591
+ featureTypes: (output, source) => this.addExtra({
22592
+ featureTypes: selectField(source, 'featureTypes'),
22593
+ }, output),
22594
+ related: (output, source) => {
22595
+ const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')), '_source');
22596
+ const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
22597
+ return featureCatalogIdentifier
22598
+ ? this.addExtra({ featureCatalogIdentifier }, output)
22599
+ : output;
22600
+ },
23095
22601
  isPublishedToAll: (output, source) => this.addExtra({
23096
22602
  isPublishedToAll: selectField(source, 'isPublishedToAll'),
23097
22603
  }, output),
@@ -23617,16 +23123,26 @@ class ElasticsearchService {
23617
23123
  ].filter(Boolean);
23618
23124
  return queryParts.length > 0 ? queryParts : undefined;
23619
23125
  }
23126
+ mustNotFilters() {
23127
+ return [
23128
+ {
23129
+ ...this.queryFilterOnValues('resourceType', [
23130
+ 'service',
23131
+ 'map',
23132
+ 'map/static',
23133
+ 'mapDigital',
23134
+ ]),
23135
+ },
23136
+ {
23137
+ query_string: {
23138
+ query: 'resourceType:featureCatalog AND !resourceType:dataset AND !cl_level.key:dataset',
23139
+ },
23140
+ },
23141
+ ];
23142
+ }
23620
23143
  buildPayloadQuery({ any, ...fieldSearchFilters }, configFilters, uuids, geometry) {
23621
23144
  const must = [];
23622
- const must_not = {
23623
- ...this.queryFilterOnValues('resourceType', [
23624
- 'service',
23625
- 'map',
23626
- 'map/static',
23627
- 'mapDigital',
23628
- ]),
23629
- };
23145
+ const must_not = this.mustNotFilters();
23630
23146
  const should = [];
23631
23147
  const filter = [this.queryFilterOnValues('isTemplate', 'n')];
23632
23148
  if (any) {
@@ -23712,14 +23228,7 @@ class ElasticsearchService {
23712
23228
  },
23713
23229
  },
23714
23230
  ],
23715
- must_not: {
23716
- ...this.queryFilterOnValues('resourceType', [
23717
- 'service',
23718
- 'map',
23719
- 'map/static',
23720
- 'mapDigital',
23721
- ]),
23722
- },
23231
+ must_not: this.mustNotFilters(),
23723
23232
  },
23724
23233
  },
23725
23234
  _source: ['resourceTitleObject', 'uuid'],
@@ -23936,9 +23445,29 @@ class Gn4Repository {
23936
23445
  }
23937
23446
  getRecord(uniqueIdentifier) {
23938
23447
  return this.gn4SearchApi
23939
- .search('bucket', null, JSON.stringify(this.gn4SearchHelper.getMetadataByIdPayload(uniqueIdentifier)))
23448
+ .search('bucket', ['fcats'], JSON.stringify(this.gn4SearchHelper.getMetadataByIdPayload(uniqueIdentifier)))
23940
23449
  .pipe(map$1((results) => results.hits.hits[0]), switchMap((record) => record ? this.gn4Mapper.readRecord(record) : of(null)));
23941
23450
  }
23451
+ getFeatureCatalog(record, visited = new Set() // prevent looping
23452
+ ) {
23453
+ if (record.extras &&
23454
+ record.extras['featureTypes'] &&
23455
+ record.extras['featureTypes'][0]?.attributeTable &&
23456
+ Array.isArray(record.extras['featureTypes'][0].attributeTable)) {
23457
+ return of({
23458
+ attributes: record.extras['featureTypes'][0]?.attributeTable?.map((attr) => ({
23459
+ name: attr.name,
23460
+ title: attr.definition,
23461
+ })),
23462
+ });
23463
+ }
23464
+ const featureCatalogIdentifier = record.extras['featureCatalogIdentifier'];
23465
+ if (featureCatalogIdentifier && !visited.has(featureCatalogIdentifier)) {
23466
+ visited.add(featureCatalogIdentifier);
23467
+ return this.getRecord(featureCatalogIdentifier).pipe(switchMap((record) => record ? this.getFeatureCatalog(record, visited) : of(null)));
23468
+ }
23469
+ return of(null);
23470
+ }
23942
23471
  getSimilarRecords(similarTo) {
23943
23472
  return this.gn4SearchApi
23944
23473
  .search('bucket', null, JSON.stringify(this.gn4SearchHelper.getRelatedRecordPayload(similarTo, 3)))
@@ -26324,66 +25853,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26324
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" }]
26325
25854
  }] });
26326
25855
 
26327
- class StepBarComponent {
26328
- constructor(cdr) {
26329
- this.cdr = cdr;
26330
- this.currentStep = 1;
26331
- this.type = 'default';
26332
- }
26333
- get stepCounter() {
26334
- return new Array(this.steps);
26335
- }
26336
- get color() {
26337
- switch (this.type) {
26338
- case 'default':
26339
- return {
26340
- outerBar: 'bg-gray-200',
26341
- innerBar: 'bg-gray-100',
26342
- };
26343
- case 'primary':
26344
- return {
26345
- outerBar: 'bg-primary',
26346
- innerBar: 'bg-primary-lighter',
26347
- };
26348
- case 'secondary':
26349
- return {
26350
- outerBar: 'bg-secondary',
26351
- innerBar: 'bg-secondary-lighter',
26352
- };
26353
- }
26354
- }
26355
- getCircleColor(index) {
26356
- return index === this.currentStep
26357
- ? 'bg-black'
26358
- : index < this.currentStep
26359
- ? 'bg-white'
26360
- : this.color.innerBar;
26361
- }
26362
- getChecked(index) {
26363
- return index + 1 < this.currentStep;
26364
- }
26365
- 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 }); }
26366
- 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"] }] }); }
26367
- }
26368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, decorators: [{
26369
- type: Component,
26370
- 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"] }]
26371
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { steps: [{
26372
- type: Input
26373
- }], currentStep: [{
26374
- type: Input
26375
- }], type: [{
26376
- type: Input
26377
- }] } });
26378
-
26379
25856
  class UiWidgetsModule {
26380
25857
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26381
- 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,
26382
25859
  FormsModule,
26383
25860
  ReactiveFormsModule,
26384
25861
  TagInputModule,
26385
25862
  UtilSharedModule,
26386
- MatProgressSpinnerModule], exports: [StepBarComponent] }); }
25863
+ MatProgressSpinnerModule] }); }
26387
25864
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
26388
25865
  TranslateModule.forChild(),
26389
25866
  NgxDropzoneModule,
@@ -26396,7 +25873,7 @@ class UiWidgetsModule {
26396
25873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, decorators: [{
26397
25874
  type: NgModule,
26398
25875
  args: [{
26399
- declarations: [ColorScaleComponent, StepBarComponent],
25876
+ declarations: [ColorScaleComponent],
26400
25877
  imports: [
26401
25878
  CommonModule,
26402
25879
  TranslateModule.forChild(),
@@ -26407,7 +25884,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26407
25884
  UtilSharedModule,
26408
25885
  MatProgressSpinnerModule,
26409
25886
  ],
26410
- exports: [StepBarComponent],
25887
+ exports: [],
26411
25888
  }]
26412
25889
  }] });
26413
25890
 
@@ -26925,72 +26402,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26925
26402
  type: Output
26926
26403
  }] } });
26927
26404
 
26928
- class ChipsInputComponent {
26929
- onChange(event) {
26930
- this.rawChange.next(event);
26931
- }
26932
- constructor(http, translate) {
26933
- this.http = http;
26934
- this.translate = translate;
26935
- this.required = false;
26936
- this.loadOnce = false;
26937
- this.autocompleteItems = [];
26938
- this.invalid = false;
26939
- this.items = [];
26940
- this.requestAutocompleteItems = (text) => {
26941
- if (this.url) {
26942
- if (this.loadOnce && this.loadedItems) {
26943
- return this.loadedItems;
26944
- }
26945
- const url = this.url(text);
26946
- const lang = LANG_2_TO_3_MAPPER[this.translate.currentLang.slice(0, 2)];
26947
- return this.http
26948
- .get(url.replace('${lang}', lang))
26949
- .pipe(map$1((item) => item.map((i) => i.values[lang])));
26950
- }
26951
- else {
26952
- return of(this.autocompleteItems || []);
26953
- }
26954
- };
26955
- this.rawChange = new Subject();
26956
- this.itemsChange = this.rawChange.pipe(distinctUntilChanged());
26957
- this.subscription = new Subscription();
26958
- }
26959
- ngOnInit() {
26960
- if (this.loadOnce) {
26961
- this.loadedItems = this.requestAutocompleteItems('*').pipe(shareReplay(1));
26962
- }
26963
- this.items = this.selectedItems;
26964
- this.subscription = this.rawChange
26965
- .pipe(tap$1((v) => (this.invalid = v.length === 0)))
26966
- .subscribe();
26967
- this.rawChange.next(this.items);
26968
- }
26969
- ngOnDestroy() {
26970
- this.subscription.unsubscribe();
26971
- }
26972
- 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 }); }
26973
- 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"] }] }); }
26974
- }
26975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, decorators: [{
26976
- type: Component,
26977
- 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"] }]
26978
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.TranslateService }], propDecorators: { url: [{
26979
- type: Input
26980
- }], placeholder: [{
26981
- type: Input
26982
- }], selectedItems: [{
26983
- type: Input
26984
- }], required: [{
26985
- type: Input
26986
- }], loadOnce: [{
26987
- type: Input
26988
- }], autocompleteItems: [{
26989
- type: Input
26990
- }], itemsChange: [{
26991
- type: Output
26992
- }] } });
26993
-
26994
26405
  class CopyTextButtonComponent {
26995
26406
  constructor() {
26996
26407
  this.displayText = true;
@@ -28070,7 +27481,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28070
27481
  class UiInputsModule {
28071
27482
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28072
27483
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, declarations: [DragAndDropFileInputComponent,
28073
- ChipsInputComponent,
28074
27484
  DropdownMultiselectComponent,
28075
27485
  ViewportIntersectorComponent,
28076
27486
  CheckboxComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
@@ -28098,7 +27508,6 @@ class UiInputsModule {
28098
27508
  ButtonComponent,
28099
27509
  DragAndDropFileInputComponent,
28100
27510
  TextAreaComponent,
28101
- ChipsInputComponent,
28102
27511
  DropdownMultiselectComponent,
28103
27512
  ViewportIntersectorComponent,
28104
27513
  CheckToggleComponent,
@@ -28143,7 +27552,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28143
27552
  args: [{
28144
27553
  declarations: [
28145
27554
  DragAndDropFileInputComponent,
28146
- ChipsInputComponent,
28147
27555
  DropdownMultiselectComponent,
28148
27556
  ViewportIntersectorComponent,
28149
27557
  CheckboxComponent,
@@ -28189,7 +27597,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28189
27597
  ButtonComponent,
28190
27598
  DragAndDropFileInputComponent,
28191
27599
  TextAreaComponent,
28192
- ChipsInputComponent,
28193
27600
  DropdownMultiselectComponent,
28194
27601
  ViewportIntersectorComponent,
28195
27602
  CheckToggleComponent,
@@ -28855,7 +28262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28855
28262
 
28856
28263
  class MarkdownParserComponent {
28857
28264
  get parsedMarkdown() {
28858
- return marked.parse(this.textContent);
28265
+ return marked.parse(this.textContent ?? '');
28859
28266
  }
28860
28267
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28861
28268
  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 }); }
@@ -30275,7 +29682,7 @@ class ApplicationBannerComponent {
30275
29682
  matWarning,
30276
29683
  }),
30277
29684
  provideNgIconsConfig({ size: '1.5em' }),
30278
- ], 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 }); }
29685
+ ], 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 }); }
30279
29686
  }
30280
29687
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, decorators: [{
30281
29688
  type: Component,
@@ -30287,7 +29694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30287
29694
  matWarning,
30288
29695
  }),
30289
29696
  provideNgIconsConfig({ size: '1.5em' }),
30290
- ], 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" }]
29697
+ ], 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" }]
30291
29698
  }], propDecorators: { message: [{
30292
29699
  type: Input
30293
29700
  }], title: [{
@@ -30585,6 +29992,7 @@ class ActionMenuComponent {
30585
29992
  this.duplicate = new EventEmitter();
30586
29993
  this.delete = new EventEmitter();
30587
29994
  this.closeActionMenu = new EventEmitter();
29995
+ this.rollback = new EventEmitter();
30588
29996
  this.sectionDisplayed = 'mainMenu';
30589
29997
  }
30590
29998
  openMenu() {
@@ -30595,11 +30003,16 @@ class ActionMenuComponent {
30595
30003
  this.cdr.markForCheck();
30596
30004
  }
30597
30005
  displayDeleteMenu() {
30598
- this.sectionDisplayed = 'deleteMenu';
30006
+ if (this.isDraftPage) {
30007
+ this.sectionDisplayed = 'rollbackMenu';
30008
+ }
30009
+ else {
30010
+ this.sectionDisplayed = 'deleteMenu';
30011
+ }
30599
30012
  this.cdr.markForCheck();
30600
30013
  }
30601
30014
  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 }); }
30602
- 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"] }] }); }
30015
+ 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"] }] }); }
30603
30016
  }
30604
30017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
30605
30018
  type: Component,
@@ -30610,17 +30023,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30610
30023
  MatDialogModule,
30611
30024
  ConfirmationDialogComponent,
30612
30025
  TranslateModule,
30613
- ], 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" }]
30026
+ ], 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" }]
30614
30027
  }], ctorParameters: () => [{ type: i1$b.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
30615
30028
  type: Input
30616
30029
  }], canDelete: [{
30617
30030
  type: Input
30031
+ }], isDraftPage: [{
30032
+ type: Input
30618
30033
  }], duplicate: [{
30619
30034
  type: Output
30620
30035
  }], delete: [{
30621
30036
  type: Output
30622
30037
  }], closeActionMenu: [{
30623
30038
  type: Output
30039
+ }], rollback: [{
30040
+ type: Output
30624
30041
  }], trigger: [{
30625
30042
  type: ViewChild,
30626
30043
  args: [MatMenuTrigger]
@@ -30645,6 +30062,7 @@ class ResultsTableComponent {
30645
30062
  this.recordClick = new EventEmitter();
30646
30063
  this.duplicateRecord = new EventEmitter();
30647
30064
  this.deleteRecord = new EventEmitter();
30065
+ this.rollbackDraft = new EventEmitter();
30648
30066
  this.recordsSelectedChange = new EventEmitter();
30649
30067
  this.isActionMenuOpen = false;
30650
30068
  }
@@ -30723,6 +30141,10 @@ class ResultsTableComponent {
30723
30141
  this.deleteRecord.emit(item);
30724
30142
  this.closeActionMenu();
30725
30143
  }
30144
+ handleRollback(item) {
30145
+ this.rollbackDraft.emit(item);
30146
+ this.closeActionMenu();
30147
+ }
30726
30148
  setSortBy(col, order) {
30727
30149
  this.sortByChange.emit([col, order]);
30728
30150
  }
@@ -30747,7 +30169,7 @@ class ResultsTableComponent {
30747
30169
  this.recordsSelectedChange.emit([[record], selected]);
30748
30170
  }
30749
30171
  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 }); }
30750
- 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"] }] }); }
30172
+ 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"] }] }); }
30751
30173
  }
30752
30174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
30753
30175
  type: Component,
@@ -30761,7 +30183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30761
30183
  ActionMenuComponent,
30762
30184
  NgIconComponent,
30763
30185
  CdkOverlayOrigin,
30764
- ], 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" }]
30186
+ ], 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" }]
30765
30187
  }], ctorParameters: () => [{ type: i1$9.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }], propDecorators: { records: [{
30766
30188
  type: Input
30767
30189
  }], selectedRecordsIdentifiers: [{
@@ -30786,6 +30208,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30786
30208
  type: Output
30787
30209
  }], deleteRecord: [{
30788
30210
  type: Output
30211
+ }], rollbackDraft: [{
30212
+ type: Output
30789
30213
  }], recordsSelectedChange: [{
30790
30214
  type: Output
30791
30215
  }], actionMenuButtons: [{
@@ -33042,7 +32466,7 @@ class ResultsTableContainerComponent {
33042
32466
  this.subscription.unsubscribe();
33043
32467
  }
33044
32468
  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 }); }
33045
- 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"] }] }); }
32469
+ 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"] }] }); }
33046
32470
  }
33047
32471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
33048
32472
  type: Component,
@@ -35191,6 +34615,9 @@ const loadFullMetadata = createAction('[Metadata view] Load full metadata', prop
35191
34615
  const setIncompleteMetadata = createAction('[Metadata view] Set incomplete metadata', props());
35192
34616
  const loadFullMetadataSuccess = createAction('[Metadata view] Load full metadata success', props());
35193
34617
  const loadFullMetadataFailure = createAction('[Metadata view] Load full metadata failure', props());
34618
+ const loadFeatureCatalog = createAction("[Metadata view] Load metadata's feature catalog", props());
34619
+ const loadFeatureCatalogSuccess = createAction('[Metadata view] Load metadata feature catalog success', props());
34620
+ const loadFeatureCatalogFailure = createAction('[Metadata view] Load metadata feature catalog failure', props());
35194
34621
  const closeMetadata = createAction('[Metadata view] close');
35195
34622
  /*
35196
34623
  Related actions
@@ -35216,6 +34643,9 @@ var mdview_actions = /*#__PURE__*/Object.freeze({
35216
34643
  addUserFeedbackFailure: addUserFeedbackFailure,
35217
34644
  addUserFeedbackSuccess: addUserFeedbackSuccess,
35218
34645
  closeMetadata: closeMetadata,
34646
+ loadFeatureCatalog: loadFeatureCatalog,
34647
+ loadFeatureCatalogFailure: loadFeatureCatalogFailure,
34648
+ loadFeatureCatalogSuccess: loadFeatureCatalogSuccess,
35219
34649
  loadFullMetadata: loadFullMetadata,
35220
34650
  loadFullMetadataFailure: loadFullMetadataFailure,
35221
34651
  loadFullMetadataSuccess: loadFullMetadataSuccess,
@@ -35233,6 +34663,8 @@ const initialMetadataViewState = {
35233
34663
  loadingFull: false,
35234
34664
  allUserFeedbacksLoading: false,
35235
34665
  addUserFeedbackLoading: false,
34666
+ featureCatalogLoading: false,
34667
+ featureCatalogError: null,
35236
34668
  };
35237
34669
  const metadataViewReducer = createReducer(initialMetadataViewState,
35238
34670
  /*
@@ -35292,6 +34724,22 @@ on(loadUserFeedbacks, (state) => ({
35292
34724
  error: { otherError, notFound },
35293
34725
  addUserFeedbackLoading: false,
35294
34726
  allUserFeedbacksLoading: false,
34727
+ })),
34728
+ /**
34729
+ * FeatureCatalog reducers
34730
+ */
34731
+ on(loadFeatureCatalog, (state) => ({
34732
+ ...state,
34733
+ featureCatalogError: null,
34734
+ featureCatalogLoading: true,
34735
+ })), on(loadFeatureCatalogSuccess, (state, { datasetCatalog }) => ({
34736
+ ...state,
34737
+ featureCatalog: datasetCatalog,
34738
+ featureCatalogLoading: false,
34739
+ })), on(loadFeatureCatalogFailure, (state, { error }) => ({
34740
+ ...state,
34741
+ featureCatalogError: error,
34742
+ featureCatalogLoading: false,
35295
34743
  })));
35296
34744
  function reducer$1(metadataViewState, action) {
35297
34745
  return metadataViewReducer(metadataViewState, action);
@@ -35320,6 +34768,11 @@ const getChartConfig = createSelector(getMdViewState, (state) => state.chartConf
35320
34768
  const getUserFeedbacks = createSelector(getMdViewState, (state) => state.userFeedbacks);
35321
34769
  const getAllUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.allUserFeedbacksLoading);
35322
34770
  const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.addUserFeedbackLoading);
34771
+ /*
34772
+ Feature Catalog Selectors
34773
+ */
34774
+ const getFeatureCatalog = createSelector(getMdViewState, (state) => state.featureCatalog);
34775
+ const getFeatureCatalogIsLoading = createSelector(getMdViewState, (state) => state.featureCatalogLoading);
35323
34776
 
35324
34777
  class FetchError {
35325
34778
  constructor(type, info, httpStatus = 0) {
@@ -35435,8 +34888,8 @@ function fetchHeaders(url) {
35435
34888
  return parseHeaders(response.headers);
35436
34889
  });
35437
34890
  }
35438
- function fetchDataAsText(url) {
35439
- return useCache(() => sharedFetch(url)
34891
+ function fetchDataAsText(url, cacheActive) {
34892
+ const fetchFactory = () => sharedFetch(url)
35440
34893
  .catch((error) => {
35441
34894
  throw FetchError.corsOrNetwork(error.message);
35442
34895
  })
@@ -35445,10 +34898,11 @@ function fetchDataAsText(url) {
35445
34898
  throw FetchError.http(response.status, await response.text());
35446
34899
  }
35447
34900
  return response.text();
35448
- }), url, 'asText');
34901
+ });
34902
+ return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
35449
34903
  }
35450
- function fetchDataAsArrayBuffer(url) {
35451
- return useCache(() => sharedFetch(url)
34904
+ function fetchDataAsArrayBuffer(url, cacheActive) {
34905
+ const fetchFactory = () => sharedFetch(url)
35452
34906
  .catch((error) => {
35453
34907
  throw FetchError.corsOrNetwork(error.message);
35454
34908
  })
@@ -35458,7 +34912,8 @@ function fetchDataAsArrayBuffer(url) {
35458
34912
  }
35459
34913
  // convert to a numeric array so that we can store the response in cache
35460
34914
  return Array.from(new Uint8Array(await response.arrayBuffer()));
35461
- }), url, 'asArrayBuffer').then((array) => {
34915
+ });
34916
+ return (cacheActive ? useCache(fetchFactory, url, 'asArrayBuffer') : fetchFactory()).then((array) => {
35462
34917
  return new Uint8Array(array).buffer;
35463
34918
  });
35464
34919
  }
@@ -35604,68 +35059,6 @@ function getJsonDataItemsProxy(items) {
35604
35059
  });
35605
35060
  }
35606
35061
 
35607
- class BaseReader {
35608
- constructor(url) {
35609
- this.url = url;
35610
- this.selected = null;
35611
- this.groupedBy = null;
35612
- this.aggregations = null;
35613
- this.filter = null;
35614
- this.sort = null;
35615
- this.startIndex = null;
35616
- this.count = null;
35617
- }
35618
- load() {
35619
- throw new Error('not implemented');
35620
- }
35621
- get properties() {
35622
- throw new Error('not implemented');
35623
- }
35624
- get info() {
35625
- throw new Error('not implemented');
35626
- }
35627
- read() {
35628
- throw new Error('not implemented');
35629
- }
35630
- selectAll() {
35631
- this.groupedBy = null;
35632
- this.aggregations = null;
35633
- this.selected = null;
35634
- this.filter = null;
35635
- this.startIndex = null;
35636
- this.count = null;
35637
- return this;
35638
- }
35639
- select(...selectedFields) {
35640
- this.selected = selectedFields;
35641
- this.aggregations = null; // clear aggregations & groups when selecting fields
35642
- this.groupedBy = null;
35643
- return this;
35644
- }
35645
- groupBy(...groupBy) {
35646
- this.groupedBy = groupBy;
35647
- this.selected = null; // clear normal field selection when aggregating
35648
- return this;
35649
- }
35650
- aggregate(...aggregations) {
35651
- this.aggregations = aggregations;
35652
- return this;
35653
- }
35654
- where(filter) {
35655
- this.filter = filter;
35656
- return this;
35657
- }
35658
- orderBy(...fieldSorts) {
35659
- this.sort = fieldSorts;
35660
- return this;
35661
- }
35662
- limit(startIndex, count) {
35663
- this.startIndex = startIndex;
35664
- this.count = count;
35665
- return this;
35666
- }
35667
- }
35668
-
35669
35062
  function filterToSql(filter) {
35670
35063
  const operator = filter[0];
35671
35064
  const args = filter.slice(1);
@@ -35759,7 +35152,80 @@ function generateSqlQuery(selected = null, filter = null, sort = null, startInde
35759
35152
  return sqlSelect + sqlFrom + sqlGroupBy + sqlOrderBy + sqlWhere + sqlLimit;
35760
35153
  }
35761
35154
 
35762
- class BaseFileReader extends BaseReader {
35155
+ class BaseReader {
35156
+ constructor(url) {
35157
+ this.url = url;
35158
+ this.selected = null;
35159
+ this.groupedBy = null;
35160
+ this.aggregations = null;
35161
+ this.filter = null;
35162
+ this.sort = null;
35163
+ this.startIndex = null;
35164
+ this.count = null;
35165
+ }
35166
+ load() {
35167
+ throw new Error('not implemented');
35168
+ }
35169
+ get properties() {
35170
+ throw new Error('not implemented');
35171
+ }
35172
+ get info() {
35173
+ throw new Error('not implemented');
35174
+ }
35175
+ read() {
35176
+ throw new Error('not implemented');
35177
+ }
35178
+ selectAll() {
35179
+ this.groupedBy = null;
35180
+ this.aggregations = null;
35181
+ this.selected = null;
35182
+ this.filter = null;
35183
+ this.startIndex = null;
35184
+ this.count = null;
35185
+ return this;
35186
+ }
35187
+ select(...selectedFields) {
35188
+ this.selected = selectedFields;
35189
+ this.aggregations = null; // clear aggregations & groups when selecting fields
35190
+ this.groupedBy = null;
35191
+ return this;
35192
+ }
35193
+ groupBy(...groupBy) {
35194
+ this.groupedBy = groupBy;
35195
+ this.selected = null; // clear normal field selection when aggregating
35196
+ return this;
35197
+ }
35198
+ aggregate(...aggregations) {
35199
+ this.aggregations = aggregations;
35200
+ return this;
35201
+ }
35202
+ where(filter) {
35203
+ this.filter = filter;
35204
+ return this;
35205
+ }
35206
+ orderBy(...fieldSorts) {
35207
+ this.sort = fieldSorts;
35208
+ return this;
35209
+ }
35210
+ limit(startIndex, count) {
35211
+ this.startIndex = startIndex;
35212
+ this.count = count;
35213
+ return this;
35214
+ }
35215
+ }
35216
+
35217
+ class BaseCacheReader extends BaseReader {
35218
+ constructor(url, cacheActive = true) {
35219
+ super(url);
35220
+ this.url = url;
35221
+ this.cacheActive = cacheActive;
35222
+ }
35223
+ setCacheActive(value) {
35224
+ this.cacheActive = value;
35225
+ }
35226
+ }
35227
+
35228
+ class BaseFileReader extends BaseCacheReader {
35763
35229
  getData() {
35764
35230
  throw new Error('not implemented');
35765
35231
  }
@@ -35823,7 +35289,7 @@ function parseCsv(text) {
35823
35289
  }
35824
35290
  class CsvReader extends BaseFileReader {
35825
35291
  getData() {
35826
- return fetchDataAsText(this.url).then(parseCsv);
35292
+ return fetchDataAsText(this.url, this.cacheActive).then(parseCsv);
35827
35293
  }
35828
35294
  }
35829
35295
 
@@ -35840,7 +35306,7 @@ function parseJson(text) {
35840
35306
  }
35841
35307
  class JsonReader extends BaseFileReader {
35842
35308
  getData() {
35843
- return fetchDataAsText(this.url).then(parseJson);
35309
+ return fetchDataAsText(this.url, this.cacheActive).then(parseJson);
35844
35310
  }
35845
35311
  }
35846
35312
 
@@ -35859,7 +35325,7 @@ function parseGeojson(text) {
35859
35325
  }
35860
35326
  class GeojsonReader extends BaseFileReader {
35861
35327
  getData() {
35862
- return fetchDataAsText(this.url).then(parseGeojson);
35328
+ return fetchDataAsText(this.url, this.cacheActive).then(parseGeojson);
35863
35329
  }
35864
35330
  }
35865
35331
 
@@ -35881,7 +35347,7 @@ function parseExcel(buffer) {
35881
35347
  }
35882
35348
  class ExcelReader extends BaseFileReader {
35883
35349
  getData() {
35884
- return fetchDataAsArrayBuffer(this.url).then(parseExcel);
35350
+ return fetchDataAsArrayBuffer(this.url, this.cacheActive).then(parseExcel);
35885
35351
  }
35886
35352
  }
35887
35353
 
@@ -35908,19 +35374,21 @@ function parseGml(text, namespace, version) {
35908
35374
  throw Error("Couldn't retrieve namespace url");
35909
35375
  }
35910
35376
  class GmlReader extends BaseFileReader {
35911
- constructor(url, namespace, version) {
35377
+ constructor(url, namespace, version, cacheActive = true) {
35912
35378
  super(url);
35379
+ this.url = url;
35913
35380
  this.namespace = namespace;
35914
35381
  this.version = version;
35382
+ this.cacheActive = cacheActive;
35915
35383
  }
35916
35384
  getData() {
35917
- return fetchDataAsText(this.url).then((text) => parseGml(text, this.namespace, this.version));
35385
+ return fetchDataAsText(this.url, this.cacheActive).then((text) => parseGml(text, this.namespace, this.version));
35918
35386
  }
35919
35387
  }
35920
35388
 
35921
- class WfsReader extends BaseReader {
35922
- constructor(url, wfsEndpoint, featureTypeName) {
35923
- super(url);
35389
+ class WfsReader extends BaseCacheReader {
35390
+ constructor(url, wfsEndpoint, featureTypeName, cacheActive) {
35391
+ super(url, cacheActive);
35924
35392
  this.endpoint = wfsEndpoint;
35925
35393
  this.featureTypeName = featureTypeName;
35926
35394
  this.version = this.endpoint.getVersion();
@@ -35975,9 +35443,9 @@ class WfsReader extends BaseReader {
35975
35443
  throw new Error('wfs.geojsongml.notsupported');
35976
35444
  }
35977
35445
  }
35978
- getData() {
35979
- if (this.aggregations || this.groupedBy) {
35980
- throw new Error(marker('wfs.aggregations.notsupported'));
35446
+ async getData(aggregation, groupedBy) {
35447
+ if (aggregation || groupedBy) {
35448
+ return { items: await this.getQueryData() };
35981
35449
  }
35982
35450
  const asJson = this.endpoint.supportsJson(this.featureTypeName);
35983
35451
  const attributes = this.selected ?? undefined;
@@ -35997,19 +35465,26 @@ class WfsReader extends BaseReader {
35997
35465
  // Direct update on string url to prevent encoding of +A and +D
35998
35466
  url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`;
35999
35467
  }
36000
- return fetchDataAsText(url).then((text) => asJson
35468
+ return fetchDataAsText(url, this.cacheActive).then((text) => asJson
36001
35469
  ? parseGeojson(text)
36002
35470
  : parseGml(text, this.featureTypeName, this.version));
36003
35471
  }
35472
+ async getQueryData() {
35473
+ const items = (await this.getData()).items;
35474
+ const jsonItems = getJsonDataItemsProxy(items);
35475
+ const query = generateSqlQuery(this.selected, this.filter, this.sort, this.startIndex, this.count, this.groupedBy, this.aggregations);
35476
+ const result = await import('alasql').then((module) => module.default(query, [jsonItems]));
35477
+ return result.map(jsonToGeojsonFeature);
35478
+ }
36004
35479
  load() {
36005
35480
  // Nothing to load for Wfs
36006
35481
  }
36007
35482
  async read() {
36008
- return (await this.getData()).items;
35483
+ return (await this.getData(this.aggregations, this.groupedBy)).items;
36009
35484
  }
36010
35485
  }
36011
35486
 
36012
- async function openDataset(url, typeHint, options) {
35487
+ async function openDataset(url, typeHint, options, cacheActive) {
36013
35488
  const fileType = await inferDatasetType(url, typeHint);
36014
35489
  let reader;
36015
35490
  try {
@@ -36033,6 +35508,7 @@ async function openDataset(url, typeHint, options) {
36033
35508
  reader = await WfsReader.createReader(url, options.wfsFeatureType);
36034
35509
  break;
36035
35510
  }
35511
+ reader.setCacheActive(cacheActive);
36036
35512
  reader.load();
36037
35513
  return reader;
36038
35514
  }
@@ -36049,8 +35525,8 @@ async function openDataset(url, typeHint, options) {
36049
35525
  * 2. otherwise, look for a Content-Type header in the response with a supported mime type
36050
35526
  * 3. if no valid mime type was found, look for an explicit file extension in the url (.csv, .geojson etc.)
36051
35527
  */
36052
- async function readDataset(url, typeHint, options) {
36053
- const reader = await openDataset(url, typeHint, options);
35528
+ async function readDataset(url, typeHint, options, cacheActive = true) {
35529
+ const reader = await openDataset(url, typeHint, options, cacheActive);
36054
35530
  try {
36055
35531
  return await reader.read();
36056
35532
  }
@@ -36211,18 +35687,18 @@ class DataService {
36211
35687
  mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
36212
35688
  }));
36213
35689
  }
36214
- readAsGeoJson(link) {
36215
- return this.getDataset(link).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
35690
+ readAsGeoJson(link, cacheActive) {
35691
+ return this.getDataset(link, cacheActive).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
36216
35692
  type: 'FeatureCollection',
36217
35693
  features,
36218
35694
  })));
36219
35695
  }
36220
- getDataset(link) {
35696
+ getDataset(link, cacheActive) {
36221
35697
  if (link.type === 'service' && link.accessServiceProtocol === 'wfs') {
36222
35698
  const wfsUrlEndpoint = this.proxy.getProxiedUrl(link.url.toString());
36223
35699
  return from(openDataset(wfsUrlEndpoint, 'wfs', {
36224
35700
  wfsFeatureType: link.name,
36225
- }));
35701
+ }, cacheActive));
36226
35702
  }
36227
35703
  else if (link.type === 'download') {
36228
35704
  const linkProxifiedUrl = this.proxy.getProxiedUrl(link.url.toString());
@@ -36230,18 +35706,18 @@ class DataService {
36230
35706
  const supportedType = SupportedTypes.indexOf(format) > -1
36231
35707
  ? format
36232
35708
  : undefined;
36233
- return from(openDataset(linkProxifiedUrl, supportedType)).pipe();
35709
+ return from(openDataset(linkProxifiedUrl, supportedType, undefined, cacheActive)).pipe();
36234
35710
  }
36235
35711
  else if (link.type === 'service' &&
36236
35712
  link.accessServiceProtocol === 'esriRest') {
36237
35713
  const url = this.getDownloadUrlFromEsriRest(link.url.toString(), 'geojson');
36238
- return from(openDataset(url, 'geojson')).pipe();
35714
+ return from(openDataset(url, 'geojson', undefined, cacheActive)).pipe();
36239
35715
  }
36240
35716
  else if (link.type === 'service' &&
36241
35717
  link.accessServiceProtocol === 'ogcFeatures') {
36242
35718
  return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(switchMap$1((collectionInfo) => {
36243
35719
  const geojsonUrl = collectionInfo.jsonDownloadLink;
36244
- return openDataset(geojsonUrl, 'geojson');
35720
+ return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
36245
35721
  }), tap$1((url) => {
36246
35722
  if (url === null) {
36247
35723
  throw new Error('wfs.geojsongml.notsupported');
@@ -36806,6 +36282,7 @@ class ChartViewComponent {
36806
36282
  this.dataService = dataService;
36807
36283
  this.changeDetector = changeDetector;
36808
36284
  this.translateService = translateService;
36285
+ this.cacheActive = true;
36809
36286
  this.currentLink$ = new BehaviorSubject(null);
36810
36287
  this.aggregation$ = new BehaviorSubject('sum');
36811
36288
  this.xProperty$ = new BehaviorSubject(undefined);
@@ -36835,7 +36312,7 @@ class ChartViewComponent {
36835
36312
  this.dataset$ = this.currentLink$.pipe(filter((link) => !!link), switchMap$1((link) => {
36836
36313
  this.error = null;
36837
36314
  this.loading = true;
36838
- return this.dataService.getDataset(link).pipe(catchError((error) => {
36315
+ return this.dataService.getDataset(link, this.cacheActive).pipe(catchError((error) => {
36839
36316
  this.handleError(error);
36840
36317
  return EMPTY;
36841
36318
  }));
@@ -36904,7 +36381,7 @@ class ChartViewComponent {
36904
36381
  this.changeDetector.detectChanges();
36905
36382
  }
36906
36383
  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 }); }
36907
- 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 }); }
36384
+ 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 }); }
36908
36385
  }
36909
36386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, decorators: [{
36910
36387
  type: Component,
@@ -36916,7 +36393,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
36916
36393
  LoadingMaskComponent,
36917
36394
  PopupAlertComponent,
36918
36395
  ], 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" }]
36919
- }], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { link: [{
36396
+ }], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
36397
+ type: Input
36398
+ }], link: [{
36920
36399
  type: Input
36921
36400
  }], aggregation: [{
36922
36401
  type: Input
@@ -37089,6 +36568,7 @@ class TableViewComponent {
37089
36568
  constructor(dataService, translateService) {
37090
36569
  this.dataService = dataService;
37091
36570
  this.translateService = translateService;
36571
+ this.cacheActive = true;
37092
36572
  this.currentLink$ = new BehaviorSubject(null);
37093
36573
  this.loading = false;
37094
36574
  this.error = null;
@@ -37106,7 +36586,7 @@ class TableViewComponent {
37106
36586
  }), startWith(undefined), shareReplay(1));
37107
36587
  }
37108
36588
  getDatasetReader(link) {
37109
- return this.dataService.getDataset(link);
36589
+ return this.dataService.getDataset(link, this.cacheActive);
37110
36590
  }
37111
36591
  onTableSelect(event) {
37112
36592
  console.log(event);
@@ -37129,7 +36609,7 @@ class TableViewComponent {
37129
36609
  this.loading = false;
37130
36610
  }
37131
36611
  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 }); }
37132
- 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 }); }
36612
+ 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 }); }
37133
36613
  }
37134
36614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, decorators: [{
37135
36615
  type: Component,
@@ -37140,7 +36620,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37140
36620
  PopupAlertComponent,
37141
36621
  TranslateModule,
37142
36622
  ], 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" }]
37143
- }], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { link: [{
36623
+ }], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
36624
+ type: Input
36625
+ }], link: [{
37144
36626
  type: Input
37145
36627
  }] } });
37146
36628
 
@@ -37159,7 +36641,15 @@ class MdViewFacade {
37159
36641
  this.isPresent$ = this.store.pipe(select(getMetadataUuid), map$1((uuid) => !!uuid));
37160
36642
  this.isMetadataLoading$ = this.store.pipe(select(getMetadataIsLoading));
37161
36643
  this.metadata$ = this.store.pipe(select(getMetadata), filter((md) => !!md));
36644
+ this.featureCatalog$ = this.store.pipe(select(getFeatureCatalog));
37162
36645
  this.isIncomplete$ = this.store.pipe(select(getMetadataIsIncomplete), filter((incomplete) => incomplete !== null));
36646
+ this.isHighUpdateFrequency$ = this.metadata$.pipe(map$1((record) => {
36647
+ if (record.updateFrequency instanceof Object) {
36648
+ return (record.updateFrequency.per === 'day' &&
36649
+ record.updateFrequency.updatedTimes > 1);
36650
+ }
36651
+ return record.updateFrequency === 'continual';
36652
+ }));
37163
36653
  this.error$ = this.store.pipe(select(getMetadataError));
37164
36654
  this.related$ = this.store.pipe(select(getRelated));
37165
36655
  this.chartConfig$ = this.store.pipe(select(getChartConfig));
@@ -37255,6 +36745,11 @@ class MdViewEffects {
37255
36745
  }
37256
36746
  return loadFullMetadataSuccess({ full: record });
37257
36747
  }), catchError((error) => of(loadFullMetadataFailure({ otherError: error.message })))));
36748
+ this.loadFeatureCatalog$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), filter(({ full }) => full !== undefined), switchMap$1(({ full }) => this.recordsRepository.getFeatureCatalog(full)), map$1((featureCatalog) => loadFeatureCatalogSuccess({
36749
+ datasetCatalog: featureCatalog,
36750
+ })), catchError((error) => of(loadFeatureCatalogFailure({
36751
+ error: error.message,
36752
+ })))));
37258
36753
  /*
37259
36754
  Related effects
37260
36755
  */
@@ -37840,10 +37335,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37840
37335
  }] } });
37841
37336
 
37842
37337
  class DataViewComponent {
37338
+ set exceedsLimit(value) {
37339
+ this.excludeWfs$.next(value);
37340
+ }
37843
37341
  constructor(mdViewFacade) {
37844
37342
  this.mdViewFacade = mdViewFacade;
37845
37343
  this.displaySource = true;
37846
37344
  this.chartConfig$ = new BehaviorSubject(null);
37345
+ this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map$1((highF) => !highF));
37346
+ this.hidePreview = false;
37347
+ this.excludeWfs$ = new BehaviorSubject(false);
37847
37348
  this.compatibleDataLinks$ = combineLatest([
37848
37349
  this.mdViewFacade.dataLinks$,
37849
37350
  this.mdViewFacade.geoDataLinks$,
@@ -37854,7 +37355,7 @@ class DataViewComponent {
37854
37355
  }));
37855
37356
  this.dropdownChoices$ = this.compatibleDataLinks$.pipe(tap$1((links) => {
37856
37357
  if (links.indexOf(this.selectedLink$.value) === -1) {
37857
- this.selectedLink$.next(links[0]);
37358
+ this.selectLink(JSON.stringify(links[0]));
37858
37359
  }
37859
37360
  }), map$1((links) => links.map((link) => ({
37860
37361
  label: getLinkLabel(link),
@@ -37868,10 +37369,20 @@ class DataViewComponent {
37868
37369
  selectLink(linkAsString) {
37869
37370
  const link = JSON.parse(linkAsString);
37870
37371
  link.url = new URL(link.url);
37871
- this.selectedLink$.next(link);
37372
+ this.excludeWfs$
37373
+ .pipe(tap$1((excludeWfs) => {
37374
+ this.hidePreview =
37375
+ link['accessServiceProtocol'] === 'wfs' &&
37376
+ excludeWfs &&
37377
+ this.mode === 'chart'
37378
+ ? true
37379
+ : false;
37380
+ this.selectedLink$.next(link);
37381
+ }))
37382
+ .subscribe();
37872
37383
  }
37873
37384
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
37874
- 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 }); }
37385
+ 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 }); }
37875
37386
  }
37876
37387
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
37877
37388
  type: Component,
@@ -37881,11 +37392,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37881
37392
  TableViewComponent,
37882
37393
  TranslateModule,
37883
37394
  ChartViewComponent,
37884
- ], 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" }]
37395
+ PopupAlertComponent,
37396
+ ], 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" }]
37885
37397
  }], ctorParameters: () => [{ type: MdViewFacade }], propDecorators: { mode: [{
37886
37398
  type: Input
37887
37399
  }], displaySource: [{
37888
37400
  type: Input
37401
+ }], exceedsLimit: [{
37402
+ type: Input
37889
37403
  }], chartConfig$: [{
37890
37404
  type: Output
37891
37405
  }] } });
@@ -38057,7 +37571,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38057
37571
  marker('map.dropdown.placeholder');
38058
37572
  marker('wfs.feature.limit');
38059
37573
  class MapViewComponent {
38060
- set excludeWfs(value) {
37574
+ set exceedsLimit(value) {
38061
37575
  this.excludeWfs$.next(value);
38062
37576
  }
38063
37577
  toggleLegend() {
@@ -38076,6 +37590,7 @@ class MapViewComponent {
38076
37590
  this.changeRef = changeRef;
38077
37591
  this.displaySource = true;
38078
37592
  this.excludeWfs$ = new BehaviorSubject(false);
37593
+ this.hidePreview = false;
38079
37594
  this.showLegend = true;
38080
37595
  this.legendExists = false;
38081
37596
  this.compatibleMapLinks$ = combineLatest([
@@ -38102,9 +37617,10 @@ class MapViewComponent {
38102
37617
  return of([]);
38103
37618
  }
38104
37619
  if (excludeWfs && link.accessServiceProtocol === 'wfs') {
38105
- this.error = 'wfs.feature.limit';
37620
+ this.hidePreview = true;
38106
37621
  return of([]);
38107
37622
  }
37623
+ this.hidePreview = false;
38108
37624
  this.loading = true;
38109
37625
  this.error = null;
38110
37626
  return this.getLayerFromLink(link).pipe(map$1((layer) => [layer]), catchError((e) => {
@@ -38174,7 +37690,8 @@ class MapViewComponent {
38174
37690
  link.accessServiceProtocol === 'esriRest' ||
38175
37691
  link.accessServiceProtocol === 'ogcFeatures')) ||
38176
37692
  link.type === 'download') {
38177
- return this.dataService.readAsGeoJson(link).pipe(map$1((data) => ({
37693
+ const cacheActive = true; // TODO implement whether should be true or false
37694
+ return this.dataService.readAsGeoJson(link, cacheActive).pipe(map$1((data) => ({
38178
37695
  type: 'geojson',
38179
37696
  data,
38180
37697
  })));
@@ -38185,7 +37702,7 @@ class MapViewComponent {
38185
37702
  this.selectedLinkIndex$.next(link);
38186
37703
  }
38187
37704
  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 }); }
38188
- 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 }); }
37705
+ 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 }); }
38189
37706
  }
38190
37707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, decorators: [{
38191
37708
  type: Component,
@@ -38201,8 +37718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38201
37718
  ExternalViewerButtonComponent,
38202
37719
  ButtonComponent,
38203
37720
  MapLegendComponent,
38204
- ], 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" }]
38205
- }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { excludeWfs: [{
37721
+ ], 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" }]
37722
+ }], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { exceedsLimit: [{
38206
37723
  type: Input
38207
37724
  }], displaySource: [{
38208
37725
  type: Input
@@ -38689,8 +38206,8 @@ const DEFAULT_CONFIGURATION = {
38689
38206
  labelKey: marker('editor.record.form.page.description'),
38690
38207
  sections: [
38691
38208
  TITLE_SECTION,
38692
- ABOUT_SECTION,
38693
38209
  CLASSIFICATION_SECTION,
38210
+ ABOUT_SECTION,
38694
38211
  GEOGRAPHICAL_COVERAGE_SECTION,
38695
38212
  ],
38696
38213
  },
@@ -39035,9 +38552,8 @@ var WizardFieldType;
39035
38552
  (function (WizardFieldType) {
39036
38553
  WizardFieldType[WizardFieldType["TEXT"] = 0] = "TEXT";
39037
38554
  WizardFieldType[WizardFieldType["TEXT_AREA"] = 1] = "TEXT_AREA";
39038
- WizardFieldType[WizardFieldType["CHIPS"] = 2] = "CHIPS";
39039
- WizardFieldType[WizardFieldType["DATA_PICKER"] = 3] = "DATA_PICKER";
39040
- WizardFieldType[WizardFieldType["DROPDOWN"] = 4] = "DROPDOWN";
38555
+ WizardFieldType[WizardFieldType["DATA_PICKER"] = 2] = "DATA_PICKER";
38556
+ WizardFieldType[WizardFieldType["DROPDOWN"] = 3] = "DROPDOWN";
39041
38557
  })(WizardFieldType || (WizardFieldType = {}));
39042
38558
 
39043
38559
  class WizardService {
@@ -39159,9 +38675,6 @@ class WizardFieldComponent {
39159
38675
  case WizardFieldType.TEXT: {
39160
38676
  return data || '';
39161
38677
  }
39162
- case WizardFieldType.CHIPS: {
39163
- return data ? JSON.parse(data) : [];
39164
- }
39165
38678
  case WizardFieldType.TEXT_AREA: {
39166
38679
  return data || '';
39167
38680
  }
@@ -39191,10 +38704,6 @@ class WizardFieldComponent {
39191
38704
  this.initializeTextInputListener();
39192
38705
  break;
39193
38706
  }
39194
- case WizardFieldType.CHIPS: {
39195
- this.initializeChipsListener();
39196
- break;
39197
- }
39198
38707
  case WizardFieldType.TEXT_AREA: {
39199
38708
  this.initializeTextAreaListener();
39200
38709
  return;
@@ -39214,11 +38723,6 @@ class WizardFieldComponent {
39214
38723
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
39215
38724
  }));
39216
38725
  }
39217
- initializeChipsListener() {
39218
- this.subs.add(this.chips.itemsChange.subscribe((items) => {
39219
- this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, JSON.stringify(items));
39220
- }));
39221
- }
39222
38726
  initializeTextAreaListener() {
39223
38727
  this.subs.add(this.textArea.valueChange.subscribe((value) => {
39224
38728
  this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
@@ -39252,7 +38756,7 @@ class WizardFieldComponent {
39252
38756
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39253
38757
  },
39254
38758
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39255
- ], 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 }); }
38759
+ ], 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 }); }
39256
38760
  }
39257
38761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WizardFieldComponent, decorators: [{
39258
38762
  type: Component,
@@ -39264,15 +38768,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39264
38768
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
39265
38769
  },
39266
38770
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
39267
- ], 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"] }]
38771
+ ], 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"] }]
39268
38772
  }], ctorParameters: () => [{ type: WizardService }, { type: i0.ChangeDetectorRef }], propDecorators: { wizardFieldConfig: [{
39269
38773
  type: Input
39270
38774
  }], searchText: [{
39271
38775
  type: ViewChild,
39272
38776
  args: ['searchText']
39273
- }], chips: [{
39274
- type: ViewChild,
39275
- args: ['chips']
39276
38777
  }], textArea: [{
39277
38778
  type: ViewChild,
39278
38779
  args: ['textArea']
@@ -39849,7 +39350,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39849
39350
 
39850
39351
  class FormFieldRichComponent {
39851
39352
  constructor() {
39852
- this.placeholder = 'Votre texte ici'; //TODO: translate
39353
+ this.placeholder = '';
39853
39354
  this.valueChange = new EventEmitter();
39854
39355
  this.preview = false;
39855
39356
  }
@@ -40098,6 +39599,7 @@ class FormFieldContactsForResourceComponent {
40098
39599
  'owner',
40099
39600
  'point_of_contact',
40100
39601
  'author',
39602
+ 'publisher',
40101
39603
  ];
40102
39604
  this.roleSectionsToDisplay = [];
40103
39605
  this.allOrganizations = new Map();
@@ -41238,7 +40740,7 @@ class ConstraintCardComponent {
41238
40740
  provideNgIconsConfig({
41239
40741
  size: '1.5rem',
41240
40742
  }),
41241
- ], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>&nbsp;\n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { 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: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40743
+ ], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>&nbsp;\n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { 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: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41242
40744
  }
41243
40745
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConstraintCardComponent, decorators: [{
41244
40746
  type: Component,
@@ -41256,7 +40758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41256
40758
  provideNgIconsConfig({
41257
40759
  size: '1.5rem',
41258
40760
  }),
41259
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>&nbsp;\n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
40761
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>&nbsp;\n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
41260
40762
  }], propDecorators: { label: [{
41261
40763
  type: Input
41262
40764
  }], constraint: [{
@@ -41915,5 +41417,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41915
41417
  * Generated bundle index. Do not edit.
41916
41418
  */
41917
41419
 
41918
- 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 };
41420
+ 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, 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, 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 };
41919
41421
  //# sourceMappingURL=geonetwork-ui.mjs.map