@vivliostyle/core 2.41.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 +2 -2
- package/lib/vivliostyle/base.d.ts +11 -0
- package/lib/vivliostyle/css-cascade.d.ts +4 -0
- package/lib/vivliostyle/css-nesting.d.ts +20 -0
- package/lib/vivliostyle/css-parser.d.ts +1 -0
- package/lib/vivliostyle/footnotes.d.ts +2 -1
- package/lib/vivliostyle/layout-helper.d.ts +13 -0
- package/lib/vivliostyle/layout.d.ts +7 -0
- package/lib/vivliostyle/page-floats.d.ts +28 -0
- package/lib/vivliostyle/repetitive-element.d.ts +7 -0
- package/lib/vivliostyle/semantic-footnote.d.ts +54 -0
- package/lib/vivliostyle/table.d.ts +9 -0
- package/lib/vivliostyle/types.d.ts +4 -0
- package/lib/vivliostyle/urls.d.ts +0 -5
- package/lib/vivliostyle/vgen.d.ts +13 -5
- package/lib/vivliostyle.js +57 -36
- package/lib/vivliostyle.js.map +4 -4
- package/package.json +2 -2
|
@@ -24,7 +24,7 @@ export declare const VivliostyleViewportCss = "\n[data-vivliostyle-layout-box] {
|
|
|
24
24
|
/** validation.txt */
|
|
25
25
|
export declare const ValidationTxt = "\n/*\n * Copyright 2013 Google, Inc.\n * Copyright 2015 Daishinsha Inc.\n * Copyright 2019 Vivliostyle Foundation\n *\n * CSS property validation.\n */\nNUM = POS_NUM | ZERO | NEGATIVE;\nNNEG_NUM = POS_NUM | ZERO;\nINT = POS_INT | ZERO | NEGATIVE;\nNNEG_INT = POS_INT | ZERO;\nPERCENTAGE = POS_PERCENTAGE | ZERO | NEGATIVE;\nSTRICT_PERCENTAGE = POS_PERCENTAGE | ZERO_PERCENTAGE | NEGATIVE;\nNNEG_PERCENTAGE = POS_PERCENTAGE | ZERO;\nLENGTH = POS_LENGTH | ZERO | NEGATIVE;\nNNEG_LENGTH = POS_LENGTH | ZERO;\nPLENGTH = LENGTH | PERCENTAGE;\nPPLENGTH = POS_LENGTH | ZERO | POS_PERCENTAGE;\nALENGTH = LENGTH | auto;\nAPLENGTH = PLENGTH | auto;\nPAPLENGTH = PPLENGTH | auto;\nANGLE = POS_ANGLE | ZERO | NEGATIVE;\nLENGTH_OR_NUM = LENGTH | NUM;\nANGLE_OR_NUM = ANGLE | NUM;\nMIN_MAX_FIT_CONTENT = min-content | max-content | fit-content;\nBG_POSITION_TERM = PLENGTH | left | center | right | top | bottom;\nURI_OR_NONE = URI | none;\nIMAGE = URI | IMAGE_FUNCTION | none;\nbackground-attachment = COMMA( [scroll | fixed | local]+ );\nbackground-color = COLOR;\nbackground-image = COMMA( IMAGE+ );\nbackground-position = COMMA( SPACE(BG_POSITION_TERM{1,4})+ ); /* relaxed */\nbackground-repeat = COMMA( [repeat | repeat-x | repeat-y | no-repeat]+ );\nborder-collapse = collapse | separate;\nBORDER_SIDE_COLOR = COLOR;\nBORDER_SIDE_STYLE = none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset;\nBORDER_SIDE_WIDTH = thin: 1px | medium: 3px | thick: 5px | NNEG_LENGTH;\nborder-spacing = LENGTH LENGTH?;\nborder-top-color = BORDER_SIDE_COLOR;\nborder-right-color = BORDER_SIDE_COLOR;\nborder-bottom-color = BORDER_SIDE_COLOR;\nborder-left-color = BORDER_SIDE_COLOR;\nborder-top-style = BORDER_SIDE_STYLE;\nborder-right-style = BORDER_SIDE_STYLE;\nborder-bottom-style = BORDER_SIDE_STYLE;\nborder-left-style = BORDER_SIDE_STYLE;\nborder-top-width = BORDER_SIDE_WIDTH;\nborder-right-width = BORDER_SIDE_WIDTH;\nborder-bottom-width = BORDER_SIDE_WIDTH;\nborder-left-width = BORDER_SIDE_WIDTH;\nBORDER_RADIUS = PLENGTH{1,2};\nborder-top-left-radius = BORDER_RADIUS;\nborder-top-right-radius = BORDER_RADIUS;\nborder-bottom-right-radius = BORDER_RADIUS;\nborder-bottom-left-radius = BORDER_RADIUS;\nborder-image-source = IMAGE;\nborder-image-slice = [NUM | PERCENTAGE]{1,4} || fill; /* relaxed */\nborder-image-width = [NUM | PLENGTH | auto]{1,4};\nborder-image-outset = [NUM | LENGTH]{1,4};\nborder-image-repeat = [ stretch | repeat | round | space ]{1,2};\nbottom = APLENGTH;\ncaption-side = top | bottom;\nclip = rect(ALENGTH{4}) | rect(SPACE(ALENGTH{4})) | auto;\ncolor = COLOR;\nLIST_STYLE_TYPE = IDENT;\nTYPE_OR_UNIT_IN_ATTR = string | color | url | integer | number | length | angle | time | frequency;\nATTR = attr(SPACE(IDENT TYPE_OR_UNIT_IN_ATTR?) [ STRING | IDENT | COLOR | INT | NUM | PLENGTH | ANGLE | POS_TIME | FREQUENCY]?);\nCONTENT_LIST = [ STRING | URI | counter(IDENT LIST_STYLE_TYPE?) |\n counters(IDENT STRING LIST_STYLE_TYPE?) | ATTR |\n target-counter([ STRING | URI ] IDENT LIST_STYLE_TYPE?) |\n target-counter(ATTR IDENT LIST_STYLE_TYPE?) |\n target-counters([ STRING | URI ] IDENT STRING LIST_STYLE_TYPE?) |\n target-counters(ATTR IDENT STRING LIST_STYLE_TYPE?) |\n target-text([ STRING | URI ] [content | before | after | first-letter | marker]?) |\n target-text(ATTR [content | before | after | first-letter | marker]?) |\n leader([ dotted | solid | space ] | STRING ) |\n open-quote | close-quote | no-open-quote | no-close-quote |\n content([ text | before | after | first-letter | marker ]?) |\n string(IDENT [first | start | last | first-except]?) |\n element(IDENT [first | start | last | first-except]?) ]+;\nCONTENT = normal | none | CONTENT_LIST;\ncontent = CONTENT;\nCOUNTER = [ IDENT INT? ]+ | none;\ncounter-increment = COUNTER;\ncounter-reset = COUNTER;\ncounter-set = COUNTER;\ncursor = COMMA(URI* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize |\n n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ]);\ndirection = ltr | rtl;\ndisplay = inline | block | list-item | inline-block | table | inline-table | table-row-group |\n table-header-group | table-footer-group | table-row | table-column-group | table-column |\n table-cell | table-caption | none | oeb-page-head | oeb-page-foot | flex | inline-flex |\n ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | run-in | compact | marker |\n flow-root | grid | inline-grid | contents;\nempty-cells = show | hide;\nFAMILY = SPACE(IDENT+) | STRING;\nFAMILY_LIST = COMMA( FAMILY+ );\nfont-family = FAMILY_LIST;\nfont-size = xx-small | x-small | small | medium | large | x-large | xx-large | larger | smaller | PPLENGTH;\nfont-style = normal | italic | oblique;\nfont-weight = normal | bold | bolder | lighter | POS_NUM;\nheight = PAPLENGTH | MIN_MAX_FIT_CONTENT;\nleft = APLENGTH;\nletter-spacing = normal | LENGTH_OR_NUM;\nline-height = normal | POS_NUM | PPLENGTH;\nlist-style-image = IMAGE;\nlist-style-position = inside | outside;\nlist-style-type = LIST_STYLE_TYPE | STRING | none;\nmargin-right = APLENGTH;\nmargin-left = APLENGTH;\nmargin-top = APLENGTH;\nmargin-bottom = APLENGTH;\nNPLENGTH = none | PLENGTH;\nmax-height = NPLENGTH | MIN_MAX_FIT_CONTENT;\nmax-width = NPLENGTH | MIN_MAX_FIT_CONTENT;\nmin-height = APLENGTH | MIN_MAX_FIT_CONTENT;\nmin-width = APLENGTH | MIN_MAX_FIT_CONTENT;\norphans = POS_INT;\noutline-offset = LENGTH;\noutline-color = COLOR | invert;\noutline-style = BORDER_SIDE_STYLE;\noutline-width = BORDER_SIDE_WIDTH;\noverflow = visible | hidden | scroll | auto | clip;\npadding-right = PPLENGTH;\npadding-left = PPLENGTH;\npadding-top = PPLENGTH;\npadding-bottom = PPLENGTH;\nPAGE_BREAK = auto | always | avoid | left | right | recto | verso;\npage-break-after = PAGE_BREAK;\npage-break-before = PAGE_BREAK;\npage-break-inside = avoid | auto;\nposition = static | relative | absolute | fixed | running(IDENT);\nquotes = [STRING STRING]+ | none | auto;\nright = APLENGTH;\ntable-layout = auto | fixed;\ntext-align = left | right | center | justify | start | end | match-parent | inside | outside;\ntext-indent = PLENGTH;\ntext-transform = capitalize | uppercase | lowercase | none;\ntop = APLENGTH;\nvertical-align = baseline | sub | super | top | text-top | middle | bottom | text-bottom | PLENGTH;\nvisibility = visible | hidden | collapse;\nwhite-space = normal | pre | nowrap | pre-wrap | pre-line | break-spaces;\nwidows = POS_INT;\nwidth = PAPLENGTH | MIN_MAX_FIT_CONTENT;\nword-spacing = normal | LENGTH_OR_NUM;\nz-index = auto | INT;\n\n[epub,moz,webkit]hyphens = auto | manual | none;\n[webkit]hyphenate-character = auto | STRING;\n\n/* css-logical */\nmargin-block-start = APLENGTH;\nmargin-block-end = APLENGTH;\nmargin-inline-start = APLENGTH;\nmargin-inline-end = APLENGTH;\npadding-block-start = APLENGTH;\npadding-block-end = APLENGTH;\npadding-inline-start = APLENGTH;\npadding-inline-end = APLENGTH;\nborder-block-start-color = BORDER_SIDE_COLOR;\nborder-block-end-color = BORDER_SIDE_COLOR;\nborder-inline-start-color = BORDER_SIDE_COLOR;\nborder-inline-end-color = BORDER_SIDE_COLOR;\nborder-block-start-style = BORDER_SIDE_STYLE;\nborder-block-end-style = BORDER_SIDE_STYLE;\nborder-inline-start-style = BORDER_SIDE_STYLE;\nborder-inline-end-style = BORDER_SIDE_STYLE;\nborder-block-start-width = BORDER_SIDE_WIDTH;\nborder-block-end-width = BORDER_SIDE_WIDTH;\nborder-inline-start-width = BORDER_SIDE_WIDTH;\nborder-inline-end-width = BORDER_SIDE_WIDTH;\nblock-start = APLENGTH;\nblock-end = APLENGTH;\ninline-start = APLENGTH;\ninline-end = APLENGTH;\nblock-size = PAPLENGTH | MIN_MAX_FIT_CONTENT;\ninline-size = PAPLENGTH | MIN_MAX_FIT_CONTENT;\nmax-block-size = NPLENGTH | MIN_MAX_FIT_CONTENT;\nmax-inline-size = NPLENGTH | MIN_MAX_FIT_CONTENT;\nmin-block-size = APLENGTH | MIN_MAX_FIT_CONTENT;\nmin-inline-size = APLENGTH | MIN_MAX_FIT_CONTENT;\n\nmargin-inside = auto | APLENGTH;\nmargin-outside = auto | APLENGTH;\npadding-inside = PPLENGTH;\npadding-outside = PPLENGTH;\nborder-inside-color = BORDER_SIDE_COLOR;\nborder-outside-color = BORDER_SIDE_COLOR;\nborder-inside-style = BORDER_SIDE_STYLE;\nborder-outside-style = BORDER_SIDE_STYLE;\nborder-inside-width = BORDER_SIDE_WIDTH;\nborder-outside-width = BORDER_SIDE_WIDTH;\ninside = APLENGTH;\noutside = APLENGTH;\n\nSHAPE = auto | rectangle( PLENGTH{4} ) | ellipse( PLENGTH{4} ) | circle( PLENGTH{3} ) |\n polygon( SPACE(PLENGTH+)+ );\n[epubx]shape-inside = SHAPE;\n[epubx,webkit]shape-outside = SHAPE;\n[epubx]wrap-flow = auto | both | start | end | maximum | clear | around /* epub al */;\n\nTRANSFORM_FUNCTION = matrix(NUM{6}) | translate(PLENGTH{1,2}) | translateX(PLENGTH) | translateY(PLENGTH) |\n scale(NUM{1,2}) | scaleX(NUM) | scaleY(NUM) | rotate(ANGLE) | skewX(ANGLE) | skewY(ANGLE);\n[epub]transform = none | TRANSFORM_FUNCTION+;\n[epub]transform-origin = [[[ top | bottom | left | right] PLENGTH?] | center | PLENGTH]{1,2}; /* relaxed */\n\nBOX = border-box | padding-box | content-box;\nSHADOW = SPACE(inset || LENGTH{2,4} || COLOR); /* relaxed */\n[webkit]background-size = COMMA( SPACE( [PLENGTH | auto ]{1,2} | cover | contain)+ );\n[webkit]background-origin = COMMA( BOX+ );\n[webkit]background-clip = COMMA( BOX+ );\n[webkit]box-shadow = none | COMMA( SHADOW+ );\ntext-shadow = none | COMMA( SHADOW+ );\n[webkit]box-decoration-break = slice | clone;\nFILTER_FUNCTION = blur(LENGTH) | brightness(NUM | PERCENTAGE) | contrast(NUM | PERCENTAGE) | drop-shadow(SPACE(LENGTH{2,3} COLOR?))\n | grayscale(NUM | PERCENTAGE) | hue-rotate(ANGLE) | invert(NUM | PERCENTAGE) | opacity(NUM | PERCENTAGE)\n | saturate(NUM | PERCENTAGE) | sepia(NUM | PERCENTAGE);\nFILTER_FUNCTION_LIST = FILTER_FUNCTION+;\n[webkit]filter = none | FILTER_FUNCTION_LIST;\n\nopacity = NUM;\n\n[moz,webkit]column-width = LENGTH | auto;\n[moz,webkit]column-count = INT | auto;\n[moz,webkit]column-gap = LENGTH | normal;\n[moz,webkit]column-rule-color = COLOR;\n[moz,webkit]column-rule-style = BORDER_SIDE_STYLE;\n[moz,webkit]column-rule-width = BORDER_SIDE_WIDTH;\nBREAK = auto | avoid | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region;\nbreak-before = BREAK;\nbreak-after = BREAK;\nbreak-inside = auto | avoid | avoid-page | avoid-column | avoid-region;\n[webkit]column-span = none | auto | all;\n[moz]column-fill = auto | balance | balance-all;\nmargin-break = auto | keep | discard;\n\nsrc = COMMA([SPACE(URI format(STRING+)?) | local(FAMILY)]+); /* for font-face */\n\n[epubx,webkit]flow-from = IDENT;\n[epubx,webkit]flow-into = IDENT;\n[epubx]flow-linger = INT | none;\n[epubx]flow-priority = INT;\n[epubx]flow-options = none | [ exclusive || last || static ];\n[epubx]page = INT | auto | IDENT; /* page: IDENT is for CSS Paged Media */\n[epubx]min-page-width = LENGTH;\n[epubx]min-page-height = LENGTH;\n[epubx]required = true | false;\n[epubx]enabled = true | false;\n[epubx]conflicting-partitions = COMMA(IDENT+);\n[epubx]required-partitions = COMMA(IDENT+);\n[epubx]snap-height = LENGTH | none;\n[epubx]snap-width = LENGTH | none;\n[epubx]flow-consume = all | some;\n[epubx]utilization = NUM;\n[epubx]text-zoom = font-size | scale;\n\n[adapt]template = URI_OR_NONE | footnote;\n[adapt]behavior = IDENT;\n\n/* CSS Fonts */\nCOMMON_LIG_VALUES = [ common-ligatures | no-common-ligatures ];\nDISCRETIONARY_LIG_VALUES = [ discretionary-ligatures | no-discretionary-ligatures ];\nHISTORICAL_LIG_VALUES = [ historical-ligatures | no-historical-ligatures ];\nCONTEXTUAL_ALT_VALUES = [ contextual | no-contextual ];\nfont-variant-ligatures = normal | none | [ COMMON_LIG_VALUES || DISCRETIONARY_LIG_VALUES || HISTORICAL_LIG_VALUES || CONTEXTUAL_ALT_VALUES ];\nfont-variant-caps = normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps;\nNUMERIC_FIGURE_VALUES = [ lining-nums | oldstyle-nums ];\nNUMERIC_SPACING_VALUES = [ proportional-nums | tabular-nums ];\nNUMERIC_FRACTION_VALUES = [ diagonal-fractions | stacked-fractions ];\nfont-variant-numeric = normal | [ NUMERIC_FIGURE_VALUES || NUMERIC_SPACING_VALUES || NUMERIC_FRACTION_VALUES || ordinal || slashed-zero ];\nEAST_ASIAN_VARIANT_VALUES = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ];\nEAST_ASIAN_WIDTH_VALUES = [ full-width | proportional-width ];\nfont-variant-east-asian = normal | [ EAST_ASIAN_VARIANT_VALUES || EAST_ASIAN_WIDTH_VALUES || ruby ];\nfont-variant_css2 = normal | small-caps; /* for font shorthand */\nfont-size-adjust = none | NNEG_NUM;\n[webkit]font-kerning = auto | normal | none;\nfont-feature-settings = COMMA( normal | SPACE( STRING [ on | off | INT ]? )+ );\nFONT_STRETCH_CSS3_VALUES = normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded;\nfont-stretch = FONT_STRETCH_CSS3_VALUES | PERCENTAGE;\nfont-stretch_css3 = FONT_STRETCH_CSS3_VALUES; /* for font shorthand */\nfont-display = [ auto | block | swap | fallback | optional ];\nunicode-range = COMMA( URANGE+ );\n\n/* CSS Images */\nimage-resolution = RESOLUTION;\nobject-fit = fill | contain | cover | none | scale-down;\nobject-position = COMMA( SPACE(BG_POSITION_TERM{1,4})+ ); /* relaxed */\n\n/* CSS Paged Media */\nPAGE_SIZE = a10 | a9 | a8 | a7 | a6 | a5 | a4 | a3 | a2 | a1 | a0\n | b10 | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0\n | c10 | c9 | c8 | c7 | c6 | c5 | c4 | c3 | c2 | c1 | c0\n | jis-b10 | jis-b9 | jis-b8 | jis-b7 | jis-b6 | jis-b5 | jis-b4 | jis-b3 | jis-b2 | jis-b1 | jis-b0\n | letter | legal | ledger;\nbleed = auto | LENGTH;\nmarks = none | [ crop || cross ];\nsize = POS_LENGTH{1,2} | auto | [ PAGE_SIZE || [ portrait | landscape ] ];\ncrop-offset = auto | LENGTH;\ncrop-marks-line-color = auto | COLOR;\n\n/* CSS Page Floats */\nclear = none | left | right | top | bottom | inline-start | inline-end | block-start | block-end | inside | outside | both | all | same | column | region | page;\nfloat-reference = inline | column | region | page;\nfloat = none | footnote | [ block-start || block-end || inline-start || inline-end || snap-block || snap-inline || left || right || top || bottom || inside || outside ];\nfloat-min-wrap-block = PPLENGTH;\n\n/* CSS Ruby */\nruby-align = start | center | space-between | space-around;\nruby-position = over | under | inter-character;\n\n/* CSS Size Adjust */\n[moz,webkit]text-size-adjust = auto | none | POS_PERCENTAGE;\n\n/* CSS Text */\n[webkit]line-break = auto | loose | normal | strict | anywhere;\noverflow-wrap = normal | break-word | anywhere;\n[moz]tab-size = NNEG_INT | NNEG_LENGTH;\n[moz]text-align-last = auto | start | end | left | right | center | justify | inside | outside;\ntext-justify = auto | none | inter-word | inter-character;\nword-break = normal | keep-all | break-all | break-word;\ntext-spacing-trim = auto | normal | space-all | trim-both | trim-auto |\n [[ trim-start | space-start | space-first ] ||\n [ trim-end | space-end | allow-end ] ||\n [ trim-adjacent | space-adjacent ]];\ntext-autospace = normal | auto | no-autospace |\n [[ ideograph-alpha || ideograph-numeric || punctuation ] || [ insert | replace ]];\nhanging-punctuation = none | [ first || [ force-end | allow-end ] || last ];\n\n/* CSS Text Decoration */\n[webkit]text-decoration-color = COLOR;\n[webkit]text-decoration-line = none | [ underline || overline || line-through || blink ];\n[webkit]text-decoration-skip = none | [ objects || spaces || ink || edges || box-decoration ];\n[webkit]text-decoration-style = solid | double | dotted | dashed | wavy;\n[webkit]text-decoration-thickness = from-font | APLENGTH;\n[epub,webkit]text-emphasis-color = COLOR;\n[webkit]text-emphasis-position = [ over | under ] [ right | left ];\n[epub,webkit]text-emphasis-style = none | [[ filled | open ] || [ dot | circle | double-circle | triangle | sesame ]] | STRING;\n[webkit]text-underline-position = auto | [ under || [ left | right ]];\n\n[webkit]initial-letter = normal | [ POS_NUM POS_INT? ];\n\n/* CSS Transforms */\n[webkit]backface-visibility = visible | hidden;\n\n/* CSS UI */\n[moz,webkit]box-sizing = content-box | padding-box | border-box;\ntext-overflow = [clip | ellipsis | STRING]{1,2};\n\n/* CSS Writing Modes */\n[epub,webkit]text-combine = none | horizontal;\ntext-combine-upright = none | all; /* relaxed */\n[epub,webkit]text-orientation = mixed | upright | sideways-right | sideways-left | sideways | use-glyph-orientation /* the following values are kept for backward-compatibility */ | vertical-right | rotate-right | rotate-left | rotate-normal | auto;\nunicode-bidi = normal | embed | isolate | bidi-override | isolate-override | plaintext;\n[epub,webkit]writing-mode = horizontal-tb | vertical-rl | lr-tb | rl-tb | tb-rl | lr | rl | tb;\n\n/* CSS Flex box */\nFLEX_BASIS = content | PAPLENGTH;\nflex-direction = row | row-reverse | column | column-reverse;\nflex-wrap = nowrap | wrap | wrap-reverse;\norder = INT;\nflex-grow = NNEG_NUM;\nflex-shrink = NNEG_NUM;\nflex-basis = FLEX_BASIS;\nflex = none | [ [ NNEG_NUM NNEG_NUM? ] || FLEX_BASIS ];\njustify-content = flex-start | flex-end | center | space-between | space-around;\nalign-items = flex-start | flex-end | center | baseline | stretch;\nalign-self = auto | flex-start | flex-end | center | baseline | stretch;\nalign-content = flex-start | flex-end | center | space-between | space-around | stretch;\n\n/* Pointer Events */\ntouch-action = auto | none | [ pan-x || pan-y ] | manipulation;\n\n/* SVG 2 */\nOPACITY_VALUE = NUM | PERCENTAGE;\nDASH_ARRAY = COMMA( SPACE( [ LENGTH | PERCENTAGE | NUM ]+ )+ );\nPAINT = none | child | child(INT) | COLOR | SPACE( URI [none | COLOR]? ) | context-fill | context-stroke;\ncolor-interpolation = auto | sRGB | linearRGB;\ncolor-rendering = auto | optimizeSpeed | optimizeQuality;\nfill = PAINT;\nfill-opacity = OPACITY_VALUE;\nfill-rule = nonzero | evenodd;\nglyph-orientation-vertical = auto | NUM | ANGLE;\nimage-rendering = auto | optimizeSpeed | optimizeQuality | crisp-edges | pixelated;\nmarker-start = none | URI;\nmarker-mid = none | URI;\nmarker-end = none | URI;\npointer-events = bounding-box | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none;\npaint-order = normal | [ fill || stroke || markers ];\nshape-rendering = auto | optimizeSpeed | crispEdges | geometricPrecision;\nstop-color = COLOR;\nstop-opacity = OPACITY_VALUE;\nstroke = PAINT;\nstroke-dasharray = none | DASH_ARRAY;\nstroke-dashoffset = PERCENTAGE | LENGTH_OR_NUM;\nstroke-linecap = butt | round | square;\nstroke-linejoin = miter | round | bevel;\nstroke-miterlimit = NUM;\nstroke-opacity = OPACITY_VALUE;\nstroke-width = PERCENTAGE | LENGTH_OR_NUM;\ntext-anchor = start | middle | end;\ntext-rendering = auto | optimizeSpeed | optimizeLegibility | geometricPrecision;\nvector-effect = none | SPACE( [ non-scaling-stroke | non-scaling-size | non-rotation | fixed-position ]+ [ viewport | screen ]? );\n\n/* SVG 1.1 */\nalignment-baseline = auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical;\nbaseline-shift = baseline | sub | super | PERCENTAGE | LENGTH_OR_NUM;\ndominant-baseline = auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge;\nmask = none | URI;\n\n/* css-masking-1 */\nSHAPE_RADIUS = PLENGTH | closest-side | farthest-side;\nFILL_RULE = nonzero | evenodd;\nSHAPE_BOX = BOX | margin-box;\nGEOMETRY_BOX = SHAPE_BOX | fill-box | stroke-box | view-box;\nBASIC_SHAPE =\n inset( SPACE( PLENGTH{1,4} [ round PLENGTH{1,4} [ SLASH PLENGTH{1,4} ]? ]? ) )\n | circle( SPACE( [SHAPE_RADIUS]? [at BG_POSITION_TERM{1,4}]? ) )\n | ellipse( SPACE( SHAPE_RADIUS{2}? [at BG_POSITION_TERM{1,4}]? ) )\n | polygon( FILL_RULE? COMMA( SPACE( PLENGTH{2} )+ )+ );\n[webkit]clip-path = none | URI | [ BASIC_SHAPE || GEOMETRY_BOX ];\nclip-rule = nonzero | evenodd;\n\n/* filters */\nflood-color = COLOR;\nflood-opacity = OPACITY_VALUE;\nlighting-color = COLOR;\n\n/* compositing-1 */\nBLEND_MODE = normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity;\nmix-blend-mode = BLEND_MODE;\nisolation = auto | isolate;\nbackground-blend-mode = COMMA( BLEND_MODE+ );\n\n/* CSS GCPM */\nstring-set = COMMA( SPACE( IDENT CONTENT_LIST )+ | none );\nfootnote-display = block | inline | compact;\nfootnote-policy = auto | line;\n\n/* CSS Repeated Headers and Footers */\n[viv]repeat-on-break = auto | none | header | footer;\n\n/* Compatibility */\n[webkit]text-fill-color = COLOR;\n[webkit]text-stroke-color = COLOR;\n[webkit]text-stroke-width = BORDER_SIDE_WIDTH;\n\nDEFAULTS\n\nbackground-attachment: scroll;\nbackground-color: transparent;\nbackground-image: none;\nbackground-repeat: repeat;\nbackground-position: 0% 0%;\nbackground-clip: border-box;\nbackground-origin: padding-box;\nbackground-size: auto;\nborder-top-color: currentColor;\nborder-right-color: currentColor;\nborder-bottom-color: currentColor;\nborder-left-color: currentColor;\nborder-top-style: none;\nborder-right-style: none;\nborder-bottom-style: none;\nborder-left-style: none;\nborder-top-width: 3px;\nborder-right-width: 3px;\nborder-bottom-width: 3px;\nborder-left-width: 3px;\nborder-top-left-radius: 0;\nborder-top-right-radius: 0;\nborder-bottom-right-radius: 0;\nborder-bottom-left-radius: 0;\nborder-image-source: none;\nborder-image-slice: 100%;\nborder-image-width: 1;\nborder-image-outset: 0;\nborder-image-repeat: stretch;\ncolumn-count: auto;\ncolumn-gap: normal;\ncolumn-width: auto;\ncolumn-rule-color: currentColor;\ncolumn-rule-style: none;\ncolumn-rule-width: 3px;\ncolumn-fill: balance;\noutline-color: currentColor;\noutline-style: none;\noutline-width: 3px;\nflex-direction: row;\nflex-wrap: nowrap;\nfont-family: serif;\nfont-style: normal;\nfont-size: medium;\nfont-size-adjust: none;\nfont-kerning: auto;\nfont-feature-settings: normal;\nfont-variant-ligatures: normal;\nfont-variant-caps: normal;\nfont-variant-numeric: normal;\nfont-variant-east-asian: normal;\nfont-weight: normal;\nfont-stretch: normal;\nline-height: normal;\nlist-style-image: none;\nlist-style-position: outside;\nlist-style-type: disc;\nmargin-bottom: auto;\nmargin-left: auto;\nmargin-right: auto;\nmargin-top: auto;\npadding-bottom: auto;\npadding-left: auto;\npadding-right: auto;\npadding-top: auto;\ntext-autospace: normal;\ntext-emphasis-color: currentColor;\ntext-emphasis-style: none;\ntext-spacing-trim: normal;\ntext-stroke-color: currentColor;\ntext-stroke-width: 0;\nmarker-start: none;\nmarker-mid: none;\nmarker-end: none;\n\n/* css-logical */\nborder-block-start-color: currentColor;\nborder-block-end-color: currentColor;\nborder-inline-start-color: currentColor;\nborder-inline-end-color: currentColor;\nborder-inside-color: currentColor;\nborder-outside-color: currentColor;\nborder-block-start-style: none;\nborder-block-end-style: none;\nborder-inline-start-style: none;\nborder-inline-end-style: none;\nborder-inside-style: none;\nborder-outside-style: none;\nborder-block-start-width: 3px;\nborder-block-end-width: 3px;\nborder-inline-start-width: 3px;\nborder-inline-end-width: 3px;\nborder-inside-width: 3px;\nborder-outside-width: 3px;\n\nSHORTHANDS\n\nall = ALL;\nbackground = COMMA background-image [background-position [ / background-size ]] background-repeat\n background-attachment [background-origin background-clip] background-color; /* background-color is a special case, see the code */\nborder-top = border-top-width border-top-style border-top-color;\nborder-right = border-right-width border-right-style border-right-color;\nborder-bottom = border-bottom-width border-bottom-style border-bottom-color;\nborder-left = border-left-width border-left-style border-left-color;\nborder-inside = border-inside-width border-inside-style border-inside-color;\nborder-outside = border-outside-width border-outside-style border-outside-color;\nborder-width = INSETS border-top-width border-right-width border-bottom-width border-left-width;\nborder-style = INSETS border-top-style border-right-style border-bottom-style border-left-style;\nborder-color = INSETS border-top-color border-right-color border-bottom-color border-left-color;\nborder = border-width border-style border-color;\nborder-image = border-image-source border-image-slice [ / border-image-width [ / border-image-outset ] ]\n border-image-repeat;\nborder-radius = INSETS_SLASH border-top-left-radius border-top-right-radius\n border-bottom-right-radius border-bottom-left-radius;\n[moz,webkit]columns = column-width column-count;\n[moz,webkit]column-rule = column-rule-width column-rule-style column-rule-color;\nflex-flow = flex-direction flex-wrap;\noeb-column-number = column-count;\noutline = outline-width outline-style outline-color;\nlist-style = list-style-position list-style-type list-style-image;\nmargin = INSETS margin-top margin-right margin-bottom margin-left;\npadding = INSETS padding-top padding-right padding-bottom padding-left;\nfont = FONT font-style font-variant_css2 font-weight font-stretch_css3 /* font-size line-height font-family are special-cased */;\nfont-variant = font-variant-ligatures font-variant-caps font-variant-numeric font-variant-east-asian;\n[epub,webkit]text-emphasis = text-emphasis-style text-emphasis-color;\nmarker = INSETS marker-start marker-mid marker-end;\n[webkit]text-stroke = text-stroke-width text-stroke-color;\ntext-decoration = text-decoration-line text-decoration-color text-decoration-style text-decoration-thickness;\ntext-spacing = TEXT_SPACING text-autospace text-spacing-trim;\n\n/* css-logical */\nmargin-block = INSETS margin-block-start margin-block-end;\nmargin-inline = INSETS margin-inline-start margin-inline-end;\npadding-block = INSETS padding-block-start padding-block-end;\npadding-inline = INSETS padding-inline-start padding-inline-end;\nborder-block-width = INSETS border-block-start-width border-block-end-width;\nborder-block-style = INSETS border-block-start-style border-block-end-style;\nborder-block-color = INSETS border-block-start-color border-block-end-color;\nborder-inline-width = INSETS border-inline-start-width border-inline-end-width;\nborder-inline-style = INSETS border-inline-start-style border-inline-end-style;\nborder-inline-color = INSETS border-inline-start-color border-inline-end-color;\nborder-block = border-block-width border-block-style border-block-color;\nborder-inline = border-inline-width border-inline-style border-inline-color;\nborder-block-start = border-block-start-width border-block-start-style border-block-start-color;\nborder-block-end = border-block-end-width border-block-end-style border-block-end-color;\nborder-inline-start = border-inline-start-width border-inline-start-style border-inline-start-color;\nborder-inline-end = border-inline-end-width border-inline-end-style border-inline-end-color;\ninset-block-start = block-start;\ninset-block-end = block-end;\ninset-inline-start = inline-start;\ninset-inline-end = inline-end;\ninset-inside = inside;\ninset-outside = outside;\ninset-block = INSETS block-start block-end;\ninset-inline = INSETS inline-start inline-end;\ninset = INSETS top right bottom left;\n\n/* old names */\nword-wrap = overflow-wrap;\n[adapt,webkit]margin-before = margin-block-start;\n[adapt,webkit]margin-after = margin-block-end;\n[adapt,webkit]margin-start = margin-inline-start;\n[adapt,webkit]margin-end = margin-inline-end;\n[adapt,webkit]padding-before = padding-block-start;\n[adapt,webkit]padding-after = padding-block-end;\n[adapt,webkit]padding-start = padding-inline-start;\n[adapt,webkit]padding-end = padding-inline-end;\n[adapt,webkit]border-before-color = border-block-start-color;\n[adapt,webkit]border-after-color = border-block-end-color;\n[adapt,webkit]border-start-color = border-inline-start-color;\n[adapt,webkit]border-end-color = border-inline-end-color;\n[adapt,webkit]border-before-style = border-block-start-style;\n[adapt,webkit]border-after-style = border-block-end-style;\n[adapt,webkit]border-start-style = border-inline-start-style;\n[adapt,webkit]border-end-style = border-inline-end-style;\n[adapt,webkit]border-before-width = border-block-start-width;\n[adapt,webkit]border-after-width = border-block-end-width;\n[adapt,webkit]border-start-width = border-inline-start-width;\n[adapt,webkit]border-end-width = border-inline-end-width;\n[adapt,webkit]before = block-start;\n[adapt,webkit]after = block-end;\n[adapt,webkit]start = inline-start;\n[adapt,webkit]end = inline-end;\n\n";
|
|
26
26
|
/** user-agent.xml */
|
|
27
|
-
export declare const UserAgentXml = "\n<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:s=\"http://www.pyroxy.com/ns/shadow\">\n<head>\n<style><![CDATA[\n\n.-vivliostyle-footnote-content {\n float: footnote;\n}\n\n.-vivliostyle-table-cell-container {\n display: block;\n}\n\n]]></style>\n</head>\n<body>\n\n<s:template id=\"footnote\"><s:content/><s:include class=\"-vivliostyle-footnote-content\"/></s:template>\n\n<s:template id=\"table-cell\"><div data-vivliostyle-flow-root=\"true\" class=\"-vivliostyle-table-cell-container\"><s:content/></div></s:template>\n\n</body>\n</html>";
|
|
27
|
+
export declare const UserAgentXml = "\n<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:s=\"http://www.pyroxy.com/ns/shadow\">\n<head>\n<style><![CDATA[\n\n.-vivliostyle-footnote-content {\n float: footnote;\n --viv-semantic-footnote-content: 1;\n}\n\n.-vivliostyle-table-cell-container {\n display: block;\n}\n\n]]></style>\n</head>\n<body>\n\n<s:template id=\"footnote\"><s:content/><s:include class=\"-vivliostyle-footnote-content\"/></s:template>\n\n<s:template id=\"table-cell\"><div data-vivliostyle-flow-root=\"true\" class=\"-vivliostyle-table-cell-container\"><s:content/></div></s:template>\n\n</body>\n</html>";
|
|
28
28
|
/** user-agent-page.css */
|
|
29
29
|
export declare const UserAgentPageCss = "\n@namespace \"http://www.w3.org/1999/xhtml\";\n\n:root {\n hyphens: -epubx-expr(pref-hyphenate? \"auto\": \"manual\");\n}\n:root[data-vivliostyle-epub-spine-properties~=\"page-spread-left\"] {\n break-before: left;\n}\n:root[data-vivliostyle-epub-spine-properties~=\"page-spread-right\"] {\n break-before: right;\n}\n\n@footnote {\n margin-block-start: 0.5em;\n}\n@footnote ::before {\n border-block-start-width: 1px;\n border-block-start-style: solid;\n border-block-start-color: black;\n margin-block-end: 0.4em;\n margin-inline-start: 0;\n margin-inline-end: 60%;\n}\n\n/* default page master */\n@-epubx-page-master :background-host {\n @-epubx-partition :layout-host {\n -epubx-flow-from: body;\n top: -epubx-expr(header.margin-bottom-edge);\n bottom: -epubx-expr(page-height - footer.margin-top-edge);\n left: 0px;\n right: 0px;\n column-width: 25em;\n }\n @-epubx-partition footer :oeb-page-foot {\n writing-mode: horizontal-tb;\n -epubx-flow-from: oeb-page-foot;\n bottom: 0px;\n left: 0px;\n right: 0px;\n }\n @-epubx-partition header :oeb-page-head {\n writing-mode: horizontal-tb;\n -epubx-flow-from: oeb-page-head;\n top: 0px;\n left: 0px;\n right: 0px;\n }\n}\n\n@page {\n @top-left-corner {\n text-align: right;\n vertical-align: middle;\n }\n @top-left {\n text-align: left;\n vertical-align: middle;\n }\n @top-center {\n text-align: center;\n vertical-align: middle;\n }\n @top-right {\n text-align: right;\n vertical-align: middle;\n }\n @top-right-corner {\n text-align: left;\n vertical-align: middle;\n }\n @left-top {\n text-align: center;\n vertical-align: top;\n }\n @left-middle {\n text-align: center;\n vertical-align: middle;\n }\n @left-bottom {\n text-align: center;\n vertical-align: bottom;\n }\n @right-top {\n text-align: center;\n vertical-align: top;\n }\n @right-middle {\n text-align: center;\n vertical-align: middle;\n }\n @right-bottom {\n text-align: center;\n vertical-align: bottom;\n }\n @bottom-left-corner {\n text-align: right;\n vertical-align: middle;\n }\n @bottom-left {\n text-align: left;\n vertical-align: middle;\n }\n @bottom-center {\n text-align: center;\n vertical-align: middle;\n }\n @bottom-right {\n text-align: right;\n vertical-align: middle;\n }\n @bottom-right-corner {\n text-align: left;\n vertical-align: middle;\n }\n}\n\n@media print {\n @page {\n margin: 10%;\n }\n}\n";
|
|
30
30
|
/** user-agent-base.css */
|
|
@@ -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-
|
|
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
|
|
@@ -181,6 +181,7 @@ export declare const SPECIALS: {
|
|
|
181
181
|
"region-id": boolean;
|
|
182
182
|
"fragment-selector-id": boolean;
|
|
183
183
|
};
|
|
184
|
+
export declare const FOOTNOTE_COUNTER_ATTR = "data-viv-footnote-counter";
|
|
184
185
|
export declare function isSpecialName(name: string): boolean;
|
|
185
186
|
export declare function isMapName(name: string): boolean;
|
|
186
187
|
export declare function isPropName(name: string): boolean;
|
|
@@ -852,6 +853,7 @@ export declare class CascadeParserHandler extends CssParser.SlaveParserHandler i
|
|
|
852
853
|
elementStyle: ElementStyle;
|
|
853
854
|
conditionCount: number;
|
|
854
855
|
pseudoelement: string | null;
|
|
856
|
+
selectorFunctionContainsPseudoelement: boolean;
|
|
855
857
|
footnoteContent: boolean;
|
|
856
858
|
cascade: Cascade;
|
|
857
859
|
state: ParseState;
|
|
@@ -861,6 +863,7 @@ export declare class CascadeParserHandler extends CssParser.SlaveParserHandler i
|
|
|
861
863
|
constructor(scope: Exprs.LexicalScope, owner: CssParser.DispatchParserHandler, condition: Exprs.Val, parent: CascadeParserHandler, regionId: string | null, validatorSet: CssValidator.ValidatorSet, topLevel: boolean);
|
|
862
864
|
protected insertNonPrimary(action: CascadeAction): void;
|
|
863
865
|
processChain(action: CascadeAction): void;
|
|
866
|
+
private invalidContinuationAfterPseudoelement;
|
|
864
867
|
isInsideSelectorRule(mnemonics: string): boolean;
|
|
865
868
|
tagSelector(ns: string | null, name: string | null): void;
|
|
866
869
|
invalidSelector(message: string): void;
|
|
@@ -906,6 +909,7 @@ export declare class MatchesParameterParserHandler extends CascadeParserHandler
|
|
|
906
909
|
chains: ChainedAction[][];
|
|
907
910
|
maxSpecificity: number;
|
|
908
911
|
selectorTexts: string[];
|
|
912
|
+
containsPseudoelementSelector: boolean;
|
|
909
913
|
constructor(parent: CascadeParserHandler);
|
|
910
914
|
nextSelector(): void;
|
|
911
915
|
endFuncWithSelector(): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 Vivliostyle Foundation
|
|
3
|
+
*
|
|
4
|
+
* Vivliostyle.js is free software: you can redistribute it and/or modify
|
|
5
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
6
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
* (at your option) any later version.
|
|
8
|
+
*
|
|
9
|
+
* Vivliostyle.js is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with Vivliostyle.js. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
*
|
|
17
|
+
* @fileoverview CssNesting - CSS Nesting preprocessor.
|
|
18
|
+
*/
|
|
19
|
+
export declare function expandNesting(input: string): string;
|
|
20
|
+
export declare function replaceScopeAmpersands(selector: string): string;
|
|
@@ -293,6 +293,7 @@ export declare class Parser {
|
|
|
293
293
|
exprStackReduce(op: number, token: CssTokenizer.Token): boolean;
|
|
294
294
|
readSupportsTest(token: CssTokenizer.Token): Exprs.SupportsTest;
|
|
295
295
|
readPseudoParams(): (number | string)[];
|
|
296
|
+
skipPseudoFunctionContents(): boolean;
|
|
296
297
|
/**
|
|
297
298
|
* Read `an+b` argument of pseudoclasses. Roughly based on the algorithm at
|
|
298
299
|
* https://drafts.csswg.org/css-syntax/#the-anb-type
|
|
@@ -6,7 +6,8 @@ import { Layout } from "./types";
|
|
|
6
6
|
declare const PageFloatFragment: typeof PageFloats.PageFloatFragment;
|
|
7
7
|
export declare class Footnote extends PageFloats.PageFloat {
|
|
8
8
|
readonly footnotePolicy: Css.Ident | null;
|
|
9
|
-
|
|
9
|
+
readonly policyAnchorNode: Node;
|
|
10
|
+
constructor(nodePosition: Vtree.NodePosition, floatReference: PageFloats.FloatReference, flowName: string, footnotePolicy: Css.Ident | null, floatMinWrapBlock: Css.Numeric | null, policyAnchorNode: Node);
|
|
10
11
|
isAllowedToPrecede(other: PageFloats.PageFloat): boolean;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
@@ -58,6 +58,19 @@ export declare function getElementClientRectAdjusted(clientLayout: Vtree.ClientL
|
|
|
58
58
|
* This is used to prevent unnecessary blank pages.
|
|
59
59
|
*/
|
|
60
60
|
export declare function clearForcedColumnBreaks(prevNode: Node, currNode: Node): void;
|
|
61
|
+
/**
|
|
62
|
+
* Check if an element has non-root multi-column styles (column-count or
|
|
63
|
+
* column-width) set on its inline style.
|
|
64
|
+
*
|
|
65
|
+
* NOTE: Do not use `instanceof HTMLElement` for the check because it does
|
|
66
|
+
* not work when the node is inside an iframe. (Issue #1000)
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasNonRootMultiColumnStyle(element: Element): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Check if the given element or any of its descendants establishes a
|
|
71
|
+
* non-root multi-column layout (via inline style).
|
|
72
|
+
*/
|
|
73
|
+
export declare function containsNonRootMultiColumn(element: Element): boolean;
|
|
61
74
|
/**
|
|
62
75
|
* Find the nearest ancestor element that establishes a multi-column
|
|
63
76
|
* layout but is not the root column element.
|
|
@@ -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>;
|
|
@@ -485,5 +487,10 @@ export declare class PageFloatArea extends Column implements Layout.PageFloatAre
|
|
|
485
487
|
getContentBlockMarginAfter(): number;
|
|
486
488
|
applyCompactFootnoteDisplay(): void;
|
|
487
489
|
private updateComputedBlockSizeForFootnoteArea;
|
|
490
|
+
private getFootnoteAfterPseudo;
|
|
491
|
+
private hasAuthorFootnoteAfterPseudo;
|
|
492
|
+
private createDefaultFootnoteAfterPseudo;
|
|
493
|
+
private getFootnoteBreakOpportunity;
|
|
494
|
+
private createFootnoteBreakOpportunity;
|
|
488
495
|
private updateInlineFootnoteSeparators;
|
|
489
496
|
}
|
|
@@ -102,6 +102,27 @@ export declare class PageFloatLayoutContext implements PageFloats.PageFloatLayou
|
|
|
102
102
|
private floatsDeferredFromPrevious;
|
|
103
103
|
private layoutConstraints;
|
|
104
104
|
private locked;
|
|
105
|
+
/**
|
|
106
|
+
* Maximum outer block size for footnotes on this page.
|
|
107
|
+
* Set when a footnote is placed but then found to be not-allowed (anchor
|
|
108
|
+
* not reachable in multi-column). Each retry halves this value until
|
|
109
|
+
* the footnote fits or is too small to display. (Issue #1879)
|
|
110
|
+
*/
|
|
111
|
+
footnoteMaxBlockSize: number | null;
|
|
112
|
+
/**
|
|
113
|
+
* When true, max-height on @footnote areas should be ignored.
|
|
114
|
+
* Set when a page contains only footnote continuation(s) and no body
|
|
115
|
+
* content. Per CSS GCPM §2.4.2, max-height should not apply in this
|
|
116
|
+
* case. (Issue #1878)
|
|
117
|
+
*/
|
|
118
|
+
ignoreFootnoteAreaMaxHeight: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Tracks footnote IDs whose anchors have been registered at least once
|
|
121
|
+
* during this page's layout cycle. Unlike floatAnchors, this set
|
|
122
|
+
* survives invalidate() calls, so we can detect feedback loops where
|
|
123
|
+
* a footnote's own size pushes its anchor off the page. (Issue #1879)
|
|
124
|
+
*/
|
|
125
|
+
private footnoteAnchorsSeen;
|
|
105
126
|
/**
|
|
106
127
|
* Reference to the outer column's context for page float area contexts.
|
|
107
128
|
* Used only for getParent() navigation to propagate nested page floats
|
|
@@ -138,15 +159,22 @@ export declare class PageFloatLayoutContext implements PageFloats.PageFloatLayou
|
|
|
138
159
|
findPageFloatFragment(float: PageFloat): PageFloatFragment | null;
|
|
139
160
|
hasFloatFragments(condition?: (p1: PageFloatFragment) => boolean): boolean;
|
|
140
161
|
hasContinuingFloatFragmentsInFlow(flowName: string): boolean;
|
|
162
|
+
markPageFloatAnchorSeen(float: PageFloat): void;
|
|
141
163
|
registerPageFloatAnchor(float: PageFloat, anchorViewNode: Node): void;
|
|
142
164
|
collectPageFloatAnchors(): any;
|
|
143
165
|
isAnchorAlreadyAppeared(floatId: PageFloatID): boolean;
|
|
144
166
|
deferPageFloat(continuation: PageFloatContinuation): void;
|
|
167
|
+
removeFloatDeferredToNext(float: PageFloat): void;
|
|
145
168
|
hasPrecedingFloatsDeferredToNext(float: PageFloat, ignoreReference?: boolean): boolean;
|
|
146
169
|
getLastFollowingFloatInFragments(float: PageFloat): PageFloat | null;
|
|
147
170
|
getDeferredPageFloatContinuations(flowName?: string | null): PageFloatContinuation[];
|
|
148
171
|
getPageFloatContinuationsDeferredToNext(flowName?: string | null): PageFloatContinuation[];
|
|
149
172
|
getFloatsDeferredToNextInChildContexts(): PageFloat[];
|
|
173
|
+
private hasRootMultiColumnFootnoteContext;
|
|
174
|
+
private hasNonRootMultiColumnFootnoteContext;
|
|
175
|
+
private hasMultiColumnFootnoteContext;
|
|
176
|
+
private trySetFootnoteRetryMaxBlockSize;
|
|
177
|
+
initFootnoteRetryFromEmptyFragment(float: PageFloat, area: LayoutType.PageFloatArea): boolean;
|
|
150
178
|
checkAndForbidNotAllowedFloat(): boolean;
|
|
151
179
|
checkAndForbidFloatFollowingDeferredFloat(): boolean;
|
|
152
180
|
finish(): void;
|
|
@@ -160,3 +160,10 @@ export declare class RepetitiveElementsOwnerLayoutProcessor extends LayoutProces
|
|
|
160
160
|
export declare function appendHeaderToAncestors(nodeContext: Vtree.NodeContext, column: LayoutType.Column): void;
|
|
161
161
|
export declare function appendHeader(formattingContext: RepetitiveElement.RepetitiveElementsOwnerFormattingContext, nodeContext: Vtree.NodeContext, column: LayoutType.Column): Task.Result<boolean>;
|
|
162
162
|
export declare function appendFooter(formattingContext: RepetitiveElement.RepetitiveElementsOwnerFormattingContext, nodeContext: Vtree.NodeContext, column: LayoutType.Column): Task.Result<boolean>;
|
|
163
|
+
/**
|
|
164
|
+
* Check whether an overflow is within the scope of the repetitive elements
|
|
165
|
+
* owner. Returns true if the overflow should trigger header/footer skipping
|
|
166
|
+
* (i.e., the overflowing node is inside the owner), false otherwise.
|
|
167
|
+
* (Issue #1873)
|
|
168
|
+
*/
|
|
169
|
+
export declare function isOverflowInsideRepetitiveElementsOwner(nodeContext: Vtree.NodeContext, overflownNodeContext: Vtree.NodeContext, repetitiveElements: RepetitiveElement.RepetitiveElements): boolean;
|
|
@@ -15,6 +15,60 @@
|
|
|
15
15
|
* along with Vivliostyle.js. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
17
|
* @fileoverview Semantic footnote helper utilities.
|
|
18
|
+
*
|
|
19
|
+
* This module owns semantic-footnote-specific rules that are independent from
|
|
20
|
+
* the main view-generation flow: element/reference detection, shared marker
|
|
21
|
+
* attributes, first-reference bookkeeping, and style-merging helpers that can
|
|
22
|
+
* be driven by injected style accessors.
|
|
23
|
+
*
|
|
24
|
+
* Keep view-tree sequencing and DOM construction in vgen.ts. Extend this
|
|
25
|
+
* module when new DPUB/EPUB semantic footnote behavior can be expressed as
|
|
26
|
+
* pure reference/style helpers that do not need direct access to ViewFactory
|
|
27
|
+
* state.
|
|
18
28
|
*/
|
|
29
|
+
import * as Css from "./css";
|
|
30
|
+
import * as Exprs from "./exprs";
|
|
31
|
+
import * as Vtree from "./vtree";
|
|
32
|
+
import { CssCascade } from "./types";
|
|
33
|
+
export declare const SEMANTIC_FOOTNOTE_FIRST_REF_ATTR = "data-vivliostyle-footnote-first-ref";
|
|
34
|
+
export declare const SEMANTIC_FOOTNOTE_REFERENCED_ATTR = "data-vivliostyle-footnote-referenced";
|
|
35
|
+
type CascadeValueLike = {
|
|
36
|
+
value: Css.Val;
|
|
37
|
+
priority: number;
|
|
38
|
+
evaluate?: (context: Exprs.Context, propName: string) => Css.Val;
|
|
39
|
+
filterValue?: (visitor: unknown) => CascadeValueLike;
|
|
40
|
+
};
|
|
41
|
+
type ElementStyleMap = {
|
|
42
|
+
[key: string]: CssCascade.ElementStyle;
|
|
43
|
+
};
|
|
44
|
+
export type SemanticFootnoteStyleAccess = {
|
|
45
|
+
getStyle: (element: Element) => CssCascade.ElementStyle | null;
|
|
46
|
+
getProp: (style: CssCascade.ElementStyle | null | undefined, propName: string) => CascadeValueLike | null | undefined;
|
|
47
|
+
getStyleMap: (style: CssCascade.ElementStyle, mapName: string) => ElementStyleMap | null | undefined;
|
|
48
|
+
getMutableStyleMap: (style: CssCascade.ElementStyle, mapName: string) => ElementStyleMap;
|
|
49
|
+
createCascadeValue: (value: Css.Val, priority: number) => CascadeValueLike;
|
|
50
|
+
filterFootnoteMarkerContent: (content: CascadeValueLike, element: Element) => Css.Val;
|
|
51
|
+
};
|
|
52
|
+
export type SemanticFootnoteStyleState = {
|
|
53
|
+
sourceStyle: CssCascade.ElementStyle | null;
|
|
54
|
+
footnoteDisplay: Css.Val | null;
|
|
55
|
+
footnotePolicy: Css.Ident | null;
|
|
56
|
+
};
|
|
19
57
|
export declare function isSemanticFootnoteElement(element: Element): boolean;
|
|
20
58
|
export declare function isSemanticFootnoteNoterefElement(element: Element): boolean;
|
|
59
|
+
export declare function resolveSemanticFootnoteReference(element: Element, baseURL: string): string | null;
|
|
60
|
+
export declare function resolveSemanticFootnoteTarget(element: Element, baseURL: string, resolveElement: (reference: string) => Element | null): Element | null;
|
|
61
|
+
export declare function initializeFirstSemanticFootnoteReferenceOffsets(ownerDocument: Document, baseURL: string, getElementOffset: (element: Element) => number, firstRefOffsets: Map<string, number>, initialized: {
|
|
62
|
+
value: boolean;
|
|
63
|
+
}): void;
|
|
64
|
+
export declare function shouldGenerateSemanticFootnote(element: Element, baseURL: string, getElementOffset: (element: Element) => number, firstRefOffsets: Map<string, number>, initialized: {
|
|
65
|
+
value: boolean;
|
|
66
|
+
}): boolean;
|
|
67
|
+
export declare function mergeSemanticFootnoteIncludeStyle(element: Element, elementStyle: CssCascade.ElementStyle, shadowContext: Vtree.ShadowContext | null, baseURL: string, resolveElement: (reference: string) => Element | null, footnoteCounterAttr: string, styleAccess: SemanticFootnoteStyleAccess): CssCascade.ElementStyle;
|
|
68
|
+
export declare function mergeSemanticFootnoteRootStyle(element: Element, elementStyle: CssCascade.ElementStyle, shadowContext: Vtree.ShadowContext | null, context: Exprs.Context, styleAccess: SemanticFootnoteStyleAccess): CssCascade.ElementStyle;
|
|
69
|
+
export declare function getSemanticFootnoteStyleState(element: Element, shadowContext: Vtree.ShadowContext | null, styleAccess: SemanticFootnoteStyleAccess): SemanticFootnoteStyleState;
|
|
70
|
+
export declare function resolveMarkerContentValue(val: Css.Val, context: Exprs.Context): Css.Val;
|
|
71
|
+
export declare function refreshSemanticFootnoteMarkerContent(sourceStyle: CssCascade.ElementStyle | null, computedStyle: {
|
|
72
|
+
[key: string]: Css.Val;
|
|
73
|
+
}, context: Exprs.Context): void;
|
|
74
|
+
export {};
|
|
@@ -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;
|
|
@@ -477,6 +477,7 @@ export declare namespace PageFloats {
|
|
|
477
477
|
writingMode: Css.Val;
|
|
478
478
|
direction: Css.Val;
|
|
479
479
|
floatFragments: PageFloatFragment[];
|
|
480
|
+
ignoreFootnoteAreaMaxHeight: boolean;
|
|
480
481
|
readonly parent: PageFloatLayoutContext;
|
|
481
482
|
readonly effectiveParent: PageFloatLayoutContext | null;
|
|
482
483
|
readonly flowName: string | null;
|
|
@@ -493,15 +494,18 @@ export declare namespace PageFloats {
|
|
|
493
494
|
findPageFloatFragment(float: PageFloat): PageFloatFragment | null;
|
|
494
495
|
hasFloatFragments(condition?: (p1: PageFloatFragment) => boolean): boolean;
|
|
495
496
|
hasContinuingFloatFragmentsInFlow(flowName: string): boolean;
|
|
497
|
+
markPageFloatAnchorSeen(float: PageFloat): void;
|
|
496
498
|
registerPageFloatAnchor(float: PageFloat, anchorViewNode: Node): void;
|
|
497
499
|
collectPageFloatAnchors(): any;
|
|
498
500
|
isAnchorAlreadyAppeared(floatId: PageFloatID): boolean;
|
|
499
501
|
deferPageFloat(continuation: PageFloatContinuation): void;
|
|
502
|
+
removeFloatDeferredToNext(float: PageFloat): void;
|
|
500
503
|
hasPrecedingFloatsDeferredToNext(float: PageFloat, ignoreReference?: boolean): boolean;
|
|
501
504
|
getLastFollowingFloatInFragments(float: PageFloat): PageFloat | null;
|
|
502
505
|
getDeferredPageFloatContinuations(flowName?: string | null): PageFloatContinuation[];
|
|
503
506
|
getPageFloatContinuationsDeferredToNext(flowName?: string | null): PageFloatContinuation[];
|
|
504
507
|
getFloatsDeferredToNextInChildContexts(): PageFloat[];
|
|
508
|
+
initFootnoteRetryFromEmptyFragment(float: PageFloat, area: Layout.PageFloatArea): boolean;
|
|
505
509
|
checkAndForbidNotAllowedFloat(): boolean;
|
|
506
510
|
checkAndForbidFloatFollowingDeferredFloat(): boolean;
|
|
507
511
|
finish(): 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;
|
|
@@ -48,6 +48,8 @@ export declare class ViewFactory extends Base.SimpleEventTarget implements Vtree
|
|
|
48
48
|
private static FOOTNOTE_CALL_OWNER_ATTR;
|
|
49
49
|
document: Document;
|
|
50
50
|
exprContentListener: Vtree.ExprContentListener;
|
|
51
|
+
private computedStyleParentFontSizeOverride;
|
|
52
|
+
private computedStyleParentLineHeightOverride;
|
|
51
53
|
nodeContext: Vtree.NodeContext | null;
|
|
52
54
|
viewRoot: Element | null;
|
|
53
55
|
isFootnote: boolean;
|
|
@@ -63,11 +65,7 @@ export declare class ViewFactory extends Base.SimpleEventTarget implements Vtree
|
|
|
63
65
|
});
|
|
64
66
|
/** @override */
|
|
65
67
|
clone(): Vtree.LayoutContext;
|
|
66
|
-
private
|
|
67
|
-
/**
|
|
68
|
-
* True only for the first semantic footnote reference to the same target.
|
|
69
|
-
*/
|
|
70
|
-
private shouldGenerateSemanticFootnote;
|
|
68
|
+
private syncSemanticFootnoteCounterToTarget;
|
|
71
69
|
createPseudoelementShadow(element: Element, isRoot: boolean, cascStyle: CssCascade.ElementStyle, computedStyle: {
|
|
72
70
|
[key: string]: Css.Val;
|
|
73
71
|
}, styler: CssStyler.AbstractStyler, context: Exprs.Context, parentShadow: Vtree.ShadowContext, subShadow: Vtree.ShadowContext): Vtree.ShadowContext;
|
|
@@ -171,6 +169,10 @@ export declare class ViewFactory extends Base.SimpleEventTarget implements Vtree
|
|
|
171
169
|
* @returns parsed and adjusted value in px, or null if cannot parse as "px" unit, e.g. "normal"
|
|
172
170
|
*/
|
|
173
171
|
private parsePlusLayoutUnitAdj;
|
|
172
|
+
private getFootnoteAreaInheritedMetrics;
|
|
173
|
+
private getComputedFontMetrics;
|
|
174
|
+
private getParentViewStyle;
|
|
175
|
+
private getParentComputedMetrics;
|
|
174
176
|
/**
|
|
175
177
|
* Get "lh" unit size in px
|
|
176
178
|
* @return line-height in px, or null if cannot be determined
|
|
@@ -267,3 +269,9 @@ export declare class Viewport {
|
|
|
267
269
|
*/
|
|
268
270
|
clear(): void;
|
|
269
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;
|