docxmlater 10.1.3 → 10.1.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.
- package/README.md +759 -754
- package/dist/constants/legacyCompatFlags.js +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/constants/limits.js.map +1 -1
- package/dist/core/Document.d.ts +50 -50
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +483 -471
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts +9 -9
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts +11 -11
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +251 -251
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentIdManager.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +15 -15
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +2123 -2155
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js +2 -5
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.d.ts.map +1 -1
- package/dist/core/RelationshipManager.js +3 -3
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/elements/AlternateContent.js.map +1 -1
- package/dist/elements/Bookmark.d.ts.map +1 -1
- package/dist/elements/Bookmark.js +3 -1
- package/dist/elements/Bookmark.js.map +1 -1
- package/dist/elements/BookmarkManager.d.ts.map +1 -1
- package/dist/elements/BookmarkManager.js.map +1 -1
- package/dist/elements/Comment.d.ts.map +1 -1
- package/dist/elements/Comment.js +9 -6
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +18 -17
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts +21 -21
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +56 -56
- package/dist/elements/CommonTypes.js.map +1 -1
- package/dist/elements/CustomXml.js.map +1 -1
- package/dist/elements/Endnote.d.ts.map +1 -1
- package/dist/elements/Endnote.js +6 -6
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js +6 -7
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +82 -25
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/FontManager.d.ts.map +1 -1
- package/dist/elements/FontManager.js +1 -1
- package/dist/elements/FontManager.js.map +1 -1
- package/dist/elements/Footer.js +2 -2
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js +6 -6
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js +6 -7
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.js +2 -2
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts +5 -3
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +134 -76
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +238 -106
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +1 -1
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.js +1 -1
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +24 -24
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +181 -188
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
- package/dist/elements/PropertyChangeTypes.js +6 -6
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.d.ts.map +1 -1
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +4 -5
- package/dist/elements/Revision.js.map +1 -1
- package/dist/elements/RevisionContent.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js +40 -48
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts +16 -16
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +256 -238
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +36 -11
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts +6 -6
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +99 -104
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +11 -11
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +102 -107
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +10 -10
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +105 -106
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.d.ts.map +1 -1
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js +4 -4
- package/dist/elements/TableOfContents.js.map +1 -1
- package/dist/elements/TableOfContentsElement.js.map +1 -1
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +13 -6
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +3 -5
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.d.ts +4 -4
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +54 -49
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +1 -3
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts +5 -5
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +119 -125
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js +9 -9
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts +11 -11
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +219 -247
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +2 -2
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js +96 -102
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.d.ts +1 -1
- package/dist/helpers/CleanupHelper.d.ts.map +1 -1
- package/dist/helpers/CleanupHelper.js +6 -6
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/images/ImageOptimizer.js +7 -7
- package/dist/images/ImageOptimizer.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +23 -7
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts.map +1 -1
- package/dist/tracking/TrackingContext.js.map +1 -1
- package/dist/types/compatibility-types.js.map +1 -1
- package/dist/types/formatting.js.map +1 -1
- package/dist/types/list-types.d.ts +6 -6
- package/dist/types/list-types.js.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/types/styleConfig.d.ts +2 -2
- package/dist/types/styleConfig.js.map +1 -1
- package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
- package/dist/utils/ChangelogGenerator.js +97 -101
- package/dist/utils/ChangelogGenerator.js.map +1 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
- package/dist/utils/CompatibilityUpgrader.js +1 -1
- package/dist/utils/CompatibilityUpgrader.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
- package/dist/utils/MoveOperationHelper.js +1 -1
- package/dist/utils/MoveOperationHelper.js.map +1 -1
- package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js +2 -4
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/RevisionWalker.d.ts.map +1 -1
- package/dist/utils/RevisionWalker.js +4 -12
- package/dist/utils/RevisionWalker.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/dist/utils/ShadingResolver.d.ts.map +1 -1
- package/dist/utils/ShadingResolver.js +1 -1
- package/dist/utils/ShadingResolver.js.map +1 -1
- package/dist/utils/acceptRevisions.d.ts.map +1 -1
- package/dist/utils/acceptRevisions.js +23 -12
- package/dist/utils/acceptRevisions.js.map +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
- package/dist/utils/cnfStyleDecoder.js +40 -40
- package/dist/utils/cnfStyleDecoder.js.map +1 -1
- package/dist/utils/corruptionDetection.d.ts.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/dateFormatting.js.map +1 -1
- package/dist/utils/deepClone.js +1 -1
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +10 -2
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/list-detection.d.ts +2 -2
- package/dist/utils/list-detection.d.ts.map +1 -1
- package/dist/utils/list-detection.js +21 -23
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
- package/dist/utils/stripTrackedChanges.js +3 -3
- package/dist/utils/stripTrackedChanges.js.map +1 -1
- package/dist/utils/textDiff.d.ts +1 -1
- package/dist/utils/textDiff.js +8 -8
- package/dist/utils/textDiff.js.map +1 -1
- package/dist/utils/units.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +24 -7
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.d.ts.map +1 -1
- package/dist/utils/xmlSanitization.js +3 -3
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
- package/dist/validation/RevisionAutoFixer.js +5 -5
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.d.ts.map +1 -1
- package/dist/validation/RevisionValidator.js +7 -9
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRules.js +3 -3
- package/dist/validation/ValidationRules.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts +1 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +98 -100
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.d.ts.map +1 -1
- package/dist/xml/XMLParser.js +61 -66
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.d.ts.map +1 -1
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.d.ts.map +1 -1
- package/dist/zip/ZipReader.js +1 -3
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.d.ts +1 -1
- package/dist/zip/ZipWriter.d.ts.map +1 -1
- package/dist/zip/ZipWriter.js +28 -36
- package/dist/zip/ZipWriter.js.map +1 -1
- package/dist/zip/types.js +1 -1
- package/dist/zip/types.js.map +1 -1
- package/package.json +92 -92
- package/src/__tests__/helper-methods.test.ts +512 -512
- package/src/constants/legacyCompatFlags.ts +138 -138
- package/src/constants/limits.ts +50 -50
- package/src/core/Document.ts +985 -1145
- package/src/core/DocumentContent.ts +461 -467
- package/src/core/DocumentGenerator.ts +1133 -1104
- package/src/core/DocumentIdManager.ts +158 -158
- package/src/core/DocumentParser.ts +2347 -2716
- package/src/core/DocumentValidator.ts +363 -372
- package/src/core/Relationship.ts +367 -367
- package/src/core/RelationshipManager.ts +429 -428
- package/src/elements/AlternateContent.ts +42 -42
- package/src/elements/Bookmark.ts +212 -210
- package/src/elements/BookmarkManager.ts +247 -250
- package/src/elements/Comment.ts +356 -359
- package/src/elements/CommentManager.ts +499 -502
- package/src/elements/CommonTypes.ts +524 -549
- package/src/elements/CustomXml.ts +36 -36
- package/src/elements/Endnote.ts +221 -217
- package/src/elements/EndnoteManager.ts +246 -249
- package/src/elements/Field.ts +1292 -1233
- package/src/elements/FieldHelpers.ts +329 -333
- package/src/elements/FontManager.ts +336 -339
- package/src/elements/Footer.ts +269 -269
- package/src/elements/Footnote.ts +221 -217
- package/src/elements/FootnoteManager.ts +246 -249
- package/src/elements/Header.ts +269 -269
- package/src/elements/HeaderFooterManager.ts +219 -219
- package/src/elements/Hyperlink.ts +1288 -1193
- package/src/elements/Image.ts +1982 -1756
- package/src/elements/ImageManager.ts +437 -432
- package/src/elements/ImageRun.ts +59 -59
- package/src/elements/MathElement.ts +65 -65
- package/src/elements/Paragraph.ts +4347 -4287
- package/src/elements/PreservedElement.ts +53 -53
- package/src/elements/PropertyChangeTypes.ts +458 -442
- package/src/elements/RangeMarker.ts +382 -400
- package/src/elements/Revision.ts +1198 -1217
- package/src/elements/RevisionContent.ts +73 -73
- package/src/elements/RevisionManager.ts +1070 -1070
- package/src/elements/Run.ts +3103 -3073
- package/src/elements/Section.ts +1521 -1421
- package/src/elements/Shape.ts +884 -873
- package/src/elements/StructuredDocumentTag.ts +1176 -1207
- package/src/elements/Table.ts +2468 -2524
- package/src/elements/TableCell.ts +1617 -1621
- package/src/elements/TableGridChange.ts +149 -151
- package/src/elements/TableOfContents.ts +701 -691
- package/src/elements/TableOfContentsElement.ts +89 -89
- package/src/elements/TableRow.ts +960 -929
- package/src/elements/TextBox.ts +766 -768
- package/src/formatting/AbstractNumbering.ts +580 -579
- package/src/formatting/NumberingInstance.ts +295 -299
- package/src/formatting/NumberingLevel.ts +981 -1040
- package/src/formatting/NumberingManager.ts +833 -827
- package/src/formatting/Style.ts +1785 -1879
- package/src/formatting/StylesManager.ts +1090 -1130
- package/src/helpers/CleanupHelper.ts +524 -524
- package/src/images/ImageOptimizer.ts +274 -274
- package/src/index.ts +559 -554
- package/src/managers/DrawingManager.ts +319 -319
- package/src/tracking/DocumentTrackingContext.ts +687 -674
- package/src/tracking/TrackingContext.ts +175 -173
- package/src/types/compatibility-types.ts +49 -49
- package/src/types/formatting.ts +210 -210
- package/src/types/list-types.ts +14 -14
- package/src/types/settings-types.ts +59 -59
- package/src/types/styleConfig.ts +189 -189
- package/src/utils/ChangelogGenerator.ts +1583 -1581
- package/src/utils/CompatibilityUpgrader.ts +235 -237
- package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
- package/src/utils/MoveOperationHelper.ts +233 -238
- package/src/utils/RevisionAwareProcessor.ts +518 -526
- package/src/utils/RevisionWalker.ts +427 -457
- package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
- package/src/utils/ShadingResolver.ts +105 -107
- package/src/utils/acceptRevisions.ts +723 -714
- package/src/utils/cnfStyleDecoder.ts +212 -217
- package/src/utils/corruptionDetection.ts +346 -345
- package/src/utils/dateFormatting.ts +20 -20
- package/src/utils/deepClone.ts +77 -78
- package/src/utils/diagnostics.ts +125 -129
- package/src/utils/errorHandling.ts +80 -80
- package/src/utils/formatting.ts +220 -213
- package/src/utils/list-detection.ts +32 -42
- package/src/utils/logger.ts +412 -404
- package/src/utils/parsingHelpers.ts +190 -190
- package/src/utils/stripTrackedChanges.ts +356 -353
- package/src/utils/textDiff.ts +100 -100
- package/src/utils/units.ts +421 -421
- package/src/utils/validation.ts +553 -542
- package/src/utils/xmlSanitization.ts +179 -182
- package/src/validation/RevisionAutoFixer.ts +541 -542
- package/src/validation/RevisionValidator.ts +470 -460
- package/src/validation/ValidationRules.ts +338 -338
- package/src/validation/index.ts +30 -30
- package/src/xml/XMLBuilder.ts +857 -871
- package/src/xml/XMLParser.ts +877 -919
- package/src/zip/ZipHandler.ts +629 -637
- package/src/zip/ZipReader.ts +295 -299
- package/src/zip/ZipWriter.ts +374 -390
- package/src/zip/types.ts +116 -116
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberingInstance.js","sourceRoot":"","sources":["../../src/formatting/NumberingInstance.ts"],"names":[],"mappings":";;;AAQA,kDAA2D;AAC3D,qDAAkD;AAmBlD,MAAa,iBAAiB;IACpB,KAAK,CAAS;IACd,aAAa,CAAS;IACtB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,kBAAkB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAO/D,YAAY,YAAkD,EAAE,aAAsB;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAErC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YAEN,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAKO,QAAQ;QACd,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAKD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAKD,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAMD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAMD,iBAAiB;QACf,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAUD,gBAAgB,CAAC,KAAa,EAAE,UAAkB;QAChD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,gBAAgB,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAUD,oBAAoB,CAAC,KAAa,EAAE,QAAwB;QAC1D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,oBAAoB,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAGlC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC9E,CAAC;QAGF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1C,QAAQ,EAAE;oBACR,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACtE;aACF,CAAC,CAAC;QACL,CAAC;QAGD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAiB,EAAE,CAAC;YAE1C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CACnB,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3F,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1C,QAAQ,EAAE,gBAAgB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAOD,MAAM,CAAC,MAAM,CACX,iBAAuD,EACvD,aAAsB;QAEtB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAOD,MAAM,CAAC,OAAO,CAAC,GAAW;QAExB,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAG1C,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAGH,MAAM,gBAAgB,GAAG,qEAAqE,CAAC;QAC/F,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAGrC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChF,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;YAGD,MAAM,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,+BAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA9QD,8CA8QC","sourcesContent":["/**\r\n * NumberingInstance - Links paragraphs to abstract numbering definitions\r\n *\r\n * A numbering instance references an abstract numbering definition and provides\r\n * the actual numId that paragraphs use. Multiple instances can reference the same\r\n * abstract numbering, creating separate list sequences.\r\n */\r\n\r\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\r\nimport { NumberingLevel } from './NumberingLevel';\r\n\r\n/**\r\n * Properties for creating a numbering instance\r\n */\r\nexport interface NumberingInstanceProperties {\r\n /** Unique numbering instance ID (numId) */\r\n numId: number;\r\n\r\n /** Reference to the abstract numbering definition */\r\n abstractNumId: number;\r\n}\r\n\r\n/**\r\n * Represents a numbering instance\r\n *\r\n * Numbering instances link paragraphs to abstract numbering definitions.\r\n * Each instance creates a separate numbering sequence in the document.\r\n */\r\nexport class NumberingInstance {\r\n private numId: number;\r\n private abstractNumId: number;\r\n private levelOverrides = new Map<number, number>();\r\n private fullLevelOverrides = new Map<number, NumberingLevel>();\r\n\r\n /**\r\n * Creates a new numbering instance\r\n * @param numIdOrProps The numbering instance ID or properties object\r\n * @param abstractNumId The abstract numbering ID (if first param is a number)\r\n */\r\n constructor(numIdOrProps: number | NumberingInstanceProperties, abstractNumId?: number) {\r\n if (typeof numIdOrProps === 'number') {\r\n // Support simple constructor: new NumberingInstance(numId, abstractNumId)\r\n this.numId = numIdOrProps;\r\n this.abstractNumId = abstractNumId ?? 0;\r\n } else {\r\n // Support object constructor: new NumberingInstance({ numId, abstractNumId })\r\n this.numId = numIdOrProps.numId;\r\n this.abstractNumId = numIdOrProps.abstractNumId;\r\n }\r\n\r\n this.validate();\r\n }\r\n\r\n /**\r\n * Validates the numbering instance\r\n */\r\n private validate(): void {\r\n if (this.numId < 0) {\r\n throw new Error('Numbering instance ID must be non-negative');\r\n }\r\n\r\n if (this.abstractNumId < 0) {\r\n throw new Error('Abstract numbering ID must be non-negative');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the numbering instance ID\r\n */\r\n getNumId(): number {\r\n return this.numId;\r\n }\r\n\r\n /**\r\n * Gets the abstract numbering ID\r\n */\r\n getAbstractNumId(): number {\r\n return this.abstractNumId;\r\n }\r\n\r\n /**\r\n * Sets the abstract numbering ID this instance references\r\n * @param abstractNumId The new abstract numbering ID\r\n */\r\n setAbstractNumId(abstractNumId: number): this {\r\n if (abstractNumId < 0) {\r\n throw new Error('Abstract numbering ID must be non-negative');\r\n }\r\n this.abstractNumId = abstractNumId;\r\n return this;\r\n }\r\n\r\n /**\r\n * Alias for getNumId for backward compatibility\r\n */\r\n getId(): number {\r\n return this.numId;\r\n }\r\n\r\n /**\r\n * Gets level overrides\r\n * Returns a map of level indices to their override starting values\r\n */\r\n getLevelOverrides(): Map<number, number> {\r\n return new Map(this.levelOverrides);\r\n }\r\n\r\n /**\r\n * Sets level override for a specific level\r\n * Overrides the starting value for a particular numbering level\r\n *\r\n * @param level The level index (0-based)\r\n * @param startValue The starting value for this level\r\n * @returns This instance for method chaining\r\n */\r\n setLevelOverride(level: number, startValue: number): this {\r\n if (level < 0) {\r\n throw new Error('Level index must be non-negative');\r\n }\r\n if (startValue < 0) {\r\n throw new Error('Start value must be non-negative');\r\n }\r\n\r\n this.levelOverrides.set(level, startValue);\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears a level override for a specific level\r\n *\r\n * @param level The level index to clear\r\n * @returns This instance for method chaining\r\n */\r\n clearLevelOverride(level: number): this {\r\n this.levelOverrides.delete(level);\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the override value for a specific level, if set\r\n *\r\n * @param level The level index\r\n * @returns The override starting value, or undefined if not set\r\n */\r\n getLevelOverride(level: number): number | undefined {\r\n return this.levelOverrides.get(level);\r\n }\r\n\r\n /**\r\n * Sets a full level definition override for a specific level\r\n * This replaces the entire level definition from the abstract numbering\r\n * (ECMA-376 §17.9.8 - w:lvlOverride with full w:lvl child)\r\n *\r\n * @param level The level index (0-based)\r\n * @param levelDef The full NumberingLevel definition to use as override\r\n */\r\n setFullLevelOverride(level: number, levelDef: NumberingLevel): this {\r\n if (level < 0) {\r\n throw new Error('Level index must be non-negative');\r\n }\r\n this.fullLevelOverrides.set(level, levelDef);\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets a full level definition override for a specific level\r\n */\r\n getFullLevelOverride(level: number): NumberingLevel | undefined {\r\n return this.fullLevelOverrides.get(level);\r\n }\r\n\r\n /**\r\n * Gets all full level definition overrides\r\n */\r\n getFullLevelOverrides(): Map<number, NumberingLevel> {\r\n return new Map(this.fullLevelOverrides);\r\n }\r\n\r\n /**\r\n * Clears a full level override\r\n */\r\n clearFullLevelOverride(level: number): this {\r\n this.fullLevelOverrides.delete(level);\r\n return this;\r\n }\r\n\r\n /**\r\n * Generates the WordprocessingML XML for this numbering instance\r\n */\r\n toXML(): XMLElement {\r\n const children: XMLElement[] = [];\r\n\r\n // Reference to abstract numbering\r\n children.push(\r\n XMLBuilder.wSelf('abstractNumId', { 'w:val': this.abstractNumId.toString() })\r\n );\r\n\r\n // Add level overrides if any are set\r\n for (const [level, startValue] of this.levelOverrides) {\r\n // Skip levels that have a full level override (they take precedence)\r\n if (this.fullLevelOverrides.has(level)) continue;\r\n children.push({\r\n name: 'w:lvlOverride',\r\n attributes: { 'w:ilvl': level.toString() },\r\n children: [\r\n XMLBuilder.wSelf('startOverride', { 'w:val': startValue.toString() })\r\n ]\r\n });\r\n }\r\n\r\n // Add full level overrides\r\n for (const [level, levelDef] of this.fullLevelOverrides) {\r\n const overrideChildren: XMLElement[] = [];\r\n // Include startOverride if also set for this level\r\n if (this.levelOverrides.has(level)) {\r\n overrideChildren.push(\r\n XMLBuilder.wSelf('startOverride', { 'w:val': this.levelOverrides.get(level)!.toString() })\r\n );\r\n }\r\n overrideChildren.push(levelDef.toXML());\r\n children.push({\r\n name: 'w:lvlOverride',\r\n attributes: { 'w:ilvl': level.toString() },\r\n children: overrideChildren,\r\n });\r\n }\r\n\r\n return XMLBuilder.w('num', { 'w:numId': this.numId.toString() }, children);\r\n }\r\n\r\n /**\r\n * Factory method for creating a numbering instance\r\n * @param propertiesOrNumId The instance properties object, or numId (number)\r\n * @param abstractNumId The abstract numbering ID (if first param is a number)\r\n */\r\n static create(\r\n propertiesOrNumId: NumberingInstanceProperties | number,\r\n abstractNumId?: number\r\n ): NumberingInstance {\r\n if (typeof propertiesOrNumId === 'number') {\r\n return new NumberingInstance(propertiesOrNumId, abstractNumId);\r\n }\r\n return new NumberingInstance(propertiesOrNumId);\r\n }\r\n\r\n /**\r\n * Creates a NumberingInstance from XML element\r\n * @param xml The XML string of the <w:num> element\r\n * @returns NumberingInstance instance\r\n */\r\n static fromXML(xml: string): NumberingInstance {\r\n // Extract numId (required)\r\n const numIdMatch = /<w:num[^>]*w:numId=\"([^\"]+)\"/.exec(xml);\r\n if (!numIdMatch?.[1]) {\r\n throw new Error('Missing required w:numId attribute');\r\n }\r\n const numId = parseInt(numIdMatch[1], 10);\r\n\r\n // Extract abstractNumId (required)\r\n const abstractNumIdMatch = /<w:abstractNumId[^>]*w:val=\"([^\"]+)\"/.exec(xml);\r\n if (!abstractNumIdMatch?.[1]) {\r\n throw new Error('Missing required w:abstractNumId element');\r\n }\r\n const abstractNumId = parseInt(abstractNumIdMatch[1], 10);\r\n\r\n const instance = new NumberingInstance({\r\n numId,\r\n abstractNumId,\r\n });\r\n\r\n // Parse level overrides (w:lvlOverride)\r\n const lvlOverrideRegex = /<w:lvlOverride[^>]*w:ilvl=\"(\\d+)\"[^>]*>([\\s\\S]*?)<\\/w:lvlOverride>/g;\r\n let match: RegExpExecArray | null;\r\n while ((match = lvlOverrideRegex.exec(xml)) !== null) {\r\n const levelStr = match[1]!;\r\n const content = match[2]!;\r\n const level = parseInt(levelStr, 10);\r\n\r\n // Check for startOverride\r\n const startOverrideMatch = /<w:startOverride[^>]*w:val=\"([^\"]+)\"/.exec(content);\r\n if (startOverrideMatch?.[1]) {\r\n instance.setLevelOverride(level, parseInt(startOverrideMatch[1], 10));\r\n }\r\n\r\n // Check for full w:lvl element\r\n const lvlMatch = /<w:lvl[^>]*>[\\s\\S]*?<\\/w:lvl>/.exec(content);\r\n if (lvlMatch) {\r\n try {\r\n const levelDef = NumberingLevel.fromXML(lvlMatch[0]);\r\n instance.setFullLevelOverride(level, levelDef);\r\n } catch {\r\n // Skip invalid level definitions\r\n }\r\n }\r\n }\r\n\r\n return instance;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"NumberingInstance.js","sourceRoot":"","sources":["../../src/formatting/NumberingInstance.ts"],"names":[],"mappings":";;;AAQA,kDAA2D;AAC3D,qDAAkD;AAmBlD,MAAa,iBAAiB;IACpB,KAAK,CAAS;IACd,aAAa,CAAS;IACtB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,kBAAkB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAO/D,YAAY,YAAkD,EAAE,aAAsB;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAErC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YAEN,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAKO,QAAQ;QACd,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAKD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAKD,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAMD,gBAAgB,CAAC,aAAqB;QACpC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAMD,iBAAiB;QACf,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAUD,gBAAgB,CAAC,KAAa,EAAE,UAAkB;QAChD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,gBAAgB,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAUD,oBAAoB,CAAC,KAAa,EAAE,QAAwB;QAC1D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,oBAAoB,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAKD,qBAAqB;QACnB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAGlC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAG7F,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1C,QAAQ,EAAE,CAAC,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAClF,CAAC,CAAC;QACL,CAAC;QAGD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,gBAAgB,GAAiB,EAAE,CAAC;YAE1C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CACnB,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3F,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1C,QAAQ,EAAE,gBAAgB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAOD,MAAM,CAAC,MAAM,CACX,iBAAuD,EACvD,aAAsB;QAEtB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAOD,MAAM,CAAC,OAAO,CAAC,GAAW;QAExB,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAG1C,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAGH,MAAM,gBAAgB,GAAG,qEAAqE,CAAC;QAC/F,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAGrC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChF,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;YAGD,MAAM,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,+BAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA1QD,8CA0QC","sourcesContent":["/**\n * NumberingInstance - Links paragraphs to abstract numbering definitions\n *\n * A numbering instance references an abstract numbering definition and provides\n * the actual numId that paragraphs use. Multiple instances can reference the same\n * abstract numbering, creating separate list sequences.\n */\n\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\nimport { NumberingLevel } from './NumberingLevel';\n\n/**\n * Properties for creating a numbering instance\n */\nexport interface NumberingInstanceProperties {\n /** Unique numbering instance ID (numId) */\n numId: number;\n\n /** Reference to the abstract numbering definition */\n abstractNumId: number;\n}\n\n/**\n * Represents a numbering instance\n *\n * Numbering instances link paragraphs to abstract numbering definitions.\n * Each instance creates a separate numbering sequence in the document.\n */\nexport class NumberingInstance {\n private numId: number;\n private abstractNumId: number;\n private levelOverrides = new Map<number, number>();\n private fullLevelOverrides = new Map<number, NumberingLevel>();\n\n /**\n * Creates a new numbering instance\n * @param numIdOrProps The numbering instance ID or properties object\n * @param abstractNumId The abstract numbering ID (if first param is a number)\n */\n constructor(numIdOrProps: number | NumberingInstanceProperties, abstractNumId?: number) {\n if (typeof numIdOrProps === 'number') {\n // Support simple constructor: new NumberingInstance(numId, abstractNumId)\n this.numId = numIdOrProps;\n this.abstractNumId = abstractNumId ?? 0;\n } else {\n // Support object constructor: new NumberingInstance({ numId, abstractNumId })\n this.numId = numIdOrProps.numId;\n this.abstractNumId = numIdOrProps.abstractNumId;\n }\n\n this.validate();\n }\n\n /**\n * Validates the numbering instance\n */\n private validate(): void {\n if (this.numId < 0) {\n throw new Error('Numbering instance ID must be non-negative');\n }\n\n if (this.abstractNumId < 0) {\n throw new Error('Abstract numbering ID must be non-negative');\n }\n }\n\n /**\n * Gets the numbering instance ID\n */\n getNumId(): number {\n return this.numId;\n }\n\n /**\n * Gets the abstract numbering ID\n */\n getAbstractNumId(): number {\n return this.abstractNumId;\n }\n\n /**\n * Sets the abstract numbering ID this instance references\n * @param abstractNumId The new abstract numbering ID\n */\n setAbstractNumId(abstractNumId: number): this {\n if (abstractNumId < 0) {\n throw new Error('Abstract numbering ID must be non-negative');\n }\n this.abstractNumId = abstractNumId;\n return this;\n }\n\n /**\n * Alias for getNumId for backward compatibility\n */\n getId(): number {\n return this.numId;\n }\n\n /**\n * Gets level overrides\n * Returns a map of level indices to their override starting values\n */\n getLevelOverrides(): Map<number, number> {\n return new Map(this.levelOverrides);\n }\n\n /**\n * Sets level override for a specific level\n * Overrides the starting value for a particular numbering level\n *\n * @param level The level index (0-based)\n * @param startValue The starting value for this level\n * @returns This instance for method chaining\n */\n setLevelOverride(level: number, startValue: number): this {\n if (level < 0) {\n throw new Error('Level index must be non-negative');\n }\n if (startValue < 0) {\n throw new Error('Start value must be non-negative');\n }\n\n this.levelOverrides.set(level, startValue);\n return this;\n }\n\n /**\n * Clears a level override for a specific level\n *\n * @param level The level index to clear\n * @returns This instance for method chaining\n */\n clearLevelOverride(level: number): this {\n this.levelOverrides.delete(level);\n return this;\n }\n\n /**\n * Gets the override value for a specific level, if set\n *\n * @param level The level index\n * @returns The override starting value, or undefined if not set\n */\n getLevelOverride(level: number): number | undefined {\n return this.levelOverrides.get(level);\n }\n\n /**\n * Sets a full level definition override for a specific level\n * This replaces the entire level definition from the abstract numbering\n * (ECMA-376 §17.9.8 - w:lvlOverride with full w:lvl child)\n *\n * @param level The level index (0-based)\n * @param levelDef The full NumberingLevel definition to use as override\n */\n setFullLevelOverride(level: number, levelDef: NumberingLevel): this {\n if (level < 0) {\n throw new Error('Level index must be non-negative');\n }\n this.fullLevelOverrides.set(level, levelDef);\n return this;\n }\n\n /**\n * Gets a full level definition override for a specific level\n */\n getFullLevelOverride(level: number): NumberingLevel | undefined {\n return this.fullLevelOverrides.get(level);\n }\n\n /**\n * Gets all full level definition overrides\n */\n getFullLevelOverrides(): Map<number, NumberingLevel> {\n return new Map(this.fullLevelOverrides);\n }\n\n /**\n * Clears a full level override\n */\n clearFullLevelOverride(level: number): this {\n this.fullLevelOverrides.delete(level);\n return this;\n }\n\n /**\n * Generates the WordprocessingML XML for this numbering instance\n */\n toXML(): XMLElement {\n const children: XMLElement[] = [];\n\n // Reference to abstract numbering\n children.push(XMLBuilder.wSelf('abstractNumId', { 'w:val': this.abstractNumId.toString() }));\n\n // Add level overrides if any are set\n for (const [level, startValue] of this.levelOverrides) {\n // Skip levels that have a full level override (they take precedence)\n if (this.fullLevelOverrides.has(level)) continue;\n children.push({\n name: 'w:lvlOverride',\n attributes: { 'w:ilvl': level.toString() },\n children: [XMLBuilder.wSelf('startOverride', { 'w:val': startValue.toString() })],\n });\n }\n\n // Add full level overrides\n for (const [level, levelDef] of this.fullLevelOverrides) {\n const overrideChildren: XMLElement[] = [];\n // Include startOverride if also set for this level\n if (this.levelOverrides.has(level)) {\n overrideChildren.push(\n XMLBuilder.wSelf('startOverride', { 'w:val': this.levelOverrides.get(level)!.toString() })\n );\n }\n overrideChildren.push(levelDef.toXML());\n children.push({\n name: 'w:lvlOverride',\n attributes: { 'w:ilvl': level.toString() },\n children: overrideChildren,\n });\n }\n\n return XMLBuilder.w('num', { 'w:numId': this.numId.toString() }, children);\n }\n\n /**\n * Factory method for creating a numbering instance\n * @param propertiesOrNumId The instance properties object, or numId (number)\n * @param abstractNumId The abstract numbering ID (if first param is a number)\n */\n static create(\n propertiesOrNumId: NumberingInstanceProperties | number,\n abstractNumId?: number\n ): NumberingInstance {\n if (typeof propertiesOrNumId === 'number') {\n return new NumberingInstance(propertiesOrNumId, abstractNumId);\n }\n return new NumberingInstance(propertiesOrNumId);\n }\n\n /**\n * Creates a NumberingInstance from XML element\n * @param xml The XML string of the <w:num> element\n * @returns NumberingInstance instance\n */\n static fromXML(xml: string): NumberingInstance {\n // Extract numId (required)\n const numIdMatch = /<w:num[^>]*w:numId=\"([^\"]+)\"/.exec(xml);\n if (!numIdMatch?.[1]) {\n throw new Error('Missing required w:numId attribute');\n }\n const numId = parseInt(numIdMatch[1], 10);\n\n // Extract abstractNumId (required)\n const abstractNumIdMatch = /<w:abstractNumId[^>]*w:val=\"([^\"]+)\"/.exec(xml);\n if (!abstractNumIdMatch?.[1]) {\n throw new Error('Missing required w:abstractNumId element');\n }\n const abstractNumId = parseInt(abstractNumIdMatch[1], 10);\n\n const instance = new NumberingInstance({\n numId,\n abstractNumId,\n });\n\n // Parse level overrides (w:lvlOverride)\n const lvlOverrideRegex = /<w:lvlOverride[^>]*w:ilvl=\"(\\d+)\"[^>]*>([\\s\\S]*?)<\\/w:lvlOverride>/g;\n let match: RegExpExecArray | null;\n while ((match = lvlOverrideRegex.exec(xml)) !== null) {\n const levelStr = match[1]!;\n const content = match[2]!;\n const level = parseInt(levelStr, 10);\n\n // Check for startOverride\n const startOverrideMatch = /<w:startOverride[^>]*w:val=\"([^\"]+)\"/.exec(content);\n if (startOverrideMatch?.[1]) {\n instance.setLevelOverride(level, parseInt(startOverrideMatch[1], 10));\n }\n\n // Check for full w:lvl element\n const lvlMatch = /<w:lvl[^>]*>[\\s\\S]*?<\\/w:lvl>/.exec(content);\n if (lvlMatch) {\n try {\n const levelDef = NumberingLevel.fromXML(lvlMatch[0]);\n instance.setFullLevelOverride(level, levelDef);\n } catch {\n // Skip invalid level definitions\n }\n }\n }\n\n return instance;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { XMLElement } from
|
|
1
|
+
import { XMLElement } from '../xml/XMLBuilder';
|
|
2
2
|
export declare const WORD_NATIVE_BULLETS: {
|
|
3
3
|
readonly FILLED_BULLET: {
|
|
4
4
|
readonly char: "";
|
|
@@ -14,8 +14,8 @@ export declare const WORD_NATIVE_BULLETS: {
|
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
16
|
export type WordNativeBullet = (typeof WORD_NATIVE_BULLETS)[keyof typeof WORD_NATIVE_BULLETS];
|
|
17
|
-
export type NumberFormat =
|
|
18
|
-
export type NumberAlignment =
|
|
17
|
+
export type NumberFormat = 'bullet' | 'decimal' | 'lowerRoman' | 'upperRoman' | 'lowerLetter' | 'upperLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'decimal zero';
|
|
18
|
+
export type NumberAlignment = 'left' | 'center' | 'right' | 'start' | 'end';
|
|
19
19
|
export interface NumberingLevelProperties {
|
|
20
20
|
level: number;
|
|
21
21
|
format: NumberFormat;
|
|
@@ -27,7 +27,7 @@ export interface NumberingLevelProperties {
|
|
|
27
27
|
font?: string;
|
|
28
28
|
fontSize?: number;
|
|
29
29
|
isLegalNumberingStyle?: boolean;
|
|
30
|
-
suffix?:
|
|
30
|
+
suffix?: 'tab' | 'space' | 'nothing';
|
|
31
31
|
color?: string;
|
|
32
32
|
bold?: boolean;
|
|
33
33
|
italic?: boolean;
|
|
@@ -66,7 +66,7 @@ export declare class NumberingLevel {
|
|
|
66
66
|
setFormat(format: NumberFormat): this;
|
|
67
67
|
static normalizeFormat(format: string): NumberFormat;
|
|
68
68
|
toXML(): XMLElement;
|
|
69
|
-
static getBulletSymbolWithFont(level: number, style?:
|
|
69
|
+
static getBulletSymbolWithFont(level: number, style?: 'standard' | 'circle' | 'square' | 'arrow' | 'check' | 'word-native'): {
|
|
70
70
|
symbol: string;
|
|
71
71
|
font: string;
|
|
72
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberingLevel.d.ts","sourceRoot":"","sources":["../../src/formatting/NumberingLevel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAc,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAW3D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAOtB,CAAC;AAKX,MAAM,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"NumberingLevel.d.ts","sourceRoot":"","sources":["../../src/formatting/NumberingLevel.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NumberingLevel = exports.WORD_NATIVE_BULLETS = void 0;
|
|
4
4
|
const XMLBuilder_1 = require("../xml/XMLBuilder");
|
|
5
5
|
exports.WORD_NATIVE_BULLETS = {
|
|
6
|
-
FILLED_BULLET: { char:
|
|
7
|
-
OPEN_CIRCLE: { char:
|
|
8
|
-
FILLED_SQUARE: { char:
|
|
6
|
+
FILLED_BULLET: { char: '\uF0B7', font: 'Symbol' },
|
|
7
|
+
OPEN_CIRCLE: { char: '\u006F', font: 'Courier New' },
|
|
8
|
+
FILLED_SQUARE: { char: '\uF0A7', font: 'Wingdings' },
|
|
9
9
|
};
|
|
10
10
|
class NumberingLevel {
|
|
11
11
|
properties;
|
|
@@ -14,19 +14,15 @@ class NumberingLevel {
|
|
|
14
14
|
level: properties.level,
|
|
15
15
|
format: properties.format,
|
|
16
16
|
text: properties.text,
|
|
17
|
-
alignment: properties.alignment ||
|
|
17
|
+
alignment: properties.alignment || 'left',
|
|
18
18
|
start: properties.start !== undefined ? properties.start : 1,
|
|
19
|
-
leftIndent: properties.leftIndent !== undefined
|
|
20
|
-
? properties.leftIndent
|
|
21
|
-
: 720 + properties.level * 360,
|
|
19
|
+
leftIndent: properties.leftIndent !== undefined ? properties.leftIndent : 720 + properties.level * 360,
|
|
22
20
|
hangingIndent: properties.hangingIndent !== undefined ? properties.hangingIndent : 360,
|
|
23
|
-
font: properties.font ||
|
|
21
|
+
font: properties.font || 'Calibri',
|
|
24
22
|
fontSize: properties.fontSize || 22,
|
|
25
|
-
isLegalNumberingStyle: properties.isLegalNumberingStyle !== undefined
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
suffix: properties.suffix || "tab",
|
|
29
|
-
color: properties.color || "000000",
|
|
23
|
+
isLegalNumberingStyle: properties.isLegalNumberingStyle !== undefined ? properties.isLegalNumberingStyle : false,
|
|
24
|
+
suffix: properties.suffix || 'tab',
|
|
25
|
+
color: properties.color || '000000',
|
|
30
26
|
bold: properties.bold !== undefined ? properties.bold : false,
|
|
31
27
|
italic: properties.italic !== undefined ? properties.italic : false,
|
|
32
28
|
underline: properties.underline,
|
|
@@ -40,10 +36,10 @@ class NumberingLevel {
|
|
|
40
36
|
throw new Error(`Level must be between 0 and 8, got ${this.properties.level}`);
|
|
41
37
|
}
|
|
42
38
|
if (this.properties.hangingIndent < 0) {
|
|
43
|
-
throw new Error(
|
|
39
|
+
throw new Error('Hanging indent must be non-negative');
|
|
44
40
|
}
|
|
45
41
|
if (this.properties.start < 0) {
|
|
46
|
-
throw new Error(
|
|
42
|
+
throw new Error('Start value must be non-negative');
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
static calculateSafeIndentation(level, pageWidthTwips = 12240, leftMarginTwips = 1440, rightMarginTwips = 1440, minContentWidth = 2880) {
|
|
@@ -75,7 +71,7 @@ class NumberingLevel {
|
|
|
75
71
|
}
|
|
76
72
|
setHangingIndent(twips) {
|
|
77
73
|
if (twips < 0) {
|
|
78
|
-
throw new Error(
|
|
74
|
+
throw new Error('Hanging indent must be non-negative');
|
|
79
75
|
}
|
|
80
76
|
this.properties.hangingIndent = twips;
|
|
81
77
|
return this;
|
|
@@ -145,66 +141,66 @@ class NumberingLevel {
|
|
|
145
141
|
}
|
|
146
142
|
static normalizeFormat(format) {
|
|
147
143
|
const corrections = {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
144
|
+
'a.': 'lowerLetter',
|
|
145
|
+
'A.': 'upperLetter',
|
|
146
|
+
'i.': 'lowerRoman',
|
|
147
|
+
'I.': 'upperRoman',
|
|
148
|
+
'1.': 'decimal',
|
|
153
149
|
};
|
|
154
150
|
return (corrections[format] ?? format);
|
|
155
151
|
}
|
|
156
152
|
toXML() {
|
|
157
153
|
const children = [];
|
|
158
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
159
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
154
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('start', { 'w:val': this.properties.start.toString() }));
|
|
155
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.format }));
|
|
160
156
|
if (this.properties.lvlRestart !== undefined) {
|
|
161
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
157
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('lvlRestart', { 'w:val': this.properties.lvlRestart.toString() }));
|
|
162
158
|
}
|
|
163
159
|
if (this.properties.pStyle) {
|
|
164
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
160
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('pStyle', { 'w:val': this.properties.pStyle }));
|
|
165
161
|
}
|
|
166
162
|
if (this.properties.isLegalNumberingStyle) {
|
|
167
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
163
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('isLgl'));
|
|
168
164
|
}
|
|
169
165
|
if (this.properties.suffix) {
|
|
170
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
166
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('suff', { 'w:val': this.properties.suffix }));
|
|
171
167
|
}
|
|
172
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
173
|
-
children.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
174
|
-
const ind = XMLBuilder_1.XMLBuilder.wSelf(
|
|
175
|
-
|
|
176
|
-
|
|
168
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('lvlText', { 'w:val': this.properties.text }));
|
|
169
|
+
children.push(XMLBuilder_1.XMLBuilder.wSelf('lvlJc', { 'w:val': this.properties.alignment }));
|
|
170
|
+
const ind = XMLBuilder_1.XMLBuilder.wSelf('ind', {
|
|
171
|
+
'w:left': this.properties.leftIndent.toString(),
|
|
172
|
+
'w:hanging': this.properties.hangingIndent.toString(),
|
|
177
173
|
});
|
|
178
|
-
const pPr = XMLBuilder_1.XMLBuilder.w(
|
|
174
|
+
const pPr = XMLBuilder_1.XMLBuilder.w('pPr', undefined, [ind]);
|
|
179
175
|
children.push(pPr);
|
|
180
176
|
const rPrChildren = [];
|
|
181
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
177
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('rFonts', {
|
|
178
|
+
'w:ascii': this.properties.font,
|
|
179
|
+
'w:hAnsi': this.properties.font,
|
|
180
|
+
'w:cs': this.properties.font,
|
|
181
|
+
'w:hint': 'default',
|
|
186
182
|
}));
|
|
187
183
|
if (this.properties.bold) {
|
|
188
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
189
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
184
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('b'));
|
|
185
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('bCs'));
|
|
190
186
|
}
|
|
191
187
|
if (this.properties.italic) {
|
|
192
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
193
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
188
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('i'));
|
|
189
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('iCs'));
|
|
194
190
|
}
|
|
195
191
|
if (this.properties.underline) {
|
|
196
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
192
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('u', { 'w:val': this.properties.underline }));
|
|
197
193
|
}
|
|
198
194
|
if (this.properties.color) {
|
|
199
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
195
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('color', { 'w:val': this.properties.color }));
|
|
200
196
|
}
|
|
201
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
202
|
-
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf(
|
|
203
|
-
const rPr = XMLBuilder_1.XMLBuilder.w(
|
|
197
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('sz', { 'w:val': this.properties.fontSize.toString() }));
|
|
198
|
+
rPrChildren.push(XMLBuilder_1.XMLBuilder.wSelf('szCs', { 'w:val': this.properties.fontSize.toString() }));
|
|
199
|
+
const rPr = XMLBuilder_1.XMLBuilder.w('rPr', undefined, rPrChildren);
|
|
204
200
|
children.push(rPr);
|
|
205
|
-
return XMLBuilder_1.XMLBuilder.w(
|
|
201
|
+
return XMLBuilder_1.XMLBuilder.w('lvl', { 'w:ilvl': this.properties.level.toString() }, children);
|
|
206
202
|
}
|
|
207
|
-
static getBulletSymbolWithFont(level, style =
|
|
203
|
+
static getBulletSymbolWithFont(level, style = 'standard') {
|
|
208
204
|
const bulletSets = {
|
|
209
205
|
standard: [
|
|
210
206
|
{
|
|
@@ -245,50 +241,50 @@ class NumberingLevel {
|
|
|
245
241
|
},
|
|
246
242
|
],
|
|
247
243
|
circle: [
|
|
248
|
-
{ symbol:
|
|
249
|
-
{ symbol:
|
|
250
|
-
{ symbol:
|
|
251
|
-
{ symbol:
|
|
252
|
-
{ symbol:
|
|
253
|
-
{ symbol:
|
|
254
|
-
{ symbol:
|
|
255
|
-
{ symbol:
|
|
256
|
-
{ symbol:
|
|
244
|
+
{ symbol: '●', font: 'Calibri' },
|
|
245
|
+
{ symbol: '○', font: 'Calibri' },
|
|
246
|
+
{ symbol: '◉', font: 'Calibri' },
|
|
247
|
+
{ symbol: '◯', font: 'Calibri' },
|
|
248
|
+
{ symbol: '⦿', font: 'Calibri' },
|
|
249
|
+
{ symbol: '○', font: 'Calibri' },
|
|
250
|
+
{ symbol: '●', font: 'Calibri' },
|
|
251
|
+
{ symbol: '○', font: 'Calibri' },
|
|
252
|
+
{ symbol: '◉', font: 'Calibri' },
|
|
257
253
|
],
|
|
258
254
|
square: [
|
|
259
|
-
{ symbol:
|
|
260
|
-
{ symbol:
|
|
261
|
-
{ symbol:
|
|
262
|
-
{ symbol:
|
|
263
|
-
{ symbol:
|
|
264
|
-
{ symbol:
|
|
265
|
-
{ symbol:
|
|
266
|
-
{ symbol:
|
|
267
|
-
{ symbol:
|
|
255
|
+
{ symbol: '■', font: 'Calibri' },
|
|
256
|
+
{ symbol: '□', font: 'Calibri' },
|
|
257
|
+
{ symbol: '▪', font: 'Calibri' },
|
|
258
|
+
{ symbol: '▫', font: 'Calibri' },
|
|
259
|
+
{ symbol: '◼', font: 'Calibri' },
|
|
260
|
+
{ symbol: '◻', font: 'Calibri' },
|
|
261
|
+
{ symbol: '■', font: 'Calibri' },
|
|
262
|
+
{ symbol: '□', font: 'Calibri' },
|
|
263
|
+
{ symbol: '▪', font: 'Calibri' },
|
|
268
264
|
],
|
|
269
265
|
arrow: [
|
|
270
|
-
{ symbol:
|
|
271
|
-
{ symbol:
|
|
272
|
-
{ symbol:
|
|
273
|
-
{ symbol:
|
|
274
|
-
{ symbol:
|
|
275
|
-
{ symbol:
|
|
276
|
-
{ symbol:
|
|
277
|
-
{ symbol:
|
|
278
|
-
{ symbol:
|
|
266
|
+
{ symbol: '➢', font: 'Calibri' },
|
|
267
|
+
{ symbol: '➣', font: 'Calibri' },
|
|
268
|
+
{ symbol: '➤', font: 'Calibri' },
|
|
269
|
+
{ symbol: '➔', font: 'Calibri' },
|
|
270
|
+
{ symbol: '➜', font: 'Calibri' },
|
|
271
|
+
{ symbol: '➢', font: 'Calibri' },
|
|
272
|
+
{ symbol: '➣', font: 'Calibri' },
|
|
273
|
+
{ symbol: '➤', font: 'Calibri' },
|
|
274
|
+
{ symbol: '➔', font: 'Calibri' },
|
|
279
275
|
],
|
|
280
276
|
check: [
|
|
281
|
-
{ symbol:
|
|
282
|
-
{ symbol:
|
|
283
|
-
{ symbol:
|
|
284
|
-
{ symbol:
|
|
285
|
-
{ symbol:
|
|
286
|
-
{ symbol:
|
|
287
|
-
{ symbol:
|
|
288
|
-
{ symbol:
|
|
289
|
-
{ symbol:
|
|
277
|
+
{ symbol: '✓', font: 'Calibri' },
|
|
278
|
+
{ symbol: '✔', font: 'Calibri' },
|
|
279
|
+
{ symbol: '☑', font: 'Calibri' },
|
|
280
|
+
{ symbol: '✓', font: 'Calibri' },
|
|
281
|
+
{ symbol: '✔', font: 'Calibri' },
|
|
282
|
+
{ symbol: '☑', font: 'Calibri' },
|
|
283
|
+
{ symbol: '✓', font: 'Calibri' },
|
|
284
|
+
{ symbol: '✔', font: 'Calibri' },
|
|
285
|
+
{ symbol: '☑', font: 'Calibri' },
|
|
290
286
|
],
|
|
291
|
-
|
|
287
|
+
'word-native': [
|
|
292
288
|
{
|
|
293
289
|
symbol: exports.WORD_NATIVE_BULLETS.FILLED_BULLET.char,
|
|
294
290
|
font: exports.WORD_NATIVE_BULLETS.FILLED_BULLET.font,
|
|
@@ -330,7 +326,7 @@ class NumberingLevel {
|
|
|
330
326
|
const selectedSet = bulletSets[style];
|
|
331
327
|
const levelIndex = level % selectedSet.length;
|
|
332
328
|
const result = selectedSet[levelIndex];
|
|
333
|
-
return result || { symbol:
|
|
329
|
+
return result || { symbol: '•', font: 'Calibri' };
|
|
334
330
|
}
|
|
335
331
|
static calculateStandardIndentation(level) {
|
|
336
332
|
if (level < 0 || level > 8) {
|
|
@@ -346,28 +342,28 @@ class NumberingLevel {
|
|
|
346
342
|
throw new Error(`Invalid level ${level}. Level must be between 0 and 8.`);
|
|
347
343
|
}
|
|
348
344
|
const formats = [
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
345
|
+
'decimal',
|
|
346
|
+
'lowerLetter',
|
|
347
|
+
'lowerRoman',
|
|
348
|
+
'upperLetter',
|
|
349
|
+
'upperRoman',
|
|
354
350
|
];
|
|
355
351
|
const result = formats[level % formats.length];
|
|
356
|
-
return result ||
|
|
352
|
+
return result || 'decimal';
|
|
357
353
|
}
|
|
358
354
|
static createBulletLevel(level, bullet, font) {
|
|
359
|
-
const defaults = NumberingLevel.getBulletSymbolWithFont(level,
|
|
355
|
+
const defaults = NumberingLevel.getBulletSymbolWithFont(level, 'standard');
|
|
360
356
|
const actualBullet = bullet ?? defaults.symbol;
|
|
361
357
|
const actualFont = font ?? defaults.font;
|
|
362
358
|
return new NumberingLevel({
|
|
363
359
|
level,
|
|
364
|
-
format:
|
|
360
|
+
format: 'bullet',
|
|
365
361
|
text: actualBullet,
|
|
366
|
-
alignment:
|
|
362
|
+
alignment: 'left',
|
|
367
363
|
font: actualFont,
|
|
368
364
|
fontSize: 24,
|
|
369
365
|
bold: false,
|
|
370
|
-
color:
|
|
366
|
+
color: '000000',
|
|
371
367
|
leftIndent: 720 + level * 360,
|
|
372
368
|
hangingIndent: 360,
|
|
373
369
|
});
|
|
@@ -375,13 +371,13 @@ class NumberingLevel {
|
|
|
375
371
|
static createDecimalLevel(level, template = `%${level + 1}.`) {
|
|
376
372
|
return new NumberingLevel({
|
|
377
373
|
level,
|
|
378
|
-
format:
|
|
374
|
+
format: 'decimal',
|
|
379
375
|
text: template,
|
|
380
|
-
alignment:
|
|
381
|
-
font:
|
|
376
|
+
alignment: 'left',
|
|
377
|
+
font: 'Verdana',
|
|
382
378
|
fontSize: 24,
|
|
383
379
|
bold: false,
|
|
384
|
-
color:
|
|
380
|
+
color: '000000',
|
|
385
381
|
leftIndent: 720 + level * 360,
|
|
386
382
|
hangingIndent: 360,
|
|
387
383
|
});
|
|
@@ -389,13 +385,13 @@ class NumberingLevel {
|
|
|
389
385
|
static createLowerRomanLevel(level, template = `%${level + 1}.`) {
|
|
390
386
|
return new NumberingLevel({
|
|
391
387
|
level,
|
|
392
|
-
format:
|
|
388
|
+
format: 'lowerRoman',
|
|
393
389
|
text: template,
|
|
394
|
-
alignment:
|
|
395
|
-
font:
|
|
390
|
+
alignment: 'left',
|
|
391
|
+
font: 'Verdana',
|
|
396
392
|
fontSize: 24,
|
|
397
393
|
bold: false,
|
|
398
|
-
color:
|
|
394
|
+
color: '000000',
|
|
399
395
|
leftIndent: 720 + level * 360,
|
|
400
396
|
hangingIndent: 360,
|
|
401
397
|
});
|
|
@@ -403,13 +399,13 @@ class NumberingLevel {
|
|
|
403
399
|
static createUpperRomanLevel(level, template = `%${level + 1}.`) {
|
|
404
400
|
return new NumberingLevel({
|
|
405
401
|
level,
|
|
406
|
-
format:
|
|
402
|
+
format: 'upperRoman',
|
|
407
403
|
text: template,
|
|
408
|
-
alignment:
|
|
409
|
-
font:
|
|
404
|
+
alignment: 'left',
|
|
405
|
+
font: 'Verdana',
|
|
410
406
|
fontSize: 24,
|
|
411
407
|
bold: false,
|
|
412
|
-
color:
|
|
408
|
+
color: '000000',
|
|
413
409
|
leftIndent: 720 + level * 360,
|
|
414
410
|
hangingIndent: 360,
|
|
415
411
|
});
|
|
@@ -417,13 +413,13 @@ class NumberingLevel {
|
|
|
417
413
|
static createLowerLetterLevel(level, template = `%${level + 1}.`) {
|
|
418
414
|
return new NumberingLevel({
|
|
419
415
|
level,
|
|
420
|
-
format:
|
|
416
|
+
format: 'lowerLetter',
|
|
421
417
|
text: template,
|
|
422
|
-
alignment:
|
|
423
|
-
font:
|
|
418
|
+
alignment: 'left',
|
|
419
|
+
font: 'Verdana',
|
|
424
420
|
fontSize: 24,
|
|
425
421
|
bold: false,
|
|
426
|
-
color:
|
|
422
|
+
color: '000000',
|
|
427
423
|
leftIndent: 720 + level * 360,
|
|
428
424
|
hangingIndent: 360,
|
|
429
425
|
});
|
|
@@ -431,13 +427,13 @@ class NumberingLevel {
|
|
|
431
427
|
static createUpperLetterLevel(level, template = `%${level + 1}.`) {
|
|
432
428
|
return new NumberingLevel({
|
|
433
429
|
level,
|
|
434
|
-
format:
|
|
430
|
+
format: 'upperLetter',
|
|
435
431
|
text: template,
|
|
436
|
-
alignment:
|
|
437
|
-
font:
|
|
432
|
+
alignment: 'left',
|
|
433
|
+
font: 'Verdana',
|
|
438
434
|
fontSize: 24,
|
|
439
435
|
bold: false,
|
|
440
|
-
color:
|
|
436
|
+
color: '000000',
|
|
441
437
|
leftIndent: 720 + level * 360,
|
|
442
438
|
hangingIndent: 360,
|
|
443
439
|
});
|
|
@@ -448,24 +444,22 @@ class NumberingLevel {
|
|
|
448
444
|
static fromXML(xml) {
|
|
449
445
|
const ilvlMatch = /<w:lvl[^>]*w:ilvl="([^"]+)"/.exec(xml);
|
|
450
446
|
if (!ilvlMatch?.[1]) {
|
|
451
|
-
throw new Error(
|
|
447
|
+
throw new Error('Missing required w:ilvl attribute');
|
|
452
448
|
}
|
|
453
449
|
const level = parseInt(ilvlMatch[1], 10);
|
|
454
450
|
const numFmtMatch = /<w:numFmt[^>]*w:val="([^"]+)"/.exec(xml);
|
|
455
451
|
if (!numFmtMatch?.[1]) {
|
|
456
|
-
throw new Error(
|
|
452
|
+
throw new Error('Missing required w:numFmt element');
|
|
457
453
|
}
|
|
458
454
|
const format = NumberingLevel.normalizeFormat(numFmtMatch[1]);
|
|
459
455
|
const lvlTextMatch = /<w:lvlText[^>]*w:val="([^"]*)"/.exec(xml);
|
|
460
|
-
const text = lvlTextMatch?.[1] !== undefined ? lvlTextMatch[1] :
|
|
456
|
+
const text = lvlTextMatch?.[1] !== undefined ? lvlTextMatch[1] : '';
|
|
461
457
|
const lvlJcMatch = /<w:lvlJc[^>]*w:val="([^"]+)"/.exec(xml);
|
|
462
|
-
const alignment = (lvlJcMatch?.[1] ? lvlJcMatch[1] :
|
|
458
|
+
const alignment = (lvlJcMatch?.[1] ? lvlJcMatch[1] : 'left');
|
|
463
459
|
const startMatch = /<w:start[^>]*w:val="([^"]+)"/.exec(xml);
|
|
464
460
|
const start = startMatch?.[1] ? parseInt(startMatch[1], 10) : 1;
|
|
465
461
|
const suffixMatch = /<w:suff[^>]*w:val="([^"]+)"/.exec(xml);
|
|
466
|
-
const suffix = suffixMatch?.[1]
|
|
467
|
-
? suffixMatch[1]
|
|
468
|
-
: "tab";
|
|
462
|
+
const suffix = suffixMatch?.[1] ? suffixMatch[1] : 'tab';
|
|
469
463
|
let lvlRestart;
|
|
470
464
|
const lvlRestartMatch = /<w:lvlRestart[^>]*w:val="([^"]+)"/.exec(xml);
|
|
471
465
|
if (lvlRestartMatch?.[1]) {
|
|
@@ -488,7 +482,7 @@ class NumberingLevel {
|
|
|
488
482
|
if (hangingMatch?.[1])
|
|
489
483
|
hangingIndent = parseInt(hangingMatch[1], 10);
|
|
490
484
|
}
|
|
491
|
-
let font =
|
|
485
|
+
let font = 'Calibri';
|
|
492
486
|
let fontSize = 22;
|
|
493
487
|
const rFontsMatch = /<w:rFonts[^>]*\/>/.exec(xml);
|
|
494
488
|
if (rFontsMatch) {
|