postext 1.29.1 → 1.30.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__/arabicLocale.test.js +5 -5
- package/dist/__tests__/arabicLocale.test.js.map +1 -1
- package/dist/__tests__/bundle/balloonPlacementPin.test.js +5 -4
- package/dist/__tests__/bundle/balloonPlacementPin.test.js.map +1 -1
- package/dist/__tests__/bundle/cjkRulesPin.test.js +8 -6
- package/dist/__tests__/bundle/cjkRulesPin.test.js.map +1 -1
- package/dist/__tests__/bundle/designOverflowPin.test.js +1 -1
- package/dist/__tests__/bundle/flowColumnsPin.test.js +4 -3
- package/dist/__tests__/bundle/flowColumnsPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBalancingPin.test.js +5 -4
- package/dist/__tests__/bundle/gridBalancingPin.test.js.map +1 -1
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js +14 -10
- package/dist/__tests__/bundle/gridBreakRulesPin.test.js.map +1 -1
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js +4 -3
- package/dist/__tests__/bundle/indexGroupSplitPin.test.js.map +1 -1
- package/dist/__tests__/bundle/looseOrderPin.test.js +5 -4
- package/dist/__tests__/bundle/looseOrderPin.test.js.map +1 -1
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js +5 -4
- package/dist/__tests__/bundle/refLabelBreaksPin.test.js.map +1 -1
- package/dist/__tests__/bundle/scriptContextPin.test.js +6 -5
- package/dist/__tests__/bundle/scriptContextPin.test.js.map +1 -1
- package/dist/__tests__/bundle/shapingLanguagePin.test.js +142 -46
- package/dist/__tests__/bundle/shapingLanguagePin.test.js.map +1 -1
- package/dist/__tests__/bundle/taskBoxPin.test.js +1 -1
- package/dist/__tests__/bundle/trailingStepPin.test.js +4 -3
- package/dist/__tests__/bundle/trailingStepPin.test.js.map +1 -1
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js +4 -3
- package/dist/__tests__/bundle/wideFloatStretchPin.test.js.map +1 -1
- package/dist/__tests__/bundle.test.js +1 -1
- package/dist/__tests__/cellText.test.d.ts +2 -0
- package/dist/__tests__/cellText.test.d.ts.map +1 -0
- package/dist/__tests__/cellText.test.js +281 -0
- package/dist/__tests__/cellText.test.js.map +1 -0
- package/dist/__tests__/chineseLocale.test.js +24 -7
- package/dist/__tests__/chineseLocale.test.js.map +1 -1
- package/dist/__tests__/cjk/japaneseHtml.test.js +3 -3
- package/dist/__tests__/cjk/japaneseHtml.test.js.map +1 -1
- package/dist/__tests__/cjk/japaneseRuby.test.js +1 -1
- package/dist/__tests__/cjk/japaneseRuby.test.js.map +1 -1
- package/dist/__tests__/cjk/japaneseSegmentLanguage.test.js +3 -3
- package/dist/__tests__/cjk/japaneseSegmentLanguage.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +1 -1
- package/dist/__tests__/contextState.test.d.ts +2 -0
- package/dist/__tests__/contextState.test.d.ts.map +1 -0
- package/dist/__tests__/contextState.test.js +478 -0
- package/dist/__tests__/contextState.test.js.map +1 -0
- package/dist/__tests__/contextText.test.d.ts +2 -0
- package/dist/__tests__/contextText.test.d.ts.map +1 -0
- package/dist/__tests__/contextText.test.js +371 -0
- package/dist/__tests__/contextText.test.js.map +1 -0
- package/dist/__tests__/design/designTextRender.test.js +8 -1
- package/dist/__tests__/design/designTextRender.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +6 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/fontUsage.test.js +40 -0
- package/dist/__tests__/fontUsage.test.js.map +1 -1
- package/dist/__tests__/hardBreaks.test.js +1 -1
- package/dist/__tests__/headingInlineMarks.test.js +1 -1
- package/dist/__tests__/html-backend.test.js +6 -2
- package/dist/__tests__/html-backend.test.js.map +1 -1
- package/dist/__tests__/japaneseNotes.test.js +4 -2
- package/dist/__tests__/japaneseNotes.test.js.map +1 -1
- package/dist/__tests__/lineEndPieces.test.d.ts +2 -0
- package/dist/__tests__/lineEndPieces.test.d.ts.map +1 -0
- package/dist/__tests__/lineEndPieces.test.js +374 -0
- package/dist/__tests__/lineEndPieces.test.js.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.js +2 -2
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
- package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
- package/dist/__tests__/plainGeminateHead.test.d.ts +2 -0
- package/dist/__tests__/plainGeminateHead.test.d.ts.map +1 -0
- package/dist/__tests__/plainGeminateHead.test.js +92 -0
- package/dist/__tests__/plainGeminateHead.test.js.map +1 -0
- package/dist/__tests__/presets/showcaseShapingLanguage.test.d.ts +2 -0
- package/dist/__tests__/presets/showcaseShapingLanguage.test.d.ts.map +1 -0
- package/dist/__tests__/presets/showcaseShapingLanguage.test.js +52 -0
- package/dist/__tests__/presets/showcaseShapingLanguage.test.js.map +1 -0
- package/dist/__tests__/reshapedTracking.test.d.ts +2 -0
- package/dist/__tests__/reshapedTracking.test.d.ts.map +1 -0
- package/dist/__tests__/reshapedTracking.test.js +358 -0
- package/dist/__tests__/reshapedTracking.test.js.map +1 -0
- package/dist/__tests__/rtl/designRunsPainted.test.d.ts +2 -0
- package/dist/__tests__/rtl/designRunsPainted.test.d.ts.map +1 -0
- package/dist/__tests__/rtl/designRunsPainted.test.js +184 -0
- package/dist/__tests__/rtl/designRunsPainted.test.js.map +1 -0
- package/dist/__tests__/rtl/designTextPaint.test.js +5 -1
- package/dist/__tests__/rtl/designTextPaint.test.js.map +1 -1
- package/dist/__tests__/rtl/htmlRtl.test.js +3 -3
- package/dist/__tests__/rtl/htmlRtl.test.js.map +1 -1
- package/dist/__tests__/rtl/listMarkerDirection.test.js +28 -28
- package/dist/__tests__/rtl/listMarkerDirection.test.js.map +1 -1
- package/dist/__tests__/rtl/tocNumberPainted.test.d.ts +2 -0
- package/dist/__tests__/rtl/tocNumberPainted.test.d.ts.map +1 -0
- package/dist/__tests__/rtl/tocNumberPainted.test.js +113 -0
- package/dist/__tests__/rtl/tocNumberPainted.test.js.map +1 -0
- package/dist/__tests__/scriptContext.test.js +141 -1
- package/dist/__tests__/scriptContext.test.js.map +1 -1
- package/dist/__tests__/shapingLanguage.test.js +60 -43
- package/dist/__tests__/shapingLanguage.test.js.map +1 -1
- package/dist/__tests__/trackedLetters.test.d.ts +2 -0
- package/dist/__tests__/trackedLetters.test.d.ts.map +1 -0
- package/dist/__tests__/trackedLetters.test.js +380 -0
- package/dist/__tests__/trackedLetters.test.js.map +1 -0
- package/dist/__tests__/trackedLigatures.test.js +23 -10
- package/dist/__tests__/trackedLigatures.test.js.map +1 -1
- package/dist/__tests__/verseLines.test.js +1 -1
- package/dist/__tests__/wordCacheOrder.test.d.ts +2 -0
- package/dist/__tests__/wordCacheOrder.test.d.ts.map +1 -0
- package/dist/__tests__/wordCacheOrder.test.js +352 -0
- package/dist/__tests__/wordCacheOrder.test.js.map +1 -0
- package/dist/__tests__/wordPieces.test.d.ts +2 -0
- package/dist/__tests__/wordPieces.test.d.ts.map +1 -0
- package/dist/__tests__/wordPieces.test.js +762 -0
- package/dist/__tests__/wordPieces.test.js.map +1 -0
- package/dist/bidi.d.ts +12 -0
- package/dist/bidi.d.ts.map +1 -1
- package/dist/bidi.js +23 -0
- package/dist/bidi.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +49 -23
- package/dist/bundle/configVersion.d.ts.map +1 -1
- package/dist/bundle/configVersion.js +54 -25
- package/dist/bundle/configVersion.js.map +1 -1
- package/dist/canvas-backend/annotations.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.js +8 -7
- package/dist/canvas-backend/annotations.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +81 -47
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/cellText.d.ts +12 -0
- package/dist/canvas-backend/cellText.d.ts.map +1 -0
- package/dist/canvas-backend/cellText.js +114 -0
- package/dist/canvas-backend/cellText.js.map +1 -0
- package/dist/canvas-backend/chip.d.ts.map +1 -1
- package/dist/canvas-backend/chip.js +12 -9
- package/dist/canvas-backend/chip.js.map +1 -1
- package/dist/canvas-backend/comic.d.ts.map +1 -1
- package/dist/canvas-backend/comic.js +9 -8
- package/dist/canvas-backend/comic.js.map +1 -1
- package/dist/canvas-backend/contextState.d.ts +69 -0
- package/dist/canvas-backend/contextState.d.ts.map +1 -0
- package/dist/canvas-backend/contextState.js +96 -0
- package/dist/canvas-backend/contextState.js.map +1 -0
- package/dist/canvas-backend/contextText.d.ts +76 -0
- package/dist/canvas-backend/contextText.d.ts.map +1 -0
- package/dist/canvas-backend/contextText.js +102 -0
- package/dist/canvas-backend/contextText.js.map +1 -0
- package/dist/canvas-backend/decorations.d.ts.map +1 -1
- package/dist/canvas-backend/decorations.js +11 -10
- package/dist/canvas-backend/decorations.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +23 -15
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +41 -17
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/mirrorFrame.d.ts.map +1 -1
- package/dist/canvas-backend/mirrorFrame.js +5 -4
- package/dist/canvas-backend/mirrorFrame.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +36 -29
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/canvas-backend/runDirection.d.ts.map +1 -1
- package/dist/canvas-backend/runDirection.js +9 -5
- package/dist/canvas-backend/runDirection.js.map +1 -1
- package/dist/canvas-backend/scriptText.d.ts.map +1 -1
- package/dist/canvas-backend/scriptText.js +11 -9
- package/dist/canvas-backend/scriptText.js.map +1 -1
- package/dist/canvas-backend/segmentText.d.ts.map +1 -1
- package/dist/canvas-backend/segmentText.js +18 -5
- package/dist/canvas-backend/segmentText.js.map +1 -1
- package/dist/canvas-backend/swatch.d.ts.map +1 -1
- package/dist/canvas-backend/swatch.js +3 -2
- package/dist/canvas-backend/swatch.js.map +1 -1
- package/dist/canvas-backend/trackedText.d.ts +75 -1
- package/dist/canvas-backend/trackedText.d.ts.map +1 -1
- package/dist/canvas-backend/trackedText.js +192 -28
- package/dist/canvas-backend/trackedText.js.map +1 -1
- package/dist/canvas-backend/verticalText.d.ts +12 -2
- package/dist/canvas-backend/verticalText.d.ts.map +1 -1
- package/dist/canvas-backend/verticalText.js +64 -38
- package/dist/canvas-backend/verticalText.js.map +1 -1
- package/dist/canvas-backend/wordPieces.d.ts +31 -0
- package/dist/canvas-backend/wordPieces.d.ts.map +1 -0
- package/dist/canvas-backend/wordPieces.js +132 -0
- package/dist/canvas-backend/wordPieces.js.map +1 -0
- package/dist/canvas-backend/wordRuns.d.ts +13 -1
- package/dist/canvas-backend/wordRuns.d.ts.map +1 -1
- package/dist/canvas-backend/wordRuns.js +38 -23
- package/dist/canvas-backend/wordRuns.js.map +1 -1
- package/dist/comics/lettering/__tests__/fitAsPainted.test.d.ts +2 -0
- package/dist/comics/lettering/__tests__/fitAsPainted.test.d.ts.map +1 -0
- package/dist/comics/lettering/__tests__/fitAsPainted.test.js +97 -0
- package/dist/comics/lettering/__tests__/fitAsPainted.test.js.map +1 -0
- package/dist/comics/lettering/shape-text.d.ts.map +1 -1
- package/dist/comics/lettering/shape-text.js +39 -11
- package/dist/comics/lettering/shape-text.js.map +1 -1
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +6 -5
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/design/bidiText.d.ts +45 -6
- package/dist/design/bidiText.d.ts.map +1 -1
- package/dist/design/bidiText.js +78 -10
- package/dist/design/bidiText.js.map +1 -1
- package/dist/design/cjkText.d.ts +3 -0
- package/dist/design/cjkText.d.ts.map +1 -1
- package/dist/design/cjkText.js +1 -1
- package/dist/design/cjkText.js.map +1 -1
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +36 -5
- package/dist/design/layout.js.map +1 -1
- package/dist/design/richText.d.ts +9 -1
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js +8 -2
- package/dist/design/richText.js.map +1 -1
- package/dist/fonts/usage.d.ts +2 -0
- package/dist/fonts/usage.d.ts.map +1 -1
- package/dist/fonts/usage.js +18 -0
- package/dist/fonts/usage.js.map +1 -1
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +664 -84
- package/dist/html-backend.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/breakpoints.d.ts.map +1 -1
- package/dist/knuthPlass/breakpoints.js +4 -2
- package/dist/knuthPlass/breakpoints.js.map +1 -1
- package/dist/knuthPlass/pretextAdapter.d.ts +6 -3
- package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/pretextAdapter.js +11 -3
- package/dist/knuthPlass/pretextAdapter.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +13 -1
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +53 -5
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/knuthPlass/tracking.d.ts.map +1 -1
- package/dist/knuthPlass/tracking.js +3 -2
- package/dist/knuthPlass/tracking.js.map +1 -1
- package/dist/knuthPlass/types.d.ts +6 -0
- package/dist/knuthPlass/types.d.ts.map +1 -1
- package/dist/locale.d.ts +25 -18
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +27 -20
- package/dist/locale.js.map +1 -1
- package/dist/looseLines.d.ts.map +1 -1
- package/dist/looseLines.js +3 -2
- package/dist/looseLines.js.map +1 -1
- package/dist/measure/canvas.d.ts +21 -0
- package/dist/measure/canvas.d.ts.map +1 -1
- package/dist/measure/canvas.js +165 -85
- package/dist/measure/canvas.js.map +1 -1
- package/dist/measure/cjkCompose.d.ts.map +1 -1
- package/dist/measure/cjkCompose.js +31 -5
- package/dist/measure/cjkCompose.js.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +31 -6
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/pretextLanguage.d.ts.map +1 -1
- package/dist/measure/pretextLanguage.js +49 -7
- package/dist/measure/pretextLanguage.js.map +1 -1
- package/dist/measure/rich.d.ts +18 -1
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +200 -29
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/script.d.ts +17 -1
- package/dist/measure/script.d.ts.map +1 -1
- package/dist/measure/script.js +17 -1
- package/dist/measure/script.js.map +1 -1
- package/dist/measure/trackedLigatures.d.ts +59 -0
- package/dist/measure/trackedLigatures.d.ts.map +1 -0
- package/dist/measure/trackedLigatures.js +144 -0
- package/dist/measure/trackedLigatures.js.map +1 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +4 -3
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +26 -7
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/lists.d.ts +13 -4
- package/dist/pipeline/lists.d.ts.map +1 -1
- package/dist/pipeline/lists.js +49 -12
- package/dist/pipeline/lists.js.map +1 -1
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +33 -9
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/types.d.ts +35 -22
- package/dist/types.d.ts.map +1 -1
- package/dist/wordPieces.d.ts +120 -0
- package/dist/wordPieces.d.ts.map +1 -0
- package/dist/wordPieces.js +319 -0
- package/dist/wordPieces.js.map +1 -0
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ import { fillFlowText, verticalPaintActive } from './verticalText';
|
|
|
9
9
|
import { counterFlipBox, mirroredPaintActive } from './mirrorFrame';
|
|
10
10
|
import { rasterScaleOf } from './deviceScale';
|
|
11
11
|
import { paintRunInDirection } from './runDirection';
|
|
12
|
-
import {
|
|
12
|
+
import { markerSetText } from '../bidi';
|
|
13
13
|
import { fillSegmentText, fillWordsText } from './segmentText';
|
|
14
14
|
import { lineMarkCuts } from '../measure/markCuts';
|
|
15
15
|
import { hasCJK } from '../measure/cjk';
|
|
@@ -18,6 +18,9 @@ import { fillSegmentWord, paintsSegmentLanguage } from './wordRuns';
|
|
|
18
18
|
import { shapedOtherwise } from './trackedText';
|
|
19
19
|
import { joiningScriptIn } from '../measure/joining';
|
|
20
20
|
import { taskBoxTick } from '../taskBox';
|
|
21
|
+
import { restoreContext, saveContext, setLetterSpacing } from './contextState';
|
|
22
|
+
import { paintedSegments, paintsAsOneText } from './wordPieces';
|
|
23
|
+
import { fillContextText } from './contextText';
|
|
21
24
|
function pickSegmentFont(bold, italic, font, boldFont, italicFont, boldItalicFont) {
|
|
22
25
|
if (bold && italic && boldItalicFont)
|
|
23
26
|
return boldItalicFont;
|
|
@@ -49,10 +52,10 @@ function renderMathRender(ctx, render, topLeftX, topLeftY, fallbackColor) {
|
|
|
49
52
|
const { viewBox, widthPx, heightPx, paths } = render;
|
|
50
53
|
if (!paths.length || viewBox.width <= 0 || viewBox.height <= 0) {
|
|
51
54
|
// Fallback — draw a muted placeholder so the box is still visible.
|
|
52
|
-
ctx
|
|
55
|
+
saveContext(ctx);
|
|
53
56
|
ctx.fillStyle = render.error ? 'rgba(198, 40, 40, 0.15)' : 'rgba(160, 160, 160, 0.15)';
|
|
54
57
|
ctx.fillRect(topLeftX, topLeftY, widthPx, heightPx);
|
|
55
|
-
ctx
|
|
58
|
+
restoreContext(ctx);
|
|
56
59
|
return;
|
|
57
60
|
}
|
|
58
61
|
// The bitmap at the size the formula shows at on the device (#674).
|
|
@@ -67,7 +70,7 @@ function renderMathRender(ctx, render, topLeftX, topLeftY, fallbackColor) {
|
|
|
67
70
|
// Paths are not a run or a picture the mirrored frame turns back on its
|
|
68
71
|
// own (see `mirrorFrame.ts`): the formula asks for it.
|
|
69
72
|
counterFlipBox(ctx, topLeftX, widthPx, () => {
|
|
70
|
-
ctx
|
|
73
|
+
saveContext(ctx);
|
|
71
74
|
ctx.translate(topLeftX, topLeftY);
|
|
72
75
|
ctx.scale(sx, sy);
|
|
73
76
|
ctx.translate(-viewBox.minX, -viewBox.minY);
|
|
@@ -75,7 +78,7 @@ function renderMathRender(ctx, render, topLeftX, topLeftY, fallbackColor) {
|
|
|
75
78
|
ctx.fillStyle = paths[i].fill === 'currentColor' ? fallbackColor : paths[i].fill;
|
|
76
79
|
ctx.fill(path2ds[i]);
|
|
77
80
|
}
|
|
78
|
-
ctx
|
|
81
|
+
restoreContext(ctx);
|
|
79
82
|
});
|
|
80
83
|
}
|
|
81
84
|
/** Paint an inline formula segment on its line's baseline (body lines,
|
|
@@ -106,7 +109,7 @@ function renderSegments(ctx, segments, startX, baseline, style, justifiedSpaceWi
|
|
|
106
109
|
let currentFill = '';
|
|
107
110
|
const paint = cjk
|
|
108
111
|
? (text, px, py) => fillWordsText(ctx, text, px, py)
|
|
109
|
-
: (text, px, py) => ctx
|
|
112
|
+
: (text, px, py) => fillContextText(ctx, text, px, py);
|
|
110
113
|
const runStyle = (run) => ({
|
|
111
114
|
font: pickSegmentFont(!!run.bold, !!run.italic, style.font, style.boldFont, style.italicFont, style.boldItalicFont),
|
|
112
115
|
fill: pickSegmentColor(!!run.bold, !!run.italic, style.color, style.boldColor, style.italicColor),
|
|
@@ -232,7 +235,7 @@ cuts = 'words') {
|
|
|
232
235
|
// justified run before it added between its characters: painted with
|
|
233
236
|
// that spacing still set, its words ran into the text after it.
|
|
234
237
|
if (spacing !== tracking) {
|
|
235
|
-
ctx
|
|
238
|
+
setLetterSpacing(ctx, tracking);
|
|
236
239
|
spacing = tracking;
|
|
237
240
|
}
|
|
238
241
|
paintChip(ctx, seg.chip, x, baseline, (run) => pickSegmentColor(!!run.bold, !!run.italic, style.color, style.boldColor, style.italicColor));
|
|
@@ -272,7 +275,7 @@ cuts = 'words') {
|
|
|
272
275
|
}
|
|
273
276
|
const segSpacing = tracking + (seg.tracking ?? 0);
|
|
274
277
|
if (segSpacing !== spacing) {
|
|
275
|
-
ctx
|
|
278
|
+
setLetterSpacing(ctx, segSpacing);
|
|
276
279
|
spacing = segSpacing;
|
|
277
280
|
}
|
|
278
281
|
// A compressed CJK mark is painted before its box (`inkOffset`), along
|
|
@@ -287,7 +290,7 @@ cuts = 'words') {
|
|
|
287
290
|
x += seg.width;
|
|
288
291
|
}
|
|
289
292
|
if (spacing !== tracking)
|
|
290
|
-
ctx
|
|
293
|
+
setLetterSpacing(ctx, tracking);
|
|
291
294
|
}
|
|
292
295
|
/** Whether a segment of a line of the CJK composer, or of a line down a
|
|
293
296
|
* vertical page, paints differently from the block's plain text. */
|
|
@@ -295,7 +298,9 @@ function composedSegmentIsStyled(s) {
|
|
|
295
298
|
return !!s.bold || !!s.italic || s.kind === 'math' || s.kind === 'swatch' || s.kind === 'chip' || s.refResourceId !== undefined
|
|
296
299
|
|| s.fontString !== undefined || s.color !== undefined || s.baselineShift !== undefined || s.tracking !== undefined
|
|
297
300
|
|| s.inkOffset !== undefined || s.hangs !== undefined || s.autospace !== undefined || s.tcy !== undefined || s.orientation !== undefined
|
|
298
|
-
|| s.ruby !== undefined || s.kunten !== undefined || s.warichu !== undefined || s.labelTab !== undefined || s.sideMarker !== undefined
|
|
301
|
+
|| s.ruby !== undefined || s.kunten !== undefined || s.warichu !== undefined || s.labelTab !== undefined || s.sideMarker !== undefined
|
|
302
|
+
// A run in its own language, painted in it (#764).
|
|
303
|
+
|| paintsSegmentLanguage(s);
|
|
299
304
|
}
|
|
300
305
|
/**
|
|
301
306
|
* Paint one line. A line of the CJK composer (`cjkComposed`) and every line
|
|
@@ -331,8 +336,14 @@ function renderLine(ctx, line, style, textAlign, columnWidth, columnX, trailing,
|
|
|
331
336
|
// Right-to-left runs on the line: painted in `order`, never as one text.
|
|
332
337
|
// A line with none (a Latin line of a mirrored page, whose `order` only
|
|
333
338
|
// turns the flow around) reads the same painted as one text.
|
|
334
|
-
const order = segments && line.order?.length === segments.length ? line.order : undefined;
|
|
335
339
|
const directed = segments?.some((s) => s.rtl) ?? false;
|
|
340
|
+
// The pieces of a word the layout measured whole are painted as that
|
|
341
|
+
// word (#770), on a line painted segment by segment: asked for there.
|
|
342
|
+
// On a line with an order they are joined too, and the order with them.
|
|
343
|
+
const paintPieces = (x, justifiedSpaceWidth) => {
|
|
344
|
+
const set = paintedSegments(ctx, line, false, tracking, (seg) => seg.fontString ?? pickSegmentFont(!!seg.bold, !!seg.italic, style.font, style.boldFont, style.italicFont, style.boldItalicFont));
|
|
345
|
+
renderSegments(ctx, set.segments, x, line.baseline, style, justifiedSpaceWidth, cjk, tracking, set.order);
|
|
346
|
+
};
|
|
336
347
|
// Justified rendering with per-segment spacing. Last lines render ragged at
|
|
337
348
|
// natural width — except when overfull: Knuth-Plass may accept a final line
|
|
338
349
|
// wider than the measure on the assumption that its inter-word glue shrinks
|
|
@@ -351,7 +362,7 @@ function renderLine(ctx, line, style, textAlign, columnWidth, columnX, trailing,
|
|
|
351
362
|
}
|
|
352
363
|
if (spaceCount > 0 && !line.tabbed && ((!line.isLastLine && !line.ragged) || naturalWidth > effectiveWidth)) {
|
|
353
364
|
const justifiedSpaceWidth = (effectiveWidth - wordWidth) / spaceCount;
|
|
354
|
-
|
|
365
|
+
paintPieces(lineX, justifiedSpaceWidth);
|
|
355
366
|
return;
|
|
356
367
|
}
|
|
357
368
|
}
|
|
@@ -365,7 +376,7 @@ function renderLine(ctx, line, style, textAlign, columnWidth, columnX, trailing,
|
|
|
365
376
|
contentWidth += seg.width;
|
|
366
377
|
const slack = Math.max(0, effectiveWidth - (contentWidth - trailing));
|
|
367
378
|
const startX = lineX + (align === 'center' ? slack / 2 : slack);
|
|
368
|
-
|
|
379
|
+
paintPieces(startX);
|
|
369
380
|
return;
|
|
370
381
|
}
|
|
371
382
|
// Ragged (left-aligned) rendering — also used for last lines of justified
|
|
@@ -375,7 +386,7 @@ function renderLine(ctx, line, style, textAlign, columnWidth, columnX, trailing,
|
|
|
375
386
|
// a line of verse tightened its word spaces to fit (#620); otherwise one
|
|
376
387
|
// fillText paints the line.
|
|
377
388
|
if (segments && (directed || line.verseLine?.spaceRatio !== undefined || segments.some(segmentIsStyled) || (tracking !== 0 && joiningScriptIn(line.text)))) {
|
|
378
|
-
|
|
389
|
+
paintPieces(lineX);
|
|
379
390
|
return;
|
|
380
391
|
}
|
|
381
392
|
ctx.font = style.font;
|
|
@@ -385,13 +396,24 @@ function renderLine(ctx, line, style, textAlign, columnWidth, columnX, trailing,
|
|
|
385
396
|
// A tracked line that would lose a ligature to the letter-spacing is
|
|
386
397
|
// painted word by word, each as it was measured (#663).
|
|
387
398
|
if (tracking !== 0 && segments && segments.length > 0 && shapedOtherwise(ctx, line.text)) {
|
|
388
|
-
|
|
399
|
+
paintPieces(plainX);
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
// One text, where it is as wide as the line's words were measured: the
|
|
403
|
+
// pieces of a plain paragraph's words were measured one by one, and a
|
|
404
|
+
// face that kerns across a cut sets the line shorter; in a line with a
|
|
405
|
+
// Han character the browser draws a word with no letter (a number, a
|
|
406
|
+
// bracketed figure) by other rules than in the string it was measured
|
|
407
|
+
// in (#770).
|
|
408
|
+
if (segments && !paintsAsOneText(ctx, line, tracking, style.font)) {
|
|
409
|
+
paintPieces(plainX);
|
|
389
410
|
return;
|
|
390
411
|
}
|
|
391
|
-
if (cjk)
|
|
412
|
+
if (cjk) {
|
|
392
413
|
fillWordsText(ctx, line.text, plainX, line.baseline);
|
|
393
|
-
|
|
394
|
-
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
fillContextText(ctx, line.text, plainX, line.baseline);
|
|
395
417
|
}
|
|
396
418
|
/** {@link renderLine} for a line of the CJK composer or any line down a
|
|
397
419
|
* vertical page: hung marks and Han–Latin spaces kept out of the
|
|
@@ -401,7 +423,14 @@ function renderComposedLine(ctx, line, style, textAlign, columnWidth, columnX, t
|
|
|
401
423
|
const lineIndent = line.bbox.x - columnX;
|
|
402
424
|
// A line beside a wrapped picture (#627) fills its own span.
|
|
403
425
|
const effectiveWidth = line.measure?.wrap ? line.measure.width : columnWidth - lineIndent;
|
|
404
|
-
|
|
426
|
+
// A line set word by word down a vertical page: the pieces of a word the
|
|
427
|
+
// layout measured whole are painted as that word (#770,
|
|
428
|
+
// `paintedSegments`), as on a horizontal line and as the HTML sets them.
|
|
429
|
+
// A line of the composer, which measures a Western run whole, and a line
|
|
430
|
+
// that carries an order are painted as they are.
|
|
431
|
+
const segments = verticalPaintActive() && !line.cjkComposed && line.order === undefined && line.segments
|
|
432
|
+
? paintedSegments(ctx, line, false, tracking, (seg) => seg.fontString ?? pickSegmentFont(!!seg.bold, !!seg.italic, style.font, style.boldFont, style.italicFont, style.boldItalicFont)).segments
|
|
433
|
+
: line.segments;
|
|
405
434
|
// A line of the CJK composer was measured character by character, any
|
|
406
435
|
// other word by word: two marks that meet are painted apart where they
|
|
407
436
|
// were measured apart.
|
|
@@ -435,7 +464,14 @@ function renderComposedLine(ctx, line, style, textAlign, columnWidth, columnX, t
|
|
|
435
464
|
renderComposedSegments(ctx, segments, startX, line.baseline, style, undefined, tracking, cuts);
|
|
436
465
|
return;
|
|
437
466
|
}
|
|
438
|
-
|
|
467
|
+
// Segment by segment: a line of the composer on a horizontal page always
|
|
468
|
+
// (#770), each segment where the layout put it. Painted as one text, a
|
|
469
|
+
// kana drew up to the mark after it and every character after the pair
|
|
470
|
+
// stood off its place (`fillSegmentText`), and a number among Han
|
|
471
|
+
// characters took other forms than in the string it was measured in
|
|
472
|
+
// (`contextText.ts`). Down a vertical page a line in one style is one
|
|
473
|
+
// call: the vertical painter sets it cell by cell.
|
|
474
|
+
if (segments && segments.length > 0 && (!verticalPaintActive() || segments.some(composedSegmentIsStyled))) {
|
|
439
475
|
renderComposedSegments(ctx, segments, line.bbox.x, line.baseline, style, undefined, tracking, cuts);
|
|
440
476
|
return;
|
|
441
477
|
}
|
|
@@ -460,7 +496,7 @@ function renderTaskBox(ctx, block) {
|
|
|
460
496
|
const { side, stroke } = box;
|
|
461
497
|
const cx = block.bulletOffsetX + side / 2;
|
|
462
498
|
const cy = block.bulletY ?? firstLine.baseline;
|
|
463
|
-
ctx
|
|
499
|
+
saveContext(ctx);
|
|
464
500
|
ctx.strokeStyle = block.bulletColor ?? block.color;
|
|
465
501
|
ctx.lineWidth = stroke;
|
|
466
502
|
ctx.lineJoin = 'miter';
|
|
@@ -475,7 +511,7 @@ function renderTaskBox(ctx, block) {
|
|
|
475
511
|
tick.forEach(([dx, dy], i) => (i === 0 ? ctx.moveTo(cx + dx, cy + dy) : ctx.lineTo(cx + dx, cy + dy)));
|
|
476
512
|
ctx.stroke();
|
|
477
513
|
}
|
|
478
|
-
ctx
|
|
514
|
+
restoreContext(ctx);
|
|
479
515
|
}
|
|
480
516
|
function renderBullet(ctx, block) {
|
|
481
517
|
if (block.bulletBox) {
|
|
@@ -487,7 +523,7 @@ function renderBullet(ctx, block) {
|
|
|
487
523
|
const firstLine = block.lines[0];
|
|
488
524
|
if (!firstLine)
|
|
489
525
|
return;
|
|
490
|
-
ctx
|
|
526
|
+
saveContext(ctx);
|
|
491
527
|
ctx.fillStyle = block.bulletColor ?? block.color;
|
|
492
528
|
// A marker set as text (a contents number) sits on `bulletBaselineY` as
|
|
493
529
|
// its baseline; a list bullet is centred on `bulletY`.
|
|
@@ -512,32 +548,30 @@ function renderBullet(ctx, block) {
|
|
|
512
548
|
if (block.prefixText && block.prefixX !== undefined)
|
|
513
549
|
put(block.prefixText, block.prefixX);
|
|
514
550
|
}
|
|
515
|
-
ctx
|
|
551
|
+
restoreContext(ctx);
|
|
516
552
|
}
|
|
517
553
|
/**
|
|
518
554
|
* A marker that reads right to left (`VDTBlock.bulletDirection`, #664) at
|
|
519
|
-
* `x`, its left edge in the flow:
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
555
|
+
* `x`, its left edge in the flow: one text set right to left
|
|
556
|
+
* (`markerSetText`), which the browser orders and mirrors as it does the
|
|
557
|
+
* HTML's box of the same text; a mirrored flow turns it back once, about
|
|
558
|
+
* its box.
|
|
559
|
+
*
|
|
560
|
+
* Up to postext 1.29 it was painted run by run (`markerRuns`), each run a
|
|
561
|
+
* text of its own, and a run with no letter set alone takes the face's
|
|
562
|
+
* Latin forms where in the marker it takes the ones of the text around
|
|
563
|
+
* it: in Amiri bold at 27.08 px `(١)` is 40.65 px wide as one text, in
|
|
564
|
+
* the layout and in the HTML, and 31.22 px as its three runs; `١.` 24.43
|
|
565
|
+
* against 22.02. A marker whose runs are as wide alone (`1-`, `•`,
|
|
566
|
+
* `الفصل 3`) is painted on the same pixels either way (#770).
|
|
525
567
|
*/
|
|
526
568
|
function fillMarkerRuns(ctx, text, x, y, direction) {
|
|
527
|
-
|
|
528
|
-
if (mirroredPaintActive())
|
|
529
|
-
runs.reverse();
|
|
530
|
-
let at = x;
|
|
531
|
-
for (const run of runs) {
|
|
532
|
-
paintRunInDirection(ctx, run.rtl, () => fillFlowText(ctx, run.text, at, y), run.text);
|
|
533
|
-
if (runs.length > 1)
|
|
534
|
-
at += ctx.measureText(run.text).width;
|
|
535
|
-
}
|
|
569
|
+
paintRunInDirection(ctx, true, () => fillFlowText(ctx, markerSetText(text, direction), x, y), text);
|
|
536
570
|
}
|
|
537
571
|
/** A paragraph's drop cap (#623) on its baseline, and an opening mark
|
|
538
572
|
* hung before it at text size. */
|
|
539
573
|
function renderDropCap(ctx, cap) {
|
|
540
|
-
ctx
|
|
574
|
+
saveContext(ctx);
|
|
541
575
|
ctx.textBaseline = 'alphabetic';
|
|
542
576
|
ctx.fillStyle = cap.color;
|
|
543
577
|
ctx.font = cap.fontString;
|
|
@@ -546,12 +580,12 @@ function renderDropCap(ctx, cap) {
|
|
|
546
580
|
ctx.font = cap.hang.fontString;
|
|
547
581
|
fillFlowText(ctx, cap.hang.text, cap.hang.x, cap.hang.baselineY);
|
|
548
582
|
}
|
|
549
|
-
ctx
|
|
583
|
+
restoreContext(ctx);
|
|
550
584
|
}
|
|
551
585
|
function renderStrikethrough(ctx, block) {
|
|
552
586
|
if (!block.strikethroughText)
|
|
553
587
|
return;
|
|
554
|
-
ctx
|
|
588
|
+
saveContext(ctx);
|
|
555
589
|
ctx.strokeStyle = block.color;
|
|
556
590
|
ctx.lineWidth = Math.max(1, block.lines[0]?.bbox.height ? block.lines[0].bbox.height * 0.05 : 1);
|
|
557
591
|
for (const line of block.lines) {
|
|
@@ -562,7 +596,7 @@ function renderStrikethrough(ctx, block) {
|
|
|
562
596
|
ctx.lineTo(line.bbox.x + line.bbox.width, y);
|
|
563
597
|
ctx.stroke();
|
|
564
598
|
}
|
|
565
|
-
ctx
|
|
599
|
+
restoreContext(ctx);
|
|
566
600
|
}
|
|
567
601
|
/** A strip's caption (`VDTBlock.stripCaption`, #590): the bar behind it,
|
|
568
602
|
* then its lines in the caption's fonts and colours. */
|
|
@@ -572,10 +606,10 @@ function renderStripCaption(ctx, block) {
|
|
|
572
606
|
return;
|
|
573
607
|
if (caption.bar) {
|
|
574
608
|
const { rect, background } = caption.bar;
|
|
575
|
-
ctx
|
|
609
|
+
saveContext(ctx);
|
|
576
610
|
ctx.fillStyle = background;
|
|
577
611
|
ctx.fillRect(block.bbox.x + rect.x, block.bbox.y + rect.y, rect.width, rect.height);
|
|
578
|
-
ctx
|
|
612
|
+
restoreContext(ctx);
|
|
579
613
|
}
|
|
580
614
|
const style = {
|
|
581
615
|
font: block.fontString,
|
|
@@ -640,10 +674,10 @@ inkHex = null) {
|
|
|
640
674
|
for (const line of block.lines) {
|
|
641
675
|
const tracking = (block.letterSpacing ?? 0) + (line.letterSpacing ?? 0);
|
|
642
676
|
if (tracking !== 0)
|
|
643
|
-
ctx
|
|
677
|
+
setLetterSpacing(ctx, tracking);
|
|
644
678
|
renderLine(ctx, line, style, block.textAlign, block.bbox.width, block.bbox.x, lineTrailingTracking(line, tracking), tracking, tocEntry);
|
|
645
679
|
if (tracking !== 0)
|
|
646
|
-
ctx
|
|
680
|
+
setLetterSpacing(ctx, 0);
|
|
647
681
|
// Emphasis dots, proper-name and book-title lines (#193).
|
|
648
682
|
if (line.marks)
|
|
649
683
|
paintLineMarks(ctx, line, block.color);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockRender.js","sourceRoot":"","sources":["../../src/canvas-backend/blockRender.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blockRender.js","sourceRoot":"","sources":["../../src/canvas-backend/blockRender.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paint `text`, the cells of a segment of the CJK composer on a
|
|
3
|
+
* horizontal page, with `paint` (the caller's `fillText`) from `x` on
|
|
4
|
+
* `y`, in the context's font, language and letter-spacing: run by run,
|
|
5
|
+
* each where the cells before it end (see the module comment), turned
|
|
6
|
+
* back as one run on a mirrored page. Returns false, with nothing
|
|
7
|
+
* painted, for a text the caller paints whole: one the browser sets as
|
|
8
|
+
* wide as its cells, a text that is not all cells, a context that does
|
|
9
|
+
* not measure.
|
|
10
|
+
*/
|
|
11
|
+
export declare function fillCellRuns(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, paint: (text: string, x: number, y: number) => void): boolean;
|
|
12
|
+
//# sourceMappingURL=cellText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cellText.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/cellText.ts"],"names":[],"mappings":"AAsGA;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CA6BT"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { measurementGeneration } from '../measure/canvas';
|
|
2
|
+
import { cellsOf } from '../wordPieces';
|
|
3
|
+
import { languageOf, letterSpacingOf } from './contextState';
|
|
4
|
+
import { contextTextWidth } from './contextText';
|
|
5
|
+
import { paintAsOneRun } from './mirrorFrame';
|
|
6
|
+
/** How far, px, a text may stand off the sum of its cells and still be
|
|
7
|
+
* set as they are: above the rounding of the sum, below the least pair a
|
|
8
|
+
* face kerns (a hundredth of the em is 0.075 px at 7.5 px). Not a part of
|
|
9
|
+
* the width: a segment of fifty cells is 1600 px wide at 32 px, and one
|
|
10
|
+
* pair kerned 0.32 px in it moves every cell after it. */
|
|
11
|
+
const SAME_CELLS = 0.02;
|
|
12
|
+
const sameCells = (a, b) => Math.abs(a - b) <= SAME_CELLS;
|
|
13
|
+
/** Texts remembered per font and language before the memory starts over. */
|
|
14
|
+
const MAX_TEXTS = 8192;
|
|
15
|
+
/** Language and font → text → its runs, null for a text painted whole. */
|
|
16
|
+
let known = new Map();
|
|
17
|
+
let knownAt = -1;
|
|
18
|
+
function runsOf(ctx, text) {
|
|
19
|
+
const cells = cellsOf(text);
|
|
20
|
+
if (!cells)
|
|
21
|
+
return null;
|
|
22
|
+
// Widths under the letter-spacing in force: it follows every character,
|
|
23
|
+
// in a cell alone as in a run, so the comparisons hold under any.
|
|
24
|
+
const spacing = letterSpacingOf(ctx);
|
|
25
|
+
const widths = cells.map((cell) => contextTextWidth(ctx, cell));
|
|
26
|
+
let sum = 0;
|
|
27
|
+
for (const w of widths)
|
|
28
|
+
sum += w;
|
|
29
|
+
if (sameCells(contextTextWidth(ctx, text), sum))
|
|
30
|
+
return null;
|
|
31
|
+
// Cut between two characters the browser does not set as two cells.
|
|
32
|
+
const stretches = [];
|
|
33
|
+
let from = 0;
|
|
34
|
+
for (let i = 1; i <= cells.length; i++) {
|
|
35
|
+
if (i < cells.length && sameCells(contextTextWidth(ctx, cells[i - 1] + cells[i]), widths[i - 1] + widths[i]))
|
|
36
|
+
continue;
|
|
37
|
+
stretches.push([from, i]);
|
|
38
|
+
from = i;
|
|
39
|
+
}
|
|
40
|
+
const runs = [];
|
|
41
|
+
const advances = [];
|
|
42
|
+
const counts = [];
|
|
43
|
+
const add = (a, b) => {
|
|
44
|
+
let advance = 0;
|
|
45
|
+
for (let k = a; k < b; k++)
|
|
46
|
+
advance += widths[k] - spacing;
|
|
47
|
+
runs.push(cells.slice(a, b).join(''));
|
|
48
|
+
advances.push(advance);
|
|
49
|
+
counts.push(b - a);
|
|
50
|
+
};
|
|
51
|
+
for (const [a, b] of stretches) {
|
|
52
|
+
// Three characters or more that are not as wide together as their
|
|
53
|
+
// cells, though each pair is: cell by cell.
|
|
54
|
+
let whole = b - a < 3;
|
|
55
|
+
if (!whole) {
|
|
56
|
+
let cellsWidth = 0;
|
|
57
|
+
for (let k = a; k < b; k++)
|
|
58
|
+
cellsWidth += widths[k];
|
|
59
|
+
whole = sameCells(contextTextWidth(ctx, cells.slice(a, b).join('')), cellsWidth);
|
|
60
|
+
}
|
|
61
|
+
if (whole)
|
|
62
|
+
add(a, b);
|
|
63
|
+
else
|
|
64
|
+
for (let k = a; k < b; k++)
|
|
65
|
+
add(k, k + 1);
|
|
66
|
+
}
|
|
67
|
+
return { runs, advances, counts };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Paint `text`, the cells of a segment of the CJK composer on a
|
|
71
|
+
* horizontal page, with `paint` (the caller's `fillText`) from `x` on
|
|
72
|
+
* `y`, in the context's font, language and letter-spacing: run by run,
|
|
73
|
+
* each where the cells before it end (see the module comment), turned
|
|
74
|
+
* back as one run on a mirrored page. Returns false, with nothing
|
|
75
|
+
* painted, for a text the caller paints whole: one the browser sets as
|
|
76
|
+
* wide as its cells, a text that is not all cells, a context that does
|
|
77
|
+
* not measure.
|
|
78
|
+
*/
|
|
79
|
+
export function fillCellRuns(ctx, text, x, y, paint) {
|
|
80
|
+
if (text.length < 2 || typeof ctx.measureText !== 'function')
|
|
81
|
+
return false;
|
|
82
|
+
const generation = measurementGeneration();
|
|
83
|
+
if (generation !== knownAt) {
|
|
84
|
+
known = new Map();
|
|
85
|
+
knownAt = generation;
|
|
86
|
+
}
|
|
87
|
+
const key = `${languageOf(ctx) ?? ''}\u0000${ctx.font}`;
|
|
88
|
+
let texts = known.get(key);
|
|
89
|
+
if (!texts)
|
|
90
|
+
known.set(key, texts = new Map());
|
|
91
|
+
let cells = texts.get(text);
|
|
92
|
+
if (cells === undefined) {
|
|
93
|
+
cells = runsOf(ctx, text);
|
|
94
|
+
if (texts.size >= MAX_TEXTS)
|
|
95
|
+
texts.clear();
|
|
96
|
+
texts.set(text, cells);
|
|
97
|
+
}
|
|
98
|
+
if (!cells)
|
|
99
|
+
return false;
|
|
100
|
+
const spacing = letterSpacingOf(ctx);
|
|
101
|
+
const { runs, advances, counts } = cells;
|
|
102
|
+
let width = 0;
|
|
103
|
+
for (let i = 0; i < runs.length; i++)
|
|
104
|
+
width += advances[i] + spacing * counts[i];
|
|
105
|
+
paintAsOneRun(ctx, x, width, () => {
|
|
106
|
+
let at = x;
|
|
107
|
+
for (let i = 0; i < runs.length; i++) {
|
|
108
|
+
paint(runs[i], at, y);
|
|
109
|
+
at += advances[i] + spacing * counts[i];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=cellText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cellText.js","sourceRoot":"","sources":["../../src/canvas-backend/cellText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/chip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/chip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAqBlD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,OAAO,EACb,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,GAClC,IAAI,CAqCN"}
|