geonetwork-ui 2.3.0-dev.61774f7d → 2.3.0-dev.6b7e19cb

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 (152) hide show
  1. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +35 -2
  2. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +64 -0
  3. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +15 -0
  4. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +20 -6
  5. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  6. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +16 -1
  7. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +73 -20
  8. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  9. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  10. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +1 -1
  11. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +29 -8
  12. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -2
  13. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +1 -1
  14. package/esm2022/libs/feature/search/src/index.mjs +2 -1
  15. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +1 -1
  16. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -2
  17. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +2 -2
  18. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +16 -3
  19. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +77 -15
  20. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +1 -6
  21. package/esm2022/libs/ui/inputs/src/index.mjs +16 -15
  22. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +22 -0
  23. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +7 -5
  24. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +17 -8
  25. package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +29 -0
  26. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +5 -3
  27. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +11 -9
  28. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  29. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +76 -0
  30. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +42 -18
  31. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +3 -8
  32. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -2
  33. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +22 -1
  34. package/esm2022/translations/de.json +20 -14
  35. package/esm2022/translations/en.json +20 -14
  36. package/esm2022/translations/es.json +20 -14
  37. package/esm2022/translations/fr.json +20 -14
  38. package/esm2022/translations/it.json +20 -14
  39. package/esm2022/translations/nl.json +20 -14
  40. package/esm2022/translations/pt.json +20 -14
  41. package/fesm2022/geonetwork-ui.mjs +1336 -864
  42. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  43. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +3 -1
  44. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  45. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +39 -0
  46. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -0
  47. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +8 -0
  48. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -0
  49. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +3 -0
  50. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  51. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  52. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +10 -5
  53. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  54. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +1 -0
  55. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  56. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  57. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  58. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  59. package/libs/feature/search/src/index.d.ts +1 -0
  60. package/libs/feature/search/src/index.d.ts.map +1 -1
  61. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +3 -3
  62. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  63. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  64. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  65. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +3 -1
  66. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  67. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +12 -3
  68. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  69. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +29 -30
  70. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  71. package/libs/ui/inputs/src/index.d.ts +15 -14
  72. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  73. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts +9 -0
  74. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -0
  75. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts +1 -1
  76. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  77. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +1 -1
  78. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  79. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +12 -0
  80. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
  81. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -1
  82. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  83. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -35
  84. package/libs/ui/layout/src/index.d.ts +1 -0
  85. package/libs/ui/layout/src/index.d.ts.map +1 -1
  86. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +25 -0
  87. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -0
  88. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +13 -6
  89. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
  90. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +4 -5
  91. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  92. package/libs/util/shared/src/lib/links/link-utils.d.ts +18 -0
  93. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +8 -0
  96. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +2 -2
  97. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +51 -1
  98. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +0 -0
  99. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +8 -0
  100. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +64 -0
  101. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css +0 -0
  102. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +4 -0
  103. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +15 -0
  104. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +33 -33
  105. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +16 -0
  106. package/src/libs/feature/editor/src/lib/fields.config.ts +15 -0
  107. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +7 -0
  108. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +32 -18
  109. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +72 -17
  110. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +1 -0
  111. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +26 -8
  112. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -1
  113. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +0 -1
  114. package/src/libs/feature/search/src/index.ts +1 -0
  115. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -2
  116. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
  117. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +1 -1
  118. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +38 -20
  119. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +12 -0
  120. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +26 -10
  121. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +87 -8
  122. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -2
  123. package/src/libs/ui/inputs/src/index.ts +15 -14
  124. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +3 -0
  125. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +11 -0
  126. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +16 -0
  127. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +8 -1
  128. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +13 -0
  129. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.css +6 -0
  130. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.html +26 -0
  131. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.ts +32 -0
  132. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -0
  133. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +1 -0
  134. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -2
  135. package/src/libs/ui/layout/src/index.ts +1 -0
  136. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +23 -0
  137. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +20 -0
  138. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +84 -0
  139. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +8 -4
  140. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -4
  141. package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +45 -15
  142. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -2
  143. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +1 -1
  144. package/src/libs/util/shared/src/lib/links/link-utils.ts +21 -0
  145. package/translations/de.json +20 -14
  146. package/translations/en.json +20 -14
  147. package/translations/es.json +20 -14
  148. package/translations/fr.json +20 -14
  149. package/translations/it.json +20 -14
  150. package/translations/nl.json +20 -14
  151. package/translations/pt.json +20 -14
  152. package/translations/sk.json +20 -14
@@ -1,41 +1,41 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./dropdown-selector/dropdown-selector.component";
3
- import * as i2 from "./autocomplete/autocomplete.component";
4
- import * as i3 from "./text-input/text-input.component";
5
- import * as i4 from "./drag-and-drop-file-input/drag-and-drop-file-input.component";
6
- import * as i5 from "./chips-input/chips-input.component";
7
- import * as i6 from "./navigation-button/navigation-button.component";
8
- import * as i7 from "./star-toggle/star-toggle.component";
9
- import * as i8 from "./dropdown-multiselect/dropdown-multiselect.component";
10
- import * as i9 from "./viewport-intersector/viewport-intersector.component";
11
- import * as i10 from "./check-toggle/check-toggle.component";
12
- import * as i11 from "./copy-text-button/copy-text-button.component";
13
- import * as i12 from "./checkbox/checkbox.component";
14
- import * as i13 from "./search-input/search-input.component";
15
- import * as i14 from "./date-range-picker/date-range-picker.component";
16
- import * as i15 from "@angular/common";
17
- import * as i16 from "@ngx-translate/core";
18
- import * as i17 from "ngx-dropzone";
19
- import * as i18 from "@angular/forms";
20
- import * as i19 from "ngx-chips";
21
- import * as i20 from "../../../../util/shared/src/lib/util-shared.module";
22
- import * as i21 from "@angular/material/autocomplete";
23
- import * as i22 from "@angular/material/icon";
24
- import * as i23 from "../../../widgets/src/lib/ui-widgets.module";
25
- import * as i24 from "@angular/cdk/overlay";
26
- import * as i25 from "@angular/material/checkbox";
27
- import * as i26 from "@angular/material/tooltip";
28
- import * as i27 from "@angular/material/form-field";
29
- import * as i28 from "@angular/material/input";
30
- import * as i29 from "@angular/material/datepicker";
31
- import * as i30 from "@angular/material/core";
32
- import * as i31 from "./editable-label/editable-label.directive";
33
- import * as i32 from "./text-area/text-area.component";
34
- import * as i33 from "./button/button.component";
35
- import * as i34 from "./image-input/image-input.component";
2
+ import * as i1 from "./autocomplete/autocomplete.component";
3
+ import * as i2 from "./text-input/text-input.component";
4
+ import * as i3 from "./drag-and-drop-file-input/drag-and-drop-file-input.component";
5
+ import * as i4 from "./chips-input/chips-input.component";
6
+ import * as i5 from "./navigation-button/navigation-button.component";
7
+ import * as i6 from "./star-toggle/star-toggle.component";
8
+ import * as i7 from "./dropdown-multiselect/dropdown-multiselect.component";
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";
36
36
  export declare class UiInputsModule {
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<UiInputsModule, never>;
38
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiInputsModule, [typeof i1.DropdownSelectorComponent, typeof i2.AutocompleteComponent, typeof i3.TextInputComponent, typeof i4.DragAndDropFileInputComponent, typeof i5.ChipsInputComponent, typeof i6.NavigationButtonComponent, typeof i7.StarToggleComponent, typeof i8.DropdownMultiselectComponent, typeof i9.ViewportIntersectorComponent, typeof i10.CheckToggleComponent, typeof i11.CopyTextButtonComponent, typeof i12.CheckboxComponent, typeof i13.SearchInputComponent, typeof i14.DateRangePickerComponent], [typeof i15.CommonModule, typeof i16.TranslateModule, typeof i17.NgxDropzoneModule, typeof i18.FormsModule, typeof i18.ReactiveFormsModule, typeof i19.TagInputModule, typeof i20.UtilSharedModule, typeof i21.MatAutocompleteModule, typeof i22.MatIconModule, typeof i23.UiWidgetsModule, typeof i24.OverlayModule, typeof i25.MatCheckboxModule, typeof i26.MatTooltipModule, typeof i27.MatFormFieldModule, typeof i28.MatInputModule, typeof i29.MatDatepickerModule, typeof i30.MatNativeDateModule, typeof i31.EditableLabelDirective, typeof i32.TextAreaComponent, typeof i33.ButtonComponent, typeof i34.ImageInputComponent], [typeof i1.DropdownSelectorComponent, typeof i2.AutocompleteComponent, typeof i33.ButtonComponent, typeof i3.TextInputComponent, typeof i4.DragAndDropFileInputComponent, typeof i32.TextAreaComponent, typeof i5.ChipsInputComponent, typeof i6.NavigationButtonComponent, typeof i7.StarToggleComponent, typeof i8.DropdownMultiselectComponent, typeof i9.ViewportIntersectorComponent, typeof i10.CheckToggleComponent, typeof i11.CopyTextButtonComponent, typeof i12.CheckboxComponent, typeof i13.SearchInputComponent, typeof i14.DateRangePickerComponent, typeof i31.EditableLabelDirective, typeof i34.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.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]>;
39
39
  static ɵinj: i0.ɵɵInjectorDeclaration<UiInputsModule>;
40
40
  }
41
41
  //# sourceMappingURL=ui-inputs.module.d.ts.map
@@ -6,5 +6,6 @@ export * from './lib/form-field-wrapper/form-field-wrapper.component';
6
6
  export * from './lib/interactive-table/interactive-table-column/interactive-table-column.component';
7
7
  export * from './lib/interactive-table/interactive-table.component';
8
8
  export * from './lib/sticky-header/sticky-header.component';
9
+ export * from './lib/block-list/block-list.component';
9
10
  export * from './lib/ui-layout.module';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/layout/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iEAAiE,CAAA;AAC/E,cAAc,mDAAmD,CAAA;AACjE,cAAc,uDAAuD,CAAA;AACrE,cAAc,qFAAqF,CAAA;AACnG,cAAc,qDAAqD,CAAA;AACnE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/layout/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iEAAiE,CAAA;AAC/E,cAAc,mDAAmD,CAAA;AACjE,cAAc,uDAAuD,CAAA;AACrE,cAAc,qFAAqF,CAAA;AACnG,cAAc,qDAAqD,CAAA;AACnE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,uCAAuC,CAAA;AACrD,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, QueryList } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class BlockListComponent implements AfterViewInit {
4
+ private changeDetector;
5
+ pageSize: number;
6
+ containerClass: string;
7
+ paginationContainerClass: string;
8
+ blocks: QueryList<ElementRef<HTMLElement>>;
9
+ blockContainer: ElementRef<HTMLElement>;
10
+ protected minHeight: number;
11
+ protected currentPage: number;
12
+ protected get pages(): number[];
13
+ get isFirstPage(): boolean;
14
+ get isLastPage(): boolean;
15
+ get pagesCount(): number;
16
+ constructor(changeDetector: ChangeDetectorRef);
17
+ ngAfterViewInit(): void;
18
+ protected refreshBlocksVisibility: () => void;
19
+ goToPage(index: number): void;
20
+ previousPage(): void;
21
+ nextPage(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlockListComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<BlockListComponent, "gn-ui-block-list", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "paginationContainerClass": { "alias": "paginationContainerClass"; "required": false; }; }, {}, ["blocks"], ["*"], true, never>;
24
+ }
25
+ //# sourceMappingURL=block-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-list.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/block-list/block-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,iBAAiB,EAGjB,UAAU,EAEV,SAAS,EAEV,MAAM,eAAe,CAAA;;AAGtB,qBAQa,kBAAmB,YAAW,aAAa;IA0B1C,OAAO,CAAC,cAAc;IAzBzB,QAAQ,SAAI;IACZ,cAAc,SAAK;IACnB,wBAAwB,SAA6B;IACd,MAAM,EAAE,SAAS,CAC/D,UAAU,CAAC,WAAW,CAAC,CACxB,CAAA;IAC4B,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAEpE,SAAS,CAAC,SAAS,SAAI;IAEvB,SAAS,CAAC,WAAW,SAAI;IACzB,SAAS,KAAK,KAAK,aAElB;IAED,IAAI,WAAW,YAEd;IACD,IAAI,UAAU,YAEb;IACD,IAAI,UAAU,WAEb;gBAEmB,cAAc,EAAE,iBAAiB;IAErD,eAAe;IASf,SAAS,CAAC,uBAAuB,aAQhC;IAEM,QAAQ,CAAC,KAAK,EAAE,MAAM;IAMtB,YAAY;IAKZ,QAAQ;yCA1DJ,kBAAkB;2CAAlB,kBAAkB;CA8D9B"}
@@ -1,18 +1,25 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
2
2
  import { EmblaCarouselType } from 'embla-carousel';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class CarouselComponent implements AfterViewInit {
5
5
  private changeDetector;
6
+ carouselOverflowContainer: ElementRef;
6
7
  containerClass: string;
7
8
  stepsContainerClass: string;
8
- carouselOverflowContainer: ElementRef;
9
- steps: number[];
10
- selectedStep: number;
11
- emblaApi: EmblaCarouselType;
9
+ currentStepChange: EventEmitter<number>;
10
+ protected steps: number[];
11
+ protected emblaApi: EmblaCarouselType;
12
+ protected currentStep: number;
13
+ protected refreshSteps: () => void;
14
+ get isFirstStep(): boolean;
15
+ get isLastStep(): boolean;
16
+ get stepsCount(): number;
12
17
  constructor(changeDetector: ChangeDetectorRef);
13
18
  ngAfterViewInit(): void;
14
19
  scrollToStep(stepIndex: number): void;
20
+ slideToPrevious(): void;
21
+ slideToNext(): void;
15
22
  static ɵfac: i0.ɵɵFactoryDeclaration<CarouselComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<CarouselComponent, "gn-ui-carousel", never, { "containerClass": { "alias": "containerClass"; "required": false; }; "stepsContainerClass": { "alias": "stepsContainerClass"; "required": false; }; }, {}, never, ["*"], false, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<CarouselComponent, "gn-ui-carousel", never, { "containerClass": { "alias": "containerClass"; "required": false; }; "stepsContainerClass": { "alias": "stepsContainerClass"; "required": false; }; }, { "currentStepChange": "currentStepChange"; }, never, ["*"], true, never>;
17
24
  }
18
25
  //# sourceMappingURL=carousel.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/carousel/carousel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,iBAAiB,EAEjB,UAAU,EAGX,MAAM,eAAe,CAAA;AACtB,OAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;;AAEjE,qBAMa,iBAAkB,YAAW,aAAa;IASzC,OAAO,CAAC,cAAc;IARzB,cAAc,SAAK;IACnB,mBAAmB,SAAK;IAEjC,yBAAyB,EAAE,UAAU,CAAA;IACrC,KAAK,EAAE,MAAM,EAAE,CAAK;IACpB,YAAY,SAAK;IACjB,QAAQ,EAAE,iBAAiB,CAAA;gBAEP,cAAc,EAAE,iBAAiB;IAErD,eAAe;IAkBf,YAAY,CAAC,SAAS,EAAE,MAAM;yCA7BnB,iBAAiB;2CAAjB,iBAAiB;CAgC7B"}
1
+ {"version":3,"file":"carousel.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/carousel/carousel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAIb,MAAM,eAAe,CAAA;AACtB,OAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;;AAGjE,qBAQa,iBAAkB,YAAW,aAAa;IA4BzC,OAAO,CAAC,cAAc;IA3BM,yBAAyB,EAAE,UAAU,CAAA;IAEpE,cAAc,SAAK;IACnB,mBAAmB,SAA6B;IAC/C,iBAAiB,uBAA6B;IAExD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAK;IAC9B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACrC,SAAS,CAAC,WAAW,SAAI;IAEzB,SAAS,CAAC,YAAY,aAKrB;IAED,IAAI,WAAW,YAEd;IACD,IAAI,UAAU,YAEb;IACD,IAAI,UAAU,WAEb;gBAEmB,cAAc,EAAE,iBAAiB;IAErD,eAAe;IAcR,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,eAAe;IAKf,WAAW;yCArDP,iBAAiB;2CAAjB,iBAAiB;CAyD7B"}
@@ -3,13 +3,12 @@ import * as i1 from "./expandable-panel/expandable-panel.component";
3
3
  import * as i2 from "./sticky-header/sticky-header.component";
4
4
  import * as i3 from "./anchor-link/anchor-link.directive";
5
5
  import * as i4 from "./expandable-panel-button/expandable-panel-button.component";
6
- import * as i5 from "./carousel/carousel.component";
7
- import * as i6 from "@angular/common";
8
- import * as i7 from "@angular/material/icon";
9
- import * as i8 from "@ngx-translate/core";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@angular/material/icon";
8
+ import * as i7 from "@ngx-translate/core";
10
9
  export declare class UiLayoutModule {
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<UiLayoutModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiLayoutModule, [typeof i1.ExpandablePanelComponent, typeof i2.StickyHeaderComponent, typeof i3.AnchorLinkDirective, typeof i4.ExpandablePanelButtonComponent, typeof i5.CarouselComponent], [typeof i6.CommonModule, typeof i7.MatIconModule, typeof i8.TranslateModule], [typeof i1.ExpandablePanelComponent, typeof i2.StickyHeaderComponent, typeof i3.AnchorLinkDirective, typeof i4.ExpandablePanelButtonComponent, typeof i5.CarouselComponent]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UiLayoutModule, [typeof i1.ExpandablePanelComponent, typeof i2.StickyHeaderComponent, typeof i3.AnchorLinkDirective, typeof i4.ExpandablePanelButtonComponent], [typeof i5.CommonModule, typeof i6.MatIconModule, typeof i7.TranslateModule], [typeof i1.ExpandablePanelComponent, typeof i2.StickyHeaderComponent, typeof i3.AnchorLinkDirective, typeof i4.ExpandablePanelButtonComponent]>;
13
12
  static ɵinj: i0.ɵɵInjectorDeclaration<UiLayoutModule>;
14
13
  }
15
14
  //# sourceMappingURL=ui-layout.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-layout.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/layout/src/lib/ui-layout.module.ts"],"names":[],"mappings":";;;;;;;;;AAUA,qBAiBa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAG"}
1
+ {"version":3,"file":"ui-layout.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/layout/src/lib/ui-layout.module.ts"],"names":[],"mappings":";;;;;;;;AAUA,qBAea,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAG"}
@@ -78,6 +78,24 @@ export declare const FORMATS: {
78
78
  readonly color: "#de630b";
79
79
  readonly mimeTypes: readonly ["application/x-dxf", "image/x-dxf"];
80
80
  };
81
+ readonly html: {
82
+ readonly extensions: readonly ["html", "htm"];
83
+ readonly priority: 12;
84
+ readonly color: "#f2bb3a";
85
+ readonly mimeTypes: readonly ["text/html"];
86
+ };
87
+ readonly fgb: {
88
+ readonly extensions: readonly ["fgb", "flatgeobuf"];
89
+ readonly priority: 13;
90
+ readonly color: "#f2bb3a";
91
+ readonly mimeTypes: readonly ["application/flatgeobuf"];
92
+ };
93
+ readonly jsonfg: {
94
+ readonly extensions: readonly ["jsonfg", "jsonfgc"];
95
+ readonly priority: 14;
96
+ readonly color: "#f2bb3a";
97
+ readonly mimeTypes: readonly ["application/vnd.ogc.fg+json", "application/vnd.ogc.fg+json;compatibility=geojson"];
98
+ };
81
99
  };
82
100
  export type FileFormat = keyof typeof FORMATS;
83
101
  export declare function getFormatPriority(linkFormat: FileFormat): number;
@@ -1 +1 @@
1
- {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
1
+ {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.3.0-dev.61774f7d",
3
+ "version": "2.3.0-dev.6b7e19cb",
4
4
  "engines": {
5
5
  "node": ">=14.17.0"
6
6
  },
@@ -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',
@@ -49,8 +49,8 @@ export const DATASET_RECORDS: DatasetRecord[] = deepFreeze([
49
49
  status: 'ongoing',
50
50
  recordCreated: new Date('2022-02-01T15:12:00'),
51
51
  recordUpdated: new Date('2022-02-01T15:12:00'),
52
- datasetCreated: new Date('2022-09-01T14:18:19'),
53
- datasetUpdated: new Date('2022-12-04T15:12:00'),
52
+ resourceCreated: new Date('2022-09-01T14:18:19'),
53
+ resourceUpdated: new Date('2022-12-04T15:12:00'),
54
54
  title: 'A very interesting dataset (un jeu de données très intéressant)',
55
55
  abstract: `# Introduction
56
56
  This dataset has been established for testing purposes.
@@ -1,6 +1,11 @@
1
1
  import { Injectable } from '@angular/core'
2
2
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
3
- import { WfsEndpoint, WfsVersion } from '@camptocamp/ogc-client'
3
+ import {
4
+ OgcApiCollectionInfo,
5
+ OgcApiEndpoint,
6
+ WfsEndpoint,
7
+ WfsVersion,
8
+ } from '@camptocamp/ogc-client'
4
9
  import {
5
10
  BaseReader,
6
11
  FetchError,
@@ -27,6 +32,7 @@ marker('wfs.unreachable.http')
27
32
  marker('wfs.unreachable.unknown')
28
33
  marker('wfs.featuretype.notfound')
29
34
  marker('wfs.geojsongml.notsupported')
35
+ marker('ogc.unreachable.unknown')
30
36
  marker('dataset.error.network')
31
37
  marker('dataset.error.http')
32
38
  marker('dataset.error.parse')
@@ -148,6 +154,35 @@ export class DataService {
148
154
  )
149
155
  }
150
156
 
157
+ async getDownloadLinksFromOgcApiFeatures(
158
+ ogcApiLink: DatasetServiceDistribution
159
+ ): Promise<DatasetDistribution[]> {
160
+ const collectionInfo = await this.getDownloadUrlsFromOgcApi(
161
+ ogcApiLink.url.href
162
+ )
163
+ return Object.keys(collectionInfo.bulkDownloadLinks).map((downloadLink) => {
164
+ return {
165
+ ...ogcApiLink,
166
+ type: 'download',
167
+ url: new URL(collectionInfo.bulkDownloadLinks[downloadLink]),
168
+ mimeType: getMimeTypeForFormat(
169
+ getFileFormatFromServiceOutput(downloadLink)
170
+ ),
171
+ }
172
+ })
173
+ }
174
+
175
+ async getDownloadUrlsFromOgcApi(url: string): Promise<OgcApiCollectionInfo> {
176
+ const endpoint = new OgcApiEndpoint(this.proxy.getProxiedUrl(url))
177
+ return await endpoint.featureCollections
178
+ .then((collections) => {
179
+ return endpoint.getCollectionInfo(collections[0])
180
+ })
181
+ .catch((error) => {
182
+ throw new Error(`ogc.unreachable.unknown`)
183
+ })
184
+ }
185
+
151
186
  getDownloadLinksFromEsriRest(
152
187
  esriRestLink: DatasetServiceDistribution
153
188
  ): DatasetDistribution[] {
@@ -205,6 +240,21 @@ export class DataService {
205
240
  'geojson'
206
241
  )
207
242
  return from(openDataset(url, 'geojson')).pipe()
243
+ } else if (
244
+ link.type === 'service' &&
245
+ link.accessServiceProtocol === 'ogcFeatures'
246
+ ) {
247
+ return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(
248
+ switchMap((collectionInfo) => {
249
+ const geojsonUrl = collectionInfo.jsonDownloadLink
250
+ return openDataset(geojsonUrl, 'geojson')
251
+ }),
252
+ tap((url) => {
253
+ if (url === null) {
254
+ throw new Error('wfs.geojsongml.notsupported')
255
+ }
256
+ })
257
+ )
208
258
  }
209
259
  return throwError(() => 'protocol not supported')
210
260
  }
@@ -0,0 +1,8 @@
1
+ <gn-ui-dropdown-selector
2
+ [title]="label"
3
+ [showTitle]="false"
4
+ [choices]="choices"
5
+ [selected]="selected"
6
+ (selectValue)="onSelectValue($event)"
7
+ >
8
+ </gn-ui-dropdown-selector>
@@ -0,0 +1,64 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { FormControl } from '@angular/forms'
3
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker'
4
+ import { DropdownSelectorComponent } from '../../../../../../../../../libs/ui/inputs/src'
5
+
6
+ @Component({
7
+ selector: 'gn-ui-form-field-license',
8
+ templateUrl: './form-field-license.component.html',
9
+ styleUrls: ['./form-field-license.component.css'],
10
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
+ standalone: true,
12
+ imports: [DropdownSelectorComponent],
13
+ })
14
+ export class FormFieldLicenseComponent {
15
+ @Input() control!: FormControl
16
+ @Input() label: string
17
+
18
+ get selected() {
19
+ return this.control.value[0]?.text
20
+ }
21
+
22
+ onSelectValue(value: unknown) {
23
+ this.control.setValue([{ text: value }])
24
+ }
25
+
26
+ choices = [
27
+ {
28
+ value: 'cc-by',
29
+ label: marker('editor.record.form.license.cc-by'),
30
+ },
31
+ {
32
+ value: 'cc-by-sa',
33
+ label: marker('editor.record.form.license.cc-by-sa'),
34
+ },
35
+ {
36
+ value: 'cc-zero',
37
+ label: marker('editor.record.form.license.cc-zero'),
38
+ },
39
+ {
40
+ value: 'etalab',
41
+ label: marker('editor.record.form.license.etalab'),
42
+ },
43
+ {
44
+ value: 'etalab-v2',
45
+ label: marker('editor.record.form.license.etalab-v2'),
46
+ },
47
+ {
48
+ value: 'odbl',
49
+ label: marker('editor.record.form.license.odbl'),
50
+ },
51
+ {
52
+ value: 'odc-by',
53
+ label: marker('editor.record.form.license.odc-by'),
54
+ },
55
+ {
56
+ value: 'pddl',
57
+ label: marker('editor.record.form.license.pddl'),
58
+ },
59
+ {
60
+ value: 'unknown',
61
+ label: marker('editor.record.form.license.unknown'),
62
+ },
63
+ ]
64
+ }
@@ -0,0 +1,4 @@
1
+ <gn-ui-date-picker
2
+ [date]="control.value"
3
+ (dateChange)="control.setValue($event)"
4
+ ></gn-ui-date-picker>
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { FormControl } from '@angular/forms'
3
+ import { DatePickerComponent } from '../../../../../../../../../libs/ui/inputs/src'
4
+
5
+ @Component({
6
+ selector: 'gn-ui-form-field-resource-updated',
7
+ templateUrl: './form-field-resource-updated.component.html',
8
+ styleUrls: ['./form-field-resource-updated.component.css'],
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [DatePickerComponent],
12
+ })
13
+ export class FormFieldResourceUpdatedComponent {
14
+ @Input() control!: FormControl
15
+ }
@@ -1,29 +1,18 @@
1
1
  <div class="flex flex-col h-full">
2
- <div class="mb-2 flex flex-row">
3
- <label class="grow">
4
- <span class="font-medium field-label">{{
5
- config.labelKey | translate
6
- }}</span>
7
- <span *ngIf="config.hintKey" class="text-gray-900 text-sm">
8
- - {{ config.hintKey | translate }}
9
- </span>
10
- </label>
11
- <mat-icon
12
- *ngIf="isFieldOk"
13
- class="material-symbols-outlined text-[#c6d950] icon-ok"
14
- >check_circle</mat-icon
15
- >
16
- <mat-icon
17
- *ngIf="isFieldLocked"
18
- class="material-symbols-outlined text-blue-400 icon-locked"
19
- >lock</mat-icon
20
- >
21
- <mat-icon
22
- *ngIf="isFieldInvalid"
23
- class="material-symbols-outlined text-pink-500 icon-invalid"
24
- >cancel</mat-icon
2
+ <ng-container *ngIf="withoutWrapper; else withGenericWrapper">
3
+ <ng-container *ngTemplateOutlet="fieldContent"></ng-container>
4
+ </ng-container>
5
+ <ng-template #withGenericWrapper>
6
+ <gn-ui-form-field-wrapper
7
+ [label]="config.labelKey | translate"
8
+ [hint]="config.hintKey | translate"
25
9
  >
26
- </div>
10
+ <ng-container *ngTemplateOutlet="fieldContent"></ng-container>
11
+ </gn-ui-form-field-wrapper>
12
+ </ng-template>
13
+ </div>
14
+
15
+ <ng-template #fieldContent>
27
16
  <ng-container *ngIf="isTitle">
28
17
  <div class="flex justify-between items-center gap-3">
29
18
  <h2
@@ -48,6 +37,25 @@
48
37
  </span>
49
38
  </div>
50
39
  </ng-container>
40
+ <ng-container *ngIf="isAbstract">
41
+ <gn-ui-form-field-rich
42
+ class="h-[8rem]"
43
+ [control]="formControl"
44
+ [label]="config.labelKey | translate"
45
+ [hint]="config.hintKey | translate"
46
+ ></gn-ui-form-field-rich>
47
+ </ng-container>
48
+ <ng-container *ngIf="isLicenses">
49
+ <gn-ui-form-field-license
50
+ [control]="formControl"
51
+ [label]="config.labelKey | translate"
52
+ ></gn-ui-form-field-license>
53
+ </ng-container>
54
+ <ng-container *ngIf="isResourceUpdated">
55
+ <gn-ui-form-field-resource-updated
56
+ [control]="formControl"
57
+ ></gn-ui-form-field-resource-updated>
58
+ </ng-container>
51
59
  <ng-container *ngIf="isSimpleField">
52
60
  <gn-ui-form-field-simple
53
61
  [type]="simpleType"
@@ -63,14 +71,6 @@
63
71
  [invalid]="isFieldInvalid"
64
72
  ></gn-ui-form-field-file>
65
73
  </ng-container>
66
- <ng-container *ngIf="isAbstract">
67
- <gn-ui-form-field-rich
68
- class="h-[8rem]"
69
- [control]="formControl"
70
- [label]="config.labelKey | translate"
71
- [hint]="config.hintKey | translate"
72
- ></gn-ui-form-field-rich>
73
- </ng-container>
74
74
  <ng-container *ngIf="isArrayField">
75
75
  <gn-ui-form-field-array></gn-ui-form-field-array>
76
76
  </ng-container>
@@ -89,4 +89,4 @@
89
89
  >
90
90
  {{ config.invalidHintKey | translate }}
91
91
  </div>
92
- </div>
92
+ </ng-template>
@@ -11,11 +11,14 @@ import { FormControl, ReactiveFormsModule } from '@angular/forms'
11
11
  import { MatIconModule } from '@angular/material/icon'
12
12
  import { MatTooltipModule } from '@angular/material/tooltip'
13
13
  import { EditableLabelDirective } from '../../../../../../../../libs/ui/inputs/src'
14
+ import { FormFieldWrapperComponent } from '../../../../../../../../libs/ui/layout/src'
14
15
  import { TranslateModule } from '@ngx-translate/core'
15
16
  import { Observable } from 'rxjs'
16
17
  import { FormFieldArrayComponent } from './form-field-array/form-field-array.component'
17
18
  import { FormFieldFileComponent } from './form-field-file/form-field-file.component'
19
+ import { FormFieldLicenseComponent } from './form-field-license/form-field-license.component'
18
20
  import { FormFieldObjectComponent } from './form-field-object/form-field-object.component'
21
+ import { FormFieldResourceUpdatedComponent } from './form-field-resource-updated/form-field-resource-updated.component'
19
22
  import { FormFieldRichComponent } from './form-field-rich/form-field-rich.component'
20
23
  import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.component'
21
24
  import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component'
@@ -34,6 +37,9 @@ import { FormFieldConfig } from './form-field.model'
34
37
  EditableLabelDirective,
35
38
  MatIconModule,
36
39
  MatTooltipModule,
40
+ FormFieldWrapperComponent,
41
+ FormFieldLicenseComponent,
42
+ FormFieldResourceUpdatedComponent,
37
43
  FormFieldSimpleComponent,
38
44
  FormFieldRichComponent,
39
45
  FormFieldObjectComponent,
@@ -118,4 +124,14 @@ export class FormFieldComponent {
118
124
  get isAbstract() {
119
125
  return this.model === 'abstract'
120
126
  }
127
+ get isLicenses() {
128
+ return this.model === 'licenses'
129
+ }
130
+ get isResourceUpdated() {
131
+ return this.model === 'resourceUpdated'
132
+ }
133
+
134
+ get withoutWrapper() {
135
+ return this.model === 'title' || this.model === 'abstract'
136
+ }
121
137
  }
@@ -1,3 +1,4 @@
1
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker'
1
2
  import { EditorFieldsConfig } from './models/fields.model'
2
3
 
3
4
  export const DEFAULT_FIELDS: EditorFieldsConfig = [
@@ -32,4 +33,18 @@ export const DEFAULT_FIELDS: EditorFieldsConfig = [
32
33
  },
33
34
  onSaveProcess: '${dateNow()}',
34
35
  },
36
+ {
37
+ model: 'licenses',
38
+ formFieldConfig: {
39
+ labelKey: marker('editor.record.form.license'),
40
+ type: 'list',
41
+ },
42
+ },
43
+ {
44
+ model: 'resourceUpdated',
45
+ formFieldConfig: {
46
+ labelKey: marker('editor.record.form.resourceUpdated'),
47
+ type: 'date',
48
+ },
49
+ },
35
50
  ]
@@ -0,0 +1,7 @@
1
+ .dropdown-content {
2
+ display: none;
3
+ }
4
+
5
+ .relative:hover .dropdown-content {
6
+ display: block;
7
+ }