postext 1.27.1 → 1.28.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.
- package/dist/__tests__/bundle/balloonPlacementPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/balloonPlacementPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/balloonPlacementPin.test.js +71 -0
- package/dist/__tests__/bundle/balloonPlacementPin.test.js.map +1 -0
- package/dist/__tests__/bundle/cjkRulesPin.test.js +131 -7
- package/dist/__tests__/bundle/cjkRulesPin.test.js.map +1 -1
- package/dist/__tests__/bundle/designOverflowPin.test.js +3 -3
- package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -1
- package/dist/__tests__/bundle/flowColumnsPin.test.js +3 -1
- package/dist/__tests__/bundle/flowColumnsPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBalancingPin.test.js +14 -5
- package/dist/__tests__/bundle/gridBalancingPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBreakRulesPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/gridBreakRulesPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js +144 -0
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js.map +1 -0
- package/dist/__tests__/bundle/indexGroupSplitPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/indexGroupSplitPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js +55 -0
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js.map +1 -0
- package/dist/__tests__/bundle/inlineCaptionSidePin.test.d.ts +2 -0
- package/dist/__tests__/bundle/inlineCaptionSidePin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/inlineCaptionSidePin.test.js +60 -0
- package/dist/__tests__/bundle/inlineCaptionSidePin.test.js.map +1 -0
- package/dist/__tests__/bundle/inlineTableSplitPin.test.js +3 -1
- package/dist/__tests__/bundle/inlineTableSplitPin.test.js.map +1 -1
- package/dist/__tests__/bundle/looseOrderPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/looseOrderPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/looseOrderPin.test.js +76 -0
- package/dist/__tests__/bundle/looseOrderPin.test.js.map +1 -0
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.js +2 -1
- package/dist/__tests__/bundle/openerHeadFloatsPin.test.js.map +1 -1
- package/dist/__tests__/bundle/refLabelBreaksPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/refLabelBreaksPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js +72 -0
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js.map +1 -0
- package/dist/__tests__/bundle/scriptContextPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/scriptContextPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/scriptContextPin.test.js +66 -0
- package/dist/__tests__/bundle/scriptContextPin.test.js.map +1 -0
- package/dist/__tests__/bundle/trailingStepPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/trailingStepPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/trailingStepPin.test.js +59 -0
- package/dist/__tests__/bundle/trailingStepPin.test.js.map +1 -0
- package/dist/__tests__/bundle/wideFloatStretchPin.test.d.ts +2 -0
- package/dist/__tests__/bundle/wideFloatStretchPin.test.d.ts.map +1 -0
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js +59 -0
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js.map +1 -0
- package/dist/__tests__/bundle.test.js +8 -6
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/cjk/annotations.test.js +223 -0
- package/dist/__tests__/cjk/annotations.test.js.map +1 -1
- package/dist/__tests__/cjk/annotationsRender.test.js +3 -3
- package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -1
- package/dist/__tests__/cjk/chipLatinSpacing.test.js +13 -2
- package/dist/__tests__/cjk/chipLatinSpacing.test.js.map +1 -1
- package/dist/__tests__/cjk/designNumberSeams.test.d.ts +2 -0
- package/dist/__tests__/cjk/designNumberSeams.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/designNumberSeams.test.js +221 -0
- package/dist/__tests__/cjk/designNumberSeams.test.js.map +1 -0
- package/dist/__tests__/cjk/grid.test.js +1 -1
- package/dist/__tests__/cjk/grid.test.js.map +1 -1
- package/dist/__tests__/cjk/gridBalancing.test.js +3 -1
- package/dist/__tests__/cjk/gridBalancing.test.js.map +1 -1
- package/dist/__tests__/cjk/japaneseSpacing.test.js +3 -1
- package/dist/__tests__/cjk/japaneseSpacing.test.js.map +1 -1
- package/dist/__tests__/cjk/keepAll.test.js +3 -1
- package/dist/__tests__/cjk/keepAll.test.js.map +1 -1
- package/dist/__tests__/cjk/keepAllLatinQuotation.test.d.ts +2 -0
- package/dist/__tests__/cjk/keepAllLatinQuotation.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/keepAllLatinQuotation.test.js +166 -0
- package/dist/__tests__/cjk/keepAllLatinQuotation.test.js.map +1 -0
- package/dist/__tests__/cjk/latinSpacingEdge.test.d.ts +2 -0
- package/dist/__tests__/cjk/latinSpacingEdge.test.d.ts.map +1 -0
- package/dist/__tests__/cjk/latinSpacingEdge.test.js +179 -0
- package/dist/__tests__/cjk/latinSpacingEdge.test.js.map +1 -0
- package/dist/__tests__/cjk/runt.test.js +92 -1
- package/dist/__tests__/cjk/runt.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +1 -1
- package/dist/__tests__/columnBalancing.test.js +216 -0
- package/dist/__tests__/columnBalancing.test.js.map +1 -1
- package/dist/__tests__/columnRuleBands.test.js +78 -0
- package/dist/__tests__/columnRuleBands.test.js.map +1 -1
- package/dist/__tests__/comics/readingDirection.test.js +52 -0
- package/dist/__tests__/comics/readingDirection.test.js.map +1 -1
- package/dist/__tests__/comics/script.test.js +5 -0
- package/dist/__tests__/comics/script.test.js.map +1 -1
- package/dist/__tests__/contrast.test.d.ts +2 -0
- package/dist/__tests__/contrast.test.d.ts.map +1 -0
- package/dist/__tests__/contrast.test.js +258 -0
- package/dist/__tests__/contrast.test.js.map +1 -0
- package/dist/__tests__/defaults/cjk.test.js +4 -4
- package/dist/__tests__/defaults/cjk.test.js.map +1 -1
- package/dist/__tests__/defaults/gridBreakRules.test.d.ts +2 -0
- package/dist/__tests__/defaults/gridBreakRules.test.d.ts.map +1 -0
- package/dist/__tests__/defaults/gridBreakRules.test.js +152 -0
- package/dist/__tests__/defaults/gridBreakRules.test.js.map +1 -0
- package/dist/__tests__/defaults/headingsBalancing.test.js +25 -0
- package/dist/__tests__/defaults/headingsBalancing.test.js.map +1 -1
- package/dist/__tests__/defaults/stripContextDefaults.test.js +41 -0
- package/dist/__tests__/defaults/stripContextDefaults.test.js.map +1 -1
- package/dist/__tests__/defaults/stripRoundTrip.test.js +8 -5
- package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +30 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/fontUsage.test.d.ts +2 -0
- package/dist/__tests__/fontUsage.test.d.ts.map +1 -0
- package/dist/__tests__/fontUsage.test.js +113 -0
- package/dist/__tests__/fontUsage.test.js.map +1 -0
- package/dist/__tests__/hardBreaks.test.js +1 -1
- package/dist/__tests__/headingInlineMarks.test.js +7 -5
- package/dist/__tests__/headingInlineMarks.test.js.map +1 -1
- package/dist/__tests__/hyphenationRules.test.d.ts +2 -0
- package/dist/__tests__/hyphenationRules.test.d.ts.map +1 -0
- package/dist/__tests__/hyphenationRules.test.js +295 -0
- package/dist/__tests__/hyphenationRules.test.js.map +1 -0
- package/dist/__tests__/indexGroupSplit.test.d.ts +2 -0
- package/dist/__tests__/indexGroupSplit.test.d.ts.map +1 -0
- package/dist/__tests__/indexGroupSplit.test.js +175 -0
- package/dist/__tests__/indexGroupSplit.test.js.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.js +7 -5
- package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
- package/dist/__tests__/multipleColumns.test.js +19 -0
- package/dist/__tests__/multipleColumns.test.js.map +1 -1
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +3 -3
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
- package/dist/__tests__/pipeline/closingBandUnderOpener.test.d.ts +2 -0
- package/dist/__tests__/pipeline/closingBandUnderOpener.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/closingBandUnderOpener.test.js +90 -0
- package/dist/__tests__/pipeline/closingBandUnderOpener.test.js.map +1 -0
- package/dist/__tests__/pipeline/colonListRoom.test.js +5 -4
- package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
- package/dist/__tests__/pipeline/columnHeadSpace.test.d.ts +2 -0
- package/dist/__tests__/pipeline/columnHeadSpace.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/columnHeadSpace.test.js +175 -0
- package/dist/__tests__/pipeline/columnHeadSpace.test.js.map +1 -0
- package/dist/__tests__/pipeline/compoundBreaks.test.js +6 -6
- package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js +5 -5
- package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
- package/dist/__tests__/pipeline/flowColumns.test.js +100 -0
- package/dist/__tests__/pipeline/flowColumns.test.js.map +1 -1
- package/dist/__tests__/pipeline/headingShortBand.test.js +2 -1
- package/dist/__tests__/pipeline/headingShortBand.test.js.map +1 -1
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +6 -5
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.js +188 -1
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.js.map +1 -1
- package/dist/__tests__/pipeline/inlineCaptionSide.test.d.ts +2 -0
- package/dist/__tests__/pipeline/inlineCaptionSide.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/inlineCaptionSide.test.js +270 -0
- package/dist/__tests__/pipeline/inlineCaptionSide.test.js.map +1 -0
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +5 -5
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
- package/dist/__tests__/pipeline/inlineRefRender.test.js +8 -6
- package/dist/__tests__/pipeline/inlineRefRender.test.js.map +1 -1
- package/dist/__tests__/pipeline/looseBeforeHeadingLines.test.d.ts +2 -0
- package/dist/__tests__/pipeline/looseBeforeHeadingLines.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/looseBeforeHeadingLines.test.js +73 -0
- package/dist/__tests__/pipeline/looseBeforeHeadingLines.test.js.map +1 -0
- package/dist/__tests__/pipeline/openerFloats.test.d.ts +2 -0
- package/dist/__tests__/pipeline/openerFloats.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/openerFloats.test.js +137 -0
- package/dist/__tests__/pipeline/openerFloats.test.js.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberWidthItem.test.d.ts +2 -0
- package/dist/__tests__/pipeline/orderedNumberWidthItem.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberWidthItem.test.js +162 -0
- package/dist/__tests__/pipeline/orderedNumberWidthItem.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +68 -8
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedLineAndRuntFix.test.d.ts +2 -0
- package/dist/__tests__/pipeline/raggedLineAndRuntFix.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/raggedLineAndRuntFix.test.js +151 -0
- package/dist/__tests__/pipeline/raggedLineAndRuntFix.test.js.map +1 -0
- package/dist/__tests__/pipeline/raggedOptimal.test.js +6 -6
- package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
- package/dist/__tests__/pipeline/refLabelBreaks.test.d.ts +2 -0
- package/dist/__tests__/pipeline/refLabelBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/refLabelBreaks.test.js +324 -0
- package/dist/__tests__/pipeline/refLabelBreaks.test.js.map +1 -0
- package/dist/__tests__/pipeline/resourceTemplateStyles.test.d.ts +2 -0
- package/dist/__tests__/pipeline/resourceTemplateStyles.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/resourceTemplateStyles.test.js +145 -0
- package/dist/__tests__/pipeline/resourceTemplateStyles.test.js.map +1 -0
- package/dist/__tests__/pipeline/shortListSplit.test.d.ts +2 -0
- package/dist/__tests__/pipeline/shortListSplit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/shortListSplit.test.js +181 -0
- package/dist/__tests__/pipeline/shortListSplit.test.js.map +1 -0
- package/dist/__tests__/pipeline/snapTailAtColumnFoot.test.d.ts +2 -0
- package/dist/__tests__/pipeline/snapTailAtColumnFoot.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/snapTailAtColumnFoot.test.js +133 -0
- package/dist/__tests__/pipeline/snapTailAtColumnFoot.test.js.map +1 -0
- package/dist/__tests__/pipeline/stretchAfterDisplays.test.d.ts +2 -0
- package/dist/__tests__/pipeline/stretchAfterDisplays.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/stretchAfterDisplays.test.js +51 -0
- package/dist/__tests__/pipeline/stretchAfterDisplays.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.js +26 -0
- package/dist/__tests__/pipeline/trailingCapFloatHead.test.js.map +1 -1
- package/dist/__tests__/pipeline/trailingStep.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingStep.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingStep.test.js +187 -0
- package/dist/__tests__/pipeline/trailingStep.test.js.map +1 -0
- package/dist/__tests__/pipeline/wideFloatStretch.test.d.ts +2 -0
- package/dist/__tests__/pipeline/wideFloatStretch.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/wideFloatStretch.test.js +84 -0
- package/dist/__tests__/pipeline/wideFloatStretch.test.js.map +1 -0
- package/dist/__tests__/scriptContext.test.d.ts +2 -0
- package/dist/__tests__/scriptContext.test.d.ts.map +1 -0
- package/dist/__tests__/scriptContext.test.js +919 -0
- package/dist/__tests__/scriptContext.test.js.map +1 -0
- package/dist/__tests__/softHyphenEdges.test.d.ts +2 -0
- package/dist/__tests__/softHyphenEdges.test.d.ts.map +1 -0
- package/dist/__tests__/softHyphenEdges.test.js +217 -0
- package/dist/__tests__/softHyphenEdges.test.js.map +1 -0
- package/dist/__tests__/spaceLimitRatio.test.d.ts +2 -0
- package/dist/__tests__/spaceLimitRatio.test.d.ts.map +1 -0
- package/dist/__tests__/spaceLimitRatio.test.js +226 -0
- package/dist/__tests__/spaceLimitRatio.test.js.map +1 -0
- package/dist/__tests__/trackedLigatures.test.js +365 -24
- package/dist/__tests__/trackedLigatures.test.js.map +1 -1
- package/dist/__tests__/verseLines.test.js +9 -7
- package/dist/__tests__/verseLines.test.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +201 -6
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +440 -6
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/bundle/index.d.ts +8 -0
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +8 -0
- package/dist/bundle/index.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +3 -2
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/chip.js +1 -1
- package/dist/canvas-backend/chip.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +17 -2
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/runDirection.d.ts +10 -6
- package/dist/canvas-backend/runDirection.d.ts.map +1 -1
- package/dist/canvas-backend/runDirection.js +12 -7
- package/dist/canvas-backend/runDirection.js.map +1 -1
- package/dist/canvas-backend/scriptText.d.ts +11 -0
- package/dist/canvas-backend/scriptText.d.ts.map +1 -0
- package/dist/canvas-backend/scriptText.js +75 -0
- package/dist/canvas-backend/scriptText.js.map +1 -0
- package/dist/canvas-backend/segmentText.d.ts.map +1 -1
- package/dist/canvas-backend/segmentText.js +9 -1
- package/dist/canvas-backend/segmentText.js.map +1 -1
- package/dist/canvas-backend/trackedText.d.ts +35 -20
- package/dist/canvas-backend/trackedText.d.ts.map +1 -1
- package/dist/canvas-backend/trackedText.js +58 -22
- package/dist/canvas-backend/trackedText.js.map +1 -1
- package/dist/canvas-backend/verticalText.d.ts.map +1 -1
- package/dist/canvas-backend/verticalText.js +10 -2
- package/dist/canvas-backend/verticalText.js.map +1 -1
- package/dist/canvas-backend/wordRuns.d.ts +14 -5
- package/dist/canvas-backend/wordRuns.d.ts.map +1 -1
- package/dist/canvas-backend/wordRuns.js +20 -7
- package/dist/canvas-backend/wordRuns.js.map +1 -1
- package/dist/citations/names.d.ts +8 -0
- package/dist/citations/names.d.ts.map +1 -0
- package/dist/citations/names.js +25 -0
- package/dist/citations/names.js.map +1 -0
- package/dist/columnClip.d.ts +8 -1
- package/dist/columnClip.d.ts.map +1 -1
- package/dist/columnClip.js +32 -3
- package/dist/columnClip.js.map +1 -1
- package/dist/columnRule.d.ts +6 -3
- package/dist/columnRule.d.ts.map +1 -1
- package/dist/columnRule.js +6 -3
- package/dist/columnRule.js.map +1 -1
- package/dist/comics/layoutPage.d.ts.map +1 -1
- package/dist/comics/layoutPage.js +51 -22
- package/dist/comics/layoutPage.js.map +1 -1
- package/dist/comics/lettering/__tests__/bystanderFaces.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/bystanderFaces.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/bystanderFaces.test.js +204 -0
- package/dist/comics/lettering/__tests__/bystanderFaces.test.js.map +1 -0
- package/dist/comics/lettering/__tests__/shapeTextDash.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/shapeTextDash.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/shapeTextDash.test.js +173 -0
- package/dist/comics/lettering/__tests__/shapeTextDash.test.js.map +1 -0
- package/dist/comics/lettering/__tests__/strictPlacement.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/strictPlacement.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/strictPlacement.test.js +130 -0
- package/dist/comics/lettering/__tests__/strictPlacement.test.js.map +1 -0
- package/dist/comics/lettering/letter.js +21 -8
- package/dist/comics/lettering/letter.js.map +1 -1
- package/dist/comics/lettering/placement.d.ts.map +1 -1
- package/dist/comics/lettering/placement.js +12 -3
- package/dist/comics/lettering/placement.js.map +1 -1
- package/dist/comics/lettering/shape-text.d.ts +3 -0
- package/dist/comics/lettering/shape-text.d.ts.map +1 -1
- package/dist/comics/lettering/shape-text.js +71 -12
- package/dist/comics/lettering/shape-text.js.map +1 -1
- package/dist/comics/lettering/text.d.ts +5 -0
- package/dist/comics/lettering/text.d.ts.map +1 -1
- package/dist/comics/lettering/text.js +6 -1
- package/dist/comics/lettering/text.js.map +1 -1
- package/dist/comics/lettering/types.d.ts +12 -2
- package/dist/comics/lettering/types.d.ts.map +1 -1
- package/dist/comics/script.js +1 -1
- package/dist/comics/script.js.map +1 -1
- package/dist/comics/types.d.ts +7 -3
- package/dist/comics/types.d.ts.map +1 -1
- package/dist/configWarnings.d.ts.map +1 -1
- package/dist/configWarnings.js +33 -6
- package/dist/configWarnings.js.map +1 -1
- package/dist/contrast.d.ts +188 -0
- package/dist/contrast.d.ts.map +1 -0
- package/dist/contrast.js +583 -0
- package/dist/contrast.js.map +1 -0
- package/dist/defaults/bodyText.d.ts +31 -3
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +76 -8
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/defaults/citations.d.ts.map +1 -1
- package/dist/defaults/citations.js +4 -0
- package/dist/defaults/citations.js.map +1 -1
- package/dist/defaults/cjk.d.ts +11 -1
- package/dist/defaults/cjk.d.ts.map +1 -1
- package/dist/defaults/cjk.js +41 -3
- package/dist/defaults/cjk.js.map +1 -1
- package/dist/defaults/comics.d.ts.map +1 -1
- package/dist/defaults/comics.js +2 -0
- package/dist/defaults/comics.js.map +1 -1
- package/dist/defaults/contrast.d.ts +11 -0
- package/dist/defaults/contrast.d.ts.map +1 -0
- package/dist/defaults/contrast.js +65 -0
- package/dist/defaults/contrast.js.map +1 -0
- package/dist/defaults/crossRefs.d.ts +1 -1
- package/dist/defaults/crossRefs.d.ts.map +1 -1
- package/dist/defaults/crossRefs.js +6 -1
- package/dist/defaults/crossRefs.js.map +1 -1
- package/dist/defaults/footnotes.d.ts.map +1 -1
- package/dist/defaults/footnotes.js +5 -0
- package/dist/defaults/footnotes.js.map +1 -1
- package/dist/defaults/headings.d.ts +5 -1
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +41 -1
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +3 -2
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +15 -4
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/indexConfig.d.ts +1 -0
- package/dist/defaults/indexConfig.d.ts.map +1 -1
- package/dist/defaults/indexConfig.js +7 -1
- package/dist/defaults/indexConfig.js.map +1 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +13 -1
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/orderedLists.js +1 -1
- package/dist/defaults/orderedLists.js.map +1 -1
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +5 -0
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/defaults/shared.d.ts +4 -1
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +5 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/design/cjkText.d.ts +7 -2
- package/dist/design/cjkText.d.ts.map +1 -1
- package/dist/design/cjkText.js +8 -2
- package/dist/design/cjkText.js.map +1 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +85 -12
- package/dist/design/layout.js.map +1 -1
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js +7 -3
- package/dist/design/richText.js.map +1 -1
- package/dist/fonts/usage.d.ts.map +1 -1
- package/dist/fonts/usage.js +89 -0
- package/dist/fonts/usage.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +97 -27
- package/dist/html-backend.js.map +1 -1
- package/dist/hyphenate.d.ts +58 -1
- package/dist/hyphenate.d.ts.map +1 -1
- package/dist/hyphenate.js +228 -19
- package/dist/hyphenate.js.map +1 -1
- package/dist/hyphenationExceptions.d.ts +10 -0
- package/dist/hyphenationExceptions.d.ts.map +1 -0
- package/dist/hyphenationExceptions.js +29 -0
- package/dist/hyphenationExceptions.js.map +1 -0
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/pretextAdapter.js +4 -17
- package/dist/knuthPlass/pretextAdapter.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +9 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +15 -18
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/looseLines.d.ts +15 -4
- package/dist/looseLines.d.ts.map +1 -1
- package/dist/looseLines.js +17 -4
- package/dist/looseLines.js.map +1 -1
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +14 -4
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/canvas.d.ts +18 -0
- package/dist/measure/canvas.d.ts.map +1 -1
- package/dist/measure/canvas.js +104 -0
- package/dist/measure/canvas.js.map +1 -1
- package/dist/measure/cjkAnnotate.d.ts +11 -6
- package/dist/measure/cjkAnnotate.d.ts.map +1 -1
- package/dist/measure/cjkAnnotate.js +27 -11
- package/dist/measure/cjkAnnotate.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts +6 -2
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +146 -30
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/cjkPunctuation.d.ts +17 -0
- package/dist/measure/cjkPunctuation.d.ts.map +1 -1
- package/dist/measure/cjkPunctuation.js +15 -1
- package/dist/measure/cjkPunctuation.js.map +1 -1
- package/dist/measure/font.d.ts +2 -1
- package/dist/measure/font.d.ts.map +1 -1
- package/dist/measure/font.js +4 -2
- package/dist/measure/font.js.map +1 -1
- package/dist/measure/hardBreaks.d.ts.map +1 -1
- package/dist/measure/hardBreaks.js +6 -2
- package/dist/measure/hardBreaks.js.map +1 -1
- package/dist/measure/kashida.d.ts.map +1 -1
- package/dist/measure/kashida.js +8 -11
- package/dist/measure/kashida.js.map +1 -1
- package/dist/measure/plain.d.ts +3 -0
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +70 -5
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +32 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +227 -35
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/script.d.ts +180 -0
- package/dist/measure/script.d.ts.map +1 -0
- package/dist/measure/script.js +329 -0
- package/dist/measure/script.js.map +1 -0
- package/dist/measure/spaceRatios.d.ts +28 -0
- package/dist/measure/spaceRatios.d.ts.map +1 -0
- package/dist/measure/spaceRatios.js +48 -0
- package/dist/measure/spaceRatios.js.map +1 -0
- package/dist/measure/spaces.d.ts +10 -0
- package/dist/measure/spaces.d.ts.map +1 -1
- package/dist/measure/spaces.js +36 -0
- package/dist/measure/spaces.js.map +1 -1
- package/dist/measure/types.d.ts +9 -0
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js.map +1 -1
- package/dist/numbering.d.ts +5 -0
- package/dist/numbering.d.ts.map +1 -1
- package/dist/numbering.js +5 -1
- package/dist/numbering.js.map +1 -1
- package/dist/parse/types.d.ts +13 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.d.ts +35 -1
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +95 -3
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +754 -49
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +5 -1
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +9 -0
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +3 -2
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +10 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +45 -9
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/columnBalancing.d.ts +44 -7
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +167 -40
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/config.d.ts +2 -2
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +18 -3
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +6 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +32 -0
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/crossRefs.d.ts +12 -1
- package/dist/pipeline/crossRefs.d.ts.map +1 -1
- package/dist/pipeline/crossRefs.js +22 -14
- package/dist/pipeline/crossRefs.js.map +1 -1
- package/dist/pipeline/flowColumns.d.ts +2 -1
- package/dist/pipeline/flowColumns.d.ts.map +1 -1
- package/dist/pipeline/flowColumns.js +12 -2
- package/dist/pipeline/flowColumns.js.map +1 -1
- package/dist/pipeline/footnotes.d.ts.map +1 -1
- package/dist/pipeline/footnotes.js +3 -0
- package/dist/pipeline/footnotes.js.map +1 -1
- package/dist/pipeline/indexDirective.d.ts.map +1 -1
- package/dist/pipeline/indexDirective.js +15 -0
- package/dist/pipeline/indexDirective.js.map +1 -1
- package/dist/pipeline/lists.d.ts +1 -1
- package/dist/pipeline/lists.d.ts.map +1 -1
- package/dist/pipeline/lists.js +9 -1
- package/dist/pipeline/lists.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts +18 -0
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +13 -3
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/paragraphContainers.d.ts +4 -1
- package/dist/pipeline/paragraphContainers.d.ts.map +1 -1
- package/dist/pipeline/paragraphContainers.js +2 -0
- package/dist/pipeline/paragraphContainers.js.map +1 -1
- package/dist/pipeline/placement.d.ts +15 -0
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +36 -4
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/raggedLines.d.ts +8 -6
- package/dist/pipeline/raggedLines.d.ts.map +1 -1
- package/dist/pipeline/raggedLines.js +13 -10
- package/dist/pipeline/raggedLines.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +4 -0
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +22 -7
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/resourceNumbering.d.ts +6 -3
- package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
- package/dist/pipeline/resourceNumbering.js +36 -19
- package/dist/pipeline/resourceNumbering.js.map +1 -1
- package/dist/pipeline/toc.d.ts +0 -3
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +19 -2
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/types.d.ts +411 -15
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +90 -7
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { describe, it, expect, afterEach } from 'vitest';
|
|
2
2
|
import { measureRichBlock } from '../../measure/rich';
|
|
3
3
|
import { measureBlock } from '../../measure/plain';
|
|
4
|
-
import { setCjkComposition } from '../../measure/cjkPunctuation';
|
|
4
|
+
import { cjkCompositionKey, cjkCompositionOf, setCjkComposition } from '../../measure/cjkPunctuation';
|
|
5
|
+
import { resolveCjkConfig } from '../../defaults/cjk';
|
|
6
|
+
import { stripConfigDefaults } from '../../defaults';
|
|
5
7
|
import { setCjkLineBreak } from '../../measure/cjkClasses';
|
|
6
8
|
import { buildDocument } from '../../pipeline';
|
|
7
9
|
// A paragraph does not end on a line holding one character, alone or with
|
|
@@ -100,4 +102,93 @@ describe('孤字 in a document: bodyText.avoidRunts', () => {
|
|
|
100
102
|
}
|
|
101
103
|
});
|
|
102
104
|
});
|
|
105
|
+
// A paragraph does not end on one character (clreq §7.1.2, 孤字不成行;
|
|
106
|
+
// JLReq §3.5.4 takes the same care), on a character grid as off it: a
|
|
107
|
+
// line that is not justified gives its last character up and stands one
|
|
108
|
+
// cell short, as up to 1.27. Manuscript paper (`cjk.grid.fullLines`, #718)
|
|
109
|
+
// keeps every cell of such a line instead, and the paragraph keeps its
|
|
110
|
+
// lines as first broken.
|
|
111
|
+
describe('孤字 on a character grid (#718)', () => {
|
|
112
|
+
const pt = (value) => ({ value, unit: 'pt' });
|
|
113
|
+
const K = '一二三四五六七八九十';
|
|
114
|
+
// 41 characters: two full lines of 20 and one character.
|
|
115
|
+
const P41 = K.repeat(4) + '終';
|
|
116
|
+
const config = (locale, body = {}, writingMode = 'horizontal-tb', grid = 'fullLines') => {
|
|
117
|
+
const along = pt(20 * 16 + 40);
|
|
118
|
+
const across = pt(20 * 24 + 40);
|
|
119
|
+
return {
|
|
120
|
+
locale,
|
|
121
|
+
page: {
|
|
122
|
+
width: writingMode === 'vertical-rl' ? across : along,
|
|
123
|
+
height: writingMode === 'vertical-rl' ? along : across,
|
|
124
|
+
dpi: 72,
|
|
125
|
+
margins: { top: pt(20), bottom: pt(20), left: pt(20), right: pt(20) },
|
|
126
|
+
},
|
|
127
|
+
layout: { layoutType: 'single', writingMode },
|
|
128
|
+
bodyText: { fontSize: pt(16), lineHeight: pt(24), textAlign: 'left', firstLineIndent: pt(0), ...body },
|
|
129
|
+
header: { elements: [] },
|
|
130
|
+
footer: { elements: [] },
|
|
131
|
+
...(grid ? { cjk: { grid: { enabled: true, charsPerLine: 20, linesPerPage: 20, ...(grid === 'fullLines' ? { fullLines: true } : {}) } } } : {}),
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
const lines = (cfg) => buildDocument({ markdown: P41 }, cfg).pages[0].columns[0].blocks.flatMap((b) => b.lines);
|
|
135
|
+
const counts = (ls) => ls.map((l) => [...l.text].length);
|
|
136
|
+
const advance = (l) => l.segments.reduce((s, seg) => s + seg.width, 0);
|
|
137
|
+
for (const locale of ['ja', 'zh-Hans', 'zh-Hant']) {
|
|
138
|
+
for (const mode of ['horizontal-tb', 'vertical-rl']) {
|
|
139
|
+
it(`${locale}, ${mode}: on a grid a ragged paragraph gives the character up, as up to 1.27`, () => {
|
|
140
|
+
expect(counts(lines(config(locale, {}, mode, 'grid')))).toEqual([20, 19, 2]);
|
|
141
|
+
expect(counts(lines(config(locale, { textAlign: 'center' }, mode, 'grid')))).toEqual([20, 19, 2]);
|
|
142
|
+
// The same lines as off the grid.
|
|
143
|
+
expect(counts(lines(config(locale, {}, mode, false)))).toEqual([20, 19, 2]);
|
|
144
|
+
});
|
|
145
|
+
it(`${locale}, ${mode}: with fullLines a paragraph that is not justified keeps every full line full`, () => {
|
|
146
|
+
expect(counts(lines(config(locale, {}, mode)))).toEqual([20, 20, 1]);
|
|
147
|
+
expect(counts(lines(config(locale, { textAlign: 'center' }, mode)))).toEqual([20, 20, 1]);
|
|
148
|
+
});
|
|
149
|
+
it(`${locale}, ${mode}: a justified paragraph gives up the character either way, its line spread`, () => {
|
|
150
|
+
for (const grid of ['grid', 'fullLines']) {
|
|
151
|
+
const set = lines(config(locale, { textAlign: 'justify' }, mode, grid));
|
|
152
|
+
expect(counts(set), grid).toEqual([20, 19, 2]);
|
|
153
|
+
expect(set[1].cjkLoose).toBeUndefined();
|
|
154
|
+
expect(advance(set[1])).toBeCloseTo(20 * 16, 6);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
it('avoidRunts: false leaves the lone character on a grid, justified or not', () => {
|
|
160
|
+
for (const grid of ['grid', 'fullLines']) {
|
|
161
|
+
expect(counts(lines(config('ja', { avoidRunts: false }, 'horizontal-tb', grid)))).toEqual([20, 20, 1]);
|
|
162
|
+
expect(counts(lines(config('ja', { avoidRunts: false, textAlign: 'justify' }, 'horizontal-tb', grid)))).toEqual([20, 20, 1]);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
it('fullLines is read as a boolean, off without the grid, and stripped at its default', () => {
|
|
166
|
+
expect(resolveCjkConfig({}, 'ja').grid.fullLines).toBe(false);
|
|
167
|
+
expect(resolveCjkConfig({ grid: { enabled: true } }, 'ja').grid.fullLines).toBe(false);
|
|
168
|
+
expect(resolveCjkConfig({ grid: { enabled: true, fullLines: true } }, 'ja').grid.fullLines).toBe(true);
|
|
169
|
+
expect(resolveCjkConfig({ grid: { fullLines: true } }, 'ja').grid.fullLines).toBe(false);
|
|
170
|
+
expect(resolveCjkConfig({ grid: { enabled: true, fullLines: 'yes' } }, 'ja').grid.fullLines).toBe(false);
|
|
171
|
+
expect(stripConfigDefaults({ cjk: { grid: { enabled: true, fullLines: false } } }).cjk).toEqual({ grid: { enabled: true } });
|
|
172
|
+
expect(stripConfigDefaults({ cjk: { grid: { enabled: true, fullLines: true } } }).cjk).toEqual({ grid: { enabled: true, fullLines: true } });
|
|
173
|
+
});
|
|
174
|
+
it('the composer reads the rule from the composition alone', () => {
|
|
175
|
+
const of = (grid) => cjkCompositionOf(resolveCjkConfig({ grid }, 'zh-Hant'), 72, 'zh-Hant');
|
|
176
|
+
const full = { ...RUNTS, textAlign: 'left', cjkComposition: of({ enabled: true, charsPerLine: 10, linesPerPage: 10, fullLines: true }) };
|
|
177
|
+
expect(texts(both(HLM, 10 * EM, full))).toEqual(['此開卷第一回也作者自', '云因曾歷過一番夢幻之', '後。']);
|
|
178
|
+
expect(texts(both(HLM, 10 * EM, { ...full, textAlign: 'justify' }))).toEqual(['此開卷第一回也作者自', '云因曾歷過一番夢幻', '之後。']);
|
|
179
|
+
// A grid alone sets a ragged paragraph as 1.27 did.
|
|
180
|
+
const plain = { ...RUNTS, textAlign: 'left', cjkComposition: of({ enabled: true, charsPerLine: 10, linesPerPage: 10 }) };
|
|
181
|
+
expect(texts(both(HLM, 10 * EM, plain))).toEqual(['此開卷第一回也作者自', '云因曾歷過一番夢幻', '之後。']);
|
|
182
|
+
});
|
|
183
|
+
it('is part of the composition key only where set', () => {
|
|
184
|
+
const key = (cjk) => cjkCompositionKey(cjkCompositionOf(resolveCjkConfig(cjk, 'zh-Hans'), 96, 'zh-Hans'));
|
|
185
|
+
const plain = key({});
|
|
186
|
+
expect(cjkCompositionOf(resolveCjkConfig({}, 'zh-Hans'), 96, 'zh-Hans').gridFullLines).toBeUndefined();
|
|
187
|
+
expect(key({ grid: { enabled: false } })).toBe(plain);
|
|
188
|
+
// A grid alone keeps the key of 1.27.
|
|
189
|
+
expect(key({ grid: { enabled: true, charsPerLine: 20, linesPerPage: 20 } })).toBe(plain);
|
|
190
|
+
expect(key({ grid: { fullLines: true } })).toBe(plain);
|
|
191
|
+
expect(key({ grid: { enabled: true, charsPerLine: 20, linesPerPage: 20, fullLines: true } })).toBe(`${plain}:g`);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
103
194
|
//# sourceMappingURL=runt.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runt.test.js","sourceRoot":"","sources":["../../../src/__tests__/cjk/runt.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runt.test.js","sourceRoot":"","sources":["../../../src/__tests__/cjk/runt.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -523,7 +523,7 @@ describe('stored documents (CONFIG_VERSION 9)', () => {
|
|
|
523
523
|
'The end.',
|
|
524
524
|
].join('\n');
|
|
525
525
|
it('pins the 1.22 reading of fences for a configuration with fences in its text', () => {
|
|
526
|
-
expect(CONFIG_VERSION).toBe(
|
|
526
|
+
expect(CONFIG_VERSION).toBe(12);
|
|
527
527
|
expect(pinLegacyCodeBlocks({})).toEqual({ codeStyle: { blocks: false } });
|
|
528
528
|
const own = { codeStyle: { blocks: true } };
|
|
529
529
|
expect(pinLegacyCodeBlocks(own)).toBe(own);
|
|
@@ -458,6 +458,42 @@ describe('list-end and loose-paragraph levers', () => {
|
|
|
458
458
|
c.trailingCap = true;
|
|
459
459
|
expect(headingLever(capped, NO_FORCED)).toBeUndefined();
|
|
460
460
|
});
|
|
461
|
+
it('keeps the heading right under a page-span opener at its column\'s head in a closing band (#709)', () => {
|
|
462
|
+
// The opener stays in its own column as a hidden block, so the headline
|
|
463
|
+
// under it is block 1: on a page that flows on it is a heading lever
|
|
464
|
+
// like any other; in a closing band it is the column's head, and only
|
|
465
|
+
// the heading further down is offered.
|
|
466
|
+
const build = () => {
|
|
467
|
+
const opener = fakeBlock({ type: 'heading', headingLevel: 1, contentIndex: 80, hidden: true });
|
|
468
|
+
const full = fakeBlock({ type: 'paragraph', bbox: { x: 500, y: 0, width: 480, height: 900 } });
|
|
469
|
+
return fakeDoc([
|
|
470
|
+
[
|
|
471
|
+
{ blocks: [opener, heading(81, 2), para(), heading(82, 2), para()], availableHeight: 2 * 24 },
|
|
472
|
+
{ blocks: [full], availableHeight: 0 },
|
|
473
|
+
],
|
|
474
|
+
[{ blocks: [para()], availableHeight: 0 }],
|
|
475
|
+
]);
|
|
476
|
+
};
|
|
477
|
+
const headingLevers = (doc, forced) => collectColumnGaps(doc, forced).flatMap((g) => g.candidates).filter((c) => c.kind === 'heading').map((c) => c.contentIndex);
|
|
478
|
+
expect(headingLevers(build(), NO_FORCED)).toEqual([81, 82]);
|
|
479
|
+
expect(headingLevers(build(), new Set([0]))).toEqual([82]);
|
|
480
|
+
const capped = build();
|
|
481
|
+
for (const c of capped.pages[0].columns)
|
|
482
|
+
c.trailingCap = true;
|
|
483
|
+
expect(headingLevers(capped, NO_FORCED)).toEqual([82]);
|
|
484
|
+
// The lines the column needs go to the heading that is left.
|
|
485
|
+
const proposal = proposeBalanceLines(build(), new Set([0]), emptyState(), baseOptions());
|
|
486
|
+
expect(proposal.lines.get(81)).toBeUndefined();
|
|
487
|
+
expect(proposal.lines.get(82)).toBe(2);
|
|
488
|
+
// A structural hidden heading before it counts the same way, and a
|
|
489
|
+
// visible block before it makes it a mid-column heading again.
|
|
490
|
+
const structural = build();
|
|
491
|
+
structural.pages[0].columns[0].blocks.unshift(fakeBlock({ type: 'heading', headingLevel: 1, contentIndex: 79, hidden: true }));
|
|
492
|
+
expect(headingLevers(structural, new Set([0]))).toEqual([82]);
|
|
493
|
+
const mid = build();
|
|
494
|
+
mid.pages[0].columns[0].blocks.splice(1, 0, para());
|
|
495
|
+
expect(headingLevers(mid, new Set([0]))).toEqual([81, 82]);
|
|
496
|
+
});
|
|
461
497
|
it('exhausts heading capacity before touching list ends', () => {
|
|
462
498
|
const doc = fakeDoc([
|
|
463
499
|
[
|
|
@@ -575,6 +611,160 @@ describe('list-end and loose-paragraph levers', () => {
|
|
|
575
611
|
expect(turnedOff.loose.size).toBe(0);
|
|
576
612
|
});
|
|
577
613
|
});
|
|
614
|
+
describe('headings hold their further lines for the levers after them (#707)', () => {
|
|
615
|
+
const heading = (contentIndex, level = 2) => fakeBlock({ type: 'heading', headingLevel: level, contentIndex });
|
|
616
|
+
const para = (contentIndex) => fakeBlock({ type: 'paragraph', contentIndex });
|
|
617
|
+
const justified = (contentIndex) => fakeBlock({ type: 'paragraph', contentIndex, textAlign: 'justify', lines: [fakeLine(), fakeLine(), fakeLine()] });
|
|
618
|
+
/** One short column of `blocks` with `gap` empty lines, on a page that flows on. */
|
|
619
|
+
const column = (blocks, gap) => fakeDoc([
|
|
620
|
+
[
|
|
621
|
+
{ blocks, availableHeight: gap * 24 },
|
|
622
|
+
{ blocks: [para(90)], availableHeight: 0 },
|
|
623
|
+
],
|
|
624
|
+
[{ blocks: [para(91)], availableHeight: 0 }],
|
|
625
|
+
]);
|
|
626
|
+
const options = (over) => baseOptions({ maxLinesPerHeading: 4, maxLinesBeforeLoose: 2, maxLooseParagraphs: 2, ...over });
|
|
627
|
+
const oneHeading = (gap = 4) => column([para(1), heading(2), justified(3), justified(4), para(5)], gap);
|
|
628
|
+
it('gives one heading two lines and offers the paragraphs the rest', () => {
|
|
629
|
+
const proposal = proposeBalanceLines(oneHeading(), new Set(), emptyState(), options());
|
|
630
|
+
expect(proposal.lines.get(2)).toBe(2);
|
|
631
|
+
expect([...proposal.loose.keys()].sort()).toEqual([3, 4]);
|
|
632
|
+
// Two lines are left: both paragraphs are needed.
|
|
633
|
+
expect(proposal.looseBudget.get(3).need).toBe(2);
|
|
634
|
+
});
|
|
635
|
+
it('gives the heading its further lines once the paragraphs have nothing left', () => {
|
|
636
|
+
// Both failed: the heading takes the four lines, as up to 1.27.
|
|
637
|
+
const failed = proposeBalanceLines(oneHeading(), new Set(), emptyState(), options({ failedLoose: new Set([3, 4]) }));
|
|
638
|
+
expect(failed.lines.get(2)).toBe(4);
|
|
639
|
+
expect(failed.loose.size).toBe(0);
|
|
640
|
+
// The next pass after the paragraphs gained their lines: two lines went
|
|
641
|
+
// above the heading, both paragraphs are loose, one line is still open.
|
|
642
|
+
const state = { lines: new Map([[2, 2]]), loose: new Map([[3, 1], [4, 1]]) };
|
|
643
|
+
const after = proposeBalanceLines(oneHeading(1), new Set(), state, options());
|
|
644
|
+
expect(after.lines.get(2)).toBe(3);
|
|
645
|
+
// One gained, one failed, two lines open: the heading closes them.
|
|
646
|
+
const mixed = proposeBalanceLines(oneHeading(2), new Set(), { lines: new Map([[2, 2]]), loose: new Map([[3, 1]]) }, options({ failedLoose: new Set([4]) }));
|
|
647
|
+
expect(mixed.lines.get(2)).toBe(4);
|
|
648
|
+
// A candidate is still untried: the heading waits for it.
|
|
649
|
+
const waiting = proposeBalanceLines(oneHeading(2), new Set(), { lines: new Map([[2, 2]]), loose: new Map([[3, 1]]) }, options());
|
|
650
|
+
expect(waiting.lines.get(2)).toBe(2);
|
|
651
|
+
expect(waiting.loose.has(4)).toBe(true);
|
|
652
|
+
});
|
|
653
|
+
it('gives the headings all their lines at once when the loose lever is off', () => {
|
|
654
|
+
for (const over of [{ looseParagraphs: false }, { optimalLineBreaking: false }, { maxLooseParagraphs: 0 }]) {
|
|
655
|
+
const proposal = proposeBalanceLines(oneHeading(), new Set(), emptyState(), options(over));
|
|
656
|
+
expect(proposal.lines.get(2), JSON.stringify(over)).toBe(4);
|
|
657
|
+
expect(proposal.loose.size).toBe(0);
|
|
658
|
+
}
|
|
659
|
+
});
|
|
660
|
+
it('tries the list ends and the displays before a heading\'s third line', () => {
|
|
661
|
+
const item = (contentIndex) => fakeBlock({ type: 'listItem', contentIndex });
|
|
662
|
+
const doc = column([para(1), heading(2), para(3), item(4), para(5), fakeBlock({ type: 'mathDisplay', contentIndex: 6 }), para(7)], 4);
|
|
663
|
+
const proposal = proposeBalanceLines(doc, new Set(), emptyState(), options({ looseParagraphs: false }));
|
|
664
|
+
expect(proposal.lines.get(2)).toBe(2);
|
|
665
|
+
expect(proposal.lines.get(5)).toBe(1); // after the list
|
|
666
|
+
expect(proposal.lines.get(7)).toBe(1); // under the formula
|
|
667
|
+
// A line more than they can take goes above the heading.
|
|
668
|
+
const five = proposeBalanceLines(column([para(1), heading(2), para(3), item(4), para(5), fakeBlock({ type: 'mathDisplay', contentIndex: 6 }), para(7)], 5), new Set(), emptyState(), options({ looseParagraphs: false }));
|
|
669
|
+
expect([five.lines.get(2), five.lines.get(5), five.lines.get(7)]).toEqual([3, 1, 1]);
|
|
670
|
+
});
|
|
671
|
+
it('counts the first cap per heading: six lines over two headings', () => {
|
|
672
|
+
const two = () => column([para(1), heading(2), justified(3), heading(4, 3), justified(5), para(6)], 6);
|
|
673
|
+
const first = proposeBalanceLines(two(), new Set(), emptyState(), options());
|
|
674
|
+
expect([first.lines.get(2), first.lines.get(4)]).toEqual([2, 2]);
|
|
675
|
+
expect(first.loose.size).toBe(2);
|
|
676
|
+
const later = proposeBalanceLines(two(), new Set(), emptyState(), options({ failedLoose: new Set([3, 5]) }));
|
|
677
|
+
expect([later.lines.get(2), later.lines.get(4)]).toEqual([3, 3]);
|
|
678
|
+
});
|
|
679
|
+
it('is the order of postext 1.27 with maxLinesBeforeLoose at or above the cap, or left out', () => {
|
|
680
|
+
for (const maxLinesBeforeLoose of [4, 9, undefined]) {
|
|
681
|
+
const proposal = proposeBalanceLines(oneHeading(), new Set(), emptyState(), options({ maxLinesBeforeLoose }));
|
|
682
|
+
expect(proposal.lines.get(2)).toBe(4);
|
|
683
|
+
expect(proposal.loose.size).toBe(0);
|
|
684
|
+
}
|
|
685
|
+
// 0: the other levers before any line above a heading.
|
|
686
|
+
const zero = proposeBalanceLines(oneHeading(), new Set(), emptyState(), options({ maxLinesBeforeLoose: 0 }));
|
|
687
|
+
expect(zero.lines.get(2)).toBeUndefined();
|
|
688
|
+
expect(zero.loose.size).toBe(2);
|
|
689
|
+
});
|
|
690
|
+
});
|
|
691
|
+
describe('under a float over several columns (#708)', () => {
|
|
692
|
+
const para = (contentIndex) => fakeBlock({ type: 'paragraph', contentIndex });
|
|
693
|
+
/** Page 0: two columns that start at y=300 under one float; `gaps` are
|
|
694
|
+
* the empty lines of each. `width` is the float's: 980 stands over both
|
|
695
|
+
* columns, 480 over the first alone. Page 1 follows, so page 0 flows on. */
|
|
696
|
+
const under = (gaps, width = 980, firstBlocks) => {
|
|
697
|
+
const doc = fakeDoc([
|
|
698
|
+
[
|
|
699
|
+
{ blocks: firstBlocks ?? [para(1), para(2)], availableHeight: gaps[0] * 24 },
|
|
700
|
+
{ blocks: [para(3), para(4)], availableHeight: gaps[1] * 24 },
|
|
701
|
+
],
|
|
702
|
+
[{ blocks: [para(9)], availableHeight: 0 }],
|
|
703
|
+
]);
|
|
704
|
+
for (const col of doc.pages[0].columns)
|
|
705
|
+
col.bbox = { ...col.bbox, y: 300, height: 600 };
|
|
706
|
+
doc.pages[0].floats = [fakeBlock({ type: 'resource', bbox: { x: 0, y: 0, width, height: 280 } })];
|
|
707
|
+
return doc;
|
|
708
|
+
};
|
|
709
|
+
const flush = (over) => baseOptions({ looseParagraphs: false, stretchAfterWideFloats: 'flush', ...over });
|
|
710
|
+
const propose = (doc, options) => {
|
|
711
|
+
const p = proposeBalanceLines(doc, NO_FORCED, emptyState(), options);
|
|
712
|
+
return [p.lines.get(1), p.lines.get(3)];
|
|
713
|
+
};
|
|
714
|
+
it('marks the after-float point of a column under a float that stands over another column too', () => {
|
|
715
|
+
const wide = collectColumnGaps(under([2, 1]), NO_FORCED).map((g) => g.candidates.find((c) => c.kind === 'afterFloat')?.wideFloat);
|
|
716
|
+
expect(wide).toEqual([{ key: '0:0', under: 2 }, { key: '0:0', under: 2 }]);
|
|
717
|
+
const narrow = collectColumnGaps(under([2, 1], 480), NO_FORCED)[0].candidates.find((c) => c.kind === 'afterFloat');
|
|
718
|
+
expect(narrow).toBeDefined();
|
|
719
|
+
expect(narrow.wideFloat).toBeUndefined();
|
|
720
|
+
});
|
|
721
|
+
it('adds no line that lowers one head and leaves its column short (case A)', () => {
|
|
722
|
+
// The first column needs two lines and may take one; the second is flush.
|
|
723
|
+
expect(propose(under([2, 0]), flush())).toEqual([undefined, undefined]);
|
|
724
|
+
// Up to 1.27, and with 'always': the first column moves down alone.
|
|
725
|
+
expect(propose(under([2, 0]), flush({ stretchAfterWideFloats: 'always' }))).toEqual([1, undefined]);
|
|
726
|
+
expect(propose(under([2, 0]), baseOptions({ looseParagraphs: false }))).toEqual([1, undefined]);
|
|
727
|
+
});
|
|
728
|
+
it('moves the columns under the float together (case B)', () => {
|
|
729
|
+
// Four lines short and one line short: both take one, the second ends flush.
|
|
730
|
+
expect(propose(under([4, 1]), flush())).toEqual([1, 1]);
|
|
731
|
+
expect(propose(under([4, 1]), flush({ stretchAfterWideFloats: 'always' }))).toEqual([1, 1]);
|
|
732
|
+
// The smallest number any of them can take, then more only to close a gap.
|
|
733
|
+
expect(propose(under([3, 2]), flush({ maxLinesAfterFloat: 3 }))).toEqual([3, 2]);
|
|
734
|
+
expect(propose(under([5, 2]), flush({ maxLinesAfterFloat: 3 }))).toEqual([2, 2]);
|
|
735
|
+
});
|
|
736
|
+
it('lets a column take its line alone when that ends it flush', () => {
|
|
737
|
+
expect(propose(under([1, 0]), flush())).toEqual([1, undefined]);
|
|
738
|
+
expect(propose(under([0, 1]), flush())).toEqual([undefined, 1]);
|
|
739
|
+
// Two lines within the cap close the gap too.
|
|
740
|
+
expect(propose(under([2, 0]), flush({ maxLinesAfterFloat: 2 }))).toEqual([2, undefined]);
|
|
741
|
+
});
|
|
742
|
+
it('counts a column with no after-float point as taking nothing', () => {
|
|
743
|
+
// A heading opens the first column: it is a heading lever, so the
|
|
744
|
+
// second has no neighbour to move with and three lines to close.
|
|
745
|
+
const headed = () => under([3, 3], 980, [fakeBlock({ type: 'heading', headingLevel: 2, contentIndex: 1 }), para(2)]);
|
|
746
|
+
const p = proposeBalanceLines(headed(), NO_FORCED, emptyState(), flush());
|
|
747
|
+
expect(p.lines.get(3)).toBeUndefined();
|
|
748
|
+
// A point that may take no more lines stops the group as well.
|
|
749
|
+
expect(propose(under([4, 1]), flush({ failedLines: new Set([1]) }))).toEqual([undefined, 1]);
|
|
750
|
+
expect(propose(under([4, 2]), flush({ failedLines: new Set([1]) }))).toEqual([undefined, undefined]);
|
|
751
|
+
});
|
|
752
|
+
it('leaves a float over one column as it was', () => {
|
|
753
|
+
expect(propose(under([2, 0], 480), flush())).toEqual([1, undefined]);
|
|
754
|
+
expect(propose(under([2, 0], 480), flush({ stretchAfterFloats: false }))).toEqual([undefined, undefined]);
|
|
755
|
+
expect(propose(under([4, 1]), flush({ stretchAfterFloats: false }))).toEqual([undefined, undefined]);
|
|
756
|
+
});
|
|
757
|
+
it('closes the last line alone once a loose paragraph gained one', () => {
|
|
758
|
+
// Case A with a justified paragraph: the proposal offers it and adds no
|
|
759
|
+
// after-float line; in the next pass one line is left, and it closes.
|
|
760
|
+
const justified = fakeBlock({ type: 'paragraph', contentIndex: 2, textAlign: 'justify', lines: [fakeLine(), fakeLine(), fakeLine()] });
|
|
761
|
+
const first = proposeBalanceLines(under([2, 0], 980, [para(1), justified]), NO_FORCED, emptyState(), flush({ looseParagraphs: true }));
|
|
762
|
+
expect(first.lines.get(1)).toBeUndefined();
|
|
763
|
+
expect([...first.loose.keys()]).toEqual([2]);
|
|
764
|
+
const next = proposeBalanceLines(under([1, 0], 980, [para(1), justified]), NO_FORCED, { lines: new Map(), loose: new Map([[2, 1]]) }, flush({ looseParagraphs: true }));
|
|
765
|
+
expect(next.lines.get(1)).toBe(1);
|
|
766
|
+
});
|
|
767
|
+
});
|
|
578
768
|
describe('cascade containment', () => {
|
|
579
769
|
const para = (contentIndex, cont = false) => fakeBlock({ type: 'paragraph', contentIndex, id: cont ? `p-${contentIndex}-cont-1` : `p-${contentIndex}` });
|
|
580
770
|
const heading = (contentIndex) => fakeBlock({ type: 'heading', headingLevel: 2, contentIndex });
|
|
@@ -687,6 +877,32 @@ describe('after-display lever and the level of a closing band', () => {
|
|
|
687
877
|
expect(proposal.lines.get(3)).toBe(1);
|
|
688
878
|
expect(proposal.lines.get(5)).toBe(1);
|
|
689
879
|
});
|
|
880
|
+
it('adds no line under a formula or a box with stretchAfterDisplays off (#710)', () => {
|
|
881
|
+
const justified = (contentIndex) => fakeBlock({ type: 'paragraph', contentIndex, textAlign: 'justify', lines: [fakeLine(), fakeLine(), fakeLine()] });
|
|
882
|
+
const build = () => fakeDoc([
|
|
883
|
+
[
|
|
884
|
+
{ blocks: [justified(1), math(2), para(3), boxChild(4), para(5)], availableHeight: 2 * 24 },
|
|
885
|
+
{ blocks: [para(6)], availableHeight: 0 },
|
|
886
|
+
],
|
|
887
|
+
[{ blocks: [para(10)], availableHeight: 0 }],
|
|
888
|
+
]);
|
|
889
|
+
// The candidates are offered either way: the switch acts on the proposal.
|
|
890
|
+
const kinds = collectColumnGaps(build(), new Set())[0].candidates.map((c) => `${c.kind}:${c.contentIndex}`);
|
|
891
|
+
expect(kinds).toEqual(expect.arrayContaining(['afterDisplay:3', 'afterDisplay:5', 'looseParagraph:1']));
|
|
892
|
+
// On (and unset): one line under each, and nothing left for the loose lever.
|
|
893
|
+
for (const options of [baseOptions(), baseOptions({ stretchAfterDisplays: true })]) {
|
|
894
|
+
const on = proposeBalanceLines(build(), new Set(), emptyState(), options);
|
|
895
|
+
expect([on.lines.get(3), on.lines.get(5)]).toEqual([1, 1]);
|
|
896
|
+
expect(on.loose.size).toBe(0);
|
|
897
|
+
}
|
|
898
|
+
// Off: nothing under the displays; the gap goes on to the paragraph.
|
|
899
|
+
const off = proposeBalanceLines(build(), new Set(), emptyState(), baseOptions({ stretchAfterDisplays: false }));
|
|
900
|
+
expect(off.lines.size).toBe(0);
|
|
901
|
+
expect([...off.loose.keys()]).toEqual([1]);
|
|
902
|
+
// With no lever after it, the column ends short.
|
|
903
|
+
const short = proposeBalanceLines(build(), new Set(), emptyState(), baseOptions({ stretchAfterDisplays: false, looseParagraphs: false }));
|
|
904
|
+
expect(short.changed).toBe(false);
|
|
905
|
+
});
|
|
690
906
|
it('never stretches a column of a closing page past the tallest column beside it', () => {
|
|
691
907
|
// Page 0 does not flow on (forced break): column 0 ends one line above
|
|
692
908
|
// column 1, which is the page's last column. Column 0 may take that one
|