geonetwork-ui 2.10.0-dev.4edf16e9b → 2.10.0-dev.4f8e80786

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 (29) hide show
  1. package/fesm2022/geonetwork-ui.mjs +47 -5
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +10 -1
  4. package/index.d.ts.map +1 -1
  5. package/package.json +1 -1
  6. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +11 -0
  7. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +2 -0
  8. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +22 -0
  9. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +1 -0
  10. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +1 -0
  11. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -0
  12. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
  13. package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -0
  14. package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +2 -0
  15. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +22 -0
  16. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +1 -0
  17. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +2 -0
  18. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +1 -0
  19. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +1 -0
  20. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.converter.ts +1 -0
  21. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -0
  22. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -0
  23. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +40 -0
  24. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +13 -4
  25. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +40 -0
  26. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +43 -0
  27. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +10 -0
  28. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -0
  29. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.ts +19 -10
@@ -1484,6 +1484,19 @@ function extractSourceRecords(liLineageEl) {
1484
1484
  function readSourceRecords$1(rootEl) {
1485
1485
  return extractSourceRecords(pipe(findNestedElement('gmd:dataQualityInfo', 'gmd:DQ_DataQuality', 'gmd:lineage', 'gmd:LI_Lineage'))(rootEl));
1486
1486
  }
1487
+ function extractAssociatedRecords(containerName, aggregateName, readUuid) {
1488
+ return pipe(findChildrenElement(containerName, false), mapArray((el) => {
1489
+ const aggregateEl = findChildElement(aggregateName, false)(el);
1490
+ const uuid = readUuid(aggregateEl);
1491
+ const associationType = pipe(findNestedElement('gmd:associationType', 'gmd:DS_AssociationTypeCode'), readAttribute('codeListValue'))(aggregateEl);
1492
+ if (!uuid || !associationType)
1493
+ return null;
1494
+ return { uuid, associationType };
1495
+ }), filterArray((r) => r !== null));
1496
+ }
1497
+ function readAssociatedRecords$1(rootEl) {
1498
+ return pipe(findIdentification(), extractAssociatedRecords('gmd:aggregationInfo', 'gmd:MD_AggregateInformation', pipe(findNestedElement('gmd:aggregateDataSetIdentifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())))(rootEl);
1499
+ }
1487
1500
  function readUpdateFrequency(rootEl) {
1488
1501
  return pipe(findIdentification(), findNestedElement('gmd:resourceMaintenance', 'gmd:MD_MaintenanceInformation'), extractUpdateFrequency(), map((updateFrequency) => updateFrequency || 'unknown'))(rootEl);
1489
1502
  }
@@ -2024,6 +2037,11 @@ function appendSourceRecords(sources) {
2024
2037
  function writeSourceRecords$1(record, rootEl) {
2025
2038
  pipe(findNestedChildOrCreate('gmd:dataQualityInfo', 'gmd:DQ_DataQuality', 'gmd:lineage', 'gmd:LI_Lineage'), appendSourceRecords(record.sourceRecords))(rootEl);
2026
2039
  }
2040
+ function writeAssociatedRecords$1(record, rootEl) {
2041
+ pipe(findOrCreateIdentification(), removeChildrenByName('gmd:aggregationInfo'), appendChildren(...record.associatedRecords
2042
+ .filter((assoc) => assoc.uuid && assoc.associationType)
2043
+ .map((assoc) => pipe(createNestedElement('gmd:aggregationInfo', 'gmd:MD_AggregateInformation'), appendChildren(pipe(createNestedElement('gmd:aggregateDataSetIdentifier', 'gmd:MD_Identifier', 'gmd:code'), writeCharacterString(assoc.uuid)), pipe(createNestedElement('gmd:associationType', 'gmd:DS_AssociationTypeCode'), writeAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#DS_AssociationTypeCode'), writeAttribute('codeListValue', assoc.associationType)))))))(rootEl);
2044
+ }
2027
2045
  function getServiceEndpointProtocol(endpoint) {
2028
2046
  switch (endpoint.accessServiceProtocol.toLowerCase()) {
2029
2047
  case 'wfs':
@@ -2151,6 +2169,7 @@ class Iso19139Converter extends BaseConverter {
2151
2169
  overviews: readOverviews,
2152
2170
  lineage: readLineage$1,
2153
2171
  sourceRecords: readSourceRecords$1,
2172
+ associatedRecords: readAssociatedRecords$1,
2154
2173
  onlineResources: readOnlineResources$2,
2155
2174
  temporalExtents: readTemporalExtents,
2156
2175
  spatialExtents: readSpatialExtents$1,
@@ -2189,6 +2208,7 @@ class Iso19139Converter extends BaseConverter {
2189
2208
  overviews: writeGraphicOverviews,
2190
2209
  lineage: writeLineage$1,
2191
2210
  sourceRecords: writeSourceRecords$1,
2211
+ associatedRecords: writeAssociatedRecords$1,
2192
2212
  onlineResources: writeOnlineResources$1,
2193
2213
  temporalExtents: writeTemporalExtents,
2194
2214
  spatialExtents: writeSpatialExtents,
@@ -2236,7 +2256,7 @@ class Iso19139Converter extends BaseConverter {
2236
2256
  record.contacts.map((c) => fixLanguages(c.organization));
2237
2257
  record.contactsForResource.map((c) => fixLanguages(c.organization));
2238
2258
  fixLanguages(record.ownerOrganization);
2239
- if (record.kind === 'dataset') {
2259
+ if (record.kind === 'dataset' || record.kind === 'reuse') {
2240
2260
  record.spatialExtents.map(fixLanguages);
2241
2261
  }
2242
2262
  // remove default language from otherLanguages list
@@ -2313,6 +2333,7 @@ class Iso19139Converter extends BaseConverter {
2313
2333
  const temporalExtents = this.readers['temporalExtents'](rootEl, tr);
2314
2334
  const lineage = this.readers['lineage'](rootEl, tr);
2315
2335
  const sourceRecords = this.readers['sourceRecords'](rootEl, tr);
2336
+ const associatedRecords = this.readers['associatedRecords'](rootEl, tr);
2316
2337
  const updateFrequency = this.readers['updateFrequency'](rootEl, tr);
2317
2338
  return this.afterRecordRead({
2318
2339
  ...this.readBaseRecord(rootEl, tr),
@@ -2320,6 +2341,7 @@ class Iso19139Converter extends BaseConverter {
2320
2341
  status,
2321
2342
  lineage,
2322
2343
  ...(sourceRecords && { sourceRecords }),
2344
+ associatedRecords,
2323
2345
  ...(spatialRepresentation && { spatialRepresentation }),
2324
2346
  temporalExtents,
2325
2347
  updateFrequency,
@@ -2329,6 +2351,7 @@ class Iso19139Converter extends BaseConverter {
2329
2351
  else if (kind === 'reuse') {
2330
2352
  const lineage = this.readers['lineage'](rootEl, tr);
2331
2353
  const sourceRecords = this.readers['sourceRecords'](rootEl, tr);
2354
+ const associatedRecords = this.readers['associatedRecords'](rootEl, tr);
2332
2355
  const temporalExtents = this.readers['temporalExtents'](rootEl, tr);
2333
2356
  const reuseType = this.readers['reuseType'](rootEl, tr);
2334
2357
  return this.afterRecordRead({
@@ -2336,6 +2359,7 @@ class Iso19139Converter extends BaseConverter {
2336
2359
  kind,
2337
2360
  lineage,
2338
2361
  ...(sourceRecords && { sourceRecords }),
2362
+ associatedRecords,
2339
2363
  temporalExtents,
2340
2364
  reuseType,
2341
2365
  });
@@ -2410,6 +2434,8 @@ class Iso19139Converter extends BaseConverter {
2410
2434
  this.writers['resourceIdentifiers'](record, rootEl);
2411
2435
  if (record.kind === 'dataset') {
2412
2436
  fieldChanged('status') && this.writers['status'](record, rootEl);
2437
+ }
2438
+ if (record.kind === 'dataset' || record.kind === 'reuse') {
2413
2439
  fieldChanged('updateFrequency') &&
2414
2440
  this.writers['updateFrequency'](record, rootEl);
2415
2441
  fieldChanged('spatialRepresentation') &&
@@ -2419,13 +2445,12 @@ class Iso19139Converter extends BaseConverter {
2419
2445
  this.writers['temporalExtents'](record, rootEl);
2420
2446
  fieldChanged('spatialExtents') &&
2421
2447
  this.writers['spatialExtents'](record, rootEl);
2422
- }
2423
- if (record.kind === 'dataset' || record.kind === 'reuse') {
2424
- ;
2425
2448
  (fieldChanged('lineage') || fieldChanged('translations')) &&
2426
2449
  this.writers['lineage'](record, rootEl);
2427
2450
  fieldChanged('sourceRecords') &&
2428
2451
  this.writers['sourceRecords'](record, rootEl);
2452
+ fieldChanged('associatedRecords') &&
2453
+ this.writers['associatedRecords'](record, rootEl);
2429
2454
  }
2430
2455
  fieldChanged('otherLanguages') &&
2431
2456
  this.writers['otherLanguages'](record, rootEl);
@@ -2535,6 +2560,9 @@ function readLineage(rootEl, translations) {
2535
2560
  function readSourceRecords(rootEl) {
2536
2561
  return extractSourceRecords(pipe(findNestedElement('mdb:resourceLineage', 'mrl:LI_Lineage'))(rootEl));
2537
2562
  }
2563
+ function readAssociatedRecords(rootEl) {
2564
+ return pipe(findIdentification(), extractAssociatedRecords('mri:associatedResource', 'mri:MD_AssociatedResource', pipe(findNestedElement('mri:metadataReference'), readAttribute('uuidref'))))(rootEl);
2565
+ }
2538
2566
  function extractDateInfo(type) {
2539
2567
  return pipe(findChildrenElement('mdb:dateInfo', false), filterArray((el) => pipe(findChildElement('cit:CI_DateTypeCode'), readAttribute('codeListValue'))(el) === type), getAtIndex(0), findChildElement('cit:date'), extractDateTime());
2540
2568
  }
@@ -2722,6 +2750,11 @@ function writeOtherLanguages(record, rootEl) {
2722
2750
  function writeSourceRecords(record, rootEl) {
2723
2751
  pipe(findNestedChildOrCreate('mdb:resourceLineage', 'mrl:LI_Lineage'), appendSourceRecords(record.sourceRecords))(rootEl);
2724
2752
  }
2753
+ function writeAssociatedRecords(record, rootEl) {
2754
+ pipe(findOrCreateIdentification(), removeChildrenByName('mri:associatedResource'), appendChildren(...record.associatedRecords
2755
+ .filter((assoc) => assoc.uuid && assoc.associationType)
2756
+ .map((assoc) => pipe(createNestedElement('mri:associatedResource', 'mri:MD_AssociatedResource'), appendChildren(pipe(createNestedElement('mri:associationType', 'mri:DS_AssociationTypeCode'), writeAttribute('codeList', 'http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#DS_AssociationTypeCode'), writeAttribute('codeListValue', assoc.associationType)), pipe(createElement('mri:metadataReference'), writeAttribute('uuidref', assoc.uuid)))))))(rootEl);
2757
+ }
2725
2758
 
2726
2759
  class Iso191153Converter extends Iso19139Converter {
2727
2760
  constructor() {
@@ -2737,6 +2770,7 @@ class Iso191153Converter extends Iso19139Converter {
2737
2770
  this.readers['landingPage'] = readLandingPage$1;
2738
2771
  this.readers['lineage'] = readLineage;
2739
2772
  this.readers['sourceRecords'] = readSourceRecords;
2773
+ this.readers['associatedRecords'] = readAssociatedRecords;
2740
2774
  this.readers['onlineResources'] = readOnlineResources$1;
2741
2775
  this.readers['defaultLanguage'] = readDefaultLanguage$1;
2742
2776
  this.readers['otherLanguages'] = readOtherLanguages;
@@ -2756,6 +2790,7 @@ class Iso191153Converter extends Iso19139Converter {
2756
2790
  this.writers['landingPage'] = writeLandingPage;
2757
2791
  this.writers['lineage'] = writeLineage;
2758
2792
  this.writers['sourceRecords'] = writeSourceRecords;
2793
+ this.writers['associatedRecords'] = writeAssociatedRecords;
2759
2794
  this.writers['onlineResources'] = writeOnlineResources;
2760
2795
  this.writers['status'] = writeStatus;
2761
2796
  this.writers['spatialRepresentation'] = writeSpatialRepresentation;
@@ -3391,6 +3426,7 @@ class DcatApConverter extends BaseConverter {
3391
3426
  overviews: () => [],
3392
3427
  lineage: () => '',
3393
3428
  sourceRecords: () => [],
3429
+ associatedRecords: () => [],
3394
3430
  temporalExtents: () => [],
3395
3431
  spatialRepresentation: () => undefined,
3396
3432
  extras: () => undefined,
@@ -3425,6 +3461,7 @@ class DcatApConverter extends BaseConverter {
3425
3461
  overviews: () => undefined,
3426
3462
  lineage: () => undefined,
3427
3463
  sourceRecords: () => [],
3464
+ associatedRecords: () => [],
3428
3465
  onlineResources: () => undefined,
3429
3466
  temporalExtents: () => undefined,
3430
3467
  spatialExtents: () => undefined,
@@ -3471,6 +3508,7 @@ class DcatApConverter extends BaseConverter {
3471
3508
  const temporalExtents = this.readers['temporalExtents'](dataStore, catalogRecord, tr, defaultLanguage);
3472
3509
  const lineage = this.readers['lineage'](dataStore, catalogRecord, tr, defaultLanguage);
3473
3510
  const sourceRecords = this.readers['sourceRecords'](dataStore, catalogRecord, tr, defaultLanguage);
3511
+ const associatedRecords = this.readers['associatedRecords'](dataStore, catalogRecord, tr, defaultLanguage);
3474
3512
  const onlineResources = this.readers['onlineResources'](dataStore, catalogRecord, tr, defaultLanguage);
3475
3513
  const updateFrequency = this.readers['updateFrequency'](dataStore, catalogRecord, tr, defaultLanguage);
3476
3514
  return {
@@ -3498,6 +3536,7 @@ class DcatApConverter extends BaseConverter {
3498
3536
  otherConstraints,
3499
3537
  lineage,
3500
3538
  sourceRecords,
3539
+ associatedRecords,
3501
3540
  ...(spatialRepresentation && { spatialRepresentation }),
3502
3541
  overviews,
3503
3542
  spatialExtents,
@@ -3607,6 +3646,8 @@ class DcatApConverter extends BaseConverter {
3607
3646
  if (record.kind === 'dataset') {
3608
3647
  fieldChanged('status') &&
3609
3648
  this.writers['status'](record, dataStore, recordNode);
3649
+ }
3650
+ if (record.kind === 'dataset' || record.kind === 'reuse') {
3610
3651
  fieldChanged('updateFrequency') &&
3611
3652
  this.writers['updateFrequency'](record, dataStore, recordNode);
3612
3653
  fieldChanged('spatialRepresentation') &&
@@ -19092,6 +19133,7 @@ class Gn4Converter extends BaseConverter {
19092
19133
  status: null,
19093
19134
  lineage: null,
19094
19135
  sourceRecords: [],
19136
+ associatedRecords: [],
19095
19137
  recordUpdated: null,
19096
19138
  recordPublished: null,
19097
19139
  ownerOrganization: null,
@@ -20296,7 +20338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
20296
20338
  }] } });
20297
20339
 
20298
20340
  var name = "geonetwork-ui";
20299
- var version = "2.10.0-dev.4edf16e9b";
20341
+ var version = "2.10.0-dev.4f8e80786";
20300
20342
  var engines = {
20301
20343
  node: ">=24"
20302
20344
  };