@productcloudos/editor 1.0.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 +95 -0
- package/LICENSE +21 -0
- package/README.md +377 -0
- package/dist/pc-editor.esm.js +24820 -0
- package/dist/pc-editor.esm.js.map +1 -0
- package/dist/pc-editor.js +24877 -0
- package/dist/pc-editor.js.map +1 -0
- package/dist/pc-editor.min.js +2 -0
- package/dist/pc-editor.min.js.map +1 -0
- package/dist/types/lib/clipboard/ClipboardManager.d.ts +77 -0
- package/dist/types/lib/clipboard/ClipboardManager.d.ts.map +1 -0
- package/dist/types/lib/clipboard/HtmlConverter.d.ts +43 -0
- package/dist/types/lib/clipboard/HtmlConverter.d.ts.map +1 -0
- package/dist/types/lib/clipboard/index.d.ts +9 -0
- package/dist/types/lib/clipboard/index.d.ts.map +1 -0
- package/dist/types/lib/clipboard/types.d.ts +76 -0
- package/dist/types/lib/clipboard/types.d.ts.map +1 -0
- package/dist/types/lib/controls/BaseControl.d.ts +72 -0
- package/dist/types/lib/controls/BaseControl.d.ts.map +1 -0
- package/dist/types/lib/controls/index.d.ts +11 -0
- package/dist/types/lib/controls/index.d.ts.map +1 -0
- package/dist/types/lib/controls/rulers/HorizontalRuler.d.ts +55 -0
- package/dist/types/lib/controls/rulers/HorizontalRuler.d.ts.map +1 -0
- package/dist/types/lib/controls/rulers/RulerControl.d.ts +98 -0
- package/dist/types/lib/controls/rulers/RulerControl.d.ts.map +1 -0
- package/dist/types/lib/controls/rulers/VerticalRuler.d.ts +65 -0
- package/dist/types/lib/controls/rulers/VerticalRuler.d.ts.map +1 -0
- package/dist/types/lib/controls/rulers/index.d.ts +8 -0
- package/dist/types/lib/controls/rulers/index.d.ts.map +1 -0
- package/dist/types/lib/controls/rulers/types.d.ts +62 -0
- package/dist/types/lib/controls/rulers/types.d.ts.map +1 -0
- package/dist/types/lib/controls/types.d.ts +51 -0
- package/dist/types/lib/controls/types.d.ts.map +1 -0
- package/dist/types/lib/core/Document.d.ts +34 -0
- package/dist/types/lib/core/Document.d.ts.map +1 -0
- package/dist/types/lib/core/PCEditor.d.ts +761 -0
- package/dist/types/lib/core/PCEditor.d.ts.map +1 -0
- package/dist/types/lib/core/Page.d.ts +40 -0
- package/dist/types/lib/core/Page.d.ts.map +1 -0
- package/dist/types/lib/data/DataBinder.d.ts +11 -0
- package/dist/types/lib/data/DataBinder.d.ts.map +1 -0
- package/dist/types/lib/events/EventEmitter.d.ts +11 -0
- package/dist/types/lib/events/EventEmitter.d.ts.map +1 -0
- package/dist/types/lib/hit-test/HitTestManager.d.ts +81 -0
- package/dist/types/lib/hit-test/HitTestManager.d.ts.map +1 -0
- package/dist/types/lib/hit-test/index.d.ts +32 -0
- package/dist/types/lib/hit-test/index.d.ts.map +1 -0
- package/dist/types/lib/hit-test/types.d.ts +113 -0
- package/dist/types/lib/hit-test/types.d.ts.map +1 -0
- package/dist/types/lib/import/ContentAnalyzer.d.ts +76 -0
- package/dist/types/lib/import/ContentAnalyzer.d.ts.map +1 -0
- package/dist/types/lib/import/DocumentBuilder.d.ts +44 -0
- package/dist/types/lib/import/DocumentBuilder.d.ts.map +1 -0
- package/dist/types/lib/import/PDFImporter.d.ts +65 -0
- package/dist/types/lib/import/PDFImporter.d.ts.map +1 -0
- package/dist/types/lib/import/PDFParser.d.ts +46 -0
- package/dist/types/lib/import/PDFParser.d.ts.map +1 -0
- package/dist/types/lib/import/index.d.ts +9 -0
- package/dist/types/lib/import/index.d.ts.map +1 -0
- package/dist/types/lib/import/types.d.ts +182 -0
- package/dist/types/lib/import/types.d.ts.map +1 -0
- package/dist/types/lib/index.d.ts +16 -0
- package/dist/types/lib/index.d.ts.map +1 -0
- package/dist/types/lib/layout/FlowManager.d.ts +29 -0
- package/dist/types/lib/layout/FlowManager.d.ts.map +1 -0
- package/dist/types/lib/layout/LayoutEngine.d.ts +39 -0
- package/dist/types/lib/layout/LayoutEngine.d.ts.map +1 -0
- package/dist/types/lib/objects/BaseEmbeddedObject.d.ts +133 -0
- package/dist/types/lib/objects/BaseEmbeddedObject.d.ts.map +1 -0
- package/dist/types/lib/objects/EmbeddedObjectFactory.d.ts +57 -0
- package/dist/types/lib/objects/EmbeddedObjectFactory.d.ts.map +1 -0
- package/dist/types/lib/objects/ImageObject.d.ts +60 -0
- package/dist/types/lib/objects/ImageObject.d.ts.map +1 -0
- package/dist/types/lib/objects/TextBoxObject.d.ts +208 -0
- package/dist/types/lib/objects/TextBoxObject.d.ts.map +1 -0
- package/dist/types/lib/objects/index.d.ts +9 -0
- package/dist/types/lib/objects/index.d.ts.map +1 -0
- package/dist/types/lib/objects/table/TableCell.d.ts +165 -0
- package/dist/types/lib/objects/table/TableCell.d.ts.map +1 -0
- package/dist/types/lib/objects/table/TableCellMerger.d.ts +66 -0
- package/dist/types/lib/objects/table/TableCellMerger.d.ts.map +1 -0
- package/dist/types/lib/objects/table/TableObject.d.ts +434 -0
- package/dist/types/lib/objects/table/TableObject.d.ts.map +1 -0
- package/dist/types/lib/objects/table/TableResizeHandler.d.ts +80 -0
- package/dist/types/lib/objects/table/TableResizeHandler.d.ts.map +1 -0
- package/dist/types/lib/objects/table/TableRow.d.ts +65 -0
- package/dist/types/lib/objects/table/TableRow.d.ts.map +1 -0
- package/dist/types/lib/objects/table/index.d.ts +12 -0
- package/dist/types/lib/objects/table/index.d.ts.map +1 -0
- package/dist/types/lib/objects/table/types.d.ts +239 -0
- package/dist/types/lib/objects/table/types.d.ts.map +1 -0
- package/dist/types/lib/objects/types.d.ts +135 -0
- package/dist/types/lib/objects/types.d.ts.map +1 -0
- package/dist/types/lib/rendering/CanvasManager.d.ts +282 -0
- package/dist/types/lib/rendering/CanvasManager.d.ts.map +1 -0
- package/dist/types/lib/rendering/FlowingTextRenderer.d.ts +348 -0
- package/dist/types/lib/rendering/FlowingTextRenderer.d.ts.map +1 -0
- package/dist/types/lib/rendering/PDFGenerator.d.ts +103 -0
- package/dist/types/lib/rendering/PDFGenerator.d.ts.map +1 -0
- package/dist/types/lib/rendering/pdf-utils.d.ts +54 -0
- package/dist/types/lib/rendering/pdf-utils.d.ts.map +1 -0
- package/dist/types/lib/text/EditableTextRegion.d.ts +105 -0
- package/dist/types/lib/text/EditableTextRegion.d.ts.map +1 -0
- package/dist/types/lib/text/EmbeddedObjectManager.d.ts +97 -0
- package/dist/types/lib/text/EmbeddedObjectManager.d.ts.map +1 -0
- package/dist/types/lib/text/FieldFormatter.d.ts +26 -0
- package/dist/types/lib/text/FieldFormatter.d.ts.map +1 -0
- package/dist/types/lib/text/FlowingTextContent.d.ts +571 -0
- package/dist/types/lib/text/FlowingTextContent.d.ts.map +1 -0
- package/dist/types/lib/text/HyperlinkManager.d.ts +110 -0
- package/dist/types/lib/text/HyperlinkManager.d.ts.map +1 -0
- package/dist/types/lib/text/MarkdownParser.d.ts +55 -0
- package/dist/types/lib/text/MarkdownParser.d.ts.map +1 -0
- package/dist/types/lib/text/ParagraphFormatting.d.ts +123 -0
- package/dist/types/lib/text/ParagraphFormatting.d.ts.map +1 -0
- package/dist/types/lib/text/RegionManager.d.ts +75 -0
- package/dist/types/lib/text/RegionManager.d.ts.map +1 -0
- package/dist/types/lib/text/RepeatingSectionManager.d.ts +99 -0
- package/dist/types/lib/text/RepeatingSectionManager.d.ts.map +1 -0
- package/dist/types/lib/text/SubstitutionFieldManager.d.ts +153 -0
- package/dist/types/lib/text/SubstitutionFieldManager.d.ts.map +1 -0
- package/dist/types/lib/text/TextFormatting.d.ts +85 -0
- package/dist/types/lib/text/TextFormatting.d.ts.map +1 -0
- package/dist/types/lib/text/TextLayout.d.ts +126 -0
- package/dist/types/lib/text/TextLayout.d.ts.map +1 -0
- package/dist/types/lib/text/TextMeasurer.d.ts +107 -0
- package/dist/types/lib/text/TextMeasurer.d.ts.map +1 -0
- package/dist/types/lib/text/TextPositionCalculator.d.ts +72 -0
- package/dist/types/lib/text/TextPositionCalculator.d.ts.map +1 -0
- package/dist/types/lib/text/TextState.d.ts +236 -0
- package/dist/types/lib/text/TextState.d.ts.map +1 -0
- package/dist/types/lib/text/index.d.ts +27 -0
- package/dist/types/lib/text/index.d.ts.map +1 -0
- package/dist/types/lib/text/regions/BodyTextRegion.d.ts +68 -0
- package/dist/types/lib/text/regions/BodyTextRegion.d.ts.map +1 -0
- package/dist/types/lib/text/regions/FooterTextRegion.d.ts +68 -0
- package/dist/types/lib/text/regions/FooterTextRegion.d.ts.map +1 -0
- package/dist/types/lib/text/regions/HeaderTextRegion.d.ts +68 -0
- package/dist/types/lib/text/regions/HeaderTextRegion.d.ts.map +1 -0
- package/dist/types/lib/text/regions/index.d.ts +7 -0
- package/dist/types/lib/text/regions/index.d.ts.map +1 -0
- package/dist/types/lib/text/types.d.ts +268 -0
- package/dist/types/lib/text/types.d.ts.map +1 -0
- package/dist/types/lib/types/index.d.ts +206 -0
- package/dist/types/lib/types/index.d.ts.map +1 -0
- package/dist/types/lib/undo/index.d.ts +8 -0
- package/dist/types/lib/undo/index.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/ContentDiscovery.d.ts +101 -0
- package/dist/types/lib/undo/transaction/ContentDiscovery.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/FocusTracker.d.ts +49 -0
- package/dist/types/lib/undo/transaction/FocusTracker.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/MutationUndo.d.ts +57 -0
- package/dist/types/lib/undo/transaction/MutationUndo.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/ObjectMutationObserver.d.ts +79 -0
- package/dist/types/lib/undo/transaction/ObjectMutationObserver.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/TextMutationObserver.d.ts +60 -0
- package/dist/types/lib/undo/transaction/TextMutationObserver.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/TransactionManager.d.ts +148 -0
- package/dist/types/lib/undo/transaction/TransactionManager.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/index.d.ts +17 -0
- package/dist/types/lib/undo/transaction/index.d.ts.map +1 -0
- package/dist/types/lib/undo/transaction/types.d.ts +269 -0
- package/dist/types/lib/undo/transaction/types.d.ts.map +1 -0
- package/dist/types/lib/utils/blob-utils.d.ts +2 -0
- package/dist/types/lib/utils/blob-utils.d.ts.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowingTextContent.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/FlowingTextContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HyperlinkManager - Manages hyperlinks within flowing text content
|
|
3
|
+
*/
|
|
4
|
+
import { EventEmitter } from '../events/EventEmitter';
|
|
5
|
+
/**
|
|
6
|
+
* Formatting options for hyperlinks
|
|
7
|
+
*/
|
|
8
|
+
export interface HyperlinkFormatting {
|
|
9
|
+
color?: string;
|
|
10
|
+
underline?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options when inserting a hyperlink
|
|
14
|
+
*/
|
|
15
|
+
export interface HyperlinkOptions {
|
|
16
|
+
title?: string;
|
|
17
|
+
formatting?: HyperlinkFormatting;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Represents a hyperlink in the text
|
|
21
|
+
*/
|
|
22
|
+
export interface Hyperlink {
|
|
23
|
+
id: string;
|
|
24
|
+
url: string;
|
|
25
|
+
startIndex: number;
|
|
26
|
+
endIndex: number;
|
|
27
|
+
title?: string;
|
|
28
|
+
formatting?: HyperlinkFormatting;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Update payload for hyperlinks
|
|
32
|
+
*/
|
|
33
|
+
export interface HyperlinkUpdate {
|
|
34
|
+
url?: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
startIndex?: number;
|
|
37
|
+
endIndex?: number;
|
|
38
|
+
formatting?: HyperlinkFormatting;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Serialized hyperlink data
|
|
42
|
+
*/
|
|
43
|
+
export interface HyperlinkData {
|
|
44
|
+
id: string;
|
|
45
|
+
url: string;
|
|
46
|
+
startIndex: number;
|
|
47
|
+
endIndex: number;
|
|
48
|
+
title?: string;
|
|
49
|
+
formatting?: HyperlinkFormatting;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Manages hyperlinks within text content
|
|
53
|
+
*/
|
|
54
|
+
export declare class HyperlinkManager extends EventEmitter {
|
|
55
|
+
private hyperlinks;
|
|
56
|
+
private nextId;
|
|
57
|
+
/**
|
|
58
|
+
* Insert a new hyperlink
|
|
59
|
+
*/
|
|
60
|
+
insert(url: string, startIndex: number, endIndex: number, options?: HyperlinkOptions): Hyperlink;
|
|
61
|
+
/**
|
|
62
|
+
* Remove a hyperlink by id
|
|
63
|
+
*/
|
|
64
|
+
remove(id: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* Update a hyperlink's properties
|
|
67
|
+
*/
|
|
68
|
+
update(id: string, updates: HyperlinkUpdate): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get a hyperlink by id
|
|
71
|
+
*/
|
|
72
|
+
getHyperlinkById(id: string): Hyperlink | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Get the hyperlink at a specific text index
|
|
75
|
+
*/
|
|
76
|
+
getHyperlinkAt(index: number): Hyperlink | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Get all hyperlinks overlapping a range
|
|
79
|
+
*/
|
|
80
|
+
getHyperlinksInRange(startIndex: number, endIndex: number): Hyperlink[];
|
|
81
|
+
/**
|
|
82
|
+
* Get all hyperlinks
|
|
83
|
+
*/
|
|
84
|
+
getAll(): Hyperlink[];
|
|
85
|
+
/**
|
|
86
|
+
* Shift hyperlinks after text insertion
|
|
87
|
+
*/
|
|
88
|
+
shiftHyperlinks(insertionPoint: number, delta: number): void;
|
|
89
|
+
/**
|
|
90
|
+
* Handle text deletion and adjust hyperlinks accordingly
|
|
91
|
+
*/
|
|
92
|
+
handleDeletion(startIndex: number, length: number): void;
|
|
93
|
+
/**
|
|
94
|
+
* Remove all hyperlinks
|
|
95
|
+
*/
|
|
96
|
+
clear(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Serialize hyperlinks to JSON
|
|
99
|
+
*/
|
|
100
|
+
toJSON(): HyperlinkData[];
|
|
101
|
+
/**
|
|
102
|
+
* Load hyperlinks from JSON
|
|
103
|
+
*/
|
|
104
|
+
fromJSON(data: HyperlinkData[]): void;
|
|
105
|
+
/**
|
|
106
|
+
* Generate a unique id
|
|
107
|
+
*/
|
|
108
|
+
private generateId;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=HyperlinkManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlinkManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/HyperlinkManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAa;IAE3B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAiBhG;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAOxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAyBlD;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAInD;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASpD;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAavE;;OAEG;IACH,MAAM,IAAI,SAAS,EAAE;IAIrB;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc5D;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAsDxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE;IAWzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI;IAkBrC;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownParser - Basic markdown parser for field values.
|
|
3
|
+
*
|
|
4
|
+
* Supports a minimal subset of markdown:
|
|
5
|
+
* - **bold** or __bold__
|
|
6
|
+
* - *italic* or _italic_
|
|
7
|
+
* - [link text](url)
|
|
8
|
+
*
|
|
9
|
+
* Returns parsed segments that can be used to apply formatting
|
|
10
|
+
* during the merge process.
|
|
11
|
+
*/
|
|
12
|
+
import type { TextFormattingStyle } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* Type of markdown segment.
|
|
15
|
+
*/
|
|
16
|
+
export type MarkdownSegmentType = 'text' | 'bold' | 'italic' | 'bold-italic' | 'link';
|
|
17
|
+
/**
|
|
18
|
+
* A parsed segment of markdown text.
|
|
19
|
+
*/
|
|
20
|
+
export interface MarkdownSegment {
|
|
21
|
+
type: MarkdownSegmentType;
|
|
22
|
+
text: string;
|
|
23
|
+
url?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Result of parsing markdown text.
|
|
27
|
+
*/
|
|
28
|
+
export interface ParsedMarkdown {
|
|
29
|
+
segments: MarkdownSegment[];
|
|
30
|
+
plainText: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse markdown text into segments.
|
|
34
|
+
*
|
|
35
|
+
* @param text - The markdown text to parse
|
|
36
|
+
* @returns Parsed markdown with segments and plain text
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseMarkdown(text: string): ParsedMarkdown;
|
|
39
|
+
/**
|
|
40
|
+
* Apply markdown formatting to a base text formatting style.
|
|
41
|
+
*
|
|
42
|
+
* @param baseStyle - The base text formatting style
|
|
43
|
+
* @param segment - The markdown segment
|
|
44
|
+
* @returns Modified formatting style
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyMarkdownFormatting(baseStyle: TextFormattingStyle, segment: MarkdownSegment): TextFormattingStyle;
|
|
47
|
+
/**
|
|
48
|
+
* Check if text contains markdown syntax.
|
|
49
|
+
*/
|
|
50
|
+
export declare function containsMarkdown(text: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Strip markdown syntax from text, returning plain text.
|
|
53
|
+
*/
|
|
54
|
+
export declare function stripMarkdown(text: string): string;
|
|
55
|
+
//# sourceMappingURL=MarkdownParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownParser.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/MarkdownParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqD1D;AAsGD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,eAAe,GACvB,mBAAmB,CAoBrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
+
import { ParagraphFormatting, TextAlignment, ListFormatting } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Manages per-paragraph formatting (alignment, etc.).
|
|
5
|
+
*
|
|
6
|
+
* Paragraphs are identified by their start index (0 or position after \n).
|
|
7
|
+
* Each paragraph stores its formatting; unset paragraphs use default.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ParagraphFormattingManager extends EventEmitter {
|
|
10
|
+
private formatting;
|
|
11
|
+
private _defaultFormatting;
|
|
12
|
+
constructor(defaultFormatting?: Partial<ParagraphFormatting>);
|
|
13
|
+
/**
|
|
14
|
+
* Get the default formatting applied to unformatted paragraphs.
|
|
15
|
+
*/
|
|
16
|
+
get defaultFormatting(): ParagraphFormatting;
|
|
17
|
+
/**
|
|
18
|
+
* Update the default formatting.
|
|
19
|
+
*/
|
|
20
|
+
setDefaultFormatting(formatting: Partial<ParagraphFormatting>): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get the paragraph start index for a given text position.
|
|
23
|
+
* Searches backward for the nearest \n or returns 0.
|
|
24
|
+
*/
|
|
25
|
+
getParagraphStart(textIndex: number, content: string): number;
|
|
26
|
+
/**
|
|
27
|
+
* Get formatting for a paragraph containing the given text index.
|
|
28
|
+
*/
|
|
29
|
+
getFormattingAt(textIndex: number, content: string): ParagraphFormatting;
|
|
30
|
+
/**
|
|
31
|
+
* Get formatting for a paragraph by its start index.
|
|
32
|
+
*/
|
|
33
|
+
getFormattingForParagraph(paragraphStartIndex: number): ParagraphFormatting;
|
|
34
|
+
/**
|
|
35
|
+
* Set alignment for a paragraph.
|
|
36
|
+
*/
|
|
37
|
+
setAlignment(paragraphStartIndex: number, alignment: TextAlignment): void;
|
|
38
|
+
/**
|
|
39
|
+
* Set list formatting for a paragraph.
|
|
40
|
+
* Pass undefined to remove list formatting.
|
|
41
|
+
*/
|
|
42
|
+
setListFormatting(paragraphStartIndex: number, listFormatting: ListFormatting | undefined): void;
|
|
43
|
+
/**
|
|
44
|
+
* Clear list formatting from a paragraph (preserving other formatting).
|
|
45
|
+
*/
|
|
46
|
+
clearListFormatting(paragraphStartIndex: number): void;
|
|
47
|
+
/**
|
|
48
|
+
* Toggle list type for a paragraph.
|
|
49
|
+
* If paragraph already has the same list type, remove list formatting.
|
|
50
|
+
* If paragraph has different list type or no list, apply the new type.
|
|
51
|
+
*/
|
|
52
|
+
toggleList(paragraphStartIndex: number, listType: 'bullet' | 'number'): void;
|
|
53
|
+
/**
|
|
54
|
+
* Increase the nesting level of a list paragraph.
|
|
55
|
+
* If paragraph is not a list, convert it to a bullet list at level 0.
|
|
56
|
+
*/
|
|
57
|
+
indentParagraph(paragraphStartIndex: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Decrease the nesting level of a list paragraph.
|
|
60
|
+
* If at level 0, remove list formatting entirely.
|
|
61
|
+
*/
|
|
62
|
+
outdentParagraph(paragraphStartIndex: number): void;
|
|
63
|
+
/**
|
|
64
|
+
* Get the bullet style for a given nesting level.
|
|
65
|
+
*/
|
|
66
|
+
private getBulletStyleForLevel;
|
|
67
|
+
/**
|
|
68
|
+
* Get the number style for a given nesting level.
|
|
69
|
+
*/
|
|
70
|
+
private getNumberStyleForLevel;
|
|
71
|
+
/**
|
|
72
|
+
* Get the list number for a numbered paragraph.
|
|
73
|
+
* Returns undefined for bullet lists or non-list paragraphs.
|
|
74
|
+
* Counts consecutive numbered paragraphs at the same nesting level.
|
|
75
|
+
* Nested items (higher nesting level) don't break the sequence.
|
|
76
|
+
*/
|
|
77
|
+
getListNumber(paragraphStartIndex: number, content: string): number | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Apply formatting to a range of paragraphs (by text range).
|
|
80
|
+
* Finds all paragraph starts within the range and applies formatting.
|
|
81
|
+
*/
|
|
82
|
+
applyToRange(start: number, end: number, content: string, formatting: Partial<ParagraphFormatting>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get paragraph boundaries within a text range.
|
|
85
|
+
*/
|
|
86
|
+
private getParagraphBoundariesInRange;
|
|
87
|
+
/**
|
|
88
|
+
* Shift paragraph indices when text is inserted.
|
|
89
|
+
* @param fromIndex The position where text was inserted
|
|
90
|
+
* @param delta The number of characters inserted (positive)
|
|
91
|
+
* @param content The content AFTER insertion (used to check for new paragraphs)
|
|
92
|
+
*/
|
|
93
|
+
shiftParagraphs(fromIndex: number, delta: number, content: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Handle text deletion - remove affected paragraphs, shift remaining.
|
|
96
|
+
* @param start Start of deleted range
|
|
97
|
+
* @param length Length of deleted text
|
|
98
|
+
*/
|
|
99
|
+
handleDeletion(start: number, length: number): void;
|
|
100
|
+
/**
|
|
101
|
+
* Clear all paragraph formatting.
|
|
102
|
+
*/
|
|
103
|
+
clear(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Serialize for storage.
|
|
106
|
+
*/
|
|
107
|
+
toJSON(): Array<{
|
|
108
|
+
paragraphStart: number;
|
|
109
|
+
formatting: ParagraphFormatting;
|
|
110
|
+
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Deserialize from storage.
|
|
113
|
+
*/
|
|
114
|
+
fromJSON(data: Array<{
|
|
115
|
+
paragraphStart: number;
|
|
116
|
+
formatting: ParagraphFormatting;
|
|
117
|
+
}>): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get all formatting entries (for debugging/inspection).
|
|
120
|
+
*/
|
|
121
|
+
getAllFormatting(): Map<number, ParagraphFormatting>;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=ParagraphFormatting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParagraphFormatting.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/ParagraphFormatting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,aAAa,EAEb,cAAc,EAIf,MAAM,SAAS,CAAC;AASjB;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAE1D,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,kBAAkB,CAAsB;gBAEpC,iBAAiB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAK5D;;OAEG;IACH,IAAI,iBAAiB,IAAI,mBAAmB,CAE3C;IAED;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKpE;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAY7D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAKxE;;OAEG;IACH,yBAAyB,CAAC,mBAAmB,EAAE,MAAM,GAAG,mBAAmB;IAK3E;;OAEG;IACH,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAMzE;;;OAGG;IACH,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAYhG;;OAEG;IACH,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAItD;;;;OAIG;IACH,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAyB5E;;;OAGG;IACH,eAAe,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IA8BlD;;;OAGG;IACH,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IA8BnD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;;;;OAKG;IACH,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAoD/E;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAUzG;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAiBrC;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA2CxE;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BnD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,IAAI,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAO5E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,CAAC,GAAG,IAAI;IAQxF;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;CAGrD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Point } from '../types';
|
|
2
|
+
import { EditableTextRegion } from './EditableTextRegion';
|
|
3
|
+
/**
|
|
4
|
+
* Manages all editable text regions in the document.
|
|
5
|
+
* Provides unified access to body, header, footer, and text box regions.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RegionManager {
|
|
8
|
+
private _bodyRegion;
|
|
9
|
+
private _headerRegion;
|
|
10
|
+
private _footerRegion;
|
|
11
|
+
private _textBoxRegions;
|
|
12
|
+
/**
|
|
13
|
+
* Set the body text region.
|
|
14
|
+
*/
|
|
15
|
+
setBodyRegion(region: EditableTextRegion): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get the body text region.
|
|
18
|
+
*/
|
|
19
|
+
getBodyRegion(): EditableTextRegion | null;
|
|
20
|
+
/**
|
|
21
|
+
* Set the header text region.
|
|
22
|
+
*/
|
|
23
|
+
setHeaderRegion(region: EditableTextRegion): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get the header text region.
|
|
26
|
+
*/
|
|
27
|
+
getHeaderRegion(): EditableTextRegion | null;
|
|
28
|
+
/**
|
|
29
|
+
* Set the footer text region.
|
|
30
|
+
*/
|
|
31
|
+
setFooterRegion(region: EditableTextRegion): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the footer text region.
|
|
34
|
+
*/
|
|
35
|
+
getFooterRegion(): EditableTextRegion | null;
|
|
36
|
+
/**
|
|
37
|
+
* Register a text box region.
|
|
38
|
+
*/
|
|
39
|
+
registerTextBox(region: EditableTextRegion): void;
|
|
40
|
+
/**
|
|
41
|
+
* Unregister a text box region.
|
|
42
|
+
*/
|
|
43
|
+
unregisterTextBox(id: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get a text box region by ID.
|
|
46
|
+
*/
|
|
47
|
+
getTextBoxRegion(id: string): EditableTextRegion | null;
|
|
48
|
+
/**
|
|
49
|
+
* Get all text box regions.
|
|
50
|
+
*/
|
|
51
|
+
getAllTextBoxRegions(): EditableTextRegion[];
|
|
52
|
+
/**
|
|
53
|
+
* Get all regions (body, header, footer, and all text boxes).
|
|
54
|
+
*/
|
|
55
|
+
getAllRegions(): EditableTextRegion[];
|
|
56
|
+
/**
|
|
57
|
+
* Find the region at a given point.
|
|
58
|
+
* Text boxes are checked first (they're on top), then header/footer, then body.
|
|
59
|
+
*
|
|
60
|
+
* @param point Point in canvas coordinates
|
|
61
|
+
* @param pageIndex The page index
|
|
62
|
+
* @returns The region containing the point, or null if none
|
|
63
|
+
*/
|
|
64
|
+
getRegionAtPoint(point: Point, pageIndex: number): EditableTextRegion | null;
|
|
65
|
+
/**
|
|
66
|
+
* Find the region that contains a specific FlowingTextContent.
|
|
67
|
+
* Useful for routing keyboard events.
|
|
68
|
+
*/
|
|
69
|
+
findRegionByFlowingContent(flowingContent: any): EditableTextRegion | null;
|
|
70
|
+
/**
|
|
71
|
+
* Clear all regions.
|
|
72
|
+
*/
|
|
73
|
+
clear(): void;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=RegionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegionManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/RegionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,eAAe,CAA8C;IAErE;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI/C;;OAEG;IACH,aAAa,IAAI,kBAAkB,GAAG,IAAI;IAI1C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;OAEG;IACH,eAAe,IAAI,kBAAkB,GAAG,IAAI;IAI5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;OAEG;IACH,eAAe,IAAI,kBAAkB,GAAG,IAAI;IAI5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,kBAAkB,EAAE;IAI5C;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAcrC;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IA0B5E;;;OAGG;IACH,0BAA0B,CAAC,cAAc,EAAE,GAAG,GAAG,kBAAkB,GAAG,IAAI;IAoB1E;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
+
import { RepeatingSection } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Manages repeating sections within text content.
|
|
5
|
+
* Repeating sections define ranges of content that loop over array data during merge.
|
|
6
|
+
* They start and end at paragraph boundaries.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RepeatingSectionManager extends EventEmitter {
|
|
9
|
+
private sections;
|
|
10
|
+
private nextId;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Create a new repeating section.
|
|
14
|
+
* @param startIndex Text index at paragraph start (must be 0 or immediately after a newline)
|
|
15
|
+
* @param endIndex Text index at closing paragraph start (must be immediately after a newline)
|
|
16
|
+
* @param fieldPath The field path to the array to loop over (e.g., "items")
|
|
17
|
+
*/
|
|
18
|
+
create(startIndex: number, endIndex: number, fieldPath: string): RepeatingSection;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a repeating section by ID.
|
|
21
|
+
*/
|
|
22
|
+
remove(id: string): RepeatingSection | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Get a repeating section by ID.
|
|
25
|
+
*/
|
|
26
|
+
getSection(id: string): RepeatingSection | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Get all repeating sections.
|
|
29
|
+
*/
|
|
30
|
+
getSections(): RepeatingSection[];
|
|
31
|
+
/**
|
|
32
|
+
* Get all repeating sections sorted by startIndex.
|
|
33
|
+
*/
|
|
34
|
+
getSectionsSorted(): RepeatingSection[];
|
|
35
|
+
/**
|
|
36
|
+
* Get all repeating sections sorted by startIndex in descending order.
|
|
37
|
+
* Useful for processing sections end-to-start during merge.
|
|
38
|
+
*/
|
|
39
|
+
getSectionsDescending(): RepeatingSection[];
|
|
40
|
+
/**
|
|
41
|
+
* Find a repeating section that contains the given text index.
|
|
42
|
+
*/
|
|
43
|
+
getSectionContaining(textIndex: number): RepeatingSection | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Find a repeating section that has a boundary at the given text index.
|
|
46
|
+
* Returns the section if textIndex matches startIndex or endIndex.
|
|
47
|
+
*/
|
|
48
|
+
getSectionAtBoundary(textIndex: number): RepeatingSection | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Update a section's field path.
|
|
51
|
+
*/
|
|
52
|
+
updateFieldPath(id: string, fieldPath: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Update a section's visual state (called during rendering).
|
|
55
|
+
*/
|
|
56
|
+
updateVisualState(id: string, visualState: RepeatingSection['visualState']): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Shift section positions when text is inserted.
|
|
59
|
+
* @param fromIndex The position where text was inserted
|
|
60
|
+
* @param delta The number of characters inserted (positive)
|
|
61
|
+
*/
|
|
62
|
+
shiftSections(fromIndex: number, delta: number): void;
|
|
63
|
+
/**
|
|
64
|
+
* Handle deletion of text range.
|
|
65
|
+
* Sections entirely within the deleted range are removed.
|
|
66
|
+
* Sections partially overlapping are adjusted or removed.
|
|
67
|
+
* @returns Array of removed sections
|
|
68
|
+
*/
|
|
69
|
+
handleDeletion(start: number, length: number): RepeatingSection[];
|
|
70
|
+
/**
|
|
71
|
+
* Validate that the given boundaries are at paragraph boundaries.
|
|
72
|
+
* @param start The proposed start index
|
|
73
|
+
* @param end The proposed end index
|
|
74
|
+
* @param content The text content to validate against
|
|
75
|
+
* @returns true if valid, false otherwise
|
|
76
|
+
*/
|
|
77
|
+
validateBoundaries(start: number, end: number, content: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Get the number of repeating sections.
|
|
80
|
+
*/
|
|
81
|
+
get count(): number;
|
|
82
|
+
/**
|
|
83
|
+
* Check if there are any repeating sections.
|
|
84
|
+
*/
|
|
85
|
+
get isEmpty(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Clear all repeating sections.
|
|
88
|
+
*/
|
|
89
|
+
clear(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Serialize all sections to JSON.
|
|
92
|
+
*/
|
|
93
|
+
toJSON(): RepeatingSection[];
|
|
94
|
+
/**
|
|
95
|
+
* Load sections from serialized data.
|
|
96
|
+
*/
|
|
97
|
+
fromJSON(data: RepeatingSection[]): void;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=RepeatingSectionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepeatingSectionManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/RepeatingSectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,MAAM,CAAa;;IAM3B;;;;;OAKG;IACH,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,gBAAgB;IAgBnB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAShD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIpD;;OAEG;IACH,WAAW,IAAI,gBAAgB,EAAE;IAIjC;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAIvC;;;OAGG;IACH,qBAAqB,IAAI,gBAAgB,EAAE;IAI3C;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IASrE;;;OAGG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IASrE;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAWvD;;OAEG;IACH,iBAAiB,CACf,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAC3C,OAAO;IAUV;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAuBrD;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAiFjE;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IA+BxE;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,MAAM,IAAI,gBAAgB,EAAE;IAU5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI;CAsBzC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
+
import { SubstitutionField, SubstitutionFieldConfig, TextFormattingStyle } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Manages substitution fields within text content.
|
|
5
|
+
* Substitution fields are atomic placeholders for data merge,
|
|
6
|
+
* rendered as {{field: name}}.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SubstitutionFieldManager extends EventEmitter {
|
|
9
|
+
private fields;
|
|
10
|
+
private nextId;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Insert a new substitution field at a text index.
|
|
14
|
+
* @param fieldName The name of the data field to substitute
|
|
15
|
+
* @param textIndex The position in text where the \uFFFC placeholder is
|
|
16
|
+
* @param config Optional configuration for the field
|
|
17
|
+
*/
|
|
18
|
+
insert(fieldName: string, textIndex: number, config?: SubstitutionFieldConfig): SubstitutionField;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a substitution field at a specific text index.
|
|
21
|
+
*/
|
|
22
|
+
remove(textIndex: number): SubstitutionField | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Get a substitution field at a specific text index.
|
|
25
|
+
*/
|
|
26
|
+
getFieldAt(textIndex: number): SubstitutionField | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Check if there is a substitution field at a specific text index.
|
|
29
|
+
*/
|
|
30
|
+
hasFieldAt(textIndex: number): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get all substitution fields in a range.
|
|
33
|
+
* @param start Start of range (inclusive)
|
|
34
|
+
* @param end End of range (exclusive)
|
|
35
|
+
*/
|
|
36
|
+
getFieldsInRange(start: number, end: number): Array<{
|
|
37
|
+
textIndex: number;
|
|
38
|
+
field: SubstitutionField;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Insert a field at a specific position (for undo restoration).
|
|
42
|
+
* Unlike insert(), this preserves the field's existing ID.
|
|
43
|
+
*/
|
|
44
|
+
insertAt(textIndex: number, field: SubstitutionField): void;
|
|
45
|
+
/**
|
|
46
|
+
* Get all substitution fields.
|
|
47
|
+
*/
|
|
48
|
+
getFields(): Map<number, SubstitutionField>;
|
|
49
|
+
/**
|
|
50
|
+
* Get all substitution fields as an array, sorted by text index.
|
|
51
|
+
*/
|
|
52
|
+
getFieldsArray(): SubstitutionField[];
|
|
53
|
+
/**
|
|
54
|
+
* Find a substitution field by its ID.
|
|
55
|
+
*/
|
|
56
|
+
findById(id: string): SubstitutionField | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Find a substitution field by field name.
|
|
59
|
+
* Returns the first match if there are multiple fields with the same name.
|
|
60
|
+
*/
|
|
61
|
+
findByFieldName(fieldName: string): SubstitutionField | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get all substitution fields with a specific field name.
|
|
64
|
+
*/
|
|
65
|
+
findAllByFieldName(fieldName: string): SubstitutionField[];
|
|
66
|
+
/**
|
|
67
|
+
* Check if a field is a page number field.
|
|
68
|
+
*/
|
|
69
|
+
isPageNumberField(field: SubstitutionField): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Check if a field is a page count field.
|
|
72
|
+
*/
|
|
73
|
+
isPageCountField(field: SubstitutionField): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Check if a field is a special field (page number or page count).
|
|
76
|
+
*/
|
|
77
|
+
isSpecialField(field: SubstitutionField): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Get all page number fields.
|
|
80
|
+
*/
|
|
81
|
+
getPageNumberFields(): SubstitutionField[];
|
|
82
|
+
/**
|
|
83
|
+
* Get all page count fields.
|
|
84
|
+
*/
|
|
85
|
+
getPageCountFields(): SubstitutionField[];
|
|
86
|
+
/**
|
|
87
|
+
* Get all data fields (regular substitution fields, not page number/count).
|
|
88
|
+
*/
|
|
89
|
+
getDataFields(): SubstitutionField[];
|
|
90
|
+
/**
|
|
91
|
+
* Shift field positions when text is inserted.
|
|
92
|
+
* @param fromIndex The position where text was inserted
|
|
93
|
+
* @param delta The number of characters inserted (positive)
|
|
94
|
+
*/
|
|
95
|
+
shiftFields(fromIndex: number, delta: number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Handle deletion of text range.
|
|
98
|
+
* Fields within the deleted range are removed.
|
|
99
|
+
* Fields after the range are shifted.
|
|
100
|
+
* @returns Array of removed fields
|
|
101
|
+
*/
|
|
102
|
+
handleDeletion(start: number, length: number): SubstitutionField[];
|
|
103
|
+
/**
|
|
104
|
+
* Update a field's configuration.
|
|
105
|
+
*/
|
|
106
|
+
updateFieldConfig(textIndex: number, config: Partial<SubstitutionFieldConfig & {
|
|
107
|
+
fieldName?: string;
|
|
108
|
+
}>): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Set formatting for a specific field.
|
|
111
|
+
*/
|
|
112
|
+
setFieldFormatting(textIndex: number, formatting: TextFormattingStyle): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Get formatting for a specific field.
|
|
115
|
+
* Returns the field's custom formatting or default formatting.
|
|
116
|
+
*/
|
|
117
|
+
getFieldFormatting(textIndex: number): TextFormattingStyle;
|
|
118
|
+
/**
|
|
119
|
+
* Get the display text for a substitution field.
|
|
120
|
+
* For data fields: {{fieldName}}
|
|
121
|
+
* For page number fields: shows page number or {{page}}
|
|
122
|
+
* For page count fields: shows page count or {{pages}}
|
|
123
|
+
* @param field The substitution field
|
|
124
|
+
* @param pageNumber Optional current page number (1-based) for page number fields
|
|
125
|
+
* @param pageCount Optional total page count for page count fields
|
|
126
|
+
*/
|
|
127
|
+
getDisplayText(field: SubstitutionField, pageNumber?: number, pageCount?: number): string;
|
|
128
|
+
/**
|
|
129
|
+
* Get the display text for a field at a specific index.
|
|
130
|
+
*/
|
|
131
|
+
getDisplayTextAt(textIndex: number): string | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Get the number of substitution fields.
|
|
134
|
+
*/
|
|
135
|
+
get count(): number;
|
|
136
|
+
/**
|
|
137
|
+
* Check if there are any substitution fields.
|
|
138
|
+
*/
|
|
139
|
+
get isEmpty(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Clear all substitution fields.
|
|
142
|
+
*/
|
|
143
|
+
clear(): void;
|
|
144
|
+
/**
|
|
145
|
+
* Serialize all fields to JSON.
|
|
146
|
+
*/
|
|
147
|
+
toJSON(): SubstitutionField[];
|
|
148
|
+
/**
|
|
149
|
+
* Load fields from serialized data.
|
|
150
|
+
*/
|
|
151
|
+
fromJSON(data: SubstitutionField[]): void;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=SubstitutionFieldManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubstitutionFieldManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/text/SubstitutionFieldManager.ts"],"names":[],"mappings":"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"}
|