geonetwork-ui 2.3.0-dev.c4b41b40 → 2.3.0-dev.cd1164a9

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 (148) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +2 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +2 -2
  3. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -7
  4. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  5. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -23
  6. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +1 -1
  7. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +104 -0
  8. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  9. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  10. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +8 -1
  11. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +73 -20
  12. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  13. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  14. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +1 -1
  15. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +58 -17
  16. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +6 -2
  17. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  18. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +5 -3
  19. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +1 -3
  20. package/esm2022/libs/feature/search/src/index.mjs +2 -1
  21. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +1 -1
  22. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +4 -4
  23. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +1 -1
  24. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +1 -1
  25. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +1 -1
  26. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +1 -1
  27. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  28. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -2
  29. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +2 -2
  30. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +30 -0
  31. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +89 -54
  32. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +6 -6
  33. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +3 -5
  34. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +4 -3
  35. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -3
  36. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +5 -3
  37. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +6 -5
  38. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  39. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  40. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  41. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  42. package/esm2022/translations/de.json +12 -14
  43. package/esm2022/translations/en.json +12 -14
  44. package/esm2022/translations/es.json +12 -14
  45. package/esm2022/translations/fr.json +12 -14
  46. package/esm2022/translations/it.json +12 -14
  47. package/esm2022/translations/nl.json +12 -14
  48. package/esm2022/translations/pt.json +12 -14
  49. package/fesm2022/geonetwork-ui.mjs +493 -277
  50. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  51. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  52. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  53. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  54. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +21 -0
  55. 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
  56. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  57. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  58. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  59. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +10 -5
  60. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  61. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +7 -0
  62. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  63. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -1
  64. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  65. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  66. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  67. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  68. package/libs/feature/search/src/index.d.ts +1 -0
  69. package/libs/feature/search/src/index.d.ts.map +1 -1
  70. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +3 -3
  71. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  72. package/libs/ui/elements/src/index.d.ts +1 -1
  73. package/libs/ui/elements/src/index.d.ts.map +1 -1
  74. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  75. package/libs/ui/elements/src/lib/error/error.component.d.ts +16 -0
  76. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -0
  77. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +22 -4
  78. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  79. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -2
  80. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  81. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +1 -2
  82. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -1
  83. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts +1 -1
  84. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts.map +1 -1
  85. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +2 -1
  86. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  87. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -1
  88. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  89. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -27
  90. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  91. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  92. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  93. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  94. package/package.json +2 -2
  95. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +1 -1
  96. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +1 -4
  97. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +16 -10
  98. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +8 -0
  99. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +4 -21
  100. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +0 -0
  101. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +14 -0
  102. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +143 -0
  103. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +5 -0
  104. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  105. package/src/libs/feature/editor/src/lib/fields.config.ts +7 -0
  106. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +7 -0
  107. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +32 -18
  108. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +72 -17
  109. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +7 -0
  110. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +57 -17
  111. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +5 -1
  112. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +4 -4
  113. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +0 -2
  114. package/src/libs/feature/search/src/index.ts +1 -0
  115. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +4 -4
  116. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -2
  117. package/src/libs/ui/elements/src/index.ts +1 -1
  118. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
  119. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +1 -1
  120. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.html → error/error.component.html} +18 -3
  121. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.ts → error/error.component.ts} +5 -4
  122. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +25 -9
  123. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +116 -57
  124. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -4
  125. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +1 -1
  126. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +0 -1
  127. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.ts +3 -0
  128. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -0
  129. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +1 -0
  130. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -0
  131. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +1 -0
  132. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +1 -1
  133. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -0
  134. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  135. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  136. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  137. package/translations/de.json +12 -14
  138. package/translations/en.json +12 -14
  139. package/translations/es.json +12 -14
  140. package/translations/fr.json +12 -14
  141. package/translations/it.json +12 -14
  142. package/translations/nl.json +12 -14
  143. package/translations/pt.json +12 -14
  144. package/translations/sk.json +12 -14
  145. package/esm2022/libs/ui/elements/src/lib/search-results-error/search-results-error.component.mjs +0 -29
  146. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts +0 -15
  147. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts.map +0 -1
  148. /package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.css → error/error.component.css} +0 -0
@@ -7,35 +7,35 @@ import * as i5 from "./navigation-button/navigation-button.component";
7
7
  import * as i6 from "./star-toggle/star-toggle.component";
8
8
  import * as i7 from "./dropdown-multiselect/dropdown-multiselect.component";
9
9
  import * as i8 from "./viewport-intersector/viewport-intersector.component";
10
- import * as i9 from "./check-toggle/check-toggle.component";
11
- import * as i10 from "./copy-text-button/copy-text-button.component";
12
- import * as i11 from "./checkbox/checkbox.component";
13
- import * as i12 from "./search-input/search-input.component";
14
- import * as i13 from "@angular/common";
15
- import * as i14 from "@ngx-translate/core";
16
- import * as i15 from "ngx-dropzone";
17
- import * as i16 from "@angular/forms";
18
- import * as i17 from "ngx-chips";
19
- import * as i18 from "../../../../util/shared/src/lib/util-shared.module";
20
- import * as i19 from "@angular/material/autocomplete";
21
- import * as i20 from "@angular/material/icon";
22
- import * as i21 from "../../../widgets/src/lib/ui-widgets.module";
23
- import * as i22 from "@angular/cdk/overlay";
24
- import * as i23 from "@angular/material/checkbox";
25
- import * as i24 from "@angular/material/tooltip";
26
- import * as i25 from "@angular/material/form-field";
27
- import * as i26 from "@angular/material/input";
28
- import * as i27 from "@angular/material/datepicker";
29
- import * as i28 from "@angular/material/core";
30
- import * as i29 from "./editable-label/editable-label.directive";
31
- import * as i30 from "./text-area/text-area.component";
32
- import * as i31 from "./button/button.component";
33
- import * as i32 from "./image-input/image-input.component";
34
- import * as i33 from "./dropdown-selector/dropdown-selector.component";
35
- import * as i34 from "./date-range-picker/date-range-picker.component";
10
+ import * as i9 from "./copy-text-button/copy-text-button.component";
11
+ import * as i10 from "./checkbox/checkbox.component";
12
+ import * as i11 from "./search-input/search-input.component";
13
+ import * as i12 from "@angular/common";
14
+ import * as i13 from "@ngx-translate/core";
15
+ import * as i14 from "ngx-dropzone";
16
+ import * as i15 from "@angular/forms";
17
+ import * as i16 from "ngx-chips";
18
+ import * as i17 from "../../../../util/shared/src/lib/util-shared.module";
19
+ import * as i18 from "@angular/material/autocomplete";
20
+ import * as i19 from "@angular/material/icon";
21
+ import * as i20 from "../../../widgets/src/lib/ui-widgets.module";
22
+ import * as i21 from "@angular/cdk/overlay";
23
+ import * as i22 from "@angular/material/checkbox";
24
+ import * as i23 from "@angular/material/tooltip";
25
+ import * as i24 from "@angular/material/form-field";
26
+ import * as i25 from "@angular/material/input";
27
+ import * as i26 from "@angular/material/datepicker";
28
+ import * as i27 from "@angular/material/core";
29
+ import * as i28 from "./editable-label/editable-label.directive";
30
+ import * as i29 from "./text-area/text-area.component";
31
+ import * as i30 from "./button/button.component";
32
+ import * as i31 from "./image-input/image-input.component";
33
+ import * as i32 from "./dropdown-selector/dropdown-selector.component";
34
+ import * as i33 from "./date-range-picker/date-range-picker.component";
35
+ import * as i34 from "./check-toggle/check-toggle.component";
36
36
  export declare class UiInputsModule {
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<UiInputsModule, never>;
38
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiInputsModule, [typeof i1.AutocompleteComponent, typeof i2.TextInputComponent, typeof i3.DragAndDropFileInputComponent, typeof i4.ChipsInputComponent, typeof i5.NavigationButtonComponent, typeof i6.StarToggleComponent, typeof i7.DropdownMultiselectComponent, typeof i8.ViewportIntersectorComponent, typeof i9.CheckToggleComponent, typeof i10.CopyTextButtonComponent, typeof i11.CheckboxComponent, typeof i12.SearchInputComponent], [typeof i13.CommonModule, typeof i14.TranslateModule, typeof i15.NgxDropzoneModule, typeof i16.FormsModule, typeof i16.ReactiveFormsModule, typeof i17.TagInputModule, typeof i18.UtilSharedModule, typeof i19.MatAutocompleteModule, typeof i20.MatIconModule, typeof i21.UiWidgetsModule, typeof i22.OverlayModule, typeof i23.MatCheckboxModule, typeof i24.MatTooltipModule, typeof i25.MatFormFieldModule, typeof i26.MatInputModule, typeof i27.MatDatepickerModule, typeof i28.MatNativeDateModule, typeof i29.EditableLabelDirective, typeof i30.TextAreaComponent, typeof i31.ButtonComponent, typeof i32.ImageInputComponent, typeof i33.DropdownSelectorComponent, typeof i34.DateRangePickerComponent], [typeof i33.DropdownSelectorComponent, typeof i1.AutocompleteComponent, typeof i31.ButtonComponent, typeof i2.TextInputComponent, typeof i3.DragAndDropFileInputComponent, typeof i30.TextAreaComponent, typeof i4.ChipsInputComponent, typeof i5.NavigationButtonComponent, typeof i6.StarToggleComponent, typeof i7.DropdownMultiselectComponent, typeof i8.ViewportIntersectorComponent, typeof i9.CheckToggleComponent, typeof i10.CopyTextButtonComponent, typeof i11.CheckboxComponent, typeof i12.SearchInputComponent, typeof i34.DateRangePickerComponent, typeof i29.EditableLabelDirective, typeof i32.ImageInputComponent]>;
38
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UiInputsModule, [typeof i1.AutocompleteComponent, typeof i2.TextInputComponent, typeof i3.DragAndDropFileInputComponent, typeof i4.ChipsInputComponent, typeof i5.NavigationButtonComponent, typeof i6.StarToggleComponent, typeof i7.DropdownMultiselectComponent, typeof i8.ViewportIntersectorComponent, typeof i9.CopyTextButtonComponent, typeof i10.CheckboxComponent, typeof i11.SearchInputComponent], [typeof i12.CommonModule, typeof i13.TranslateModule, typeof i14.NgxDropzoneModule, typeof i15.FormsModule, typeof i15.ReactiveFormsModule, typeof i16.TagInputModule, typeof i17.UtilSharedModule, typeof i18.MatAutocompleteModule, typeof i19.MatIconModule, typeof i20.UiWidgetsModule, typeof i21.OverlayModule, typeof i22.MatCheckboxModule, typeof i23.MatTooltipModule, typeof i24.MatFormFieldModule, typeof i25.MatInputModule, typeof i26.MatDatepickerModule, typeof i27.MatNativeDateModule, typeof i28.EditableLabelDirective, typeof i29.TextAreaComponent, typeof i30.ButtonComponent, typeof i31.ImageInputComponent, typeof i32.DropdownSelectorComponent, typeof i33.DateRangePickerComponent, typeof i34.CheckToggleComponent], [typeof i32.DropdownSelectorComponent, typeof i1.AutocompleteComponent, typeof i30.ButtonComponent, typeof i2.TextInputComponent, typeof i3.DragAndDropFileInputComponent, typeof i29.TextAreaComponent, typeof i4.ChipsInputComponent, typeof i5.NavigationButtonComponent, typeof i6.StarToggleComponent, typeof i7.DropdownMultiselectComponent, typeof i8.ViewportIntersectorComponent, typeof i34.CheckToggleComponent, typeof i9.CopyTextButtonComponent, typeof i10.CheckboxComponent, typeof i11.SearchInputComponent, typeof i33.DateRangePickerComponent, typeof i28.EditableLabelDirective, typeof i31.ImageInputComponent]>;
39
39
  static ɵinj: i0.ɵɵInjectorDeclaration<UiInputsModule>;
40
40
  }
41
41
  //# sourceMappingURL=ui-inputs.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/app-config.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAA;AAS9F,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAID,wBAAgB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAEvD;AAID,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAE7D;AAGD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAOhE;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAG1E;AAID,wBAAgB,aAAa,kBA6M5B;AAED,wBAAgB,cAAc,YAE7B;AAED,wBAAgB,MAAM,SAIrB;AAED,eAAO,MAAM,+BAA+B;;;;;;;2BAOK,UAAU;;;;CAM1D,CAAA"}
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/app-config.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAA;AAS9F,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAID,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAID,wBAAgB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAEvD;AAID,wBAAgB,uBAAuB,IAAI,YAAY,GAAG,IAAI,CAE7D;AAGD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAOhE;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAG1E;AAID,wBAAgB,aAAa,kBA+M5B;AAED,wBAAgB,cAAc,YAE7B;AAED,wBAAgB,MAAM,SAIrB;AAED,eAAO,MAAM,+BAA+B;;;;;;;2BAOK,UAAU;;;;CAM1D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,eAAO,MAAM,SAAS,2zDA6DrB,CAAA;AAED,eAAO,MAAM,wBAAwB,2zDAAY,CAAA;AAEjD,eAAO,MAAM,cAAc,yPAU1B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,SAuBhC,CAAA;AAED,eAAO,MAAM,gBAAgB,4DAI5B,CAAA;AAED,eAAO,MAAM,wBAAwB,sIAMpC,CAAA;AAED,eAAO,MAAM,0BAA0B,+RAatC,CAAA;AAED,eAAO,MAAM,wBAAwB,kiCAmCpC,CAAA"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,eAAO,MAAM,SAAS,2zDA6DrB,CAAA;AAED,eAAO,MAAM,wBAAwB,2zDAAY,CAAA;AAEjD,eAAO,MAAM,cAAc,yPAU1B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,SAwBhC,CAAA;AAED,eAAO,MAAM,gBAAgB,4DAI5B,CAAA;AAED,eAAO,MAAM,wBAAwB,sIAMpC,CAAA;AAED,eAAO,MAAM,0BAA0B,+RAatC,CAAA;AAED,eAAO,MAAM,wBAAwB,kiCAmCpC,CAAA"}
@@ -17,6 +17,7 @@ export interface LayerConfig {
17
17
  }
18
18
  export interface MapConfig {
19
19
  MAX_ZOOM?: number;
20
+ DO_NOT_TILE_WMS: boolean;
20
21
  MAX_EXTENT?: [number, number, number, number];
21
22
  EXTERNAL_VIEWER_URL_TEMPLATE?: string;
22
23
  EXTERNAL_VIEWER_OPEN_NEW_TAB?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,0BAA0B,EAAE,OAAO,CAAA;IACnC,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gBAAgB,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACrE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CACnC,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/libs/util/app-config/src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,0BAA0B,EAAE,OAAO,CAAA;IACnC,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gBAAgB,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACrE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CACnC,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.3.0-dev.c4b41b40",
3
+ "version": "2.3.0-dev.cd1164a9",
4
4
  "engines": {
5
5
  "node": ">=14.17.0"
6
6
  },
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
50
- "@camptocamp/ogc-client": "^1.1.0-RC.3",
50
+ "@camptocamp/ogc-client": "1.1.1-dev.ad6d9ab",
51
51
  "@geospatial-sdk/geocoding": "^0.0.5-alpha.2",
52
52
  "@ltd/j-toml": "~1.35.2",
53
53
  "@messageformat/core": "^3.0.1",
@@ -434,7 +434,7 @@ export function getUpdateFrequencyFromCustomPeriod(
434
434
  } else if (days <= 7) {
435
435
  return {
436
436
  per: 'week',
437
- updatedTimes: Math.round(7 / days),
437
+ updatedTimes: Math.round(7 / days - 0.0001), // this is to make sure that 'every 2 days' = '3 times per week'
438
438
  }
439
439
  } else if (days) {
440
440
  return {
@@ -24,10 +24,8 @@ import {
24
24
  findChildOrCreate,
25
25
  findChildrenElement,
26
26
  findNestedChildOrCreate,
27
- findNestedElement,
28
27
  findNestedElements,
29
28
  readAttribute,
30
- readText,
31
29
  removeAllChildren,
32
30
  removeChildren,
33
31
  removeChildrenByName,
@@ -36,7 +34,6 @@ import {
36
34
  } from '../xml-utils'
37
35
  import {
38
36
  ChainableFunction,
39
- combine,
40
37
  fallback,
41
38
  filterArray,
42
39
  getAtIndex,
@@ -220,7 +217,7 @@ export function getISODuration(updateFrequency: UpdateFrequencyCustom): string {
220
217
  else duration.hours = Math.round(24 / updateFrequency.updatedTimes)
221
218
  break
222
219
  case 'week':
223
- duration.days = Math.round(7 / updateFrequency.updatedTimes)
220
+ duration.days = Math.round(7 / updateFrequency.updatedTimes - 0.0001) // this is to make sure that '2 times per week' = 'every 3 days'
224
221
  break
225
222
  case 'month':
226
223
  if (updateFrequency.updatedTimes <= 1) duration.months = 1
@@ -162,19 +162,25 @@ export class Gn4PlatformService implements PlatformServiceInterface {
162
162
  }
163
163
 
164
164
  getUserFeedbacks(uuid: string): Observable<UserFeedback[]> {
165
- return this.userfeedbackApiService
166
- .getUserComments(uuid)
167
- .pipe(
168
- map((userFeedbacks) =>
169
- userFeedbacks.map(this.mapper.userFeedbacksFromApi)
170
- )
171
- )
165
+ return this.userfeedbackApiService.getUserComments(uuid).pipe(
166
+ map((userFeedbacks) =>
167
+ userFeedbacks.map(this.mapper.userFeedbacksFromApi)
168
+ ),
169
+ catchError((error) => {
170
+ console.error('Error fetching user feedbacks:', error)
171
+ return of(undefined)
172
+ })
173
+ )
172
174
  }
173
175
 
174
176
  postUserFeedbacks(userFeedback: UserFeedback): Observable<void> {
175
177
  const mappedUserFeedBack = this.mapper.userFeedbacksToApi(userFeedback)
176
- return this.userfeedbackApiService
177
- .newUserFeedback(mappedUserFeedBack)
178
- .pipe(map(() => undefined))
178
+ return this.userfeedbackApiService.newUserFeedback(mappedUserFeedBack).pipe(
179
+ map(() => undefined),
180
+ catchError((error) => {
181
+ console.error('Error posting user feedback:', error)
182
+ return of(undefined)
183
+ })
184
+ )
179
185
  }
180
186
  }
@@ -110,6 +110,14 @@ export const LINK_FIXTURES: Record<string, DatasetDistribution> = deepFreeze({
110
110
  url: new URL('https://my.ogc.server/wfs'),
111
111
  accessServiceProtocol: 'wfs',
112
112
  },
113
+ geodataWfsDownload: {
114
+ name: 'mylayer',
115
+ type: 'download',
116
+ url: new URL(
117
+ 'https://my.ogc.server/wfs?GetFeature&FeatureType=surval_parametre_ligne&format=csv'
118
+ ),
119
+ accessServiceProtocol: 'wfs',
120
+ },
113
121
  geodataWms2: {
114
122
  name: 'myotherlayer',
115
123
  type: 'service',
@@ -32,6 +32,7 @@ marker('wfs.unreachable.http')
32
32
  marker('wfs.unreachable.unknown')
33
33
  marker('wfs.featuretype.notfound')
34
34
  marker('wfs.geojsongml.notsupported')
35
+ marker('ogc.unreachable.unknown')
35
36
  marker('dataset.error.network')
36
37
  marker('dataset.error.http')
37
38
  marker('dataset.error.parse')
@@ -159,7 +160,6 @@ export class DataService {
159
160
  const collectionInfo = await this.getDownloadUrlsFromOgcApi(
160
161
  ogcApiLink.url.href
161
162
  )
162
-
163
163
  return Object.keys(collectionInfo.bulkDownloadLinks).map((downloadLink) => {
164
164
  return {
165
165
  ...ogcApiLink,
@@ -174,29 +174,12 @@ export class DataService {
174
174
 
175
175
  async getDownloadUrlsFromOgcApi(url: string): Promise<OgcApiCollectionInfo> {
176
176
  const endpoint = new OgcApiEndpoint(this.proxy.getProxiedUrl(url))
177
- return await endpoint.featureCollections
177
+ return await endpoint.allCollections
178
178
  .then((collections) => {
179
- return endpoint.getCollectionInfo(collections[0])
179
+ return endpoint.getCollectionInfo(collections[0].name)
180
180
  })
181
181
  .catch((error) => {
182
- if (error instanceof Error) {
183
- throw new Error(`wfs.unreachable.unknown`)
184
- } else {
185
- if (error.type === 'network') {
186
- throw new Error(`wfs.unreachable.cors`)
187
- }
188
- if (error.type === 'http') {
189
- throw new Error(`wfs.unreachable.http`)
190
- }
191
- if (error.type === 'parse') {
192
- throw new Error(`wfs.unreachable.parse`)
193
- }
194
- if (error.type === 'unsupportedType') {
195
- throw new Error(`wfs.unreachable.unsupportedType`)
196
- } else {
197
- throw new Error(`wfs.unreachable.unknown`)
198
- }
199
- }
182
+ throw new Error(`ogc.unreachable.unknown`)
200
183
  })
201
184
  }
202
185
 
@@ -0,0 +1,14 @@
1
+ <gn-ui-check-toggle
2
+ [label]="'editor.record.form.updateFrequency.planned' | translate"
3
+ [value]="planned"
4
+ (toggled)="onPlannedToggled()"
5
+ ></gn-ui-check-toggle>
6
+ <gn-ui-dropdown-selector
7
+ title="updateFrequency"
8
+ [showTitle]="false"
9
+ [choices]="choices"
10
+ [selected]="selectedFrequency"
11
+ (selectValue)="onSelectFrequencyValue($event)"
12
+ [disabled]="!planned"
13
+ >
14
+ </gn-ui-dropdown-selector>
@@ -0,0 +1,143 @@
1
+ import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ Input,
5
+ OnInit,
6
+ } from '@angular/core'
7
+ import { FormControl } from '@angular/forms'
8
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker'
9
+ import {
10
+ CheckToggleComponent,
11
+ DropdownSelectorComponent,
12
+ } from '../../../../../../../../../libs/ui/inputs/src'
13
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
14
+
15
+ @Component({
16
+ selector: 'gn-ui-form-field-update-frequency',
17
+ templateUrl: './form-field-update-frequency.component.html',
18
+ styleUrls: ['./form-field-update-frequency.component.css'],
19
+ changeDetection: ChangeDetectionStrategy.OnPush,
20
+ standalone: true,
21
+ imports: [CheckToggleComponent, DropdownSelectorComponent, TranslateModule],
22
+ })
23
+ export class FormFieldUpdateFrequencyComponent implements OnInit {
24
+ @Input() control: FormControl
25
+
26
+ get planned() {
27
+ return this.control.value !== 'notPlanned'
28
+ }
29
+
30
+ constructor(private translateService: TranslateService) {}
31
+
32
+ ngOnInit() {
33
+ const updatedTimes = this.control.value?.updatedTimes
34
+ const per = this.control.value?.per
35
+ if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
36
+ this.choices = [
37
+ {
38
+ value: `${per}.${updatedTimes}`,
39
+ label: this.translateService.instant(
40
+ `domain.record.updateFrequency.${per}`,
41
+ {
42
+ count: updatedTimes,
43
+ }
44
+ ),
45
+ },
46
+ ...this.choices,
47
+ ]
48
+ }
49
+ }
50
+
51
+ onPlannedToggled() {
52
+ if (this.planned) {
53
+ this.control.setValue('notPlanned')
54
+ } else {
55
+ this.control.setValue({ updatedTimes: 1, per: 'day' })
56
+ }
57
+ }
58
+
59
+ get selectedFrequency() {
60
+ const { updatedTimes, per } = this.control.value
61
+ return `${per}.${updatedTimes}`
62
+ }
63
+
64
+ onSelectFrequencyValue(value: unknown) {
65
+ const split = (value as string).split('.')
66
+ this.control.setValue({ updatedTimes: Number(split[1]), per: split[0] })
67
+ }
68
+
69
+ choices = [
70
+ {
71
+ value: 'day.1',
72
+ label: this.translateService.instant(
73
+ 'domain.record.updateFrequency.day',
74
+ {
75
+ count: 1,
76
+ }
77
+ ),
78
+ },
79
+ {
80
+ value: 'day.2',
81
+ label: this.translateService.instant(
82
+ 'domain.record.updateFrequency.day',
83
+ {
84
+ count: 2,
85
+ }
86
+ ),
87
+ },
88
+ {
89
+ value: 'week.1',
90
+ label: this.translateService.instant(
91
+ 'domain.record.updateFrequency.week',
92
+ {
93
+ count: 1,
94
+ }
95
+ ),
96
+ },
97
+ {
98
+ value: 'week.2',
99
+ label: this.translateService.instant(
100
+ 'domain.record.updateFrequency.week',
101
+ {
102
+ count: 2,
103
+ }
104
+ ),
105
+ },
106
+ {
107
+ value: 'month.1',
108
+ label: this.translateService.instant(
109
+ 'domain.record.updateFrequency.month',
110
+ {
111
+ count: 1,
112
+ }
113
+ ),
114
+ },
115
+ {
116
+ value: 'month.2',
117
+ label: this.translateService.instant(
118
+ 'domain.record.updateFrequency.month',
119
+ {
120
+ count: 2,
121
+ }
122
+ ),
123
+ },
124
+ {
125
+ value: 'year.1',
126
+ label: this.translateService.instant(
127
+ 'domain.record.updateFrequency.year',
128
+ {
129
+ count: 1,
130
+ }
131
+ ),
132
+ },
133
+ {
134
+ value: 'year.2',
135
+ label: this.translateService.instant(
136
+ 'domain.record.updateFrequency.year',
137
+ {
138
+ count: 2,
139
+ }
140
+ ),
141
+ },
142
+ ]
143
+ }
@@ -56,6 +56,11 @@
56
56
  [control]="formControl"
57
57
  ></gn-ui-form-field-resource-updated>
58
58
  </ng-container>
59
+ <ng-container *ngIf="isUpdateFrequency">
60
+ <gn-ui-form-field-update-frequency
61
+ [control]="formControl"
62
+ ></gn-ui-form-field-update-frequency>
63
+ </ng-container>
59
64
  <ng-container *ngIf="isSimpleField">
60
65
  <gn-ui-form-field-simple
61
66
  [type]="simpleType"
@@ -24,6 +24,7 @@ import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.
24
24
  import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component'
25
25
  import { FormFieldTemporalExtentComponent } from './form-field-temporal-extent/form-field-temporal-extent.component'
26
26
  import { FormFieldConfig } from './form-field.model'
27
+ import { FormFieldUpdateFrequencyComponent } from './form-field-update-frequency/form-field-update-frequency.component'
27
28
 
28
29
  @Component({
29
30
  selector: 'gn-ui-form-field',
@@ -40,6 +41,7 @@ import { FormFieldConfig } from './form-field.model'
40
41
  FormFieldWrapperComponent,
41
42
  FormFieldLicenseComponent,
42
43
  FormFieldResourceUpdatedComponent,
44
+ FormFieldUpdateFrequencyComponent,
43
45
  FormFieldSimpleComponent,
44
46
  FormFieldRichComponent,
45
47
  FormFieldObjectComponent,
@@ -130,6 +132,9 @@ export class FormFieldComponent {
130
132
  get isResourceUpdated() {
131
133
  return this.model === 'resourceUpdated'
132
134
  }
135
+ get isUpdateFrequency() {
136
+ return this.model === 'updateFrequency'
137
+ }
133
138
 
134
139
  get withoutWrapper() {
135
140
  return this.model === 'title' || this.model === 'abstract'
@@ -47,4 +47,11 @@ export const DEFAULT_FIELDS: EditorFieldsConfig = [
47
47
  type: 'date',
48
48
  },
49
49
  },
50
+ {
51
+ model: 'updateFrequency',
52
+ formFieldConfig: {
53
+ labelKey: marker('editor.record.form.updateFrequency'),
54
+ type: 'text',
55
+ },
56
+ },
50
57
  ]
@@ -0,0 +1,7 @@
1
+ .dropdown-content {
2
+ display: none;
3
+ }
4
+
5
+ .relative:hover .dropdown-content {
6
+ display: block;
7
+ }
@@ -4,8 +4,7 @@
4
4
  (valueChange)="urlChange.next($event)"
5
5
  [hint]="'map.ogc.urlInput.hint' | translate"
6
6
  class="w-96"
7
- >
8
- </gn-ui-text-input>
7
+ ></gn-ui-text-input>
9
8
  </div>
10
9
 
11
10
  <div *ngIf="errorMessage" class="text-red-500 mt-2">
@@ -16,21 +15,36 @@
16
15
  <p class="loading-message" translate>map.loading.service</p>
17
16
  </div>
18
17
 
19
- <div *ngIf="!loading && layers.length > 0">
20
- <h2 class="font-bold" translate>map.layers.available</h2>
21
- <ng-container *ngFor="let layer of layers">
22
- <div class="flex items-center justify-between my-2 layer-item-tree">
23
- <p class="max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap">
24
- {{ layer }}
25
- </p>
26
- <gn-ui-button
27
- class="layer-add-btn"
28
- type="primary"
29
- (buttonClick)="addLayer(layer)"
30
- extraClass="text-sm !px-2 !py-1"
31
- translate
32
- ><span translate> map.layer.add </span></gn-ui-button
18
+ <ng-container *ngFor="let layer of layers">
19
+ <div
20
+ *ngIf="shouldDisplayLayer(layer)"
21
+ class="flex items-center justify-between my-2 layer-item-tree"
22
+ >
23
+ <div class="flex flex-col items-start w-full">
24
+ <p
25
+ class="max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap"
26
+ [title]="layer.name"
33
27
  >
28
+ {{ layer.name }}
29
+ </p>
30
+ <div class="flex justify-between items-center w-full">
31
+ <gn-ui-dropdown-selector
32
+ [title]="'Add Layer As' | translate"
33
+ [choices]="getLayerChoices(layer)"
34
+ (selectValue)="onLayerTypeSelect(layer.name, $event)"
35
+ [selected]="selectedLayerTypes[layer.name]"
36
+ extraBtnClass="w-6 h-5 !text-sm !px-2 !py-1"
37
+ ></gn-ui-dropdown-selector>
38
+ <gn-ui-button
39
+ class="layer-add-btn"
40
+ type="primary"
41
+ (buttonClick)="addLayer(layer.name, selectedLayerTypes[layer.name])"
42
+ extraClass="text-sm !px-2 !py-1"
43
+ translate
44
+ >
45
+ <span translate>map.layer.add</span>
46
+ </gn-ui-button>
47
+ </div>
34
48
  </div>
35
- </ng-container>
36
- </div>
49
+ </div>
50
+ </ng-container>