@manuscripts/transform 2.1.7-LEAN-3467-0 → 2.1.7-LEAN-3421-0

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.
@@ -202,20 +202,34 @@ exports.jatsBodyTransformations = {
202
202
  }
203
203
  },
204
204
  moveFootnotes(doc, group, createElement) {
205
- var _a;
206
- const footnotes = Array.from(doc.querySelectorAll('fn:not(table-wrap-foot fn, author-notes fn)'));
207
- let footnotesSection = doc.querySelector('sec[sec-type="endnotes"]');
208
- const containingGroup = (footnotesSection === null || footnotesSection === void 0 ? void 0 : footnotesSection.querySelector('fn-group')) || createElement('fn-group');
209
- footnotes.forEach((footnote) => {
210
- if (!footnote.getAttribute('fn-type')) {
205
+ const footnotes = [
206
+ ...doc.querySelectorAll('fn:not(table-wrap-foot fn, author-notes fn)'),
207
+ ];
208
+ const footnotesSection = doc.querySelector('sec[sec-type="endnotes"]');
209
+ const footnotesSectionGroup = footnotesSection === null || footnotesSection === void 0 ? void 0 : footnotesSection.querySelector('fn-group');
210
+ const containingGroup = footnotesSectionGroup || createElement('fn-group');
211
+ for (const footnote of footnotes) {
212
+ const type = footnote.getAttribute('fn-type');
213
+ if (!type) {
211
214
  containingGroup.appendChild(footnote);
212
215
  }
213
- });
216
+ }
214
217
  if (!footnotesSection && containingGroup.innerHTML) {
215
- footnotesSection = this.createFootnotesSection([containingGroup], createElement);
218
+ const section = this.createFootnotesSection([containingGroup], createElement);
219
+ group.append(section);
216
220
  }
217
- if (footnotesSection) {
218
- group.insertBefore(footnotesSection, ((_a = group.firstChild) === null || _a === void 0 ? void 0 : _a.nextSibling) || group.firstChild);
221
+ let regularFootnoteGroups = [
222
+ ...doc.querySelectorAll('back > fn-group:not([fn-type])'),
223
+ ];
224
+ regularFootnoteGroups = regularFootnoteGroups.filter((group) => {
225
+ return group.childElementCount === 0
226
+ ? false
227
+ : !group.querySelector('fn[fn-type]');
228
+ });
229
+ if (regularFootnoteGroups.length > 0) {
230
+ regularFootnoteGroups.map((g) => removeNodeFromParent(g));
231
+ const footnotes = this.createFootnotesSection(regularFootnoteGroups, createElement);
232
+ group.appendChild(footnotes);
219
233
  }
220
234
  },
221
235
  moveCaptionsToEnd(body) {
@@ -620,7 +620,7 @@ class JATSExporter {
620
620
  title: () => '',
621
621
  affiliations: () => '',
622
622
  contributors: () => '',
623
- table_element_footer: () => ['table-wrap-foot', 0],
623
+ table_element_footer: (node) => node.textContent ? ['table-wrap-foot', 0] : '',
624
624
  contributor: () => '',
625
625
  affiliation: () => '',
626
626
  attribution: () => ['attrib', 0],
@@ -199,20 +199,34 @@ export const jatsBodyTransformations = {
199
199
  }
200
200
  },
201
201
  moveFootnotes(doc, group, createElement) {
202
- var _a;
203
- const footnotes = Array.from(doc.querySelectorAll('fn:not(table-wrap-foot fn, author-notes fn)'));
204
- let footnotesSection = doc.querySelector('sec[sec-type="endnotes"]');
205
- const containingGroup = (footnotesSection === null || footnotesSection === void 0 ? void 0 : footnotesSection.querySelector('fn-group')) || createElement('fn-group');
206
- footnotes.forEach((footnote) => {
207
- if (!footnote.getAttribute('fn-type')) {
202
+ const footnotes = [
203
+ ...doc.querySelectorAll('fn:not(table-wrap-foot fn, author-notes fn)'),
204
+ ];
205
+ const footnotesSection = doc.querySelector('sec[sec-type="endnotes"]');
206
+ const footnotesSectionGroup = footnotesSection === null || footnotesSection === void 0 ? void 0 : footnotesSection.querySelector('fn-group');
207
+ const containingGroup = footnotesSectionGroup || createElement('fn-group');
208
+ for (const footnote of footnotes) {
209
+ const type = footnote.getAttribute('fn-type');
210
+ if (!type) {
208
211
  containingGroup.appendChild(footnote);
209
212
  }
210
- });
213
+ }
211
214
  if (!footnotesSection && containingGroup.innerHTML) {
212
- footnotesSection = this.createFootnotesSection([containingGroup], createElement);
215
+ const section = this.createFootnotesSection([containingGroup], createElement);
216
+ group.append(section);
213
217
  }
214
- if (footnotesSection) {
215
- group.insertBefore(footnotesSection, ((_a = group.firstChild) === null || _a === void 0 ? void 0 : _a.nextSibling) || group.firstChild);
218
+ let regularFootnoteGroups = [
219
+ ...doc.querySelectorAll('back > fn-group:not([fn-type])'),
220
+ ];
221
+ regularFootnoteGroups = regularFootnoteGroups.filter((group) => {
222
+ return group.childElementCount === 0
223
+ ? false
224
+ : !group.querySelector('fn[fn-type]');
225
+ });
226
+ if (regularFootnoteGroups.length > 0) {
227
+ regularFootnoteGroups.map((g) => removeNodeFromParent(g));
228
+ const footnotes = this.createFootnotesSection(regularFootnoteGroups, createElement);
229
+ group.appendChild(footnotes);
216
230
  }
217
231
  },
218
232
  moveCaptionsToEnd(body) {
@@ -612,7 +612,7 @@ export class JATSExporter {
612
612
  title: () => '',
613
613
  affiliations: () => '',
614
614
  contributors: () => '',
615
- table_element_footer: () => ['table-wrap-foot', 0],
615
+ table_element_footer: (node) => node.textContent ? ['table-wrap-foot', 0] : '',
616
616
  contributor: () => '',
617
617
  affiliation: () => '',
618
618
  attribution: () => ['attrib', 0],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/transform",
3
3
  "description": "ProseMirror transformer for Manuscripts applications",
4
- "version": "2.1.7-LEAN-3467-0",
4
+ "version": "2.1.7-LEAN-3421-0",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-transform",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",