@pptx-studio/model 0.2.1 → 0.4.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/CHANGELOG.md +32 -0
- package/NOTICE +13 -3
- package/README.md +55 -6
- package/dist/index.d.ts +168 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +930 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @pptx-studio/model
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 7d2c88e: A table cell's fill, borders and text now come from its style the way PowerPoint draws them.
|
|
8
|
+
`tablePartsAt` names the parts that reach a grid position, and `TABLE_PART_ORDER` is the order they
|
|
9
|
+
compose in. `tableCellFill`, `tableBackground` and `tableEdgeLine` resolve one property each and
|
|
10
|
+
name where it came from: a part, `tblBg`, `a:tcPr`, `a:tblPr` or the default grid. Merged cells and
|
|
11
|
+
the owner of every edge segment follow what PowerPoint drew. `tableTextLayer` gives the style's
|
|
12
|
+
bold, italic, faces and colour as run properties for the text cascade. `DEFAULT_GRID_LINE` is the 1-pt black line a table with no
|
|
13
|
+
built-in style draws. `TextContext.cell` puts a cell's list style and its style's text layer into
|
|
14
|
+
the text cascade, and `Origin` gains `cell` and `tableStyle`. A position or edge a table does not
|
|
15
|
+
have throws the new `MODEL_TABLE_POSITION`.
|
|
16
|
+
|
|
17
|
+
validate adds `V034`, a warning on a table cell that writes a border PowerPoint draws from the cell
|
|
18
|
+
across the edge instead, where that cell writes none or a different one.
|
|
19
|
+
|
|
20
|
+
## 0.3.0
|
|
21
|
+
|
|
22
|
+
### Minor Changes
|
|
23
|
+
|
|
24
|
+
- ae2e566: A table's style is the one PowerPoint draws. `BUILTIN_TABLE_STYLES` is PowerPoint's own Table
|
|
25
|
+
Styles gallery: 74 styles, each with its GUID, its name and the `a:tblStyle` PowerPoint writes for
|
|
26
|
+
it. `tableStyleOf(table)` returns the built-in a table's GUID names, in any case, or `null` for
|
|
27
|
+
PowerPoint's default 1-pt black grid; nothing in `ppt/tableStyles.xml` changes which. `builtinTableStyle`
|
|
28
|
+
and `parseTableStyle` read a `CT_TableStyle` into its thirteen parts. An inline `TableStyleRef` now
|
|
29
|
+
carries its `id`, a style GUID without braces or with padding throws `MODEL_TABLE_ATTR`, and
|
|
30
|
+
`MODEL_ERROR_CODES` lists every code, including the new `MODEL_TABLE_STYLE`.
|
|
31
|
+
|
|
32
|
+
validate adds `V032`, a warning on a table that names no built-in style, and `V033`, refusing the
|
|
33
|
+
table-style forms PowerPoint repairs.
|
|
34
|
+
|
|
3
35
|
## 0.2.1
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
package/NOTICE
CHANGED
|
@@ -27,14 +27,24 @@ Entries are added here at the moment the material lands, not at release time.
|
|
|
27
27
|
presetShapeDefinitions.xml, 538970 bytes
|
|
28
28
|
sha256 4a762444d8d85876881c02a5b1dedf6f73006fcd8acb7b4e393435615b37c780
|
|
29
29
|
|
|
30
|
+
* Microsoft PowerPoint output
|
|
31
|
+
Written by Microsoft PowerPoint, driven by this project's own scripts.
|
|
32
|
+
|
|
33
|
+
@pptx-studio/model contains PowerPoint's 74 built-in table styles: each is
|
|
34
|
+
the a:tblStyle element PowerPoint writes into ppt/tableStyles.xml, byte for
|
|
35
|
+
byte, enumerated through PowerPoint's Table Styles gallery and saved by
|
|
36
|
+
PowerPoint (LEGAL.md, ADR 0063). corpus/ground-truth/table-styles.json holds
|
|
37
|
+
the same 74.
|
|
38
|
+
|
|
39
|
+
The decks in corpus/authored are PowerPoint Blank Presentations, so each
|
|
40
|
+
carries the Microsoft-generated ppt/theme/theme1.xml and default layouts
|
|
41
|
+
PowerPoint writes into a new deck (ADR 0009).
|
|
42
|
+
|
|
30
43
|
--------------------------------------------------------------------------------
|
|
31
44
|
Attributions the plan commits us to, listed so the obligation is visible before
|
|
32
45
|
the code arrives
|
|
33
46
|
--------------------------------------------------------------------------------
|
|
34
47
|
|
|
35
|
-
* Pattern fill tiles (sub-phase 2.7) are generated from Mono libgdiplus.
|
|
36
|
-
libgdiplus - Copyright Novell, Inc. and contributors - MIT
|
|
37
|
-
|
|
38
48
|
* Metric-compatible substitute fonts ship in a separate package,
|
|
39
49
|
@pptx-studio/fonts-metric-compat, under SIL OFL 1.1 with its own
|
|
40
50
|
OFL.txt and reserved-font-name handling. They are deliberately kept out
|
package/README.md
CHANGED
|
@@ -171,15 +171,59 @@ built to disagree with themselves:
|
|
|
171
171
|
a column is never narrower than its cells' side margins plus 2 pt; and the frame's `a:ext` says
|
|
172
172
|
nothing about the drawn size, which is the grid's sums (76/76 against 62/76).
|
|
173
173
|
|
|
174
|
-
Cell text is a `TextBody` like any other.
|
|
175
|
-
|
|
174
|
+
Cell text is a `TextBody` like any other.
|
|
175
|
+
|
|
176
|
+
## A table draws the built-in its GUID names, or none
|
|
177
|
+
|
|
178
|
+
`BUILTIN_TABLE_STYLES` is PowerPoint's own Table Styles gallery: the 74 styles, in gallery order,
|
|
179
|
+
each with its GUID, its name and the `a:tblStyle` PowerPoint writes for it, byte for byte. They were
|
|
180
|
+
enumerated by driving the gallery itself and read back as PowerPoint serialised them (C8,
|
|
181
|
+
`corpus/ground-truth/table-styles.json`); nothing was transcribed from another implementation.
|
|
182
|
+
|
|
183
|
+
`tableStyleOf(table)` is the style PowerPoint draws a table with, and C8 found one rule for it
|
|
184
|
+
across 84 packages in three themes:
|
|
185
|
+
|
|
186
|
+
- The `a:tableStyleId` - or an inline `a:tableStyle`'s `@styleId` - names one of the 74, in any
|
|
187
|
+
case, and that built-in is drawn (230/230 across every style in two themes).
|
|
188
|
+
- Nothing in `ppt/tableStyles.xml` changes the drawing: a redefined built-in draws PowerPoint's own
|
|
189
|
+
(7/7), a custom style defined there draws nothing of itself, and `@def` is never applied.
|
|
190
|
+
- Any other id, or none, returns `null`: PowerPoint draws a 1-pt black grid with no fill, whatever
|
|
191
|
+
the theme (3/3 against the theme's `dk1` and `tx1`).
|
|
192
|
+
|
|
193
|
+
`builtinTableStyle(id)` parses one of the 74 afresh; `parseTableStyle` reads any `CT_TableStyle`,
|
|
194
|
+
defaulting nothing the file did not say. A GUID without braces or with padding, an edge with neither
|
|
195
|
+
`a:ln` nor `a:lnRef`, and an empty `a:fill` throw: PowerPoint repairs each.
|
|
196
|
+
|
|
197
|
+
## The thirteen parts compose in schema order, property by property
|
|
198
|
+
|
|
199
|
+
Which part of a style reaches a cell, and which wins, was measured in C9 on 10,480 slides of every
|
|
200
|
+
built-in in three themes (`corpus/ground-truth/table-cascade*.json`), against what PowerPoint's
|
|
201
|
+
object model reported for each cell and what it drew at 4 px a point:
|
|
202
|
+
|
|
203
|
+
- `tablePartsAt(props, rows, cols, row, col)` is ECMA-376's reading: the end rows and columns where
|
|
204
|
+
their flags are on, bands counted past a first row or column, a corner where both of its ends
|
|
205
|
+
apply. `TABLE_PART_ORDER` is the schema's order, `wholeTbl` lowest and `nwCell` highest, and it
|
|
206
|
+
is the order they compose in for fills, text and edges alike.
|
|
207
|
+
- Every property is found on its own: the highest part that states a fill, a colour, bold or
|
|
208
|
+
italic wins it, whatever that part leaves unsaid.
|
|
209
|
+
- `tableCellFill`: the cell's own `a:tcPr` fill, else the style's. `tableBackground`: `a:tblPr`'s
|
|
210
|
+
fill in place of the style's `tblBg`, painted under the cells.
|
|
211
|
+
- `tableEdgeLine`: an edge's owner writes the line it draws, replacing the style's whole; a line no
|
|
212
|
+
owner writes is the highest part's claim on that edge. The cell above or left owns a segment where
|
|
213
|
+
its anchor is level with it, in the anchor's column or row; else the cell below or right, where
|
|
214
|
+
its anchor is; else the cell above or left. An unmerged cell is always level. A table that
|
|
215
|
+
resolves to no style draws `DEFAULT_GRID_LINE`, 1 pt black.
|
|
216
|
+
- A merged cell takes its anchor's parts and every covered position's end and corner parts; its
|
|
217
|
+
bands are the anchor's. A covered cell's `a:tcPr` is never read.
|
|
218
|
+
- `tableTextLayer` is what the style gives a cell's text, and the text cascade reads it between the
|
|
219
|
+
cell's own list style and the master's `p:otherStyle`; `p:defaultTextStyle` is never read, and
|
|
220
|
+
under a master with no `p:txStyles` a cell takes the built-in `other` style whatever its frame.
|
|
221
|
+
- A position or edge the table does not have throws `MODEL_TABLE_POSITION`.
|
|
176
222
|
|
|
177
223
|
## What is not here
|
|
178
224
|
|
|
179
225
|
- Nothing is painted. The renderers are 2.10.
|
|
180
|
-
-
|
|
181
|
-
cascade can produce, so 3.1 adds cases rather than widening a type every consumer has switched on.
|
|
182
|
-
- Table styles, their cascade and their drawing are 4.2 to 4.4; SmartArt is 4.5.
|
|
226
|
+
- Table drawing and editing are 4.4; SmartArt is 4.5.
|
|
183
227
|
- Commands, undo and history are Phase 5; Change Layout is 7.4. What PowerPoint rewrites when a
|
|
184
228
|
layout changes is recorded in the fixture and not acted on.
|
|
185
229
|
- `a:effectDag` is not modelled — a directed graph of effect primitives PowerPoint has never been
|
|
@@ -190,6 +234,9 @@ thirteen-part cascade is 4.3; drawing the grid is 4.4.
|
|
|
190
234
|
|
|
191
235
|
`corpus/ground-truth/sheets.json` — 114 probes in 37 packages, sub-phase 2.9.
|
|
192
236
|
`corpus/ground-truth/tables.json` — 82 tables, one package each, and 21 slides PowerPoint authored, sub-phase 4.1.
|
|
237
|
+
`corpus/ground-truth/table-styles.json` — the 74 built-in table styles and 84 probe packages, sub-phase 4.2.
|
|
238
|
+
`corpus/ground-truth/table-cascade.json` and its five `table-cascade-*.json` siblings — 250 packages of
|
|
239
|
+
tables in three themes, every cell and edge PowerPoint reported and drew, sub-phase 4.3.
|
|
193
240
|
|
|
194
241
|
The measurement is a **position**, and PowerPoint reports it directly. C3 and C4 sampled bitmaps
|
|
195
242
|
because a fill and a stroke are pictures; an inheritance is not. A placeholder with no `a:xfrm` of
|
|
@@ -205,4 +252,6 @@ against a summary of them, so a rule that drifts fails on the measurements.
|
|
|
205
252
|
|
|
206
253
|
See `docs/adr/phase-0-foundation/0007-ground-truth.md`, `docs/adr/phase-2-geometry-and-paint/0021-colour.md`, `docs/adr/phase-2-geometry-and-paint/0022-fills.md`,
|
|
207
254
|
`docs/adr/phase-2-geometry-and-paint/0023-lines.md`, `docs/adr/phase-2-geometry-and-paint/0024-model-parse-and-resolve.md`
|
|
208
|
-
|
|
255
|
+
`docs/adr/phase-4-tables-and-smartart/0056-the-spans-are-the-merge.md`,
|
|
256
|
+
`docs/adr/phase-4-tables-and-smartart/0063-a-table-draws-the-built-in-its-guid-names.md` and
|
|
257
|
+
`docs/adr/phase-4-tables-and-smartart/0064-the-parts-compose-in-schema-order.md`.
|
package/dist/index.d.ts
CHANGED
|
@@ -69,7 +69,11 @@ type ModelErrorCode =
|
|
|
69
69
|
/** A paragraph level that is not an integer. */
|
|
70
70
|
'MODEL_TEXT_LEVEL' | 'MODEL_TEXT_TYPEFACE' |
|
|
71
71
|
/** A table attribute missing where the schema requires it, or not of the type it names. */
|
|
72
|
-
'MODEL_TABLE_ATTR' |
|
|
72
|
+
'MODEL_TABLE_ATTR' |
|
|
73
|
+
/** A table-style edge with neither `a:ln` nor `a:lnRef`, or an `a:fill` holding no fill. */
|
|
74
|
+
'MODEL_TABLE_STYLE' |
|
|
75
|
+
/** A grid position or grid edge asked of a table that has no such position or edge. */
|
|
76
|
+
'MODEL_TABLE_POSITION' | 'BLIP_NO_EMBED' | 'BLIP_DUOTONE' | 'BLIP_CLR_CHANGE' | 'BLIP_TILE_ALIGN' | 'BLIP_TILE_FLIP';
|
|
73
77
|
export declare class ModelError extends Error {
|
|
74
78
|
readonly name = "ModelError";
|
|
75
79
|
readonly code: ModelErrorCode;
|
|
@@ -80,7 +84,7 @@ export declare class ModelError extends Error {
|
|
|
80
84
|
constructor(code: ModelErrorCode, message: string, partName?: string | null, detail?: string | null);
|
|
81
85
|
}
|
|
82
86
|
export declare function isModelError(value: unknown): value is ModelError;
|
|
83
|
-
export declare const MODEL_ERROR_CODES: readonly
|
|
87
|
+
export declare const MODEL_ERROR_CODES: readonly ["MODEL_PART_MISSING", "MODEL_PART_KIND", "MODEL_NO_PRESENTATION", "MODEL_NO_PARENT", "MODEL_NO_THEME", "MODEL_CLRMAP_INCOMPLETE", "MODEL_CLRMAP_SLOT", "MODEL_PLACEHOLDER_IDX", "MODEL_XFRM_NUMBER", "MODEL_GEOMETRY", "MODEL_STYLE_IDX", "MODEL_FONT_COLLECTION", "MODEL_NO_STYLE_MATRIX", "MODEL_STYLE_LIST_EMPTY", "MODEL_SHEET_CYCLE", "MODEL_FOREIGN_SHEET", "MODEL_TEXT_ATTR", "MODEL_TEXT_FIELD", "MODEL_TEXT_LEVEL", "MODEL_TEXT_BULLET", "MODEL_TEXT_TYPEFACE", "MODEL_TABLE_ATTR", "MODEL_TABLE_STYLE", "MODEL_TABLE_POSITION", "BLIP_NO_EMBED", "BLIP_DUOTONE", "BLIP_CLR_CHANGE", "BLIP_TILE_ALIGN", "BLIP_TILE_FLIP"];
|
|
84
88
|
//#endregion
|
|
85
89
|
//#region src/parse/geometry.d.ts
|
|
86
90
|
/**
|
|
@@ -471,12 +475,13 @@ interface TableProps {
|
|
|
471
475
|
readonly style: TableStyleRef | undefined;
|
|
472
476
|
readonly node: XElement;
|
|
473
477
|
}
|
|
474
|
-
/** `a:tableStyleId`,
|
|
478
|
+
/** `a:tableStyleId`, or an inline `a:tableStyle`, which PowerPoint resolves by its `@styleId` alone. */
|
|
475
479
|
type TableStyleRef = {
|
|
476
480
|
readonly kind: 'id';
|
|
477
481
|
readonly id: string;
|
|
478
482
|
} | {
|
|
479
483
|
readonly kind: 'inline';
|
|
484
|
+
readonly id: string;
|
|
480
485
|
readonly node: XElement;
|
|
481
486
|
};
|
|
482
487
|
/** `a:gridCol`. */
|
|
@@ -560,6 +565,73 @@ interface TableGrid {
|
|
|
560
565
|
* column, a claimed position is covered whatever it says, a span stops at the edge or a claim.
|
|
561
566
|
*/
|
|
562
567
|
export declare function tableGrid(table: Table): TableGrid;
|
|
568
|
+
/** `ST_OnOffStyleType`. */
|
|
569
|
+
type OnOffStyle = 'on' | 'off' | 'def';
|
|
570
|
+
/** A value written out, or a reference into the theme: the `EG_Themeable*` choices. */
|
|
571
|
+
type Themeable<T, Ref = StyleRef> = {
|
|
572
|
+
readonly kind: 'value';
|
|
573
|
+
readonly value: T;
|
|
574
|
+
} | {
|
|
575
|
+
readonly kind: 'ref';
|
|
576
|
+
readonly ref: Ref;
|
|
577
|
+
};
|
|
578
|
+
/** `a:tcTxStyle`. */
|
|
579
|
+
interface TableStyleText {
|
|
580
|
+
readonly b: OnOffStyle | undefined;
|
|
581
|
+
readonly i: OnOffStyle | undefined;
|
|
582
|
+
readonly font: Themeable<FontCollection, FontRef> | undefined;
|
|
583
|
+
readonly color: Color | undefined;
|
|
584
|
+
}
|
|
585
|
+
/** `a:tcBdr`; `tl2br` and `tr2bl` take the names `TableCellBorders` gives the diagonals. */
|
|
586
|
+
interface TableStyleBorders {
|
|
587
|
+
readonly left: Themeable<Line> | undefined;
|
|
588
|
+
readonly right: Themeable<Line> | undefined;
|
|
589
|
+
readonly top: Themeable<Line> | undefined;
|
|
590
|
+
readonly bottom: Themeable<Line> | undefined;
|
|
591
|
+
readonly insideH: Themeable<Line> | undefined;
|
|
592
|
+
readonly insideV: Themeable<Line> | undefined;
|
|
593
|
+
readonly tlToBr: Themeable<Line> | undefined;
|
|
594
|
+
readonly blToTr: Themeable<Line> | undefined;
|
|
595
|
+
}
|
|
596
|
+
/** `a:tcStyle`. */
|
|
597
|
+
interface TableStyleCell {
|
|
598
|
+
readonly borders: TableStyleBorders | undefined;
|
|
599
|
+
readonly fill: Themeable<Fill> | undefined;
|
|
600
|
+
/** `a:cell3D`, kept as written. */
|
|
601
|
+
readonly cell3D: XElement | undefined;
|
|
602
|
+
}
|
|
603
|
+
/** One of a style's thirteen parts. */
|
|
604
|
+
interface TableStylePart {
|
|
605
|
+
readonly text: TableStyleText | undefined;
|
|
606
|
+
readonly cell: TableStyleCell | undefined;
|
|
607
|
+
}
|
|
608
|
+
/** `a:tblBg`. An `a:effect` holding an `a:effectDag` reads as `undefined`, as `parseEffects` does. */
|
|
609
|
+
interface TableBackground {
|
|
610
|
+
readonly fill: Themeable<Fill> | undefined;
|
|
611
|
+
readonly effect: Themeable<readonly Effect[] | undefined> | undefined;
|
|
612
|
+
}
|
|
613
|
+
/** The thirteen parts in schema order, which is the order they compose in, lowest first (C9). */
|
|
614
|
+
type TableStylePartName = 'wholeTbl' | 'band1H' | 'band2H' | 'band1V' | 'band2V' | 'lastCol' | 'firstCol' | 'lastRow' | 'seCell' | 'swCell' | 'firstRow' | 'neCell' | 'nwCell';
|
|
615
|
+
/** `CT_TableStyle`: an `a:tblStyle`, or an inline `a:tableStyle`. Nothing absent is defaulted. */
|
|
616
|
+
interface TableStyle {
|
|
617
|
+
readonly id: string;
|
|
618
|
+
readonly name: string;
|
|
619
|
+
readonly background: TableBackground | undefined;
|
|
620
|
+
readonly parts: Readonly<Partial<Record<TableStylePartName, TableStylePart>>>;
|
|
621
|
+
readonly node: XElement;
|
|
622
|
+
}
|
|
623
|
+
/** A grid edge: `h` is the top of row `row` at column `col` (`row = rows` is the bottom); `v` the left of column `col`. */
|
|
624
|
+
interface TableEdge {
|
|
625
|
+
readonly axis: 'h' | 'v';
|
|
626
|
+
readonly row: number;
|
|
627
|
+
readonly col: number;
|
|
628
|
+
}
|
|
629
|
+
/** Where a table's format came from: a style part, `tblBg`, a cell's `a:tcPr`, `a:tblPr`, or the default grid. */
|
|
630
|
+
type TableSource = TableStylePartName | 'tblBg' | 'tcPr' | 'tblPr' | 'grid';
|
|
631
|
+
interface TableSourced<T> {
|
|
632
|
+
readonly value: T;
|
|
633
|
+
readonly source: TableSource;
|
|
634
|
+
}
|
|
563
635
|
//#endregion
|
|
564
636
|
//#region src/types.d.ts
|
|
565
637
|
/** `a:off` and `a:ext` together, in EMU, plus the three transform attributes. */
|
|
@@ -805,24 +877,19 @@ interface Sheet {
|
|
|
805
877
|
readonly theme: Theme | null;
|
|
806
878
|
readonly node: XElement;
|
|
807
879
|
}
|
|
808
|
-
/**
|
|
809
|
-
* Where a resolved value came from.
|
|
810
|
-
*
|
|
811
|
-
* 2.9 declared this union in advance, guessing at the members the text cascade
|
|
812
|
-
* would need. 3.1 measured them, and the guess was wrong in one place:
|
|
813
|
-
* `themeObjDefaults` is gone, because `a:objectDefaults/a:spDef/a:lstStyle` is
|
|
814
|
-
* not a source. A package declaring a size there and nowhere else resolves to
|
|
815
|
-
* the built-in default, so the member named a level that never fires - see
|
|
816
|
-
* `corpus/ground-truth/text-cascade.json`.
|
|
817
|
-
*/
|
|
880
|
+
/** Where a resolved value came from: each member is a level the text cascade reads (ADR 0027, 0064). */
|
|
818
881
|
type Origin =
|
|
819
882
|
/** The run's own `a:rPr`. */
|
|
820
883
|
'run' |
|
|
821
884
|
/** The paragraph's `a:pPr`, or its `a:defRPr`. */
|
|
822
885
|
'paragraph' |
|
|
823
886
|
/** The shape itself: its `p:spPr`, or its own `a:lstStyle`. */
|
|
824
|
-
'shape' |
|
|
825
|
-
/**
|
|
887
|
+
'shape' |
|
|
888
|
+
/** A table cell's own `a:txBody/a:lstStyle`. */
|
|
889
|
+
'cell' |
|
|
890
|
+
/** What a table's style, or PowerPoint's default grid, gives a cell's text. */
|
|
891
|
+
'tableStyle' | 'layoutPh' | 'masterPh' |
|
|
892
|
+
/** The master's `p:txStyles`: the bucket a shape's chain selects, `p:otherStyle` for a cell. */
|
|
826
893
|
'txStyles' |
|
|
827
894
|
/** `p:defaultTextStyle`, which only a shape with no bucket reaches. */
|
|
828
895
|
'defaultTextStyle' |
|
|
@@ -1197,7 +1264,7 @@ export declare function parseTextBody(element: XElement, partName: string): Text
|
|
|
1197
1264
|
/** The `p:txBody` of a shape, when it has one. */
|
|
1198
1265
|
export declare function parseTextBodyChild(parent: XElement, partName: string): TextBody | undefined;
|
|
1199
1266
|
//#endregion
|
|
1200
|
-
//#region src/builtin
|
|
1267
|
+
//#region src/builtin/text-styles.d.ts
|
|
1201
1268
|
/**
|
|
1202
1269
|
* PowerPoint's own `p:txStyles`, substituted when a master declares none.
|
|
1203
1270
|
*
|
|
@@ -1265,50 +1332,57 @@ export declare const BUILTIN_TEXT_STYLES: {
|
|
|
1265
1332
|
*/
|
|
1266
1333
|
export declare const TEXT_FLOOR: BuiltinLevel;
|
|
1267
1334
|
//#endregion
|
|
1335
|
+
//#region src/builtin/table-styles.d.ts
|
|
1336
|
+
/**
|
|
1337
|
+
* PowerPoint's 74 built-in table styles, each `a:tblStyle` byte for byte as PowerPoint writes it.
|
|
1338
|
+
* GENERATED by tools/ground-truth/model/tables/styles/write-tables.ts from
|
|
1339
|
+
* corpus/ground-truth/table-styles.json. Do not edit: table.test.ts re-derives it.
|
|
1340
|
+
*/
|
|
1341
|
+
interface BuiltinTableStyle {
|
|
1342
|
+
readonly id: string;
|
|
1343
|
+
readonly name: string;
|
|
1344
|
+
/** The `a:tblStyle` PowerPoint writes into `ppt/tableStyles.xml` for this style. */
|
|
1345
|
+
readonly xml: string;
|
|
1346
|
+
}
|
|
1347
|
+
/** In the order of PowerPoint's Table Styles gallery. */
|
|
1348
|
+
export declare const BUILTIN_TABLE_STYLES: readonly BuiltinTableStyle[];
|
|
1349
|
+
//#endregion
|
|
1268
1350
|
//#region src/resolve/text.d.ts
|
|
1269
1351
|
/** Which `p:txStyles` bucket a placeholder type reads, or `null` for none. */
|
|
1270
1352
|
export declare function bucketOf(type: string): 'title' | 'body' | null;
|
|
1271
1353
|
/**
|
|
1272
|
-
* Everything the cascade needs that is not on the shape.
|
|
1273
|
-
*
|
|
1274
|
-
* `defaultTextStyle` comes from `ppt/presentation.xml` and is therefore a
|
|
1275
|
-
* property of the package rather than of any sheet, which is why it is passed
|
|
1276
|
-
* in rather than walked to. A caller that has a `Document` has it already;
|
|
1277
|
-
* `undefined` means the package declared none, which is a state PowerPoint
|
|
1278
|
-
* distinguishes and this must too.
|
|
1354
|
+
* Everything the cascade needs that is not on the shape. `defaultTextStyle` is the package's, from
|
|
1355
|
+
* `ppt/presentation.xml`; `undefined` is a package that declares none, which PowerPoint tells apart.
|
|
1279
1356
|
*/
|
|
1280
1357
|
interface TextContext {
|
|
1281
1358
|
readonly sheet: Sheet;
|
|
1282
1359
|
readonly shape: Shape;
|
|
1283
1360
|
readonly defaultTextStyle: ListStyle | undefined;
|
|
1361
|
+
/** Set for the text of a table cell, whose walk is its own (C9, ADR 0064). */
|
|
1362
|
+
readonly cell?: TableCellText;
|
|
1284
1363
|
}
|
|
1285
|
-
/**
|
|
1364
|
+
/** A table cell's two levels of its own: its `a:lstStyle`, and what the table's style gives it. */
|
|
1365
|
+
interface TableCellText {
|
|
1366
|
+
readonly lstStyle: ListStyle | undefined;
|
|
1367
|
+
/** `tableTextLayer`'s answer for the cell. */
|
|
1368
|
+
readonly layer: RunProps;
|
|
1369
|
+
}
|
|
1370
|
+
/** One level of the walk: a list style, or run properties at every level, and what to call it. */
|
|
1286
1371
|
interface Level {
|
|
1287
1372
|
readonly style: ListStyle | undefined;
|
|
1373
|
+
readonly run?: RunProps;
|
|
1288
1374
|
readonly origin: Origin;
|
|
1289
1375
|
readonly sheet: Sheet | null;
|
|
1290
1376
|
readonly shape: Shape | null;
|
|
1291
1377
|
}
|
|
1292
1378
|
/**
|
|
1293
|
-
* The list styles a shape reads, nearest first, ending at whichever terminus it
|
|
1294
|
-
* reaches.
|
|
1295
|
-
*
|
|
1296
|
-
* Exported because it *is* the finding: a caller that wants to show the user
|
|
1297
|
-
* where a value could have come from - the inspector's Overrides panel, layout
|
|
1298
|
-
* compatibility scoring - needs the same list the resolver walks, not a second
|
|
1299
|
-
* opinion about it.
|
|
1379
|
+
* The list styles a shape or a table cell reads, nearest first, ending at whichever terminus it
|
|
1380
|
+
* reaches. Exported so a caller that shows where a value could come from walks the same list.
|
|
1300
1381
|
*/
|
|
1301
1382
|
export declare function textLevels(context: TextContext): readonly Level[];
|
|
1302
1383
|
/**
|
|
1303
|
-
* The values left when every level has been asked and none of them said.
|
|
1304
|
-
*
|
|
1305
|
-
* Two quite different things, and which applies turns on one question: does the
|
|
1306
|
-
* master declare `p:txStyles` at all? If it does not, PowerPoint substitutes its
|
|
1307
|
-
* whole built-in set, and a body placeholder is 28 points with a hanging bullet
|
|
1308
|
-
* indent. If it does, there is no per-property backstop underneath it and what
|
|
1309
|
-
* remains is the floor - 18 points, no margin, no indent. Measured as two
|
|
1310
|
-
* separate probes precisely because the two are easy to conflate and differ on
|
|
1311
|
-
* every partially-specified master.
|
|
1384
|
+
* The values left when every level has been asked and none of them said (ADR 0027).
|
|
1385
|
+
* A master with `p:txStyles` leaves `TEXT_FLOOR`; one without substitutes PowerPoint's built-ins.
|
|
1312
1386
|
*/
|
|
1313
1387
|
export declare function floorOf(context: TextContext, level: number): BuiltinLevel;
|
|
1314
1388
|
/**
|
|
@@ -1434,6 +1508,59 @@ export declare function parseBodyPropsChild(parent: XElement, partName: string):
|
|
|
1434
1508
|
export declare function parseTable(element: XElement, part: string): Table;
|
|
1435
1509
|
/** The table of a `p:graphicFrame`, when its `a:graphicData` carries one. */
|
|
1436
1510
|
export declare function parseTableChild(frame: XElement, part: string): Table | undefined;
|
|
1511
|
+
/** An `a:tblStyle` or an inline `a:tableStyle`: `CT_TableStyle`. */
|
|
1512
|
+
export declare function parseTableStyle(element: XElement, part: string): TableStyle;
|
|
1513
|
+
//#endregion
|
|
1514
|
+
//#region src/resolve/table.d.ts
|
|
1515
|
+
/** One of PowerPoint's 74 built-ins by GUID, in any case, parsed afresh; `undefined` for any other. */
|
|
1516
|
+
export declare function builtinTableStyle(id: string): TableStyle | undefined;
|
|
1517
|
+
/**
|
|
1518
|
+
* The built-in style a table is drawn with, or `null` for PowerPoint's default: a 1-pt black
|
|
1519
|
+
* grid and no fill, whatever the theme and whatever the package defines.
|
|
1520
|
+
*/
|
|
1521
|
+
export declare function tableStyleOf(table: Table): TableStyle | null;
|
|
1522
|
+
/** The order the parts compose in, lowest first: C9 on every drawable table (ADR 0064). */
|
|
1523
|
+
export declare const TABLE_PART_ORDER: readonly ["wholeTbl", "band1H", "band2H", "band1V", "band2V", "lastCol", "firstCol", "lastRow", "seCell", "swCell", "firstRow", "neCell", "nwCell"];
|
|
1524
|
+
/**
|
|
1525
|
+
* The parts reaching grid position (row, col), highest first: ECMA-376's reading, which C9 found
|
|
1526
|
+
* alone fits (ADR 0064). Bands skip the rows and columns their end flags take, and a corner part
|
|
1527
|
+
* needs both of its flags.
|
|
1528
|
+
*/
|
|
1529
|
+
export declare function tablePartsAt(props: TableProps | undefined, rows: number, cols: number, row: number, col: number): readonly TableStylePartName[];
|
|
1530
|
+
/**
|
|
1531
|
+
* The fill of the cell at grid position (row, col): its own `a:tcPr` fill, else the highest part
|
|
1532
|
+
* that states one. Parts compose per property (C9); `null` paints nothing, and one translucent fill
|
|
1533
|
+
* is painted alone, never over another part's.
|
|
1534
|
+
*/
|
|
1535
|
+
export declare function tableCellFill(table: Table, style: TableStyle | null, grid: TableGrid, row: number, col: number): TableSourced<Themeable<Fill>> | null;
|
|
1536
|
+
/** What paints under the cells: `a:tblPr`'s own fill in place of the style's `tblBg` (C9). */
|
|
1537
|
+
export declare function tableBackground(table: Table, style: TableStyle | null): TableSourced<Themeable<Fill>> | null;
|
|
1538
|
+
/** PowerPoint's default grid: a 1-pt black line on every edge of a table that names no built-in (C8). */
|
|
1539
|
+
export declare const DEFAULT_GRID_LINE: Line;
|
|
1540
|
+
/**
|
|
1541
|
+
* The line a grid edge draws: its owner's `a:tcPr` line, else the highest part of either cell that
|
|
1542
|
+
* states it, a part reaching both offering its inside edge (C9).
|
|
1543
|
+
* The owner is the cell before (above, left) where its anchor is level with the edge, else the cell
|
|
1544
|
+
* after where its anchor is, else the cell before; `null` inside a merged cell.
|
|
1545
|
+
*/
|
|
1546
|
+
export declare function tableEdgeLine(table: Table, style: TableStyle | null, grid: TableGrid, edge: TableEdge): TableSourced<Themeable<Line>> | null;
|
|
1547
|
+
/**
|
|
1548
|
+
* What the style gives the text of the cell at (row, col): bold, italic, face and colour, each from
|
|
1549
|
+
* the highest part that states it (C9), as run properties for the text cascade.
|
|
1550
|
+
* The default grid gives `tx1` in the minor face whatever the flags; `node` is the style's element,
|
|
1551
|
+
* or the table's for the grid.
|
|
1552
|
+
*/
|
|
1553
|
+
export declare function tableTextLayer(table: Table, style: TableStyle | null, grid: TableGrid, row: number, col: number): RunProps;
|
|
1554
|
+
/** A style fill with a `fillRef` followed into the theme, and the colour `phClr` takes in it. */
|
|
1555
|
+
export declare function themedFill(fill: Themeable<Fill>, theme: Theme, colors: ColorContext): {
|
|
1556
|
+
readonly fill: Fill | null;
|
|
1557
|
+
readonly phClr: Rgba | null;
|
|
1558
|
+
};
|
|
1559
|
+
/** A style line with an `lnRef` followed into the theme, and the colour `phClr` takes in it. */
|
|
1560
|
+
export declare function themedLine(line: Themeable<Line>, theme: Theme, colors: ColorContext): {
|
|
1561
|
+
readonly line: Line | null;
|
|
1562
|
+
readonly phClr: Rgba | null;
|
|
1563
|
+
};
|
|
1437
1564
|
//#endregion
|
|
1438
1565
|
//#region src/resolve/typeface.d.ts
|
|
1439
1566
|
/** The four slots a `CT_TextCharacterProperties` can name. */
|
|
@@ -1455,5 +1582,5 @@ export declare function resolveTypefaceOf(font: Typeface, scheme: FontScheme): s
|
|
|
1455
1582
|
*/
|
|
1456
1583
|
export declare function requestedTypefaces(fonts: Iterable<Typeface | undefined>, scheme: FontScheme): readonly string[];
|
|
1457
1584
|
//#endregion
|
|
1458
|
-
export { type Background, type BuiltinLevel, type BulletAutoNum, type BulletColor, type BulletFont, type BulletKind, type BulletSize, COLOR_TRANSFORM_OPS, type Caps, type ChainLink, type ColorMapOverride, type Document, type DocumentProblem, type FontAlign, type FontCollection, type FontRef, type FontScheme, type FormatScheme, type GridCell, type ListStyle, type ModelErrorCode, type NormalPlaceholder, type Origin, type ParaProps, type Paragraph, type Placeholder, type PlaceholderSize, type PlaceholderType, type Resolved, type ResolvedAppearance, type ResolvedBackground, type ResolvedInsets, type RunProps, type ScriptSlot, type Shape, type ShapeGeometry, type ShapeKind, type ShapeStyle, type Sheet, type SheetKind, type Spacing, type Strike, type StyleMatrixTarget, type StyleRef, type Table, type TableCell, type TableCellBorders, type TableCellProps, type TableColumn, type TableGrid, type TableProps, type TableRow, type TableStyleRef, type TextAlign, type TextAnchor, type TextBody, type TextBreak, type TextContent, type TextContext, type TextField, type TextRun, type TextStyleBucket, type TextStyles, type Theme, type ThemeFontRef, type Typeface, type Underline, type VerticalText, type Xfrm };
|
|
1585
|
+
export { type Background, type BuiltinLevel, type BuiltinTableStyle, type BulletAutoNum, type BulletColor, type BulletFont, type BulletKind, type BulletSize, COLOR_TRANSFORM_OPS, type Caps, type ChainLink, type ColorMapOverride, type Document, type DocumentProblem, type FontAlign, type FontCollection, type FontRef, type FontScheme, type FormatScheme, type GridCell, type ListStyle, type ModelErrorCode, type NormalPlaceholder, type OnOffStyle, type Origin, type ParaProps, type Paragraph, type Placeholder, type PlaceholderSize, type PlaceholderType, type Resolved, type ResolvedAppearance, type ResolvedBackground, type ResolvedInsets, type RunProps, type ScriptSlot, type Shape, type ShapeGeometry, type ShapeKind, type ShapeStyle, type Sheet, type SheetKind, type Spacing, type Strike, type StyleMatrixTarget, type StyleRef, type Table, type TableBackground, type TableCell, type TableCellBorders, type TableCellProps, type TableCellText, type TableColumn, type TableEdge, type TableGrid, type TableProps, type TableRow, type TableSource, type TableSourced, type TableStyle, type TableStyleBorders, type TableStyleCell, type TableStylePart, type TableStylePartName, type TableStyleRef, type TableStyleText, type TextAlign, type TextAnchor, type TextBody, type TextBreak, type TextContent, type TextContext, type TextField, type TextRun, type TextStyleBucket, type TextStyles, type Theme, type ThemeFontRef, type Themeable, type Typeface, type Underline, type VerticalText, type Xfrm };
|
|
1459
1586
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts","../src/parse/geometry.ts","../src/text.ts","../src/table.ts","../src/types.ts","../src/parse/paint.ts","../src/parse/sheet.ts","../src/resolve/placeholder.ts","../src/resolve/resolve.ts","../src/style.ts","../src/resolve/background.ts","../src/document.ts","../src/parse/text.ts","../src/builtin
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts","../src/parse/geometry.ts","../src/text.ts","../src/table.ts","../src/types.ts","../src/parse/paint.ts","../src/parse/sheet.ts","../src/resolve/placeholder.ts","../src/resolve/resolve.ts","../src/style.ts","../src/resolve/background.ts","../src/document.ts","../src/parse/text.ts","../src/builtin/text-styles.ts","../src/builtin/table-styles.ts","../src/resolve/text.ts","../src/resolve/body.ts","../src/parse/body.ts","../src/parse/table.ts","../src/resolve/table.ts","../src/resolve/typeface.ts"],"mappings":"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"}
|