@aster-editor/word 0.4.3 → 0.5.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 (250) hide show
  1. package/README.md +204 -82
  2. package/dist/docx/compare/align.d.ts +24 -0
  3. package/dist/docx/compare/align.d.ts.map +1 -0
  4. package/dist/docx/compare/align.js +217 -0
  5. package/dist/docx/compare/align.js.map +1 -0
  6. package/dist/docx/compare/compare-blocks.d.ts +29 -0
  7. package/dist/docx/compare/compare-blocks.d.ts.map +1 -0
  8. package/dist/docx/compare/compare-blocks.js +234 -0
  9. package/dist/docx/compare/compare-blocks.js.map +1 -0
  10. package/dist/docx/compare/compare-context.d.ts +25 -0
  11. package/dist/docx/compare/compare-context.d.ts.map +1 -0
  12. package/dist/docx/compare/compare-context.js +31 -0
  13. package/dist/docx/compare/compare-context.js.map +1 -0
  14. package/dist/docx/compare/compare-docx.d.ts +4 -0
  15. package/dist/docx/compare/compare-docx.d.ts.map +1 -0
  16. package/dist/docx/compare/compare-docx.js +173 -0
  17. package/dist/docx/compare/compare-docx.js.map +1 -0
  18. package/dist/docx/compare/compare-tables.d.ts +13 -0
  19. package/dist/docx/compare/compare-tables.d.ts.map +1 -0
  20. package/dist/docx/compare/compare-tables.js +47 -0
  21. package/dist/docx/compare/compare-tables.js.map +1 -0
  22. package/dist/docx/compare/model-borders.d.ts +27 -0
  23. package/dist/docx/compare/model-borders.d.ts.map +1 -0
  24. package/dist/docx/compare/model-borders.js +41 -0
  25. package/dist/docx/compare/model-borders.js.map +1 -0
  26. package/dist/docx/compare/model-paragraph.d.ts +25 -0
  27. package/dist/docx/compare/model-paragraph.d.ts.map +1 -0
  28. package/dist/docx/compare/model-paragraph.js +309 -0
  29. package/dist/docx/compare/model-paragraph.js.map +1 -0
  30. package/dist/docx/compare/model-sections.d.ts +11 -0
  31. package/dist/docx/compare/model-sections.d.ts.map +1 -0
  32. package/dist/docx/compare/model-sections.js +97 -0
  33. package/dist/docx/compare/model-sections.js.map +1 -0
  34. package/dist/docx/compare/model.d.ts +113 -0
  35. package/dist/docx/compare/model.d.ts.map +1 -0
  36. package/dist/docx/compare/model.js +214 -0
  37. package/dist/docx/compare/model.js.map +1 -0
  38. package/dist/docx/compare/parts.d.ts +40 -0
  39. package/dist/docx/compare/parts.d.ts.map +1 -0
  40. package/dist/docx/compare/parts.js +113 -0
  41. package/dist/docx/compare/parts.js.map +1 -0
  42. package/dist/docx/compare/tally.d.ts +23 -0
  43. package/dist/docx/compare/tally.d.ts.map +1 -0
  44. package/dist/docx/compare/tally.js +94 -0
  45. package/dist/docx/compare/tally.js.map +1 -0
  46. package/dist/docx/compare/types.d.ts +55 -0
  47. package/dist/docx/compare/types.d.ts.map +1 -0
  48. package/dist/docx/compare/types.js +2 -0
  49. package/dist/docx/compare/types.js.map +1 -0
  50. package/dist/docx/compare/values.d.ts +13 -0
  51. package/dist/docx/compare/values.d.ts.map +1 -0
  52. package/dist/docx/compare/values.js +44 -0
  53. package/dist/docx/compare/values.js.map +1 -0
  54. package/dist/docx/import-docx.d.ts.map +1 -1
  55. package/dist/docx/import-docx.js +57 -2
  56. package/dist/docx/import-docx.js.map +1 -1
  57. package/dist/docx/preprocess/variables.d.ts.map +1 -1
  58. package/dist/docx/preprocess/variables.js +2 -2
  59. package/dist/docx/preprocess/variables.js.map +1 -1
  60. package/dist/docx/preprocess/xml-utils.d.ts +7 -0
  61. package/dist/docx/preprocess/xml-utils.d.ts.map +1 -1
  62. package/dist/docx/preprocess/xml-utils.js +9 -0
  63. package/dist/docx/preprocess/xml-utils.js.map +1 -1
  64. package/dist/docx/reader/headers.d.ts +17 -0
  65. package/dist/docx/reader/headers.d.ts.map +1 -0
  66. package/dist/docx/reader/headers.js +64 -0
  67. package/dist/docx/reader/headers.js.map +1 -0
  68. package/dist/docx/reader/html.d.ts +12 -0
  69. package/dist/docx/reader/html.d.ts.map +1 -0
  70. package/dist/docx/reader/html.js +27 -0
  71. package/dist/docx/reader/html.js.map +1 -0
  72. package/dist/docx/reader/images.d.ts +27 -0
  73. package/dist/docx/reader/images.d.ts.map +1 -0
  74. package/dist/docx/reader/images.js +288 -0
  75. package/dist/docx/reader/images.js.map +1 -0
  76. package/dist/docx/reader/index.d.ts +10 -0
  77. package/dist/docx/reader/index.d.ts.map +1 -0
  78. package/dist/docx/reader/index.js +177 -0
  79. package/dist/docx/reader/index.js.map +1 -0
  80. package/dist/docx/reader/lists.d.ts +44 -0
  81. package/dist/docx/reader/lists.d.ts.map +1 -0
  82. package/dist/docx/reader/lists.js +360 -0
  83. package/dist/docx/reader/lists.js.map +1 -0
  84. package/dist/docx/reader/lost.d.ts +30 -0
  85. package/dist/docx/reader/lost.d.ts.map +1 -0
  86. package/dist/docx/reader/lost.js +215 -0
  87. package/dist/docx/reader/lost.js.map +1 -0
  88. package/dist/docx/reader/notes.d.ts +4 -0
  89. package/dist/docx/reader/notes.d.ts.map +1 -0
  90. package/dist/docx/reader/notes.js +112 -0
  91. package/dist/docx/reader/notes.js.map +1 -0
  92. package/dist/docx/reader/package.d.ts +16 -0
  93. package/dist/docx/reader/package.d.ts.map +1 -0
  94. package/dist/docx/reader/package.js +138 -0
  95. package/dist/docx/reader/package.js.map +1 -0
  96. package/dist/docx/reader/paragraphs.d.ts +15 -0
  97. package/dist/docx/reader/paragraphs.d.ts.map +1 -0
  98. package/dist/docx/reader/paragraphs.js +162 -0
  99. package/dist/docx/reader/paragraphs.js.map +1 -0
  100. package/dist/docx/reader/properties.d.ts +90 -0
  101. package/dist/docx/reader/properties.d.ts.map +1 -0
  102. package/dist/docx/reader/properties.js +402 -0
  103. package/dist/docx/reader/properties.js.map +1 -0
  104. package/dist/docx/reader/runs.d.ts +49 -0
  105. package/dist/docx/reader/runs.d.ts.map +1 -0
  106. package/dist/docx/reader/runs.js +442 -0
  107. package/dist/docx/reader/runs.js.map +1 -0
  108. package/dist/docx/reader/sections.d.ts +36 -0
  109. package/dist/docx/reader/sections.d.ts.map +1 -0
  110. package/dist/docx/reader/sections.js +158 -0
  111. package/dist/docx/reader/sections.js.map +1 -0
  112. package/dist/docx/reader/styles.d.ts +24 -0
  113. package/dist/docx/reader/styles.d.ts.map +1 -0
  114. package/dist/docx/reader/styles.js +383 -0
  115. package/dist/docx/reader/styles.js.map +1 -0
  116. package/dist/docx/reader/tables.d.ts +6 -0
  117. package/dist/docx/reader/tables.d.ts.map +1 -0
  118. package/dist/docx/reader/tables.js +175 -0
  119. package/dist/docx/reader/tables.js.map +1 -0
  120. package/dist/docx/reader/test-support.d.ts +25 -0
  121. package/dist/docx/reader/test-support.d.ts.map +1 -0
  122. package/dist/docx/reader/test-support.js +135 -0
  123. package/dist/docx/reader/test-support.js.map +1 -0
  124. package/dist/docx/reader/testing-blocks.d.ts +50 -0
  125. package/dist/docx/reader/testing-blocks.d.ts.map +1 -0
  126. package/dist/docx/reader/testing-blocks.js +302 -0
  127. package/dist/docx/reader/testing-blocks.js.map +1 -0
  128. package/dist/docx/reader/types.d.ts +181 -0
  129. package/dist/docx/reader/types.d.ts.map +1 -0
  130. package/dist/docx/reader/types.js +2 -0
  131. package/dist/docx/reader/types.js.map +1 -0
  132. package/dist/docx/reader/units-blocks.d.ts +75 -0
  133. package/dist/docx/reader/units-blocks.d.ts.map +1 -0
  134. package/dist/docx/reader/units-blocks.js +254 -0
  135. package/dist/docx/reader/units-blocks.js.map +1 -0
  136. package/dist/docx/reader/units.d.ts +72 -0
  137. package/dist/docx/reader/units.d.ts.map +1 -0
  138. package/dist/docx/reader/units.js +177 -0
  139. package/dist/docx/reader/units.js.map +1 -0
  140. package/dist/docx/types.d.ts +40 -2
  141. package/dist/docx/types.d.ts.map +1 -1
  142. package/dist/docx/writer/content-types.d.ts +30 -0
  143. package/dist/docx/writer/content-types.d.ts.map +1 -0
  144. package/dist/docx/writer/content-types.js +81 -0
  145. package/dist/docx/writer/content-types.js.map +1 -0
  146. package/dist/docx/writer/core-properties.d.ts +16 -0
  147. package/dist/docx/writer/core-properties.d.ts.map +1 -0
  148. package/dist/docx/writer/core-properties.js +64 -0
  149. package/dist/docx/writer/core-properties.js.map +1 -0
  150. package/dist/docx/writer/footnotes-merge.d.ts +30 -0
  151. package/dist/docx/writer/footnotes-merge.d.ts.map +1 -0
  152. package/dist/docx/writer/footnotes-merge.js +71 -0
  153. package/dist/docx/writer/footnotes-merge.js.map +1 -0
  154. package/dist/docx/writer/graft.d.ts +41 -0
  155. package/dist/docx/writer/graft.d.ts.map +1 -0
  156. package/dist/docx/writer/graft.js +277 -0
  157. package/dist/docx/writer/graft.js.map +1 -0
  158. package/dist/docx/writer/header-footer-graft.d.ts +34 -0
  159. package/dist/docx/writer/header-footer-graft.d.ts.map +1 -0
  160. package/dist/docx/writer/header-footer-graft.js +155 -0
  161. package/dist/docx/writer/header-footer-graft.js.map +1 -0
  162. package/dist/docx/writer/header-footer-variables.d.ts +25 -0
  163. package/dist/docx/writer/header-footer-variables.d.ts.map +1 -0
  164. package/dist/docx/writer/header-footer-variables.js +101 -0
  165. package/dist/docx/writer/header-footer-variables.js.map +1 -0
  166. package/dist/docx/writer/media.d.ts +32 -0
  167. package/dist/docx/writer/media.d.ts.map +1 -0
  168. package/dist/docx/writer/media.js +88 -0
  169. package/dist/docx/writer/media.js.map +1 -0
  170. package/dist/docx/writer/numbering-merge.d.ts +37 -0
  171. package/dist/docx/writer/numbering-merge.d.ts.map +1 -0
  172. package/dist/docx/writer/numbering-merge.js +140 -0
  173. package/dist/docx/writer/numbering-merge.js.map +1 -0
  174. package/dist/docx/writer/relationships.d.ts +63 -0
  175. package/dist/docx/writer/relationships.d.ts.map +1 -0
  176. package/dist/docx/writer/relationships.js +127 -0
  177. package/dist/docx/writer/relationships.js.map +1 -0
  178. package/dist/docx/writer/settings-merge.d.ts +21 -0
  179. package/dist/docx/writer/settings-merge.d.ts.map +1 -0
  180. package/dist/docx/writer/settings-merge.js +165 -0
  181. package/dist/docx/writer/settings-merge.js.map +1 -0
  182. package/dist/docx/writer/style-reconcile.d.ts +29 -0
  183. package/dist/docx/writer/style-reconcile.d.ts.map +1 -0
  184. package/dist/docx/writer/style-reconcile.js +319 -0
  185. package/dist/docx/writer/style-reconcile.js.map +1 -0
  186. package/dist/docx/writer/style-strip.d.ts +33 -0
  187. package/dist/docx/writer/style-strip.d.ts.map +1 -0
  188. package/dist/docx/writer/style-strip.js +267 -0
  189. package/dist/docx/writer/style-strip.js.map +1 -0
  190. package/dist/docx/writer/styles-merge.d.ts +57 -0
  191. package/dist/docx/writer/styles-merge.d.ts.map +1 -0
  192. package/dist/docx/writer/styles-merge.js +184 -0
  193. package/dist/docx/writer/styles-merge.js.map +1 -0
  194. package/dist/docx/writer/template.d.ts +48 -0
  195. package/dist/docx/writer/template.d.ts.map +1 -0
  196. package/dist/docx/writer/template.js +280 -0
  197. package/dist/docx/writer/template.js.map +1 -0
  198. package/dist/docx/writer/testing.d.ts +52 -0
  199. package/dist/docx/writer/testing.d.ts.map +1 -0
  200. package/dist/docx/writer/testing.js +318 -0
  201. package/dist/docx/writer/testing.js.map +1 -0
  202. package/dist/docx/writer/xml-io.d.ts +90 -0
  203. package/dist/docx/writer/xml-io.d.ts.map +1 -0
  204. package/dist/docx/writer/xml-io.js +215 -0
  205. package/dist/docx/writer/xml-io.js.map +1 -0
  206. package/dist/export/blocks.d.ts.map +1 -1
  207. package/dist/export/blocks.js +149 -12
  208. package/dist/export/blocks.js.map +1 -1
  209. package/dist/export/context.d.ts +34 -2
  210. package/dist/export/context.d.ts.map +1 -1
  211. package/dist/export/context.js +28 -2
  212. package/dist/export/context.js.map +1 -1
  213. package/dist/export/css.d.ts +58 -0
  214. package/dist/export/css.d.ts.map +1 -1
  215. package/dist/export/css.js +194 -0
  216. package/dist/export/css.js.map +1 -1
  217. package/dist/export/dom.d.ts +2 -0
  218. package/dist/export/dom.d.ts.map +1 -1
  219. package/dist/export/dom.js +2 -0
  220. package/dist/export/dom.js.map +1 -1
  221. package/dist/export/export-docx.d.ts +4 -0
  222. package/dist/export/export-docx.d.ts.map +1 -1
  223. package/dist/export/export-docx.js +57 -4
  224. package/dist/export/export-docx.js.map +1 -1
  225. package/dist/export/header-footer.d.ts +15 -1
  226. package/dist/export/header-footer.d.ts.map +1 -1
  227. package/dist/export/header-footer.js +37 -0
  228. package/dist/export/header-footer.js.map +1 -1
  229. package/dist/export/html-to-docx.d.ts +20 -2
  230. package/dist/export/html-to-docx.d.ts.map +1 -1
  231. package/dist/export/html-to-docx.js +40 -14
  232. package/dist/export/html-to-docx.js.map +1 -1
  233. package/dist/export/inline.d.ts +25 -3
  234. package/dist/export/inline.d.ts.map +1 -1
  235. package/dist/export/inline.js +91 -34
  236. package/dist/export/inline.js.map +1 -1
  237. package/dist/export/styles.d.ts +51 -7
  238. package/dist/export/styles.d.ts.map +1 -1
  239. package/dist/export/styles.js +121 -16
  240. package/dist/export/styles.js.map +1 -1
  241. package/dist/export/tables.d.ts.map +1 -1
  242. package/dist/export/tables.js +140 -12
  243. package/dist/export/tables.js.map +1 -1
  244. package/dist/export/types.d.ts +44 -5
  245. package/dist/export/types.d.ts.map +1 -1
  246. package/dist/index.d.ts +5 -2
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +1 -0
  249. package/dist/index.js.map +1 -1
  250. package/package.json +2 -2
@@ -61,4 +61,41 @@ export async function buildFooter(option, ctx, parse) {
61
61
  }
62
62
  return children.length === 0 ? undefined : new ctx.docx.Footer({ children });
63
63
  }
64
+ /** `HeaderFooterSet` du contrat → option d'en-tête par type, `undefined` si le fragment est vide. */
65
+ function layoutOption(set, key) {
66
+ const html = set?.[key]?.html;
67
+ return html === undefined || html.trim() === '' ? undefined : { html };
68
+ }
69
+ /**
70
+ * En-têtes de la section : `options.header` pour les pages courantes (il prime), sinon
71
+ * `layout.headers.default` ; `first` et `even` viennent du `layout` seul (contrat
72
+ * `HeaderFooterSet`, en général lu par l'import). Vide si rien n'est demandé.
73
+ */
74
+ export async function buildHeaders(options, ctx) {
75
+ const sets = options.layout?.headers;
76
+ const group = {
77
+ default: await buildHeader(options.header ?? layoutOption(sets, 'default'), ctx, options.parse),
78
+ first: await buildHeader(layoutOption(sets, 'first'), ctx, options.parse),
79
+ even: await buildHeader(layoutOption(sets, 'even'), ctx, options.parse),
80
+ };
81
+ return compact(group);
82
+ }
83
+ /** Pieds de la section, mêmes règles que `buildHeaders` (numérotation via `options.footer`). */
84
+ export async function buildFooters(options, ctx) {
85
+ const sets = options.layout?.footers;
86
+ const group = {
87
+ default: await buildFooter(options.footer ?? layoutOption(sets, 'default'), ctx, options.parse),
88
+ first: await buildFooter(layoutOption(sets, 'first'), ctx, options.parse),
89
+ even: await buildFooter(layoutOption(sets, 'even'), ctx, options.parse),
90
+ };
91
+ return compact(group);
92
+ }
93
+ /** Retire les entrées `undefined` : `docx` n'accepte pas `{ first: undefined }`. */
94
+ function compact(group) {
95
+ return {
96
+ ...(group.default !== undefined ? { default: group.default } : {}),
97
+ ...(group.first !== undefined ? { first: group.first } : {}),
98
+ ...(group.even !== undefined ? { even: group.even } : {}),
99
+ };
100
+ }
64
101
  //# sourceMappingURL=header-footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-footer.js","sourceRoot":"","sources":["../../src/export/header-footer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header-footer.js","sourceRoot":"","sources":["../../src/export/header-footer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,35 @@
1
1
  import type { Document as DocxDocument } from 'docx';
2
+ import type { NumberingResolver } from '../docx/reader/types';
3
+ import type { ListDefinition } from './context';
2
4
  import type { DocxModule } from './docx-module';
3
5
  import type { DocxExportOptions, DocxExportWarning } from './types';
4
6
  /** Résultat de la construction : le document `docx` prêt à empaqueter et ses avertissements. */
5
7
  export interface BuiltDocx {
6
8
  readonly document: DocxDocument;
7
9
  readonly warnings: readonly DocxExportWarning[];
10
+ /** Listes rencontrées, une numérotation chacune : la greffe dans le gabarit s'en sert. */
11
+ readonly lists: readonly ListDefinition[];
12
+ }
13
+ /**
14
+ * Cible de la construction : export neuf (`template: false`) ou corps destiné à être
15
+ * greffé dans un gabarit, dont `styleIds` sont les styles définis (le corps peut alors
16
+ * les référencer par `data-docx-style` et réutiliser ses numérotations).
17
+ */
18
+ export interface BuildTarget {
19
+ readonly template: boolean;
20
+ readonly styleIds?: ReadonlySet<string>;
21
+ /** Largeur utile de la page du gabarit en pixels (plafond des images), sinon celle des options. */
22
+ readonly contentWidthPx?: number;
23
+ /** Numérotations du gabarit, pour le niveau des listes `data-docx-num-id`. */
24
+ readonly numbering?: NumberingResolver;
8
25
  }
9
26
  /**
10
27
  * Construit le `Document` docx à partir d'un `Document` DOM déjà parsé. Sépare le
11
28
  * parsing (injectable) de la conversion pour que les tests puissent fournir un DOM
12
29
  * et inspecter les avertissements sans empaqueter. Les notes de bas de page sont
13
30
  * collectées (et retirées du corps) avant la conversion, pour que leurs appels
14
- * trouvent leur identifiant Word.
31
+ * trouvent leur identifiant Word. La mise en page vient de `options.layout` (contrat),
32
+ * les options explicites primant champ par champ.
15
33
  */
16
- export declare function buildDocx(dom: Document, docx: DocxModule, options: DocxExportOptions): Promise<BuiltDocx>;
34
+ export declare function buildDocx(dom: Document, docx: DocxModule, options: DocxExportOptions, target?: BuildTarget): Promise<BuiltDocx>;
17
35
  //# sourceMappingURL=html-to-docx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-docx.d.ts","sourceRoot":"","sources":["../../src/export/html-to-docx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAmB,MAAM,MAAM,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAahD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGpE,gGAAgG;AAChG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,SAAS,CAAC,CAwDpB"}
1
+ {"version":3,"file":"html-to-docx.d.ts","sourceRoot":"","sources":["../../src/export/html-to-docx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAmB,MAAM,MAAM,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAehD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGpE,gGAAgG;AAChG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAUD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE,WAAiC,GACxC,OAAO,CAAC,SAAS,CAAC,CAwEpB"}
@@ -1,29 +1,45 @@
1
1
  import { ROOT_SCOPE, convertChildren } from './blocks';
2
2
  import { buildFootnotes, collectFootnotes } from './footnotes';
3
- import { buildFooter, buildHeader } from './header-footer';
3
+ import { buildFooters, buildHeaders } from './header-footer';
4
4
  import { sanitizeXmlText } from './sanitize';
5
- import { buildCharacterStyles, buildDefaultStyles, buildNumbering, buildParagraphStyles, resolveHeadingNumbering, resolvePageLayout, } from './styles';
5
+ import { GENERATED_STYLE_IDS, STYLE_IDS, buildCharacterStyles, buildDefaultStyles, buildNumbering, buildParagraphStyles, resolveHeadingNumbering, resolvePageLayout, } from './styles';
6
6
  import { buildToc } from './toc';
7
7
  import { resolveVariableSettings } from './variables';
8
+ /** Styles que le document final définit : ceux de l'export neuf plus ceux du gabarit. */
9
+ function knownStyles(options, target) {
10
+ const ids = new Set(GENERATED_STYLE_IDS);
11
+ if (options.toc)
12
+ ids.add(STYLE_IDS.tocHeading);
13
+ for (const id of target.styleIds ?? [])
14
+ ids.add(id);
15
+ return ids;
16
+ }
8
17
  /**
9
18
  * Construit le `Document` docx à partir d'un `Document` DOM déjà parsé. Sépare le
10
19
  * parsing (injectable) de la conversion pour que les tests puissent fournir un DOM
11
20
  * et inspecter les avertissements sans empaqueter. Les notes de bas de page sont
12
21
  * collectées (et retirées du corps) avant la conversion, pour que leurs appels
13
- * trouvent leur identifiant Word.
22
+ * trouvent leur identifiant Word. La mise en page vient de `options.layout` (contrat),
23
+ * les options explicites primant champ par champ.
14
24
  */
15
- export async function buildDocx(dom, docx, options) {
25
+ export async function buildDocx(dom, docx, options, target = { template: false }) {
16
26
  const warnings = [];
17
27
  const layout = resolvePageLayout(options, warnings);
28
+ const headingNumbering = resolveHeadingNumbering(options.numberedHeadings);
18
29
  const ctx = {
19
30
  docx,
20
31
  fetchImage: options.fetchImage,
21
- maxImageWidth: layout.contentWidthPx,
32
+ maxImageWidth: target.contentWidthPx ?? layout.contentWidthPx,
22
33
  warnings,
23
34
  lists: [],
24
35
  variables: resolveVariableSettings(options.variables),
25
36
  footnotes: new Map(),
26
37
  footnoteCalls: new Set(),
38
+ knownStyles: knownStyles(options, target),
39
+ template: target.template,
40
+ templateNumbering: target.numbering ?? null,
41
+ // Dans le gabarit, la numérotation des titres ne peut pas vivre dans ses styles.
42
+ headingNumbering: target.template ? headingNumbering : null,
27
43
  };
28
44
  await collectFootnotes(dom.body, ctx);
29
45
  let children = await convertChildren(dom.body, ROOT_SCOPE, ctx);
@@ -32,10 +48,10 @@ export async function buildDocx(dom, docx, options) {
32
48
  // Word exige au moins un paragraphe par section.
33
49
  if (children.length === 0)
34
50
  children = [new docx.Paragraph({ children: [] })];
35
- const header = await buildHeader(options.header, ctx, options.parse);
36
- const footer = await buildFooter(options.footer, ctx, options.parse);
37
- const headingNumbering = resolveHeadingNumbering(options.numberedHeadings);
51
+ const headers = await buildHeaders(options, ctx);
52
+ const footers = await buildFooters(options, ctx);
38
53
  const footnotes = buildFootnotes(ctx);
54
+ const columns = options.layout?.columns;
39
55
  const section = {
40
56
  properties: {
41
57
  page: {
@@ -46,11 +62,19 @@ export async function buildDocx(dom, docx, options) {
46
62
  ? { orientation: docx.PageOrientation.LANDSCAPE }
47
63
  : {}),
48
64
  },
49
- margin: layout.margins,
65
+ margin: {
66
+ ...layout.margins,
67
+ header: layout.headerDistance,
68
+ footer: layout.footerDistance,
69
+ },
50
70
  },
71
+ ...(options.layout?.titlePage ? { titlePage: true } : {}),
72
+ ...(columns !== undefined && Number.isFinite(columns) && columns >= 2
73
+ ? { column: { count: Math.min(45, Math.floor(columns)), equalWidth: true } }
74
+ : {}),
51
75
  },
52
- ...(header ? { headers: { default: header } } : {}),
53
- ...(footer ? { footers: { default: footer } } : {}),
76
+ ...(Object.keys(headers).length > 0 ? { headers } : {}),
77
+ ...(Object.keys(footers).length > 0 ? { footers } : {}),
54
78
  children,
55
79
  };
56
80
  const document = new docx.Document({
@@ -58,17 +82,19 @@ export async function buildDocx(dom, docx, options) {
58
82
  title: options.title === undefined ? undefined : sanitizeXmlText(options.title),
59
83
  creator: options.creator === undefined ? undefined : sanitizeXmlText(options.creator),
60
84
  // Les références de numérotation sont connues après la conversion : une par liste.
61
- numbering: buildNumbering(docx, ctx.lists, headingNumbering),
85
+ numbering: buildNumbering(docx, ctx.lists, headingNumbering, !target.template),
62
86
  styles: {
63
- default: buildDefaultStyles(options, headingNumbering),
87
+ default: buildDefaultStyles(options, target.template ? null : headingNumbering),
64
88
  paragraphStyles: buildParagraphStyles(Boolean(options.toc)),
65
89
  characterStyles: buildCharacterStyles(),
66
90
  },
67
91
  // La table des matières est un champ : Word propose de le mettre à jour à l'ouverture.
68
92
  ...(options.toc ? { features: { updateFields: true } } : {}),
93
+ // Les en-têtes et pieds de pages paires ne s'affichent qu'avec ce réglage.
94
+ ...(headers.even || footers.even ? { evenAndOddHeaderAndFooters: true } : {}),
69
95
  ...(footnotes ? { footnotes } : {}),
70
96
  sections: [section],
71
97
  });
72
- return { document, warnings: ctx.warnings };
98
+ return { document, warnings: ctx.warnings, lists: ctx.lists };
73
99
  }
74
100
  //# sourceMappingURL=html-to-docx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-docx.js","sourceRoot":"","sources":["../../src/export/html-to-docx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-to-docx.js","sourceRoot":"","sources":["../../src/export/html-to-docx.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,36 @@
1
1
  import type { IRunOptions, ParagraphChild } from 'docx';
2
2
  import { type ExportContext } from './context';
3
+ import { type HighlightName } from './css';
4
+ /** Attribut du style de caractère Word d'origine d'un span (`RunLayoutAttrs.docxRunStyle`). */
5
+ export declare const DOCX_RUN_STYLE_ATTRIBUTE = "data-docx-run-style";
6
+ /** Styles de trait du souligné (`w:u w:val`), valeurs de `UnderlineType` de `docx`. */
7
+ export type UnderlineStyle = 'single' | 'double' | 'dotted' | 'dash' | 'wave';
3
8
  /** Marques héritées le long de la descente dans les éléments inline. */
4
9
  export interface InlineState {
5
10
  readonly bold?: boolean;
6
11
  readonly italics?: boolean;
7
12
  readonly underline?: boolean;
13
+ /** Trait du souligné (`text-decoration-style`), simple par défaut. */
14
+ readonly underlineStyle?: UnderlineStyle;
8
15
  readonly strike?: boolean;
16
+ /** Barré double (`<s style="text-decoration-style: double">`), `w:dstrike`. */
17
+ readonly doubleStrike?: boolean;
9
18
  readonly subScript?: boolean;
10
19
  readonly superScript?: boolean;
11
20
  readonly code?: boolean;
12
- readonly highlight?: boolean;
21
+ /** Surlignage nommé de Word (`yellow`…), pour les seize couleurs qu'il connaît. */
22
+ readonly highlight?: HighlightName;
23
+ /** Fond de run `RRGGBB` (`w:shd`) pour toute autre couleur de fond. */
24
+ readonly shading?: string;
13
25
  readonly color?: string;
14
26
  readonly font?: string;
15
27
  readonly size?: number;
28
+ /** Espacement des caractères en twips (`letter-spacing`). */
29
+ readonly letterSpacing?: number;
30
+ /** Casse forcée : `text-transform: uppercase` ou `font-variant: small-caps`. */
31
+ readonly caps?: 'all' | 'small';
32
+ /** Style de caractère Word d'origine (`data-docx-run-style`), s'il est défini. */
33
+ readonly runStyle?: string;
16
34
  /** URL du lien englobant, `undefined` hors lien. */
17
35
  readonly href?: string;
18
36
  }
@@ -24,8 +42,12 @@ export interface InlineState {
24
42
  * est rendue telle quelle.
25
43
  */
26
44
  export declare function encodeHref(href: string): string;
27
- /** Applique au state les marques portées par un élément inline (balise + `style`). */
28
- export declare function applyElementState(element: Element, state: InlineState): InlineState;
45
+ /**
46
+ * Applique au state les marques portées par un élément inline (balise + `style` +
47
+ * `data-docx-run-style`). Le contexte sert à valider le style de caractère Word : sans
48
+ * lui, l'attribut est ignoré.
49
+ */
50
+ export declare function applyElementState(element: Element, state: InlineState, ctx?: ExportContext): InlineState;
29
51
  /** Options `docx` d'un run texte à partir du state courant. */
30
52
  export declare function runOptions(state: InlineState, text?: string): IRunOptions;
31
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/export/inline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,cAAc,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAQrD,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AA8BD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CA8DnF;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAuBzE;AAgPD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,WAAgB,EACzB,YAAY,UAAO,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CA6B3B"}
1
+ {"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/export/inline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,cAAc,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAOf,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9E,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AA8BD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAkBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,WAAW,EAClB,GAAG,CAAC,EAAE,aAAa,GAClB,WAAW,CA2Fb;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CA+BzE;AAuOD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,WAAgB,EACzB,YAAY,UAAO,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CA6B3B"}
@@ -1,10 +1,12 @@
1
- import { warn } from './context';
2
- import { parseColor, parseFontFamily, parseFontSize, parseStyle } from './css';
1
+ import { resolveDocxStyle, warn } from './context';
2
+ import { highlightName, parseColor, parseFontFamily, parseFontSize, parsePoints, parseStyle, pointsToTwips, } from './css';
3
3
  import { BLOCK_TAGS, DROPPED_TAGS, SILENT_TAGS, isElement, isText, tagOf } from './dom';
4
4
  import { imageRun } from './images';
5
5
  import { sanitizeXmlText } from './sanitize';
6
6
  import { CODE_FONT, STYLE_IDS } from './styles';
7
7
  import { mergeField, resolvedValue, splitVariables, variableNameOf } from './variables';
8
+ /** Attribut du style de caractère Word d'origine d'un span (`RunLayoutAttrs.docxRunStyle`). */
9
+ export const DOCX_RUN_STYLE_ATTRIBUTE = 'data-docx-run-style';
8
10
  /** Schémas de lien que Word accepte dans un `ExternalHyperlink`. */
9
11
  const LINK_PATTERN = /^(https?:|mailto:|tel:|ftp:)/i;
10
12
  /** Attribut d'un `<sup>` qui porte un appel de note explicite. */
@@ -26,8 +28,27 @@ export function encodeHref(href) {
26
28
  return href;
27
29
  }
28
30
  }
29
- /** Applique au state les marques portées par un élément inline (balise + `style`). */
30
- export function applyElementState(element, state) {
31
+ /** `text-decoration-style` CSS → trait de souligné Word, `undefined` pour `solid`/absent. */
32
+ function underlineStyleOf(value) {
33
+ switch (value?.trim().toLowerCase()) {
34
+ case 'double':
35
+ return 'double';
36
+ case 'dotted':
37
+ return 'dotted';
38
+ case 'dashed':
39
+ return 'dash';
40
+ case 'wavy':
41
+ return 'wave';
42
+ default:
43
+ return undefined;
44
+ }
45
+ }
46
+ /**
47
+ * Applique au state les marques portées par un élément inline (balise + `style` +
48
+ * `data-docx-run-style`). Le contexte sert à valider le style de caractère Word : sans
49
+ * lui, l'attribut est ignoré.
50
+ */
51
+ export function applyElementState(element, state, ctx) {
31
52
  const style = parseStyle(element.getAttribute('style'));
32
53
  let next = state;
33
54
  switch (tagOf(element)) {
@@ -40,13 +61,20 @@ export function applyElementState(element, state) {
40
61
  next = { ...next, italics: true };
41
62
  break;
42
63
  case 'u':
43
- case 'ins':
44
- next = { ...next, underline: true };
64
+ case 'ins': {
65
+ const underlineStyle = underlineStyleOf(style.get('text-decoration-style'));
66
+ next = { ...next, underline: true, ...(underlineStyle ? { underlineStyle } : {}) };
45
67
  break;
68
+ }
46
69
  case 's':
47
70
  case 'strike':
48
71
  case 'del':
49
- next = { ...next, strike: true };
72
+ if (style.get('text-decoration-style')?.trim().toLowerCase() === 'double') {
73
+ next = { ...next, doubleStrike: true };
74
+ }
75
+ else {
76
+ next = { ...next, strike: true };
77
+ }
50
78
  break;
51
79
  case 'sub':
52
80
  next = { ...next, subScript: true, superScript: false };
@@ -60,7 +88,7 @@ export function applyElementState(element, state) {
60
88
  next = { ...next, code: true };
61
89
  break;
62
90
  case 'mark':
63
- next = { ...next, highlight: true };
91
+ next = { ...next, highlight: 'yellow', shading: undefined };
64
92
  break;
65
93
  case 'a': {
66
94
  const href = sanitizeXmlText(element.getAttribute('href') ?? '').trim();
@@ -95,9 +123,35 @@ export function applyElementState(element, state) {
95
123
  const size = parseFontSize(style.get('font-size'));
96
124
  if (size)
97
125
  next = { ...next, size };
98
- const background = style.get('background-color') ?? style.get('background');
99
- if (background && parseColor(background))
100
- next = { ...next, highlight: true };
126
+ const background = parseColor(style.get('background-color') ?? style.get('background'));
127
+ if (background) {
128
+ // Les seize couleurs de Word restent un surlignage ; les autres deviennent un fond de run.
129
+ const named = highlightName(background);
130
+ next = named
131
+ ? { ...next, highlight: named, shading: undefined }
132
+ : { ...next, shading: background, highlight: undefined };
133
+ }
134
+ const letterSpacing = parsePoints(style.get('letter-spacing'));
135
+ if (letterSpacing !== null && letterSpacing !== 0) {
136
+ next = { ...next, letterSpacing: pointsToTwips(letterSpacing) };
137
+ }
138
+ const transform = style.get('text-transform')?.trim().toLowerCase();
139
+ if (transform === 'uppercase')
140
+ next = { ...next, caps: 'all' };
141
+ else if (transform === 'none' && next.caps === 'all')
142
+ next = { ...next, caps: undefined };
143
+ const variant = style.get('font-variant')?.trim().toLowerCase();
144
+ if (variant === 'small-caps' || style.get('font-variant-caps')?.trim() === 'small-caps') {
145
+ next = { ...next, caps: 'small' };
146
+ }
147
+ else if (variant === 'normal' && next.caps === 'small') {
148
+ next = { ...next, caps: undefined };
149
+ }
150
+ if (ctx) {
151
+ const runStyle = resolveDocxStyle(ctx, element.getAttribute(DOCX_RUN_STYLE_ATTRIBUTE), 'run');
152
+ if (runStyle)
153
+ next = { ...next, runStyle };
154
+ }
101
155
  return next;
102
156
  }
103
157
  /** Options `docx` d'un run texte à partir du state courant. */
@@ -110,19 +164,29 @@ export function runOptions(state, text) {
110
164
  if (state.italics)
111
165
  options.italics = true;
112
166
  if (state.underline)
113
- options.underline = {};
167
+ options.underline = state.underlineStyle ? { type: state.underlineStyle } : {};
114
168
  if (state.strike)
115
169
  options.strike = true;
170
+ if (state.doubleStrike)
171
+ options.doubleStrike = true;
116
172
  if (state.subScript)
117
173
  options.subScript = true;
118
174
  if (state.superScript)
119
175
  options.superScript = true;
120
176
  if (state.highlight)
121
- options.highlight = 'yellow';
177
+ options.highlight = state.highlight;
178
+ if (state.shading)
179
+ options.shading = { fill: state.shading, type: 'clear', color: 'auto' };
122
180
  if (state.color)
123
181
  options.color = state.color;
124
182
  if (state.size)
125
183
  options.size = state.size;
184
+ if (state.letterSpacing)
185
+ options.characterSpacing = state.letterSpacing;
186
+ if (state.caps === 'all')
187
+ options.allCaps = true;
188
+ if (state.caps === 'small')
189
+ options.smallCaps = true;
126
190
  if (state.code) {
127
191
  options.style = STYLE_IDS.code;
128
192
  options.font = CODE_FONT;
@@ -130,7 +194,10 @@ export function runOptions(state, text) {
130
194
  else if (state.font) {
131
195
  options.font = state.font;
132
196
  }
133
- // Le style de caractère « Hyperlink » prime sur « Code » : Word n'en accepte qu'un.
197
+ // Un style de caractère Word d'origine prime sur « Code », et « Hyperlink » sur tout :
198
+ // Word n'en accepte qu'un par run.
199
+ if (state.runStyle)
200
+ options.style = state.runStyle;
134
201
  if (state.href)
135
202
  options.style = STYLE_IDS.hyperlink;
136
203
  return options;
@@ -266,7 +333,7 @@ async function collectPieces(node, state, ctx, options, pieces) {
266
333
  warn(ctx, 'unsupported-element', `Élément <${tag}> ignoré : pas d'équivalent Word`);
267
334
  return;
268
335
  }
269
- const next = applyElementState(node, state);
336
+ const next = applyElementState(node, state, ctx);
270
337
  const variable = variableNameOf(node);
271
338
  if (variable !== null) {
272
339
  // Puce de variable : le span est atomique, son texte d'origine sert de repli.
@@ -288,12 +355,15 @@ async function collectPieces(node, state, ctx, options, pieces) {
288
355
  pushBreak(pieces, state);
289
356
  }
290
357
  /**
291
- * Applique les règles de blancs du HTML : suites d'espaces réduites à un, blancs de
292
- * début et de fin de bloc supprimés, espace doublé à la frontière de deux morceaux
293
- * supprimé. Seuls les blancs HTML (espace, tabulation, LF, CR, FF) sont concernés :
294
- * NBSP et espaces Unicode sont du contenu. Les morceaux devenus vides disparaissent,
295
- * ainsi que les sauts de ligne terminaux d'un paragraphe qui contient autre chose. Les
296
- * morceaux `preserved` (valeurs de variables) sont écrits tels quels.
358
+ * Applique les règles de blancs du HTML : suites d'espaces réduites à un, blanc de début
359
+ * de bloc supprimé, espace doublé à la frontière de deux morceaux supprimé. Seuls les
360
+ * blancs HTML (espace, tabulation, LF, CR, FF) sont concernés : NBSP et espaces Unicode
361
+ * sont du contenu. L'espace **final** d'un bloc est conservée (réduite à une) : dans
362
+ * l'éditeur `<p>Titre : </p>` est du contenu, et l'import la restitue depuis
363
+ * `<w:t xml:space="preserve">` ; la rogner cassait l'aller-retour. Les morceaux devenus
364
+ * vides disparaissent, ainsi que les sauts de ligne terminaux d'un paragraphe qui
365
+ * contient autre chose. Les morceaux `preserved` (valeurs de variables) sont écrits tels
366
+ * quels.
297
367
  */
298
368
  function collapseWhitespace(pieces) {
299
369
  const result = [];
@@ -312,19 +382,6 @@ function collapseWhitespace(pieces) {
312
382
  result.push({ ...piece, text });
313
383
  atBoundary = text.endsWith(' ');
314
384
  }
315
- // Blanc de fin de bloc : on le retire du dernier morceau texte, qui peut alors disparaître.
316
- for (let i = result.length - 1; i >= 0; i -= 1) {
317
- const last = result[i];
318
- if (!last || last.kind !== 'text' || last.preserved)
319
- break;
320
- const trimmed = last.text.replace(/ $/, '');
321
- if (trimmed === '') {
322
- result.splice(i, 1);
323
- continue;
324
- }
325
- result[i] = { ...last, text: trimmed };
326
- break;
327
- }
328
385
  // `<br>` terminal : invisible en HTML quand le bloc a d'autre contenu, il ajouterait une
329
386
  // ligne vide dans Word. `<p><br></p>` garde le sien : c'est tout ce qui donne corps au paragraphe.
330
387
  if (result.some((piece) => piece.kind !== 'break')) {
@@ -1 +1 @@
1
- {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/export/inline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/export/inline.ts"],"names":[],"mappings":"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"}