geonetwork-ui 2.4.0-dev.656babc7 → 2.4.0-dev.81e72b2e

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 (226) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +14 -5
  2. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  4. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +2 -2
  5. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  8. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  9. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
  10. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  11. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  12. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
  13. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +7 -4
  14. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  15. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  16. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -4
  17. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +2 -1
  18. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +2 -2
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +14 -44
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +64 -50
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +12 -35
  22. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +12 -6
  23. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -4
  24. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -12
  26. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  27. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  28. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  29. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  30. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  31. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +7 -4
  32. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  33. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +49 -0
  34. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  35. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  36. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  37. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
  38. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  39. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  40. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  41. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +2 -3
  42. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  43. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +1 -6
  44. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +59 -26
  45. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +2 -7
  46. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  47. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  48. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  49. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  50. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +120 -0
  51. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +5 -3
  52. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +1 -6
  53. package/esm2022/translations/de.json +27 -3
  54. package/esm2022/translations/en.json +30 -3
  55. package/esm2022/translations/es.json +27 -3
  56. package/esm2022/translations/fr.json +31 -4
  57. package/esm2022/translations/it.json +27 -3
  58. package/esm2022/translations/nl.json +27 -3
  59. package/esm2022/translations/pt.json +27 -3
  60. package/fesm2022/geonetwork-ui.mjs +855 -604
  61. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  62. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
  63. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  64. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  65. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  66. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  67. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  68. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -1
  69. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  70. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  71. package/libs/feature/catalog/src/index.d.ts +1 -0
  72. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  73. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  74. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  75. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  76. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  77. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +2 -1
  78. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  79. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  80. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  81. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  82. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  83. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  84. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  85. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +14 -24
  86. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  87. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +6 -6
  88. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  89. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +5 -10
  90. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  91. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -1
  92. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  93. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -1
  94. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  95. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  96. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  97. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  98. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  99. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  100. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  101. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  102. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  103. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  104. package/libs/feature/search/src/index.d.ts +1 -1
  105. package/libs/feature/search/src/index.d.ts.map +1 -1
  106. package/libs/feature/search/src/lib/feature-search.module.d.ts +2 -1
  107. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  108. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  109. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +25 -0
  110. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -0
  111. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  112. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  113. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  114. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  115. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  116. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
  117. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  118. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  119. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  120. package/libs/ui/elements/src/index.d.ts +0 -1
  121. package/libs/ui/elements/src/index.d.ts.map +1 -1
  122. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  123. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  125. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  126. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +18 -19
  127. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  128. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +7 -4
  129. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  130. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -36
  131. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  132. package/libs/ui/layout/src/index.d.ts +1 -0
  133. package/libs/ui/layout/src/index.d.ts.map +1 -1
  134. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  135. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  136. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  137. package/libs/ui/search/src/index.d.ts +1 -0
  138. package/libs/ui/search/src/index.d.ts.map +1 -1
  139. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +30 -0
  140. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  141. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts +1 -1
  142. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  143. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +10 -11
  144. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  145. package/package.json +1 -1
  146. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +21 -8
  147. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  148. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  149. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +1 -1
  150. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  151. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  152. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -0
  153. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
  154. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  155. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  156. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  157. package/src/libs/feature/catalog/src/index.ts +1 -0
  158. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
  159. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  160. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  161. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  162. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +2 -1
  163. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  164. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +35 -29
  165. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +1 -0
  166. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +1 -1
  167. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +2 -3
  168. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +19 -61
  169. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +95 -86
  170. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +2 -22
  171. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +11 -44
  172. package/src/libs/feature/editor/src/lib/services/editor.service.ts +20 -6
  173. package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -2
  174. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +42 -31
  175. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  176. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  177. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  178. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
  179. package/src/libs/feature/search/src/index.ts +1 -1
  180. package/src/libs/feature/search/src/lib/feature-search.module.ts +2 -1
  181. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +2 -2
  182. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +9 -0
  183. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +49 -0
  184. package/src/libs/feature/search/src/lib/state/search.facade.ts +5 -0
  185. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  186. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  187. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  188. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
  189. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  190. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  191. package/src/libs/ui/elements/src/index.ts +0 -1
  192. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  193. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  194. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  195. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  196. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -3
  197. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +0 -1
  198. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +23 -19
  199. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +79 -27
  200. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  201. package/src/libs/ui/layout/src/index.ts +1 -0
  202. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  203. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  204. package/src/libs/ui/search/src/index.ts +1 -0
  205. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +0 -0
  206. package/src/libs/{feature → ui}/search/src/lib/results-table/results-table.component.html +8 -8
  207. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +138 -0
  208. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +4 -0
  209. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -3
  210. package/translations/de.json +27 -3
  211. package/translations/en.json +30 -3
  212. package/translations/es.json +27 -3
  213. package/translations/fr.json +31 -4
  214. package/translations/it.json +27 -3
  215. package/translations/nl.json +27 -3
  216. package/translations/pt.json +27 -3
  217. package/translations/sk.json +28 -4
  218. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +0 -136
  219. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  220. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -36
  221. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +0 -1
  222. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  223. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -171
  224. /package/src/libs/feature/search/src/lib/results-table/{results-table.component.css → results-table-container.component.css} +0 -0
  225. /package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.css +0 -0
  226. /package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +0 -0
@@ -5,84 +5,112 @@ export const ORGANISATIONS_FIXTURE: Organization[] = deepFreeze([
5
5
  {
6
6
  name: 'I Data Org',
7
7
  description: 'one org for testing',
8
+ email: 'test@gmail.com',
9
+ website: new URL('https://my-geonetwork.org/'),
8
10
  logoUrl: new URL('https://my-geonetwork.org/logo1.png'),
9
11
  recordCount: 12,
10
12
  },
11
13
  {
12
14
  name: 'H Data Org',
13
15
  description: 'another org for testing',
16
+ email: 'test@gmail.com',
17
+ website: new URL('https://my-geonetwork.org/'),
14
18
  logoUrl: new URL('https://my-geonetwork.org/logo2.png'),
15
19
  recordCount: 15,
16
20
  },
17
21
  {
18
22
  name: 'J Data Org',
19
23
  description: 'another org for testing',
24
+ email: 'test@gmail.com',
25
+ website: new URL('https://my-geonetwork.org/'),
20
26
  logoUrl: new URL('https://my-geonetwork.org/logo3.png'),
21
27
  recordCount: 6,
22
28
  },
23
29
  {
24
30
  name: 'G Data Org',
25
31
  description: 'another org for testing',
32
+ email: 'test@gmail.com',
33
+ website: new URL('https://my-geonetwork.org/'),
26
34
  logoUrl: new URL('https://my-geonetwork.org/logo4.png'),
27
35
  recordCount: 8,
28
36
  },
29
37
  {
30
38
  name: 'B Data Org',
31
39
  description: 'another org for testing',
40
+ email: 'test@gmail.com',
41
+ website: new URL('https://my-geonetwork.org/'),
32
42
  logoUrl: new URL('https://my-geonetwork.org/logo5.png'),
33
43
  recordCount: 2,
34
44
  },
35
45
  {
36
46
  name: 'D Data Org',
37
47
  description: 'another org for testing',
48
+ email: 'test@gmail.com',
49
+ website: new URL('https://my-geonetwork.org/'),
38
50
  logoUrl: new URL('https://my-geonetwork.org/logo6.png'),
39
51
  recordCount: 17,
40
52
  },
41
53
  {
42
54
  name: 'F Data Org',
43
55
  description: 'another org for testing',
56
+ email: 'test@gmail.com',
57
+ website: new URL('https://my-geonetwork.org/'),
44
58
  logoUrl: new URL('https://my-geonetwork.org/logo7.png'),
45
59
  recordCount: 14,
46
60
  },
47
61
  {
48
62
  name: 'A Data Org',
49
63
  description: 'another org for testing',
64
+ email: 'test@gmail.com',
65
+ website: new URL('https://my-geonetwork.org/'),
50
66
  logoUrl: new URL('https://my-geonetwork.org/logo8.png'),
51
67
  recordCount: 3,
52
68
  },
53
69
  {
54
70
  name: 'C Data Org',
55
71
  description: 'another org for testing',
72
+ email: 'test@gmail.com',
73
+ website: new URL('https://my-geonetwork.org/'),
56
74
  logoUrl: new URL('https://my-geonetwork.org/logo9.png'),
57
75
  recordCount: 9,
58
76
  },
59
77
  {
60
78
  name: 'E Data Org',
61
79
  description: 'another org for testing',
80
+ email: 'test@gmail.com',
81
+ website: new URL('https://my-geonetwork.org/'),
62
82
  logoUrl: new URL('https://my-geonetwork.org/logo10.png'),
63
83
  recordCount: 1,
64
84
  },
65
85
  {
66
86
  name: 'é Data Org',
67
87
  description: 'another org for testing',
88
+ email: 'test@gmail.com',
89
+ website: new URL('https://my-geonetwork.org/'),
68
90
  logoUrl: new URL('https://my-geonetwork.org/logo10.png'),
69
91
  recordCount: 2,
70
92
  },
71
93
  {
72
94
  name: 'wizard-org',
73
95
  description: 'another org for testing',
96
+ email: 'test@gmail.com',
97
+ website: new URL('https://my-geonetwork.org/'),
74
98
  logoUrl: new URL('https://my-geonetwork.org/logo11.png'),
75
99
  recordCount: 2,
76
100
  },
77
101
  {
78
102
  name: "Université de l'Ingénierie",
79
103
  description: 'another org for testing',
104
+ email: 'test@gmail.com',
105
+ website: new URL('https://my-geonetwork.org/'),
80
106
  logoUrl: new URL('https://my-geonetwork.org/logo12.png'),
81
107
  recordCount: 2,
82
108
  },
83
109
  {
84
110
  name: 'ARS / Agence régionale de santé',
85
111
  description: 'another org for testing',
112
+ email: 'test@gmail.com',
113
+ website: new URL('https://my-geonetwork.org/'),
86
114
  logoUrl: new URL('https://my-geonetwork.org/logo12.png'),
87
115
  recordCount: 2,
88
116
  },
@@ -233,6 +233,14 @@ Malgré l'attention portée à la création de ces données, il est rappelé que
233
233
  description: 'Téléchargement du fichier',
234
234
  mimeType: 'x-gis/x-shapefile',
235
235
  },
236
+ {
237
+ type: 'service',
238
+ url: new URL('https://my-org.net/ogc'),
239
+ accessServiceProtocol: 'ogcFeatures',
240
+ name: 'ogcFeaturesSecondRecord',
241
+ description: 'This OGC service is the second part of the download',
242
+ identifierInService: 'my:featuretype',
243
+ },
236
244
  ],
237
245
  lineage: `Document d’urbanisme numérisé conformément aux prescriptions nationales du CNIG par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.
238
246
  Ce lot de données produit en 2019, a été numérisé à partir du PCI Vecteur de 2019 et contrôlé par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.`,
@@ -38,4 +38,8 @@ export interface DatasetMetadataApiModel {
38
38
  * textual description of dataset lineage
39
39
  */
40
40
  creationProcessDescription?: string
41
+ /**
42
+ * Optional, additional options for the dataset
43
+ */
44
+ options: any
41
45
  }
@@ -34,4 +34,6 @@ export interface DatasetUploadStatusApiModel {
34
34
  * detected charset
35
35
  */
36
36
  encoding?: string
37
+ format?: 'CSV' | 'SHAPEFILE'
38
+ options?: any
37
39
  }
@@ -21,7 +21,7 @@ export interface UserApiModel {
21
21
  emailAddresses?: Set<string>
22
22
  addresses?: Set<AddressApiModel>
23
23
  primaryAddress?: AddressApiModel
24
- organisation?: string
24
+ organization?: string
25
25
  kind?: string
26
26
  lastLoginDate?: string
27
27
  authorities?: Array<GrantedAuthorityApiModel>
@@ -1,4 +1,5 @@
1
1
  export * from './lib/feature-catalog.module'
2
+ export * from './lib/organization-url.token'
2
3
  export * from './lib/sources/sources.service'
3
4
  export * from './lib/sources/sources.model'
4
5
  export * from './lib/records/records.service'
@@ -4,7 +4,6 @@ import { UiCatalogModule } from '../../../../../libs/ui/catalog/src'
4
4
  import {
5
5
  GroupsApiService,
6
6
  SearchApiService,
7
- SiteApiService,
8
7
  } from '../../../../../libs/data-access/gn4/src'
9
8
  import { CommonModule } from '@angular/common'
10
9
  import { SourceLabelComponent } from './source-label/source-label.component'
@@ -19,7 +19,7 @@
19
19
  [showContent]="!!organisation.name"
20
20
  >
21
21
  <gn-ui-organisation-preview
22
- [organisation]="organisation"
22
+ [organization]="organisation"
23
23
  [organisationUrl]="getOrganisationUrl(organisation)"
24
24
  (clickedOrganisation)="orgSelect.emit($event)"
25
25
  ></gn-ui-organisation-preview>
@@ -10,10 +10,10 @@ import {
10
10
  import { Organization } from '../../../../../../libs/common/domain/src/lib/model/record'
11
11
  import { BehaviorSubject, combineLatest, Observable } from 'rxjs'
12
12
  import { map, startWith, tap } from 'rxjs/operators'
13
- import { ORGANIZATION_URL_TOKEN } from '../feature-catalog.module'
14
13
  import { OrganizationsServiceInterface } from '../../../../../../libs/common/domain/src/lib/organizations.service.interface'
15
14
  import { SortByField } from '../../../../../../libs/common/domain/src/lib/model/search'
16
15
  import { createFuzzyFilter } from '../../../../../../libs/util/shared/src'
16
+ import { ORGANIZATION_PAGE_URL_TOKEN } from '../organization-url.token'
17
17
 
18
18
  @Component({
19
19
  selector: 'gn-ui-organisations',
@@ -28,7 +28,7 @@ export class OrganisationsComponent {
28
28
  constructor(
29
29
  private organisationsService: OrganizationsServiceInterface,
30
30
  @Optional()
31
- @Inject(ORGANIZATION_URL_TOKEN)
31
+ @Inject(ORGANIZATION_PAGE_URL_TOKEN)
32
32
  private urlTemplate: string
33
33
  ) {}
34
34
 
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core'
2
+
3
+ // expects the replacement key ${name}
4
+ export const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken<string>(
5
+ 'organization-page-url-token'
6
+ )
@@ -12,7 +12,7 @@ import {
12
12
  import { TableViewComponent } from './table-view/table-view.component'
13
13
  import { ChartViewComponent } from './chart-view/chart-view.component'
14
14
  import { TranslateModule } from '@ngx-translate/core'
15
- import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
15
+ import { PopupAlertComponent, UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
16
16
  import { UiInputsModule } from '../../../../../libs/ui/inputs/src'
17
17
 
18
18
  @NgModule({
@@ -26,6 +26,7 @@ import { UiInputsModule } from '../../../../../libs/ui/inputs/src'
26
26
  TranslateModule,
27
27
  ChartComponent,
28
28
  UiInputsModule,
29
+ PopupAlertComponent,
29
30
  ],
30
31
  declarations: [
31
32
  GeoTableViewComponent,
@@ -26,3 +26,5 @@ export const saveRecordFailure = createAction(
26
26
  '[Editor] Save record failure',
27
27
  props<{ error: SaveRecordError }>()
28
28
  )
29
+
30
+ export const draftSaveSuccess = createAction('[Editor] Draft save success')
@@ -5,7 +5,11 @@ import { catchError, map, switchMap } from 'rxjs/operators'
5
5
  import * as EditorActions from './editor.actions'
6
6
  import { EditorService } from '../services/editor.service'
7
7
  import { Store } from '@ngrx/store'
8
- import { selectRecord, selectRecordFieldsConfig } from './editor.selectors'
8
+ import {
9
+ selectRecord,
10
+ selectRecordAlreadySavedOnce,
11
+ selectRecordFieldsConfig,
12
+ } from './editor.selectors'
9
13
  import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
10
14
 
11
15
  @Injectable()
@@ -20,28 +24,31 @@ export class EditorEffects {
20
24
  ofType(EditorActions.saveRecord),
21
25
  withLatestFrom(
22
26
  this.store.select(selectRecord),
23
- this.store.select(selectRecordFieldsConfig)
27
+ this.store.select(selectRecordFieldsConfig),
28
+ this.store.select(selectRecordAlreadySavedOnce)
24
29
  ),
25
- switchMap(([, record, fieldsConfig]) =>
26
- this.editorService.saveRecord(record, fieldsConfig).pipe(
27
- switchMap(([record, recordSource]) =>
28
- of(
29
- EditorActions.saveRecordSuccess(),
30
- EditorActions.openRecord({
31
- record,
32
- alreadySavedOnce: true,
33
- recordSource,
34
- })
35
- )
36
- ),
37
- catchError((error) =>
38
- of(
39
- EditorActions.saveRecordFailure({
40
- error: error.message,
41
- })
30
+ switchMap(([, record, fieldsConfig, alreadySavedOnce]) =>
31
+ this.editorService
32
+ .saveRecord(record, fieldsConfig, !alreadySavedOnce)
33
+ .pipe(
34
+ switchMap(([record, recordSource]) =>
35
+ of(
36
+ EditorActions.saveRecordSuccess(),
37
+ EditorActions.openRecord({
38
+ record,
39
+ alreadySavedOnce: true,
40
+ recordSource,
41
+ })
42
+ )
43
+ ),
44
+ catchError((error) =>
45
+ of(
46
+ EditorActions.saveRecordFailure({
47
+ error: error.message,
48
+ })
49
+ )
42
50
  )
43
51
  )
44
- )
45
52
  )
46
53
  )
47
54
  )
@@ -53,15 +60,14 @@ export class EditorEffects {
53
60
  )
54
61
  )
55
62
 
56
- saveRecordDraft$ = createEffect(
57
- () =>
58
- this.actions$.pipe(
59
- ofType(EditorActions.updateRecordField),
60
- debounceTime(1000),
61
- withLatestFrom(this.store.select(selectRecord)),
62
- switchMap(([, record]) => this.editorService.saveRecordAsDraft(record))
63
- ),
64
- { dispatch: false }
63
+ saveRecordDraft$ = createEffect(() =>
64
+ this.actions$.pipe(
65
+ ofType(EditorActions.updateRecordField),
66
+ debounceTime(1000),
67
+ withLatestFrom(this.store.select(selectRecord)),
68
+ switchMap(([, record]) => this.editorService.saveRecordAsDraft(record)),
69
+ map(() => EditorActions.draftSaveSuccess())
70
+ )
65
71
  )
66
72
 
67
73
  checkHasChangesOnOpen$ = createEffect(() =>
@@ -26,6 +26,7 @@ export class EditorFacade {
26
26
  select(EditorSelectors.selectRecordChangedSinceSave)
27
27
  )
28
28
  recordFields$ = this.store.pipe(select(EditorSelectors.selectRecordFields))
29
+ draftSaveSuccess$ = this.actions$.pipe(ofType(EditorActions.draftSaveSuccess))
29
30
 
30
31
  openRecord(
31
32
  record: CatalogRecord,
@@ -44,6 +44,6 @@ export const selectRecordFields = createSelector(
44
44
  (state: EditorState) =>
45
45
  state.fieldsConfig.map((fieldConfig) => ({
46
46
  config: fieldConfig,
47
- value: state.record?.[fieldConfig.model] || null,
47
+ value: state.record?.[fieldConfig.model] ?? null,
48
48
  }))
49
49
  )
@@ -4,10 +4,9 @@
4
4
  [displayWithFn]="displayWithFn"
5
5
  [action]="autoCompleteAction"
6
6
  (itemSelected)="handleItemSelection($event)"
7
- (inputSubmitted)="handleInputSubmission($event)"
8
- (inputCleared)="handleInputCleared()"
9
- [value]="searchInputValue$ | async"
10
7
  [clearOnSelection]="true"
8
+ [minCharacterCount]="0"
9
+ [allowSubmit]="false"
11
10
  ></gn-ui-autocomplete>
12
11
  <div class="flex gap-2 flex-wrap">
13
12
  <gn-ui-badge
@@ -1,24 +1,17 @@
1
1
  import { CommonModule } from '@angular/common'
2
- import {
3
- ChangeDetectionStrategy,
4
- Component,
5
- EventEmitter,
6
- Input,
7
- OnInit,
8
- Output,
9
- } from '@angular/core'
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
10
3
  import { FormControl } from '@angular/forms'
11
- import {
12
- KeywordType,
13
- ThesaurusModel,
14
- } from '../../../../../../../../../libs/common/domain/src/lib/model/thesaurus'
15
4
  import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface'
16
5
  import {
6
+ AutocompleteComponent,
17
7
  DropdownSelectorComponent,
18
8
  UiInputsModule,
19
9
  } from '../../../../../../../../../libs/ui/inputs/src'
20
10
  import { UiWidgetsModule } from '../../../../../../../../../libs/ui/widgets/src'
21
- import { Observable, map } from 'rxjs'
11
+ import { map } from 'rxjs'
12
+ import { Keyword } from '../../../../../../../../../libs/common/domain/src/lib/model/record'
13
+
14
+ type AutocompleteItem = { title: string; value: Keyword }
22
15
 
23
16
  @Component({
24
17
  selector: 'gn-ui-form-field-keywords',
@@ -31,69 +24,34 @@ import { Observable, map } from 'rxjs'
31
24
  UiInputsModule,
32
25
  CommonModule,
33
26
  UiWidgetsModule,
27
+ AutocompleteComponent,
34
28
  ],
35
29
  })
36
- export class FormFieldKeywordsComponent implements OnInit {
37
- @Input() control: FormControl<any>
38
- @Output() itemSelected = new EventEmitter<string>()
39
- @Output() inputSubmitted = new EventEmitter<string>()
40
- searchInputValue$: Observable<void | { title: string }>
41
- allThesaurus$: Observable<any[]>
30
+ export class FormFieldKeywordsComponent {
31
+ @Input() control: FormControl<Keyword[]>
42
32
 
43
- displayWithFn = (item) => {
44
- if (item) {
45
- return `${item?.title} (${item?.value?.name})`
46
- }
47
- return null
33
+ displayWithFn = (item: AutocompleteItem) => {
34
+ return `${item.title} (${item.value.thesaurus?.name})`
48
35
  }
49
36
 
50
37
  autoCompleteAction = (query: string) => {
51
- const keywords$ = this.platformService.searchKeywords(query).pipe(
52
- map((thesaurus) =>
53
- thesaurus.map((thes) => {
54
- return { title: thes.label, value: thes.thesaurus }
38
+ return this.platformService.searchKeywords(query).pipe(
39
+ map((keywords) =>
40
+ keywords.map((keyword) => {
41
+ return { title: keyword.label, value: keyword }
55
42
  })
56
43
  )
57
44
  )
58
-
59
- return keywords$
60
45
  }
61
46
 
62
47
  constructor(private platformService: PlatformServiceInterface) {}
63
48
 
64
- ngOnInit(): void {
65
- this.searchInputValue$ = this.autoCompleteAction('')[0]
66
- }
67
-
68
- // type: { title: string; value: ThesaurusModel }
69
- handleItemSelection(item) {
70
- this.addKeyword({
71
- label: item.title,
72
- thesaurus: item.value,
73
- type: item.value.type,
74
- })
75
- }
76
-
77
- handleInputSubmission(any: string) {
78
- // Should there be an input submission?
79
-
80
- if (this.inputSubmitted.observers.length > 0) {
81
- this.inputSubmitted.emit(any)
82
- } else {
83
- // this.searchService.updateFilters({ any })
84
- }
85
- }
86
-
87
- async handleInputCleared() {
88
- this.autoCompleteAction('')
49
+ handleItemSelection(item: AutocompleteItem) {
50
+ this.addKeyword(item.value)
89
51
  }
90
52
 
91
- addKeyword(item: {
92
- label: string
93
- thesaurus: ThesaurusModel
94
- type: KeywordType
95
- }) {
96
- const addedKeywords = [...this.control.value, item]
53
+ addKeyword(keyword: Keyword) {
54
+ const addedKeywords = [...this.control.value, keyword]
97
55
 
98
56
  // remove duplicates from keyword
99
57
  const filteredKeywords = addedKeywords.filter((value, index, self) => {