geonetwork-ui 2.3.0-dev.376e0e90 → 2.3.0-dev.f736344f

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 (114) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +5 -5
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +3 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +52 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +48 -0
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +18 -0
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +64 -0
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +130 -0
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +62 -58
  11. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +58 -75
  12. package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +14 -0
  13. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +14 -76
  14. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
  15. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  16. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +8 -8
  17. package/fesm2022/geonetwork-ui.mjs +245 -822
  18. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  19. package/libs/api/metadata-converter/src/index.d.ts +4 -4
  20. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  21. package/libs/api/metadata-converter/src/lib/gn4/{gn4.converter.d.ts → gn4.metadata.mapper.d.ts} +5 -5
  22. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -0
  23. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
  24. package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +1 -0
  25. package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +1 -0
  26. package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +1 -0
  27. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +4 -0
  28. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -0
  29. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +6 -34
  30. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  31. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -39
  32. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  33. package/libs/api/metadata-converter/src/lib/{base.converter.d.ts → metadata-base.mapper.d.ts} +3 -3
  34. package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +1 -0
  35. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -14
  36. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  37. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -2
  38. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  39. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -6
  40. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  41. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/libs/api/metadata-converter/src/index.ts +4 -4
  44. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +5 -32
  45. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +4 -11
  46. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +7 -33
  47. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +2 -2
  48. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +2 -2
  49. package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.converter.ts → gn4.metadata.mapper.ts} +2 -2
  50. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +196 -0
  51. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +82 -121
  52. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +95 -175
  53. package/src/libs/api/metadata-converter/src/lib/{base.converter.ts → metadata-base.mapper.ts} +2 -2
  54. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +16 -84
  55. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  56. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -9
  57. package/src/libs/feature/editor/src/lib/services/editor.service.ts +16 -27
  58. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +0 -14
  59. package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +0 -15
  60. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +0 -52
  61. package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +0 -4
  62. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/index.mjs +0 -2
  63. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +0 -123
  64. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +0 -116
  65. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +0 -138
  66. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +0 -2
  67. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +0 -242
  68. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +0 -18
  69. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +0 -14
  70. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +0 -48
  71. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +0 -18
  72. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +0 -64
  73. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +0 -1
  74. package/libs/api/metadata-converter/src/lib/find-converter.d.ts +0 -3
  75. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +0 -1
  76. package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +0 -1
  77. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts +0 -4
  78. package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +0 -1
  79. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +0 -2
  80. package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +0 -1
  81. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +0 -9
  82. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +0 -1
  83. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +0 -20
  84. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +0 -1
  85. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +0 -21
  86. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +0 -1
  87. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +0 -2
  88. package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +0 -1
  89. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +0 -11
  90. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +0 -1
  91. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +0 -8
  92. package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +0 -1
  93. package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +0 -1
  94. package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +0 -1
  95. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +0 -1
  96. package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +0 -1
  97. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +0 -16
  98. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +0 -580
  99. package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +0 -3
  100. package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +0 -1
  101. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +0 -176
  102. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +0 -329
  103. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +0 -513
  104. package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +0 -1
  105. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +0 -327
  106. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +0 -20
  107. /package/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/keyword.mapper.d.ts +0 -0
  108. /package/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/role.mapper.d.ts +0 -0
  109. /package/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/status.mapper.d.ts +0 -0
  110. /package/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/update-frequency.mapper.d.ts +0 -0
  111. /package/src/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/keyword.mapper.ts +0 -0
  112. /package/src/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/role.mapper.ts +0 -0
  113. /package/src/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/status.mapper.ts +0 -0
  114. /package/src/libs/api/metadata-converter/src/lib/iso19139/{utils → codelists}/update-frequency.mapper.ts +0 -0
@@ -1,327 +0,0 @@
1
- import {
2
- CatalogRecord,
3
- CatalogRecordKeys,
4
- DatasetRecord,
5
- ServiceRecord,
6
- } from '../../../../../../libs/common/domain/src/lib/model/record'
7
- import {
8
- createDocument,
9
- createElement,
10
- getRootElement,
11
- parseXmlString,
12
- xmlToString,
13
- } from '../xml-utils'
14
- import {
15
- writeAbstract,
16
- writeContacts,
17
- writeContactsForResource,
18
- writeDistributions,
19
- writeGraphicOverviews,
20
- writeKeywords,
21
- writeKind,
22
- writeLegalConstraints,
23
- writeLicenses,
24
- writeLineage,
25
- writeOnlineResources,
26
- writeOtherConstraints,
27
- writeOwnerOrganization,
28
- writeRecordUpdated,
29
- writeResourceCreated,
30
- writeResourcePublished,
31
- writeResourceUpdated,
32
- writeSecurityConstraints,
33
- writeSpatialRepresentation,
34
- writeStatus,
35
- writeTitle,
36
- writeTopics,
37
- writeUniqueIdentifier,
38
- writeUpdateFrequency,
39
- } from './write-parts'
40
- import {
41
- readAbstract,
42
- readContacts,
43
- readContactsForResource,
44
- readDistributions,
45
- readIsoTopics,
46
- readKeywords,
47
- readKind,
48
- readLegalConstraints,
49
- readLicenses,
50
- readLineage,
51
- readOnlineResources,
52
- readOtherConstraints,
53
- readOverviews,
54
- readOwnerOrganization,
55
- readRecordUpdated,
56
- readResourceCreated,
57
- readResourcePublished,
58
- readResourceUpdated,
59
- readSecurityConstraints,
60
- readSpatialRepresentation,
61
- readStatus,
62
- readTitle,
63
- readUniqueIdentifier,
64
- readUpdateFrequency,
65
- } from './read-parts'
66
- import { isEqual } from '../convert-utils'
67
- import { BaseConverter } from '../base.converter'
68
- import { XmlElement } from '@rgrove/parse-xml'
69
-
70
- export class Iso19139Converter extends BaseConverter<string> {
71
- protected readers: Record<
72
- CatalogRecordKeys,
73
- (rootEl: XmlElement) => unknown
74
- > = {
75
- uniqueIdentifier: readUniqueIdentifier,
76
- kind: readKind,
77
- ownerOrganization: readOwnerOrganization,
78
- recordUpdated: readRecordUpdated,
79
- recordCreated: () => undefined, // not supported in ISO19139
80
- recordPublished: () => undefined, // not supported in ISO19139
81
- resourceUpdated: readResourceUpdated,
82
- resourceCreated: readResourceCreated,
83
- resourcePublished: readResourcePublished,
84
- title: readTitle,
85
- abstract: readAbstract,
86
- contacts: readContacts,
87
- contactsForResource: readContactsForResource,
88
- keywords: readKeywords,
89
- topics: readIsoTopics,
90
- licenses: readLicenses,
91
- legalConstraints: readLegalConstraints,
92
- securityConstraints: readSecurityConstraints,
93
- otherConstraints: readOtherConstraints,
94
- status: readStatus,
95
- updateFrequency: readUpdateFrequency,
96
- spatialRepresentation: readSpatialRepresentation,
97
- overviews: readOverviews,
98
- lineage: readLineage,
99
- distributions: readDistributions,
100
- onlineResources: readOnlineResources,
101
- // TODO
102
- spatialExtents: () => [],
103
- temporalExtents: () => [],
104
- extras: () => undefined,
105
- landingPage: () => undefined,
106
- languages: () => [],
107
- }
108
-
109
- protected writers: Record<
110
- CatalogRecordKeys,
111
- (record: CatalogRecord, rootEl: XmlElement) => void
112
- > = {
113
- uniqueIdentifier: writeUniqueIdentifier,
114
- kind: writeKind,
115
- ownerOrganization: writeOwnerOrganization,
116
- recordUpdated: writeRecordUpdated,
117
- recordCreated: () => undefined, // not supported in ISO19139
118
- recordPublished: () => undefined, // not supported in ISO19139
119
- resourceUpdated: writeResourceUpdated,
120
- resourceCreated: writeResourceCreated,
121
- resourcePublished: writeResourcePublished,
122
- title: writeTitle,
123
- abstract: writeAbstract,
124
- contacts: writeContacts,
125
- contactsForResource: writeContactsForResource,
126
- keywords: writeKeywords,
127
- topics: writeTopics,
128
- licenses: writeLicenses,
129
- legalConstraints: writeLegalConstraints,
130
- securityConstraints: writeSecurityConstraints,
131
- otherConstraints: writeOtherConstraints,
132
- status: writeStatus,
133
- updateFrequency: writeUpdateFrequency,
134
- spatialRepresentation: writeSpatialRepresentation,
135
- overviews: writeGraphicOverviews,
136
- lineage: writeLineage,
137
- distributions: writeDistributions,
138
- onlineResources: writeOnlineResources,
139
- // TODO
140
- spatialExtents: () => undefined,
141
- temporalExtents: () => undefined,
142
- extras: () => undefined,
143
- landingPage: () => undefined,
144
- languages: () => undefined,
145
- }
146
-
147
- protected beforeDocumentCreation(rootElement: XmlElement) {
148
- // to override
149
- }
150
-
151
- async readRecord(document: string): Promise<CatalogRecord> {
152
- const doc = parseXmlString(document)
153
- const rootEl = getRootElement(doc)
154
-
155
- const uniqueIdentifier = this.readers['uniqueIdentifier'](rootEl)
156
- const kind = this.readers['kind'](rootEl)
157
- const ownerOrganization = this.readers['ownerOrganization'](rootEl)
158
- const title = this.readers['title'](rootEl)
159
- const abstract = this.readers['abstract'](rootEl)
160
- const contacts = this.readers['contacts'](rootEl)
161
- const contactsForResource = this.readers['contactsForResource'](rootEl)
162
- const recordUpdated = this.readers['recordUpdated'](rootEl)
163
- const recordCreated = this.readers['recordCreated'](rootEl)
164
- const recordPublished = this.readers['recordPublished'](rootEl)
165
- const resourceCreated = this.readers['resourceCreated'](rootEl)
166
- const resourceUpdated = this.readers['resourceUpdated'](rootEl)
167
- const resourcePublished = this.readers['resourcePublished'](rootEl)
168
- const keywords = this.readers['keywords'](rootEl)
169
- const topics = this.readers['topics'](rootEl)
170
- const legalConstraints = this.readers['legalConstraints'](rootEl)
171
- const otherConstraints = this.readers['otherConstraints'](rootEl)
172
- const securityConstraints = this.readers['securityConstraints'](rootEl)
173
- const licenses = this.readers['licenses'](rootEl)
174
- const overviews = this.readers['overviews'](rootEl)
175
- const landingPage = this.readers['landingPage'](rootEl)
176
-
177
- if (kind === 'dataset') {
178
- const status = this.readers['status'](rootEl)
179
- const spatialRepresentation =
180
- this.readers['spatialRepresentation'](rootEl)
181
- const spatialExtents = this.readers['spatialExtents'](rootEl)
182
- const temporalExtents = this.readers['temporalExtents'](rootEl)
183
- const lineage = this.readers['lineage'](rootEl)
184
- const distributions = this.readers['distributions'](rootEl)
185
- const updateFrequency = this.readers['updateFrequency'](rootEl)
186
-
187
- return {
188
- uniqueIdentifier,
189
- kind,
190
- languages: [],
191
- ...(recordCreated && { recordCreated }),
192
- ...(recordPublished && { recordPublished }),
193
- recordUpdated,
194
- ...(resourceCreated && { resourceCreated }),
195
- ...(resourceUpdated && { resourceUpdated }),
196
- ...(resourcePublished && { resourcePublished }),
197
- status,
198
- title,
199
- abstract,
200
- ownerOrganization,
201
- contacts,
202
- contactsForResource,
203
- keywords,
204
- topics,
205
- licenses,
206
- legalConstraints,
207
- securityConstraints,
208
- otherConstraints,
209
- lineage,
210
- ...(spatialRepresentation && { spatialRepresentation }),
211
- overviews,
212
- spatialExtents,
213
- temporalExtents,
214
- distributions,
215
- updateFrequency,
216
- ...(landingPage && { landingPage }),
217
- } as DatasetRecord
218
- } else {
219
- const onlineResources = this.readers['onlineResources'](rootEl)
220
- return {
221
- uniqueIdentifier,
222
- kind,
223
- languages: [],
224
- ...(recordCreated && { recordCreated }),
225
- ...(recordPublished && { recordPublished }),
226
- recordUpdated,
227
- ...(resourceCreated && { resourceCreated }),
228
- ...(resourceUpdated && { resourceUpdated }),
229
- ...(resourcePublished && { resourcePublished }),
230
- title,
231
- abstract,
232
- ownerOrganization,
233
- contacts,
234
- contactsForResource,
235
- keywords,
236
- topics,
237
- licenses,
238
- legalConstraints,
239
- securityConstraints,
240
- otherConstraints,
241
- overviews,
242
- onlineResources,
243
- ...(landingPage && { landingPage }),
244
- } as ServiceRecord
245
- }
246
- }
247
-
248
- async writeRecord(
249
- record: CatalogRecord,
250
- reference?: string
251
- ): Promise<string> {
252
- let rootEl: XmlElement
253
- let fieldChanged: (name: string) => boolean
254
- if (reference) {
255
- const originalDoc = parseXmlString(reference)
256
- const originalRecord = await this.readRecord(reference)
257
- rootEl = getRootElement(originalDoc)
258
-
259
- fieldChanged = (name: string) => {
260
- return originalRecord !== null
261
- ? !isEqual(record[name], originalRecord[name])
262
- : true
263
- }
264
- } else {
265
- rootEl = createElement('gmd:MD_Metadata')()
266
- fieldChanged = () => true
267
- }
268
-
269
- fieldChanged('uniqueIdentifier') &&
270
- this.writers['uniqueIdentifier'](record, rootEl)
271
- fieldChanged('kind') && this.writers['kind'](record, rootEl)
272
-
273
- fieldChanged('contacts') && this.writers['contacts'](record, rootEl)
274
- fieldChanged('ownerOrganization') &&
275
- this.writers['ownerOrganization'](record, rootEl)
276
-
277
- fieldChanged('recordUpdated') &&
278
- this.writers['recordUpdated'](record, rootEl)
279
- fieldChanged('recordCreated') &&
280
- this.writers['recordCreated'](record, rootEl)
281
- fieldChanged('recordPublished') &&
282
- this.writers['recordPublished'](record, rootEl)
283
-
284
- fieldChanged('title') && this.writers['title'](record, rootEl)
285
- fieldChanged('abstract') && this.writers['abstract'](record, rootEl)
286
-
287
- fieldChanged('resourceCreated') &&
288
- this.writers['resourceCreated'](record, rootEl)
289
- fieldChanged('resourcePublished') &&
290
- this.writers['resourcePublished'](record, rootEl)
291
- fieldChanged('resourceUpdated') &&
292
- this.writers['resourceUpdated'](record, rootEl)
293
-
294
- fieldChanged('contactsForResource') &&
295
- this.writers['contactsForResource'](record, rootEl)
296
-
297
- fieldChanged('keywords') && this.writers['keywords'](record, rootEl)
298
- fieldChanged('topics') && this.writers['topics'](record, rootEl)
299
- fieldChanged('legalConstraints') &&
300
- this.writers['legalConstraints'](record, rootEl)
301
- fieldChanged('securityConstraints') &&
302
- this.writers['securityConstraints'](record, rootEl)
303
- fieldChanged('licenses') && this.writers['licenses'](record, rootEl)
304
- fieldChanged('otherConstraints') &&
305
- this.writers['otherConstraints'](record, rootEl)
306
-
307
- if (record.kind === 'dataset') {
308
- fieldChanged('status') && this.writers['status'](record, rootEl)
309
- fieldChanged('updateFrequency') &&
310
- this.writers['updateFrequency'](record, rootEl)
311
- fieldChanged('spatialRepresentation') &&
312
- this.writers['spatialRepresentation'](record, rootEl)
313
- fieldChanged('overviews') && this.writers['overviews'](record, rootEl)
314
- fieldChanged('distributions') &&
315
- this.writers['distributions'](record, rootEl)
316
- fieldChanged('lineage') && this.writers['lineage'](record, rootEl)
317
- } else {
318
- fieldChanged('onlineResources') &&
319
- this.writers['onlineResources'](record, rootEl)
320
- }
321
-
322
- this.beforeDocumentCreation(rootEl)
323
-
324
- const newDocument = createDocument(rootEl)
325
- return xmlToString(newDocument)
326
- }
327
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * Parts are [firstName, lastName]
3
- * Second part will be null if no separation could be done
4
- * @param fullName
5
- */
6
- export function fullNameToParts(fullName: string): [string, string | null] {
7
- const parts = fullName.trim().split(/\s+/)
8
- const first = parts.shift()
9
- return [first, parts.join(' ').trim() || null]
10
- }
11
-
12
- export function namePartsToFull(
13
- firstName: string | null,
14
- lastName: string | null
15
- ): string | null {
16
- const first = firstName?.trim()
17
- const last = lastName?.trim()
18
- if (!first && !last) return null
19
- return last && first ? `${first} ${last}` : last || first
20
- }