@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.
- package/README.md +204 -82
- package/dist/docx/compare/align.d.ts +24 -0
- package/dist/docx/compare/align.d.ts.map +1 -0
- package/dist/docx/compare/align.js +217 -0
- package/dist/docx/compare/align.js.map +1 -0
- package/dist/docx/compare/compare-blocks.d.ts +29 -0
- package/dist/docx/compare/compare-blocks.d.ts.map +1 -0
- package/dist/docx/compare/compare-blocks.js +234 -0
- package/dist/docx/compare/compare-blocks.js.map +1 -0
- package/dist/docx/compare/compare-context.d.ts +25 -0
- package/dist/docx/compare/compare-context.d.ts.map +1 -0
- package/dist/docx/compare/compare-context.js +31 -0
- package/dist/docx/compare/compare-context.js.map +1 -0
- package/dist/docx/compare/compare-docx.d.ts +4 -0
- package/dist/docx/compare/compare-docx.d.ts.map +1 -0
- package/dist/docx/compare/compare-docx.js +173 -0
- package/dist/docx/compare/compare-docx.js.map +1 -0
- package/dist/docx/compare/compare-tables.d.ts +13 -0
- package/dist/docx/compare/compare-tables.d.ts.map +1 -0
- package/dist/docx/compare/compare-tables.js +47 -0
- package/dist/docx/compare/compare-tables.js.map +1 -0
- package/dist/docx/compare/model-borders.d.ts +27 -0
- package/dist/docx/compare/model-borders.d.ts.map +1 -0
- package/dist/docx/compare/model-borders.js +41 -0
- package/dist/docx/compare/model-borders.js.map +1 -0
- package/dist/docx/compare/model-paragraph.d.ts +25 -0
- package/dist/docx/compare/model-paragraph.d.ts.map +1 -0
- package/dist/docx/compare/model-paragraph.js +309 -0
- package/dist/docx/compare/model-paragraph.js.map +1 -0
- package/dist/docx/compare/model-sections.d.ts +11 -0
- package/dist/docx/compare/model-sections.d.ts.map +1 -0
- package/dist/docx/compare/model-sections.js +97 -0
- package/dist/docx/compare/model-sections.js.map +1 -0
- package/dist/docx/compare/model.d.ts +113 -0
- package/dist/docx/compare/model.d.ts.map +1 -0
- package/dist/docx/compare/model.js +214 -0
- package/dist/docx/compare/model.js.map +1 -0
- package/dist/docx/compare/parts.d.ts +40 -0
- package/dist/docx/compare/parts.d.ts.map +1 -0
- package/dist/docx/compare/parts.js +113 -0
- package/dist/docx/compare/parts.js.map +1 -0
- package/dist/docx/compare/tally.d.ts +23 -0
- package/dist/docx/compare/tally.d.ts.map +1 -0
- package/dist/docx/compare/tally.js +94 -0
- package/dist/docx/compare/tally.js.map +1 -0
- package/dist/docx/compare/types.d.ts +55 -0
- package/dist/docx/compare/types.d.ts.map +1 -0
- package/dist/docx/compare/types.js +2 -0
- package/dist/docx/compare/types.js.map +1 -0
- package/dist/docx/compare/values.d.ts +13 -0
- package/dist/docx/compare/values.d.ts.map +1 -0
- package/dist/docx/compare/values.js +44 -0
- package/dist/docx/compare/values.js.map +1 -0
- package/dist/docx/import-docx.d.ts.map +1 -1
- package/dist/docx/import-docx.js +57 -2
- package/dist/docx/import-docx.js.map +1 -1
- package/dist/docx/preprocess/variables.d.ts.map +1 -1
- package/dist/docx/preprocess/variables.js +2 -2
- package/dist/docx/preprocess/variables.js.map +1 -1
- package/dist/docx/preprocess/xml-utils.d.ts +7 -0
- package/dist/docx/preprocess/xml-utils.d.ts.map +1 -1
- package/dist/docx/preprocess/xml-utils.js +9 -0
- package/dist/docx/preprocess/xml-utils.js.map +1 -1
- package/dist/docx/reader/headers.d.ts +17 -0
- package/dist/docx/reader/headers.d.ts.map +1 -0
- package/dist/docx/reader/headers.js +64 -0
- package/dist/docx/reader/headers.js.map +1 -0
- package/dist/docx/reader/html.d.ts +12 -0
- package/dist/docx/reader/html.d.ts.map +1 -0
- package/dist/docx/reader/html.js +27 -0
- package/dist/docx/reader/html.js.map +1 -0
- package/dist/docx/reader/images.d.ts +27 -0
- package/dist/docx/reader/images.d.ts.map +1 -0
- package/dist/docx/reader/images.js +288 -0
- package/dist/docx/reader/images.js.map +1 -0
- package/dist/docx/reader/index.d.ts +10 -0
- package/dist/docx/reader/index.d.ts.map +1 -0
- package/dist/docx/reader/index.js +177 -0
- package/dist/docx/reader/index.js.map +1 -0
- package/dist/docx/reader/lists.d.ts +44 -0
- package/dist/docx/reader/lists.d.ts.map +1 -0
- package/dist/docx/reader/lists.js +360 -0
- package/dist/docx/reader/lists.js.map +1 -0
- package/dist/docx/reader/lost.d.ts +30 -0
- package/dist/docx/reader/lost.d.ts.map +1 -0
- package/dist/docx/reader/lost.js +215 -0
- package/dist/docx/reader/lost.js.map +1 -0
- package/dist/docx/reader/notes.d.ts +4 -0
- package/dist/docx/reader/notes.d.ts.map +1 -0
- package/dist/docx/reader/notes.js +112 -0
- package/dist/docx/reader/notes.js.map +1 -0
- package/dist/docx/reader/package.d.ts +16 -0
- package/dist/docx/reader/package.d.ts.map +1 -0
- package/dist/docx/reader/package.js +138 -0
- package/dist/docx/reader/package.js.map +1 -0
- package/dist/docx/reader/paragraphs.d.ts +15 -0
- package/dist/docx/reader/paragraphs.d.ts.map +1 -0
- package/dist/docx/reader/paragraphs.js +162 -0
- package/dist/docx/reader/paragraphs.js.map +1 -0
- package/dist/docx/reader/properties.d.ts +90 -0
- package/dist/docx/reader/properties.d.ts.map +1 -0
- package/dist/docx/reader/properties.js +402 -0
- package/dist/docx/reader/properties.js.map +1 -0
- package/dist/docx/reader/runs.d.ts +49 -0
- package/dist/docx/reader/runs.d.ts.map +1 -0
- package/dist/docx/reader/runs.js +442 -0
- package/dist/docx/reader/runs.js.map +1 -0
- package/dist/docx/reader/sections.d.ts +36 -0
- package/dist/docx/reader/sections.d.ts.map +1 -0
- package/dist/docx/reader/sections.js +158 -0
- package/dist/docx/reader/sections.js.map +1 -0
- package/dist/docx/reader/styles.d.ts +24 -0
- package/dist/docx/reader/styles.d.ts.map +1 -0
- package/dist/docx/reader/styles.js +383 -0
- package/dist/docx/reader/styles.js.map +1 -0
- package/dist/docx/reader/tables.d.ts +6 -0
- package/dist/docx/reader/tables.d.ts.map +1 -0
- package/dist/docx/reader/tables.js +175 -0
- package/dist/docx/reader/tables.js.map +1 -0
- package/dist/docx/reader/test-support.d.ts +25 -0
- package/dist/docx/reader/test-support.d.ts.map +1 -0
- package/dist/docx/reader/test-support.js +135 -0
- package/dist/docx/reader/test-support.js.map +1 -0
- package/dist/docx/reader/testing-blocks.d.ts +50 -0
- package/dist/docx/reader/testing-blocks.d.ts.map +1 -0
- package/dist/docx/reader/testing-blocks.js +302 -0
- package/dist/docx/reader/testing-blocks.js.map +1 -0
- package/dist/docx/reader/types.d.ts +181 -0
- package/dist/docx/reader/types.d.ts.map +1 -0
- package/dist/docx/reader/types.js +2 -0
- package/dist/docx/reader/types.js.map +1 -0
- package/dist/docx/reader/units-blocks.d.ts +75 -0
- package/dist/docx/reader/units-blocks.d.ts.map +1 -0
- package/dist/docx/reader/units-blocks.js +254 -0
- package/dist/docx/reader/units-blocks.js.map +1 -0
- package/dist/docx/reader/units.d.ts +72 -0
- package/dist/docx/reader/units.d.ts.map +1 -0
- package/dist/docx/reader/units.js +177 -0
- package/dist/docx/reader/units.js.map +1 -0
- package/dist/docx/types.d.ts +40 -2
- package/dist/docx/types.d.ts.map +1 -1
- package/dist/docx/writer/content-types.d.ts +30 -0
- package/dist/docx/writer/content-types.d.ts.map +1 -0
- package/dist/docx/writer/content-types.js +81 -0
- package/dist/docx/writer/content-types.js.map +1 -0
- package/dist/docx/writer/core-properties.d.ts +16 -0
- package/dist/docx/writer/core-properties.d.ts.map +1 -0
- package/dist/docx/writer/core-properties.js +64 -0
- package/dist/docx/writer/core-properties.js.map +1 -0
- package/dist/docx/writer/footnotes-merge.d.ts +30 -0
- package/dist/docx/writer/footnotes-merge.d.ts.map +1 -0
- package/dist/docx/writer/footnotes-merge.js +71 -0
- package/dist/docx/writer/footnotes-merge.js.map +1 -0
- package/dist/docx/writer/graft.d.ts +41 -0
- package/dist/docx/writer/graft.d.ts.map +1 -0
- package/dist/docx/writer/graft.js +277 -0
- package/dist/docx/writer/graft.js.map +1 -0
- package/dist/docx/writer/header-footer-graft.d.ts +34 -0
- package/dist/docx/writer/header-footer-graft.d.ts.map +1 -0
- package/dist/docx/writer/header-footer-graft.js +155 -0
- package/dist/docx/writer/header-footer-graft.js.map +1 -0
- package/dist/docx/writer/header-footer-variables.d.ts +25 -0
- package/dist/docx/writer/header-footer-variables.d.ts.map +1 -0
- package/dist/docx/writer/header-footer-variables.js +101 -0
- package/dist/docx/writer/header-footer-variables.js.map +1 -0
- package/dist/docx/writer/media.d.ts +32 -0
- package/dist/docx/writer/media.d.ts.map +1 -0
- package/dist/docx/writer/media.js +88 -0
- package/dist/docx/writer/media.js.map +1 -0
- package/dist/docx/writer/numbering-merge.d.ts +37 -0
- package/dist/docx/writer/numbering-merge.d.ts.map +1 -0
- package/dist/docx/writer/numbering-merge.js +140 -0
- package/dist/docx/writer/numbering-merge.js.map +1 -0
- package/dist/docx/writer/relationships.d.ts +63 -0
- package/dist/docx/writer/relationships.d.ts.map +1 -0
- package/dist/docx/writer/relationships.js +127 -0
- package/dist/docx/writer/relationships.js.map +1 -0
- package/dist/docx/writer/settings-merge.d.ts +21 -0
- package/dist/docx/writer/settings-merge.d.ts.map +1 -0
- package/dist/docx/writer/settings-merge.js +165 -0
- package/dist/docx/writer/settings-merge.js.map +1 -0
- package/dist/docx/writer/style-reconcile.d.ts +29 -0
- package/dist/docx/writer/style-reconcile.d.ts.map +1 -0
- package/dist/docx/writer/style-reconcile.js +319 -0
- package/dist/docx/writer/style-reconcile.js.map +1 -0
- package/dist/docx/writer/style-strip.d.ts +33 -0
- package/dist/docx/writer/style-strip.d.ts.map +1 -0
- package/dist/docx/writer/style-strip.js +267 -0
- package/dist/docx/writer/style-strip.js.map +1 -0
- package/dist/docx/writer/styles-merge.d.ts +57 -0
- package/dist/docx/writer/styles-merge.d.ts.map +1 -0
- package/dist/docx/writer/styles-merge.js +184 -0
- package/dist/docx/writer/styles-merge.js.map +1 -0
- package/dist/docx/writer/template.d.ts +48 -0
- package/dist/docx/writer/template.d.ts.map +1 -0
- package/dist/docx/writer/template.js +280 -0
- package/dist/docx/writer/template.js.map +1 -0
- package/dist/docx/writer/testing.d.ts +52 -0
- package/dist/docx/writer/testing.d.ts.map +1 -0
- package/dist/docx/writer/testing.js +318 -0
- package/dist/docx/writer/testing.js.map +1 -0
- package/dist/docx/writer/xml-io.d.ts +90 -0
- package/dist/docx/writer/xml-io.d.ts.map +1 -0
- package/dist/docx/writer/xml-io.js +215 -0
- package/dist/docx/writer/xml-io.js.map +1 -0
- package/dist/export/blocks.d.ts.map +1 -1
- package/dist/export/blocks.js +149 -12
- package/dist/export/blocks.js.map +1 -1
- package/dist/export/context.d.ts +34 -2
- package/dist/export/context.d.ts.map +1 -1
- package/dist/export/context.js +28 -2
- package/dist/export/context.js.map +1 -1
- package/dist/export/css.d.ts +58 -0
- package/dist/export/css.d.ts.map +1 -1
- package/dist/export/css.js +194 -0
- package/dist/export/css.js.map +1 -1
- package/dist/export/dom.d.ts +2 -0
- package/dist/export/dom.d.ts.map +1 -1
- package/dist/export/dom.js +2 -0
- package/dist/export/dom.js.map +1 -1
- package/dist/export/export-docx.d.ts +4 -0
- package/dist/export/export-docx.d.ts.map +1 -1
- package/dist/export/export-docx.js +57 -4
- package/dist/export/export-docx.js.map +1 -1
- package/dist/export/header-footer.d.ts +15 -1
- package/dist/export/header-footer.d.ts.map +1 -1
- package/dist/export/header-footer.js +37 -0
- package/dist/export/header-footer.js.map +1 -1
- package/dist/export/html-to-docx.d.ts +20 -2
- package/dist/export/html-to-docx.d.ts.map +1 -1
- package/dist/export/html-to-docx.js +40 -14
- package/dist/export/html-to-docx.js.map +1 -1
- package/dist/export/inline.d.ts +25 -3
- package/dist/export/inline.d.ts.map +1 -1
- package/dist/export/inline.js +91 -34
- package/dist/export/inline.js.map +1 -1
- package/dist/export/styles.d.ts +51 -7
- package/dist/export/styles.d.ts.map +1 -1
- package/dist/export/styles.js +121 -16
- package/dist/export/styles.js.map +1 -1
- package/dist/export/tables.d.ts.map +1 -1
- package/dist/export/tables.js +140 -12
- package/dist/export/tables.js.map +1 -1
- package/dist/export/types.d.ts +44 -5
- package/dist/export/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/export/styles.d.ts
CHANGED
|
@@ -1,9 +1,43 @@
|
|
|
1
|
-
import type { ICharacterStyleOptions, INumberingOptions, IParagraphStyleOptions, IStylesOptions } from 'docx';
|
|
1
|
+
import type { IBorderOptions, ICharacterStyleOptions, INumberingOptions, IParagraphStyleOptions, IStylesOptions } from 'docx';
|
|
2
2
|
import type { ListDefinition } from './context';
|
|
3
|
+
import { type CssBorder } from './css';
|
|
3
4
|
import type { DocxModule } from './docx-module';
|
|
4
5
|
import type { DocxExportOptions, DocxExportWarning, DocxNumberedHeadingsOptions, DocxPageOrientation, DocxPageSize } from './types';
|
|
5
6
|
/** Police à chasse fixe des blocs et marques de code. */
|
|
6
7
|
export declare const CODE_FONT = "Consolas";
|
|
8
|
+
/** Attribut du style Word d'origine d'un bloc ou d'un tableau (contrat `docxStyle`). */
|
|
9
|
+
export declare const DOCX_STYLE_ATTRIBUTE = "data-docx-style";
|
|
10
|
+
/** Attribut de la numérotation Word d'origine d'une liste (`ListLayoutAttrs.docxNumId`). */
|
|
11
|
+
export declare const DOCX_NUM_ID_ATTRIBUTE = "data-docx-num-id";
|
|
12
|
+
/**
|
|
13
|
+
* Posé par l'import sur un paragraphe de liste dont `margin-left` / `text-indent` viennent
|
|
14
|
+
* du niveau de numérotation : la numérotation Word les porte déjà, on ne les réécrit pas.
|
|
15
|
+
*/
|
|
16
|
+
export declare const NUM_INDENT_ATTRIBUTE = "data-docx-num-indent";
|
|
17
|
+
/**
|
|
18
|
+
* Espace texte-trait (`w:space`, en points) d'une bordure de paragraphe. Le contrat
|
|
19
|
+
* `BlockBorder` ne le porte pas et l'import ne le lit pas : on reprend la valeur que Word
|
|
20
|
+
* écrit lui-même. Par défaut **1 pt** sur chaque côté : c'est ce que Word donne à un
|
|
21
|
+
* encadré (bordure haute ou basse présente, fixture 12 : quatre côtés à `w:space="1"`),
|
|
22
|
+
* et un filet horizontal seul en a autant. Seul un filet vertical **seul** (barre de
|
|
23
|
+
* citation à gauche ou à droite, sans bordure haute ni basse) prend les **4 pt** du
|
|
24
|
+
* réglage par défaut de Word pour ce cas, faute d'original connu. `sides` est l'ensemble
|
|
25
|
+
* des côtés bordés du paragraphe.
|
|
26
|
+
*/
|
|
27
|
+
export declare function paragraphBorderSpace(side: string, sides: ReadonlySet<string>): number;
|
|
28
|
+
/**
|
|
29
|
+
* Bordure CSS → `IBorderOptions` : épaisseur en huitièmes de point, couleur `RRGGBB`,
|
|
30
|
+
* espace texte-trait selon `paragraphBorderSpace` (`sides` = côtés bordés du bloc ; pour
|
|
31
|
+
* une cellule, un ensemble vide donne 1 pt partout). Le style `solid` du contrat est le
|
|
32
|
+
* `single` de Word.
|
|
33
|
+
*/
|
|
34
|
+
export declare function borderOptions(border: CssBorder, side: string, sides?: ReadonlySet<string>): IBorderOptions;
|
|
35
|
+
/**
|
|
36
|
+
* Identifiants des styles que l'export neuf définit toujours (ceux de `docx` plus ceux
|
|
37
|
+
* d'Aster) : un `data-docx-style` hors de cette liste n'est écrit que si le gabarit le
|
|
38
|
+
* définit. `TOCHeading` s'y ajoute avec une table des matières.
|
|
39
|
+
*/
|
|
40
|
+
export declare const GENERATED_STYLE_IDS: readonly string[];
|
|
7
41
|
/** Profondeur de liste couverte par chaque numérotation (Word en accepte 9). */
|
|
8
42
|
export declare const LIST_LEVELS = 9;
|
|
9
43
|
/** Retrait gauche d'un niveau de liste, en twips (720 = 1,27 cm). */
|
|
@@ -46,9 +80,12 @@ export declare function resolveHeadingNumbering(option: boolean | DocxNumberedHe
|
|
|
46
80
|
* le format à chaque niveau (`%1.`, `%2.`…) pour rester lisibles dans Word. Le `start`
|
|
47
81
|
* de la liste est posé sur le niveau qu'elle occupe ; `docx` le recopie en
|
|
48
82
|
* `startOverride` de l'instance quand c'est le niveau 0. S'y ajoute la numérotation
|
|
49
|
-
* des titres, dont chaque niveau est lié au style `Heading n` (`w:pStyle`)
|
|
83
|
+
* des titres, dont chaque niveau est lié au style `Heading n` (`w:pStyle`) en export
|
|
84
|
+
* neuf ; en export dans le gabarit (`linkHeadingStyles` faux), les styles du gabarit ne
|
|
85
|
+
* sont pas modifiés et ses identifiants peuvent différer : les niveaux ne sont liés à
|
|
86
|
+
* aucun style, chaque titre porte sa numérotation en `w:numPr` direct.
|
|
50
87
|
*/
|
|
51
|
-
export declare function buildNumbering(docx: DocxModule, lists: readonly ListDefinition[], headings?: HeadingNumbering | null): INumberingOptions;
|
|
88
|
+
export declare function buildNumbering(docx: DocxModule, lists: readonly ListDefinition[], headings?: HeadingNumbering | null, linkHeadingStyles?: boolean): INumberingOptions;
|
|
52
89
|
/**
|
|
53
90
|
* Styles de paragraphe : `Quote` (citation, italique indentée), `HTMLPreformatted`
|
|
54
91
|
* (bloc de code, Consolas) et, avec une table des matières, `TOC Heading` pour son
|
|
@@ -85,19 +122,26 @@ export interface PageMargins {
|
|
|
85
122
|
}
|
|
86
123
|
/** Mise en page résolue : dimensions portrait (docx les inverse lui-même en paysage), marges, largeur utile. */
|
|
87
124
|
export interface PageLayout extends PageDimensions {
|
|
125
|
+
/** Format nommé de l'option, `A4` pour un format du contrat (`A3`, `Legal`, libre…). */
|
|
88
126
|
readonly size: DocxPageSize;
|
|
89
127
|
readonly orientation: DocxPageOrientation;
|
|
90
128
|
readonly margins: PageMargins;
|
|
129
|
+
/** Distance du bord à l'en-tête et au pied, en twips (708 par défaut, comme Word). */
|
|
130
|
+
readonly headerDistance: number;
|
|
131
|
+
readonly footerDistance: number;
|
|
91
132
|
/** Largeur utile en pixels à 96 dpi, plafond des images et des tables. */
|
|
92
133
|
readonly contentWidthPx: number;
|
|
93
134
|
}
|
|
135
|
+
/** Distance par défaut du bord de page à l'en-tête ou au pied, en twips (1,25 cm). */
|
|
136
|
+
export declare const HEADER_DISTANCE = 708;
|
|
94
137
|
/** Zone utile minimale laissée par les marges, en twips (1 cm), dans chaque sens. */
|
|
95
138
|
export declare const MIN_CONTENT_EXTENT: number;
|
|
96
139
|
/**
|
|
97
|
-
* `options.page` (et `pageSize` en repli)
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
140
|
+
* `options.page` (et `pageSize` en repli), complété champ par champ par `options.layout`
|
|
141
|
+
* (contrat `DocumentLayout`, en général celui de l'import) → mise en page. En paysage, la
|
|
142
|
+
* largeur utile est celle du grand côté : `docx` inverse `w:w`/`w:h` quand
|
|
143
|
+
* `w:orient="landscape"`, on lui donne donc toujours les dimensions portrait. Les marges
|
|
144
|
+
* invalides ou qui ne laissent pas 1 cm utile sont corrigées et signalées dans `warnings`.
|
|
101
145
|
*/
|
|
102
146
|
export declare function resolvePageLayout(options: DocxExportOptions, warnings?: DocxExportWarning[]): PageLayout;
|
|
103
147
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/export/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/export/styles.ts"],"names":[],"mappings":"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"}
|
package/dist/export/styles.js
CHANGED
|
@@ -2,6 +2,71 @@ import { parseColor } from './css';
|
|
|
2
2
|
import { sanitizeXmlText } from './sanitize';
|
|
3
3
|
/** Police à chasse fixe des blocs et marques de code. */
|
|
4
4
|
export const CODE_FONT = 'Consolas';
|
|
5
|
+
/** Attribut du style Word d'origine d'un bloc ou d'un tableau (contrat `docxStyle`). */
|
|
6
|
+
export const DOCX_STYLE_ATTRIBUTE = 'data-docx-style';
|
|
7
|
+
/** Attribut de la numérotation Word d'origine d'une liste (`ListLayoutAttrs.docxNumId`). */
|
|
8
|
+
export const DOCX_NUM_ID_ATTRIBUTE = 'data-docx-num-id';
|
|
9
|
+
/**
|
|
10
|
+
* Posé par l'import sur un paragraphe de liste dont `margin-left` / `text-indent` viennent
|
|
11
|
+
* du niveau de numérotation : la numérotation Word les porte déjà, on ne les réécrit pas.
|
|
12
|
+
*/
|
|
13
|
+
export const NUM_INDENT_ATTRIBUTE = 'data-docx-num-indent';
|
|
14
|
+
/**
|
|
15
|
+
* Espace texte-trait (`w:space`, en points) d'une bordure de paragraphe. Le contrat
|
|
16
|
+
* `BlockBorder` ne le porte pas et l'import ne le lit pas : on reprend la valeur que Word
|
|
17
|
+
* écrit lui-même. Par défaut **1 pt** sur chaque côté : c'est ce que Word donne à un
|
|
18
|
+
* encadré (bordure haute ou basse présente, fixture 12 : quatre côtés à `w:space="1"`),
|
|
19
|
+
* et un filet horizontal seul en a autant. Seul un filet vertical **seul** (barre de
|
|
20
|
+
* citation à gauche ou à droite, sans bordure haute ni basse) prend les **4 pt** du
|
|
21
|
+
* réglage par défaut de Word pour ce cas, faute d'original connu. `sides` est l'ensemble
|
|
22
|
+
* des côtés bordés du paragraphe.
|
|
23
|
+
*/
|
|
24
|
+
export function paragraphBorderSpace(side, sides) {
|
|
25
|
+
const vertical = side === 'left' || side === 'right';
|
|
26
|
+
return vertical && !sides.has('top') && !sides.has('bottom') ? 4 : 1;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Bordure CSS → `IBorderOptions` : épaisseur en huitièmes de point, couleur `RRGGBB`,
|
|
30
|
+
* espace texte-trait selon `paragraphBorderSpace` (`sides` = côtés bordés du bloc ; pour
|
|
31
|
+
* une cellule, un ensemble vide donne 1 pt partout). Le style `solid` du contrat est le
|
|
32
|
+
* `single` de Word.
|
|
33
|
+
*/
|
|
34
|
+
export function borderOptions(border, side, sides = new Set()) {
|
|
35
|
+
return {
|
|
36
|
+
style: border.style === 'solid' ? 'single' : border.style,
|
|
37
|
+
size: Math.max(2, Math.round(border.widthPt * 8)),
|
|
38
|
+
color: border.color,
|
|
39
|
+
space: paragraphBorderSpace(side, sides),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Identifiants des styles que l'export neuf définit toujours (ceux de `docx` plus ceux
|
|
44
|
+
* d'Aster) : un `data-docx-style` hors de cette liste n'est écrit que si le gabarit le
|
|
45
|
+
* définit. `TOCHeading` s'y ajoute avec une table des matières.
|
|
46
|
+
*/
|
|
47
|
+
export const GENERATED_STYLE_IDS = [
|
|
48
|
+
'Normal',
|
|
49
|
+
'Title',
|
|
50
|
+
'Heading1',
|
|
51
|
+
'Heading2',
|
|
52
|
+
'Heading3',
|
|
53
|
+
'Heading4',
|
|
54
|
+
'Heading5',
|
|
55
|
+
'Heading6',
|
|
56
|
+
'Strong',
|
|
57
|
+
'ListParagraph',
|
|
58
|
+
'Hyperlink',
|
|
59
|
+
'FootnoteReference',
|
|
60
|
+
'FootnoteText',
|
|
61
|
+
'FootnoteTextChar',
|
|
62
|
+
'EndnoteReference',
|
|
63
|
+
'EndnoteText',
|
|
64
|
+
'EndnoteTextChar',
|
|
65
|
+
'TableNormal',
|
|
66
|
+
'Quote',
|
|
67
|
+
'HTMLPreformatted',
|
|
68
|
+
'Code',
|
|
69
|
+
];
|
|
5
70
|
/** Profondeur de liste couverte par chaque numérotation (Word en accepte 9). */
|
|
6
71
|
export const LIST_LEVELS = 9;
|
|
7
72
|
/** Retrait gauche d'un niveau de liste, en twips (720 = 1,27 cm). */
|
|
@@ -71,9 +136,12 @@ function headingLevelText(level, format) {
|
|
|
71
136
|
* le format à chaque niveau (`%1.`, `%2.`…) pour rester lisibles dans Word. Le `start`
|
|
72
137
|
* de la liste est posé sur le niveau qu'elle occupe ; `docx` le recopie en
|
|
73
138
|
* `startOverride` de l'instance quand c'est le niveau 0. S'y ajoute la numérotation
|
|
74
|
-
* des titres, dont chaque niveau est lié au style `Heading n` (`w:pStyle`)
|
|
139
|
+
* des titres, dont chaque niveau est lié au style `Heading n` (`w:pStyle`) en export
|
|
140
|
+
* neuf ; en export dans le gabarit (`linkHeadingStyles` faux), les styles du gabarit ne
|
|
141
|
+
* sont pas modifiés et ses identifiants peuvent différer : les niveaux ne sont liés à
|
|
142
|
+
* aucun style, chaque titre porte sa numérotation en `w:numPr` direct.
|
|
75
143
|
*/
|
|
76
|
-
export function buildNumbering(docx, lists, headings = null) {
|
|
144
|
+
export function buildNumbering(docx, lists, headings = null, linkHeadingStyles = true) {
|
|
77
145
|
const { AlignmentType, LevelFormat } = docx;
|
|
78
146
|
const formats = {
|
|
79
147
|
bullet: LevelFormat.BULLET,
|
|
@@ -108,7 +176,7 @@ export function buildNumbering(docx, lists, headings = null) {
|
|
|
108
176
|
text: headingLevelText(level, headings.format),
|
|
109
177
|
alignment: AlignmentType.LEFT,
|
|
110
178
|
...(headings.format === 'legal' ? { isLegalNumberingStyle: true } : {}),
|
|
111
|
-
style: { style: `Heading${String(level + 1)}` },
|
|
179
|
+
...(linkHeadingStyles ? { style: { style: `Heading${String(level + 1)}` } } : {}),
|
|
112
180
|
})),
|
|
113
181
|
});
|
|
114
182
|
}
|
|
@@ -210,13 +278,16 @@ function headingRun(defaults, override) {
|
|
|
210
278
|
export function buildDefaultStyles(options, headings) {
|
|
211
279
|
const defaults = {};
|
|
212
280
|
const run = {};
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
281
|
+
// Les options explicites priment champ par champ sur `layout` (export neuf).
|
|
282
|
+
const family = options.defaultFont?.family ?? options.layout?.defaultFont?.family;
|
|
283
|
+
if (family)
|
|
284
|
+
run.font = sanitizeXmlText(family);
|
|
285
|
+
const sizePt = options.defaultFont?.sizePt ?? options.layout?.defaultFont?.sizePt;
|
|
216
286
|
if (sizePt !== undefined && sizePt > 0)
|
|
217
287
|
run.size = Math.round(sizePt * 2);
|
|
218
|
-
|
|
219
|
-
|
|
288
|
+
const lang = options.lang ?? options.layout?.lang;
|
|
289
|
+
if (lang)
|
|
290
|
+
run.language = { value: sanitizeXmlText(lang) };
|
|
220
291
|
if (Object.keys(run).length > 0)
|
|
221
292
|
defaults.document = { run };
|
|
222
293
|
HEADING_STYLE_KEYS.forEach((key, index) => {
|
|
@@ -237,12 +308,34 @@ export function buildDefaultStyles(options, headings) {
|
|
|
237
308
|
export function pageDimensions(size) {
|
|
238
309
|
return size === 'LETTER' ? { width: 12240, height: 15840 } : { width: 11906, height: 16838 };
|
|
239
310
|
}
|
|
311
|
+
/** Formats nommés du contrat de mise en page (`PageSizeName`), en twips portrait. */
|
|
312
|
+
const NAMED_PAGE_SIZES = {
|
|
313
|
+
A3: { width: 16838, height: 23811 },
|
|
314
|
+
A4: { width: 11906, height: 16838 },
|
|
315
|
+
A5: { width: 8391, height: 11906 },
|
|
316
|
+
Letter: { width: 12240, height: 15840 },
|
|
317
|
+
Legal: { width: 12240, height: 20160 },
|
|
318
|
+
};
|
|
319
|
+
/** `DocumentLayout.page.size` → dimensions portrait en twips, `null` si absent ou invalide. */
|
|
320
|
+
function layoutPageDimensions(size) {
|
|
321
|
+
if (size === undefined)
|
|
322
|
+
return null;
|
|
323
|
+
if (typeof size === 'string')
|
|
324
|
+
return NAMED_PAGE_SIZES[size] ?? null;
|
|
325
|
+
const { widthMm, heightMm } = size;
|
|
326
|
+
if (!Number.isFinite(widthMm) || !Number.isFinite(heightMm) || widthMm <= 0 || heightMm <= 0) {
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
return { width: mmToTwips(widthMm), height: mmToTwips(heightMm) };
|
|
330
|
+
}
|
|
240
331
|
/** Marge de page par défaut (1 pouce), en twips. */
|
|
241
332
|
export const PAGE_MARGIN = 1440;
|
|
242
333
|
/** Millimètres → twips (1 pouce = 25,4 mm = 1440 twips). */
|
|
243
334
|
export function mmToTwips(mm) {
|
|
244
335
|
return Math.round((mm * 1440) / 25.4);
|
|
245
336
|
}
|
|
337
|
+
/** Distance par défaut du bord de page à l'en-tête ou au pied, en twips (1,25 cm). */
|
|
338
|
+
export const HEADER_DISTANCE = 708;
|
|
246
339
|
/** Zone utile minimale laissée par les marges, en twips (1 cm), dans chaque sens. */
|
|
247
340
|
export const MIN_CONTENT_EXTENT = mmToTwips(10);
|
|
248
341
|
/**
|
|
@@ -279,21 +372,31 @@ function clampMargins(first, second, extent, axis, warnings) {
|
|
|
279
372
|
});
|
|
280
373
|
return [Math.floor(first * scale), Math.floor(second * scale)];
|
|
281
374
|
}
|
|
375
|
+
/** Distance d'en-tête ou de pied en twips depuis `layout.page.margins`, défaut si absente ou invalide. */
|
|
376
|
+
function distanceTwips(mm) {
|
|
377
|
+
if (mm === undefined || !Number.isFinite(mm) || mm < 0)
|
|
378
|
+
return HEADER_DISTANCE;
|
|
379
|
+
return mmToTwips(mm);
|
|
380
|
+
}
|
|
282
381
|
/**
|
|
283
|
-
* `options.page` (et `pageSize` en repli)
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
382
|
+
* `options.page` (et `pageSize` en repli), complété champ par champ par `options.layout`
|
|
383
|
+
* (contrat `DocumentLayout`, en général celui de l'import) → mise en page. En paysage, la
|
|
384
|
+
* largeur utile est celle du grand côté : `docx` inverse `w:w`/`w:h` quand
|
|
385
|
+
* `w:orient="landscape"`, on lui donne donc toujours les dimensions portrait. Les marges
|
|
386
|
+
* invalides ou qui ne laissent pas 1 cm utile sont corrigées et signalées dans `warnings`.
|
|
287
387
|
*/
|
|
288
388
|
export function resolvePageLayout(options, warnings = []) {
|
|
389
|
+
const page = options.layout?.page;
|
|
289
390
|
const size = options.page?.size ?? options.pageSize ?? 'A4';
|
|
290
|
-
const
|
|
291
|
-
const
|
|
391
|
+
const fromLayout = options.page?.size || options.pageSize ? null : layoutPageDimensions(page?.size);
|
|
392
|
+
const orientation = options.page?.orientation ?? page?.orientation ?? 'portrait';
|
|
393
|
+
const { width, height } = fromLayout ?? pageDimensions(size);
|
|
292
394
|
const horizontal = orientation === 'landscape' ? height : width;
|
|
293
395
|
const vertical = orientation === 'landscape' ? width : height;
|
|
294
396
|
const requested = options.page?.margins;
|
|
295
|
-
const
|
|
296
|
-
const [
|
|
397
|
+
const layoutMargins = page?.margins;
|
|
398
|
+
const [left, right] = clampMargins(marginTwips('left', requested?.left ?? layoutMargins?.leftMm, warnings), marginTwips('right', requested?.right ?? layoutMargins?.rightMm, warnings), horizontal, 'gauche + droite', warnings);
|
|
399
|
+
const [top, bottom] = clampMargins(marginTwips('top', requested?.top ?? layoutMargins?.topMm, warnings), marginTwips('bottom', requested?.bottom ?? layoutMargins?.bottomMm, warnings), vertical, 'haut + bas', warnings);
|
|
297
400
|
const margins = { top, right, bottom, left };
|
|
298
401
|
const usable = horizontal - margins.left - margins.right;
|
|
299
402
|
return {
|
|
@@ -302,6 +405,8 @@ export function resolvePageLayout(options, warnings = []) {
|
|
|
302
405
|
width,
|
|
303
406
|
height,
|
|
304
407
|
margins,
|
|
408
|
+
headerDistance: distanceTwips(layoutMargins?.headerMm),
|
|
409
|
+
footerDistance: distanceTwips(layoutMargins?.footerMm),
|
|
305
410
|
contentWidthPx: Math.max(1, Math.floor((usable / 1440) * 96)),
|
|
306
411
|
};
|
|
307
412
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/export/styles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/export/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/export/tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/export/tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAQT,KAAK,EAEN,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAgBvE,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,iFAAiF;AACjF,eAAO,MAAM,YAAY,QAAS,CAAC;AAmBnC,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,CAC9B,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAqU1B;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,KAAK,CAAC,CA+DhB"}
|
package/dist/export/tables.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { warn } from './context';
|
|
2
|
-
import { parsePixels, parseStyle } from './css';
|
|
1
|
+
import { resolveDocxStyle, warn } from './context';
|
|
2
|
+
import { CSS_BORDER_SIDES, parseBorders, parseColor, parsePadding, parsePixels, parsePoints, parseStyle, pointsToTwips, } from './css';
|
|
3
3
|
import { childElements, positiveIntAttribute, tagOf } from './dom';
|
|
4
|
+
import { DOCX_STYLE_ATTRIBUTE, borderOptions } from './styles';
|
|
4
5
|
/** Nombre maximal de colonnes d'une table Word : plafond de `colspan` et de `<col span>`. */
|
|
5
6
|
export const MAX_TABLE_COLUMNS = 63;
|
|
6
7
|
/** Nombre maximal de lignes qu'une fusion verticale peut couvrir (`rowspan`). */
|
|
@@ -134,21 +135,77 @@ function analyzeGrid(table, rows, ctx) {
|
|
|
134
135
|
* table déborderait de la zone de texte. `null` si une colonne au moins est inconnue :
|
|
135
136
|
* la table reste alors à 100 % et seules les cellules connues portent une largeur.
|
|
136
137
|
*/
|
|
137
|
-
function columnWidthsTwips(columns, ctx) {
|
|
138
|
+
function columnWidthsTwips(columns, ctx, fitToPage) {
|
|
138
139
|
if (columns.length === 0 || columns.some((width) => width === null))
|
|
139
140
|
return null;
|
|
140
141
|
const px = columns.map((width) => width ?? 0);
|
|
141
142
|
const total = px.reduce((sum, width) => sum + width, 0);
|
|
142
|
-
const scale = total > ctx.maxImageWidth ? ctx.maxImageWidth / total : 1;
|
|
143
|
+
const scale = fitToPage && total > ctx.maxImageWidth ? ctx.maxImageWidth / total : 1;
|
|
143
144
|
return px.map((width) => Math.max(1, Math.round(width * scale * TWIPS_PER_PX)));
|
|
144
145
|
}
|
|
146
|
+
/** Bordure Word explicitement absente (`w:val="nil"`). */
|
|
147
|
+
const NO_BORDER = { style: 'nil' };
|
|
148
|
+
/** Bordure de cellule ou de tableau : CSS → `docx`, `nil` pour un côté déclaré sans trait. */
|
|
149
|
+
function tableBorder(border, side) {
|
|
150
|
+
return border ? borderOptions(border, side) : NO_BORDER;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Propriétés de cellule du contrat (`CellLayoutAttrs`, en `style` inline) : bordures par
|
|
154
|
+
* côté (`w:tcBorders`), fond (`w:shd`), alignement vertical (`w:vAlign`), marges internes
|
|
155
|
+
* (`w:tcMar`, `padding` en points). En mode explicite (tableau venu de l'import), le HTML
|
|
156
|
+
* fait foi : un côté intérieur non déclaré est écrit `nil`, pour qu'un style de tableau du
|
|
157
|
+
* gabarit ne le redessine pas ; les bords extérieurs restent ceux du tableau.
|
|
158
|
+
*/
|
|
159
|
+
function cellLayout(cell, ctx, explicit, edges) {
|
|
160
|
+
const style = parseStyle(cell.getAttribute('style'));
|
|
161
|
+
const result = {};
|
|
162
|
+
const borders = {};
|
|
163
|
+
const declared = parseBorders(style);
|
|
164
|
+
for (const side of CSS_BORDER_SIDES) {
|
|
165
|
+
const border = declared.get(side);
|
|
166
|
+
if (border !== undefined)
|
|
167
|
+
borders[side] = tableBorder(border, side);
|
|
168
|
+
else if (explicit && !edges[side])
|
|
169
|
+
borders[side] = NO_BORDER;
|
|
170
|
+
}
|
|
171
|
+
if (Object.keys(borders).length > 0)
|
|
172
|
+
result.borders = borders;
|
|
173
|
+
const shading = parseColor(style.get('background-color'));
|
|
174
|
+
if (shading)
|
|
175
|
+
result.shading = { fill: shading, type: 'clear', color: 'auto' };
|
|
176
|
+
switch (style.get('vertical-align')?.trim().toLowerCase()) {
|
|
177
|
+
case 'top':
|
|
178
|
+
result.verticalAlign = ctx.docx.VerticalAlignTable.TOP;
|
|
179
|
+
break;
|
|
180
|
+
case 'middle':
|
|
181
|
+
result.verticalAlign = ctx.docx.VerticalAlignTable.CENTER;
|
|
182
|
+
break;
|
|
183
|
+
case 'bottom':
|
|
184
|
+
result.verticalAlign = ctx.docx.VerticalAlignTable.BOTTOM;
|
|
185
|
+
break;
|
|
186
|
+
default:
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
const padding = parsePadding(style.get('padding'));
|
|
190
|
+
if (padding) {
|
|
191
|
+
const [top, right, bottom, left] = padding;
|
|
192
|
+
result.margins = {
|
|
193
|
+
marginUnitType: ctx.docx.WidthType.DXA,
|
|
194
|
+
top: pointsToTwips(top),
|
|
195
|
+
right: pointsToTwips(right),
|
|
196
|
+
bottom: pointsToTwips(bottom),
|
|
197
|
+
left: pointsToTwips(left),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
145
202
|
/**
|
|
146
203
|
* `<td>`/`<th>` → `TableCell`. Les en-têtes sont en gras, `colspan`/`rowspan` deviennent
|
|
147
204
|
* `columnSpan`/`rowSpan` (docx génère lui-même les cellules de continuation verticale).
|
|
148
205
|
* Une cellule contient toujours au moins un paragraphe, exigence de Word. La largeur
|
|
149
206
|
* (DXA) est la somme des colonnes couvertes quand elles sont connues.
|
|
150
207
|
*/
|
|
151
|
-
async function convertCell(cell, position, width, scope, ctx, convert) {
|
|
208
|
+
async function convertCell(cell, position, width, scope, ctx, convert, explicit, edges) {
|
|
152
209
|
const header = tagOf(cell) === 'th';
|
|
153
210
|
const cellScope = {
|
|
154
211
|
quote: false,
|
|
@@ -167,9 +224,53 @@ async function convertCell(cell, position, width, scope, ctx, convert) {
|
|
|
167
224
|
...(columnSpan > 1 ? { columnSpan } : {}),
|
|
168
225
|
...(rowSpan > 1 ? { rowSpan } : {}),
|
|
169
226
|
...(width !== null ? { width: { size: width, type: ctx.docx.WidthType.DXA } } : {}),
|
|
227
|
+
...cellLayout(cell, ctx, explicit, edges),
|
|
170
228
|
};
|
|
171
229
|
return new ctx.docx.TableCell(options);
|
|
172
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Largeur déclarée du tableau (`TableLayoutAttrs.width` : `100%` ou `450pt`), `null` sans
|
|
233
|
+
* déclaration lisible.
|
|
234
|
+
*/
|
|
235
|
+
function declaredTableWidth(style, ctx) {
|
|
236
|
+
const raw = style.get('width')?.trim();
|
|
237
|
+
if (!raw)
|
|
238
|
+
return null;
|
|
239
|
+
const percent = /^([\d.]+)%$/.exec(raw);
|
|
240
|
+
if (percent) {
|
|
241
|
+
const value = Number(percent[1]);
|
|
242
|
+
return Number.isFinite(value) && value > 0
|
|
243
|
+
? { size: Math.min(100, value), type: ctx.docx.WidthType.PERCENTAGE }
|
|
244
|
+
: null;
|
|
245
|
+
}
|
|
246
|
+
const points = parsePoints(raw);
|
|
247
|
+
return points !== null && points > 0
|
|
248
|
+
? { size: pointsToTwips(points), type: ctx.docx.WidthType.DXA }
|
|
249
|
+
: null;
|
|
250
|
+
}
|
|
251
|
+
/** Vrai si un `<td>`/`<th>` du tableau déclare une bordure dans son `style`. */
|
|
252
|
+
function anyCellDeclaresBorders(rows) {
|
|
253
|
+
return rows.some(({ cells }) => cells.some((cell) => parseBorders(parseStyle(cell.getAttribute('style'))).size > 0));
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Bordures du tableau. Un tableau qui vient de l'éditeur sans aucune bordure déclarée
|
|
257
|
+
* garde le quadrillage simple de `docx` (lisible dans Word). Dès qu'une bordure est
|
|
258
|
+
* déclarée (sur `<table>` ou une cellule) ou qu'un style Word est référencé, le contrat
|
|
259
|
+
* fait foi : côtés extérieurs tels que déclarés, `nil` sinon, et aucun trait intérieur au
|
|
260
|
+
* niveau du tableau (les cellules portent les leurs).
|
|
261
|
+
*/
|
|
262
|
+
function tableBorders(style, explicit) {
|
|
263
|
+
const declared = parseBorders(style);
|
|
264
|
+
if (!explicit && declared.size === 0)
|
|
265
|
+
return undefined;
|
|
266
|
+
const borders = {
|
|
267
|
+
insideHorizontal: NO_BORDER,
|
|
268
|
+
insideVertical: NO_BORDER,
|
|
269
|
+
};
|
|
270
|
+
for (const side of CSS_BORDER_SIDES)
|
|
271
|
+
borders[side] = tableBorder(declared.get(side) ?? null, side);
|
|
272
|
+
return borders;
|
|
273
|
+
}
|
|
173
274
|
/** Largeur en twips d'une cellule à partir des colonnes qu'elle couvre, `null` si l'une est inconnue. */
|
|
174
275
|
function cellWidthTwips(position, columns, twips, ctx) {
|
|
175
276
|
if (!position)
|
|
@@ -195,14 +296,27 @@ export async function convertTable(table, scope, ctx, convert) {
|
|
|
195
296
|
const { Table, TableLayoutType, TableRow, WidthType } = ctx.docx;
|
|
196
297
|
const rowInfos = collectRows(table);
|
|
197
298
|
const grid = analyzeGrid(table, rowInfos, ctx);
|
|
198
|
-
const
|
|
299
|
+
const style = parseStyle(table.getAttribute('style'));
|
|
300
|
+
const tableStyle = resolveDocxStyle(ctx, table.getAttribute(DOCX_STYLE_ATTRIBUTE), 'tableau');
|
|
301
|
+
const declaredWidth = declaredTableWidth(style, ctx);
|
|
302
|
+
// Une largeur déclarée vient du document (contrat) : sa grille est reprise telle quelle.
|
|
303
|
+
const twips = columnWidthsTwips(grid.columns, ctx, declaredWidth === null);
|
|
304
|
+
const explicit = tableStyle !== null || parseBorders(style).size > 0 || anyCellDeclaresBorders(rowInfos);
|
|
305
|
+
const borders = tableBorders(style, explicit);
|
|
199
306
|
const rows = [];
|
|
200
|
-
for (const { header, cells: cellElements } of rowInfos) {
|
|
307
|
+
for (const [rowIndex, { header, cells: cellElements }] of rowInfos.entries()) {
|
|
201
308
|
const cells = [];
|
|
202
309
|
for (const cell of cellElements) {
|
|
203
310
|
const position = grid.positions.get(cell);
|
|
204
311
|
const width = cellWidthTwips(position, grid.columns, twips, ctx);
|
|
205
|
-
|
|
312
|
+
const rowSpan = positiveIntAttribute(cell, 'rowspan', MAX_ROW_SPAN) ?? 1;
|
|
313
|
+
const edges = {
|
|
314
|
+
top: rowIndex === 0,
|
|
315
|
+
bottom: rowIndex + rowSpan >= rowInfos.length,
|
|
316
|
+
left: (position?.column ?? 0) === 0,
|
|
317
|
+
right: position === undefined || position.column + position.span >= grid.columns.length,
|
|
318
|
+
};
|
|
319
|
+
cells.push(await convertCell(cell, position, width, scope, ctx, convert, explicit, edges));
|
|
206
320
|
}
|
|
207
321
|
// `tableHeader` seulement quand vrai : mammoth lit la présence de `w:tblHeader`, pas sa valeur.
|
|
208
322
|
const isHeader = header || isAllHeaderCells(cellElements);
|
|
@@ -215,14 +329,28 @@ export async function convertTable(table, scope, ctx, convert) {
|
|
|
215
329
|
],
|
|
216
330
|
}));
|
|
217
331
|
}
|
|
218
|
-
|
|
332
|
+
// Largeur déclarée d'abord ; en mode explicite sans déclaration, `auto` (le tableau
|
|
333
|
+
// d'origine n'en avait pas) ; sinon la grille connue (disposition fixe) ou 100 %.
|
|
334
|
+
const fallbackWidth = explicit
|
|
335
|
+
? { size: 0, type: WidthType.AUTO }
|
|
336
|
+
: null;
|
|
337
|
+
const sized = twips
|
|
219
338
|
? {
|
|
220
339
|
rows,
|
|
221
|
-
width:
|
|
340
|
+
width: declaredWidth ??
|
|
341
|
+
fallbackWidth ?? {
|
|
342
|
+
size: twips.reduce((sum, width) => sum + width, 0),
|
|
343
|
+
type: WidthType.DXA,
|
|
344
|
+
},
|
|
222
345
|
columnWidths: twips,
|
|
223
|
-
layout: TableLayoutType.FIXED,
|
|
346
|
+
...(declaredWidth || fallbackWidth ? {} : { layout: TableLayoutType.FIXED }),
|
|
224
347
|
}
|
|
225
|
-
: { rows, width: { size: 100, type: WidthType.PERCENTAGE } };
|
|
348
|
+
: { rows, width: declaredWidth ?? fallbackWidth ?? { size: 100, type: WidthType.PERCENTAGE } };
|
|
349
|
+
const options = {
|
|
350
|
+
...sized,
|
|
351
|
+
...(tableStyle ? { style: tableStyle } : {}),
|
|
352
|
+
...(borders ? { borders } : {}),
|
|
353
|
+
};
|
|
226
354
|
return new Table(options);
|
|
227
355
|
}
|
|
228
356
|
//# sourceMappingURL=tables.js.map
|