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
|
@@ -38,6 +38,71 @@
|
|
|
38
38
|
* like any other, where the painter set the context right to left for
|
|
39
39
|
* it (`fillSegmentWord`, `paintRunInDirection`): its pieces are set from
|
|
40
40
|
* the right end of its box, each painted right to left.
|
|
41
|
+
*
|
|
42
|
+
* The tracking of a ligature (#770). The layout counts the tracking once
|
|
43
|
+
* a letter: a word is its natural width and the tracking times its
|
|
44
|
+
* letters, and that is what the browser paints wherever the
|
|
45
|
+
* letter-spacing dissolves nothing (Geist's `fi` is one glyph as wide as
|
|
46
|
+
* `f` and `i`: under a letter-spacing the two letters are set apart, each
|
|
47
|
+
* with the tracking after it). A ligature painted alone advanced by one
|
|
48
|
+
* tracking, as one glyph, so a word that held one ended a tracking short
|
|
49
|
+
* of its box for each letter the ligature had joined: `shift` in Source
|
|
50
|
+
* Serif 4 at 19.58 px on a line justified with 0.39 px a letter, box
|
|
51
|
+
* 43.37 px, painted 42.98 px, and `efit` on a line tightened by 0.34 px
|
|
52
|
+
* ran 0.34 px over the word after it. In a document shaped in its own
|
|
53
|
+
* language ({@link setLetterTracking}) the piece after a ligature starts
|
|
54
|
+
* the tracking of every letter before it further on, the ligature's
|
|
55
|
+
* letters each counted: the word ends where its box does, and the HTML
|
|
56
|
+
* and the PDF set it the same. A document that keeps its host's language
|
|
57
|
+
* is painted as it was, and so is a right-to-left word of any document
|
|
58
|
+
* (a Hebrew face with a ligature): one tracking a ligature in the three
|
|
59
|
+
* outputs.
|
|
60
|
+
*
|
|
61
|
+
* What a letter-spacing takes away besides ligatures (#770). Chrome sets
|
|
62
|
+
* no contextual alternate either under a letter-spacing (`calt`, with
|
|
63
|
+
* `liga` and `clig`), and the canvas cannot ask for them back. Cormorant
|
|
64
|
+
* SC draws the hyphen between two capitals 1.47 px wider at 17.71 px: the
|
|
65
|
+
* running head `A MAD TEA-PARTY`, tracked 2.5 px, was measured 192.76 px
|
|
66
|
+
* and painted 191.30 px, no pair of its letters being a ligature. Playpen
|
|
67
|
+
* Sans gives nearly every letter another form by its neighbours, so most
|
|
68
|
+
* pairs read as ligatures and their pieces stood where no shaping puts
|
|
69
|
+
* them: `UNIT 12` at 18.75 px, measured 98.52 px, ended at 97.70 px, and
|
|
70
|
+
* `FOR PARENTS AND CARERS` 1.31 px past its 322.85 px. In a document
|
|
71
|
+
* shaped in its own language a word whose pieces do not end where the
|
|
72
|
+
* word was measured to end, or that the letter-spacing reshapes with no
|
|
73
|
+
* ligature to keep, is painted whole at the letter-spacing that ends it
|
|
74
|
+
* there: the tracking, and what the reshaping took or gave shared among
|
|
75
|
+
* its letters (2.66 px a letter for `TEA-PARTY`). A text of several words
|
|
76
|
+
* is then painted word by word, each where the natural shaping puts it
|
|
77
|
+
* with the tracking of every letter before it, as the HTML sets its boxes
|
|
78
|
+
* ({@link fittedParts}). The forms are the ones the browser draws under a
|
|
79
|
+
* letter-spacing; the widths are the ones measured.
|
|
80
|
+
*
|
|
81
|
+
* A ligature and a form by the neighbours told apart (#770). To the probe
|
|
82
|
+
* they read the same: two neighbours whose width under a letter-spacing,
|
|
83
|
+
* the spacing taken off, is not their natural width. A ligature is one
|
|
84
|
+
* glyph, which no spacing opens; a form by the neighbours is still a
|
|
85
|
+
* glyph a letter, and under a letter-spacing the browser sets the same
|
|
86
|
+
* letters in their plain forms, each spaced. Playpen Sans reshapes `FO`
|
|
87
|
+
* and `OR` so: `FOR`, read as a ligature of three, was painted with no
|
|
88
|
+
* tracking inside and the tracking of its three letters after it. In
|
|
89
|
+
* `FOR PARENTS AND CARERS` at 17.71 px, tracked 3.125 px, its letters
|
|
90
|
+
* stood as close as in untracked text, those of the three other words
|
|
91
|
+
* 2.9 to 3.2 px apart, and 18.2 px lay between `FOR` and `PARENTS`
|
|
92
|
+
* against 12 px between the other words. A zero width non-joiner between
|
|
93
|
+
* the two letters tells them apart: it dissolves a ligature and leaves a
|
|
94
|
+
* form by the neighbours as it is. Chrome 154: `fi` in Source Serif 4 at
|
|
95
|
+
* 40 px is 26.16 px, 28.92 px under a letter-spacing and 28.92 px across
|
|
96
|
+
* a non-joiner; `FO` in Playpen Sans at 17.71 px 24.178, 24.107 and
|
|
97
|
+
* 24.178 px. The kerning stands across it: `AV` in Source Serif 4 is
|
|
98
|
+
* 52.08 px with and without, 56.84 px its two letters apart.
|
|
99
|
+
* In a document shaped in its own language two neighbours as wide across
|
|
100
|
+
* a non-joiner as without one are no ligature ({@link ligated}), and a
|
|
101
|
+
* word with none is painted whole at the letter-spacing that ends it on
|
|
102
|
+
* its box, as any other the letter-spacing reshapes: `FOR` at 2.68 px a
|
|
103
|
+
* letter. A document that keeps its host's language is painted as it
|
|
104
|
+
* was, and so is a right-to-left word of any document, which is never
|
|
105
|
+
* painted at a letter-spacing of its own.
|
|
41
106
|
*/
|
|
42
107
|
/** One piece of a word painted apart from the rest. */
|
|
43
108
|
export interface TrackedPiece {
|
|
@@ -46,11 +111,20 @@ export interface TrackedPiece {
|
|
|
46
111
|
* start: its left end, or its right end for a right-to-left word. */
|
|
47
112
|
offset: number;
|
|
48
113
|
/** Glyphs of the word before the piece: each takes the tracking once (a
|
|
49
|
-
* ligature is one glyph, as in the PDF
|
|
114
|
+
* ligature is one glyph, as in the PDF of a document that keeps its
|
|
115
|
+
* host's language). */
|
|
50
116
|
glyphsBefore: number;
|
|
117
|
+
/** Letters (graphemes) of the word before the piece, the letters of a
|
|
118
|
+
* ligature each counted: what the layout counted the tracking of. */
|
|
119
|
+
lettersBefore: number;
|
|
51
120
|
/** A ligature: painted with no letter-spacing. */
|
|
52
121
|
ligature: boolean;
|
|
53
122
|
}
|
|
123
|
+
/** Give a ligature of a tracked word the tracking of every letter it
|
|
124
|
+
* joins from now on (`on`), as the layout counted it, or of one glyph as
|
|
125
|
+
* up to postext 1.29: the page painter says which for the document it
|
|
126
|
+
* paints (`bodyText.shapingLanguage`, through `setSegmentLanguages`). */
|
|
127
|
+
export declare function setLetterTracking(on: boolean): void;
|
|
54
128
|
/**
|
|
55
129
|
* Whether the browser shapes `text`, in the context's font, otherwise once
|
|
56
130
|
* a letter-spacing is set: its width at a letter-spacing, that spacing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackedText.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/trackedText.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trackedText.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/trackedText.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAEH,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb;0EACsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf;;4BAEwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB;0EACsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAuED;;;0EAG0E;AAC1E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAEnD;AAsOD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,GAAG,IAAI,CAEzG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,GAClD,MAAM,GAAG,SAAS,CAiBpB"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { bidiClassOf, needsBidi } from '../bidi';
|
|
2
2
|
import { graphemesOf } from '../measure/graphemes';
|
|
3
3
|
import { joiningScriptIn } from '../measure/joining';
|
|
4
|
+
import { hasCJK } from '../measure/cjk';
|
|
4
5
|
import { paintAsOneRun } from './mirrorFrame';
|
|
6
|
+
import { letterSpacingOf, setLetterSpacing } from './contextState';
|
|
7
|
+
import { contextTextWidth } from './contextText';
|
|
5
8
|
/** Letter-spacing the words are probed with, px. */
|
|
6
9
|
const PROBE = 1;
|
|
7
10
|
/** Least difference, px, between a word's natural width and its width
|
|
@@ -12,6 +15,16 @@ const TOLERANCE = 0.05;
|
|
|
12
15
|
const MAX_WORDS = 8192;
|
|
13
16
|
/** Font string → what is known of each text set in it. */
|
|
14
17
|
const knownByFont = new Map();
|
|
18
|
+
/** Whether a ligature takes the tracking of each of its letters (see
|
|
19
|
+
* {@link setLetterTracking}). */
|
|
20
|
+
let letterTracking = false;
|
|
21
|
+
/** Give a ligature of a tracked word the tracking of every letter it
|
|
22
|
+
* joins from now on (`on`), as the layout counted it, or of one glyph as
|
|
23
|
+
* up to postext 1.29: the page painter says which for the document it
|
|
24
|
+
* paints (`bodyText.shapingLanguage`, through `setSegmentLanguages`). */
|
|
25
|
+
export function setLetterTracking(on) {
|
|
26
|
+
letterTracking = on;
|
|
27
|
+
}
|
|
15
28
|
/** Bidi classes a right-to-left run holds at one level whatever stands
|
|
16
29
|
* beside them: its letters, their marks, and the neutral characters that
|
|
17
30
|
* take the run's direction. A digit, a Latin letter or a bidi control
|
|
@@ -19,12 +32,15 @@ const knownByFont = new Map();
|
|
|
19
32
|
const ONE_LEVEL_RTL = new Set(['R', 'AL', 'NSM', 'WS', 'ON', 'CS', 'ES', 'ET']);
|
|
20
33
|
function known(ctx, font) {
|
|
21
34
|
// A face ligates otherwise under a language (no `fi` in Turkish): the
|
|
22
|
-
// context's own is part of the key (#764).
|
|
35
|
+
// context's own is part of the key (#764). So is the document's way of
|
|
36
|
+
// telling a ligature (`letterTracking`): the pieces of a word are not
|
|
37
|
+
// the same in the two.
|
|
23
38
|
const lang = ctx.lang;
|
|
24
|
-
const
|
|
39
|
+
const own = letterTracking ? '\u0001' : '';
|
|
40
|
+
const key = typeof lang === 'string' && lang !== 'inherit' ? `${own}${lang}\u0000${font}` : own + font;
|
|
25
41
|
let k = knownByFont.get(key);
|
|
26
42
|
if (!k)
|
|
27
|
-
knownByFont.set(key, k = { otherwise: new Map(), words: new Map() });
|
|
43
|
+
knownByFont.set(key, k = { otherwise: new Map(), joined: new Map(), words: new Map(), fitted: new Map() });
|
|
28
44
|
return k;
|
|
29
45
|
}
|
|
30
46
|
/** The direction `text` runs in when it may be painted in pieces at all
|
|
@@ -43,8 +59,8 @@ function divisible(text) {
|
|
|
43
59
|
return 'rtl';
|
|
44
60
|
}
|
|
45
61
|
function widthAt(ctx, text, spacing) {
|
|
46
|
-
ctx
|
|
47
|
-
return ctx
|
|
62
|
+
setLetterSpacing(ctx, spacing);
|
|
63
|
+
return contextTextWidth(ctx, text);
|
|
48
64
|
}
|
|
49
65
|
/** {@link shapedOtherwise}, measured: the context's `letterSpacing` is
|
|
50
66
|
* left at any value. */
|
|
@@ -70,6 +86,33 @@ function otherwise(ctx, font, text) {
|
|
|
70
86
|
}
|
|
71
87
|
return changed;
|
|
72
88
|
}
|
|
89
|
+
/** ZERO WIDTH NON-JOINER: between two letters it asks for no ligature of
|
|
90
|
+
* them. */
|
|
91
|
+
const ZWNJ = '\u200C';
|
|
92
|
+
/**
|
|
93
|
+
* Whether two neighbours the letter-spacing reshapes are a ligature (see
|
|
94
|
+
* the module comment): in a document shaped in its own language, whether
|
|
95
|
+
* a non-joiner between them changes their natural width. As wide across
|
|
96
|
+
* it as without it, each letter keeps a glyph of its own, in a form by
|
|
97
|
+
* its neighbour that the letter-spacing takes away. A document that keeps
|
|
98
|
+
* its host's language reads every such pair as a ligature, as up to
|
|
99
|
+
* postext 1.29, and so does a measurer that gives the non-joiner a width.
|
|
100
|
+
* Asked of the pairs of a left-to-right word only.
|
|
101
|
+
*/
|
|
102
|
+
function ligated(ctx, font, first, second) {
|
|
103
|
+
if (!letterTracking)
|
|
104
|
+
return true;
|
|
105
|
+
const { joined } = known(ctx, font);
|
|
106
|
+
const pair = first + second;
|
|
107
|
+
let is = joined.get(pair);
|
|
108
|
+
if (is === undefined) {
|
|
109
|
+
is = Math.abs(widthAt(ctx, first + ZWNJ + second, 0) - widthAt(ctx, pair, 0)) > TOLERANCE;
|
|
110
|
+
if (joined.size >= MAX_WORDS)
|
|
111
|
+
joined.clear();
|
|
112
|
+
joined.set(pair, is);
|
|
113
|
+
}
|
|
114
|
+
return is;
|
|
115
|
+
}
|
|
73
116
|
function wordOf(ctx, font, text) {
|
|
74
117
|
const direction = divisible(text);
|
|
75
118
|
if (!direction)
|
|
@@ -83,7 +126,7 @@ function wordOf(ctx, font, text) {
|
|
|
83
126
|
let ligatures = 0;
|
|
84
127
|
for (let k = 0; k < letters.length;) {
|
|
85
128
|
let end = k + 1;
|
|
86
|
-
while (end < letters.length && otherwise(ctx, font, letters[end - 1] + letters[end]))
|
|
129
|
+
while (end < letters.length && otherwise(ctx, font, letters[end - 1] + letters[end]) && (direction === 'rtl' || ligated(ctx, font, letters[end - 1], letters[end])))
|
|
87
130
|
end++;
|
|
88
131
|
const ligature = end - k > 1;
|
|
89
132
|
const last = groups[groups.length - 1];
|
|
@@ -95,21 +138,101 @@ function wordOf(ctx, font, text) {
|
|
|
95
138
|
ligatures++;
|
|
96
139
|
k = end;
|
|
97
140
|
}
|
|
98
|
-
// Shaped otherwise as a whole but by no
|
|
141
|
+
// Shaped otherwise as a whole but by no ligature of two neighbours: left
|
|
142
|
+
// as it was.
|
|
99
143
|
if (ligatures === 0)
|
|
100
144
|
return null;
|
|
101
|
-
ctx
|
|
102
|
-
const natural = (from, to) => ctx
|
|
145
|
+
setLetterSpacing(ctx, 0);
|
|
146
|
+
const natural = (from, to) => contextTextWidth(ctx, letters.slice(from, to).join(''));
|
|
103
147
|
let glyphs = 0;
|
|
104
148
|
const pieces = groups.map((g) => {
|
|
105
149
|
// Up to the piece's first letter in the natural shaping, the kerning
|
|
106
150
|
// before it counted: the pieces meet as the whole word's letters do.
|
|
107
151
|
const offset = g.start === 0 ? 0 : natural(0, g.start + 1) - natural(g.start, g.start + 1);
|
|
108
|
-
const piece = { text: letters.slice(g.start, g.end).join(''), offset, glyphsBefore: glyphs, ligature: g.ligature };
|
|
152
|
+
const piece = { text: letters.slice(g.start, g.end).join(''), offset, glyphsBefore: glyphs, lettersBefore: g.start, ligature: g.ligature };
|
|
109
153
|
glyphs += g.ligature ? 1 : g.end - g.start;
|
|
110
154
|
return piece;
|
|
111
155
|
});
|
|
112
|
-
|
|
156
|
+
const whole = natural(0, letters.length);
|
|
157
|
+
// Where the last piece ends, painted as it is alone: a ligature at its
|
|
158
|
+
// natural width, the letters after one as the letter-spacing shapes
|
|
159
|
+
// them.
|
|
160
|
+
const last = pieces[pieces.length - 1];
|
|
161
|
+
const end = last.offset + (last.ligature ? contextTextWidth(ctx, last.text) : spacedWidth(ctx, last.text).width);
|
|
162
|
+
return { pieces, natural: whole, letters: letters.length, rtl: direction === 'rtl', fits: Math.abs(end - whole) <= TOLERANCE };
|
|
163
|
+
}
|
|
164
|
+
/** The width of `text` under a letter-spacing with that spacing taken
|
|
165
|
+
* off, and what one px of letter-spacing adds to it (a px a letter,
|
|
166
|
+
* where the context spaces every letter). The context's `letterSpacing`
|
|
167
|
+
* is left at any value. */
|
|
168
|
+
function spacedWidth(ctx, text) {
|
|
169
|
+
const one = widthAt(ctx, text, PROBE);
|
|
170
|
+
const step = (widthAt(ctx, text, 2 * PROBE) - one) / PROBE;
|
|
171
|
+
return { width: one - step * PROBE, step };
|
|
172
|
+
}
|
|
173
|
+
/** Runs of spaces and the words between them. */
|
|
174
|
+
const PARTS_RE = /( +)/;
|
|
175
|
+
/**
|
|
176
|
+
* The parts a tracked `text` is painted in where its pieces do not fit
|
|
177
|
+
* or the letter-spacing reshapes it with no ligature to keep (see the
|
|
178
|
+
* module comment): its words and its runs of spaces, each where the
|
|
179
|
+
* natural shaping puts it (the canvas shapes a text word by word, and
|
|
180
|
+
* nothing is kerned across a space). A word keeps its pieces when they
|
|
181
|
+
* fit; one the letter-spacing reshapes otherwise is painted whole at the
|
|
182
|
+
* letter-spacing that ends it where it was measured; any other at the
|
|
183
|
+
* tracking. Null when every part is painted at the tracking (the text is
|
|
184
|
+
* painted whole), and for a text that is not left to right.
|
|
185
|
+
*/
|
|
186
|
+
function fittedOf(ctx, font, text) {
|
|
187
|
+
if (divisible(text) !== 'ltr')
|
|
188
|
+
return null;
|
|
189
|
+
const parts = [];
|
|
190
|
+
let offset = 0;
|
|
191
|
+
let lettersBefore = 0;
|
|
192
|
+
let plain = true;
|
|
193
|
+
for (const part of text.split(PARTS_RE)) {
|
|
194
|
+
if (part === '')
|
|
195
|
+
continue;
|
|
196
|
+
setLetterSpacing(ctx, 0);
|
|
197
|
+
const natural = contextTextWidth(ctx, part);
|
|
198
|
+
const letters = graphemesOf(part).length;
|
|
199
|
+
let word = null;
|
|
200
|
+
let spaced;
|
|
201
|
+
// A word with a CJK character is left as it was: its cells are not
|
|
202
|
+
// measured at a natural width (the composer, a vertical line).
|
|
203
|
+
if (part[0] !== ' ' && letters > 1 && !hasCJK(part) && otherwise(ctx, font, part)) {
|
|
204
|
+
const cut = wordOf(ctx, font, part);
|
|
205
|
+
if (cut?.fits)
|
|
206
|
+
word = cut;
|
|
207
|
+
else {
|
|
208
|
+
const under = spacedWidth(ctx, part);
|
|
209
|
+
if (under.step > 0)
|
|
210
|
+
spaced = under;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (word || spaced)
|
|
214
|
+
plain = false;
|
|
215
|
+
parts.push({ text: part, offset, lettersBefore, word, ...(spaced ? { spaced } : {}), natural, letters });
|
|
216
|
+
offset += natural;
|
|
217
|
+
lettersBefore += letters;
|
|
218
|
+
}
|
|
219
|
+
return plain ? null : { parts, natural: offset, letters: lettersBefore };
|
|
220
|
+
}
|
|
221
|
+
/** {@link fittedOf}, remembered. The context's `letterSpacing` is put
|
|
222
|
+
* back as it was found. */
|
|
223
|
+
function fittedParts(ctx, text) {
|
|
224
|
+
const font = ctx.font;
|
|
225
|
+
const { fitted } = known(ctx, font);
|
|
226
|
+
let parts = fitted.get(text);
|
|
227
|
+
if (parts === undefined) {
|
|
228
|
+
const spacing = letterSpacingOf(ctx);
|
|
229
|
+
parts = fittedOf(ctx, font, text);
|
|
230
|
+
setLetterSpacing(ctx, spacing);
|
|
231
|
+
if (fitted.size >= MAX_WORDS)
|
|
232
|
+
fitted.clear();
|
|
233
|
+
fitted.set(text, parts);
|
|
234
|
+
}
|
|
235
|
+
return parts;
|
|
113
236
|
}
|
|
114
237
|
/** {@link trackedPieces} with the word's measures. A word is cut only
|
|
115
238
|
* where the context paints in its direction: a right-to-left word in a
|
|
@@ -122,9 +245,9 @@ function trackedWord(ctx, text) {
|
|
|
122
245
|
const { words } = known(ctx, font);
|
|
123
246
|
let word = words.get(text);
|
|
124
247
|
if (word === undefined) {
|
|
125
|
-
const spacing = ctx
|
|
248
|
+
const spacing = letterSpacingOf(ctx);
|
|
126
249
|
word = wordOf(ctx, font, text);
|
|
127
|
-
ctx
|
|
250
|
+
setLetterSpacing(ctx, spacing);
|
|
128
251
|
if (words.size >= MAX_WORDS)
|
|
129
252
|
words.clear();
|
|
130
253
|
words.set(text, word);
|
|
@@ -148,9 +271,9 @@ function measures(ctx) {
|
|
|
148
271
|
export function shapedOtherwise(ctx, text) {
|
|
149
272
|
if (text.length < 2 || !measures(ctx))
|
|
150
273
|
return false;
|
|
151
|
-
const spacing = ctx
|
|
274
|
+
const spacing = letterSpacingOf(ctx);
|
|
152
275
|
const changed = otherwise(ctx, ctx.font, text);
|
|
153
|
-
ctx
|
|
276
|
+
setLetterSpacing(ctx, spacing);
|
|
154
277
|
return changed;
|
|
155
278
|
}
|
|
156
279
|
/**
|
|
@@ -180,26 +303,67 @@ export function trackedPieces(ctx, text) {
|
|
|
180
303
|
*/
|
|
181
304
|
export function fillTrackedWord(ctx, text, x, y, tracking, paint) {
|
|
182
305
|
const word = tracking !== 0 ? trackedWord(ctx, text) : null;
|
|
306
|
+
// In a document shaped in its own language, a text whose pieces do not
|
|
307
|
+
// end where it was measured to end, or that the letter-spacing reshapes
|
|
308
|
+
// with no ligature to keep, is painted part by part (see the module
|
|
309
|
+
// comment).
|
|
310
|
+
if (letterTracking && tracking !== 0 && !(word?.fits) && text.length > 1 && measures(ctx) && !('direction' in ctx && ctx.direction === 'rtl')) {
|
|
311
|
+
const fitted = fittedParts(ctx, text);
|
|
312
|
+
if (fitted)
|
|
313
|
+
return fillFittedParts(ctx, fitted, x, y, tracking, paint);
|
|
314
|
+
}
|
|
183
315
|
if (!word) {
|
|
184
316
|
paint(text, x, y);
|
|
185
317
|
return undefined;
|
|
186
318
|
}
|
|
187
319
|
const width = word.natural + tracking * word.letters;
|
|
320
|
+
paintAsOneRun(ctx, x, width, () => fillPieces(ctx, word, x, width, y, tracking, paint));
|
|
321
|
+
return width;
|
|
322
|
+
}
|
|
323
|
+
/** The pieces of `word`, whose box is `width` px from `x`. */
|
|
324
|
+
function fillPieces(ctx, word, x, width, y, tracking, paint) {
|
|
325
|
+
const align = ctx.textAlign;
|
|
326
|
+
// Each piece of a right-to-left word from its own right end.
|
|
327
|
+
if (word.rtl)
|
|
328
|
+
ctx.textAlign = 'right';
|
|
329
|
+
for (const piece of word.pieces) {
|
|
330
|
+
// A right-to-left word keeps one tracking a ligature, as in the
|
|
331
|
+
// HTML and the PDF.
|
|
332
|
+
const at = piece.offset + tracking * (letterTracking && !word.rtl ? piece.lettersBefore : piece.glyphsBefore);
|
|
333
|
+
if (piece.ligature)
|
|
334
|
+
setLetterSpacing(ctx, 0);
|
|
335
|
+
paint(piece.text, word.rtl ? x + width - at : x + at, y);
|
|
336
|
+
if (piece.ligature)
|
|
337
|
+
setLetterSpacing(ctx, tracking);
|
|
338
|
+
}
|
|
339
|
+
if (word.rtl)
|
|
340
|
+
ctx.textAlign = align;
|
|
341
|
+
}
|
|
342
|
+
/** {@link fittedParts} painted from `x`: one run in a mirrored frame.
|
|
343
|
+
* Returns the width the text was measured at. */
|
|
344
|
+
function fillFittedParts(ctx, fitted, x, y, tracking, paint) {
|
|
345
|
+
const width = fitted.natural + tracking * fitted.letters;
|
|
188
346
|
paintAsOneRun(ctx, x, width, () => {
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
347
|
+
for (const part of fitted.parts) {
|
|
348
|
+
const at = x + part.offset + tracking * part.lettersBefore;
|
|
349
|
+
if (part.word)
|
|
350
|
+
fillPieces(ctx, part.word, at, part.natural + tracking * part.letters, y, tracking, paint);
|
|
351
|
+
else if (part.spaced) {
|
|
352
|
+
// The letter-spacing under which the part, as the browser shapes
|
|
353
|
+
// it then, is as wide as its natural width and its tracking.
|
|
354
|
+
const fit = (part.natural + tracking * part.letters - part.spaced.width) / part.spaced.step;
|
|
355
|
+
// At no letter-spacing the browser would shape it naturally again.
|
|
356
|
+
if (Math.abs(fit) < 1e-6)
|
|
357
|
+
paint(part.text, at, y);
|
|
358
|
+
else {
|
|
359
|
+
setLetterSpacing(ctx, fit);
|
|
360
|
+
paint(part.text, at, y);
|
|
361
|
+
setLetterSpacing(ctx, tracking);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else
|
|
365
|
+
paint(part.text, at, y);
|
|
200
366
|
}
|
|
201
|
-
if (word.rtl)
|
|
202
|
-
ctx.textAlign = align;
|
|
203
367
|
});
|
|
204
368
|
return width;
|
|
205
369
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackedText.js","sourceRoot":"","sources":["../../src/canvas-backend/trackedText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAyD9C,oDAAoD;AACpD,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB;;qEAEqE;AACrE,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,+DAA+D;AAC/D,MAAM,SAAS,GAAG,IAAI,CAAC;AAmBvB,0DAA0D;AAC1D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;AAI7C;;;4BAG4B;AAC5B,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAErG,SAAS,KAAK,CAAC,GAAW,EAAE,IAAY;IACtC,sEAAsE;IACtE,2CAA2C;IAC3C,MAAM,IAAI,GAAI,GAA0B,CAAC,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;iCAGiC;AACjC,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,GAAQ,EAAE,IAAY,EAAE,OAAe;IACtD,GAAG,CAAC,aAAa,GAAG,GAAG,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC;AAED;yBACyB;AACzB,SAAS,KAAK,CAAC,GAAQ,EAAE,IAAY;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1C,qEAAqE;IACrE,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,yEAAyE;IACzE,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY;IACrD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY;IAClD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,MAAM,GAAwD,EAAE,CAAC;IACvE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACpC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAE,GAAG,OAAO,CAAC,GAAG,CAAE,CAAC;YAAE,GAAG,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;;YACnD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,IAAI,QAAQ;YAAE,SAAS,EAAE,CAAC;QAC1B,CAAC,GAAG,GAAG,CAAC;IACV,CAAC;IACD,4EAA4E;IAC5E,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnH,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;AAC5G,CAAC;AAED;;;4EAG4E;AAC5E,SAAS,WAAW,CAAC,GAA6B,EAAE,IAAY;IAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC;QAClC,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,GAA6B;IAC7C,OAAO,eAAe,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,CAAC;AACzE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAA6B,EAAE,IAAY;IACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IAC5B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAA6B,EAAE,IAAY;IACvE,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC7B,GAA6B,EAC7B,IAAY,EACZ,CAAS,EACT,CAAS,EACT,QAAgB,EAChB,KAAmD;IAEnD,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;IACrD,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;QAC5B,6DAA6D;QAC7D,IAAI,IAAI,CAAC,GAAG;YAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;YACxD,IAAI,KAAK,CAAC,QAAQ;gBAAE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;YAC9C,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,QAAQ;gBAAE,GAAG,CAAC,aAAa,GAAG,GAAG,QAAQ,IAAI,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,GAAG;YAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"trackedText.js","sourceRoot":"","sources":["../../src/canvas-backend/trackedText.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,15 @@ export interface VerticalPaintState {
|
|
|
45
45
|
export declare function setVerticalPaint(state: VerticalPaintState | null): VerticalPaintState | null;
|
|
46
46
|
/** Whether text painted now is set vertically. */
|
|
47
47
|
export declare function verticalPaintActive(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* How far the pen moves down the line for `text` painted now in the
|
|
50
|
+
* context's font, as the layout measured it (`verticalTextWidth`): each
|
|
51
|
+
* sideways run at the advance the context gives it, each cell at its
|
|
52
|
+
* length in ems, `tracking` px after every character and every cell.
|
|
53
|
+
* The context's `letterSpacing` is 0 (the tracking is counted here).
|
|
54
|
+
* Undefined on a horizontal page.
|
|
55
|
+
*/
|
|
56
|
+
export declare function verticalFlowAdvance(ctx: CanvasRenderingContext2D, text: string, tracking: number): number | undefined;
|
|
48
57
|
/**
|
|
49
58
|
* Paint the vertical forms of `family`'s punctuation (brackets, quotes,
|
|
50
59
|
* mainland pause marks, ellipses) with `twinFamily`: the same font loaded
|
|
@@ -101,8 +110,9 @@ export type TextPaintMode = 'fill' | 'stroke' | 'fillStroke';
|
|
|
101
110
|
* (`MarkCutRule`: whole by default; word by word for a line of a Latin
|
|
102
111
|
* paragraph; character by character for a line of the CJK composer). In a
|
|
103
112
|
* vertical flow (see the module comment) it sets the text vertically:
|
|
104
|
-
* `tracking` (px after every character, default the
|
|
105
|
-
* `
|
|
113
|
+
* `tracking` (px after every character, default the letter-spacing the
|
|
114
|
+
* backend set on the context, `letterSpacingOf`) is added after each cell
|
|
115
|
+
* and inside each sideways run.
|
|
106
116
|
* Returns nothing; the caller advances by the width the layout measured.
|
|
107
117
|
*/
|
|
108
118
|
export declare function fillFlowText(ctx: CanvasRenderingContext2D, text: string, x: number, baseline: number, mode?: TextPaintMode, tracking?: number, cuts?: MarkCutRule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verticalText.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/verticalText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAsD,KAAK,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAEhI,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"verticalText.d.ts","sourceRoot":"","sources":["../../src/canvas-backend/verticalText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAsD,KAAK,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAEhI,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOnE,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;uEACmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;+CAC+C;AAC/C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAI5F;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrH;AAgBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAInF;AAaD;;;4EAG4E;AAC5E,wBAAgB,4BAA4B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED;sCACsC;AACtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;iDACiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD;;;;8EAI8E;AAC9E,eAAO,MAAM,yBAAyB,QACc,CAAC;AAyFrD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,sBAAsB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAwDvH;AAmBD;+BAC+B;AAC/B,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AA4C7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,aAAsB,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,GAAE,WAAoB;AAC1B;0CAC0C;AAC1C,MAAM,CAAC,EAAE,iBAAiB,GACzB,IAAI,CAUN;AA6KD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EAC1D,KAAK,UAAQ,GACZ,IAAI,CAiBN"}
|