docxmlater 9.5.3 → 9.5.5

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.
@@ -36,11 +36,7 @@ export declare class DocumentParser {
36
36
  }>;
37
37
  private parseBodyElements;
38
38
  private extractBodyLevelBookmarkEnds;
39
- private extractBodyLevelBookmarkStarts;
40
39
  private extractBookmarkEndsFromContent;
41
- private extractBodyDelBlockXml;
42
- private extractBookmarksFromBodyDel;
43
- private extractInterRowElements;
44
40
  private findNextTag;
45
41
  private findNextTopLevelTag;
46
42
  private countUnclosedTags;
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentParser.d.ts","sourceRoot":"","sources":["../../src/core/DocumentParser.ts"],"names":[],"mappings":"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"}
@@ -133,8 +133,6 @@ class DocumentParser {
133
133
  if (!bodyContent) {
134
134
  return bodyElements;
135
135
  }
136
- let pendingBookmarkStarts = [];
137
- let pendingBookmarkEnds = [];
138
136
  let pos = 0;
139
137
  while (pos < bodyContent.length) {
140
138
  const nextP = this.findNextTopLevelTag(bodyContent, "w:p", pos);
@@ -152,72 +150,35 @@ class DocumentParser {
152
150
  candidates.sort((a, b) => a.pos - b.pos);
153
151
  const next = candidates[0];
154
152
  if (next) {
155
- if (next.pos > pos) {
156
- if (bodyElements.length > 0) {
157
- const bookmarkEnds = this.extractBodyLevelBookmarkEnds(bodyContent, pos, next.pos);
158
- if (bookmarkEnds.length > 0) {
159
- const prevElement = bodyElements[bodyElements.length - 1];
160
- if (prevElement instanceof Paragraph_1.Paragraph) {
161
- for (const bookmark of bookmarkEnds) {
162
- prevElement.addBookmarkEnd(bookmark);
163
- }
153
+ if (bodyElements.length > 0 && next.pos > pos) {
154
+ const bookmarkEnds = this.extractBodyLevelBookmarkEnds(bodyContent, pos, next.pos);
155
+ if (bookmarkEnds.length > 0) {
156
+ const prevElement = bodyElements[bodyElements.length - 1];
157
+ if (prevElement instanceof Paragraph_1.Paragraph) {
158
+ for (const bookmark of bookmarkEnds) {
159
+ prevElement.addBookmarkEnd(bookmark);
164
160
  }
165
- else if (prevElement instanceof Table_1.Table) {
166
- const rows = prevElement.getRows();
167
- const lastRow = rows[rows.length - 1];
168
- if (lastRow) {
169
- const cells = lastRow.getCells();
170
- const lastCell = cells[cells.length - 1];
171
- if (lastCell) {
172
- const cellParas = lastCell.getParagraphs();
173
- const lastPara = cellParas[cellParas.length - 1];
174
- if (lastPara) {
175
- for (const bookmark of bookmarkEnds) {
176
- lastPara.addBookmarkEnd(bookmark);
177
- }
161
+ }
162
+ else if (prevElement instanceof Table_1.Table) {
163
+ const rows = prevElement.getRows();
164
+ const lastRow = rows[rows.length - 1];
165
+ if (lastRow) {
166
+ const cells = lastRow.getCells();
167
+ const lastCell = cells[cells.length - 1];
168
+ if (lastCell) {
169
+ const cellParas = lastCell.getParagraphs();
170
+ const lastPara = cellParas[cellParas.length - 1];
171
+ if (lastPara) {
172
+ for (const bookmark of bookmarkEnds) {
173
+ lastPara.addBookmarkEnd(bookmark);
178
174
  }
179
175
  }
180
176
  }
181
177
  }
182
178
  }
183
179
  }
184
- const newBookmarkStarts = this.extractBodyLevelBookmarkStarts(bodyContent, pos, next.pos);
185
- pendingBookmarkStarts.push(...newBookmarkStarts);
186
180
  }
187
181
  if (this.isPositionInsideDel(bodyContent, next.pos)) {
188
- const delBlockXml = this.extractBodyDelBlockXml(bodyContent, next.pos);
189
- if (delBlockXml) {
190
- const delBookmarks = this.extractBookmarksFromBodyDel(delBlockXml);
191
- pendingBookmarkStarts.push(...delBookmarks.bookmarkStarts);
192
- if (delBookmarks.bookmarkEnds.length > 0 && bodyElements.length > 0) {
193
- const prevElement = bodyElements[bodyElements.length - 1];
194
- if (prevElement instanceof Paragraph_1.Paragraph) {
195
- for (const bookmark of delBookmarks.bookmarkEnds) {
196
- prevElement.addBookmarkEnd(bookmark);
197
- }
198
- }
199
- else if (prevElement instanceof Table_1.Table) {
200
- const rows = prevElement.getRows();
201
- const lastRow = rows[rows.length - 1];
202
- if (lastRow) {
203
- const cells = lastRow.getCells();
204
- const lastCell = cells[cells.length - 1];
205
- if (lastCell) {
206
- const cellParas = lastCell.getParagraphs();
207
- const lastPara = cellParas[cellParas.length - 1];
208
- if (lastPara) {
209
- for (const bookmark of delBookmarks.bookmarkEnds) {
210
- lastPara.addBookmarkEnd(bookmark);
211
- }
212
- }
213
- }
214
- }
215
- }
216
- }
217
- else if (delBookmarks.bookmarkEnds.length > 0) {
218
- pendingBookmarkEnds.push(...delBookmarks.bookmarkEnds);
219
- }
220
- }
221
182
  const delEndPos = this.findDelEndPosition(bodyContent, next.pos);
222
183
  if (delEndPos > 0) {
223
184
  pos = delEndPos;
@@ -231,17 +192,8 @@ class DocumentParser {
231
192
  const elementXml = this.extractSingleElement(bodyContent, "w:p", next.pos);
232
193
  if (elementXml) {
233
194
  const paragraph = await this.parseParagraphWithOrder(elementXml, relationshipManager, zipHandler, imageManager);
234
- if (paragraph) {
235
- for (const bookmark of pendingBookmarkStarts) {
236
- paragraph.addBookmarkStart(bookmark);
237
- }
238
- pendingBookmarkStarts = [];
239
- for (const bookmark of pendingBookmarkEnds) {
240
- paragraph.addBookmarkEnd(bookmark);
241
- }
242
- pendingBookmarkEnds = [];
195
+ if (paragraph)
243
196
  bodyElements.push(paragraph);
244
- }
245
197
  pos = next.pos + elementXml.length;
246
198
  }
247
199
  else {
@@ -255,31 +207,8 @@ class DocumentParser {
255
207
  trimValues: false,
256
208
  });
257
209
  const table = await this.parseTableFromObject(parsed["w:tbl"], relationshipManager, zipHandler, imageManager, elementXml);
258
- if (table) {
259
- if (pendingBookmarkStarts.length > 0 || pendingBookmarkEnds.length > 0) {
260
- const rows = table.getRows();
261
- const firstRow = rows[0];
262
- if (firstRow) {
263
- const cells = firstRow.getCells();
264
- const firstCell = cells[0];
265
- if (firstCell) {
266
- const cellParas = firstCell.getParagraphs();
267
- const firstPara = cellParas[0];
268
- if (firstPara) {
269
- for (const bookmark of pendingBookmarkStarts) {
270
- firstPara.addBookmarkStart(bookmark);
271
- }
272
- for (const bookmark of pendingBookmarkEnds) {
273
- firstPara.addBookmarkEnd(bookmark);
274
- }
275
- }
276
- }
277
- }
278
- }
279
- pendingBookmarkStarts = [];
280
- pendingBookmarkEnds = [];
210
+ if (table)
281
211
  bodyElements.push(table);
282
- }
283
212
  pos = next.pos + elementXml.length;
284
213
  }
285
214
  else {
@@ -293,11 +222,8 @@ class DocumentParser {
293
222
  trimValues: false,
294
223
  });
295
224
  const sdt = await this.parseSDTFromObject(parsed["w:sdt"], relationshipManager, zipHandler, imageManager);
296
- if (sdt) {
297
- pendingBookmarkStarts = [];
298
- pendingBookmarkEnds = [];
225
+ if (sdt)
299
226
  bodyElements.push(sdt);
300
- }
301
227
  pos = next.pos + elementXml.length;
302
228
  }
303
229
  else {
@@ -344,27 +270,6 @@ class DocumentParser {
344
270
  : content.slice(startPos, endPos);
345
271
  return this.extractBookmarkEndsFromContent(searchContent);
346
272
  }
347
- extractBodyLevelBookmarkStarts(content, startPos, endPos) {
348
- const searchContent = endPos === -1 ? content.slice(startPos) : content.slice(startPos, endPos);
349
- const bookmarks = [];
350
- const bookmarkStartXmls = XMLParser_1.XMLParser.extractElements(searchContent, "w:bookmarkStart");
351
- for (const bookmarkStartXml of bookmarkStartXmls) {
352
- const idAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkStartXml, "w:id");
353
- const nameAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkStartXml, "w:name");
354
- if (idAttr) {
355
- const id = parseInt(idAttr, 10);
356
- if (!isNaN(id)) {
357
- const bookmark = new Bookmark_1.Bookmark({
358
- name: nameAttr || `_bookmark_${id}`,
359
- id: id,
360
- skipNormalization: true,
361
- });
362
- bookmarks.push(bookmark);
363
- }
364
- }
365
- }
366
- return bookmarks;
367
- }
368
273
  extractBookmarkEndsFromContent(content) {
369
274
  const bookmarks = [];
370
275
  const bookmarkEndXmls = XMLParser_1.XMLParser.extractElements(content, "w:bookmarkEnd");
@@ -384,88 +289,6 @@ class DocumentParser {
384
289
  }
385
290
  return bookmarks;
386
291
  }
387
- extractBodyDelBlockXml(content, insidePosition) {
388
- const beforeContent = content.substring(0, insidePosition);
389
- const lastDelOpen = beforeContent.lastIndexOf("<w:del");
390
- if (lastDelOpen === -1)
391
- return "";
392
- const endPos = this.findDelEndPosition(content, lastDelOpen);
393
- if (endPos === -1)
394
- return "";
395
- return content.substring(lastDelOpen, endPos);
396
- }
397
- extractBookmarksFromBodyDel(delBlockXml) {
398
- const bookmarkStarts = [];
399
- const bookmarkEnds = [];
400
- const bookmarkStartXmls = XMLParser_1.XMLParser.extractElements(delBlockXml, "w:bookmarkStart");
401
- for (const bookmarkXml of bookmarkStartXmls) {
402
- const idAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:id");
403
- const nameAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:name");
404
- if (idAttr) {
405
- const id = parseInt(idAttr, 10);
406
- if (!isNaN(id)) {
407
- bookmarkStarts.push(new Bookmark_1.Bookmark({
408
- name: nameAttr || `_bookmark_${id}`,
409
- id: id,
410
- skipNormalization: true,
411
- }));
412
- }
413
- }
414
- }
415
- const bookmarkEndXmls = XMLParser_1.XMLParser.extractElements(delBlockXml, "w:bookmarkEnd");
416
- for (const bookmarkXml of bookmarkEndXmls) {
417
- const idAttr = XMLParser_1.XMLParser.extractAttribute(bookmarkXml, "w:id");
418
- if (idAttr) {
419
- const id = parseInt(idAttr, 10);
420
- if (!isNaN(id)) {
421
- bookmarkEnds.push(new Bookmark_1.Bookmark({
422
- name: `_end_${id}`,
423
- id,
424
- skipNormalization: true,
425
- }));
426
- }
427
- }
428
- }
429
- return { bookmarkStarts, bookmarkEnds };
430
- }
431
- extractInterRowElements(content) {
432
- const elements = [];
433
- const interRowElementTypes = [
434
- "w:bookmarkEnd",
435
- "w:bookmarkStart",
436
- "w:commentRangeEnd",
437
- "w:commentRangeStart",
438
- "w:customXmlDelRangeEnd",
439
- "w:customXmlDelRangeStart",
440
- "w:customXmlInsRangeEnd",
441
- "w:customXmlInsRangeStart",
442
- "w:customXmlMoveFromRangeEnd",
443
- "w:customXmlMoveFromRangeStart",
444
- "w:customXmlMoveToRangeEnd",
445
- "w:customXmlMoveToRangeStart",
446
- "w:moveFromRangeEnd",
447
- "w:moveFromRangeStart",
448
- "w:moveToRangeEnd",
449
- "w:moveToRangeStart",
450
- "w:permEnd",
451
- "w:permStart",
452
- ];
453
- for (const elementType of interRowElementTypes) {
454
- const extracted = XMLParser_1.XMLParser.extractElements(content, elementType);
455
- for (const xml of extracted) {
456
- elements.push({
457
- xml,
458
- type: elementType.replace("w:", ""),
459
- });
460
- }
461
- }
462
- elements.sort((a, b) => {
463
- const posA = content.indexOf(a.xml);
464
- const posB = content.indexOf(b.xml);
465
- return posA - posB;
466
- });
467
- return elements;
468
- }
469
292
  findNextTag(content, tagName, startPos) {
470
293
  const tag = `<${tagName}`;
471
294
  let pos = content.indexOf(tag, startPos);
@@ -3474,9 +3297,19 @@ class DocumentParser {
3474
3297
  : rawTableXml.length;
3475
3298
  if (nextRowStart && currentRowEnd < nextRowStart) {
3476
3299
  const betweenContent = rawTableXml.slice(currentRowEnd, nextRowStart);
3477
- const interRowElements = this.extractInterRowElements(betweenContent);
3478
- for (const element of interRowElements) {
3479
- table.addInterRowContent(i, element.xml, element.type);
3300
+ const bookmarkEnds = this.extractBookmarkEndsFromContent(betweenContent);
3301
+ if (bookmarkEnds.length > 0) {
3302
+ const cells = row.getCells();
3303
+ const lastCell = cells[cells.length - 1];
3304
+ if (lastCell) {
3305
+ const cellParas = lastCell.getParagraphs();
3306
+ const lastPara = cellParas[cellParas.length - 1];
3307
+ if (lastPara) {
3308
+ for (const bookmark of bookmarkEnds) {
3309
+ lastPara.addBookmarkEnd(bookmark);
3310
+ }
3311
+ }
3312
+ }
3480
3313
  }
3481
3314
  }
3482
3315
  }