postext 1.34.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/bundle.test.js +33 -1
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/codeBlocks.test.js +88 -0
- package/dist/__tests__/codeBlocks.test.js.map +1 -1
- package/dist/__tests__/composed/fixtures/page8.d.ts +20 -0
- package/dist/__tests__/composed/fixtures/page8.d.ts.map +1 -0
- package/dist/__tests__/composed/fixtures/page8.js +162 -0
- package/dist/__tests__/composed/fixtures/page8.js.map +1 -0
- package/dist/__tests__/composed/fixtures/timeline.d.ts +26 -0
- package/dist/__tests__/composed/fixtures/timeline.d.ts.map +1 -0
- package/dist/__tests__/composed/fixtures/timeline.js +153 -0
- package/dist/__tests__/composed/fixtures/timeline.js.map +1 -0
- package/dist/__tests__/composed/groups.test.d.ts +2 -0
- package/dist/__tests__/composed/groups.test.d.ts.map +1 -0
- package/dist/__tests__/composed/groups.test.js +361 -0
- package/dist/__tests__/composed/groups.test.js.map +1 -0
- package/dist/__tests__/composed/layout.test.d.ts +2 -0
- package/dist/__tests__/composed/layout.test.d.ts.map +1 -0
- package/dist/__tests__/composed/layout.test.js +387 -0
- package/dist/__tests__/composed/layout.test.js.map +1 -0
- package/dist/__tests__/composed/outsidePrint.test.d.ts +2 -0
- package/dist/__tests__/composed/outsidePrint.test.d.ts.map +1 -0
- package/dist/__tests__/composed/outsidePrint.test.js +116 -0
- package/dist/__tests__/composed/outsidePrint.test.js.map +1 -0
- package/dist/__tests__/composed/slotChecks.test.js +6 -3
- package/dist/__tests__/composed/slotChecks.test.js.map +1 -1
- package/dist/__tests__/composed/spread.test.d.ts +2 -0
- package/dist/__tests__/composed/spread.test.d.ts.map +1 -0
- package/dist/__tests__/composed/spread.test.js +475 -0
- package/dist/__tests__/composed/spread.test.js.map +1 -0
- package/dist/__tests__/composedPaint.test.d.ts +2 -0
- package/dist/__tests__/composedPaint.test.d.ts.map +1 -0
- package/dist/__tests__/composedPaint.test.js +199 -0
- package/dist/__tests__/composedPaint.test.js.map +1 -0
- package/dist/__tests__/defaults/stripRoundTrip.test.js +3 -2
- package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
- package/dist/__tests__/exports.test.js +25 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/highlightMarks.test.d.ts +2 -0
- package/dist/__tests__/highlightMarks.test.d.ts.map +1 -0
- package/dist/__tests__/highlightMarks.test.js +169 -0
- package/dist/__tests__/highlightMarks.test.js.map +1 -0
- package/dist/__tests__/tocPartLeader.test.d.ts +2 -0
- package/dist/__tests__/tocPartLeader.test.d.ts.map +1 -0
- package/dist/__tests__/tocPartLeader.test.js +133 -0
- package/dist/__tests__/tocPartLeader.test.js.map +1 -0
- package/dist/bundle/api.d.ts +8 -0
- package/dist/bundle/api.d.ts.map +1 -1
- package/dist/bundle/api.js +6 -3
- package/dist/bundle/api.js.map +1 -1
- package/dist/bundle/codec.d.ts +5 -0
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +4 -0
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/index.d.ts +2 -2
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/manifest.d.ts +14 -0
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +13 -0
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +7 -0
- package/dist/bundle/types.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.d.ts +6 -0
- package/dist/canvas-backend/annotations.d.ts.map +1 -1
- package/dist/canvas-backend/annotations.js +39 -0
- 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 +6 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/composed.d.ts +19 -0
- package/dist/canvas-backend/composed.d.ts.map +1 -0
- package/dist/canvas-backend/composed.js +68 -0
- package/dist/canvas-backend/composed.js.map +1 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +15 -1
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +4 -1
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/composed/geometry.d.ts +108 -0
- package/dist/composed/geometry.d.ts.map +1 -0
- package/dist/composed/geometry.js +241 -0
- package/dist/composed/geometry.js.map +1 -0
- package/dist/composed/groups.d.ts +95 -0
- package/dist/composed/groups.d.ts.map +1 -0
- package/dist/composed/groups.js +359 -0
- package/dist/composed/groups.js.map +1 -0
- package/dist/composed/labelText.d.ts +15 -0
- package/dist/composed/labelText.d.ts.map +1 -0
- package/dist/composed/labelText.js +16 -0
- package/dist/composed/labelText.js.map +1 -0
- package/dist/composed/paint.d.ts +64 -0
- package/dist/composed/paint.d.ts.map +1 -0
- package/dist/composed/paint.js +128 -0
- package/dist/composed/paint.js.map +1 -0
- package/dist/composed/reflowLog.d.ts +39 -0
- package/dist/composed/reflowLog.d.ts.map +1 -0
- package/dist/composed/reflowLog.js +123 -0
- package/dist/composed/reflowLog.js.map +1 -0
- package/dist/composed/slotChecks.d.ts +7 -2
- package/dist/composed/slotChecks.d.ts.map +1 -1
- package/dist/composed/slotChecks.js +21 -0
- package/dist/composed/slotChecks.js.map +1 -1
- package/dist/composed/spread.d.ts +106 -0
- package/dist/composed/spread.d.ts.map +1 -0
- package/dist/composed/spread.js +178 -0
- package/dist/composed/spread.js.map +1 -0
- package/dist/composed/types.d.ts +1 -44
- package/dist/composed/types.d.ts.map +1 -1
- package/dist/composed/wrap.d.ts +52 -0
- package/dist/composed/wrap.d.ts.map +1 -0
- package/dist/composed/wrap.js +234 -0
- package/dist/composed/wrap.js.map +1 -0
- package/dist/configWarnings.js +1 -1
- package/dist/configWarnings.js.map +1 -1
- package/dist/defaults/codeStyle.d.ts.map +1 -1
- package/dist/defaults/codeStyle.js +1 -0
- package/dist/defaults/codeStyle.js.map +1 -1
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +4 -0
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -0
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +9 -0
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/markStyles.d.ts +23 -0
- package/dist/defaults/markStyles.d.ts.map +1 -0
- package/dist/defaults/markStyles.js +80 -0
- package/dist/defaults/markStyles.js.map +1 -0
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +12 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/design/bidiText.d.ts +4 -1
- package/dist/design/bidiText.d.ts.map +1 -1
- package/dist/design/bidiText.js +5 -2
- package/dist/design/bidiText.js.map +1 -1
- package/dist/design/layout.d.ts +19 -0
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +110 -8
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts +28 -2
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js +24 -1
- package/dist/design/placeholders.js.map +1 -1
- package/dist/design/richText.d.ts +2 -0
- package/dist/design/richText.d.ts.map +1 -1
- package/dist/design/richText.js.map +1 -1
- package/dist/highlightMarks.d.ts +33 -0
- package/dist/highlightMarks.d.ts.map +1 -0
- package/dist/highlightMarks.js +209 -0
- package/dist/highlightMarks.js.map +1 -0
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +96 -9
- package/dist/html-backend.js.map +1 -1
- package/dist/htmlAnnotations.d.ts +5 -0
- package/dist/htmlAnnotations.d.ts.map +1 -1
- package/dist/htmlAnnotations.js +16 -0
- package/dist/htmlAnnotations.js.map +1 -1
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +3 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +3 -2
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/measure/cache.js +3 -3
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/chipEdges.d.ts +13 -1
- package/dist/measure/chipEdges.d.ts.map +1 -1
- package/dist/measure/chipEdges.js +59 -1
- package/dist/measure/chipEdges.js.map +1 -1
- package/dist/measure/links.d.ts.map +1 -1
- package/dist/measure/links.js +78 -5
- package/dist/measure/links.js.map +1 -1
- package/dist/measure/rich.d.ts +3 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +19 -4
- package/dist/measure/rich.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +14 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +104 -5
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/links.js +1 -1
- package/dist/parse/links.js.map +1 -1
- package/dist/parse/softBreaks.js +1 -1
- package/dist/parse/softBreaks.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +19 -3
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +24 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +213 -301
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts +4 -1
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +19 -1
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +36 -1
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +93 -3
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/codeInline.d.ts +10 -1
- package/dist/pipeline/codeInline.d.ts.map +1 -1
- package/dist/pipeline/codeInline.js +96 -15
- package/dist/pipeline/codeInline.js.map +1 -1
- package/dist/pipeline/composedLayout.d.ts +93 -0
- package/dist/pipeline/composedLayout.d.ts.map +1 -0
- package/dist/pipeline/composedLayout.js +520 -0
- package/dist/pipeline/composedLayout.js.map +1 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +2 -1
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts.map +1 -1
- package/dist/pipeline/contentWarnings.js +39 -2
- package/dist/pipeline/contentWarnings.js.map +1 -1
- package/dist/pipeline/floatSlots.js +1 -1
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/frameLayout.d.ts +120 -0
- package/dist/pipeline/frameLayout.d.ts.map +1 -0
- package/dist/pipeline/frameLayout.js +279 -0
- package/dist/pipeline/frameLayout.js.map +1 -0
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +96 -3
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/pageRoles.d.ts +1 -0
- package/dist/pipeline/pageRoles.d.ts.map +1 -1
- package/dist/pipeline/pageRoles.js +3 -0
- package/dist/pipeline/pageRoles.js.map +1 -1
- package/dist/pipeline/placement.js +1 -1
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +5 -3
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/tabs.js +1 -1
- package/dist/pipeline/tabs.js.map +1 -1
- package/dist/types.d.ts +89 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +247 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidiText.d.ts","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,QAAQ,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;kCAEkC;AAClC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,UAAQ,GAAG,MAAM,CAYhH;AAED,4EAA4E;AAC5E,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd;gDAC4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAS5E;AAED;6EAC6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAC/B,KAAK,GAAG,KAAK,CAIf;AAED;gCACgC;AAChC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AACvD;qEACqE;AACrE,aAAa,UAAQ,EACrB,SAAS,UAAQ,GAChB,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAgD7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,UAAU,SAAI,EACd,aAAa,UAAQ,GACpB,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAC1C,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AAC7D;6EAC6E;AAC7E,SAAS,UAAQ,
|
|
1
|
+
{"version":3,"file":"bidiText.d.ts","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,QAAQ,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;kCAEkC;AAClC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,UAAQ,GAAG,MAAM,CAYhH;AAED,4EAA4E;AAC5E,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd;gDAC4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAS5E;AAED;6EAC6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAC/B,KAAK,GAAG,KAAK,CAIf;AAED;gCACgC;AAChC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AACvD;qEACqE;AACrE,aAAa,UAAQ,EACrB,SAAS,UAAQ,GAChB,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAgD7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,UAAU,SAAI,EACd,aAAa,UAAQ,GACpB,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAC1C,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AAC7D;6EAC6E;AAC7E,SAAS,UAAQ;AACjB;wEACwE;AACxE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,GACnB;IAAE,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAMpD"}
|
package/dist/design/bidiText.js
CHANGED
|
@@ -224,13 +224,16 @@ export function directDesignTextBlock(block, base, mirrored, trackingPx = 0, ara
|
|
|
224
224
|
export function directChipRuns(runs, measure,
|
|
225
225
|
/** Every run takes its own advance, in the direction it is painted in
|
|
226
226
|
* ({@link measuresRunsAsPainted}): the chip is then as wide as its runs. */
|
|
227
|
-
asPainted = false
|
|
227
|
+
asPainted = false,
|
|
228
|
+
/** The base direction, when the chip has one of its own (inline code
|
|
229
|
+
* reads left to right, #845); else that of its first strong letter. */
|
|
230
|
+
base) {
|
|
228
231
|
let text = '';
|
|
229
232
|
for (const r of runs)
|
|
230
233
|
text += r.text;
|
|
231
234
|
if (!needsBidi(text))
|
|
232
235
|
return { runs };
|
|
233
|
-
const directed = directRuns(runs, firstStrongDirection(text) ?? 'ltr', false, (r, t, rtl) => measure(t, r.fontString, rtl), false, asPainted);
|
|
236
|
+
const directed = directRuns(runs, base ?? firstStrongDirection(text) ?? 'ltr', false, (r, t, rtl) => measure(t, r.fontString, rtl), false, asPainted);
|
|
234
237
|
return directed ?? { runs };
|
|
235
238
|
}
|
|
236
239
|
//# sourceMappingURL=bidiText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidiText.js","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bidiText.js","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"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"}
|
package/dist/design/layout.d.ts
CHANGED
|
@@ -194,6 +194,25 @@ export interface DesignFrames {
|
|
|
194
194
|
* stands upright on the sheet, so its box in the flow is sized with the
|
|
195
195
|
* picture's width and height swapped (`ResolvedImagePrimitive.upright`). */
|
|
196
196
|
upright?: boolean;
|
|
197
|
+
/** Boxes outside the slot an element may anchor to as `'#name'`, with
|
|
198
|
+
* the element-to-element edges: the frames of a composed page for its
|
|
199
|
+
* template's decoration (#855). An element of the slot with the same id
|
|
200
|
+
* wins. */
|
|
201
|
+
named?: Readonly<Record<string, {
|
|
202
|
+
x: number;
|
|
203
|
+
y: number;
|
|
204
|
+
width: number;
|
|
205
|
+
height: number;
|
|
206
|
+
}>>;
|
|
207
|
+
/** The same frames' boxes as their template declares them, before
|
|
208
|
+
* groups and content move them (#856): an element with `pin` anchors
|
|
209
|
+
* here. Absent: `named`. */
|
|
210
|
+
declared?: Readonly<Record<string, {
|
|
211
|
+
x: number;
|
|
212
|
+
y: number;
|
|
213
|
+
width: number;
|
|
214
|
+
height: number;
|
|
215
|
+
}>>;
|
|
197
216
|
}
|
|
198
217
|
export interface LayoutContext {
|
|
199
218
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EAEV,eAAe,EAMf,QAAQ,EACR,cAAc,EAEd,qBAAqB,EAGrB,kBAAkB,EAClB,yBAAyB,EACzB,QAAQ,EAER,MAAM,EACP,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAS5E,OAAO,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/design/layout.js
CHANGED
|
@@ -10,7 +10,8 @@ import { parseInlineSnippetSpans } from '../parse/inlineSnippet';
|
|
|
10
10
|
import { getHyphenationRulesKey, hyphenateByDictionary, hyphenateText, withoutEdgeSoftHyphens, withoutSlashJoints } from '../hyphenate';
|
|
11
11
|
import { withLineEndHyphen } from '../measure/geminate';
|
|
12
12
|
import { BREAKING_SPACE_RUNS_SPLIT_RE, NO_BREAK_SPACES, isBreakingSpaceRun } from '../measure/spaces';
|
|
13
|
-
import { resolveDesignResourceId, resolveDesignText, } from './placeholders';
|
|
13
|
+
import { LEADER_MARK, resolveDesignResourceId, resolveDesignText, } from './placeholders';
|
|
14
|
+
import { fitLeader } from '../measure/leader';
|
|
14
15
|
import { hasJoiningScript, joinsWithNext } from '../bidi';
|
|
15
16
|
import { designBaseDirection, directRuns, directedTextWidth, measuresRunsAsPainted, paintedRunWidth } from './bidiText';
|
|
16
17
|
import { composeCjkDesignParagraph, composesDesignAsCjk } from './cjkText';
|
|
@@ -163,14 +164,14 @@ function frameFor(placement, frames) {
|
|
|
163
164
|
return frames.outer;
|
|
164
165
|
return undefined;
|
|
165
166
|
}
|
|
166
|
-
function topoSort(elements, issues) {
|
|
167
|
+
function topoSort(elements, issues, named) {
|
|
167
168
|
const byId = new Map();
|
|
168
169
|
for (const el of elements)
|
|
169
170
|
byId.set(el.id, el);
|
|
170
171
|
// Detect dangling
|
|
171
172
|
for (const el of elements) {
|
|
172
173
|
const target = anchorTargetId(el.placement);
|
|
173
|
-
if (target && !byId.has(target)) {
|
|
174
|
+
if (target && !byId.has(target) && !named?.[target]) {
|
|
174
175
|
issues.push({ kind: 'danglingAnchor', elementId: el.id, targetId: target });
|
|
175
176
|
}
|
|
176
177
|
}
|
|
@@ -226,6 +227,7 @@ function resolveContainerAnchor(edge, ref) {
|
|
|
226
227
|
return { anchorX: ref.x, anchorY: ref.y, pinX: 'start', pinY: 'start' };
|
|
227
228
|
}
|
|
228
229
|
}
|
|
230
|
+
const ELEMENT_TO_ELEMENT_EDGES = new Set(['right-of', 'left-of', 'below', 'above', 'align-top', 'align-bottom', 'align-left', 'align-right']);
|
|
229
231
|
function resolveElementAnchor(edge, ref) {
|
|
230
232
|
switch (edge) {
|
|
231
233
|
case 'right-of':
|
|
@@ -726,7 +728,7 @@ export function layoutDesignSlot(slot, context, pageIndex) {
|
|
|
726
728
|
.map((el) => (overrides && Object.keys(overrides).length > 0 ? applyPaletteOverrides(el, overrides) : el));
|
|
727
729
|
// Topologically sort (dependencies first) to resolve geometry; paint
|
|
728
730
|
// order is still the array order (first = back), restored below.
|
|
729
|
-
const ordered = topoSort(candidates, issues);
|
|
731
|
+
const ordered = topoSort(candidates, issues, context.frames?.named);
|
|
730
732
|
// Precompute: resolved text contents (placeholder-expanded), with the
|
|
731
733
|
// `\n` escape of the template and of attribute values turned into a
|
|
732
734
|
// newline before any case transform (which would make it `\N`).
|
|
@@ -769,10 +771,19 @@ export function layoutDesignSlot(slot, context, pageIndex) {
|
|
|
769
771
|
}
|
|
770
772
|
else if (target) {
|
|
771
773
|
const dep = resolvedGeo.get(target);
|
|
774
|
+
const outside = dep ? undefined : (el.pin ? context.frames?.declared?.[target] : undefined) ?? context.frames?.named?.[target];
|
|
772
775
|
if (dep) {
|
|
773
776
|
refGeo = { x: dep.x, y: dep.y, width: dep.width, height: dep.height };
|
|
774
777
|
useElementEdge = true;
|
|
775
778
|
}
|
|
779
|
+
else if (outside) {
|
|
780
|
+
refGeo = { ...outside };
|
|
781
|
+
// A nine-point edge on a frame is that point of its box; an
|
|
782
|
+
// element edge (`below`, `right-of`…) reads as for an element.
|
|
783
|
+
useElementEdge = ELEMENT_TO_ELEMENT_EDGES.has(el.placement.anchor.edge);
|
|
784
|
+
if (!useElementEdge)
|
|
785
|
+
fillRef = refGeo;
|
|
786
|
+
}
|
|
776
787
|
}
|
|
777
788
|
const anchor = useElementEdge
|
|
778
789
|
? resolveElementAnchor(el.placement.anchor.edge, refGeo)
|
|
@@ -789,14 +800,22 @@ export function layoutDesignSlot(slot, context, pageIndex) {
|
|
|
789
800
|
// A vertical element in a frame whose text is horizontal (a running
|
|
790
801
|
// head on the sheet, a design of a horizontal page); in a vertical
|
|
791
802
|
// flow the text already runs down.
|
|
792
|
-
const
|
|
793
|
-
|
|
794
|
-
|
|
803
|
+
const content = textContent.get(el.id) ?? '';
|
|
804
|
+
const turned = el.writingMode === 'vertical-rl' && getMeasureWritingMode() !== 'vertical-rl';
|
|
805
|
+
// A contents part row's `{leader}` (#889), on a horizontal line.
|
|
806
|
+
const leader = context.placeholders.leader;
|
|
807
|
+
const leadered = content.includes(LEADER_MARK) && leader && !turned && getMeasureWritingMode() !== 'vertical-rl';
|
|
808
|
+
const text = leadered ? content : content.split(LEADER_MARK).join('');
|
|
809
|
+
const prims = turned
|
|
810
|
+
? layoutVerticalTextElement(el, text, pin, fillRef, context.dpi, useElementEdge, textSeams.get(el.id))
|
|
811
|
+
: leadered
|
|
812
|
+
? layoutLeaderTextElement(el, text, leader, pin, fillRef, context.dpi, useElementEdge, context)
|
|
813
|
+
: layoutTextElement(el, text, pin, fillRef, context.dpi, useElementEdge, context, textSeams.get(el.id));
|
|
795
814
|
resolvedGeo.set(el.id, prims[0]);
|
|
796
815
|
primsByElement.set(el, prims);
|
|
797
816
|
const truncated = prims[0].truncated;
|
|
798
817
|
if (truncated) {
|
|
799
|
-
const text =
|
|
818
|
+
const text = content.split(LEADER_MARK).join('');
|
|
800
819
|
issues.push({ kind: 'textTruncated', elementId: el.id, mode: truncated, text: el.inlineMarks ? plainDesignText(text) : text });
|
|
801
820
|
}
|
|
802
821
|
}
|
|
@@ -1365,6 +1384,89 @@ seams = []) {
|
|
|
1365
1384
|
};
|
|
1366
1385
|
return [main, capPrim];
|
|
1367
1386
|
}
|
|
1387
|
+
/**
|
|
1388
|
+
* A text element of a contents part row whose text holds `{leader}`
|
|
1389
|
+
* (#889): one line, as wide as the room its placement gives it (an `auto`
|
|
1390
|
+
* width fills to the container's edge), the text before the mark at the
|
|
1391
|
+
* line's start, the text after it at its end, and between them the
|
|
1392
|
+
* contents' leader (`toc.leader`): its character repeated over the room
|
|
1393
|
+
* left, `gap` from either text, flush with the end so the leaders of the
|
|
1394
|
+
* rows line up, as an entry row's are (`pipeline/toc.ts`). The text before
|
|
1395
|
+
* the mark gives way when the line is short of room (cut by the element's
|
|
1396
|
+
* `overflow`, `'ellipsis-end'` for a wrapping one); fewer than three
|
|
1397
|
+
* repeats, or a leader turned off, leave the room blank.
|
|
1398
|
+
*/
|
|
1399
|
+
function layoutLeaderTextElement(el, text, leader, pin, container, dpi, anchoredToElement, frame) {
|
|
1400
|
+
const at = text.indexOf(LEADER_MARK);
|
|
1401
|
+
const before = text.slice(0, at).trimEnd();
|
|
1402
|
+
const after = text.slice(at + LEADER_MARK.length).split(LEADER_MARK).join('').trimStart();
|
|
1403
|
+
const autoWidth = el.placement.size?.width === undefined || el.placement.size.width === 'auto';
|
|
1404
|
+
const single = { ...el, overflow: el.overflow === 'wrap' ? 'ellipsis-end' : el.overflow, dropCap: undefined, paragraphIndent: undefined };
|
|
1405
|
+
// The row's box: the room the placement gives, one line high.
|
|
1406
|
+
const [box] = layoutTextElement({ ...single, overflow: 'clip', placement: autoWidth ? { ...el.placement, size: { ...el.placement.size, width: 'fill' } } : el.placement }, `${before} ${after}`.trim() || ' ', pin, container, dpi, anchoredToElement, frame);
|
|
1407
|
+
const row = box;
|
|
1408
|
+
const room = row.contentWidth;
|
|
1409
|
+
const fontSizePx = row.fontSizePx;
|
|
1410
|
+
const gap = Math.max(0, dimPx(leader.gap, dpi, fontSizePx));
|
|
1411
|
+
// Each text on its own, as wide as it is set (cut to the room left).
|
|
1412
|
+
const part = (t, max) => (t
|
|
1413
|
+
? layoutTextElement({ ...single, box: undefined, placement: { ...el.placement, size: { width: 'auto', maxWidth: { value: Math.max(0, max), unit: 'px' } } } }, t, pin, container, dpi, anchoredToElement, frame)[0]
|
|
1414
|
+
: undefined);
|
|
1415
|
+
const tail = part(after, room);
|
|
1416
|
+
const tailW = tail?.lines[0]?.width ?? 0;
|
|
1417
|
+
const gaps = (before ? gap : 0) + (after ? gap : 0);
|
|
1418
|
+
const head = part(before, room - tailW - gaps);
|
|
1419
|
+
const headW = head?.lines[0]?.width ?? 0;
|
|
1420
|
+
const free = Math.max(0, room - headW - tailW - gaps);
|
|
1421
|
+
const tracking = row.letterSpacingPx;
|
|
1422
|
+
const dots = leader.enabled
|
|
1423
|
+
? fitLeader(leader.char, free, (t) => Math.max(0, flowTextWidth(t, row.fontString) + tracking * graphemeCount(t)))
|
|
1424
|
+
: null;
|
|
1425
|
+
const runsOf = (p) => {
|
|
1426
|
+
const line = p?.lines[0];
|
|
1427
|
+
if (!line || !line.text)
|
|
1428
|
+
return { runs: [] };
|
|
1429
|
+
return { runs: line.runs ?? [{ text: line.text, fontString: p.fontString, width: line.width }], ...(line.order ? { order: line.order } : {}) };
|
|
1430
|
+
};
|
|
1431
|
+
const h = runsOf(head);
|
|
1432
|
+
const t = runsOf(tail);
|
|
1433
|
+
// The leader: blank room, the run, the gap before the text after it. A
|
|
1434
|
+
// blank run is a box as wide as its room (`inkOffset` 0).
|
|
1435
|
+
const blank = (width) => ({ text: '', fontString: row.fontString, width, inkOffset: 0, leader: true });
|
|
1436
|
+
const fill = blank((before ? gap : 0) + free - (dots?.width ?? 0));
|
|
1437
|
+
const middle = dots
|
|
1438
|
+
? [fill, { text: dots.text, fontString: row.fontString, width: dots.width, leader: true }, blank(after ? gap : 0)]
|
|
1439
|
+
: [blank(room - headW - tailW)];
|
|
1440
|
+
const runs = [...h.runs, ...middle, ...t.runs];
|
|
1441
|
+
// Paint order: the text before the mark at the line's start, which is on
|
|
1442
|
+
// the right of a right-to-left row on the sheet and of a left-to-right
|
|
1443
|
+
// one in a mirrored flow; each text keeps its own order.
|
|
1444
|
+
const startRight = row.startRight === true;
|
|
1445
|
+
const ids = (n, from, order) => (order ?? Array.from({ length: n }, (_, i) => i)).map((i) => i + from);
|
|
1446
|
+
const headIds = ids(h.runs.length, 0, h.order);
|
|
1447
|
+
const middleIds = ids(middle.length, h.runs.length);
|
|
1448
|
+
const tailIds = ids(t.runs.length, h.runs.length + middle.length, t.order);
|
|
1449
|
+
const order = startRight ? [...tailIds, ...middleIds.reverse(), ...headIds] : [...headIds, ...middleIds, ...tailIds];
|
|
1450
|
+
const identity = order.every((v, i) => v === i);
|
|
1451
|
+
const first = row.lines[0];
|
|
1452
|
+
const line = {
|
|
1453
|
+
text: runs.map((r) => r.text).join(''),
|
|
1454
|
+
width: room,
|
|
1455
|
+
baselineY: first?.baselineY ?? 0,
|
|
1456
|
+
topY: first?.topY ?? 0,
|
|
1457
|
+
height: first?.height ?? 0,
|
|
1458
|
+
runs,
|
|
1459
|
+
...(identity ? {} : { order }),
|
|
1460
|
+
};
|
|
1461
|
+
const truncated = head?.truncated ?? tail?.truncated;
|
|
1462
|
+
return [{
|
|
1463
|
+
...row,
|
|
1464
|
+
lines: [line],
|
|
1465
|
+
align: 'left',
|
|
1466
|
+
needsClip: el.overflow === 'clip',
|
|
1467
|
+
...(truncated ? { truncated } : { truncated: undefined }),
|
|
1468
|
+
}];
|
|
1469
|
+
}
|
|
1368
1470
|
/**
|
|
1369
1471
|
* One design text element laid out on its own, its box's top left corner at
|
|
1370
1472
|
* `(x, y)` and nothing around it to clamp it: the text `text` as given (no
|