geonetwork-ui 2.3.0-dev.e03215d1 → 2.3.0-dev.e43863db

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 (206) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +2 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +9 -7
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -8
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +15 -4
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -7
  6. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +47 -2
  9. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +1 -1
  10. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +104 -0
  11. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  13. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +8 -1
  14. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +73 -20
  15. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  16. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  17. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +1 -1
  18. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +58 -17
  19. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +7 -3
  20. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  21. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +17 -9
  22. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +34 -5
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +1 -3
  24. package/esm2022/libs/feature/search/src/index.mjs +2 -1
  25. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +1 -1
  26. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +4 -4
  27. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +1 -1
  28. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +1 -1
  29. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +1 -1
  30. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +1 -1
  31. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  32. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -2
  33. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +2 -2
  34. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +30 -0
  35. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +16 -3
  36. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +89 -54
  37. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +6 -11
  38. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +3 -5
  39. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  40. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +4 -3
  41. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -3
  42. package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +29 -0
  43. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +5 -3
  44. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +6 -5
  45. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  46. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +76 -0
  47. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +42 -18
  48. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +3 -8
  49. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  50. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  51. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  52. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -2
  53. package/esm2022/translations/de.json +12 -14
  54. package/esm2022/translations/en.json +12 -14
  55. package/esm2022/translations/es.json +12 -14
  56. package/esm2022/translations/fr.json +12 -14
  57. package/esm2022/translations/it.json +12 -14
  58. package/esm2022/translations/nl.json +12 -14
  59. package/esm2022/translations/pt.json +12 -14
  60. package/fesm2022/geonetwork-ui.mjs +997 -536
  61. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  62. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +2 -2
  63. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
  64. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +1 -1
  65. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  66. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -1
  67. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  68. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -1
  69. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  70. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  71. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -3
  72. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  73. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +4 -1
  74. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  75. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +21 -0
  76. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -0
  77. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  78. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  79. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  80. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +10 -5
  81. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  82. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +7 -0
  83. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  84. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -1
  85. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  86. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  87. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  88. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  89. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +5 -2
  90. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  91. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  92. package/libs/feature/search/src/index.d.ts +1 -0
  93. package/libs/feature/search/src/index.d.ts.map +1 -1
  94. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +3 -3
  95. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  96. package/libs/ui/elements/src/index.d.ts +1 -1
  97. package/libs/ui/elements/src/index.d.ts.map +1 -1
  98. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  99. package/libs/ui/elements/src/lib/error/error.component.d.ts +16 -0
  100. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -0
  101. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +3 -1
  102. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  103. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +22 -4
  104. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  105. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +29 -30
  106. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  107. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +1 -2
  108. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -1
  109. package/libs/ui/inputs/src/index.d.ts +1 -0
  110. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  111. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts +1 -1
  112. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts.map +1 -1
  113. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +2 -1
  114. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  115. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +12 -0
  116. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
  117. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -1
  118. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  119. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -27
  120. package/libs/ui/layout/src/index.d.ts +1 -0
  121. package/libs/ui/layout/src/index.d.ts.map +1 -1
  122. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +25 -0
  123. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -0
  124. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +13 -6
  125. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
  126. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +4 -5
  127. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  128. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  129. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  130. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  131. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  132. package/package.json +2 -2
  133. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +9 -1
  134. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +3 -3
  135. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +35 -31
  136. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +68 -16
  137. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +72 -17
  138. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +16 -10
  139. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -3
  140. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +8 -0
  141. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
  142. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +65 -1
  143. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +0 -0
  144. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +14 -0
  145. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +143 -0
  146. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +5 -0
  147. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  148. package/src/libs/feature/editor/src/lib/fields.config.ts +7 -0
  149. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +7 -0
  150. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +32 -18
  151. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +72 -17
  152. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +7 -0
  153. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +57 -17
  154. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +6 -2
  155. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +17 -9
  156. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +40 -4
  157. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +0 -2
  158. package/src/libs/feature/search/src/index.ts +1 -0
  159. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +4 -4
  160. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -2
  161. package/src/libs/ui/elements/src/index.ts +1 -1
  162. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
  163. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +1 -1
  164. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.html → error/error.component.html} +18 -3
  165. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.ts → error/error.component.ts} +5 -4
  166. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +38 -20
  167. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +12 -0
  168. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +25 -9
  169. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +116 -57
  170. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -6
  171. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +1 -1
  172. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +0 -1
  173. package/src/libs/ui/inputs/src/index.ts +1 -0
  174. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.ts +3 -0
  175. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -0
  176. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +1 -0
  177. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.css +6 -0
  178. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.html +26 -0
  179. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.ts +32 -0
  180. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -0
  181. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +1 -0
  182. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +1 -1
  183. package/src/libs/ui/layout/src/index.ts +1 -0
  184. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +23 -0
  185. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +20 -0
  186. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +84 -0
  187. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +8 -4
  188. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -4
  189. package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +45 -15
  190. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -2
  191. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  192. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  193. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  194. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +1 -1
  195. package/translations/de.json +12 -14
  196. package/translations/en.json +12 -14
  197. package/translations/es.json +12 -14
  198. package/translations/fr.json +12 -14
  199. package/translations/it.json +12 -14
  200. package/translations/nl.json +12 -14
  201. package/translations/pt.json +12 -14
  202. package/translations/sk.json +12 -14
  203. package/esm2022/libs/ui/elements/src/lib/search-results-error/search-results-error.component.mjs +0 -29
  204. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts +0 -15
  205. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts.map +0 -1
  206. /package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.css → error/error.component.css} +0 -0
@@ -0,0 +1,20 @@
1
+ <div
2
+ class="block-list-container flex flex-col"
3
+ #blockContainer
4
+ [ngClass]="containerClass"
5
+ [ngStyle]="{ minHeight: minHeight + 'px' }"
6
+ >
7
+ <ng-content></ng-content>
8
+ </div>
9
+ <div
10
+ *ngIf="pagesCount > 1"
11
+ class="absolute flex flex-row justify-center gap-[14px] p-1"
12
+ [ngClass]="paginationContainerClass"
13
+ >
14
+ <button
15
+ *ngFor="let page of pages"
16
+ class="list-page-dot"
17
+ (click)="goToPage(page)"
18
+ [ngClass]="currentPage === page ? 'bg-primary' : 'bg-gray-400'"
19
+ ></button>
20
+ </div>
@@ -0,0 +1,84 @@
1
+ import {
2
+ AfterViewInit,
3
+ ChangeDetectionStrategy,
4
+ ChangeDetectorRef,
5
+ Component,
6
+ ContentChildren,
7
+ ElementRef,
8
+ Input,
9
+ QueryList,
10
+ ViewChild,
11
+ } from '@angular/core'
12
+ import { CommonModule } from '@angular/common'
13
+
14
+ @Component({
15
+ selector: 'gn-ui-block-list',
16
+ templateUrl: './block-list.component.html',
17
+ styleUrls: ['./block-list.component.css'],
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
19
+ standalone: true,
20
+ imports: [CommonModule],
21
+ })
22
+ export class BlockListComponent implements AfterViewInit {
23
+ @Input() pageSize = 5
24
+ @Input() containerClass = ''
25
+ @Input() paginationContainerClass = 'w-full bottom-0 top-auto'
26
+ @ContentChildren('block', { read: ElementRef }) blocks: QueryList<
27
+ ElementRef<HTMLElement>
28
+ >
29
+ @ViewChild('blockContainer') blockContainer: ElementRef<HTMLElement>
30
+
31
+ protected minHeight = 0
32
+
33
+ protected currentPage = 0
34
+ protected get pages() {
35
+ return new Array(this.pagesCount).fill(0).map((_, i) => i)
36
+ }
37
+
38
+ get isFirstPage() {
39
+ return this.currentPage === 0
40
+ }
41
+ get isLastPage() {
42
+ return this.currentPage === this.pagesCount - 1
43
+ }
44
+ get pagesCount() {
45
+ return this.blocks ? Math.ceil(this.blocks.length / this.pageSize) : 1
46
+ }
47
+
48
+ constructor(private changeDetector: ChangeDetectorRef) {}
49
+
50
+ ngAfterViewInit() {
51
+ this.blocks.changes.subscribe(this.refreshBlocksVisibility)
52
+ this.refreshBlocksVisibility()
53
+
54
+ // we store the first height as the min-height of the list container
55
+ this.minHeight = this.blockContainer.nativeElement.clientHeight
56
+ this.changeDetector.detectChanges()
57
+ }
58
+
59
+ protected refreshBlocksVisibility = () => {
60
+ this.blocks.forEach((block, index) => {
61
+ block.nativeElement.style.display =
62
+ index >= this.currentPage * this.pageSize &&
63
+ index < (this.currentPage + 1) * this.pageSize
64
+ ? null
65
+ : 'none'
66
+ })
67
+ }
68
+
69
+ public goToPage(index: number) {
70
+ this.currentPage = Math.max(Math.min(index, this.pagesCount - 1), 0)
71
+ this.changeDetector.detectChanges()
72
+ this.refreshBlocksVisibility()
73
+ }
74
+
75
+ public previousPage() {
76
+ if (this.isFirstPage) return
77
+ this.goToPage(this.currentPage - 1)
78
+ }
79
+
80
+ public nextPage() {
81
+ if (this.isLastPage) return
82
+ this.goToPage(this.currentPage + 1)
83
+ }
84
+ }
@@ -1,20 +1,24 @@
1
1
  :host .carousel-container ::ng-deep > * {
2
2
  flex-shrink: 0;
3
3
  }
4
+
4
5
  :host {
5
6
  position: relative;
7
+ display: block;
6
8
  }
9
+
7
10
  .carousel-step-dot {
8
11
  width: 6px;
9
12
  height: 6px;
10
13
  border-radius: 6px;
11
14
  position: relative;
12
15
  }
16
+
13
17
  .carousel-step-dot:after {
14
18
  content: '';
15
19
  position: absolute;
16
- left: -4px;
17
- top: -4px;
18
- width: 14px;
19
- height: 14px;
20
+ left: -7px;
21
+ top: -7px;
22
+ width: 20px;
23
+ height: 20px;
20
24
  }
@@ -1,17 +1,17 @@
1
- <div #carouselOverflowContainer class="overflow-hidden h-full w-full">
2
- <div class="carousel-container flex flex-row" [ngClass]="containerClass">
1
+ <div #carouselOverflowContainer class="w-full">
2
+ <div class="carousel-container flex" [ngClass]="containerClass">
3
3
  <ng-content></ng-content>
4
4
  </div>
5
5
  </div>
6
6
  <div
7
7
  *ngIf="steps.length > 1"
8
- class="absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1"
8
+ class="absolute flex flex-row justify-center gap-[14px] p-1"
9
9
  [ngClass]="stepsContainerClass"
10
10
  >
11
11
  <button
12
12
  *ngFor="let step of steps; let i = index"
13
13
  class="carousel-step-dot"
14
14
  (click)="scrollToStep(i)"
15
- [ngClass]="selectedStep === i ? 'bg-secondary' : 'bg-gray-400'"
15
+ [ngClass]="currentStep === i ? 'bg-primary' : 'bg-gray-400'"
16
16
  ></button>
17
17
  </div>
@@ -4,25 +4,49 @@ import {
4
4
  ChangeDetectorRef,
5
5
  Component,
6
6
  ElementRef,
7
+ EventEmitter,
7
8
  Input,
9
+ Output,
8
10
  ViewChild,
9
11
  } from '@angular/core'
10
12
  import EmblaCarousel, { EmblaCarouselType } from 'embla-carousel'
13
+ import { CommonModule } from '@angular/common'
11
14
 
12
15
  @Component({
13
16
  selector: 'gn-ui-carousel',
14
17
  templateUrl: './carousel.component.html',
15
18
  styleUrls: ['./carousel.component.css'],
16
19
  changeDetection: ChangeDetectionStrategy.OnPush,
20
+ standalone: true,
21
+ imports: [CommonModule],
17
22
  })
18
23
  export class CarouselComponent implements AfterViewInit {
24
+ @ViewChild('carouselOverflowContainer') carouselOverflowContainer: ElementRef
25
+
19
26
  @Input() containerClass = ''
20
- @Input() stepsContainerClass = ''
21
- @ViewChild('carouselOverflowContainer')
22
- carouselOverflowContainer: ElementRef
23
- steps: number[] = []
24
- selectedStep = -1
25
- emblaApi: EmblaCarouselType
27
+ @Input() stepsContainerClass = 'w-full bottom-0 top-auto'
28
+ @Output() currentStepChange = new EventEmitter<number>()
29
+
30
+ protected steps: number[] = []
31
+ protected emblaApi: EmblaCarouselType
32
+ protected currentStep = 0
33
+
34
+ protected refreshSteps = () => {
35
+ this.steps = this.emblaApi.scrollSnapList()
36
+ this.currentStep = this.emblaApi.selectedScrollSnap()
37
+ this.currentStepChange.emit(this.currentStep)
38
+ this.changeDetector.detectChanges()
39
+ }
40
+
41
+ get isFirstStep() {
42
+ return this.currentStep === 0
43
+ }
44
+ get isLastStep() {
45
+ return this.currentStep === this.steps.length - 1
46
+ }
47
+ get stepsCount() {
48
+ return this.steps.length
49
+ }
26
50
 
27
51
  constructor(private changeDetector: ChangeDetectorRef) {}
28
52
 
@@ -33,18 +57,24 @@ export class CarouselComponent implements AfterViewInit {
33
57
  duration: 15,
34
58
  }
35
59
  )
36
- const refreshSteps = () => {
37
- this.steps = this.emblaApi.scrollSnapList()
38
- this.selectedStep = this.emblaApi.selectedScrollSnap()
39
- this.changeDetector.detectChanges()
40
- }
60
+
41
61
  this.emblaApi
42
- .on('init', refreshSteps)
43
- .on('reInit', refreshSteps)
44
- .on('select', refreshSteps)
62
+ .on('init', this.refreshSteps)
63
+ .on('reInit', this.refreshSteps)
64
+ .on('select', this.refreshSteps)
45
65
  }
46
66
 
47
- scrollToStep(stepIndex: number) {
67
+ public scrollToStep(stepIndex: number) {
48
68
  this.emblaApi.scrollTo(stepIndex)
49
69
  }
70
+
71
+ public slideToPrevious() {
72
+ if (this.isFirstStep) return
73
+ this.emblaApi.scrollPrev()
74
+ }
75
+
76
+ public slideToNext() {
77
+ if (this.isLastStep) return
78
+ this.emblaApi.scrollNext()
79
+ }
50
80
  }
@@ -15,14 +15,12 @@ import { CarouselComponent } from './carousel/carousel.component'
15
15
  StickyHeaderComponent,
16
16
  AnchorLinkDirective,
17
17
  ExpandablePanelButtonComponent,
18
- CarouselComponent,
19
18
  ],
20
19
  exports: [
21
20
  ExpandablePanelComponent,
22
21
  StickyHeaderComponent,
23
22
  AnchorLinkDirective,
24
23
  ExpandablePanelButtonComponent,
25
- CarouselComponent,
26
24
  ],
27
25
  })
28
26
  export class UiLayoutModule {}
@@ -144,6 +144,7 @@ export function loadAppConfig() {
144
144
  [],
145
145
  [
146
146
  'max_zoom',
147
+ 'do_not_tile_wms',
147
148
  'max_extent',
148
149
  'baselayer',
149
150
  'do_not_use_default_basemap',
@@ -158,6 +159,7 @@ export function loadAppConfig() {
158
159
  ? null
159
160
  : ({
160
161
  MAX_ZOOM: parsedMapSection.max_zoom,
162
+ DO_NOT_TILE_WMS: parsedMapSection.do_not_tile_wms,
161
163
  MAX_EXTENT: parsedMapSection.max_extent,
162
164
  EXTERNAL_VIEWER_URL_TEMPLATE:
163
165
  parsedMapSection.external_viewer_url_template,
@@ -81,6 +81,7 @@ export const MAP_CONFIG_FIXTURE: MapConfig = {
81
81
  MAX_ZOOM: 10,
82
82
  MAX_EXTENT: [-418263.418776, 5251529.591305, 961272.067714, 6706890.609855],
83
83
  DO_NOT_USE_DEFAULT_BASEMAP: false,
84
+ DO_NOT_TILE_WMS: false,
84
85
  EXTERNAL_VIEWER_URL_TEMPLATE:
85
86
  'https://example.com/myviewer/#/?actions=[{"type":"CATALOG:ADD_LAYERS_FROM_CATALOGS","layers":["${layer_name}"],"sources":[{"url":"${service_url}","type":"${service_type}"}]}]',
86
87
  EXTERNAL_VIEWER_OPEN_NEW_TAB: true,
@@ -20,6 +20,7 @@ export interface LayerConfig {
20
20
 
21
21
  export interface MapConfig {
22
22
  MAX_ZOOM?: number
23
+ DO_NOT_TILE_WMS: boolean
23
24
  MAX_EXTENT?: [number, number, number, number] // Expressed as [minx, miny, maxx, maxy]
24
25
  EXTERNAL_VIEWER_URL_TEMPLATE?: string
25
26
  EXTERNAL_VIEWER_OPEN_NEW_TAB?: boolean
@@ -26,7 +26,7 @@ export class LinkClassifierService {
26
26
  case 'wmts':
27
27
  return [LinkUsage.API, LinkUsage.MAP_API]
28
28
  case 'ogcFeatures':
29
- return [LinkUsage.API]
29
+ return [LinkUsage.API, LinkUsage.DOWNLOAD, LinkUsage.GEODATA]
30
30
  default:
31
31
  return [LinkUsage.UNKNOWN]
32
32
  }
@@ -156,6 +156,8 @@
156
156
  "editor.record.form.license.pddl": "",
157
157
  "editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
158
158
  "editor.record.form.resourceUpdated": "",
159
+ "editor.record.form.updateFrequency": "",
160
+ "editor.record.form.updateFrequency.planned": "",
159
161
  "editor.record.loadError.body": "",
160
162
  "editor.record.loadError.closeMessage": "",
161
163
  "editor.record.loadError.title": "",
@@ -226,6 +228,7 @@
226
228
  "multiselect.filter.placeholder": "Suche",
227
229
  "nav.back": "Zurück",
228
230
  "next": "weiter",
231
+ "ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden",
229
232
  "organisation.filter.placeholder": "Ergebnisse filtern",
230
233
  "organisation.sort.sortBy": "Sortieren nach:",
231
234
  "organisations.hits.found": "{hits, plural, =0{Keine Organisation gefunden} other{{hits} von {total} Organisationen angezeigt}}",
@@ -290,14 +293,6 @@
290
293
  "record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
291
294
  "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
292
295
  "record.metadata.related": "Ähnliche Datensätze",
293
- "record.metadata.userFeedbacks": "",
294
- "record.metadata.userFeedbacks.anonymousUser": "",
295
- "record.metadata.userFeedbacks.sortSelector.label": "",
296
- "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
297
- "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
298
- "record.metadata.userFeedbacks.newComment.placeholder": "",
299
- "record.metadata.userFeedbacks.newAnswer.placeholder": "",
300
- "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
301
296
  "record.metadata.sheet": "Weitere Informationen verfügbar unter:",
302
297
  "record.metadata.status": "Status",
303
298
  "record.metadata.technical": "Technische Informationen",
@@ -312,6 +307,14 @@
312
307
  "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
313
308
  "record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen",
314
309
  "record.metadata.usage": "Nutzung und Einschränkungen",
310
+ "record.metadata.userFeedbacks": "",
311
+ "record.metadata.userFeedbacks.anonymousUser": "",
312
+ "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
313
+ "record.metadata.userFeedbacks.newAnswer.placeholder": "",
314
+ "record.metadata.userFeedbacks.newComment.placeholder": "",
315
+ "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
316
+ "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
317
+ "record.metadata.userFeedbacks.sortSelector.label": "",
315
318
  "record.more.details": "Weitere Details",
316
319
  "record.tab.chart": "Diagramm",
317
320
  "record.tab.data": "Tabelle",
@@ -332,6 +335,7 @@
332
335
  "search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
333
336
  "search.error.receivedError": "Ein Fehler ist aufgetreten",
334
337
  "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
338
+ "search.error.recordHasnolink": "",
335
339
  "search.field.any.placeholder": "Suche Datensätze ...",
336
340
  "search.field.sortBy": "Sortieren nach:",
337
341
  "search.filters.clear": "Zurücksetzen",
@@ -371,12 +375,6 @@
371
375
  "table.loading.data": "Daten werden geladen...",
372
376
  "table.object.count": "Objekte in diesem Datensatz",
373
377
  "table.select.data": "Datenquelle",
374
- "timeSincePipe.lessThanAMinute": "",
375
- "timeSincePipe.minutesAgo": "",
376
- "timeSincePipe.hoursAgo": "",
377
- "timeSincePipe.daysAgo": "",
378
- "timeSincePipe.monthsAgo": "",
379
- "timeSincePipe.yearsAgo": "",
380
378
  "tooltip.html.copy": "HTML kopieren",
381
379
  "tooltip.id.copy": "Eindeutige Kennung kopieren",
382
380
  "tooltip.url.copy": "URL kopieren",
@@ -156,6 +156,8 @@
156
156
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
157
157
  "editor.record.form.license.unknown": "Unknown or absent",
158
158
  "editor.record.form.resourceUpdated": "Last update date",
159
+ "editor.record.form.updateFrequency": "Update frequency",
160
+ "editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
159
161
  "editor.record.loadError.body": "The record could not be loaded:",
160
162
  "editor.record.loadError.closeMessage": "Understood",
161
163
  "editor.record.loadError.title": "Error loading record",
@@ -226,6 +228,7 @@
226
228
  "multiselect.filter.placeholder": "Search",
227
229
  "nav.back": "Back",
228
230
  "next": "next",
231
+ "ogc.unreachable.unknown": "The service could not be reached",
229
232
  "organisation.filter.placeholder": "Filter results",
230
233
  "organisation.sort.sortBy": "Sort by:",
231
234
  "organisations.hits.found": "{hits, plural, =0{No organizations found} other{{hits} out of {total} organizations shown}}",
@@ -290,14 +293,6 @@
290
293
  "record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
291
294
  "record.metadata.quality.updateFrequency.success": "Update frequency is specified",
292
295
  "record.metadata.related": "Related records",
293
- "record.metadata.userFeedbacks": "Questions / Answers",
294
- "record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
295
- "record.metadata.userFeedbacks.sortSelector.label": "Sort by ...",
296
- "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Newest comments first",
297
- "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Oldest comments first",
298
- "record.metadata.userFeedbacks.newComment.placeholder": "Write your comment here...",
299
- "record.metadata.userFeedbacks.newAnswer.placeholder": "Answer...",
300
- "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publish",
301
296
  "record.metadata.sheet": "Original metadata",
302
297
  "record.metadata.status": "Status",
303
298
  "record.metadata.technical": "Technical information",
@@ -312,6 +307,14 @@
312
307
  "record.metadata.updateFrequency": "Data Update Frequency",
313
308
  "record.metadata.updatedOn": "Last Data Information Update",
314
309
  "record.metadata.usage": "License and Conditions",
310
+ "record.metadata.userFeedbacks": "Questions / Answers",
311
+ "record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
312
+ "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publish",
313
+ "record.metadata.userFeedbacks.newAnswer.placeholder": "Answer...",
314
+ "record.metadata.userFeedbacks.newComment.placeholder": "Write your comment here...",
315
+ "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Newest comments first",
316
+ "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Oldest comments first",
317
+ "record.metadata.userFeedbacks.sortSelector.label": "Sort by ...",
315
318
  "record.more.details": "Read more",
316
319
  "record.tab.chart": "Chart",
317
320
  "record.tab.data": "Table",
@@ -332,6 +335,7 @@
332
335
  "search.error.couldNotReachApi": "The API could not be reached",
333
336
  "search.error.receivedError": "An error was received",
334
337
  "search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
338
+ "search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
335
339
  "search.field.any.placeholder": "Search datasets ...",
336
340
  "search.field.sortBy": "Sort by:",
337
341
  "search.filters.clear": "Reset",
@@ -371,12 +375,6 @@
371
375
  "table.loading.data": "Loading data...",
372
376
  "table.object.count": "objects in this dataset",
373
377
  "table.select.data": "Data source",
374
- "timeSincePipe.lessThanAMinute": "Less than a minute ago",
375
- "timeSincePipe.minutesAgo": "{value} minute{s} ago",
376
- "timeSincePipe.hoursAgo": "{value} hour{s} ago",
377
- "timeSincePipe.daysAgo": "{value} day{s} ago",
378
- "timeSincePipe.monthsAgo": "{value} month{s} ago",
379
- "timeSincePipe.yearsAgo": "{value} year{s} ago",
380
378
  "tooltip.html.copy": "Copy HTML",
381
379
  "tooltip.id.copy": "Copy unique identifier",
382
380
  "tooltip.url.copy": "Copy URL",
@@ -156,6 +156,8 @@
156
156
  "editor.record.form.license.pddl": "",
157
157
  "editor.record.form.license.unknown": "",
158
158
  "editor.record.form.resourceUpdated": "",
159
+ "editor.record.form.updateFrequency": "",
160
+ "editor.record.form.updateFrequency.planned": "",
159
161
  "editor.record.loadError.body": "",
160
162
  "editor.record.loadError.closeMessage": "",
161
163
  "editor.record.loadError.title": "",
@@ -226,6 +228,7 @@
226
228
  "multiselect.filter.placeholder": "",
227
229
  "nav.back": "",
228
230
  "next": "",
231
+ "ogc.unreachable.unknown": "",
229
232
  "organisation.filter.placeholder": "",
230
233
  "organisation.sort.sortBy": "",
231
234
  "organisations.hits.found": "",
@@ -290,14 +293,6 @@
290
293
  "record.metadata.quality.updateFrequency.failed": "",
291
294
  "record.metadata.quality.updateFrequency.success": "",
292
295
  "record.metadata.related": "",
293
- "record.metadata.userFeedbacks": "",
294
- "record.metadata.userFeedbacks.anonymousUser": "",
295
- "record.metadata.userFeedbacks.sortSelector.label": "",
296
- "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
297
- "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
298
- "record.metadata.userFeedbacks.newComment.placeholder": "",
299
- "record.metadata.userFeedbacks.newAnswer.placeholder": "",
300
- "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
301
296
  "record.metadata.sheet": "",
302
297
  "record.metadata.status": "",
303
298
  "record.metadata.technical": "",
@@ -312,6 +307,14 @@
312
307
  "record.metadata.updateFrequency": "",
313
308
  "record.metadata.updatedOn": "",
314
309
  "record.metadata.usage": "",
310
+ "record.metadata.userFeedbacks": "",
311
+ "record.metadata.userFeedbacks.anonymousUser": "",
312
+ "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
313
+ "record.metadata.userFeedbacks.newAnswer.placeholder": "",
314
+ "record.metadata.userFeedbacks.newComment.placeholder": "",
315
+ "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
316
+ "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
317
+ "record.metadata.userFeedbacks.sortSelector.label": "",
315
318
  "record.more.details": "",
316
319
  "record.tab.chart": "",
317
320
  "record.tab.data": "",
@@ -332,6 +335,7 @@
332
335
  "search.error.couldNotReachApi": "",
333
336
  "search.error.receivedError": "",
334
337
  "search.error.recordNotFound": "",
338
+ "search.error.recordHasnolink": "",
335
339
  "search.field.any.placeholder": "",
336
340
  "search.field.sortBy": "",
337
341
  "search.filters.clear": "",
@@ -371,12 +375,6 @@
371
375
  "table.loading.data": "",
372
376
  "table.object.count": "",
373
377
  "table.select.data": "",
374
- "timeSincePipe.lessThanAMinute": "",
375
- "timeSincePipe.minutesAgo": "",
376
- "timeSincePipe.hoursAgo": "",
377
- "timeSincePipe.daysAgo": "",
378
- "timeSincePipe.monthsAgo": "",
379
- "timeSincePipe.yearsAgo": "",
380
378
  "tooltip.html.copy": "",
381
379
  "tooltip.id.copy": "",
382
380
  "tooltip.url.copy": "",
@@ -156,6 +156,8 @@
156
156
  "editor.record.form.license.pddl": "",
157
157
  "editor.record.form.license.unknown": "Non-reconnue ou absente",
158
158
  "editor.record.form.resourceUpdated": "Date de dernière révision",
159
+ "editor.record.form.updateFrequency": "Fréquence de mise à jour",
160
+ "editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
159
161
  "editor.record.loadError.body": "",
160
162
  "editor.record.loadError.closeMessage": "",
161
163
  "editor.record.loadError.title": "",
@@ -226,6 +228,7 @@
226
228
  "multiselect.filter.placeholder": "Rechercher",
227
229
  "nav.back": "Retour",
228
230
  "next": "suivant",
231
+ "ogc.unreachable.unknown": "Le service n'est pas accessible",
229
232
  "organisation.filter.placeholder": "Filtrer les résultats",
230
233
  "organisation.sort.sortBy": "Trier par :",
231
234
  "organisations.hits.found": "{hits, plural, =0{Aucune organisation trouvé} one{1 organisation sur {total} affichée} other{{hits} organisations sur {total} affichées}}",
@@ -290,14 +293,6 @@
290
293
  "record.metadata.quality.updateFrequency.failed": "Fréquence de mise à jour n'est pas renseignée",
291
294
  "record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée",
292
295
  "record.metadata.related": "Voir aussi",
293
- "record.metadata.userFeedbacks": "Questions / Réponses",
294
- "record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.",
295
- "record.metadata.userFeedbacks.sortSelector.label": "Trier par ...",
296
- "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Les plus récents en premier",
297
- "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Les plus anciens en premier",
298
- "record.metadata.userFeedbacks.newComment.placeholder": "Rédiger votre commentaire ici...",
299
- "record.metadata.userFeedbacks.newAnswer.placeholder": "Répondre...",
300
- "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publier",
301
296
  "record.metadata.sheet": "Fiche de métadonnées d'origine",
302
297
  "record.metadata.status": "Statut",
303
298
  "record.metadata.technical": "Informations techniques",
@@ -312,6 +307,14 @@
312
307
  "record.metadata.updateFrequency": "Fréquence de mise à jour des données",
313
308
  "record.metadata.updatedOn": "Dernière mise à jour des informations sur les données",
314
309
  "record.metadata.usage": "Licences et conditions d'utilisation",
310
+ "record.metadata.userFeedbacks": "Questions / Réponses",
311
+ "record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.",
312
+ "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publier",
313
+ "record.metadata.userFeedbacks.newAnswer.placeholder": "Répondre...",
314
+ "record.metadata.userFeedbacks.newComment.placeholder": "Rédiger votre commentaire ici...",
315
+ "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Les plus récents en premier",
316
+ "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Les plus anciens en premier",
317
+ "record.metadata.userFeedbacks.sortSelector.label": "Trier par ...",
315
318
  "record.more.details": "Détails",
316
319
  "record.tab.chart": "Graphique",
317
320
  "record.tab.data": "Tableau",
@@ -332,6 +335,7 @@
332
335
  "search.error.couldNotReachApi": "Problème de connexion à l'API",
333
336
  "search.error.receivedError": "Erreur retournée",
334
337
  "search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
338
+ "search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
335
339
  "search.field.any.placeholder": "Rechercher une donnée...",
336
340
  "search.field.sortBy": "Trier par :",
337
341
  "search.filters.clear": "Réinitialiser",
@@ -371,12 +375,6 @@
371
375
  "table.loading.data": "Chargement des données...",
372
376
  "table.object.count": "enregistrements dans ces données",
373
377
  "table.select.data": "Source de données",
374
- "timeSincePipe.lessThanAMinute": "Il y a moins d'une minute",
375
- "timeSincePipe.minutesAgo": "Il y a {value} minute{s}",
376
- "timeSincePipe.hoursAgo": "Il y a {value} heure{s}",
377
- "timeSincePipe.daysAgo": "Il y a {value} jour{s}",
378
- "timeSincePipe.monthsAgo": "Il y a {value} mois",
379
- "timeSincePipe.yearsAgo": "Il y a {value} an{s}",
380
378
  "tooltip.html.copy": "Copier le HTML",
381
379
  "tooltip.id.copy": "Copier l'identifiant unique",
382
380
  "tooltip.url.copy": "Copier l'URL",
@@ -156,6 +156,8 @@
156
156
  "editor.record.form.license.pddl": "",
157
157
  "editor.record.form.license.unknown": "Non riconosciuta o assente",
158
158
  "editor.record.form.resourceUpdated": "",
159
+ "editor.record.form.updateFrequency": "",
160
+ "editor.record.form.updateFrequency.planned": "",
159
161
  "editor.record.loadError.body": "",
160
162
  "editor.record.loadError.closeMessage": "",
161
163
  "editor.record.loadError.title": "",
@@ -226,6 +228,7 @@
226
228
  "multiselect.filter.placeholder": "Cerca",
227
229
  "nav.back": "Indietro",
228
230
  "next": "successivo",
231
+ "ogc.unreachable.unknown": "Il servizio non è accessibile",
229
232
  "organisation.filter.placeholder": "Filtra i risultati",
230
233
  "organisation.sort.sortBy": "Ordina per:",
231
234
  "organisations.hits.found": "{hits, plural, =0{Nessuna organizzazione trovata} one{1 organizzazione su {total} visualizzata} other{{hits} organizzazioni su {total} visualizzate}}",
@@ -290,14 +293,6 @@
290
293
  "record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
291
294
  "record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
292
295
  "record.metadata.related": "Vedi anche",
293
- "record.metadata.userFeedbacks": "",
294
- "record.metadata.userFeedbacks.anonymousUser": "",
295
- "record.metadata.userFeedbacks.sortSelector.label": "",
296
- "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
297
- "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
298
- "record.metadata.userFeedbacks.newComment.placeholder": "",
299
- "record.metadata.userFeedbacks.newAnswer.placeholder": "",
300
- "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
301
296
  "record.metadata.sheet": "Origine del metadata",
302
297
  "record.metadata.status": "Stato",
303
298
  "record.metadata.technical": "Informazioni tecniche",
@@ -312,6 +307,14 @@
312
307
  "record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
313
308
  "record.metadata.updatedOn": "Ultimo aggiornamento delle informazioni sui dati",
314
309
  "record.metadata.usage": "Licenze e limiti di utilizzo",
310
+ "record.metadata.userFeedbacks": "",
311
+ "record.metadata.userFeedbacks.anonymousUser": "",
312
+ "record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
313
+ "record.metadata.userFeedbacks.newAnswer.placeholder": "",
314
+ "record.metadata.userFeedbacks.newComment.placeholder": "",
315
+ "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
316
+ "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
317
+ "record.metadata.userFeedbacks.sortSelector.label": "",
315
318
  "record.more.details": "Dettagli",
316
319
  "record.tab.chart": "Grafico",
317
320
  "record.tab.data": "Tabella",
@@ -332,6 +335,7 @@
332
335
  "search.error.couldNotReachApi": "Problema di connessione all'API",
333
336
  "search.error.receivedError": "Errore ricevuto",
334
337
  "search.error.recordNotFound": "Impossibile trovare questo dato",
338
+ "search.error.recordHasnolink": "",
335
339
  "search.field.any.placeholder": "Cerca un dato...",
336
340
  "search.field.sortBy": "Ordina per:",
337
341
  "search.filters.clear": "Ripristina",
@@ -371,12 +375,6 @@
371
375
  "table.loading.data": "Caricamento dei dati...",
372
376
  "table.object.count": "record in questi dati",
373
377
  "table.select.data": "Sorgente dati",
374
- "timeSincePipe.lessThanAMinute": "",
375
- "timeSincePipe.minutesAgo": "",
376
- "timeSincePipe.hoursAgo": "",
377
- "timeSincePipe.daysAgo": "",
378
- "timeSincePipe.monthsAgo": "",
379
- "timeSincePipe.yearsAgo": "",
380
378
  "tooltip.html.copy": "Copiare il HTML",
381
379
  "tooltip.id.copy": "Copiare l'identificatore unico",
382
380
  "tooltip.url.copy": "Copiare l'URL",