@vivliostyle/core 2.42.0 → 2.42.1
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/lib/vivliostyle/assets.d.ts +1 -1
- package/lib/vivliostyle/base.d.ts +11 -0
- package/lib/vivliostyle/layout.d.ts +2 -0
- package/lib/vivliostyle/table.d.ts +9 -0
- package/lib/vivliostyle/urls.d.ts +0 -5
- package/lib/vivliostyle/vgen.d.ts +6 -0
- package/lib/vivliostyle.js +44 -20
- package/lib/vivliostyle.js.map +4 -4
- package/package.json +2 -2
|
@@ -32,5 +32,5 @@ export declare const UserAgentBaseCss: string;
|
|
|
32
32
|
/** user-agent-toc.css */
|
|
33
33
|
export declare const UserAgentTocCss = "\n@namespace \"http://www.w3.org/1999/xhtml\";\n\n*:not([data-vivliostyle-role=doc-toc],\n [data-vivliostyle-role=doc-toc] *,\n :has([data-vivliostyle-role=doc-toc]),\n :is(h1,h2,h3,h4,h5,h6):has(+:not(nav)[data-vivliostyle-role=doc-toc])) {\n display: none;\n}\n\n[hidden] {\n display: revert;\n}\n\n[data-vivliostyle-role=doc-toc] li a {\n -adapt-behavior: toc-node-anchor;\n}\n\n[data-vivliostyle-role=doc-toc] li {\n -adapt-behavior: toc-node;\n}\n\n[data-vivliostyle-role=doc-toc] li > :not(ul,ol):first-child {\n -adapt-behavior: toc-node-first-child;\n}\n\n[data-vivliostyle-role=doc-toc] :is(ol,ul),\n[data-vivliostyle-role=doc-toc]:is(ol,ul) {\n -adapt-behavior: toc-container;\n}\n";
|
|
34
34
|
/** vivliostyle-polyfill.css */
|
|
35
|
-
export declare const VivliostylePolyfillCss = "\n[data-viv-margin-discard~=\"block-start\"] {\n margin-block-start: 0 !important;\n}\n[data-viv-margin-discard~=\"block-end\"] {\n margin-block-end: 0 !important;\n}\n[data-viv-margin-discard~=\"inline-start\"] {\n margin-inline-start: 0 !important;\n}\n[data-viv-margin-discard~=\"inline-end\"] {\n margin-inline-end: 0 !important;\n}\n\n[data-viv-box-break~=\"inline-start\"]:not([data-viv-box-break~=\"clone\"]) {\n margin-inline-start: 0 !important;\n padding-inline-start: 0 !important;\n border-inline-start-width: 0 !important;\n border-start-start-radius: 0 !important;\n border-end-start-radius: 0 !important;\n}\n[data-viv-box-break~=\"inline-end\"]:not([data-viv-box-break~=\"clone\"]) {\n margin-inline-end: 0 !important;\n padding-inline-end: 0 !important;\n border-inline-end-width: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-start\"]:not([data-viv-box-break~=\"clone\"]):not(table[style*=\"border-collapse: collapse\"]:has(>thead)) {\n margin-block-start: 0 !important;\n padding-block-start: 0 !important;\n border-block-start-width: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-end\"]:not([data-viv-box-break~=\"clone\"]):not(table[style*=\"border-collapse: collapse\"]:has(>tfoot)) {\n margin-block-end: 0 !important;\n padding-block-end: 0 !important;\n border-block-end-width: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-start\"][data-viv-box-break~=\"text-start\"] {\n text-indent: 0 !important;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"][data-viv-box-break~=\"justify\"] {\n text-align-last: justify !important;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"][data-viv-box-break~=\"justify\"] > * {\n text-align-last: auto;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"]:not([data-viv-box-break~=\"justify\"]) {\n text-align-last: auto !important;\n}\n\nspan.viv-anonymous-block {\n display: block;\n}\n\n[data-vivliostyle-page-container] {\n text-spacing-trim: space-all;\n text-autospace: no-autospace;\n}\nviv-ts-open.viv-ts-auto > viv-ts-inner,\nviv-ts-open.viv-ts-trim > viv-ts-inner {\n margin-inline-start: -0.5em;\n}\nviv-ts-close.viv-ts-auto > viv-ts-inner,\nviv-ts-close.viv-ts-trim > viv-ts-inner {\n letter-spacing: -0.5em;\n}\nviv-ts-close.viv-hang-end > viv-ts-inner,\nviv-ts-close.viv-hang-last > viv-ts-inner {\n letter-spacing: -1em;\n}\nviv-ts-open.viv-ts-auto::before,\nviv-ts-close.viv-ts-auto::after,\nviv-ts-close.viv-hang-end::after {\n content: \" \";\n font-family: Courier, monospace;\n word-spacing: normal;\n letter-spacing: -0.11em;\n line-height: 0;\n text-orientation: mixed;\n visibility: hidden;\n}\nviv-ts-close.viv-hang-end:not(.viv-hang-hw)::after {\n letter-spacing: 0.4em;\n}\nviv-ts-close.viv-hang-hw > viv-ts-inner {\n letter-spacing: -0.5em;\n}\nviv-ts-open.viv-hang-first > viv-ts-inner {\n display: inline-block;\n line-height: 1;\n inline-size: 1em;\n text-indent: 0;\n text-align: end;\n text-align-last: end;\n margin-inline-start: -1em;\n}\nviv-ts-thin-sp::after {\n content: \" \";\n font-family: Times, serif;\n word-spacing: normal;\n letter-spacing: -0.125em;\n line-height: 0;\n text-orientation: mixed;\n visibility: hidden;\n}\n[style*=text-decoration] :is(viv-ts-thin-sp, viv-ts-close.viv-ts-auto)::after {\n visibility: visible;\n}\n\nspan[data-viv-leader] {\n text-combine-upright: none;\n text-orientation: mixed;\n white-space: pre;\n}\n\n/* ::marker */\n[style*=\"--viv-marker-content\"]::marker {\n content: var(--viv-marker-content);\n unicode-bidi: isolate;\n font-variant-numeric: tabular-nums;\n white-space: pre;\n text-transform: none;\n}\n/* ::footnote-marker inherits --viv-marker-content from the footnote element */\n.-vivliostyle-footnote-content::marker {\n content: var(--viv-marker-content);\n unicode-bidi: isolate;\n font-variant-numeric: tabular-nums;\n white-space: pre;\n text-transform: none;\n}\n[style*=\"--viv-footnote-white-space\"] {\n white-space: var(--viv-footnote-white-space);\n}\n[style*=\"--viv-marker-color\"]::marker {\n color: var(--viv-marker-color);\n}\n[style*=\"--viv-marker-font-size\"]::marker {\n font-size: var(--viv-marker-font-size);\n}\n[style*=\"--viv-marker-font-family\"]::marker {\n font-family: var(--viv-marker-font-family);\n}\n[style*=\"--viv-marker-font-style\"]::marker {\n font-style: var(--viv-marker-font-style);\n}\n[style*=\"--viv-marker-font-weight\"]::marker {\n font-weight: var(--viv-marker-font-weight);\n}\n[style*=\"--viv-marker-font-variant\"]::marker {\n font-variant: var(--viv-marker-font-variant);\n}\n[style*=\"--viv-marker-unicode-bidi\"]::marker {\n unicode-bidi: var(--viv-marker-unicode-bidi);\n}\n[style*=\"--viv-marker-direction\"]::marker {\n direction: var(--viv-marker-direction);\n}\n[style*=\"--viv-marker-white-space\"]::marker {\n white-space: var(--viv-marker-white-space);\n}\n[style*=\"--viv-marker-text-transform\"]::marker {\n text-transform: var(--viv-marker-text-transform);\n}\n[style*=\"--viv-marker-text-combine-upright\"]::marker {\n text-combine-upright: var(--viv-marker-text-combine-upright);\n}\n\n/* initial-letter */\n[style*=\"--viv-initialLetter\"]:has(>[data-adapt-pseudo=\"first-letter\"])::first-letter {\n -webkit-initial-letter: var(--viv-initialLetter);\n initial-letter: var(--viv-initialLetter);\n}\n";
|
|
35
|
+
export declare const VivliostylePolyfillCss = "\n[data-viv-margin-discard~=\"block-start\"] {\n margin-block-start: 0 !important;\n}\n[data-viv-margin-discard~=\"block-end\"] {\n margin-block-end: 0 !important;\n}\n[data-viv-margin-discard~=\"inline-start\"] {\n margin-inline-start: 0 !important;\n}\n[data-viv-margin-discard~=\"inline-end\"] {\n margin-inline-end: 0 !important;\n}\n\n[data-viv-box-break~=\"inline-start\"]:not([data-viv-box-break~=\"clone\"]) {\n margin-inline-start: 0 !important;\n padding-inline-start: 0 !important;\n border-inline-start-width: 0 !important;\n border-start-start-radius: 0 !important;\n border-end-start-radius: 0 !important;\n}\n[data-viv-box-break~=\"inline-end\"]:not([data-viv-box-break~=\"clone\"]) {\n margin-inline-end: 0 !important;\n padding-inline-end: 0 !important;\n border-inline-end-width: 0 !important;\n border-start-end-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-start\"]:not([data-viv-box-break~=\"clone\"]):not(table[style*=\"border-collapse: collapse\"]:has(>thead)) {\n margin-block-start: 0 !important;\n padding-block-start: 0 !important;\n border-block-start-width: 0 !important;\n border-start-start-radius: 0 !important;\n border-start-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-end\"]:not([data-viv-box-break~=\"clone\"]):not(table[style*=\"border-collapse: collapse\"]:has(>tfoot)) {\n margin-block-end: 0 !important;\n padding-block-end: 0 !important;\n border-block-end-width: 0 !important;\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n[data-viv-box-break~=\"block-start\"][data-viv-box-break~=\"text-start\"] {\n text-indent: 0 !important;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"][data-viv-box-break~=\"justify\"] {\n text-align-last: justify !important;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"][data-viv-box-break~=\"justify\"] > * {\n text-align-last: auto;\n}\n[data-viv-box-break~=\"block-end\"][data-viv-box-break~=\"text-end\"]:not([data-viv-box-break~=\"justify\"]) {\n text-align-last: auto !important;\n}\n\nspan.viv-anonymous-block {\n display: block;\n}\n\n[data-vivliostyle-page-container] {\n text-spacing-trim: space-all;\n text-autospace: no-autospace;\n}\nviv-ts-open.viv-ts-auto > viv-ts-inner,\nviv-ts-open.viv-ts-trim > viv-ts-inner {\n margin-inline-start: -0.5em;\n}\nviv-ts-close.viv-ts-auto > viv-ts-inner,\nviv-ts-close.viv-ts-trim > viv-ts-inner {\n letter-spacing: -0.5em;\n}\nviv-ts-close.viv-hang-end > viv-ts-inner,\nviv-ts-close.viv-hang-last > viv-ts-inner {\n letter-spacing: -1em;\n}\nviv-ts-open.viv-ts-auto::before,\nviv-ts-close.viv-ts-auto::after,\nviv-ts-close.viv-hang-end::after {\n content: \" \";\n font-family: Courier, monospace;\n word-spacing: normal;\n letter-spacing: -0.11em;\n line-height: 0;\n text-orientation: mixed;\n visibility: hidden;\n}\nviv-ts-close.viv-hang-end:not(.viv-hang-hw)::after {\n letter-spacing: 0.4em;\n}\nviv-ts-close.viv-hang-hw > viv-ts-inner {\n letter-spacing: -0.5em;\n}\nviv-ts-open.viv-hang-first > viv-ts-inner {\n display: inline-block;\n line-height: 1;\n inline-size: 1em;\n text-indent: 0;\n text-align: end;\n text-align-last: end;\n margin-inline-start: -1em;\n}\nviv-ts-thin-sp::after {\n content: \" \";\n font-family: Times, serif;\n word-spacing: normal;\n letter-spacing: -0.125em;\n line-height: 0;\n text-orientation: mixed;\n visibility: hidden;\n}\n[style*=text-decoration] :is(viv-ts-thin-sp, viv-ts-close.viv-ts-auto)::after {\n visibility: visible;\n}\n\nspan[data-viv-leader] {\n text-combine-upright: none;\n text-orientation: mixed;\n white-space: pre;\n}\n\n/* ::marker */\n[style*=\"--viv-marker-content\"]::marker {\n content: var(--viv-marker-content);\n unicode-bidi: isolate;\n font-variant-numeric: tabular-nums;\n white-space: pre;\n text-transform: none;\n}\n/* ::footnote-marker inherits --viv-marker-content from the footnote element */\n.-vivliostyle-footnote-content::marker {\n content: var(--viv-marker-content);\n unicode-bidi: isolate;\n font-variant-numeric: tabular-nums;\n white-space: pre;\n text-transform: none;\n}\n[style*=\"--viv-footnote-white-space\"] {\n white-space: var(--viv-footnote-white-space);\n}\n[style*=\"--viv-marker-color\"]::marker {\n color: var(--viv-marker-color);\n}\n[style*=\"--viv-marker-font-size\"]::marker {\n font-size: var(--viv-marker-font-size);\n}\n[style*=\"--viv-marker-font-family\"]::marker {\n font-family: var(--viv-marker-font-family);\n}\n[style*=\"--viv-marker-font-style\"]::marker {\n font-style: var(--viv-marker-font-style);\n}\n[style*=\"--viv-marker-font-weight\"]::marker {\n font-weight: var(--viv-marker-font-weight);\n}\n[style*=\"--viv-marker-font-variant\"]::marker {\n font-variant: var(--viv-marker-font-variant);\n}\n[style*=\"--viv-marker-unicode-bidi\"]::marker {\n unicode-bidi: var(--viv-marker-unicode-bidi);\n}\n[style*=\"--viv-marker-direction\"]::marker {\n direction: var(--viv-marker-direction);\n}\n[style*=\"--viv-marker-white-space\"]::marker {\n white-space: var(--viv-marker-white-space);\n}\n[style*=\"--viv-marker-text-transform\"]::marker {\n text-transform: var(--viv-marker-text-transform);\n}\n[style*=\"--viv-marker-text-combine-upright\"]::marker {\n text-combine-upright: var(--viv-marker-text-combine-upright);\n}\n[style*=\"--viv-marker-text-orientation\"]::marker {\n text-orientation: var(--viv-marker-text-orientation);\n}\n[style*=\"--viv-marker-hyphens\"]::marker {\n hyphens: var(--viv-marker-hyphens);\n}\n[style*=\"--viv-marker-line-height\"]::marker {\n line-height: var(--viv-marker-line-height);\n}\n[style*=\"--viv-marker-tab-size\"]::marker {\n tab-size: var(--viv-marker-tab-size);\n}\n[style*=\"--viv-marker-text-emphasis-style\"]::marker {\n text-emphasis-style: var(--viv-marker-text-emphasis-style);\n}\n[style*=\"--viv-marker-text-emphasis-color\"]::marker {\n text-emphasis-color: var(--viv-marker-text-emphasis-color);\n}\n[style*=\"--viv-marker-text-emphasis-position\"]::marker {\n text-emphasis-position: var(--viv-marker-text-emphasis-position);\n}\n[style*=\"--viv-marker-text-shadow\"]::marker {\n text-shadow: var(--viv-marker-text-shadow);\n}\n\n/* initial-letter */\n[style*=\"--viv-initialLetter\"]:has(>[data-adapt-pseudo=\"first-letter\"])::first-letter {\n -webkit-initial-letter: var(--viv-initialLetter);\n initial-letter: var(--viv-initialLetter);\n}\n";
|
|
36
36
|
export declare const UserAgentCounterStylesCss: string;
|
|
@@ -28,6 +28,12 @@ export declare function setBaseURL(value: string): void;
|
|
|
28
28
|
*/
|
|
29
29
|
export declare let resourceBaseURL: string;
|
|
30
30
|
export declare function setResourceBaseURL(value: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Convert a WPT raw.githack.com URL to the equivalent wpt.live URL.
|
|
33
|
+
* Applied at DOM/CSS output points for resource URLs (images, fonts, etc.)
|
|
34
|
+
* so that dynamic WPT endpoints (e.g. `.py` scripts) work correctly.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveWptResourceURL(url: string): string;
|
|
31
37
|
/**
|
|
32
38
|
* @param relURL relative URL
|
|
33
39
|
* @param baseURL base (absolute) URL
|
|
@@ -40,6 +46,11 @@ export declare function resolveURL(relURL: string, baseURL: string): string;
|
|
|
40
46
|
* resolveURL("#id", data:...) intentionally returns just "#id".
|
|
41
47
|
*/
|
|
42
48
|
export declare function resolveReferenceURL(relURL: string, baseURL: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Convert `about:blank` (with optional query/fragment, case-insensitive)
|
|
51
|
+
* to `data:text/html,` so the browser can load it natively.
|
|
52
|
+
*/
|
|
53
|
+
export declare function convertAboutBlankURL(url: string): string;
|
|
43
54
|
/**
|
|
44
55
|
* Convert special URLs (e.g. GitHub, Gist) to their raw equivalents.
|
|
45
56
|
* This is useful for fetching content from these services in a format
|
|
@@ -151,6 +151,8 @@ export declare class Column extends VtreeImpl.Container implements Layout.Column
|
|
|
151
151
|
isFloatNodeContext(nodeContext: Vtree.NodeContext): boolean;
|
|
152
152
|
stopByOverflow(nodeContext: Vtree.NodeContext): boolean;
|
|
153
153
|
private almostEquals;
|
|
154
|
+
private getFloatLayoutUnit;
|
|
155
|
+
private getFloatLayoutTolerance;
|
|
154
156
|
isOverflown(edge: number): boolean;
|
|
155
157
|
getExclusions(): GeometryUtil.Shape[];
|
|
156
158
|
openAllViews(position: Vtree.NodePosition): Task.Result<Vtree.NodeContext>;
|
|
@@ -110,6 +110,7 @@ export declare class TableFormattingContext extends RepetitiveElementImpl.Repeti
|
|
|
110
110
|
addCell(rowIndex: number, cell: TableCell): void;
|
|
111
111
|
getRowByIndex(index: number): TableRow;
|
|
112
112
|
findRowIndexBySourceNode(sourceNode: Node): number;
|
|
113
|
+
private isPreviousFragmentRowSpanningCellBreakPosition;
|
|
113
114
|
addCellFragment(rowIndex: number, columnIndex: number, cellFragment: TableCellFragment): void;
|
|
114
115
|
getCellsFallingOnRow(rowIndex: number): TableCell[];
|
|
115
116
|
getRowSpanningCellsOverflowingTheRow(rowIndex: number): TableCell[];
|
|
@@ -169,6 +170,7 @@ export declare class TableLayoutStrategy extends LayoutUtil.EdgeSkipper {
|
|
|
169
170
|
originalStopAtOverflow: boolean;
|
|
170
171
|
inHeader: boolean;
|
|
171
172
|
inFooter: boolean;
|
|
173
|
+
private didExtractRowSpanningCellBreakPositions;
|
|
172
174
|
constructor(formattingContext: TableFormattingContext, column: Layout.Column);
|
|
173
175
|
startNonInlineElementNode(state: LayoutUtil.LayoutIteratorState): void | Task.Result<boolean>;
|
|
174
176
|
resetColumn(): void;
|
|
@@ -209,6 +211,13 @@ export declare class TableLayoutProcessor implements LayoutProcessor.LayoutProce
|
|
|
209
211
|
* (propagated from cells or set on the row itself).
|
|
210
212
|
*/
|
|
211
213
|
private hasForcedBreakInRows;
|
|
214
|
+
/**
|
|
215
|
+
* Check if there is any in-flow content before the given view node.
|
|
216
|
+
* Walks previous siblings at each ancestor level (up to the column root)
|
|
217
|
+
* to determine whether the table is at the leading edge of the
|
|
218
|
+
* page/column.
|
|
219
|
+
*/
|
|
220
|
+
private hasInFlowContentBefore;
|
|
212
221
|
addCaptions(formattingContext: TableFormattingContext, rootViewNode: Element, firstChild: Node | null): void;
|
|
213
222
|
addColGroups(formattingContext: TableFormattingContext, rootViewNode: Element, firstChild: Node | null): void;
|
|
214
223
|
removeColGroups(formattingContext: TableFormattingContext, rootViewNode: Element): void;
|
|
@@ -17,9 +17,4 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @fileoverview Urls - URL Utilities
|
|
19
19
|
*/
|
|
20
|
-
/**
|
|
21
|
-
* transform all urls in attributeValue using documentURLTransformer.
|
|
22
|
-
*
|
|
23
|
-
* @returns transformed attributeValue
|
|
24
|
-
*/
|
|
25
20
|
export declare const transformURIs: (attributeValue: any, baseUrl: any, documentURLTransformer: any) => any;
|
|
@@ -269,3 +269,9 @@ export declare class Viewport {
|
|
|
269
269
|
*/
|
|
270
270
|
clear(): void;
|
|
271
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Recursively walk a CSS value tree and push image-load fetchers for any
|
|
274
|
+
* URL values found. Used to preload images referenced by background-image,
|
|
275
|
+
* border-image-source, filter, etc.
|
|
276
|
+
*/
|
|
277
|
+
export declare function addImageFetchersToPage(val: Css.Val, page: Vtree.Page): void;
|