@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.
Files changed (166) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/LICENSE +21 -0
  3. package/README.md +377 -0
  4. package/dist/pc-editor.esm.js +24820 -0
  5. package/dist/pc-editor.esm.js.map +1 -0
  6. package/dist/pc-editor.js +24877 -0
  7. package/dist/pc-editor.js.map +1 -0
  8. package/dist/pc-editor.min.js +2 -0
  9. package/dist/pc-editor.min.js.map +1 -0
  10. package/dist/types/lib/clipboard/ClipboardManager.d.ts +77 -0
  11. package/dist/types/lib/clipboard/ClipboardManager.d.ts.map +1 -0
  12. package/dist/types/lib/clipboard/HtmlConverter.d.ts +43 -0
  13. package/dist/types/lib/clipboard/HtmlConverter.d.ts.map +1 -0
  14. package/dist/types/lib/clipboard/index.d.ts +9 -0
  15. package/dist/types/lib/clipboard/index.d.ts.map +1 -0
  16. package/dist/types/lib/clipboard/types.d.ts +76 -0
  17. package/dist/types/lib/clipboard/types.d.ts.map +1 -0
  18. package/dist/types/lib/controls/BaseControl.d.ts +72 -0
  19. package/dist/types/lib/controls/BaseControl.d.ts.map +1 -0
  20. package/dist/types/lib/controls/index.d.ts +11 -0
  21. package/dist/types/lib/controls/index.d.ts.map +1 -0
  22. package/dist/types/lib/controls/rulers/HorizontalRuler.d.ts +55 -0
  23. package/dist/types/lib/controls/rulers/HorizontalRuler.d.ts.map +1 -0
  24. package/dist/types/lib/controls/rulers/RulerControl.d.ts +98 -0
  25. package/dist/types/lib/controls/rulers/RulerControl.d.ts.map +1 -0
  26. package/dist/types/lib/controls/rulers/VerticalRuler.d.ts +65 -0
  27. package/dist/types/lib/controls/rulers/VerticalRuler.d.ts.map +1 -0
  28. package/dist/types/lib/controls/rulers/index.d.ts +8 -0
  29. package/dist/types/lib/controls/rulers/index.d.ts.map +1 -0
  30. package/dist/types/lib/controls/rulers/types.d.ts +62 -0
  31. package/dist/types/lib/controls/rulers/types.d.ts.map +1 -0
  32. package/dist/types/lib/controls/types.d.ts +51 -0
  33. package/dist/types/lib/controls/types.d.ts.map +1 -0
  34. package/dist/types/lib/core/Document.d.ts +34 -0
  35. package/dist/types/lib/core/Document.d.ts.map +1 -0
  36. package/dist/types/lib/core/PCEditor.d.ts +761 -0
  37. package/dist/types/lib/core/PCEditor.d.ts.map +1 -0
  38. package/dist/types/lib/core/Page.d.ts +40 -0
  39. package/dist/types/lib/core/Page.d.ts.map +1 -0
  40. package/dist/types/lib/data/DataBinder.d.ts +11 -0
  41. package/dist/types/lib/data/DataBinder.d.ts.map +1 -0
  42. package/dist/types/lib/events/EventEmitter.d.ts +11 -0
  43. package/dist/types/lib/events/EventEmitter.d.ts.map +1 -0
  44. package/dist/types/lib/hit-test/HitTestManager.d.ts +81 -0
  45. package/dist/types/lib/hit-test/HitTestManager.d.ts.map +1 -0
  46. package/dist/types/lib/hit-test/index.d.ts +32 -0
  47. package/dist/types/lib/hit-test/index.d.ts.map +1 -0
  48. package/dist/types/lib/hit-test/types.d.ts +113 -0
  49. package/dist/types/lib/hit-test/types.d.ts.map +1 -0
  50. package/dist/types/lib/import/ContentAnalyzer.d.ts +76 -0
  51. package/dist/types/lib/import/ContentAnalyzer.d.ts.map +1 -0
  52. package/dist/types/lib/import/DocumentBuilder.d.ts +44 -0
  53. package/dist/types/lib/import/DocumentBuilder.d.ts.map +1 -0
  54. package/dist/types/lib/import/PDFImporter.d.ts +65 -0
  55. package/dist/types/lib/import/PDFImporter.d.ts.map +1 -0
  56. package/dist/types/lib/import/PDFParser.d.ts +46 -0
  57. package/dist/types/lib/import/PDFParser.d.ts.map +1 -0
  58. package/dist/types/lib/import/index.d.ts +9 -0
  59. package/dist/types/lib/import/index.d.ts.map +1 -0
  60. package/dist/types/lib/import/types.d.ts +182 -0
  61. package/dist/types/lib/import/types.d.ts.map +1 -0
  62. package/dist/types/lib/index.d.ts +16 -0
  63. package/dist/types/lib/index.d.ts.map +1 -0
  64. package/dist/types/lib/layout/FlowManager.d.ts +29 -0
  65. package/dist/types/lib/layout/FlowManager.d.ts.map +1 -0
  66. package/dist/types/lib/layout/LayoutEngine.d.ts +39 -0
  67. package/dist/types/lib/layout/LayoutEngine.d.ts.map +1 -0
  68. package/dist/types/lib/objects/BaseEmbeddedObject.d.ts +133 -0
  69. package/dist/types/lib/objects/BaseEmbeddedObject.d.ts.map +1 -0
  70. package/dist/types/lib/objects/EmbeddedObjectFactory.d.ts +57 -0
  71. package/dist/types/lib/objects/EmbeddedObjectFactory.d.ts.map +1 -0
  72. package/dist/types/lib/objects/ImageObject.d.ts +60 -0
  73. package/dist/types/lib/objects/ImageObject.d.ts.map +1 -0
  74. package/dist/types/lib/objects/TextBoxObject.d.ts +208 -0
  75. package/dist/types/lib/objects/TextBoxObject.d.ts.map +1 -0
  76. package/dist/types/lib/objects/index.d.ts +9 -0
  77. package/dist/types/lib/objects/index.d.ts.map +1 -0
  78. package/dist/types/lib/objects/table/TableCell.d.ts +165 -0
  79. package/dist/types/lib/objects/table/TableCell.d.ts.map +1 -0
  80. package/dist/types/lib/objects/table/TableCellMerger.d.ts +66 -0
  81. package/dist/types/lib/objects/table/TableCellMerger.d.ts.map +1 -0
  82. package/dist/types/lib/objects/table/TableObject.d.ts +434 -0
  83. package/dist/types/lib/objects/table/TableObject.d.ts.map +1 -0
  84. package/dist/types/lib/objects/table/TableResizeHandler.d.ts +80 -0
  85. package/dist/types/lib/objects/table/TableResizeHandler.d.ts.map +1 -0
  86. package/dist/types/lib/objects/table/TableRow.d.ts +65 -0
  87. package/dist/types/lib/objects/table/TableRow.d.ts.map +1 -0
  88. package/dist/types/lib/objects/table/index.d.ts +12 -0
  89. package/dist/types/lib/objects/table/index.d.ts.map +1 -0
  90. package/dist/types/lib/objects/table/types.d.ts +239 -0
  91. package/dist/types/lib/objects/table/types.d.ts.map +1 -0
  92. package/dist/types/lib/objects/types.d.ts +135 -0
  93. package/dist/types/lib/objects/types.d.ts.map +1 -0
  94. package/dist/types/lib/rendering/CanvasManager.d.ts +282 -0
  95. package/dist/types/lib/rendering/CanvasManager.d.ts.map +1 -0
  96. package/dist/types/lib/rendering/FlowingTextRenderer.d.ts +348 -0
  97. package/dist/types/lib/rendering/FlowingTextRenderer.d.ts.map +1 -0
  98. package/dist/types/lib/rendering/PDFGenerator.d.ts +103 -0
  99. package/dist/types/lib/rendering/PDFGenerator.d.ts.map +1 -0
  100. package/dist/types/lib/rendering/pdf-utils.d.ts +54 -0
  101. package/dist/types/lib/rendering/pdf-utils.d.ts.map +1 -0
  102. package/dist/types/lib/text/EditableTextRegion.d.ts +105 -0
  103. package/dist/types/lib/text/EditableTextRegion.d.ts.map +1 -0
  104. package/dist/types/lib/text/EmbeddedObjectManager.d.ts +97 -0
  105. package/dist/types/lib/text/EmbeddedObjectManager.d.ts.map +1 -0
  106. package/dist/types/lib/text/FieldFormatter.d.ts +26 -0
  107. package/dist/types/lib/text/FieldFormatter.d.ts.map +1 -0
  108. package/dist/types/lib/text/FlowingTextContent.d.ts +571 -0
  109. package/dist/types/lib/text/FlowingTextContent.d.ts.map +1 -0
  110. package/dist/types/lib/text/HyperlinkManager.d.ts +110 -0
  111. package/dist/types/lib/text/HyperlinkManager.d.ts.map +1 -0
  112. package/dist/types/lib/text/MarkdownParser.d.ts +55 -0
  113. package/dist/types/lib/text/MarkdownParser.d.ts.map +1 -0
  114. package/dist/types/lib/text/ParagraphFormatting.d.ts +123 -0
  115. package/dist/types/lib/text/ParagraphFormatting.d.ts.map +1 -0
  116. package/dist/types/lib/text/RegionManager.d.ts +75 -0
  117. package/dist/types/lib/text/RegionManager.d.ts.map +1 -0
  118. package/dist/types/lib/text/RepeatingSectionManager.d.ts +99 -0
  119. package/dist/types/lib/text/RepeatingSectionManager.d.ts.map +1 -0
  120. package/dist/types/lib/text/SubstitutionFieldManager.d.ts +153 -0
  121. package/dist/types/lib/text/SubstitutionFieldManager.d.ts.map +1 -0
  122. package/dist/types/lib/text/TextFormatting.d.ts +85 -0
  123. package/dist/types/lib/text/TextFormatting.d.ts.map +1 -0
  124. package/dist/types/lib/text/TextLayout.d.ts +126 -0
  125. package/dist/types/lib/text/TextLayout.d.ts.map +1 -0
  126. package/dist/types/lib/text/TextMeasurer.d.ts +107 -0
  127. package/dist/types/lib/text/TextMeasurer.d.ts.map +1 -0
  128. package/dist/types/lib/text/TextPositionCalculator.d.ts +72 -0
  129. package/dist/types/lib/text/TextPositionCalculator.d.ts.map +1 -0
  130. package/dist/types/lib/text/TextState.d.ts +236 -0
  131. package/dist/types/lib/text/TextState.d.ts.map +1 -0
  132. package/dist/types/lib/text/index.d.ts +27 -0
  133. package/dist/types/lib/text/index.d.ts.map +1 -0
  134. package/dist/types/lib/text/regions/BodyTextRegion.d.ts +68 -0
  135. package/dist/types/lib/text/regions/BodyTextRegion.d.ts.map +1 -0
  136. package/dist/types/lib/text/regions/FooterTextRegion.d.ts +68 -0
  137. package/dist/types/lib/text/regions/FooterTextRegion.d.ts.map +1 -0
  138. package/dist/types/lib/text/regions/HeaderTextRegion.d.ts +68 -0
  139. package/dist/types/lib/text/regions/HeaderTextRegion.d.ts.map +1 -0
  140. package/dist/types/lib/text/regions/index.d.ts +7 -0
  141. package/dist/types/lib/text/regions/index.d.ts.map +1 -0
  142. package/dist/types/lib/text/types.d.ts +268 -0
  143. package/dist/types/lib/text/types.d.ts.map +1 -0
  144. package/dist/types/lib/types/index.d.ts +206 -0
  145. package/dist/types/lib/types/index.d.ts.map +1 -0
  146. package/dist/types/lib/undo/index.d.ts +8 -0
  147. package/dist/types/lib/undo/index.d.ts.map +1 -0
  148. package/dist/types/lib/undo/transaction/ContentDiscovery.d.ts +101 -0
  149. package/dist/types/lib/undo/transaction/ContentDiscovery.d.ts.map +1 -0
  150. package/dist/types/lib/undo/transaction/FocusTracker.d.ts +49 -0
  151. package/dist/types/lib/undo/transaction/FocusTracker.d.ts.map +1 -0
  152. package/dist/types/lib/undo/transaction/MutationUndo.d.ts +57 -0
  153. package/dist/types/lib/undo/transaction/MutationUndo.d.ts.map +1 -0
  154. package/dist/types/lib/undo/transaction/ObjectMutationObserver.d.ts +79 -0
  155. package/dist/types/lib/undo/transaction/ObjectMutationObserver.d.ts.map +1 -0
  156. package/dist/types/lib/undo/transaction/TextMutationObserver.d.ts +60 -0
  157. package/dist/types/lib/undo/transaction/TextMutationObserver.d.ts.map +1 -0
  158. package/dist/types/lib/undo/transaction/TransactionManager.d.ts +148 -0
  159. package/dist/types/lib/undo/transaction/TransactionManager.d.ts.map +1 -0
  160. package/dist/types/lib/undo/transaction/index.d.ts +17 -0
  161. package/dist/types/lib/undo/transaction/index.d.ts.map +1 -0
  162. package/dist/types/lib/undo/transaction/types.d.ts +269 -0
  163. package/dist/types/lib/undo/transaction/types.d.ts.map +1 -0
  164. package/dist/types/lib/utils/blob-utils.d.ts +2 -0
  165. package/dist/types/lib/utils/blob-utils.d.ts.map +1 -0
  166. package/package.json +88 -0
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Types for PDF import functionality.
3
+ */
4
+ import { TextFormattingStyle } from '../text/types';
5
+ /**
6
+ * Raw extracted content from a PDF document.
7
+ */
8
+ export interface PDFExtractedContent {
9
+ pageCount: number;
10
+ pages: PDFExtractedPage[];
11
+ metadata?: PDFMetadata;
12
+ }
13
+ /**
14
+ * PDF document metadata.
15
+ */
16
+ export interface PDFMetadata {
17
+ title?: string;
18
+ author?: string;
19
+ subject?: string;
20
+ keywords?: string;
21
+ creationDate?: Date;
22
+ modificationDate?: Date;
23
+ }
24
+ /**
25
+ * Extracted content from a single PDF page.
26
+ */
27
+ export interface PDFExtractedPage {
28
+ pageNumber: number;
29
+ width: number;
30
+ height: number;
31
+ textItems: PDFTextItem[];
32
+ images: PDFImage[];
33
+ }
34
+ /**
35
+ * A text item extracted from PDF.
36
+ */
37
+ export interface PDFTextItem {
38
+ text: string;
39
+ x: number;
40
+ y: number;
41
+ width: number;
42
+ height: number;
43
+ fontName: string;
44
+ fontSize: number;
45
+ fontWeight?: 'normal' | 'bold';
46
+ fontStyle?: 'normal' | 'italic';
47
+ color?: PDFColor;
48
+ transform?: number[];
49
+ }
50
+ /**
51
+ * RGB color from PDF.
52
+ */
53
+ export interface PDFColor {
54
+ r: number;
55
+ g: number;
56
+ b: number;
57
+ }
58
+ /**
59
+ * An image extracted from PDF.
60
+ */
61
+ export interface PDFImage {
62
+ x: number;
63
+ y: number;
64
+ width: number;
65
+ height: number;
66
+ dataUrl: string;
67
+ mimeType: 'image/png' | 'image/jpeg';
68
+ }
69
+ /**
70
+ * Analyzed content with detected structure.
71
+ */
72
+ export interface AnalyzedContent {
73
+ paragraphs: AnalyzedParagraph[];
74
+ images: AnalyzedImage[];
75
+ tables: AnalyzedTable[];
76
+ pageInfo: PageInfo;
77
+ }
78
+ /**
79
+ * Page layout information.
80
+ */
81
+ export interface PageInfo {
82
+ width: number;
83
+ height: number;
84
+ margins: {
85
+ top: number;
86
+ right: number;
87
+ bottom: number;
88
+ left: number;
89
+ };
90
+ }
91
+ /**
92
+ * A detected paragraph with formatting.
93
+ */
94
+ export interface AnalyzedParagraph {
95
+ text: string;
96
+ formattingRuns: FormattingRun[];
97
+ alignment: 'left' | 'center' | 'right' | 'justify';
98
+ pageNumber: number;
99
+ y: number;
100
+ endsWithNewline: boolean;
101
+ }
102
+ /**
103
+ * A formatting run within a paragraph.
104
+ */
105
+ export interface FormattingRun {
106
+ startIndex: number;
107
+ endIndex: number;
108
+ formatting: Partial<TextFormattingStyle>;
109
+ }
110
+ /**
111
+ * An analyzed image with position.
112
+ */
113
+ export interface AnalyzedImage {
114
+ dataUrl: string;
115
+ width: number;
116
+ height: number;
117
+ pageNumber: number;
118
+ y: number;
119
+ position: 'inline' | 'block';
120
+ }
121
+ /**
122
+ * A detected table structure.
123
+ */
124
+ export interface AnalyzedTable {
125
+ rows: AnalyzedTableRow[];
126
+ columnWidths: number[];
127
+ pageNumber: number;
128
+ y: number;
129
+ confidence: number;
130
+ }
131
+ /**
132
+ * A row in an analyzed table.
133
+ */
134
+ export interface AnalyzedTableRow {
135
+ cells: AnalyzedTableCell[];
136
+ }
137
+ /**
138
+ * A cell in an analyzed table.
139
+ */
140
+ export interface AnalyzedTableCell {
141
+ text: string;
142
+ formattingRuns: FormattingRun[];
143
+ }
144
+ /**
145
+ * Options for PDF import.
146
+ */
147
+ export interface PDFImportOptions {
148
+ /** Whether to attempt table detection (default: true) */
149
+ detectTables?: boolean;
150
+ /** Whether to extract images (default: true) */
151
+ extractImages?: boolean;
152
+ /** Minimum confidence for table detection (0-1, default: 0.7) */
153
+ tableConfidenceThreshold?: number;
154
+ /** Password for encrypted PDFs */
155
+ password?: string;
156
+ }
157
+ /**
158
+ * Default import options.
159
+ */
160
+ export declare const DEFAULT_IMPORT_OPTIONS: Required<PDFImportOptions>;
161
+ /**
162
+ * Error codes for PDF import failures.
163
+ */
164
+ export declare enum PDFImportErrorCode {
165
+ INVALID_PDF = "INVALID_PDF",
166
+ ENCRYPTED_PDF = "ENCRYPTED_PDF",
167
+ PASSWORD_REQUIRED = "PASSWORD_REQUIRED",
168
+ INCORRECT_PASSWORD = "INCORRECT_PASSWORD",
169
+ EXTRACTION_FAILED = "EXTRACTION_FAILED",
170
+ IMAGE_EXTRACTION_FAILED = "IMAGE_EXTRACTION_FAILED",
171
+ PARSING_ERROR = "PARSING_ERROR",
172
+ UNSUPPORTED_FEATURE = "UNSUPPORTED_FEATURE"
173
+ }
174
+ /**
175
+ * Error class for PDF import failures.
176
+ */
177
+ export declare class PDFImportError extends Error {
178
+ readonly code: PDFImportErrorCode;
179
+ readonly details?: unknown | undefined;
180
+ constructor(message: string, code: PDFImportErrorCode, details?: unknown | undefined);
181
+ }
182
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/import/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export { PCEditor } from './core/PCEditor';
2
+ export * from './types';
3
+ export { Document } from './core/Document';
4
+ export { Page } from './core/Page';
5
+ export { EventEmitter } from './events/EventEmitter';
6
+ export { FlowingTextContent, TextState, TextFormattingManager, SubstitutionFieldManager, EmbeddedObjectManager, RepeatingSectionManager, TextMeasurer, TextLayout, TextPositionCalculator, BaseTextRegion, RegionManager, BodyTextRegion, HeaderTextRegion, FooterTextRegion } from './text';
7
+ export type { TextFormattingStyle, TextRun, SubstitutionField, SubstitutionFieldConfig, RepeatingSection, RepeatingSectionVisualState, FlowedLine, FlowedPage, FlowedSubstitutionField, FlowedEmbeddedObject, ObjectPosition, TextAlignment, ParagraphFormatting, EditableTextRegion, RegionType, LineAtYResult, PageBoundsProvider, HeaderBoundsProvider, FooterBoundsProvider } from './text';
8
+ export { BaseEmbeddedObject, ImageObject, TextBoxObject, TableObject, TableRow, TableCell, EmbeddedObjectFactory } from './objects';
9
+ export type { EmbeddedObjectConfig, EmbeddedObjectData, ImageObjectConfig, TextBoxObjectConfig, TableObjectConfig, TableCellConfig, TableRowConfig, TableColumnConfig, CellAddress, CellRange, ResizeHandle, Size, Point, Rect, ImageFitMode } from './objects';
10
+ export { ClipboardManager, HtmlConverter } from './clipboard';
11
+ export type { ClipboardContent, ClipboardReadResult, PCEditorClipboardData, ClipboardContentType, CopyOptions, PasteOptions } from './clipboard';
12
+ export { BaseControl, HorizontalRuler, VerticalRuler, RulerControl } from './controls';
13
+ export type { EditorControl, ControlAttachOptions, ControlOptions, Units, RulerOptions, RulerOrientation, TickMark } from './controls';
14
+ export { PDFImporter, PDFParser, ContentAnalyzer, DocumentBuilder, PDFImportError, PDFImportErrorCode, DEFAULT_IMPORT_OPTIONS } from './import';
15
+ export type { PDFImportProgress, PDFImportResult, PDFImportOptions, PDFExtractedContent, PDFExtractedPage, PDFTextItem, PDFImage, PDFMetadata, AnalyzedContent, AnalyzedParagraph, AnalyzedImage, AnalyzedTable, FormattingRun, PageInfo } from './import';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,qBAAqB,EACtB,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,YAAY,EACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,QAAQ,EACT,MAAM,UAAU,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Document } from '../core/Document';
2
+ import { Page } from '../core/Page';
3
+ import { EventEmitter } from '../events/EventEmitter';
4
+ export interface PageBreak {
5
+ elementId: string;
6
+ type: 'before' | 'after' | 'avoid';
7
+ }
8
+ /**
9
+ * FlowManager handles content flow between pages.
10
+ * Note: With the removal of regular elements, flow is now primarily
11
+ * handled by FlowingTextContent. This class maintains the interface
12
+ * for compatibility.
13
+ */
14
+ export declare class FlowManager extends EventEmitter {
15
+ private autoFlow;
16
+ constructor(_document: Document);
17
+ setAutoFlow(enabled: boolean): void;
18
+ getAutoFlow(): boolean;
19
+ checkContentOverflow(): boolean;
20
+ insertPageBreak(_afterElementId: string): void;
21
+ reflowDocument(): void;
22
+ getPageMetrics(page: Page): {
23
+ contentHeight: number;
24
+ availableHeight: number;
25
+ utilizationPercent: number;
26
+ hasOverflow: boolean;
27
+ };
28
+ }
29
+ //# sourceMappingURL=FlowManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/FlowManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAiB;gBAErB,SAAS,EAAE,QAAQ;IAK/B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKnC,WAAW,IAAI,OAAO;IAItB,oBAAoB,IAAI,OAAO;IAK/B,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAI9C,cAAc,IAAI,IAAI;IAKtB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB;CAWF"}
@@ -0,0 +1,39 @@
1
+ import { Document } from '../core/Document';
2
+ import { EventEmitter } from '../events/EventEmitter';
3
+ export interface LayoutOptions {
4
+ autoFlow: boolean;
5
+ snapToGrid: boolean;
6
+ gridSize: number;
7
+ allowOrphans: boolean;
8
+ minimumContentHeight: number;
9
+ }
10
+ /**
11
+ * LayoutEngine provides layout management for the document.
12
+ * Note: With the removal of regular elements, layout is now primarily
13
+ * handled by FlowingTextContent for text flow. This class maintains
14
+ * the interface for compatibility.
15
+ */
16
+ export declare class LayoutEngine extends EventEmitter {
17
+ private document;
18
+ private flowManager;
19
+ private options;
20
+ private isLayouting;
21
+ constructor(document: Document, options?: Partial<LayoutOptions>);
22
+ private setupEventListeners;
23
+ private requestLayout;
24
+ performLayout(): void;
25
+ insertPageBreak(_elementId: string): void;
26
+ setAutoFlow(enabled: boolean): void;
27
+ setSnapToGrid(enabled: boolean, gridSize?: number): void;
28
+ getLayoutOptions(): LayoutOptions;
29
+ updateLayoutOptions(options: Partial<LayoutOptions>): void;
30
+ reflowDocument(): void;
31
+ getDocumentMetrics(): {
32
+ totalPages: number;
33
+ totalContentHeight: number;
34
+ averagePageUtilization: number;
35
+ hasOverflow: boolean;
36
+ };
37
+ destroy(): void;
38
+ }
39
+ //# sourceMappingURL=LayoutEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutEngine.d.ts","sourceRoot":"","sources":["../../../../src/lib/layout/LayoutEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAgBhE,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,aAAa;IASrB,aAAa,IAAI,IAAI;IAcrB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASnC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxD,gBAAgB,IAAI,aAAa;IAIjC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAK1D,cAAc,IAAI,IAAI;IAItB,kBAAkB,IAAI;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,WAAW,EAAE,OAAO,CAAC;KACtB;IASD,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,133 @@
1
+ import { EventEmitter } from '../events/EventEmitter';
2
+ import { ObjectPosition, RelativeOffset, Size, Point, Rect, ResizeHandle, EmbeddedObjectConfig, EmbeddedObjectData } from './types';
3
+ /**
4
+ * Abstract base class for all embedded objects.
5
+ * Defines the API that all object types must implement.
6
+ */
7
+ export declare abstract class BaseEmbeddedObject extends EventEmitter {
8
+ protected _id: string;
9
+ protected _textIndex: number;
10
+ protected _position: ObjectPosition;
11
+ protected _size: Size;
12
+ protected _relativeOffset: RelativeOffset;
13
+ protected _selected: boolean;
14
+ protected _locked: boolean;
15
+ protected _renderedPosition: Point | null;
16
+ protected _renderedPageIndex: number;
17
+ constructor(config: EmbeddedObjectConfig);
18
+ /**
19
+ * Render the object to the canvas.
20
+ * The canvas context is translated so (0,0) is the object's top-left corner.
21
+ */
22
+ abstract render(ctx: CanvasRenderingContext2D): void;
23
+ /**
24
+ * Get the object type identifier (e.g., 'image', 'textbox').
25
+ */
26
+ abstract get objectType(): string;
27
+ /**
28
+ * Serialize to JSON for persistence.
29
+ */
30
+ abstract toData(): EmbeddedObjectData;
31
+ /**
32
+ * Clone this object.
33
+ */
34
+ abstract clone(): BaseEmbeddedObject;
35
+ get id(): string;
36
+ get textIndex(): number;
37
+ set textIndex(value: number);
38
+ get position(): ObjectPosition;
39
+ set position(value: ObjectPosition);
40
+ /**
41
+ * Get the relative offset (for 'relative' position mode).
42
+ */
43
+ get relativeOffset(): RelativeOffset;
44
+ /**
45
+ * Set the relative offset (for 'relative' position mode).
46
+ */
47
+ set relativeOffset(value: RelativeOffset);
48
+ get size(): Size;
49
+ set size(value: Size);
50
+ get width(): number;
51
+ set width(value: number);
52
+ get height(): number;
53
+ set height(value: number);
54
+ get selected(): boolean;
55
+ set selected(value: boolean);
56
+ get locked(): boolean;
57
+ set locked(value: boolean);
58
+ /**
59
+ * Get the last rendered position (set during rendering).
60
+ * Used for hit detection of resize handles.
61
+ */
62
+ get renderedPosition(): Point | null;
63
+ /**
64
+ * Set the rendered position (called by renderer).
65
+ */
66
+ set renderedPosition(value: Point | null);
67
+ /**
68
+ * Get the page index where this object was last rendered.
69
+ * Used for hit detection to ensure clicks only match objects on the same page.
70
+ */
71
+ get renderedPageIndex(): number;
72
+ /**
73
+ * Set the rendered page index (called by renderer).
74
+ */
75
+ set renderedPageIndex(value: number);
76
+ /**
77
+ * Get bounding rectangle (relative to object's position).
78
+ */
79
+ getBounds(): Rect;
80
+ /**
81
+ * Check if a point is within the object bounds.
82
+ * @param point The point to test
83
+ * @param objectPosition The position of the object on the canvas
84
+ */
85
+ containsPoint(point: Point, objectPosition: Point): boolean;
86
+ /**
87
+ * Resize the object to a new size.
88
+ */
89
+ resize(newSize: Size): void;
90
+ /**
91
+ * Called when the object is clicked.
92
+ * Default behavior: select the object.
93
+ */
94
+ handleClick(_point: Point): void;
95
+ /**
96
+ * Called when the object is double-clicked.
97
+ * Default: no-op. Subclasses can override for editing behavior.
98
+ */
99
+ handleDoubleClick(_point: Point): void;
100
+ /**
101
+ * Get minimum size constraints.
102
+ */
103
+ getMinSize(): Size;
104
+ /**
105
+ * Get maximum size constraints. Returns null for no limit.
106
+ */
107
+ getMaxSize(): Size | null;
108
+ /**
109
+ * Whether this object type supports resizing.
110
+ */
111
+ get resizable(): boolean;
112
+ /**
113
+ * Get resize handle positions.
114
+ * Can be overridden for custom handle configurations.
115
+ */
116
+ getResizeHandles(): ResizeHandle[];
117
+ /**
118
+ * Render selection border and handles.
119
+ * Called by subclasses when selected.
120
+ */
121
+ protected renderSelectionBorder(ctx: CanvasRenderingContext2D): void;
122
+ /**
123
+ * Get the position of a resize handle.
124
+ */
125
+ private getHandlePosition;
126
+ /**
127
+ * Get which resize handle (if any) is at the given point.
128
+ * @param point The point to test (relative to object position)
129
+ * @param handleSize Size of the handle hit area
130
+ */
131
+ getResizeHandleAtPoint(point: Point, handleSize?: number): ResizeHandle | null;
132
+ }
133
+ //# sourceMappingURL=BaseEmbeddedObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseEmbeddedObject.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/BaseEmbeddedObject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { BaseEmbeddedObject } from './BaseEmbeddedObject';
2
+ import { EmbeddedObjectData } from './types';
3
+ /**
4
+ * Factory function type for creating embedded objects.
5
+ */
6
+ type ObjectFactory = (data: EmbeddedObjectData) => BaseEmbeddedObject;
7
+ /**
8
+ * Factory for creating embedded objects from serialized data.
9
+ * Supports registration of custom object types.
10
+ */
11
+ export declare class EmbeddedObjectFactory {
12
+ private static registry;
13
+ private static initialized;
14
+ /**
15
+ * Register an object type factory.
16
+ * @param objectType The type identifier (e.g., 'image', 'textbox')
17
+ * @param factory Function that creates an object from serialized data
18
+ */
19
+ static register(objectType: string, factory: ObjectFactory): void;
20
+ /**
21
+ * Unregister an object type.
22
+ */
23
+ static unregister(objectType: string): boolean;
24
+ /**
25
+ * Check if an object type is registered.
26
+ */
27
+ static isRegistered(objectType: string): boolean;
28
+ /**
29
+ * Get all registered object types.
30
+ */
31
+ static getRegisteredTypes(): string[];
32
+ /**
33
+ * Create an object from serialized data.
34
+ * @throws Error if the object type is not registered
35
+ */
36
+ static create(data: EmbeddedObjectData): BaseEmbeddedObject;
37
+ /**
38
+ * Try to create an object, returning null if the type is unknown.
39
+ */
40
+ static tryCreate(data: EmbeddedObjectData): BaseEmbeddedObject | null;
41
+ /**
42
+ * Initialize with built-in object types.
43
+ * Called automatically on first use.
44
+ */
45
+ static initialize(): void;
46
+ /**
47
+ * Ensure the factory is initialized before use.
48
+ */
49
+ private static ensureInitialized;
50
+ /**
51
+ * Reset the factory to its initial state.
52
+ * Useful for testing.
53
+ */
54
+ static reset(): void;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=EmbeddedObjectFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddedObjectFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/EmbeddedObjectFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,kBAAkB,CAAC;AAEtE;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAChE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkB;IAE5C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIjE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAKhD;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAKrC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB;IAW3D;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI;IAQrE;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAsEzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAIrB"}
@@ -0,0 +1,60 @@
1
+ import { BaseEmbeddedObject } from './BaseEmbeddedObject';
2
+ import { ImageObjectConfig, EmbeddedObjectData, ImageFitMode, ImageResizeMode, Size } from './types';
3
+ /**
4
+ * Image object - displays an image within text flow.
5
+ */
6
+ export declare class ImageObject extends BaseEmbeddedObject {
7
+ private _src;
8
+ private _image;
9
+ private _fit;
10
+ private _resizeMode;
11
+ private _alt;
12
+ private _loaded;
13
+ private _error;
14
+ constructor(config: ImageObjectConfig);
15
+ get objectType(): string;
16
+ get src(): string;
17
+ set src(value: string);
18
+ get fit(): ImageFitMode;
19
+ set fit(value: ImageFitMode);
20
+ get resizeMode(): ImageResizeMode;
21
+ set resizeMode(value: ImageResizeMode);
22
+ get alt(): string;
23
+ set alt(value: string);
24
+ get loaded(): boolean;
25
+ get hasError(): boolean;
26
+ private loadImage;
27
+ render(ctx: CanvasRenderingContext2D): void;
28
+ private drawImage;
29
+ private drawTiledImage;
30
+ private drawLoadingPlaceholder;
31
+ private drawErrorPlaceholder;
32
+ toData(): EmbeddedObjectData;
33
+ /**
34
+ * Restore the image state from serialized data.
35
+ * Used for undo/redo operations.
36
+ */
37
+ restoreFromData(data: EmbeddedObjectData): void;
38
+ clone(): ImageObject;
39
+ /**
40
+ * Set a new image source (URL or base64 data URI).
41
+ * Optionally auto-resize to fit within max dimensions.
42
+ */
43
+ setSource(src: string, options?: {
44
+ maxWidth?: number;
45
+ maxHeight?: number;
46
+ }): void;
47
+ /**
48
+ * Get the natural dimensions of the loaded image.
49
+ */
50
+ getNaturalSize(): Size | null;
51
+ /**
52
+ * Resize to fit the natural image dimensions.
53
+ */
54
+ resizeToNatural(): void;
55
+ /**
56
+ * Resize to fit within max dimensions while maintaining aspect ratio.
57
+ */
58
+ resizeToFit(maxWidth: number, maxHeight: number): void;
59
+ }
60
+ //# sourceMappingURL=ImageObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageObject.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/ImageObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,IAAI,EACL,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,WAAY,SAAQ,kBAAkB;IACjD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,iBAAiB;IASrC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAOpB;IAED,IAAI,GAAG,IAAI,YAAY,CAEtB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,YAAY,EAG1B;IAED,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,eAAe,EAGpC;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,CAAC,SAAS;IAoBjB,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IAc3C,OAAO,CAAC,SAAS;IAoDjB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,oBAAoB;IAgC5B,MAAM,IAAI,kBAAkB;IAmB5B;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAuC/C,KAAK,IAAI,WAAW;IAcpB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAoCjF;;OAEG;IACH,cAAc,IAAI,IAAI,GAAG,IAAI;IAU7B;;OAEG;IACH,eAAe,IAAI,IAAI;IAOvB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAevD"}