docgen-utils 1.0.5

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 (88) hide show
  1. package/README.md +118 -0
  2. package/dist/bundle.js +36086 -0
  3. package/dist/bundle.min.js +197 -0
  4. package/dist/cli.js +47432 -0
  5. package/dist/index.d.ts +9 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +9 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/packages/cli/commands/export-docs.d.ts +5 -0
  10. package/dist/packages/cli/commands/export-docs.d.ts.map +1 -0
  11. package/dist/packages/cli/commands/export-docs.js +24 -0
  12. package/dist/packages/cli/commands/export-docs.js.map +1 -0
  13. package/dist/packages/cli/commands/export-slides.d.ts +5 -0
  14. package/dist/packages/cli/commands/export-slides.d.ts.map +1 -0
  15. package/dist/packages/cli/commands/export-slides.js +86 -0
  16. package/dist/packages/cli/commands/export-slides.js.map +1 -0
  17. package/dist/packages/cli/commands/import-docx.d.ts +5 -0
  18. package/dist/packages/cli/commands/import-docx.d.ts.map +1 -0
  19. package/dist/packages/cli/commands/import-docx.js +27 -0
  20. package/dist/packages/cli/commands/import-docx.js.map +1 -0
  21. package/dist/packages/cli/commands/import-pptx.d.ts +5 -0
  22. package/dist/packages/cli/commands/import-pptx.d.ts.map +1 -0
  23. package/dist/packages/cli/commands/import-pptx.js +44 -0
  24. package/dist/packages/cli/commands/import-pptx.js.map +1 -0
  25. package/dist/packages/cli/index.d.ts +11 -0
  26. package/dist/packages/cli/index.d.ts.map +1 -0
  27. package/dist/packages/cli/index.js +103 -0
  28. package/dist/packages/cli/index.js.map +1 -0
  29. package/dist/packages/docs/common.d.ts +183 -0
  30. package/dist/packages/docs/common.d.ts.map +1 -0
  31. package/dist/packages/docs/common.js +27 -0
  32. package/dist/packages/docs/common.js.map +1 -0
  33. package/dist/packages/docs/convert.d.ts +7 -0
  34. package/dist/packages/docs/convert.d.ts.map +1 -0
  35. package/dist/packages/docs/convert.js +1399 -0
  36. package/dist/packages/docs/convert.js.map +1 -0
  37. package/dist/packages/docs/create-document.d.ts +30 -0
  38. package/dist/packages/docs/create-document.d.ts.map +1 -0
  39. package/dist/packages/docs/create-document.js +170 -0
  40. package/dist/packages/docs/create-document.js.map +1 -0
  41. package/dist/packages/docs/export.d.ts +57 -0
  42. package/dist/packages/docs/export.d.ts.map +1 -0
  43. package/dist/packages/docs/export.js +430 -0
  44. package/dist/packages/docs/export.js.map +1 -0
  45. package/dist/packages/docs/import-docx.d.ts +13 -0
  46. package/dist/packages/docs/import-docx.d.ts.map +1 -0
  47. package/dist/packages/docs/import-docx.js +2299 -0
  48. package/dist/packages/docs/import-docx.js.map +1 -0
  49. package/dist/packages/docs/parse.d.ts +6 -0
  50. package/dist/packages/docs/parse.d.ts.map +1 -0
  51. package/dist/packages/docs/parse.js +4253 -0
  52. package/dist/packages/docs/parse.js.map +1 -0
  53. package/dist/packages/shared/dom-parser-shim.d.ts +30 -0
  54. package/dist/packages/shared/dom-parser-shim.d.ts.map +1 -0
  55. package/dist/packages/shared/dom-parser-shim.js +152 -0
  56. package/dist/packages/shared/dom-parser-shim.js.map +1 -0
  57. package/dist/packages/slides/common.d.ts +325 -0
  58. package/dist/packages/slides/common.d.ts.map +1 -0
  59. package/dist/packages/slides/common.js +12 -0
  60. package/dist/packages/slides/common.js.map +1 -0
  61. package/dist/packages/slides/convert.d.ts +35 -0
  62. package/dist/packages/slides/convert.d.ts.map +1 -0
  63. package/dist/packages/slides/convert.js +308 -0
  64. package/dist/packages/slides/convert.js.map +1 -0
  65. package/dist/packages/slides/createPresentation.d.ts +51 -0
  66. package/dist/packages/slides/createPresentation.d.ts.map +1 -0
  67. package/dist/packages/slides/createPresentation.js +265 -0
  68. package/dist/packages/slides/createPresentation.js.map +1 -0
  69. package/dist/packages/slides/export.d.ts +24 -0
  70. package/dist/packages/slides/export.d.ts.map +1 -0
  71. package/dist/packages/slides/export.js +52 -0
  72. package/dist/packages/slides/export.js.map +1 -0
  73. package/dist/packages/slides/import-pptx.d.ts +13 -0
  74. package/dist/packages/slides/import-pptx.d.ts.map +1 -0
  75. package/dist/packages/slides/import-pptx.js +619 -0
  76. package/dist/packages/slides/import-pptx.js.map +1 -0
  77. package/dist/packages/slides/parse.d.ts +45 -0
  78. package/dist/packages/slides/parse.d.ts.map +1 -0
  79. package/dist/packages/slides/parse.js +1185 -0
  80. package/dist/packages/slides/parse.js.map +1 -0
  81. package/dist/packages/slides/transform.d.ts +37 -0
  82. package/dist/packages/slides/transform.d.ts.map +1 -0
  83. package/dist/packages/slides/transform.js +140 -0
  84. package/dist/packages/slides/transform.js.map +1 -0
  85. package/dist/packages/slides/vendor/VENDORING.md +58 -0
  86. package/dist/packages/slides/vendor/pptxgen.d.ts +805 -0
  87. package/dist/packages/slides/vendor/pptxgen.js +7442 -0
  88. package/package.json +57 -0
@@ -0,0 +1,430 @@
1
+ import { Packer } from "docx";
2
+ import { createDocxDocument } from "./create-document";
3
+ import { parseHtmlContent } from "./parse";
4
+ /**
5
+ * Render an SVG string to a PNG image using Canvas (browser environment).
6
+ * Returns the image data as Uint8Array along with dimensions.
7
+ *
8
+ * @param svgContent - The SVG content as a string
9
+ * @param width - Optional width hint (extracted from SVG if not provided)
10
+ * @param height - Optional height hint (extracted from SVG if not provided)
11
+ * @param backgroundColor - Optional background color (hex without #, e.g., "FEF3C7")
12
+ */
13
+ async function renderSvgToPng(svgContent, width, height, backgroundColor) {
14
+ // Parse SVG to get dimensions if not provided
15
+ const parser = new DOMParser();
16
+ const svgDoc = parser.parseFromString(svgContent, "image/svg+xml");
17
+ const svgElement = svgDoc.querySelector("svg");
18
+ if (!svgElement) {
19
+ return null;
20
+ }
21
+ // Get dimensions from SVG
22
+ let svgWidth = width;
23
+ let svgHeight = height;
24
+ if (!svgWidth || !svgHeight) {
25
+ const viewBox = svgElement.getAttribute("viewBox");
26
+ if (viewBox) {
27
+ const parts = viewBox.split(/\s+/).map(Number);
28
+ if (parts.length >= 4) {
29
+ svgWidth = svgWidth || parts[2];
30
+ svgHeight = svgHeight || parts[3];
31
+ }
32
+ }
33
+ if (!svgWidth) {
34
+ const widthAttr = svgElement.getAttribute("width");
35
+ if (widthAttr && !widthAttr.includes("%")) {
36
+ svgWidth = parseFloat(widthAttr);
37
+ }
38
+ }
39
+ if (!svgHeight) {
40
+ const heightAttr = svgElement.getAttribute("height");
41
+ if (heightAttr && !heightAttr.includes("%")) {
42
+ svgHeight = parseFloat(heightAttr);
43
+ }
44
+ }
45
+ }
46
+ // Default dimensions if still not found
47
+ svgWidth = svgWidth || 400;
48
+ svgHeight = svgHeight || 300;
49
+ // Ensure SVG has explicit dimensions
50
+ svgElement.setAttribute("width", String(svgWidth));
51
+ svgElement.setAttribute("height", String(svgHeight));
52
+ // Ensure SVG has proper XML namespace
53
+ if (!svgElement.getAttribute("xmlns")) {
54
+ svgElement.setAttribute("xmlns", "http://www.w3.org/2000/svg");
55
+ }
56
+ // Serialize the modified SVG
57
+ const serializer = new XMLSerializer();
58
+ const svgString = serializer.serializeToString(svgElement);
59
+ // Create a blob URL for the SVG
60
+ const svgBlob = new Blob([svgString], { type: "image/svg+xml;charset=utf-8" });
61
+ const svgUrl = URL.createObjectURL(svgBlob);
62
+ try {
63
+ // Create an image from the SVG
64
+ const img = new Image();
65
+ await new Promise((resolve, reject) => {
66
+ img.onload = () => resolve();
67
+ img.onerror = () => reject(new Error("Failed to load SVG image"));
68
+ img.src = svgUrl;
69
+ });
70
+ // Create canvas with device pixel ratio for sharp rendering
71
+ const scale = typeof window !== "undefined" ? (window.devicePixelRatio || 1) : 1;
72
+ const canvas = document.createElement("canvas");
73
+ canvas.width = svgWidth * scale;
74
+ canvas.height = svgHeight * scale;
75
+ const ctx = canvas.getContext("2d");
76
+ if (!ctx) {
77
+ return null;
78
+ }
79
+ // Fill with background color (use provided color or default to white)
80
+ ctx.fillStyle = backgroundColor ? `#${backgroundColor}` : "white";
81
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
82
+ // Scale for device pixel ratio
83
+ ctx.scale(scale, scale);
84
+ // Draw the SVG
85
+ ctx.drawImage(img, 0, 0, svgWidth, svgHeight);
86
+ // Convert to PNG blob
87
+ const pngBlob = await new Promise((resolve) => {
88
+ canvas.toBlob(resolve, "image/png");
89
+ });
90
+ if (!pngBlob) {
91
+ return null;
92
+ }
93
+ // Convert blob to Uint8Array
94
+ const arrayBuffer = await pngBlob.arrayBuffer();
95
+ const data = new Uint8Array(arrayBuffer);
96
+ // Scale dimensions to fit within DOCX content width
97
+ // DOCX is 8.5" with 1" margins = 6.5" content width = 468pt at 72dpi
98
+ const maxWidth = 468;
99
+ const aspectRatio = svgHeight / svgWidth;
100
+ const finalWidth = Math.min(svgWidth, maxWidth);
101
+ const finalHeight = finalWidth * aspectRatio;
102
+ return {
103
+ data,
104
+ width: Math.round(finalWidth),
105
+ height: Math.round(finalHeight),
106
+ };
107
+ }
108
+ finally {
109
+ URL.revokeObjectURL(svgUrl);
110
+ }
111
+ }
112
+ /**
113
+ * Render all svg-chart elements from parsed HTML content to PNG images.
114
+ * This is the primary function for converting SVG charts embedded in HTML to images.
115
+ *
116
+ * @param html - The HTML content containing SVG charts
117
+ * @returns Map of svg-chart-{index} to ChartImageData
118
+ */
119
+ async function renderSvgChartsFromHtml(html) {
120
+ const chartImages = new Map();
121
+ // Parse the HTML content to get all elements
122
+ const elements = parseHtmlContent(html);
123
+ // Find all svg-chart elements and render them
124
+ let svgIndex = 0;
125
+ for (const element of elements) {
126
+ if (element.type === "svg-chart") {
127
+ try {
128
+ const imageData = await renderSvgToPng(element.svgContent, element.width, element.height, element.backgroundColor);
129
+ if (imageData) {
130
+ chartImages.set(`svg-chart-${svgIndex}`, imageData);
131
+ }
132
+ }
133
+ catch (err) {
134
+ console.warn(`Failed to render SVG chart ${svgIndex}:`, err);
135
+ }
136
+ svgIndex++;
137
+ }
138
+ }
139
+ return chartImages;
140
+ }
141
+ /**
142
+ * Render all svg-chart elements from already-parsed content to PNG images.
143
+ * Use this if you've already parsed the HTML and want to render charts.
144
+ *
145
+ * @param elements - Array of parsed elements from parseHtmlContent
146
+ * @returns Map of svg-chart-{index} to ChartImageData
147
+ */
148
+ async function renderSvgChartsFromElements(elements) {
149
+ const chartImages = new Map();
150
+ let svgIndex = 0;
151
+ for (const element of elements) {
152
+ if (element.type === "svg-chart") {
153
+ try {
154
+ const imageData = await renderSvgToPng(element.svgContent, element.width, element.height, element.backgroundColor);
155
+ if (imageData) {
156
+ chartImages.set(`svg-chart-${svgIndex}`, imageData);
157
+ }
158
+ }
159
+ catch (err) {
160
+ console.warn(`Failed to render SVG chart ${svgIndex}:`, err);
161
+ }
162
+ svgIndex++;
163
+ }
164
+ }
165
+ return chartImages;
166
+ }
167
+ /**
168
+ * Render a DOM element containing an SVG to a PNG image using Canvas.
169
+ * Returns the image data as Uint8Array along with dimensions.
170
+ */
171
+ async function renderElementToPng(element) {
172
+ // Get the bounding rect for dimensions
173
+ const rect = element.getBoundingClientRect();
174
+ if (rect.width === 0 || rect.height === 0) {
175
+ return null;
176
+ }
177
+ // Find the SVG element
178
+ const svg = element.querySelector("svg");
179
+ if (!svg) {
180
+ return null;
181
+ }
182
+ // Clone the SVG to avoid modifying the original
183
+ const svgClone = svg.cloneNode(true);
184
+ if (!svgClone.getAttribute("width")) {
185
+ svgClone.setAttribute("width", String(rect.width));
186
+ }
187
+ if (!svgClone.getAttribute("height")) {
188
+ svgClone.setAttribute("height", String(rect.height));
189
+ }
190
+ // Serialize the SVG
191
+ const serializer = new XMLSerializer();
192
+ let svgString = serializer.serializeToString(svgClone);
193
+ // Ensure SVG has proper XML namespace
194
+ if (!svgString.includes("xmlns")) {
195
+ svgString = svgString.replace("<svg", '<svg xmlns="http://www.w3.org/2000/svg"');
196
+ }
197
+ // Create a blob URL for the SVG
198
+ const svgBlob = new Blob([svgString], { type: "image/svg+xml;charset=utf-8" });
199
+ const svgUrl = URL.createObjectURL(svgBlob);
200
+ try {
201
+ // Create an image from the SVG
202
+ const img = new Image();
203
+ await new Promise((resolve, reject) => {
204
+ img.onload = () => resolve();
205
+ img.onerror = () => reject(new Error("Failed to load SVG image"));
206
+ img.src = svgUrl;
207
+ });
208
+ // Create canvas with device pixel ratio for sharp rendering
209
+ const scale = window.devicePixelRatio || 1;
210
+ const canvas = document.createElement("canvas");
211
+ canvas.width = rect.width * scale;
212
+ canvas.height = rect.height * scale;
213
+ const ctx = canvas.getContext("2d");
214
+ if (!ctx) {
215
+ return null;
216
+ }
217
+ // GENERALIZED: Extract background color from container element's computed style
218
+ // This handles cases like .hero-image { background: linear-gradient(...) }
219
+ const computedStyle = window.getComputedStyle(element);
220
+ const bgColor = computedStyle.backgroundColor;
221
+ // Use the computed background color if it's not transparent, otherwise default to white
222
+ const isTransparent = !bgColor || bgColor === "transparent" || bgColor === "rgba(0, 0, 0, 0)";
223
+ ctx.fillStyle = isTransparent ? "white" : bgColor;
224
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
225
+ // Scale for device pixel ratio
226
+ ctx.scale(scale, scale);
227
+ // Draw the SVG
228
+ ctx.drawImage(img, 0, 0, rect.width, rect.height);
229
+ // Convert to PNG blob
230
+ const pngBlob = await new Promise((resolve) => {
231
+ canvas.toBlob(resolve, "image/png");
232
+ });
233
+ if (!pngBlob) {
234
+ return null;
235
+ }
236
+ // Convert blob to Uint8Array
237
+ const arrayBuffer = await pngBlob.arrayBuffer();
238
+ const data = new Uint8Array(arrayBuffer);
239
+ // Scale dimensions to fit within DOCX content width
240
+ // DOCX is 8.5" with 1" margins = 6.5" content width = 468pt at 72dpi
241
+ const maxWidth = 468;
242
+ const aspectRatio = rect.height / rect.width;
243
+ const width = Math.min(rect.width, maxWidth);
244
+ const height = width * aspectRatio;
245
+ return {
246
+ data,
247
+ width: Math.round(width),
248
+ height: Math.round(height),
249
+ };
250
+ }
251
+ finally {
252
+ URL.revokeObjectURL(svgUrl);
253
+ }
254
+ }
255
+ /**
256
+ * Check if an SVG element appears to be a chart (not a decorative icon/illustration).
257
+ * Charts typically have viewBox dimensions that indicate they're larger visualizations.
258
+ */
259
+ function isChartSvg(svg) {
260
+ // Check for minimum size - charts are typically larger than icons
261
+ const width = svg.getAttribute("width") || svg.style.width;
262
+ const height = svg.getAttribute("height") || svg.style.height;
263
+ // Parse numeric dimensions (handles "200", "200px", etc.)
264
+ const parseSize = (val) => {
265
+ if (!val)
266
+ return 0;
267
+ const num = parseFloat(val);
268
+ return isNaN(num) ? 0 : num;
269
+ };
270
+ const widthNum = parseSize(width);
271
+ const heightNum = parseSize(height);
272
+ // Charts should be larger than icons (at least 100x100)
273
+ // Also check viewBox for percentage-based sizing
274
+ const viewBox = svg.getAttribute("viewBox");
275
+ if (viewBox) {
276
+ const parts = viewBox.split(/\s+/).map(Number);
277
+ if (parts.length === 4) {
278
+ const vbWidth = parts[2];
279
+ const vbHeight = parts[3];
280
+ if (vbWidth >= 100 && vbHeight >= 50) {
281
+ return true;
282
+ }
283
+ }
284
+ }
285
+ // Direct size check
286
+ if (widthNum >= 100 && heightNum >= 50) {
287
+ return true;
288
+ }
289
+ // Check bounding rect if rendered
290
+ const rect = svg.getBoundingClientRect();
291
+ if (rect.width >= 100 && rect.height >= 50) {
292
+ return true;
293
+ }
294
+ return false;
295
+ }
296
+ /**
297
+ * Find and render all chart containers with SVGs in the document.
298
+ * Looks for any div/figure/section containing a chart-like SVG.
299
+ * Returns a Map of chart ID to image data.
300
+ */
301
+ async function renderChartImages(doc) {
302
+ const chartImages = new Map();
303
+ // Find all SVGs in the document
304
+ const allSvgs = doc.querySelectorAll("svg");
305
+ let svgIndex = 0;
306
+ for (const svg of allSvgs) {
307
+ // Skip small SVGs (icons, decorations)
308
+ if (!isChartSvg(svg)) {
309
+ continue;
310
+ }
311
+ // Find the container element (parent div, figure, section, etc.)
312
+ const container = svg.parentElement;
313
+ if (!container) {
314
+ continue;
315
+ }
316
+ try {
317
+ const imageData = await renderElementToPng(container);
318
+ if (imageData) {
319
+ // Use svg-chart-{index} as the key to match create-document.ts
320
+ chartImages.set(`svg-chart-${svgIndex}`, imageData);
321
+ }
322
+ }
323
+ catch (err) {
324
+ console.warn(`Failed to render chart ${svgIndex}:`, err);
325
+ }
326
+ svgIndex++;
327
+ }
328
+ return chartImages;
329
+ }
330
+ /**
331
+ * Fetch external images from parsed elements and convert to PNG data.
332
+ * Uses browser fetch API to download images and Canvas to convert to PNG.
333
+ * Returns a Map of image src URL to ChartImageData.
334
+ */
335
+ async function fetchExternalImages(elements) {
336
+ const imageMap = new Map();
337
+ // Find all image elements
338
+ const imageElements = elements.filter((el) => el.type === "image");
339
+ if (imageElements.length === 0) {
340
+ return imageMap;
341
+ }
342
+ // Maximum content width in DOCX (6.5 inches at 96 DPI = 624 pixels, but we use 468 for some margin)
343
+ const maxWidth = 468;
344
+ for (const imgEl of imageElements) {
345
+ try {
346
+ const src = imgEl.src;
347
+ // Skip data URLs (already embedded), relative file paths (won't work in browser)
348
+ if (src.startsWith("data:"))
349
+ continue;
350
+ // For absolute URLs, try to fetch
351
+ if (src.startsWith("http://") || src.startsWith("https://")) {
352
+ // Fetch the image
353
+ const response = await fetch(src, {
354
+ mode: "cors",
355
+ credentials: "omit",
356
+ });
357
+ if (!response.ok) {
358
+ console.warn(`Failed to fetch image: ${src} (${response.status})`);
359
+ continue;
360
+ }
361
+ const blob = await response.blob();
362
+ // Create an image element to get dimensions and draw to canvas
363
+ const img = new Image();
364
+ img.crossOrigin = "anonymous";
365
+ await new Promise((resolve, reject) => {
366
+ img.onload = () => resolve();
367
+ img.onerror = () => reject(new Error(`Failed to load image: ${src}`));
368
+ img.src = URL.createObjectURL(blob);
369
+ });
370
+ // Scale to fit within document width
371
+ let width = img.naturalWidth;
372
+ let height = img.naturalHeight;
373
+ if (width > maxWidth) {
374
+ const scale = maxWidth / width;
375
+ width = maxWidth;
376
+ height = Math.round(height * scale);
377
+ }
378
+ // Draw to canvas and get PNG data
379
+ const canvas = document.createElement("canvas");
380
+ canvas.width = width;
381
+ canvas.height = height;
382
+ const ctx = canvas.getContext("2d");
383
+ if (!ctx)
384
+ continue;
385
+ ctx.drawImage(img, 0, 0, width, height);
386
+ // Convert to PNG blob
387
+ const pngBlob = await new Promise((resolve) => {
388
+ canvas.toBlob((b) => resolve(b), "image/png");
389
+ });
390
+ if (!pngBlob)
391
+ continue;
392
+ // Convert to Uint8Array
393
+ const arrayBuffer = await pngBlob.arrayBuffer();
394
+ const data = new Uint8Array(arrayBuffer);
395
+ imageMap.set(src, { data, width, height });
396
+ // Clean up object URL
397
+ URL.revokeObjectURL(img.src);
398
+ }
399
+ }
400
+ catch (err) {
401
+ console.warn(`Error fetching image ${imgEl.src}:`, err);
402
+ continue;
403
+ }
404
+ }
405
+ return imageMap;
406
+ }
407
+ /**
408
+ * Export HTML content to DOCX and download in browser.
409
+ * Automatically renders SVG charts to PNG images.
410
+ */
411
+ async function exportDocx(html, options) {
412
+ const { fileName, author, title, description } = options;
413
+ // Render SVG charts to images using DOMParser-only approach
414
+ const chartImages = await renderSvgChartsFromHtml(html);
415
+ // Create document options
416
+ const docOptions = {
417
+ title: title ?? fileName.replace(/\.docx$/i, ""),
418
+ author,
419
+ description: description ?? "Generated by Copilot",
420
+ chartImages: chartImages.size > 0 ? chartImages : undefined,
421
+ };
422
+ // Create the DOCX document
423
+ const doc = createDocxDocument(html, docOptions);
424
+ // Pack and download
425
+ return await Packer.toBase64String(doc);
426
+ }
427
+ // Export chart rendering utilities for use by test scripts and other consumers
428
+ export { renderChartImages, isChartSvg, renderElementToPng, renderSvgToPng, renderSvgChartsFromHtml, renderSvgChartsFromElements, };
429
+ export default exportDocx;
430
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../packages/docs/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAyB,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAS3C;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAC3B,UAAkB,EAClB,KAAc,EACd,MAAe,EACf,eAAwB;IAExB,8CAA8C;IAC9C,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChC,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1C,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC;IAC3B,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;IAE7B,qCAAqC;IACrC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAErD,sCAAsC;IACtC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACjE,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE3D,gCAAgC;IAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAClE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;QAElC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sEAAsE;QACtE,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAClE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhD,+BAA+B;QAC/B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAExB,eAAe;QACf,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE9C,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;YACzD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAEzC,oDAAoD;QACpD,qEAAqE;QACrE,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;QAE7C,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;SAChC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB,CACpC,IAAY;IAEZ,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtD,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAExC,8CAA8C;IAC9C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,eAAe,CACxB,CAAC;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,2BAA2B,CACxC,QAAyB;IAEzB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,eAAe,CACxB,CAAC;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAoB;IACpD,uCAAuC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAe,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,IAAI,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEvD,sCAAsC;IACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAC;IACnF,CAAC;IAED,gCAAgC;IAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAClE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gFAAgF;QAChF,2EAA2E;QAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC;QAC9C,wFAAwF;QACxF,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,kBAAkB,CAAC;QAC9F,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhD,+BAA+B;QAC/B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAExB,eAAe;QACf,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;YACzD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAEzC,oDAAoD;QACpD,qEAAqE;QACrE,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;QAEnC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC3B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAe;IACjC,kEAAkE;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IAE9D,0DAA0D;IAC1D,MAAM,SAAS,GAAG,CAAC,GAAkB,EAAU,EAAE;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEpC,wDAAwD;IACxD,iDAAiD;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC3B,IAAI,OAAO,IAAI,GAAG,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAa;IAEb,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtD,gCAAgC;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,uCAAuC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAiB,CAAC,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,SAAwB,CAAC,CAAC;YACrE,IAAI,SAAS,EAAE,CAAC;gBACd,+DAA+D;gBAC/D,WAAW,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,0BAA0B,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAChC,QAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,0BAA0B;IAC1B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CACnC,CAAC,EAAE,EAA2C,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CACrE,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oGAAoG;IACpG,MAAM,QAAQ,GAAG,GAAG,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YAEtB,iFAAiF;YACjF,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEtC,kCAAkC;YAClC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,kBAAkB;gBAClB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,0BAA0B,GAAG,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEnC,+DAA+D;gBAC/D,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;gBAE9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,CAAC;oBACtE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBAEH,qCAAqC;gBACrC,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC;gBAC7B,IAAI,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC/B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;oBAC/B,KAAK,GAAG,QAAQ,CAAC;oBACjB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAED,kCAAkC;gBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBAEnB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAExC,sBAAsB;gBACtB,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;oBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,wBAAwB;gBACxB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;gBAEzC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE3C,sBAAsB;gBACtB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,OAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzD,4DAA4D;IAC5D,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAExD,0BAA0B;IAC1B,MAAM,UAAU,GAA0B;QACxC,KAAK,EAAE,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAChD,MAAM;QACN,WAAW,EAAE,WAAW,IAAI,sBAAsB;QAClD,WAAW,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC;IAEF,2BAA2B;IAC3B,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEjD,oBAAoB;IACpB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAC/E,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * DOCX Import: Parses a DOCX file (ArrayBuffer) into HTML string.
3
+ * Modeled after slides/import-pptx.ts
4
+ *
5
+ * Usage: const html = await importDocx(arrayBuffer);
6
+ */
7
+ /**
8
+ * Imports a DOCX file and returns an HTML string.
9
+ * @param arrayBuffer - The DOCX file as an ArrayBuffer
10
+ * @returns HTML string representing the document
11
+ */
12
+ export default function importDocx(arrayBuffer: ArrayBuffer): Promise<string>;
13
+ //# sourceMappingURL=import-docx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-docx.d.ts","sourceRoot":"","sources":["../../../packages/docs/import-docx.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAu6EH;;;;GAIG;AACH,wBAA8B,UAAU,CACtC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAoMjB"}