postext 1.19.3 → 1.20.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.
Files changed (251) hide show
  1. package/dist/__tests__/comics/art.test.d.ts +2 -0
  2. package/dist/__tests__/comics/art.test.d.ts.map +1 -0
  3. package/dist/__tests__/comics/art.test.js +96 -0
  4. package/dist/__tests__/comics/art.test.js.map +1 -0
  5. package/dist/__tests__/comics/build.test.d.ts +2 -0
  6. package/dist/__tests__/comics/build.test.d.ts.map +1 -0
  7. package/dist/__tests__/comics/build.test.js +215 -0
  8. package/dist/__tests__/comics/build.test.js.map +1 -0
  9. package/dist/__tests__/comics/canvas.test.d.ts +2 -0
  10. package/dist/__tests__/comics/canvas.test.d.ts.map +1 -0
  11. package/dist/__tests__/comics/canvas.test.js +161 -0
  12. package/dist/__tests__/comics/canvas.test.js.map +1 -0
  13. package/dist/__tests__/comics/config.test.d.ts +2 -0
  14. package/dist/__tests__/comics/config.test.d.ts.map +1 -0
  15. package/dist/__tests__/comics/config.test.js +97 -0
  16. package/dist/__tests__/comics/config.test.js.map +1 -0
  17. package/dist/__tests__/comics/geometry.test.d.ts +2 -0
  18. package/dist/__tests__/comics/geometry.test.d.ts.map +1 -0
  19. package/dist/__tests__/comics/geometry.test.js +118 -0
  20. package/dist/__tests__/comics/geometry.test.js.map +1 -0
  21. package/dist/__tests__/comics/html.test.d.ts +2 -0
  22. package/dist/__tests__/comics/html.test.d.ts.map +1 -0
  23. package/dist/__tests__/comics/html.test.js +253 -0
  24. package/dist/__tests__/comics/html.test.js.map +1 -0
  25. package/dist/__tests__/comics/lettering.test.d.ts +2 -0
  26. package/dist/__tests__/comics/lettering.test.d.ts.map +1 -0
  27. package/dist/__tests__/comics/lettering.test.js +241 -0
  28. package/dist/__tests__/comics/lettering.test.js.map +1 -0
  29. package/dist/__tests__/comics/script.test.d.ts +2 -0
  30. package/dist/__tests__/comics/script.test.d.ts.map +1 -0
  31. package/dist/__tests__/comics/script.test.js +147 -0
  32. package/dist/__tests__/comics/script.test.js.map +1 -0
  33. package/dist/__tests__/comics/split.test.d.ts +2 -0
  34. package/dist/__tests__/comics/split.test.d.ts.map +1 -0
  35. package/dist/__tests__/comics/split.test.js +120 -0
  36. package/dist/__tests__/comics/split.test.js.map +1 -0
  37. package/dist/__tests__/comics/spread.test.d.ts +2 -0
  38. package/dist/__tests__/comics/spread.test.d.ts.map +1 -0
  39. package/dist/__tests__/comics/spread.test.js +161 -0
  40. package/dist/__tests__/comics/spread.test.js.map +1 -0
  41. package/dist/__tests__/comics/strip.test.d.ts +2 -0
  42. package/dist/__tests__/comics/strip.test.d.ts.map +1 -0
  43. package/dist/__tests__/comics/strip.test.js +231 -0
  44. package/dist/__tests__/comics/strip.test.js.map +1 -0
  45. package/dist/__tests__/exports.test.js +89 -0
  46. package/dist/__tests__/exports.test.js.map +1 -1
  47. package/dist/__tests__/parse/containers.test.js +1 -1
  48. package/dist/__tests__/parse/containers.test.js.map +1 -1
  49. package/dist/canvas-backend/comic.d.ts +32 -0
  50. package/dist/canvas-backend/comic.d.ts.map +1 -0
  51. package/dist/canvas-backend/comic.js +216 -0
  52. package/dist/canvas-backend/comic.js.map +1 -0
  53. package/dist/canvas-backend/headerFooter.d.ts +4 -1
  54. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  55. package/dist/canvas-backend/headerFooter.js +3 -1
  56. package/dist/canvas-backend/headerFooter.js.map +1 -1
  57. package/dist/canvas-backend/index.d.ts.map +1 -1
  58. package/dist/canvas-backend/index.js +7 -1
  59. package/dist/canvas-backend/index.js.map +1 -1
  60. package/dist/comics/art.d.ts +72 -0
  61. package/dist/comics/art.d.ts.map +1 -0
  62. package/dist/comics/art.js +154 -0
  63. package/dist/comics/art.js.map +1 -0
  64. package/dist/comics/fonts.d.ts +20 -0
  65. package/dist/comics/fonts.d.ts.map +1 -0
  66. package/dist/comics/fonts.js +42 -0
  67. package/dist/comics/fonts.js.map +1 -0
  68. package/dist/comics/geometry.d.ts +87 -0
  69. package/dist/comics/geometry.d.ts.map +1 -0
  70. package/dist/comics/geometry.js +272 -0
  71. package/dist/comics/geometry.js.map +1 -0
  72. package/dist/comics/index.d.ts +29 -0
  73. package/dist/comics/index.d.ts.map +1 -0
  74. package/dist/comics/index.js +18 -0
  75. package/dist/comics/index.js.map +1 -0
  76. package/dist/comics/layoutPage.d.ts +156 -0
  77. package/dist/comics/layoutPage.d.ts.map +1 -0
  78. package/dist/comics/layoutPage.js +697 -0
  79. package/dist/comics/layoutPage.js.map +1 -0
  80. package/dist/comics/lettering/__tests__/harness.test.d.ts +2 -0
  81. package/dist/comics/lettering/__tests__/harness.test.d.ts.map +1 -0
  82. package/dist/comics/lettering/__tests__/harness.test.js +273 -0
  83. package/dist/comics/lettering/__tests__/harness.test.js.map +1 -0
  84. package/dist/comics/lettering/__tests__/letterPanel.test.d.ts +2 -0
  85. package/dist/comics/lettering/__tests__/letterPanel.test.d.ts.map +1 -0
  86. package/dist/comics/lettering/__tests__/letterPanel.test.js +224 -0
  87. package/dist/comics/lettering/__tests__/letterPanel.test.js.map +1 -0
  88. package/dist/comics/lettering/__tests__/polish.test.d.ts +2 -0
  89. package/dist/comics/lettering/__tests__/polish.test.d.ts.map +1 -0
  90. package/dist/comics/lettering/__tests__/polish.test.js +357 -0
  91. package/dist/comics/lettering/__tests__/polish.test.js.map +1 -0
  92. package/dist/comics/lettering/__tests__/round2.test.d.ts +2 -0
  93. package/dist/comics/lettering/__tests__/round2.test.d.ts.map +1 -0
  94. package/dist/comics/lettering/__tests__/round2.test.js +289 -0
  95. package/dist/comics/lettering/__tests__/round2.test.js.map +1 -0
  96. package/dist/comics/lettering/__tests__/shapeText.test.d.ts +2 -0
  97. package/dist/comics/lettering/__tests__/shapeText.test.d.ts.map +1 -0
  98. package/dist/comics/lettering/__tests__/shapeText.test.js +98 -0
  99. package/dist/comics/lettering/__tests__/shapeText.test.js.map +1 -0
  100. package/dist/comics/lettering/__tests__/shapes.test.d.ts +2 -0
  101. package/dist/comics/lettering/__tests__/shapes.test.d.ts.map +1 -0
  102. package/dist/comics/lettering/__tests__/shapes.test.js +137 -0
  103. package/dist/comics/lettering/__tests__/shapes.test.js.map +1 -0
  104. package/dist/comics/lettering/__tests__/stubMeasure.d.ts +5 -0
  105. package/dist/comics/lettering/__tests__/stubMeasure.d.ts.map +1 -0
  106. package/dist/comics/lettering/__tests__/stubMeasure.js +47 -0
  107. package/dist/comics/lettering/__tests__/stubMeasure.js.map +1 -0
  108. package/dist/comics/lettering/__tests__/text.test.d.ts +2 -0
  109. package/dist/comics/lettering/__tests__/text.test.d.ts.map +1 -0
  110. package/dist/comics/lettering/__tests__/text.test.js +86 -0
  111. package/dist/comics/lettering/__tests__/text.test.js.map +1 -0
  112. package/dist/comics/lettering/geom.d.ts +78 -0
  113. package/dist/comics/lettering/geom.d.ts.map +1 -0
  114. package/dist/comics/lettering/geom.js +376 -0
  115. package/dist/comics/lettering/geom.js.map +1 -0
  116. package/dist/comics/lettering/index.d.ts +7 -0
  117. package/dist/comics/lettering/index.d.ts.map +1 -0
  118. package/dist/comics/lettering/index.js +8 -0
  119. package/dist/comics/lettering/index.js.map +1 -0
  120. package/dist/comics/lettering/letter.d.ts +7 -0
  121. package/dist/comics/lettering/letter.d.ts.map +1 -0
  122. package/dist/comics/lettering/letter.js +397 -0
  123. package/dist/comics/lettering/letter.js.map +1 -0
  124. package/dist/comics/lettering/placement.d.ts +117 -0
  125. package/dist/comics/lettering/placement.d.ts.map +1 -0
  126. package/dist/comics/lettering/placement.js +889 -0
  127. package/dist/comics/lettering/placement.js.map +1 -0
  128. package/dist/comics/lettering/presets.d.ts +15 -0
  129. package/dist/comics/lettering/presets.d.ts.map +1 -0
  130. package/dist/comics/lettering/presets.js +61 -0
  131. package/dist/comics/lettering/presets.js.map +1 -0
  132. package/dist/comics/lettering/shape-text.d.ts +72 -0
  133. package/dist/comics/lettering/shape-text.d.ts.map +1 -0
  134. package/dist/comics/lettering/shape-text.js +550 -0
  135. package/dist/comics/lettering/shape-text.js.map +1 -0
  136. package/dist/comics/lettering/shapes.d.ts +83 -0
  137. package/dist/comics/lettering/shapes.d.ts.map +1 -0
  138. package/dist/comics/lettering/shapes.js +512 -0
  139. package/dist/comics/lettering/shapes.js.map +1 -0
  140. package/dist/comics/lettering/text.d.ts +79 -0
  141. package/dist/comics/lettering/text.d.ts.map +1 -0
  142. package/dist/comics/lettering/text.js +488 -0
  143. package/dist/comics/lettering/text.js.map +1 -0
  144. package/dist/comics/lettering/types.d.ts +270 -0
  145. package/dist/comics/lettering/types.d.ts.map +1 -0
  146. package/dist/comics/lettering/types.js +9 -0
  147. package/dist/comics/lettering/types.js.map +1 -0
  148. package/dist/comics/page.d.ts +37 -0
  149. package/dist/comics/page.d.ts.map +1 -0
  150. package/dist/comics/page.js +285 -0
  151. package/dist/comics/page.js.map +1 -0
  152. package/dist/comics/paint.d.ts +65 -0
  153. package/dist/comics/paint.d.ts.map +1 -0
  154. package/dist/comics/paint.js +219 -0
  155. package/dist/comics/paint.js.map +1 -0
  156. package/dist/comics/script.d.ts +42 -0
  157. package/dist/comics/script.d.ts.map +1 -0
  158. package/dist/comics/script.js +302 -0
  159. package/dist/comics/script.js.map +1 -0
  160. package/dist/comics/split.d.ts +135 -0
  161. package/dist/comics/split.d.ts.map +1 -0
  162. package/dist/comics/split.js +514 -0
  163. package/dist/comics/split.js.map +1 -0
  164. package/dist/comics/spread.d.ts +36 -0
  165. package/dist/comics/spread.d.ts.map +1 -0
  166. package/dist/comics/spread.js +172 -0
  167. package/dist/comics/spread.js.map +1 -0
  168. package/dist/comics/strip.d.ts +77 -0
  169. package/dist/comics/strip.d.ts.map +1 -0
  170. package/dist/comics/strip.js +89 -0
  171. package/dist/comics/strip.js.map +1 -0
  172. package/dist/comics/transform.d.ts +37 -0
  173. package/dist/comics/transform.d.ts.map +1 -0
  174. package/dist/comics/transform.js +161 -0
  175. package/dist/comics/transform.js.map +1 -0
  176. package/dist/comics/types.d.ts +143 -0
  177. package/dist/comics/types.d.ts.map +1 -0
  178. package/dist/comics/types.js +13 -0
  179. package/dist/comics/types.js.map +1 -0
  180. package/dist/comics/warnings.d.ts +14 -0
  181. package/dist/comics/warnings.d.ts.map +1 -0
  182. package/dist/comics/warnings.js +94 -0
  183. package/dist/comics/warnings.js.map +1 -0
  184. package/dist/configWarnings.d.ts.map +1 -1
  185. package/dist/configWarnings.js +42 -0
  186. package/dist/configWarnings.js.map +1 -1
  187. package/dist/defaults/comics.d.ts +51 -0
  188. package/dist/defaults/comics.d.ts.map +1 -0
  189. package/dist/defaults/comics.js +385 -0
  190. package/dist/defaults/comics.js.map +1 -0
  191. package/dist/defaults/index.d.ts +1 -0
  192. package/dist/defaults/index.d.ts.map +1 -1
  193. package/dist/defaults/index.js +9 -0
  194. package/dist/defaults/index.js.map +1 -1
  195. package/dist/design/layout.d.ts +13 -1
  196. package/dist/design/layout.d.ts.map +1 -1
  197. package/dist/design/layout.js +17 -0
  198. package/dist/design/layout.js.map +1 -1
  199. package/dist/html-backend.d.ts +3 -0
  200. package/dist/html-backend.d.ts.map +1 -1
  201. package/dist/html-backend.js +44 -8
  202. package/dist/html-backend.js.map +1 -1
  203. package/dist/htmlComic.d.ts +69 -0
  204. package/dist/htmlComic.d.ts.map +1 -0
  205. package/dist/htmlComic.js +179 -0
  206. package/dist/htmlComic.js.map +1 -0
  207. package/dist/index.d.ts +8 -2
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +4 -0
  210. package/dist/index.js.map +1 -1
  211. package/dist/parse/blockParser.d.ts.map +1 -1
  212. package/dist/parse/blockParser.js +25 -1
  213. package/dist/parse/blockParser.js.map +1 -1
  214. package/dist/parse/indexMarks.d.ts.map +1 -1
  215. package/dist/parse/indexMarks.js +3 -0
  216. package/dist/parse/indexMarks.js.map +1 -1
  217. package/dist/parse/types.d.ts +7 -1
  218. package/dist/parse/types.d.ts.map +1 -1
  219. package/dist/pipeline/build.d.ts.map +1 -1
  220. package/dist/pipeline/build.js +251 -9
  221. package/dist/pipeline/build.js.map +1 -1
  222. package/dist/pipeline/config.d.ts.map +1 -1
  223. package/dist/pipeline/config.js +4 -1
  224. package/dist/pipeline/config.js.map +1 -1
  225. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  226. package/dist/pipeline/contentWarnings.js +58 -0
  227. package/dist/pipeline/contentWarnings.js.map +1 -1
  228. package/dist/pipeline/floatSlots.js +1 -1
  229. package/dist/pipeline/floatSlots.js.map +1 -1
  230. package/dist/pipeline/headerFooter.d.ts +6 -2
  231. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  232. package/dist/pipeline/headerFooter.js +11 -3
  233. package/dist/pipeline/headerFooter.js.map +1 -1
  234. package/dist/pipeline/pageRoles.d.ts +1 -0
  235. package/dist/pipeline/pageRoles.d.ts.map +1 -1
  236. package/dist/pipeline/pageRoles.js +3 -0
  237. package/dist/pipeline/pageRoles.js.map +1 -1
  238. package/dist/pipeline/placement.d.ts +3 -3
  239. package/dist/pipeline/placement.d.ts.map +1 -1
  240. package/dist/pipeline/placement.js +4 -4
  241. package/dist/pipeline/placement.js.map +1 -1
  242. package/dist/types.d.ts +338 -1
  243. package/dist/types.d.ts.map +1 -1
  244. package/dist/vdt.d.ts +271 -2
  245. package/dist/vdt.d.ts.map +1 -1
  246. package/dist/vdt.js.map +1 -1
  247. package/dist/worker/fonts.d.ts +2 -1
  248. package/dist/worker/fonts.d.ts.map +1 -1
  249. package/dist/worker/fonts.js +11 -1
  250. package/dist/worker/fonts.js.map +1 -1
  251. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split.js","sourceRoot":"","sources":["../../src/comics/split.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Two-page spreads (`:::page{spread}`, #567): one split tree laid over the
3
+ * frames of two facing pages joined across the spine (their inner margins
4
+ * dropped), then cut at the spine. Each page carries the panels that reach
5
+ * its side, clipped there (a panel or picture crossing the spine shows on
6
+ * both, each page painting its half), the split lines that lie on it and
7
+ * the balloons whose centre is on it, all on its own sheet.
8
+ *
9
+ * The comic is laid out in spread coordinates: the left page's sheet, with
10
+ * the right page's sheet set against it so that the two trim boxes meet at
11
+ * the spine.
12
+ */
13
+ import type { ResolvedConfig, VDTComicPage } from '../vdt';
14
+ import type { Resource } from '../types';
15
+ import { type ComicPageContext } from './layoutPage';
16
+ import type { ComicPageSource } from './types';
17
+ /** Whether a comic page asks for a spread (`:::page{spread}`). */
18
+ export declare function isComicSpread(source: Pick<ComicPageSource, 'kind' | 'attrs'>): boolean;
19
+ /** One page of a spread as the build hands it over. */
20
+ export type ComicSpreadPage = Pick<ComicPageContext, 'page' | 'trimBox' | 'bleedBox' | 'mirrorMargins' | 'contentBox'>;
21
+ export interface ComicSpreadContext {
22
+ resolved: ResolvedConfig;
23
+ resources: ReadonlyMap<string, Resource>;
24
+ sourceOffset?: number;
25
+ /** The left page and the right page of the open book. */
26
+ left: ComicSpreadPage;
27
+ right: ComicSpreadPage;
28
+ }
29
+ /**
30
+ * Lay out a spread over two facing pages: `[left, right]`, each on its own
31
+ * sheet. Reading direction, gutters, panel styles and bleed work as on a
32
+ * page; bleeding panels bleed through the outer edges (head, foot, fore
33
+ * edges), never at the spine.
34
+ */
35
+ export declare function layoutComicSpread(source: ComicPageSource, given: ComicSpreadContext): [VDTComicPage, VDTComicPage];
36
+ //# sourceMappingURL=spread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spread.d.ts","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAA6C,MAAM,QAAQ,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAsG,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGzJ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAMtF;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY,CAAC,CAAC;AAEvH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;CACxB;AA0CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAiGlH"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Two-page spreads (`:::page{spread}`, #567): one split tree laid over the
3
+ * frames of two facing pages joined across the spine (their inner margins
4
+ * dropped), then cut at the spine. Each page carries the panels that reach
5
+ * its side, clipped there (a panel or picture crossing the spine shows on
6
+ * both, each page painting its half), the split lines that lie on it and
7
+ * the balloons whose centre is on it, all on its own sheet.
8
+ *
9
+ * The comic is laid out in spread coordinates: the left page's sheet, with
10
+ * the right page's sheet set against it so that the two trim boxes meet at
11
+ * the spine.
12
+ */
13
+ import { clipPolygon, polygonBBox } from './geometry';
14
+ import { comicPageFrame, comicPageLayoutWarnings, comicViewerLeaf, layoutComicFrame, setComicLayoutWarnings } from './layoutPage';
15
+ import { resolvedComics } from '../defaults/comics';
16
+ import { translateComicBalloon, translateComicPanel, translateComicSplitter } from './transform';
17
+ /** Whether a comic page asks for a spread (`:::page{spread}`). */
18
+ export function isComicSpread(source) {
19
+ if (source.kind !== 'page')
20
+ return false;
21
+ const v = source.attrs.spread;
22
+ if (v === undefined)
23
+ return false;
24
+ const t = v.trim().toLowerCase();
25
+ return !(t === 'false' || t === 'no' || t === '0' || t === 'none');
26
+ }
27
+ /** Past the sheet's edge at the spine: a panel crossing the spine is cut
28
+ * this far beyond the sheet, so its border is never stroked along the
29
+ * spine and its picture runs into the gutter bleed. */
30
+ const SPINE_OVERRUN = 1;
31
+ /** A panel cut to the half-plane `x <= maxX` (`side: 'left'`) or
32
+ * `x >= minX` (`'right'`); undefined when nothing of it is left there. */
33
+ function clipPanel(panel, side, at) {
34
+ const inside = side === 'left' ? panel.bbox.x + panel.bbox.width <= at : panel.bbox.x >= at;
35
+ if (inside)
36
+ return panel;
37
+ const poly = side === 'left'
38
+ ? clipPolygon(panel.polygon, { nx: 1, ny: 0, c: at })
39
+ : clipPolygon(panel.polygon, { nx: -1, ny: 0, c: -at });
40
+ if (poly.length < 3)
41
+ return undefined;
42
+ const bbox = polygonBBox(poly);
43
+ if (bbox.width < 0.5 || bbox.height < 0.5)
44
+ return undefined;
45
+ // A rounded corner at the spine would show: a cut panel keeps straight
46
+ // corners.
47
+ return { ...panel, polygon: poly, bbox, radius: 0 };
48
+ }
49
+ /** The part of a split line between `minX` and `maxX`, or undefined. */
50
+ function clipSplitter(s, minX, maxX) {
51
+ const { a, b } = s;
52
+ const dx = b.x - a.x;
53
+ let t0 = 0;
54
+ let t1 = 1;
55
+ if (Math.abs(dx) < 1e-9) {
56
+ if (a.x < minX - 0.01 || a.x > maxX + 0.01)
57
+ return undefined;
58
+ }
59
+ else {
60
+ const ta = (minX - a.x) / dx;
61
+ const tb = (maxX - a.x) / dx;
62
+ t0 = Math.max(t0, Math.min(ta, tb));
63
+ t1 = Math.min(t1, Math.max(ta, tb));
64
+ if (t1 - t0 <= 1e-6)
65
+ return undefined;
66
+ }
67
+ const at = (t) => ({ x: a.x + t * dx, y: a.y + t * (b.y - a.y) });
68
+ return { ...s, a: at(t0), b: at(t1) };
69
+ }
70
+ /**
71
+ * Lay out a spread over two facing pages: `[left, right]`, each on its own
72
+ * sheet. Reading direction, gutters, panel styles and bleed work as on a
73
+ * page; bleeding panels bleed through the outer edges (head, foot, fore
74
+ * edges), never at the spine.
75
+ */
76
+ export function layoutComicSpread(source, given) {
77
+ // A host's screen pages (`comics.viewerLeaf`): each half on a print
78
+ // leaf of its own, scaled, as a comic page is.
79
+ const comics = resolvedComics(given.resolved);
80
+ const leafL = comicViewerLeaf(comics, given.resolved, given.left.trimBox);
81
+ const leafR = comicViewerLeaf(comics, given.resolved, given.right.trimBox);
82
+ const onLeaf = (p, leaf) => ({ ...p, trimBox: leaf.box, bleedBox: leaf.box, contentBox: leaf.content, mirrorMargins: false });
83
+ const ctx = leafL && leafR
84
+ ? { ...given, resolved: { ...given.resolved, page: { ...given.resolved.page, dpi: leafL.dpi } }, left: onLeaf(given.left, leafL), right: onLeaf(given.right, leafR) }
85
+ : given;
86
+ const { resolved, left, right } = ctx;
87
+ const leftFrame = comicPageFrame({ resolved, ...left });
88
+ const rightFrame = comicPageFrame({ resolved, ...right });
89
+ // Where the right sheet's origin sits in spread coordinates: its trim
90
+ // box's left edge on the left one's right edge (the spine).
91
+ const spine = left.trimBox.x + left.trimBox.width;
92
+ const spineBand = (8 / 25.4) * resolved.page.dpi;
93
+ const shift = spine - right.trimBox.x;
94
+ const top = Math.min(leftFrame.y, rightFrame.y);
95
+ const bottom = Math.max(leftFrame.y + leftFrame.height, rightFrame.y + rightFrame.height);
96
+ const frame = {
97
+ x: leftFrame.x,
98
+ y: top,
99
+ width: shift + rightFrame.x + rightFrame.width - leftFrame.x,
100
+ height: bottom - top,
101
+ };
102
+ const bleedBox = {
103
+ x: left.bleedBox.x,
104
+ y: Math.min(left.bleedBox.y, right.bleedBox.y),
105
+ width: shift + right.bleedBox.x + right.bleedBox.width - left.bleedBox.x,
106
+ height: Math.max(left.bleedBox.y + left.bleedBox.height, right.bleedBox.y + right.bleedBox.height) - Math.min(left.bleedBox.y, right.bleedBox.y),
107
+ };
108
+ const trimBox = {
109
+ x: left.trimBox.x,
110
+ y: Math.min(left.trimBox.y, right.trimBox.y),
111
+ width: shift + right.trimBox.x + right.trimBox.width - left.trimBox.x,
112
+ height: Math.max(left.trimBox.y + left.trimBox.height, right.trimBox.y + right.trimBox.height) - Math.min(left.trimBox.y, right.trimBox.y),
113
+ };
114
+ const whole = layoutComicFrame(source, {
115
+ resolved,
116
+ frame,
117
+ bleedBox,
118
+ trimBox,
119
+ resources: ctx.resources,
120
+ ...(ctx.sourceOffset !== undefined ? { sourceOffset: ctx.sourceOffset } : {}),
121
+ pageIndex: left.page.index,
122
+ // Balloons keep out of the gutter of the binding: a band of 8 mm about
123
+ // the spine (a balloon there would be cut in two, or lost in the fold).
124
+ avoid: [{ x: spine - spineBand / 2, y: frame.y - 1, width: spineBand, height: frame.height + 2 }],
125
+ });
126
+ const warnings = comicPageLayoutWarnings(whole);
127
+ const sideOfPanel = (index) => {
128
+ const p = whole.panels.find((q) => q.index === index);
129
+ return p && p.bbox.x + p.bbox.width / 2 >= spine ? 'right' : 'left';
130
+ };
131
+ const half = (side) => {
132
+ const page = side === 'left' ? left.page : right.page;
133
+ const dx = side === 'left' ? 0 : -shift;
134
+ // The page's sheet in spread coordinates, overrun past the spine.
135
+ const minX = side === 'left' ? -Infinity : shift - SPINE_OVERRUN;
136
+ const maxX = side === 'left' ? left.page.width + SPINE_OVERRUN : Infinity;
137
+ const cut = side === 'left' ? maxX : minX;
138
+ const panels = whole.panels
139
+ .map((p) => clipPanel(p, side, cut))
140
+ .filter((p) => p !== undefined)
141
+ .map((p) => (dx === 0 ? p : translateComicPanel(p, dx, 0)));
142
+ const splitters = whole.splitters
143
+ .map((s) => clipSplitter(s, side === 'left' ? -Infinity : spine, side === 'left' ? spine : Infinity))
144
+ .filter((s) => s !== undefined)
145
+ .map((s) => (dx === 0 ? s : translateComicSplitter(s, dx, 0)));
146
+ const balloons = whole.balloons
147
+ .filter((b) => (b.bbox.x + b.bbox.width / 2 < spine) === (side === 'left'))
148
+ .map((b) => (dx === 0 ? b : translateComicBalloon(b, dx, 0)));
149
+ const ownFrame = side === 'left'
150
+ ? { x: frame.x, y: frame.y, width: Math.max(0, spine - frame.x), height: frame.height }
151
+ : { x: right.trimBox.x, y: frame.y, width: Math.max(0, frame.x + frame.width - spine), height: frame.height };
152
+ const comic = {
153
+ sourceStart: whole.sourceStart,
154
+ sourceEnd: whole.sourceEnd,
155
+ frame: ownFrame,
156
+ direction: whole.direction,
157
+ spread: side,
158
+ ...(leafL && leafR ? { leaf: side === 'left' ? leafL.box : leafR.box } : {}),
159
+ panels,
160
+ splitters,
161
+ balloons,
162
+ };
163
+ // A panel's warning goes to the page holding its centre (once, even
164
+ // for a panel across the spine).
165
+ setComicLayoutWarnings(comic, warnings
166
+ .filter((w) => (w.kind === 'comicPanelLetterbox' || w.kind === 'comicBalloonOverflow' ? sideOfPanel(w.panel) : 'left') === side)
167
+ .map((w) => ({ ...w, pageIndex: page.index })));
168
+ return comic;
169
+ };
170
+ return [half('left'), half('right')];
171
+ }
172
+ //# sourceMappingURL=spread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spread.js","sourceRoot":"","sources":["../../src/comics/spread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Comic strips in the text flow (`:::strip`, #566): a daily strip in a
3
+ * column or across the page, a comic inside a prose book. A strip has the
4
+ * body of a comic page; it is laid out as one unbreakable box of a fixed
5
+ * height (`height`) or proportions (`aspect`, its width over its height),
6
+ * set where it occurs (`placement=here`) or floated to the head or foot of
7
+ * a page like a figure (`top`, `bottom`, `auto`), a column wide or a page
8
+ * wide (`span`). Its panels are cut from the box: the box is the frame,
9
+ * the gutters and panel styles are the comics config's, and nothing bleeds.
10
+ *
11
+ * ```md
12
+ * :::strip{split="* | * | *" aspect=3.2 span=page placement=top}
13
+ * ::panel{art=d1}
14
+ * ana: Morning!
15
+ * ::panel{art=d2}
16
+ * ::panel{art=d3}
17
+ * :::
18
+ * ```
19
+ */
20
+ import type { ResolvedConfig, VDTComicPage } from '../vdt';
21
+ import type { Dimension, Resource } from '../types';
22
+ import type { ComicSplitList } from './split';
23
+ import type { ComicPageSource } from './types';
24
+ /** Where and how wide a strip is set. */
25
+ export interface ComicStripPlacement {
26
+ /** `'column'` (default): the measure of the column it falls in;
27
+ * `'page'`: the width of the content area, across the columns. */
28
+ span: 'column' | 'page';
29
+ /** `'here'` (default): in the flow, where it is written (it moves to the
30
+ * next column or page whole when it does not fit). `'top'` / `'bottom'`
31
+ * / `'auto'`: floated to the head or foot of the first page with room
32
+ * from this point on, like a figure. */
33
+ position: 'here' | 'auto' | 'top' | 'bottom';
34
+ /** The strip's extent across the flow (its height on a horizontal page),
35
+ * when written (`height=4cm`; a bare number is in mm). */
36
+ height?: Dimension;
37
+ /** Width over height on the sheet (`aspect=3`, `aspect=4/1`, `4:1`),
38
+ * when written. */
39
+ aspect?: number;
40
+ }
41
+ /** A positive ratio written `3`, `3.2`, `4/1` or `4:1`; undefined when
42
+ * unreadable. */
43
+ export declare function parseComicAspect(value: string | undefined): number | undefined;
44
+ /** A strip's placement as its fence attributes write it. */
45
+ export declare function comicStripPlacement(attrs: Readonly<Record<string, string>>): ComicStripPlacement;
46
+ /** How many cells a split sets side by side (`across`) and stacked
47
+ * (`down`) at most — the grid its panels would make if they were all
48
+ * square. */
49
+ export declare function comicSplitGrid(list: ComicSplitList): {
50
+ across: number;
51
+ down: number;
52
+ };
53
+ /** The proportions of a strip: its `aspect`, else those that make its
54
+ * panels about square (three panels side by side: 3). */
55
+ export declare function comicStripAspect(source: Pick<ComicPageSource, 'attrs' | 'splitParse'>): number;
56
+ /**
57
+ * A strip's extent across the flow (px) for a measure of `measure` px:
58
+ * its `height`, else the measure over its aspect (times it on a vertical
59
+ * page, where the measure runs down the sheet), never more than `max` (a
60
+ * strip never runs past a fresh column) nor less than a pixel.
61
+ */
62
+ export declare function comicStripExtent(source: Pick<ComicPageSource, 'attrs' | 'splitParse'>, measure: number, dpi: number, vertical: boolean, max: number): number;
63
+ /** What {@link layoutComicStrip} needs. */
64
+ export interface ComicStripContext {
65
+ resolved: ResolvedConfig;
66
+ /** The strip's box on the sheet (px): its width and height there (the
67
+ * flow box turned on a vertical page). */
68
+ width: number;
69
+ height: number;
70
+ resources: ReadonlyMap<string, Resource>;
71
+ sourceOffset?: number;
72
+ pageIndex: number;
73
+ }
74
+ /** Lay out a strip in its own box: coordinates relative to its top-left
75
+ * corner on the sheet (`VDTBlock.comic`). Nothing bleeds. */
76
+ export declare function layoutComicStrip(source: ComicPageSource, ctx: ComicStripContext): VDTComicPage;
77
+ //# sourceMappingURL=strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../../src/comics/strip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC;uEACmE;IACnE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB;;;6CAGyC;IACzC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC7C;+DAC2D;IAC3D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;wBACoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;kBACkB;AAClB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK9E;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAOhG;AAED;;cAEc;AACd,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUrF;AAED;0DAC0D;AAC1D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,YAAY,CAAC,GAAG,MAAM,CAK9F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,YAAY,CAAC,EACrD,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,MAAM,GACV,MAAM,CAKR;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB;+CAC2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;8DAC8D;AAC9D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAU9F"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Comic strips in the text flow (`:::strip`, #566): a daily strip in a
3
+ * column or across the page, a comic inside a prose book. A strip has the
4
+ * body of a comic page; it is laid out as one unbreakable box of a fixed
5
+ * height (`height`) or proportions (`aspect`, its width over its height),
6
+ * set where it occurs (`placement=here`) or floated to the head or foot of
7
+ * a page like a figure (`top`, `bottom`, `auto`), a column wide or a page
8
+ * wide (`span`). Its panels are cut from the box: the box is the frame,
9
+ * the gutters and panel styles are the comics config's, and nothing bleeds.
10
+ *
11
+ * ```md
12
+ * :::strip{split="* | * | *" aspect=3.2 span=page placement=top}
13
+ * ::panel{art=d1}
14
+ * ana: Morning!
15
+ * ::panel{art=d2}
16
+ * ::panel{art=d3}
17
+ * :::
18
+ * ```
19
+ */
20
+ import { dimensionToPx } from '../units';
21
+ import { layoutComicFrame, parseComicDimension } from './layoutPage';
22
+ /** A positive ratio written `3`, `3.2`, `4/1` or `4:1`; undefined when
23
+ * unreadable. */
24
+ export function parseComicAspect(value) {
25
+ const m = /^\s*([0-9]*\.?[0-9]+)\s*(?:[/:]\s*([0-9]*\.?[0-9]+))?\s*$/.exec(value ?? '');
26
+ if (!m)
27
+ return undefined;
28
+ const r = Number(m[1]) / (m[2] !== undefined ? Number(m[2]) : 1);
29
+ return Number.isFinite(r) && r > 0 ? r : undefined;
30
+ }
31
+ /** A strip's placement as its fence attributes write it. */
32
+ export function comicStripPlacement(attrs) {
33
+ const span = attrs.span?.trim().toLowerCase() === 'page' ? 'page' : 'column';
34
+ const p = attrs.placement?.trim().toLowerCase();
35
+ const position = p === 'top' || p === 'bottom' || p === 'auto' ? p : 'here';
36
+ const height = parseComicDimension(attrs.height);
37
+ const aspect = parseComicAspect(attrs.aspect);
38
+ return { span, position, ...(height && height.value > 0 ? { height } : {}), ...(aspect !== undefined ? { aspect } : {}) };
39
+ }
40
+ /** How many cells a split sets side by side (`across`) and stacked
41
+ * (`down`) at most — the grid its panels would make if they were all
42
+ * square. */
43
+ export function comicSplitGrid(list) {
44
+ const parts = list.items.map((it) => (it.children ? comicSplitGrid(it.children) : { across: 1, down: 1 }));
45
+ if (parts.length === 0)
46
+ return { across: 1, down: 1 };
47
+ if (list.axis === 'columns') {
48
+ return { across: parts.reduce((s, p) => s + p.across, 0), down: Math.max(...parts.map((p) => p.down)) };
49
+ }
50
+ if (list.axis === 'rows') {
51
+ return { across: Math.max(...parts.map((p) => p.across)), down: parts.reduce((s, p) => s + p.down, 0) };
52
+ }
53
+ return parts[0];
54
+ }
55
+ /** The proportions of a strip: its `aspect`, else those that make its
56
+ * panels about square (three panels side by side: 3). */
57
+ export function comicStripAspect(source) {
58
+ const own = parseComicAspect(source.attrs.aspect);
59
+ if (own !== undefined)
60
+ return own;
61
+ const g = comicSplitGrid(source.splitParse.tree);
62
+ return g.across / g.down;
63
+ }
64
+ /**
65
+ * A strip's extent across the flow (px) for a measure of `measure` px:
66
+ * its `height`, else the measure over its aspect (times it on a vertical
67
+ * page, where the measure runs down the sheet), never more than `max` (a
68
+ * strip never runs past a fresh column) nor less than a pixel.
69
+ */
70
+ export function comicStripExtent(source, measure, dpi, vertical, max) {
71
+ const placement = comicStripPlacement(source.attrs);
72
+ const aspect = comicStripAspect(source);
73
+ const natural = placement.height ? dimensionToPx(placement.height, dpi) : vertical ? measure * aspect : measure / aspect;
74
+ return Math.max(1, Math.min(natural, Math.max(1, max)));
75
+ }
76
+ /** Lay out a strip in its own box: coordinates relative to its top-left
77
+ * corner on the sheet (`VDTBlock.comic`). Nothing bleeds. */
78
+ export function layoutComicStrip(source, ctx) {
79
+ const frame = { x: 0, y: 0, width: ctx.width, height: ctx.height };
80
+ return layoutComicFrame(source, {
81
+ resolved: ctx.resolved,
82
+ frame,
83
+ bleedBox: frame,
84
+ resources: ctx.resources,
85
+ ...(ctx.sourceOffset !== undefined ? { sourceOffset: ctx.sourceOffset } : {}),
86
+ pageIndex: ctx.pageIndex,
87
+ });
88
+ }
89
+ //# sourceMappingURL=strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/comics/strip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Moving a laid-out comic (#566, #567): a strip's comic, laid out in its
3
+ * block's box, onto the sheet; the halves of a two-page spread, laid out
4
+ * across both sheets, onto the sheet of their page. Pure: every function
5
+ * returns a new comic and leaves its input as it was.
6
+ */
7
+ import type { VDTBlock, VDTComicBalloon, VDTComicPage, VDTComicPanel, VDTComicSplitter, VDTPage } from '../vdt';
8
+ /**
9
+ * An SVG path moved by `(dx, dy)`: the absolute commands' coordinates are
10
+ * shifted; relative commands are kept, except a relative `m` that opens
11
+ * the path (it is absolute there). Arc radii, rotations and flags stay.
12
+ */
13
+ export declare function translateSvgPath(d: string, dx: number, dy: number): string;
14
+ /** A panel moved by `(dx, dy)`. */
15
+ export declare function translateComicPanel(panel: VDTComicPanel, dx: number, dy: number): VDTComicPanel;
16
+ /** A split line moved by `(dx, dy)` (its percentages stay: they are read
17
+ * against `parent`, which moves with it). */
18
+ export declare function translateComicSplitter(s: VDTComicSplitter, dx: number, dy: number): VDTComicSplitter;
19
+ /** A balloon moved by `(dx, dy)`: its outline, box, tail tip and lines. */
20
+ export declare function translateComicBalloon(b: VDTComicBalloon, dx: number, dy: number): VDTComicBalloon;
21
+ /** A comic moved by `(dx, dy)`: frame, panels, split lines and balloons. */
22
+ export declare function translateComicPage(comic: VDTComicPage, dx: number, dy: number): VDTComicPage;
23
+ /**
24
+ * The comic of a strip block (`VDTBlock.comic`, #566) on the sheet of
25
+ * `page`: moved from the block's box to where the block sits on the sheet
26
+ * (its flow box turned or mirrored onto the sheet, `flowRectToPage`).
27
+ * Undefined for a block that carries no comic.
28
+ */
29
+ export declare function comicBlockOnSheet(page: Pick<VDTPage, 'flow'>, block: Pick<VDTBlock, 'bbox' | 'comic'>): VDTComicPage | undefined;
30
+ /**
31
+ * Every comic a page shows, on its sheet, in reading order: the comic page
32
+ * (or the page's half of a spread) first, then the strips its columns hold,
33
+ * then the strips floated to its bands. What the renderers paint and the
34
+ * Sandbox hit-tests (panels, split lines, balloons) on that page.
35
+ */
36
+ export declare function pageComics(page: Pick<VDTPage, 'comic' | 'columns' | 'floats' | 'flow'>): VDTComicPage[];
37
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/comics/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAe,QAAQ,EAAe,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAsB,OAAO,EAAY,MAAM,QAAQ,CAAC;AA0BxK;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA8B1E;AASD,mCAAmC;AACnC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAS/F;AAED;8CAC8C;AAC9C,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAEpG;AAYD,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAQjG;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAQ5F;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY,GAAG,SAAS,CAShI;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,YAAY,EAAE,CAYvG"}