@deckflow/deckuse 1.2.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +342 -0
- package/README.fr.md +342 -0
- package/README.ja.md +342 -0
- package/README.ko.md +342 -0
- package/README.md +60 -8
- package/README.pt-BR.md +342 -0
- package/README.ru.md +342 -0
- package/README.zh-CN.md +367 -0
- package/assets/default.docx +0 -0
- package/assets/default.pptx +0 -0
- package/dist/bin.js +188 -21
- package/dist/bin.js.map +1 -1
- package/dist/core/adapter.d.ts +24 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +20 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/executor.d.ts +24 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/core/executor.js +65 -0
- package/dist/core/executor.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/length.d.ts +27 -0
- package/dist/core/length.d.ts.map +1 -0
- package/dist/core/length.js +63 -0
- package/dist/core/length.js.map +1 -0
- package/dist/core/measure.d.ts +24 -0
- package/dist/core/measure.d.ts.map +1 -0
- package/dist/core/measure.js +79 -0
- package/dist/core/measure.js.map +1 -0
- package/dist/core/not-implemented.d.ts +3 -0
- package/dist/core/not-implemented.d.ts.map +1 -0
- package/dist/core/not-implemented.js +12 -0
- package/dist/core/not-implemented.js.map +1 -0
- package/dist/core/schema.d.ts +3065 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +799 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/default-template.d.ts +8 -0
- package/dist/default-template.d.ts.map +1 -0
- package/dist/default-template.js +29 -0
- package/dist/default-template.js.map +1 -0
- package/dist/docx/adapter.d.ts +29 -0
- package/dist/docx/adapter.d.ts.map +1 -0
- package/dist/docx/adapter.js +442 -0
- package/dist/docx/adapter.js.map +1 -0
- package/dist/docx/addressing.d.ts +18 -0
- package/dist/docx/addressing.d.ts.map +1 -0
- package/dist/docx/addressing.js +111 -0
- package/dist/docx/addressing.js.map +1 -0
- package/dist/docx/blank.d.ts +4 -0
- package/dist/docx/blank.d.ts.map +1 -0
- package/dist/docx/blank.js +75 -0
- package/dist/docx/blank.js.map +1 -0
- package/dist/docx/index-sync.d.ts +7 -0
- package/dist/docx/index-sync.d.ts.map +1 -0
- package/dist/docx/index-sync.js +24 -0
- package/dist/docx/index-sync.js.map +1 -0
- package/dist/docx/index.d.ts +5 -0
- package/dist/docx/index.d.ts.map +1 -0
- package/dist/docx/index.js +4 -0
- package/dist/docx/index.js.map +1 -0
- package/dist/docx/indexer.d.ts +41 -0
- package/dist/docx/indexer.d.ts.map +1 -0
- package/dist/docx/indexer.js +353 -0
- package/dist/docx/indexer.js.map +1 -0
- package/dist/docx/mutations.d.ts +5 -0
- package/dist/docx/mutations.d.ts.map +1 -0
- package/dist/docx/mutations.js +311 -0
- package/dist/docx/mutations.js.map +1 -0
- package/dist/docx/paragraphs.d.ts +26 -0
- package/dist/docx/paragraphs.d.ts.map +1 -0
- package/dist/docx/paragraphs.js +314 -0
- package/dist/docx/paragraphs.js.map +1 -0
- package/dist/docx/properties.d.ts +23 -0
- package/dist/docx/properties.d.ts.map +1 -0
- package/dist/docx/properties.js +414 -0
- package/dist/docx/properties.js.map +1 -0
- package/dist/docx/tables.d.ts +4 -0
- package/dist/docx/tables.d.ts.map +1 -0
- package/dist/docx/tables.js +64 -0
- package/dist/docx/tables.js.map +1 -0
- package/dist/docx/text-spans.d.ts +25 -0
- package/dist/docx/text-spans.d.ts.map +1 -0
- package/dist/docx/text-spans.js +142 -0
- package/dist/docx/text-spans.js.map +1 -0
- package/dist/docx/types.d.ts +27 -0
- package/dist/docx/types.d.ts.map +1 -0
- package/dist/docx/types.js +2 -0
- package/dist/docx/types.js.map +1 -0
- package/dist/docx/workspace.d.ts +20 -0
- package/dist/docx/workspace.d.ts.map +1 -0
- package/dist/docx/workspace.js +145 -0
- package/dist/docx/workspace.js.map +1 -0
- package/dist/docx/xml.d.ts +18 -0
- package/dist/docx/xml.d.ts.map +1 -0
- package/dist/docx/xml.js +87 -0
- package/dist/docx/xml.js.map +1 -0
- package/dist/edition-config/index.d.ts +25 -0
- package/dist/edition-config/index.d.ts.map +1 -0
- package/dist/edition-config/index.js +22 -0
- package/dist/edition-config/index.js.map +1 -0
- package/dist/edition.d.ts +2 -2
- package/dist/edition.d.ts.map +1 -1
- package/dist/edition.js +1 -1
- package/dist/edition.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +124 -32
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/key/index.d.ts +2 -0
- package/dist/key/index.d.ts.map +1 -0
- package/dist/key/index.js +3 -0
- package/dist/key/index.js.map +1 -0
- package/dist/monitor-daemon.d.ts +21 -8
- package/dist/monitor-daemon.d.ts.map +1 -1
- package/dist/monitor-daemon.js +189 -51
- package/dist/monitor-daemon.js.map +1 -1
- package/dist/monitor-registry.d.ts +34 -0
- package/dist/monitor-registry.d.ts.map +1 -0
- package/dist/monitor-registry.js +191 -0
- package/dist/monitor-registry.js.map +1 -0
- package/dist/monitor.d.ts.map +1 -1
- package/dist/monitor.js +2 -12
- package/dist/monitor.js.map +1 -1
- package/dist/numbers/index.d.ts +2 -0
- package/dist/numbers/index.d.ts.map +1 -0
- package/dist/numbers/index.js +3 -0
- package/dist/numbers/index.js.map +1 -0
- package/dist/opc/index.d.ts +96 -0
- package/dist/opc/index.d.ts.map +1 -0
- package/dist/opc/index.js +596 -0
- package/dist/opc/index.js.map +1 -0
- package/dist/pptx/adapter.d.ts +167 -0
- package/dist/pptx/adapter.d.ts.map +1 -0
- package/dist/pptx/adapter.js +841 -0
- package/dist/pptx/adapter.js.map +1 -0
- package/dist/pptx/addressing.d.ts +47 -0
- package/dist/pptx/addressing.d.ts.map +1 -0
- package/dist/pptx/addressing.js +481 -0
- package/dist/pptx/addressing.js.map +1 -0
- package/dist/pptx/align.d.ts +24 -0
- package/dist/pptx/align.d.ts.map +1 -0
- package/dist/pptx/align.js +112 -0
- package/dist/pptx/align.js.map +1 -0
- package/dist/pptx/chart-classify.d.ts +10 -0
- package/dist/pptx/chart-classify.d.ts.map +1 -0
- package/dist/pptx/chart-classify.js +58 -0
- package/dist/pptx/chart-classify.js.map +1 -0
- package/dist/pptx/chart.d.ts +42 -0
- package/dist/pptx/chart.d.ts.map +1 -0
- package/dist/pptx/chart.js +614 -0
- package/dist/pptx/chart.js.map +1 -0
- package/dist/pptx/edition-extension.d.ts +25 -0
- package/dist/pptx/edition-extension.d.ts.map +1 -0
- package/dist/pptx/edition-extension.js +10 -0
- package/dist/pptx/edition-extension.js.map +1 -0
- package/dist/pptx/edition.d.ts +20 -0
- package/dist/pptx/edition.d.ts.map +1 -0
- package/dist/pptx/edition.js +69 -0
- package/dist/pptx/edition.js.map +1 -0
- package/dist/pptx/elements.d.ts +12 -0
- package/dist/pptx/elements.d.ts.map +1 -0
- package/dist/pptx/elements.js +224 -0
- package/dist/pptx/elements.js.map +1 -0
- package/dist/pptx/hyperlink.d.ts +7 -0
- package/dist/pptx/hyperlink.d.ts.map +1 -0
- package/dist/pptx/hyperlink.js +81 -0
- package/dist/pptx/hyperlink.js.map +1 -0
- package/dist/pptx/index-sync.d.ts +7 -0
- package/dist/pptx/index-sync.d.ts.map +1 -0
- package/dist/pptx/index-sync.js +24 -0
- package/dist/pptx/index-sync.js.map +1 -0
- package/dist/pptx/index.d.ts +10 -0
- package/dist/pptx/index.d.ts.map +1 -0
- package/dist/pptx/index.js +7 -0
- package/dist/pptx/index.js.map +1 -0
- package/dist/pptx/indexer.d.ts +19 -0
- package/dist/pptx/indexer.d.ts.map +1 -0
- package/dist/pptx/indexer.js +320 -0
- package/dist/pptx/indexer.js.map +1 -0
- package/dist/pptx/layout-ref.d.ts +41 -0
- package/dist/pptx/layout-ref.d.ts.map +1 -0
- package/dist/pptx/layout-ref.js +145 -0
- package/dist/pptx/layout-ref.js.map +1 -0
- package/dist/pptx/media.d.ts +15 -0
- package/dist/pptx/media.d.ts.map +1 -0
- package/dist/pptx/media.js +145 -0
- package/dist/pptx/media.js.map +1 -0
- package/dist/pptx/mutations.d.ts +11 -0
- package/dist/pptx/mutations.d.ts.map +1 -0
- package/dist/pptx/mutations.js +1114 -0
- package/dist/pptx/mutations.js.map +1 -0
- package/dist/pptx/picture.d.ts +25 -0
- package/dist/pptx/picture.d.ts.map +1 -0
- package/dist/pptx/picture.js +118 -0
- package/dist/pptx/picture.js.map +1 -0
- package/dist/pptx/placeholder-role.d.ts +19 -0
- package/dist/pptx/placeholder-role.d.ts.map +1 -0
- package/dist/pptx/placeholder-role.js +71 -0
- package/dist/pptx/placeholder-role.js.map +1 -0
- package/dist/pptx/properties.d.ts +13 -0
- package/dist/pptx/properties.d.ts.map +1 -0
- package/dist/pptx/properties.js +587 -0
- package/dist/pptx/properties.js.map +1 -0
- package/dist/pptx/resolve-properties.d.ts +17 -0
- package/dist/pptx/resolve-properties.d.ts.map +1 -0
- package/dist/pptx/resolve-properties.js +623 -0
- package/dist/pptx/resolve-properties.js.map +1 -0
- package/dist/pptx/slide-size.d.ts +9 -0
- package/dist/pptx/slide-size.d.ts.map +1 -0
- package/dist/pptx/slide-size.js +29 -0
- package/dist/pptx/slide-size.js.map +1 -0
- package/dist/pptx/slides.d.ts +15 -0
- package/dist/pptx/slides.d.ts.map +1 -0
- package/dist/pptx/slides.js +247 -0
- package/dist/pptx/slides.js.map +1 -0
- package/dist/pptx/table-measure.d.ts +43 -0
- package/dist/pptx/table-measure.d.ts.map +1 -0
- package/dist/pptx/table-measure.js +70 -0
- package/dist/pptx/table-measure.js.map +1 -0
- package/dist/pptx/table.d.ts +26 -0
- package/dist/pptx/table.d.ts.map +1 -0
- package/dist/pptx/table.js +638 -0
- package/dist/pptx/table.js.map +1 -0
- package/dist/pptx/types.d.ts +27 -0
- package/dist/pptx/types.d.ts.map +1 -0
- package/dist/pptx/types.js +2 -0
- package/dist/pptx/types.js.map +1 -0
- package/dist/pptx/workspace.d.ts +23 -0
- package/dist/pptx/workspace.d.ts.map +1 -0
- package/dist/pptx/workspace.js +148 -0
- package/dist/pptx/workspace.js.map +1 -0
- package/dist/pptx/xml.d.ts +75 -0
- package/dist/pptx/xml.d.ts.map +1 -0
- package/dist/pptx/xml.js +390 -0
- package/dist/pptx/xml.js.map +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +14 -2
- package/dist/render.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace/git.d.ts +7 -0
- package/dist/workspace/git.d.ts.map +1 -0
- package/dist/workspace/git.js +119 -0
- package/dist/workspace/git.js.map +1 -0
- package/dist/workspace/index.d.ts +7 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +7 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/lock.d.ts +5 -0
- package/dist/workspace/lock.d.ts.map +1 -0
- package/dist/workspace/lock.js +104 -0
- package/dist/workspace/lock.js.map +1 -0
- package/dist/workspace/metadata.d.ts +4 -0
- package/dist/workspace/metadata.d.ts.map +1 -0
- package/dist/workspace/metadata.js +21 -0
- package/dist/workspace/metadata.js.map +1 -0
- package/dist/workspace/operations.d.ts +14 -0
- package/dist/workspace/operations.d.ts.map +1 -0
- package/dist/workspace/operations.js +35 -0
- package/dist/workspace/operations.js.map +1 -0
- package/dist/workspace/paths.d.ts +11 -0
- package/dist/workspace/paths.d.ts.map +1 -0
- package/dist/workspace/paths.js +12 -0
- package/dist/workspace/paths.js.map +1 -0
- package/dist/workspace/revision.d.ts +6 -0
- package/dist/workspace/revision.d.ts.map +1 -0
- package/dist/workspace/revision.js +15 -0
- package/dist/workspace/revision.js.map +1 -0
- package/dist/xlsx/index.d.ts +2 -0
- package/dist/xlsx/index.d.ts.map +1 -0
- package/dist/xlsx/index.js +3 -0
- package/dist/xlsx/index.js.map +1 -0
- package/package.json +51 -27
- package/schema/command.schema.json +2405 -0
- package/dist/.tsbuildinfo +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type LengthInput } from '../core/index.js';
|
|
2
|
+
import type { Element } from '@xmldom/xmldom';
|
|
3
|
+
import type { LengthContext } from '../core/index.js';
|
|
4
|
+
export interface ShapeBBox {
|
|
5
|
+
readonly x: number;
|
|
6
|
+
readonly y: number;
|
|
7
|
+
readonly width: number;
|
|
8
|
+
readonly height: number;
|
|
9
|
+
readonly node: Element;
|
|
10
|
+
}
|
|
11
|
+
export type AlignMode = 'left' | 'right' | 'top' | 'bottom' | 'center-h' | 'center-v' | 'distribute-h' | 'distribute-v';
|
|
12
|
+
export declare function readBBox(node: Element): ShapeBBox | undefined;
|
|
13
|
+
export declare function writeBBox(node: Element, box: {
|
|
14
|
+
x?: number;
|
|
15
|
+
y?: number;
|
|
16
|
+
width?: number;
|
|
17
|
+
height?: number;
|
|
18
|
+
}): void;
|
|
19
|
+
export declare function computeAlignUpdates(boxes: ShapeBBox[], mode: AlignMode, gap: LengthInput | undefined, lengthContext: LengthContext): Array<{
|
|
20
|
+
node: Element;
|
|
21
|
+
x?: number;
|
|
22
|
+
y?: number;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=align.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../src/pptx/align.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,SAAS,GACnB,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;AAElG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAW7D;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,IAAI,CAUN;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAAE,EAClB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,aAAa,EAAE,aAAa,GAC3B,KAAK,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyElD"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { parseLength } from '../core/index.js';
|
|
2
|
+
import { attr, first } from './xml.js';
|
|
3
|
+
export function readBBox(node) {
|
|
4
|
+
const xfrm = first(node, 'xfrm');
|
|
5
|
+
if (!xfrm)
|
|
6
|
+
return undefined;
|
|
7
|
+
const off = first(xfrm, 'off');
|
|
8
|
+
const ext = first(xfrm, 'ext');
|
|
9
|
+
const x = Number(attr(off, 'x') ?? 0);
|
|
10
|
+
const y = Number(attr(off, 'y') ?? 0);
|
|
11
|
+
const width = Number(attr(ext, 'cx') ?? 0);
|
|
12
|
+
const height = Number(attr(ext, 'cy') ?? 0);
|
|
13
|
+
if (![x, y, width, height].every((n) => Number.isFinite(n)))
|
|
14
|
+
return undefined;
|
|
15
|
+
return { x, y, width, height, node };
|
|
16
|
+
}
|
|
17
|
+
export function writeBBox(node, box) {
|
|
18
|
+
const xfrm = first(node, 'xfrm');
|
|
19
|
+
if (!xfrm)
|
|
20
|
+
throw new Error('Shape has no xfrm');
|
|
21
|
+
const off = first(xfrm, 'off');
|
|
22
|
+
const ext = first(xfrm, 'ext');
|
|
23
|
+
if (!off || !ext)
|
|
24
|
+
throw new Error('Shape xfrm missing off/ext');
|
|
25
|
+
if (box.x !== undefined)
|
|
26
|
+
off.setAttribute('x', String(Math.round(box.x)));
|
|
27
|
+
if (box.y !== undefined)
|
|
28
|
+
off.setAttribute('y', String(Math.round(box.y)));
|
|
29
|
+
if (box.width !== undefined)
|
|
30
|
+
ext.setAttribute('cx', String(Math.round(box.width)));
|
|
31
|
+
if (box.height !== undefined)
|
|
32
|
+
ext.setAttribute('cy', String(Math.round(box.height)));
|
|
33
|
+
}
|
|
34
|
+
export function computeAlignUpdates(boxes, mode, gap, lengthContext) {
|
|
35
|
+
if (boxes.length === 0)
|
|
36
|
+
return [];
|
|
37
|
+
const gapEmu = gap !== undefined
|
|
38
|
+
? parseLength(gap, { ...lengthContext, axis: mode.includes('v') ? 'y' : 'x' })
|
|
39
|
+
: undefined;
|
|
40
|
+
const minX = Math.min(...boxes.map((b) => b.x));
|
|
41
|
+
const maxRight = Math.max(...boxes.map((b) => b.x + b.width));
|
|
42
|
+
const minY = Math.min(...boxes.map((b) => b.y));
|
|
43
|
+
const maxBottom = Math.max(...boxes.map((b) => b.y + b.height));
|
|
44
|
+
const centerX = (minX + maxRight) / 2;
|
|
45
|
+
const centerY = (minY + maxBottom) / 2;
|
|
46
|
+
if (mode === 'left')
|
|
47
|
+
return boxes.map((b) => ({ node: b.node, x: minX }));
|
|
48
|
+
if (mode === 'right')
|
|
49
|
+
return boxes.map((b) => ({ node: b.node, x: maxRight - b.width }));
|
|
50
|
+
if (mode === 'top')
|
|
51
|
+
return boxes.map((b) => ({ node: b.node, y: minY }));
|
|
52
|
+
if (mode === 'bottom')
|
|
53
|
+
return boxes.map((b) => ({ node: b.node, y: maxBottom - b.height }));
|
|
54
|
+
if (mode === 'center-h')
|
|
55
|
+
return boxes.map((b) => ({ node: b.node, x: centerX - b.width / 2 }));
|
|
56
|
+
if (mode === 'center-v')
|
|
57
|
+
return boxes.map((b) => ({ node: b.node, y: centerY - b.height / 2 }));
|
|
58
|
+
if (mode === 'distribute-h') {
|
|
59
|
+
const ordered = [...boxes].sort((a, b) => a.x - b.x);
|
|
60
|
+
if (ordered.length === 1)
|
|
61
|
+
return [];
|
|
62
|
+
if (gapEmu !== undefined) {
|
|
63
|
+
let cursor = ordered[0].x;
|
|
64
|
+
return ordered.map((b, i) => {
|
|
65
|
+
if (i === 0) {
|
|
66
|
+
cursor = b.x + b.width + gapEmu;
|
|
67
|
+
return { node: b.node };
|
|
68
|
+
}
|
|
69
|
+
const x = cursor;
|
|
70
|
+
cursor = x + b.width + gapEmu;
|
|
71
|
+
return { node: b.node, x };
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const totalWidth = ordered.reduce((sum, b) => sum + b.width, 0);
|
|
75
|
+
const span = maxRight - minX;
|
|
76
|
+
const free = span - totalWidth;
|
|
77
|
+
const step = free / (ordered.length - 1);
|
|
78
|
+
let cursor = minX;
|
|
79
|
+
return ordered.map((b) => {
|
|
80
|
+
const x = cursor;
|
|
81
|
+
cursor += b.width + step;
|
|
82
|
+
return { node: b.node, x };
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// distribute-v
|
|
86
|
+
const ordered = [...boxes].sort((a, b) => a.y - b.y);
|
|
87
|
+
if (ordered.length === 1)
|
|
88
|
+
return [];
|
|
89
|
+
if (gapEmu !== undefined) {
|
|
90
|
+
let cursor = ordered[0].y;
|
|
91
|
+
return ordered.map((b, i) => {
|
|
92
|
+
if (i === 0) {
|
|
93
|
+
cursor = b.y + b.height + gapEmu;
|
|
94
|
+
return { node: b.node };
|
|
95
|
+
}
|
|
96
|
+
const y = cursor;
|
|
97
|
+
cursor = y + b.height + gapEmu;
|
|
98
|
+
return { node: b.node, y };
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const totalHeight = ordered.reduce((sum, b) => sum + b.height, 0);
|
|
102
|
+
const span = maxBottom - minY;
|
|
103
|
+
const free = span - totalHeight;
|
|
104
|
+
const step = free / (ordered.length - 1);
|
|
105
|
+
let cursor = minY;
|
|
106
|
+
return ordered.map((b) => {
|
|
107
|
+
const y = cursor;
|
|
108
|
+
cursor += b.height + step;
|
|
109
|
+
return { node: b.node, y };
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=align.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align.js","sourceRoot":"","sources":["../../src/pptx/align.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OpcArchive } from '../opc/index.js';
|
|
2
|
+
import type { Document } from '@xmldom/xmldom';
|
|
3
|
+
export type ChartVariant = 'basic' | 'advanced';
|
|
4
|
+
/**
|
|
5
|
+
* Classify a Legacy Chart / ChartEx document as basic or advanced.
|
|
6
|
+
* Fail closed: anything not a single basic family (or community-allowed bar+line combo) is advanced.
|
|
7
|
+
*/
|
|
8
|
+
export declare const classifyChartDocument: (doc: Document) => ChartVariant;
|
|
9
|
+
export declare const classifyChartPart: (archive: OpcArchive, chartPart: string) => ChartVariant;
|
|
10
|
+
//# sourceMappingURL=chart-classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-classify.d.ts","sourceRoot":"","sources":["../../src/pptx/chart-classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,gBAAgB,CAAC;AAGxD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,CAAC;AAgBhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,QAAQ,KAAG,YA8BrD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,KAAG,YAS1E,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { NS, children, descendants, first, root } from './xml.js';
|
|
2
|
+
/** Basic Legacy Chart families per edition scope §4.2. */
|
|
3
|
+
const BASIC_CHART_LOCAL_NAMES = new Set(['pieChart', 'lineChart', 'barChart']);
|
|
4
|
+
const CHART_EX_URI = 'http://schemas.microsoft.com/office/drawing/2014/chartex';
|
|
5
|
+
const isElement = (node) => node.nodeType === 1;
|
|
6
|
+
/** Local names under c:plotArea that represent a chart family (…Chart). */
|
|
7
|
+
const plotAreaChartFamilies = (plotArea) => children(plotArea)
|
|
8
|
+
.filter(isElement)
|
|
9
|
+
.map((child) => child.localName ?? '')
|
|
10
|
+
.filter((name) => name.endsWith('Chart'));
|
|
11
|
+
/**
|
|
12
|
+
* Classify a Legacy Chart / ChartEx document as basic or advanced.
|
|
13
|
+
* Fail closed: anything not a single basic family (or community-allowed bar+line combo) is advanced.
|
|
14
|
+
*/
|
|
15
|
+
export const classifyChartDocument = (doc) => {
|
|
16
|
+
const docEl = root(doc);
|
|
17
|
+
// ChartEx root is typically cx:chartSpace
|
|
18
|
+
if (docEl.namespaceURI === CHART_EX_URI)
|
|
19
|
+
return 'advanced';
|
|
20
|
+
if (descendants(doc).some((n) => n.namespaceURI === CHART_EX_URI))
|
|
21
|
+
return 'advanced';
|
|
22
|
+
const plotArea = first(doc, 'plotArea');
|
|
23
|
+
if (!plotArea)
|
|
24
|
+
return 'advanced';
|
|
25
|
+
const families = plotAreaChartFamilies(plotArea);
|
|
26
|
+
// Community-allowed limited combo: exactly barChart + lineChart.
|
|
27
|
+
if (families.length === 2 && families.includes('barChart') && families.includes('lineChart')) {
|
|
28
|
+
return 'basic';
|
|
29
|
+
}
|
|
30
|
+
if (families.length !== 1)
|
|
31
|
+
return 'advanced';
|
|
32
|
+
const only = families[0];
|
|
33
|
+
if (!BASIC_CHART_LOCAL_NAMES.has(only))
|
|
34
|
+
return 'advanced';
|
|
35
|
+
// Ensure the family node is in the DrawingML chart NS (or unprefixed legacy default).
|
|
36
|
+
const familyNode = children(plotArea).find((c) => c.localName === only);
|
|
37
|
+
if (familyNode &&
|
|
38
|
+
familyNode.namespaceURI != null &&
|
|
39
|
+
familyNode.namespaceURI !== NS.c &&
|
|
40
|
+
familyNode.namespaceURI !== '') {
|
|
41
|
+
return 'advanced';
|
|
42
|
+
}
|
|
43
|
+
return 'basic';
|
|
44
|
+
};
|
|
45
|
+
export const classifyChartPart = (archive, chartPart) => {
|
|
46
|
+
const part = archive.getPart(chartPart);
|
|
47
|
+
if (!part)
|
|
48
|
+
return 'advanced';
|
|
49
|
+
if (part.mediaType.includes('chartex'))
|
|
50
|
+
return 'advanced';
|
|
51
|
+
try {
|
|
52
|
+
return classifyChartDocument(archive.readXml(chartPart));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return 'advanced';
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chart-classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-classify.js","sourceRoot":"","sources":["../../src/pptx/chart-classify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { OpcArchive } from '../opc/index.js';
|
|
2
|
+
import type { Document, Element } from '@xmldom/xmldom';
|
|
3
|
+
/** Default series fills — readable on both light and dark slide backgrounds. */
|
|
4
|
+
export declare const DEFAULT_SERIES_COLORS: readonly ["5B8DEF", "F0A500", "2ECC71", "E74C3C", "9B59B6", "1ABC9C"];
|
|
5
|
+
export type ChartType = 'bar' | 'column' | 'line' | 'pie' | 'combo';
|
|
6
|
+
export interface ChartSeriesInput {
|
|
7
|
+
name: string;
|
|
8
|
+
values: number[];
|
|
9
|
+
/** Optional `#RRGGBB` or `RRGGBB` series fill. */
|
|
10
|
+
color?: string;
|
|
11
|
+
/** Combo only: primary (left) or secondary (right) value axis. */
|
|
12
|
+
axis?: 'primary' | 'secondary';
|
|
13
|
+
/** Combo only: which plot family draws this series. */
|
|
14
|
+
chart?: 'bar' | 'column' | 'line';
|
|
15
|
+
}
|
|
16
|
+
export interface ChartCreateInput {
|
|
17
|
+
chartType: ChartType;
|
|
18
|
+
title?: string;
|
|
19
|
+
categories: string[];
|
|
20
|
+
series: ChartSeriesInput[];
|
|
21
|
+
showDataLabels?: boolean;
|
|
22
|
+
/** Number format code for value axis / numLit (e.g. `0%`, `#,##0`). */
|
|
23
|
+
valueFormatCode?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const normalizeHexColor: (value: string) => string;
|
|
26
|
+
export declare function buildChartXml(input: ChartCreateInput): string;
|
|
27
|
+
export declare function createChartPart(archive: OpcArchive, slidePart: string, input: ChartCreateInput): {
|
|
28
|
+
chartPart: string;
|
|
29
|
+
rid: string;
|
|
30
|
+
};
|
|
31
|
+
export declare const chartGraphicFrameXml: (id: number, rid: string, e: Record<string, unknown>) => string;
|
|
32
|
+
/** Apply text color to title runs, legend, and axis tick labels. */
|
|
33
|
+
export declare function applyChartTextColor(chartDoc: Document, colorInput: string): void;
|
|
34
|
+
export declare function applyChartGapWidth(chartDoc: Document, gapWidth: number): void;
|
|
35
|
+
export declare function applyChartBackground(chartDoc: Document, colorInput: string): void;
|
|
36
|
+
export declare function applyChartMajorGridlines(chartDoc: Document, show: boolean, color?: string): void;
|
|
37
|
+
export declare function readSeriesColor(ser: Element): string | undefined;
|
|
38
|
+
/** Mutate an existing chart part from semantic chart properties. */
|
|
39
|
+
export declare function applyChartProperties(chartDoc: Document, properties: Record<string, unknown>): void;
|
|
40
|
+
export declare function applyChartDataLabels(chartDoc: Document, show: boolean): void;
|
|
41
|
+
export declare function applyChartValueFormat(chartDoc: Document, formatCode: string): void;
|
|
42
|
+
//# sourceMappingURL=chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/pptx/chart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKxD,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,uEAOxB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,uDAAuD;IACvD,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAIjD,CAAC;AAuIF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAU7D;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAepC;AAED,eAAO,MAAM,oBAAoB,GAC/B,IAAI,MAAM,EACV,KAAK,MAAM,EACX,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,MAQF,CAAC;AA0DF,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CA8BhF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgC7E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CA4BjF;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,EACb,KAAK,SAAW,GACf,IAAI,CA4BN;AAwED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMhE;AA6CD,oEAAoE;AACpE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CA8DN;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CA+B5E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAsBlF"}
|