docxmlater 10.0.3 → 10.1.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 (78) hide show
  1. package/README.md +3 -2
  2. package/dist/core/Document.d.ts +22 -0
  3. package/dist/core/Document.d.ts.map +1 -1
  4. package/dist/core/Document.js +170 -26
  5. package/dist/core/Document.js.map +1 -1
  6. package/dist/core/DocumentParser.d.ts.map +1 -1
  7. package/dist/core/DocumentParser.js +90 -2
  8. package/dist/core/DocumentParser.js.map +1 -1
  9. package/dist/elements/Hyperlink.d.ts +6 -0
  10. package/dist/elements/Hyperlink.d.ts.map +1 -1
  11. package/dist/elements/Hyperlink.js +23 -0
  12. package/dist/elements/Hyperlink.js.map +1 -1
  13. package/dist/elements/Paragraph.d.ts +8 -0
  14. package/dist/elements/Paragraph.d.ts.map +1 -1
  15. package/dist/elements/Paragraph.js +25 -1
  16. package/dist/elements/Paragraph.js.map +1 -1
  17. package/dist/elements/StructuredDocumentTag.d.ts +23 -1
  18. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  19. package/dist/elements/StructuredDocumentTag.js +97 -0
  20. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  21. package/dist/elements/TableCell.d.ts +5 -0
  22. package/dist/elements/TableCell.d.ts.map +1 -1
  23. package/dist/elements/TableCell.js +13 -0
  24. package/dist/elements/TableCell.js.map +1 -1
  25. package/dist/elements/TableRow.d.ts +3 -0
  26. package/dist/elements/TableRow.d.ts.map +1 -1
  27. package/dist/elements/TableRow.js +10 -0
  28. package/dist/elements/TableRow.js.map +1 -1
  29. package/dist/formatting/AbstractNumbering.d.ts +4 -0
  30. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  31. package/dist/formatting/AbstractNumbering.js +15 -0
  32. package/dist/formatting/AbstractNumbering.js.map +1 -1
  33. package/dist/formatting/NumberingInstance.d.ts +6 -0
  34. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  35. package/dist/formatting/NumberingInstance.js +55 -1
  36. package/dist/formatting/NumberingInstance.js.map +1 -1
  37. package/dist/formatting/NumberingLevel.d.ts +4 -1
  38. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  39. package/dist/formatting/NumberingLevel.js +17 -0
  40. package/dist/formatting/NumberingLevel.js.map +1 -1
  41. package/dist/formatting/Style.d.ts +6 -0
  42. package/dist/formatting/Style.d.ts.map +1 -1
  43. package/dist/formatting/Style.js +20 -0
  44. package/dist/formatting/Style.js.map +1 -1
  45. package/dist/formatting/StylesManager.d.ts +23 -0
  46. package/dist/formatting/StylesManager.d.ts.map +1 -1
  47. package/dist/formatting/StylesManager.js +65 -0
  48. package/dist/formatting/StylesManager.js.map +1 -1
  49. package/dist/index.d.ts +2 -2
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
  53. package/dist/tracking/DocumentTrackingContext.js +30 -7
  54. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  55. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  56. package/dist/utils/InMemoryRevisionAcceptor.js +22 -1
  57. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  58. package/dist/utils/SelectiveRevisionAcceptor.d.ts +1 -0
  59. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  60. package/dist/utils/SelectiveRevisionAcceptor.js +46 -0
  61. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/core/Document.ts +287 -31
  64. package/src/core/DocumentParser.ts +110 -2
  65. package/src/elements/Hyperlink.ts +47 -0
  66. package/src/elements/Paragraph.ts +61 -1
  67. package/src/elements/StructuredDocumentTag.ts +230 -1
  68. package/src/elements/TableCell.ts +36 -1
  69. package/src/elements/TableRow.ts +24 -1
  70. package/src/formatting/AbstractNumbering.ts +31 -0
  71. package/src/formatting/NumberingInstance.ts +88 -1
  72. package/src/formatting/NumberingLevel.ts +37 -3
  73. package/src/formatting/Style.ts +46 -0
  74. package/src/formatting/StylesManager.ts +125 -0
  75. package/src/index.ts +2 -2
  76. package/src/tracking/DocumentTrackingContext.ts +38 -7
  77. package/src/utils/InMemoryRevisionAcceptor.ts +29 -1
  78. package/src/utils/SelectiveRevisionAcceptor.ts +70 -0
@@ -1 +1 @@
1
- {"version":3,"file":"StylesManager.js","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * StylesManager - Manages the collection of styles in a document\r\n * Handles style registration, retrieval, and styles.xml generation\r\n */\r\n\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { XMLBuilder } from \"../xml/XMLBuilder\";\r\nimport { XMLParser } from \"../xml/XMLParser\";\r\nimport { Style, StyleType } from \"./Style\";\r\n\r\n/**\r\n * Result of XML validation\r\n */\r\nexport interface ValidationResult {\r\n /** Whether the XML is valid */\r\n isValid: boolean;\r\n /** Validation errors if any */\r\n errors: string[];\r\n /** Validation warnings if any */\r\n warnings: string[];\r\n /** Number of styles found */\r\n styleCount: number;\r\n /** List of style IDs found */\r\n styleIds: string[];\r\n}\r\n\r\n/**\r\n * Manages document styles\r\n */\r\nexport class StylesManager {\r\n private styles = new Map<string, Style>();\r\n private includeBuiltInStyles: boolean;\r\n\r\n // Track if styles have been modified (for XML preservation)\r\n private _modified = false;\r\n\r\n // Track which specific styles have been modified (for selective merging)\r\n private _modifiedStyleIds = new Set<string>();\r\n\r\n /**\r\n * Registry of built-in style factory functions\r\n * Maps style ID to factory function for lazy loading\r\n */\r\n private static readonly BUILT_IN_STYLE_FACTORIES = new Map<\r\n string,\r\n () => Style\r\n >([\r\n [\"Normal\", () => Style.createNormalStyle()],\r\n [\"Heading1\", () => Style.createHeadingStyle(1)],\r\n [\"Heading2\", () => Style.createHeadingStyle(2)],\r\n [\"Heading3\", () => Style.createHeadingStyle(3)],\r\n [\"Heading4\", () => Style.createHeadingStyle(4)],\r\n [\"Heading5\", () => Style.createHeadingStyle(5)],\r\n [\"Heading6\", () => Style.createHeadingStyle(6)],\r\n [\"Heading7\", () => Style.createHeadingStyle(7)],\r\n [\"Heading8\", () => Style.createHeadingStyle(8)],\r\n [\"Heading9\", () => Style.createHeadingStyle(9)],\r\n [\"Heading1Char\", () => Style.createHeadingCharStyle(1)],\r\n [\"Heading2Char\", () => Style.createHeadingCharStyle(2)],\r\n [\"Heading3Char\", () => Style.createHeadingCharStyle(3)],\r\n [\"Heading4Char\", () => Style.createHeadingCharStyle(4)],\r\n [\"Heading5Char\", () => Style.createHeadingCharStyle(5)],\r\n [\"Heading6Char\", () => Style.createHeadingCharStyle(6)],\r\n [\"Heading7Char\", () => Style.createHeadingCharStyle(7)],\r\n [\"Heading8Char\", () => Style.createHeadingCharStyle(8)],\r\n [\"Heading9Char\", () => Style.createHeadingCharStyle(9)],\r\n [\"Title\", () => Style.createTitleStyle()],\r\n [\"Subtitle\", () => Style.createSubtitleStyle()],\r\n [\"ListParagraph\", () => Style.createListParagraphStyle()],\r\n [\"TOCHeading\", () => Style.createTOCHeadingStyle()],\r\n [\"TableNormal\", () => Style.createTableNormalStyle()],\r\n [\"TableGrid\", () => Style.createTableGridStyle()],\r\n ]);\r\n\r\n /**\r\n * Creates a new StylesManager\r\n * @param includeBuiltInStyles - Whether to include built-in styles (default: true)\r\n */\r\n constructor(includeBuiltInStyles = true) {\r\n this.includeBuiltInStyles = includeBuiltInStyles;\r\n\r\n // Always load Normal style if built-in styles are enabled\r\n // Normal is required and referenced by most other styles\r\n if (includeBuiltInStyles) {\r\n this.ensureStyleLoaded(\"Normal\");\r\n }\r\n }\r\n\r\n /**\r\n * Ensures a built-in style is loaded (lazy loading)\r\n * @param styleId - Style ID to load\r\n */\r\n private ensureStyleLoaded(styleId: string): void {\r\n // Already loaded?\r\n if (this.styles.has(styleId)) {\r\n return;\r\n }\r\n\r\n // Built-in styles disabled?\r\n if (!this.includeBuiltInStyles) {\r\n return;\r\n }\r\n\r\n // Is this a built-in style?\r\n const factory = StylesManager.BUILT_IN_STYLE_FACTORIES.get(styleId);\r\n if (factory) {\r\n this.styles.set(styleId, factory());\r\n }\r\n }\r\n\r\n /**\r\n * Adds a style to the collection\r\n * @param style - Style to add\r\n * @returns This manager for chaining\r\n */\r\n addStyle(style: Style): this {\r\n const existing = this.styles.get(style.getStyleId());\r\n if (existing) {\r\n // Preserve isDefault flag if replacing an existing default style\r\n if (existing.getIsDefault() && !style.getIsDefault()) {\r\n style.setIsDefault(true);\r\n }\r\n // Preserve structural properties from existing style if not explicitly set on new\r\n const newProps = style.getProperties();\r\n const existingProps = existing.getProperties();\r\n if (newProps.basedOn === undefined && existingProps.basedOn !== undefined) {\r\n style.setBasedOn(existingProps.basedOn);\r\n }\r\n if (newProps.next === undefined && existingProps.next !== undefined) {\r\n style.setNext(existingProps.next);\r\n }\r\n if (newProps.link === undefined && existingProps.link !== undefined) {\r\n style.setLink(existingProps.link);\r\n }\r\n if (newProps.uiPriority === undefined && existingProps.uiPriority !== undefined) {\r\n style.setUiPriority(existingProps.uiPriority);\r\n }\r\n }\r\n this.styles.set(style.getStyleId(), style);\r\n this._modifiedStyleIds.add(style.getStyleId());\r\n this._modified = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets a style by ID\r\n * Lazy-loads built-in styles on first access\r\n * @param styleId - Style ID to retrieve\r\n * @returns The style, or undefined if not found\r\n */\r\n getStyle(styleId: string): Style | undefined {\r\n // Ensure built-in style is loaded if applicable\r\n this.ensureStyleLoaded(styleId);\r\n return this.styles.get(styleId);\r\n }\r\n\r\n /**\r\n * Checks if a style exists or can be loaded\r\n * @param styleId - Style ID to check\r\n * @returns True if the style exists or is a built-in style\r\n */\r\n hasStyle(styleId: string): boolean {\r\n // Check if already loaded\r\n if (this.styles.has(styleId)) {\r\n return true;\r\n }\r\n\r\n // Check if it's a built-in style that can be loaded\r\n return (\r\n this.includeBuiltInStyles &&\r\n StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId)\r\n );\r\n }\r\n\r\n /**\r\n * Removes a style from the collection\r\n * @param styleId - Style ID to remove\r\n * @returns True if the style was removed\r\n */\r\n removeStyle(styleId: string): boolean {\r\n return this.styles.delete(styleId);\r\n }\r\n\r\n /**\r\n * Gets all styles\r\n * @returns Array of all styles\r\n */\r\n getAllStyles(): Style[] {\r\n return Array.from(this.styles.values());\r\n }\r\n\r\n /**\r\n * Checks if styles have been modified since loading\r\n * Used for XML preservation optimization\r\n * @returns True if styles were added or modified\r\n */\r\n isModified(): boolean {\r\n return this._modified;\r\n }\r\n\r\n /**\r\n * Resets the modified flag\r\n * Called after parsing to indicate that loaded styles don't count as modifications\r\n */\r\n resetModified(): void {\r\n this._modified = false;\r\n this._modifiedStyleIds.clear();\r\n }\r\n\r\n /**\r\n * Gets the IDs of styles that have been modified since loading\r\n * Used for selective merging with original styles.xml\r\n * @returns Set of modified style IDs\r\n */\r\n getModifiedStyleIds(): Set<string> {\r\n return new Set(this._modifiedStyleIds);\r\n }\r\n\r\n /**\r\n * Gets styles by type\r\n * @param type - Style type to filter by\r\n * @returns Array of styles matching the type\r\n */\r\n getStylesByType(type: StyleType): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === type);\r\n }\r\n\r\n /**\r\n * Gets quick styles (styles that appear in the style gallery)\r\n * A style appears in the gallery when qFormat=true AND semiHidden=false\r\n * @returns Array of quick styles\r\n */\r\n getQuickStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n const isQuick =\r\n props.qFormat === true ||\r\n (!props.customStyle && props.qFormat !== false);\r\n const isVisible = !props.semiHidden;\r\n return isQuick && isVisible;\r\n });\r\n }\r\n\r\n /**\r\n * Gets visible styles (not semi-hidden)\r\n * @returns Array of visible styles\r\n */\r\n getVisibleStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n return !props.semiHidden;\r\n });\r\n }\r\n\r\n /**\r\n * Gets styles sorted by UI priority\r\n * Lower priority values appear first (higher importance)\r\n * Styles without priority appear last\r\n * @returns Array of styles sorted by priority\r\n */\r\n getStylesByPriority(): Style[] {\r\n return this.getAllStyles().sort((a, b) => {\r\n const propsA = a.getProperties();\r\n const propsB = b.getProperties();\r\n\r\n const priorityA = propsA.uiPriority ?? 999;\r\n const priorityB = propsB.uiPriority ?? 999;\r\n\r\n return priorityA - priorityB;\r\n });\r\n }\r\n\r\n /**\r\n * Gets the linked style for a given style\r\n * @param styleId - Style ID to find the linked style for\r\n * @returns The linked style, or undefined if not found\r\n */\r\n getLinkedStyle(styleId: string): Style | undefined {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n return undefined;\r\n }\r\n\r\n const props = style.getProperties();\r\n if (!props.link) {\r\n return undefined;\r\n }\r\n\r\n return this.getStyle(props.link);\r\n }\r\n\r\n /**\r\n * Gets all table styles (Phase 5.1)\r\n * @returns Array of table styles\r\n */\r\n getTableStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === \"table\");\r\n }\r\n\r\n /**\r\n * Creates and adds a table style (Phase 5.1)\r\n * @param styleId - Style ID\r\n * @param name - Style name\r\n * @param basedOn - Base style ID (optional)\r\n * @returns The created table style\r\n */\r\n createTableStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"table\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Gets the number of styles\r\n * @returns Number of styles\r\n */\r\n getStyleCount(): number {\r\n return this.styles.size;\r\n }\r\n\r\n /**\r\n * Clears all styles\r\n * @returns This manager for chaining\r\n */\r\n clear(): this {\r\n this.styles.clear();\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets all available built-in style IDs\r\n * @returns Array of built-in style IDs\r\n */\r\n static getBuiltInStyleIds(): string[] {\r\n return Array.from(StylesManager.BUILT_IN_STYLE_FACTORIES.keys());\r\n }\r\n\r\n /**\r\n * Checks if a style ID is a built-in style\r\n * @param styleId - Style ID to check\r\n * @returns True if the style is a built-in style\r\n */\r\n static isBuiltInStyle(styleId: string): boolean {\r\n return StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId);\r\n }\r\n\r\n /**\r\n * Gets statistics about loaded vs available styles\r\n * @returns Object with style statistics\r\n */\r\n getStats(): {\r\n loadedStyles: number;\r\n availableBuiltInStyles: number;\r\n customStyles: number;\r\n } {\r\n const loadedStyles = this.styles.size;\r\n const customStyles = this.getAllStyles().filter(\r\n (s) => s.getProperties().customStyle\r\n ).length;\r\n\r\n return {\r\n loadedStyles,\r\n availableBuiltInStyles: this.includeBuiltInStyles\r\n ? StylesManager.BUILT_IN_STYLE_FACTORIES.size\r\n : 0,\r\n customStyles,\r\n };\r\n }\r\n\r\n /**\r\n * Creates a new paragraph style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createParagraphStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"paragraph\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Creates a new character style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createCharacterStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"character\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Generates the complete styles.xml file\r\n * @returns XML string for word/styles.xml\r\n */\r\n generateStylesXml(): string {\r\n const builder = new XMLBuilder();\r\n\r\n // Create styles element with namespace\r\n const stylesChildren = [];\r\n\r\n // Add document defaults\r\n stylesChildren.push(this.generateDocDefaults());\r\n\r\n // Add all styles\r\n for (const style of this.getAllStyles()) {\r\n stylesChildren.push(style.toXML());\r\n }\r\n\r\n builder.element(\r\n \"w:styles\",\r\n {\r\n \"xmlns:w\":\r\n \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\",\r\n \"xmlns:r\":\r\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\r\n },\r\n stylesChildren\r\n );\r\n\r\n return builder.build(true);\r\n }\r\n\r\n /**\r\n * Generates document defaults\r\n */\r\n private generateDocDefaults() {\r\n const rPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"rFonts\", {\r\n \"w:ascii\": \"Calibri\",\r\n \"w:hAnsi\": \"Calibri\",\r\n \"w:eastAsia\": \"Calibri\",\r\n \"w:cs\": \"Calibri\",\r\n }),\r\n XMLBuilder.wSelf(\"sz\", { \"w:val\": \"22\" }), // 11pt\r\n XMLBuilder.wSelf(\"szCs\", { \"w:val\": \"22\" }),\r\n XMLBuilder.wSelf(\"lang\", {\r\n \"w:val\": \"en-US\",\r\n \"w:eastAsia\": \"en-US\",\r\n \"w:bidi\": \"ar-SA\",\r\n }),\r\n ];\r\n\r\n const pPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"spacing\", {\r\n \"w:after\": \"200\",\r\n \"w:line\": \"276\",\r\n \"w:lineRule\": \"auto\",\r\n }),\r\n ];\r\n\r\n return XMLBuilder.w(\"docDefaults\", undefined, [\r\n XMLBuilder.w(\"rPrDefault\", undefined, [\r\n XMLBuilder.w(\"rPr\", undefined, rPrDefaultChildren),\r\n ]),\r\n XMLBuilder.w(\"pPrDefault\", undefined, [\r\n XMLBuilder.w(\"pPr\", undefined, pPrDefaultChildren),\r\n ]),\r\n ]);\r\n }\r\n\r\n /**\r\n * Creates a new StylesManager with built-in styles\r\n * @returns New StylesManager instance\r\n */\r\n static create(): StylesManager {\r\n return new StylesManager(true);\r\n }\r\n\r\n /**\r\n * Creates an empty StylesManager (no built-in styles)\r\n * @returns New empty StylesManager instance\r\n */\r\n static createEmpty(): StylesManager {\r\n return new StylesManager(false);\r\n }\r\n\r\n /**\r\n * Validates styles.xml content for structure and correctness\r\n *\r\n * This performs string-based validation to avoid XML parsing corruption.\r\n * It checks for:\r\n * - Well-formed XML structure\r\n * - Required w:styles root element\r\n * - Valid style definitions\r\n * - No duplicate style IDs\r\n * - Required attributes\r\n *\r\n * @param xml - The raw styles.xml content to validate\r\n * @returns ValidationResult with details about validity\r\n */\r\n static validate(xml: string): ValidationResult {\r\n const result: ValidationResult = {\r\n isValid: true,\r\n errors: [],\r\n warnings: [],\r\n styleCount: 0,\r\n styleIds: [],\r\n };\r\n\r\n // Check for empty or null\r\n if (!xml || xml.trim().length === 0) {\r\n result.isValid = false;\r\n result.errors.push(\"Styles XML is empty or null\");\r\n return result;\r\n }\r\n\r\n // Check for common corruption patterns FIRST (before parsing)\r\n // This catches double-encoding issues that would break the parser\r\n if (xml.includes(\"&lt;w:\") || xml.includes(\"&gt;\")) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"XML contains escaped tags - possible double-encoding corruption\"\r\n );\r\n return result;\r\n }\r\n\r\n // Skip complex XML structure validation - focus on w:styles specific validation\r\n // Checking balanced tags with regex is unreliable and can give false positives\r\n\r\n // Use XMLParser to extract root element\r\n const stylesContent = XMLParser.extractBetweenTags(\r\n xml,\r\n \"<w:styles\",\r\n \"</w:styles>\"\r\n );\r\n if (!stylesContent) {\r\n result.isValid = false;\r\n result.errors.push(\"Missing required <w:styles> root element\");\r\n return result;\r\n }\r\n\r\n // Check for namespace declaration\r\n if (!xml.includes(\"xmlns:w=\")) {\r\n result.warnings.push(\"Missing WordprocessingML namespace declaration\");\r\n }\r\n\r\n // Use XMLParser to extract all style elements\r\n const styleElements = XMLParser.extractElements(stylesContent, \"w:style\");\r\n result.styleCount = styleElements.length;\r\n\r\n // Check if any styles found\r\n if (styleElements.length === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n return result;\r\n }\r\n\r\n // Check for styles without attributes (invalid)\r\n const styleWithoutAttrs = styleElements.filter((el) => {\r\n // Check if element has any attributes\r\n const openTagEnd = el.indexOf(\">\");\r\n const openTag = el.substring(0, openTagEnd);\r\n return !openTag.includes(\"w:type\") || !openTag.includes(\"w:styleId\");\r\n });\r\n\r\n if (styleWithoutAttrs.length > 0) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"Style found without any attributes - w:type and w:styleId are required\"\r\n );\r\n }\r\n\r\n // Process each style element\r\n const foundStyleIds = new Set<string>();\r\n\r\n for (const styleElement of styleElements) {\r\n // Extract styleId using XMLParser\r\n const styleId = XMLParser.extractAttribute(styleElement, \"w:styleId\");\r\n if (styleId) {\r\n // Check for duplicates\r\n if (foundStyleIds.has(styleId)) {\r\n result.isValid = false;\r\n result.errors.push(`Duplicate style ID found: \"${styleId}\"`);\r\n } else {\r\n foundStyleIds.add(styleId);\r\n result.styleIds.push(styleId);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:styleId attribute\");\r\n }\r\n\r\n // Extract and validate type using XMLParser\r\n const type = XMLParser.extractAttribute(styleElement, \"w:type\");\r\n if (type) {\r\n if (![\"paragraph\", \"character\", \"table\", \"numbering\"].includes(type)) {\r\n result.warnings.push(`Invalid style type: \"${type}\"`);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:type attribute\");\r\n }\r\n\r\n // Check for circular references - extract basedOn value\r\n const basedOnElement = XMLParser.extractElements(\r\n styleElement,\r\n \"w:basedOn\"\r\n )[0];\r\n if (basedOnElement && styleId) {\r\n const basedOn = XMLParser.extractAttribute(basedOnElement, \"w:val\");\r\n if (basedOn && styleId === basedOn) {\r\n result.isValid = false;\r\n result.errors.push(\r\n `Circular reference detected: style \"${styleId}\" based on itself`\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Check for required Normal style\r\n if (!foundStyleIds.has(\"Normal\")) {\r\n result.warnings.push(\r\n 'Missing \"Normal\" style - document may not render correctly'\r\n );\r\n }\r\n\r\n // Check for BOM or invalid characters\r\n if (xml.charCodeAt(0) === 0xfeff) {\r\n result.warnings.push(\r\n \"XML contains BOM (Byte Order Mark) - may cause parsing issues\"\r\n );\r\n }\r\n\r\n // Summary\r\n if (result.styleCount === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Searches styles by name (case-insensitive)\r\n * @param searchTerm - Text to search for in style names\r\n * @returns Array of styles whose names contain the search term\r\n * @example\r\n * ```typescript\r\n * const headings = stylesManager.searchByName('heading');\r\n * console.log(`Found ${headings.length} heading styles`);\r\n * ```\r\n */\r\n searchByName(searchTerm: string): Style[] {\r\n const term = searchTerm.toLowerCase();\r\n return this.getAllStyles().filter((style) =>\r\n style.getName().toLowerCase().includes(term)\r\n );\r\n }\r\n\r\n /**\r\n * Finds styles using a specific font\r\n * @param fontName - Font family name to search for\r\n * @returns Array of styles that use the specified font\r\n * @example\r\n * ```typescript\r\n * const arialStyles = stylesManager.findByFont('Arial');\r\n * console.log(`Found ${arialStyles.length} styles using Arial font`);\r\n * ```\r\n */\r\n findByFont(fontName: string): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const runFormatting = style.getRunFormatting();\r\n return runFormatting?.font === fontName;\r\n });\r\n }\r\n\r\n /**\r\n * Finds styles with specific properties using a predicate function\r\n * @param predicate - Filter function that returns true for styles to include\r\n * @returns Array of styles matching the predicate\r\n * @example\r\n * ```typescript\r\n * // Find all paragraph styles\r\n * const paraStyles = stylesManager.findStyles(s => s.getType() === 'paragraph');\r\n *\r\n * // Find styles with custom formatting\r\n * const customStyles = stylesManager.findStyles(s => s.getProperties().customStyle);\r\n *\r\n * // Find styles with specific formatting\r\n * const boldStyles = stylesManager.findStyles(s => s.getRunFormatting()?.bold);\r\n * ```\r\n */\r\n findStyles(predicate: (style: Style) => boolean): Style[] {\r\n return this.getAllStyles().filter(predicate);\r\n }\r\n\r\n /**\r\n * Finds unused styles (not referenced by any paragraphs)\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Array of unused style IDs\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const unused = stylesManager.findUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Found ${unused.length} unused styles: ${unused.join(', ')}`);\r\n * ```\r\n */\r\n findUnusedStyles(paragraphs: Paragraph[]): string[] {\r\n const usedStyles = new Set<string>();\r\n\r\n // Collect all style IDs used by paragraphs\r\n for (const para of paragraphs) {\r\n const styleId = para.getStyle();\r\n if (styleId) {\r\n usedStyles.add(styleId);\r\n }\r\n }\r\n\r\n // Get all style IDs and filter out used ones\r\n const allStyleIds = this.getAllStyles().map((style) => style.getStyleId());\r\n return allStyleIds.filter((styleId) => !usedStyles.has(styleId));\r\n }\r\n\r\n /**\r\n * Removes all unused styles from the document\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Number of styles removed\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const removedCount = stylesManager.cleanupUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Cleaned up ${removedCount} unused styles`);\r\n * ```\r\n */\r\n cleanupUnusedStyles(paragraphs: Paragraph[]): number {\r\n const unused = this.findUnusedStyles(paragraphs);\r\n let count = 0;\r\n\r\n for (const styleId of unused) {\r\n // Don't remove built-in styles\r\n if (!StylesManager.isBuiltInStyle(styleId)) {\r\n if (this.removeStyle(styleId)) {\r\n count++;\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Validates all style references for broken or circular dependencies\r\n * @returns Validation result with broken references and circular dependencies\r\n * @example\r\n * ```typescript\r\n * const validation = stylesManager.validateStyleReferences();\r\n * if (!validation.valid) {\r\n * console.log('Broken references:', validation.brokenReferences);\r\n * console.log('Circular references:', validation.circularReferences);\r\n * }\r\n * ```\r\n */\r\n validateStyleReferences(): {\r\n valid: boolean;\r\n brokenReferences: { styleId: string; basedOn: string }[];\r\n circularReferences: string[][];\r\n } {\r\n const broken: { styleId: string; basedOn: string }[] = [];\r\n const circular: string[][] = [];\r\n const checkedForCycles = new Set<string>();\r\n\r\n for (const style of this.getAllStyles()) {\r\n const props = style.getProperties();\r\n\r\n // Check basedOn references exist\r\n if (props.basedOn && !this.hasStyle(props.basedOn)) {\r\n broken.push({ styleId: props.styleId, basedOn: props.basedOn });\r\n }\r\n\r\n // Check for circular references (only if not already checked as part of another cycle)\r\n if (!checkedForCycles.has(props.styleId)) {\r\n const result = this.hasCircularReference(props.styleId);\r\n if (result.hasCircularRef && result.cyclePath) {\r\n circular.push(result.cyclePath);\r\n // Mark all styles in this cycle as checked\r\n result.cyclePath.forEach((id) => checkedForCycles.add(id));\r\n }\r\n }\r\n }\r\n\r\n return {\r\n valid: broken.length === 0 && circular.length === 0,\r\n brokenReferences: broken,\r\n circularReferences: circular,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the complete inheritance chain for a style\r\n * @param styleId - Style ID to analyze\r\n * @returns Array of styles from base to derived (base style first)\r\n * @throws Error if style doesn't exist or circular reference detected\r\n * @example\r\n * ```typescript\r\n * const chain = stylesManager.getInheritanceChain('Heading1');\r\n * console.log('Inheritance chain:', chain.map(s => s.getName()));\r\n * // Output: ['Normal', 'Heading1'] (Normal is base, Heading1 inherits from it)\r\n * ```\r\n */\r\n getInheritanceChain(styleId: string): Style[] {\r\n const chain: Style[] = [];\r\n const visited = new Set<string>(); // Track visited styles to detect cycles\r\n let current = this.getStyle(styleId);\r\n\r\n if (!current) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n // Detect circular reference\r\n if (visited.has(currentId)) {\r\n const cycle = [...chain.map((s) => s.getStyleId()), currentId];\r\n throw new Error(\r\n `Circular style reference detected: ${cycle.join(\" -> \")}. ` +\r\n `Style '${currentId}' references itself through inheritance chain.`\r\n );\r\n }\r\n\r\n visited.add(currentId);\r\n chain.unshift(current); // Add to beginning to maintain base-to-derived order\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return chain;\r\n }\r\n\r\n /**\r\n * Checks if a style has circular references in its inheritance chain\r\n * @param styleId - Style ID to check\r\n * @returns Object with hasCircularRef flag and the cycle path if found\r\n * @example\r\n * ```typescript\r\n * const result = stylesManager.hasCircularReference('MyStyle');\r\n * if (result.hasCircularRef) {\r\n * console.log('Circular reference found:', result.cyclePath?.join(' -> '));\r\n * }\r\n * ```\r\n */\r\n hasCircularReference(styleId: string): {\r\n hasCircularRef: boolean;\r\n cyclePath?: string[];\r\n } {\r\n const visited = new Set<string>();\r\n const path: string[] = [];\r\n let current = this.getStyle(styleId);\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n if (visited.has(currentId)) {\r\n path.push(currentId);\r\n return { hasCircularRef: true, cyclePath: path };\r\n }\r\n\r\n visited.add(currentId);\r\n path.push(currentId);\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return { hasCircularRef: false };\r\n }\r\n\r\n /**\r\n * Gets all styles that inherit from a base style\r\n * @param baseStyleId - Base style ID to find children for\r\n * @returns Array of styles that inherit from the base style\r\n * @example\r\n * ```typescript\r\n * const children = stylesManager.getDerivedStyles('Normal');\r\n * console.log(`Styles based on Normal: ${children.map(s => s.getName()).join(', ')}`);\r\n * ```\r\n */\r\n getDerivedStyles(baseStyleId: string): Style[] {\r\n return this.getAllStyles().filter(\r\n (style) => style.getProperties().basedOn === baseStyleId\r\n );\r\n }\r\n\r\n /**\r\n * Exports a single style as JSON string\r\n * @param styleId - Style ID to export\r\n * @returns JSON representation of the style\r\n * @throws Error if style doesn't exist\r\n * @example\r\n * ```typescript\r\n * const json = stylesManager.exportStyle('Heading1');\r\n * console.log('Style JSON:', json);\r\n *\r\n * // Save to file\r\n * await fs.writeFile('heading1-style.json', json);\r\n * ```\r\n */\r\n exportStyle(styleId: string): string {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n return JSON.stringify(style.getProperties(), null, 2);\r\n }\r\n\r\n /**\r\n * Imports a style from JSON string\r\n * @param json - JSON string containing style properties\r\n * @returns The imported style\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('custom-style.json', 'utf8');\r\n * const style = stylesManager.importStyle(json);\r\n * console.log(`Imported style: ${style.getName()}`);\r\n * ```\r\n */\r\n importStyle(json: string): Style {\r\n try {\r\n const props = JSON.parse(json);\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n return style;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import style: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Exports all styles as JSON string\r\n * @returns JSON array of all style properties\r\n * @example\r\n * ```typescript\r\n * const allStylesJson = stylesManager.exportAllStyles();\r\n * console.log('All styles exported');\r\n *\r\n * // Save to file\r\n * await fs.writeFile('all-styles.json', allStylesJson);\r\n * ```\r\n */\r\n exportAllStyles(): string {\r\n const styles = this.getAllStyles().map((style) => style.getProperties());\r\n return JSON.stringify(styles, null, 2);\r\n }\r\n\r\n /**\r\n * Imports multiple styles from JSON array string\r\n * @param json - JSON string containing array of style properties\r\n * @returns Array of imported styles\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('styles-collection.json', 'utf8');\r\n * const styles = stylesManager.importStyles(json);\r\n * console.log(`Imported ${styles.length} styles`);\r\n * ```\r\n */\r\n importStyles(json: string): Style[] {\r\n try {\r\n const propsArray = JSON.parse(json);\r\n if (!Array.isArray(propsArray)) {\r\n throw new Error(\"JSON must contain an array of style properties\");\r\n }\r\n\r\n const styles: Style[] = [];\r\n for (const props of propsArray) {\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n styles.push(style);\r\n }\r\n\r\n return styles;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import styles: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StylesManager.js","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * StylesManager - Manages the collection of styles in a document\r\n * Handles style registration, retrieval, and styles.xml generation\r\n */\r\n\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { XMLBuilder } from \"../xml/XMLBuilder\";\r\nimport { XMLParser } from \"../xml/XMLParser\";\r\nimport { Style, StyleType } from \"./Style\";\r\n\r\n/**\r\n * Configuration for latent styles (w:latentStyles per ECMA-376 §17.7.4.6)\r\n * Controls which built-in styles are shown in the Word UI gallery\r\n */\r\nexport interface LatentStylesConfig {\r\n /** Default locked state for built-in styles */\r\n defaultLockedState?: boolean;\r\n /** Default UI priority for built-in styles */\r\n defaultUiPriority?: number;\r\n /** Default semi-hidden state */\r\n defaultSemiHidden?: boolean;\r\n /** Default unhide-when-used state */\r\n defaultUnhideWhenUsed?: boolean;\r\n /** Default quick format flag */\r\n defaultQFormat?: boolean;\r\n /** Total count of style definitions */\r\n count?: number;\r\n}\r\n\r\n/**\r\n * Exception to latent style defaults (w:lsdException per ECMA-376 §17.7.4.7)\r\n */\r\nexport interface LatentStyleException {\r\n /** Style name */\r\n name: string;\r\n /** Override: locked state */\r\n locked?: boolean;\r\n /** Override: UI priority */\r\n uiPriority?: number;\r\n /** Override: semi-hidden */\r\n semiHidden?: boolean;\r\n /** Override: unhide when used */\r\n unhideWhenUsed?: boolean;\r\n /** Override: quick format */\r\n qFormat?: boolean;\r\n}\r\n\r\n/**\r\n * Result of XML validation\r\n */\r\nexport interface ValidationResult {\r\n /** Whether the XML is valid */\r\n isValid: boolean;\r\n /** Validation errors if any */\r\n errors: string[];\r\n /** Validation warnings if any */\r\n warnings: string[];\r\n /** Number of styles found */\r\n styleCount: number;\r\n /** List of style IDs found */\r\n styleIds: string[];\r\n}\r\n\r\n/**\r\n * Manages document styles\r\n */\r\nexport class StylesManager {\r\n private styles = new Map<string, Style>();\r\n private includeBuiltInStyles: boolean;\r\n\r\n // Track if styles have been modified (for XML preservation)\r\n private _modified = false;\r\n\r\n // Track which specific styles have been modified (for selective merging)\r\n private _modifiedStyleIds = new Set<string>();\r\n\r\n // Latent styles configuration\r\n private latentStyles?: LatentStylesConfig;\r\n private latentStyleExceptions: LatentStyleException[] = [];\r\n\r\n /**\r\n * Registry of built-in style factory functions\r\n * Maps style ID to factory function for lazy loading\r\n */\r\n private static readonly BUILT_IN_STYLE_FACTORIES = new Map<\r\n string,\r\n () => Style\r\n >([\r\n [\"Normal\", () => Style.createNormalStyle()],\r\n [\"Heading1\", () => Style.createHeadingStyle(1)],\r\n [\"Heading2\", () => Style.createHeadingStyle(2)],\r\n [\"Heading3\", () => Style.createHeadingStyle(3)],\r\n [\"Heading4\", () => Style.createHeadingStyle(4)],\r\n [\"Heading5\", () => Style.createHeadingStyle(5)],\r\n [\"Heading6\", () => Style.createHeadingStyle(6)],\r\n [\"Heading7\", () => Style.createHeadingStyle(7)],\r\n [\"Heading8\", () => Style.createHeadingStyle(8)],\r\n [\"Heading9\", () => Style.createHeadingStyle(9)],\r\n [\"Heading1Char\", () => Style.createHeadingCharStyle(1)],\r\n [\"Heading2Char\", () => Style.createHeadingCharStyle(2)],\r\n [\"Heading3Char\", () => Style.createHeadingCharStyle(3)],\r\n [\"Heading4Char\", () => Style.createHeadingCharStyle(4)],\r\n [\"Heading5Char\", () => Style.createHeadingCharStyle(5)],\r\n [\"Heading6Char\", () => Style.createHeadingCharStyle(6)],\r\n [\"Heading7Char\", () => Style.createHeadingCharStyle(7)],\r\n [\"Heading8Char\", () => Style.createHeadingCharStyle(8)],\r\n [\"Heading9Char\", () => Style.createHeadingCharStyle(9)],\r\n [\"Title\", () => Style.createTitleStyle()],\r\n [\"Subtitle\", () => Style.createSubtitleStyle()],\r\n [\"ListParagraph\", () => Style.createListParagraphStyle()],\r\n [\"TOCHeading\", () => Style.createTOCHeadingStyle()],\r\n [\"TableNormal\", () => Style.createTableNormalStyle()],\r\n [\"TableGrid\", () => Style.createTableGridStyle()],\r\n ]);\r\n\r\n /**\r\n * Creates a new StylesManager\r\n * @param includeBuiltInStyles - Whether to include built-in styles (default: true)\r\n */\r\n constructor(includeBuiltInStyles = true) {\r\n this.includeBuiltInStyles = includeBuiltInStyles;\r\n\r\n // Always load Normal style if built-in styles are enabled\r\n // Normal is required and referenced by most other styles\r\n if (includeBuiltInStyles) {\r\n this.ensureStyleLoaded(\"Normal\");\r\n }\r\n }\r\n\r\n /**\r\n * Ensures a built-in style is loaded (lazy loading)\r\n * @param styleId - Style ID to load\r\n */\r\n private ensureStyleLoaded(styleId: string): void {\r\n // Already loaded?\r\n if (this.styles.has(styleId)) {\r\n return;\r\n }\r\n\r\n // Built-in styles disabled?\r\n if (!this.includeBuiltInStyles) {\r\n return;\r\n }\r\n\r\n // Is this a built-in style?\r\n const factory = StylesManager.BUILT_IN_STYLE_FACTORIES.get(styleId);\r\n if (factory) {\r\n this.styles.set(styleId, factory());\r\n }\r\n }\r\n\r\n /**\r\n * Adds a style to the collection\r\n * @param style - Style to add\r\n * @returns This manager for chaining\r\n */\r\n addStyle(style: Style): this {\r\n const existing = this.styles.get(style.getStyleId());\r\n if (existing) {\r\n // Preserve isDefault flag if replacing an existing default style\r\n if (existing.getIsDefault() && !style.getIsDefault()) {\r\n style.setIsDefault(true);\r\n }\r\n // Preserve structural properties from existing style if not explicitly set on new\r\n const newProps = style.getProperties();\r\n const existingProps = existing.getProperties();\r\n if (newProps.basedOn === undefined && existingProps.basedOn !== undefined) {\r\n style.setBasedOn(existingProps.basedOn);\r\n }\r\n if (newProps.next === undefined && existingProps.next !== undefined) {\r\n style.setNext(existingProps.next);\r\n }\r\n if (newProps.link === undefined && existingProps.link !== undefined) {\r\n style.setLink(existingProps.link);\r\n }\r\n if (newProps.uiPriority === undefined && existingProps.uiPriority !== undefined) {\r\n style.setUiPriority(existingProps.uiPriority);\r\n }\r\n }\r\n this.styles.set(style.getStyleId(), style);\r\n this._modifiedStyleIds.add(style.getStyleId());\r\n this._modified = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets a style by ID\r\n * Lazy-loads built-in styles on first access\r\n * @param styleId - Style ID to retrieve\r\n * @returns The style, or undefined if not found\r\n */\r\n getStyle(styleId: string): Style | undefined {\r\n // Ensure built-in style is loaded if applicable\r\n this.ensureStyleLoaded(styleId);\r\n return this.styles.get(styleId);\r\n }\r\n\r\n /**\r\n * Checks if a style exists or can be loaded\r\n * @param styleId - Style ID to check\r\n * @returns True if the style exists or is a built-in style\r\n */\r\n hasStyle(styleId: string): boolean {\r\n // Check if already loaded\r\n if (this.styles.has(styleId)) {\r\n return true;\r\n }\r\n\r\n // Check if it's a built-in style that can be loaded\r\n return (\r\n this.includeBuiltInStyles &&\r\n StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId)\r\n );\r\n }\r\n\r\n /**\r\n * Removes a style from the collection\r\n * @param styleId - Style ID to remove\r\n * @returns True if the style was removed\r\n */\r\n removeStyle(styleId: string): boolean {\r\n return this.styles.delete(styleId);\r\n }\r\n\r\n /**\r\n * Gets all styles\r\n * @returns Array of all styles\r\n */\r\n getAllStyles(): Style[] {\r\n return Array.from(this.styles.values());\r\n }\r\n\r\n /**\r\n * Checks if styles have been modified since loading\r\n * Used for XML preservation optimization\r\n * @returns True if styles were added or modified\r\n */\r\n isModified(): boolean {\r\n return this._modified;\r\n }\r\n\r\n /**\r\n * Resets the modified flag\r\n * Called after parsing to indicate that loaded styles don't count as modifications\r\n */\r\n resetModified(): void {\r\n this._modified = false;\r\n this._modifiedStyleIds.clear();\r\n }\r\n\r\n /**\r\n * Gets the IDs of styles that have been modified since loading\r\n * Used for selective merging with original styles.xml\r\n * @returns Set of modified style IDs\r\n */\r\n getModifiedStyleIds(): Set<string> {\r\n return new Set(this._modifiedStyleIds);\r\n }\r\n\r\n /**\r\n * Gets styles by type\r\n * @param type - Style type to filter by\r\n * @returns Array of styles matching the type\r\n */\r\n getStylesByType(type: StyleType): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === type);\r\n }\r\n\r\n /**\r\n * Gets quick styles (styles that appear in the style gallery)\r\n * A style appears in the gallery when qFormat=true AND semiHidden=false\r\n * @returns Array of quick styles\r\n */\r\n getQuickStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n const isQuick =\r\n props.qFormat === true ||\r\n (!props.customStyle && props.qFormat !== false);\r\n const isVisible = !props.semiHidden;\r\n return isQuick && isVisible;\r\n });\r\n }\r\n\r\n /**\r\n * Gets visible styles (not semi-hidden)\r\n * @returns Array of visible styles\r\n */\r\n getVisibleStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n return !props.semiHidden;\r\n });\r\n }\r\n\r\n /**\r\n * Gets styles sorted by UI priority\r\n * Lower priority values appear first (higher importance)\r\n * Styles without priority appear last\r\n * @returns Array of styles sorted by priority\r\n */\r\n getStylesByPriority(): Style[] {\r\n return this.getAllStyles().sort((a, b) => {\r\n const propsA = a.getProperties();\r\n const propsB = b.getProperties();\r\n\r\n const priorityA = propsA.uiPriority ?? 999;\r\n const priorityB = propsB.uiPriority ?? 999;\r\n\r\n return priorityA - priorityB;\r\n });\r\n }\r\n\r\n /**\r\n * Gets the linked style for a given style\r\n * @param styleId - Style ID to find the linked style for\r\n * @returns The linked style, or undefined if not found\r\n */\r\n getLinkedStyle(styleId: string): Style | undefined {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n return undefined;\r\n }\r\n\r\n const props = style.getProperties();\r\n if (!props.link) {\r\n return undefined;\r\n }\r\n\r\n return this.getStyle(props.link);\r\n }\r\n\r\n /**\r\n * Gets all table styles (Phase 5.1)\r\n * @returns Array of table styles\r\n */\r\n getTableStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === \"table\");\r\n }\r\n\r\n /**\r\n * Creates and adds a table style (Phase 5.1)\r\n * @param styleId - Style ID\r\n * @param name - Style name\r\n * @param basedOn - Base style ID (optional)\r\n * @returns The created table style\r\n */\r\n createTableStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"table\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Gets the number of styles\r\n * @returns Number of styles\r\n */\r\n getStyleCount(): number {\r\n return this.styles.size;\r\n }\r\n\r\n /**\r\n * Clears all styles\r\n * @returns This manager for chaining\r\n */\r\n clear(): this {\r\n this.styles.clear();\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets all available built-in style IDs\r\n * @returns Array of built-in style IDs\r\n */\r\n static getBuiltInStyleIds(): string[] {\r\n return Array.from(StylesManager.BUILT_IN_STYLE_FACTORIES.keys());\r\n }\r\n\r\n /**\r\n * Checks if a style ID is a built-in style\r\n * @param styleId - Style ID to check\r\n * @returns True if the style is a built-in style\r\n */\r\n static isBuiltInStyle(styleId: string): boolean {\r\n return StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId);\r\n }\r\n\r\n /**\r\n * Gets statistics about loaded vs available styles\r\n * @returns Object with style statistics\r\n */\r\n getStats(): {\r\n loadedStyles: number;\r\n availableBuiltInStyles: number;\r\n customStyles: number;\r\n } {\r\n const loadedStyles = this.styles.size;\r\n const customStyles = this.getAllStyles().filter(\r\n (s) => s.getProperties().customStyle\r\n ).length;\r\n\r\n return {\r\n loadedStyles,\r\n availableBuiltInStyles: this.includeBuiltInStyles\r\n ? StylesManager.BUILT_IN_STYLE_FACTORIES.size\r\n : 0,\r\n customStyles,\r\n };\r\n }\r\n\r\n /**\r\n * Creates a new paragraph style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createParagraphStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"paragraph\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Creates a new character style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createCharacterStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"character\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Sets the latent styles configuration\r\n * @param config - Latent styles configuration\r\n */\r\n setLatentStyles(config: LatentStylesConfig): this {\r\n this.latentStyles = config;\r\n this._modified = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the latent styles configuration\r\n */\r\n getLatentStyles(): LatentStylesConfig | undefined {\r\n return this.latentStyles;\r\n }\r\n\r\n /**\r\n * Adds a latent style exception\r\n * @param exception - The exception to add\r\n */\r\n addLatentStyleException(exception: LatentStyleException): this {\r\n // Replace existing exception for same name\r\n const idx = this.latentStyleExceptions.findIndex(e => e.name === exception.name);\r\n if (idx >= 0) {\r\n this.latentStyleExceptions[idx] = exception;\r\n } else {\r\n this.latentStyleExceptions.push(exception);\r\n }\r\n this._modified = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets all latent style exceptions\r\n */\r\n getLatentStyleExceptions(): LatentStyleException[] {\r\n return [...this.latentStyleExceptions];\r\n }\r\n\r\n /**\r\n * Generates the complete styles.xml file\r\n * @returns XML string for word/styles.xml\r\n */\r\n generateStylesXml(): string {\r\n const builder = new XMLBuilder();\r\n\r\n // Create styles element with namespace\r\n const stylesChildren = [];\r\n\r\n // Add document defaults\r\n stylesChildren.push(this.generateDocDefaults());\r\n\r\n // Add latent styles if configured (per ECMA-376 CT_Styles order: docDefaults, latentStyles, style*)\r\n if (this.latentStyles) {\r\n stylesChildren.push(this.generateLatentStyles());\r\n }\r\n\r\n // Add all styles\r\n for (const style of this.getAllStyles()) {\r\n stylesChildren.push(style.toXML());\r\n }\r\n\r\n builder.element(\r\n \"w:styles\",\r\n {\r\n \"xmlns:w\":\r\n \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\",\r\n \"xmlns:r\":\r\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\r\n },\r\n stylesChildren\r\n );\r\n\r\n return builder.build(true);\r\n }\r\n\r\n /**\r\n * Generates document defaults\r\n */\r\n private generateDocDefaults() {\r\n const rPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"rFonts\", {\r\n \"w:ascii\": \"Calibri\",\r\n \"w:hAnsi\": \"Calibri\",\r\n \"w:eastAsia\": \"Calibri\",\r\n \"w:cs\": \"Calibri\",\r\n }),\r\n XMLBuilder.wSelf(\"sz\", { \"w:val\": \"22\" }), // 11pt\r\n XMLBuilder.wSelf(\"szCs\", { \"w:val\": \"22\" }),\r\n XMLBuilder.wSelf(\"lang\", {\r\n \"w:val\": \"en-US\",\r\n \"w:eastAsia\": \"en-US\",\r\n \"w:bidi\": \"ar-SA\",\r\n }),\r\n ];\r\n\r\n const pPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"spacing\", {\r\n \"w:after\": \"200\",\r\n \"w:line\": \"276\",\r\n \"w:lineRule\": \"auto\",\r\n }),\r\n ];\r\n\r\n return XMLBuilder.w(\"docDefaults\", undefined, [\r\n XMLBuilder.w(\"rPrDefault\", undefined, [\r\n XMLBuilder.w(\"rPr\", undefined, rPrDefaultChildren),\r\n ]),\r\n XMLBuilder.w(\"pPrDefault\", undefined, [\r\n XMLBuilder.w(\"pPr\", undefined, pPrDefaultChildren),\r\n ]),\r\n ]);\r\n }\r\n\r\n /**\r\n * Generates the latent styles XML element\r\n */\r\n private generateLatentStyles() {\r\n if (!this.latentStyles) return XMLBuilder.w(\"latentStyles\", {}, []);\r\n\r\n const attrs: Record<string, string> = {};\r\n if (this.latentStyles.defaultLockedState !== undefined) {\r\n attrs[\"w:defLockedState\"] = this.latentStyles.defaultLockedState ? \"1\" : \"0\";\r\n }\r\n if (this.latentStyles.defaultUiPriority !== undefined) {\r\n attrs[\"w:defUIPriority\"] = this.latentStyles.defaultUiPriority.toString();\r\n }\r\n if (this.latentStyles.defaultSemiHidden !== undefined) {\r\n attrs[\"w:defSemiHidden\"] = this.latentStyles.defaultSemiHidden ? \"1\" : \"0\";\r\n }\r\n if (this.latentStyles.defaultUnhideWhenUsed !== undefined) {\r\n attrs[\"w:defUnhideWhenUsed\"] = this.latentStyles.defaultUnhideWhenUsed ? \"1\" : \"0\";\r\n }\r\n if (this.latentStyles.defaultQFormat !== undefined) {\r\n attrs[\"w:defQFormat\"] = this.latentStyles.defaultQFormat ? \"1\" : \"0\";\r\n }\r\n if (this.latentStyles.count !== undefined) {\r\n attrs[\"w:count\"] = this.latentStyles.count.toString();\r\n }\r\n\r\n const children = this.latentStyleExceptions.map(exc => {\r\n const excAttrs: Record<string, string> = { \"w:name\": exc.name };\r\n if (exc.locked !== undefined) excAttrs[\"w:locked\"] = exc.locked ? \"1\" : \"0\";\r\n if (exc.uiPriority !== undefined) excAttrs[\"w:uiPriority\"] = exc.uiPriority.toString();\r\n if (exc.semiHidden !== undefined) excAttrs[\"w:semiHidden\"] = exc.semiHidden ? \"1\" : \"0\";\r\n if (exc.unhideWhenUsed !== undefined) excAttrs[\"w:unhideWhenUsed\"] = exc.unhideWhenUsed ? \"1\" : \"0\";\r\n if (exc.qFormat !== undefined) excAttrs[\"w:qFormat\"] = exc.qFormat ? \"1\" : \"0\";\r\n return XMLBuilder.wSelf(\"lsdException\", excAttrs);\r\n });\r\n\r\n return XMLBuilder.w(\"latentStyles\", attrs, children);\r\n }\r\n\r\n /**\r\n * Creates a new StylesManager with built-in styles\r\n * @returns New StylesManager instance\r\n */\r\n static create(): StylesManager {\r\n return new StylesManager(true);\r\n }\r\n\r\n /**\r\n * Creates an empty StylesManager (no built-in styles)\r\n * @returns New empty StylesManager instance\r\n */\r\n static createEmpty(): StylesManager {\r\n return new StylesManager(false);\r\n }\r\n\r\n /**\r\n * Validates styles.xml content for structure and correctness\r\n *\r\n * This performs string-based validation to avoid XML parsing corruption.\r\n * It checks for:\r\n * - Well-formed XML structure\r\n * - Required w:styles root element\r\n * - Valid style definitions\r\n * - No duplicate style IDs\r\n * - Required attributes\r\n *\r\n * @param xml - The raw styles.xml content to validate\r\n * @returns ValidationResult with details about validity\r\n */\r\n static validate(xml: string): ValidationResult {\r\n const result: ValidationResult = {\r\n isValid: true,\r\n errors: [],\r\n warnings: [],\r\n styleCount: 0,\r\n styleIds: [],\r\n };\r\n\r\n // Check for empty or null\r\n if (!xml || xml.trim().length === 0) {\r\n result.isValid = false;\r\n result.errors.push(\"Styles XML is empty or null\");\r\n return result;\r\n }\r\n\r\n // Check for common corruption patterns FIRST (before parsing)\r\n // This catches double-encoding issues that would break the parser\r\n if (xml.includes(\"&lt;w:\") || xml.includes(\"&gt;\")) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"XML contains escaped tags - possible double-encoding corruption\"\r\n );\r\n return result;\r\n }\r\n\r\n // Skip complex XML structure validation - focus on w:styles specific validation\r\n // Checking balanced tags with regex is unreliable and can give false positives\r\n\r\n // Use XMLParser to extract root element\r\n const stylesContent = XMLParser.extractBetweenTags(\r\n xml,\r\n \"<w:styles\",\r\n \"</w:styles>\"\r\n );\r\n if (!stylesContent) {\r\n result.isValid = false;\r\n result.errors.push(\"Missing required <w:styles> root element\");\r\n return result;\r\n }\r\n\r\n // Check for namespace declaration\r\n if (!xml.includes(\"xmlns:w=\")) {\r\n result.warnings.push(\"Missing WordprocessingML namespace declaration\");\r\n }\r\n\r\n // Use XMLParser to extract all style elements\r\n const styleElements = XMLParser.extractElements(stylesContent, \"w:style\");\r\n result.styleCount = styleElements.length;\r\n\r\n // Check if any styles found\r\n if (styleElements.length === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n return result;\r\n }\r\n\r\n // Check for styles without attributes (invalid)\r\n const styleWithoutAttrs = styleElements.filter((el) => {\r\n // Check if element has any attributes\r\n const openTagEnd = el.indexOf(\">\");\r\n const openTag = el.substring(0, openTagEnd);\r\n return !openTag.includes(\"w:type\") || !openTag.includes(\"w:styleId\");\r\n });\r\n\r\n if (styleWithoutAttrs.length > 0) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"Style found without any attributes - w:type and w:styleId are required\"\r\n );\r\n }\r\n\r\n // Process each style element\r\n const foundStyleIds = new Set<string>();\r\n\r\n for (const styleElement of styleElements) {\r\n // Extract styleId using XMLParser\r\n const styleId = XMLParser.extractAttribute(styleElement, \"w:styleId\");\r\n if (styleId) {\r\n // Check for duplicates\r\n if (foundStyleIds.has(styleId)) {\r\n result.isValid = false;\r\n result.errors.push(`Duplicate style ID found: \"${styleId}\"`);\r\n } else {\r\n foundStyleIds.add(styleId);\r\n result.styleIds.push(styleId);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:styleId attribute\");\r\n }\r\n\r\n // Extract and validate type using XMLParser\r\n const type = XMLParser.extractAttribute(styleElement, \"w:type\");\r\n if (type) {\r\n if (![\"paragraph\", \"character\", \"table\", \"numbering\"].includes(type)) {\r\n result.warnings.push(`Invalid style type: \"${type}\"`);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:type attribute\");\r\n }\r\n\r\n // Check for circular references - extract basedOn value\r\n const basedOnElement = XMLParser.extractElements(\r\n styleElement,\r\n \"w:basedOn\"\r\n )[0];\r\n if (basedOnElement && styleId) {\r\n const basedOn = XMLParser.extractAttribute(basedOnElement, \"w:val\");\r\n if (basedOn && styleId === basedOn) {\r\n result.isValid = false;\r\n result.errors.push(\r\n `Circular reference detected: style \"${styleId}\" based on itself`\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Check for required Normal style\r\n if (!foundStyleIds.has(\"Normal\")) {\r\n result.warnings.push(\r\n 'Missing \"Normal\" style - document may not render correctly'\r\n );\r\n }\r\n\r\n // Check for BOM or invalid characters\r\n if (xml.charCodeAt(0) === 0xfeff) {\r\n result.warnings.push(\r\n \"XML contains BOM (Byte Order Mark) - may cause parsing issues\"\r\n );\r\n }\r\n\r\n // Summary\r\n if (result.styleCount === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Searches styles by name (case-insensitive)\r\n * @param searchTerm - Text to search for in style names\r\n * @returns Array of styles whose names contain the search term\r\n * @example\r\n * ```typescript\r\n * const headings = stylesManager.searchByName('heading');\r\n * console.log(`Found ${headings.length} heading styles`);\r\n * ```\r\n */\r\n searchByName(searchTerm: string): Style[] {\r\n const term = searchTerm.toLowerCase();\r\n return this.getAllStyles().filter((style) =>\r\n style.getName().toLowerCase().includes(term)\r\n );\r\n }\r\n\r\n /**\r\n * Finds styles using a specific font\r\n * @param fontName - Font family name to search for\r\n * @returns Array of styles that use the specified font\r\n * @example\r\n * ```typescript\r\n * const arialStyles = stylesManager.findByFont('Arial');\r\n * console.log(`Found ${arialStyles.length} styles using Arial font`);\r\n * ```\r\n */\r\n findByFont(fontName: string): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const runFormatting = style.getRunFormatting();\r\n return runFormatting?.font === fontName;\r\n });\r\n }\r\n\r\n /**\r\n * Finds styles with specific properties using a predicate function\r\n * @param predicate - Filter function that returns true for styles to include\r\n * @returns Array of styles matching the predicate\r\n * @example\r\n * ```typescript\r\n * // Find all paragraph styles\r\n * const paraStyles = stylesManager.findStyles(s => s.getType() === 'paragraph');\r\n *\r\n * // Find styles with custom formatting\r\n * const customStyles = stylesManager.findStyles(s => s.getProperties().customStyle);\r\n *\r\n * // Find styles with specific formatting\r\n * const boldStyles = stylesManager.findStyles(s => s.getRunFormatting()?.bold);\r\n * ```\r\n */\r\n findStyles(predicate: (style: Style) => boolean): Style[] {\r\n return this.getAllStyles().filter(predicate);\r\n }\r\n\r\n /**\r\n * Finds unused styles (not referenced by any paragraphs)\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Array of unused style IDs\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const unused = stylesManager.findUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Found ${unused.length} unused styles: ${unused.join(', ')}`);\r\n * ```\r\n */\r\n findUnusedStyles(paragraphs: Paragraph[]): string[] {\r\n const usedStyles = new Set<string>();\r\n\r\n // Collect all style IDs used by paragraphs\r\n for (const para of paragraphs) {\r\n const styleId = para.getStyle();\r\n if (styleId) {\r\n usedStyles.add(styleId);\r\n }\r\n }\r\n\r\n // Get all style IDs and filter out used ones\r\n const allStyleIds = this.getAllStyles().map((style) => style.getStyleId());\r\n return allStyleIds.filter((styleId) => !usedStyles.has(styleId));\r\n }\r\n\r\n /**\r\n * Removes all unused styles from the document\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Number of styles removed\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const removedCount = stylesManager.cleanupUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Cleaned up ${removedCount} unused styles`);\r\n * ```\r\n */\r\n cleanupUnusedStyles(paragraphs: Paragraph[]): number {\r\n const unused = this.findUnusedStyles(paragraphs);\r\n let count = 0;\r\n\r\n for (const styleId of unused) {\r\n // Don't remove built-in styles\r\n if (!StylesManager.isBuiltInStyle(styleId)) {\r\n if (this.removeStyle(styleId)) {\r\n count++;\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Validates all style references for broken or circular dependencies\r\n * @returns Validation result with broken references and circular dependencies\r\n * @example\r\n * ```typescript\r\n * const validation = stylesManager.validateStyleReferences();\r\n * if (!validation.valid) {\r\n * console.log('Broken references:', validation.brokenReferences);\r\n * console.log('Circular references:', validation.circularReferences);\r\n * }\r\n * ```\r\n */\r\n validateStyleReferences(): {\r\n valid: boolean;\r\n brokenReferences: { styleId: string; basedOn: string }[];\r\n circularReferences: string[][];\r\n } {\r\n const broken: { styleId: string; basedOn: string }[] = [];\r\n const circular: string[][] = [];\r\n const checkedForCycles = new Set<string>();\r\n\r\n for (const style of this.getAllStyles()) {\r\n const props = style.getProperties();\r\n\r\n // Check basedOn references exist\r\n if (props.basedOn && !this.hasStyle(props.basedOn)) {\r\n broken.push({ styleId: props.styleId, basedOn: props.basedOn });\r\n }\r\n\r\n // Check for circular references (only if not already checked as part of another cycle)\r\n if (!checkedForCycles.has(props.styleId)) {\r\n const result = this.hasCircularReference(props.styleId);\r\n if (result.hasCircularRef && result.cyclePath) {\r\n circular.push(result.cyclePath);\r\n // Mark all styles in this cycle as checked\r\n result.cyclePath.forEach((id) => checkedForCycles.add(id));\r\n }\r\n }\r\n }\r\n\r\n return {\r\n valid: broken.length === 0 && circular.length === 0,\r\n brokenReferences: broken,\r\n circularReferences: circular,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the complete inheritance chain for a style\r\n * @param styleId - Style ID to analyze\r\n * @returns Array of styles from base to derived (base style first)\r\n * @throws Error if style doesn't exist or circular reference detected\r\n * @example\r\n * ```typescript\r\n * const chain = stylesManager.getInheritanceChain('Heading1');\r\n * console.log('Inheritance chain:', chain.map(s => s.getName()));\r\n * // Output: ['Normal', 'Heading1'] (Normal is base, Heading1 inherits from it)\r\n * ```\r\n */\r\n getInheritanceChain(styleId: string): Style[] {\r\n const chain: Style[] = [];\r\n const visited = new Set<string>(); // Track visited styles to detect cycles\r\n let current = this.getStyle(styleId);\r\n\r\n if (!current) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n // Detect circular reference\r\n if (visited.has(currentId)) {\r\n const cycle = [...chain.map((s) => s.getStyleId()), currentId];\r\n throw new Error(\r\n `Circular style reference detected: ${cycle.join(\" -> \")}. ` +\r\n `Style '${currentId}' references itself through inheritance chain.`\r\n );\r\n }\r\n\r\n visited.add(currentId);\r\n chain.unshift(current); // Add to beginning to maintain base-to-derived order\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return chain;\r\n }\r\n\r\n /**\r\n * Checks if a style has circular references in its inheritance chain\r\n * @param styleId - Style ID to check\r\n * @returns Object with hasCircularRef flag and the cycle path if found\r\n * @example\r\n * ```typescript\r\n * const result = stylesManager.hasCircularReference('MyStyle');\r\n * if (result.hasCircularRef) {\r\n * console.log('Circular reference found:', result.cyclePath?.join(' -> '));\r\n * }\r\n * ```\r\n */\r\n hasCircularReference(styleId: string): {\r\n hasCircularRef: boolean;\r\n cyclePath?: string[];\r\n } {\r\n const visited = new Set<string>();\r\n const path: string[] = [];\r\n let current = this.getStyle(styleId);\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n if (visited.has(currentId)) {\r\n path.push(currentId);\r\n return { hasCircularRef: true, cyclePath: path };\r\n }\r\n\r\n visited.add(currentId);\r\n path.push(currentId);\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return { hasCircularRef: false };\r\n }\r\n\r\n /**\r\n * Gets all styles that inherit from a base style\r\n * @param baseStyleId - Base style ID to find children for\r\n * @returns Array of styles that inherit from the base style\r\n * @example\r\n * ```typescript\r\n * const children = stylesManager.getDerivedStyles('Normal');\r\n * console.log(`Styles based on Normal: ${children.map(s => s.getName()).join(', ')}`);\r\n * ```\r\n */\r\n getDerivedStyles(baseStyleId: string): Style[] {\r\n return this.getAllStyles().filter(\r\n (style) => style.getProperties().basedOn === baseStyleId\r\n );\r\n }\r\n\r\n /**\r\n * Exports a single style as JSON string\r\n * @param styleId - Style ID to export\r\n * @returns JSON representation of the style\r\n * @throws Error if style doesn't exist\r\n * @example\r\n * ```typescript\r\n * const json = stylesManager.exportStyle('Heading1');\r\n * console.log('Style JSON:', json);\r\n *\r\n * // Save to file\r\n * await fs.writeFile('heading1-style.json', json);\r\n * ```\r\n */\r\n exportStyle(styleId: string): string {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n return JSON.stringify(style.getProperties(), null, 2);\r\n }\r\n\r\n /**\r\n * Imports a style from JSON string\r\n * @param json - JSON string containing style properties\r\n * @returns The imported style\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('custom-style.json', 'utf8');\r\n * const style = stylesManager.importStyle(json);\r\n * console.log(`Imported style: ${style.getName()}`);\r\n * ```\r\n */\r\n importStyle(json: string): Style {\r\n try {\r\n const props = JSON.parse(json);\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n return style;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import style: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Exports all styles as JSON string\r\n * @returns JSON array of all style properties\r\n * @example\r\n * ```typescript\r\n * const allStylesJson = stylesManager.exportAllStyles();\r\n * console.log('All styles exported');\r\n *\r\n * // Save to file\r\n * await fs.writeFile('all-styles.json', allStylesJson);\r\n * ```\r\n */\r\n exportAllStyles(): string {\r\n const styles = this.getAllStyles().map((style) => style.getProperties());\r\n return JSON.stringify(styles, null, 2);\r\n }\r\n\r\n /**\r\n * Imports multiple styles from JSON array string\r\n * @param json - JSON string containing array of style properties\r\n * @returns Array of imported styles\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('styles-collection.json', 'utf8');\r\n * const styles = stylesManager.importStyles(json);\r\n * console.log(`Imported ${styles.length} styles`);\r\n * ```\r\n */\r\n importStyles(json: string): Style[] {\r\n try {\r\n const propsArray = JSON.parse(json);\r\n if (!Array.isArray(propsArray)) {\r\n throw new Error(\"JSON must contain an array of style properties\");\r\n }\r\n\r\n const styles: Style[] = [];\r\n for (const props of propsArray) {\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n styles.push(style);\r\n }\r\n\r\n return styles;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import styles: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n}\r\n"]}
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote'
20
20
  export { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';
21
21
  export { Field, FieldType, FieldProperties, ComplexField, ComplexFieldProperties, FieldCharType, TOCFieldOptions, createTOCField, } from './elements/Field';
22
22
  export { createNestedIFMergeField, createMergeField, createRefField, createIFField, createNestedField, parseHyperlinkInstruction, buildHyperlinkInstruction, isHyperlinkInstruction, ParsedHyperlinkInstruction, } from './elements/FieldHelpers';
23
- export { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent } from './elements/StructuredDocumentTag';
23
+ export { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent, SDTPlaceholder, SDTDataBinding, ContentControlType } from './elements/StructuredDocumentTag';
24
24
  export { TableOfContents, TOCProperties } from './elements/TableOfContents';
25
25
  export { TableOfContentsElement } from './elements/TableOfContentsElement';
26
26
  export { AlternateContent } from './elements/AlternateContent';
@@ -36,7 +36,7 @@ export { SelectiveRevisionAcceptor, SelectiveAcceptResult, } from './utils/Selec
36
36
  export { RevisionAwareProcessor, RevisionHandlingMode, RevisionProcessingOptions, SelectionCriteria, RevisionProcessingResult, ConflictInfo, ProcessingLogEntry, } from './utils/RevisionAwareProcessor';
37
37
  export { ChangelogGenerator, ChangeEntry, ChangeCategory, ChangeLocation, ChangelogOptions, ChangelogFormat, ConsolidatedChange, ChangelogSummary, } from './utils/ChangelogGenerator';
38
38
  export { Style, StyleType, StyleProperties } from './formatting/Style';
39
- export { StylesManager, ValidationResult } from './formatting/StylesManager';
39
+ export { StylesManager, ValidationResult, LatentStylesConfig, LatentStyleException } from './formatting/StylesManager';
40
40
  export { NumberingLevel, NumberFormat, NumberAlignment, NumberingLevelProperties, WORD_NATIVE_BULLETS, WordNativeBullet, } from './formatting/NumberingLevel';
41
41
  export { AbstractNumbering, AbstractNumberingProperties, } from './formatting/AbstractNumbering';
42
42
  export { NumberingInstance, NumberingInstanceProperties, } from './formatting/NumberingInstance';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DocXML - DOCX Editing Framework\r\n * Main entry point\r\n */\r\n\r\n// =============================================================================\r\n// PUBLIC API — Core Document Classes\r\n// =============================================================================\r\n\r\nexport { Document, DocumentProperties, DocumentOptions, DocumentLoadOptions, DocumentPart } from './core/Document';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Document Elements\r\n// =============================================================================\r\n\r\nexport {\r\n Paragraph,\r\n ParagraphAlignment,\r\n ParagraphFormatting,\r\n ParagraphContent,\r\n FieldLike,\r\n isRun,\r\n isField,\r\n isSimpleField,\r\n isComplexField,\r\n isHyperlink,\r\n isRevision,\r\n isRangeMarker,\r\n isShape,\r\n isTextBox,\r\n} from './elements/Paragraph';\r\nexport { Run, RunFormatting, ThemeColorValue } from './elements/Run';\r\nexport {\r\n Section,\r\n PageOrientation,\r\n SectionType,\r\n PageNumberFormat,\r\n PageSize,\r\n Margins,\r\n Columns,\r\n PageNumbering,\r\n SectionProperties,\r\n LineNumbering,\r\n LineNumberingRestart,\r\n} from './elements/Section';\r\nexport {\r\n Table,\r\n TableAlignment,\r\n TableLayout,\r\n TableBorder,\r\n TableBorders,\r\n TableFormatting,\r\n} from './elements/Table';\r\nexport { TableRow, RowFormatting } from './elements/TableRow';\r\nexport {\r\n TableCell,\r\n CellBorder,\r\n CellBorders,\r\n CellShading,\r\n CellFormatting,\r\n} from './elements/TableCell';\r\nexport { TableGridChange, GridColumn, TableGridChangeProperties } from './elements/TableGridChange';\r\nexport {\r\n Image,\r\n ImageFormat,\r\n ImageProperties,\r\n ImageBorder,\r\n ImageEffects,\r\n PresetGeometry,\r\n BlipCompressionState,\r\n PicLockAttribute,\r\n PicNonVisualProperties,\r\n} from './elements/Image';\r\nexport { ImageRun } from './elements/ImageRun';\r\nexport { Shape, ShapeType, ShapeProperties, ShapeFill, ShapeOutline } from './elements/Shape';\r\nexport { TextBox, TextBoxProperties, TextBoxFill, TextBoxMargins } from './elements/TextBox';\r\nexport { Header, HeaderType, HeaderProperties } from './elements/Header';\r\nexport { Footer, FooterType, FooterProperties } from './elements/Footer';\r\nexport { Hyperlink, HyperlinkProperties } from './elements/Hyperlink';\r\nexport { Bookmark, BookmarkProperties } from './elements/Bookmark';\r\nexport { RangeMarker, RangeMarkerType, RangeMarkerProperties } from './elements/RangeMarker';\r\nexport { Comment, CommentProperties } from './elements/Comment';\r\nexport { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote';\r\nexport { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';\r\nexport {\r\n Field,\r\n FieldType,\r\n FieldProperties,\r\n ComplexField,\r\n ComplexFieldProperties,\r\n FieldCharType,\r\n TOCFieldOptions,\r\n createTOCField,\r\n} from './elements/Field';\r\nexport {\r\n createNestedIFMergeField,\r\n createMergeField,\r\n createRefField,\r\n createIFField,\r\n createNestedField,\r\n parseHyperlinkInstruction,\r\n buildHyperlinkInstruction,\r\n isHyperlinkInstruction,\r\n ParsedHyperlinkInstruction,\r\n} from './elements/FieldHelpers';\r\nexport { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent } from './elements/StructuredDocumentTag';\r\nexport { TableOfContents, TOCProperties } from './elements/TableOfContents';\r\nexport { TableOfContentsElement } from './elements/TableOfContentsElement';\r\nexport { AlternateContent } from './elements/AlternateContent';\r\nexport { MathParagraph, MathExpression } from './elements/MathElement';\r\nexport { CustomXmlBlock } from './elements/CustomXml';\r\nexport { PreservedElement, PreservedElementContext } from './elements/PreservedElement';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Track Changes / Revisions\r\n// =============================================================================\r\n\r\nexport { Revision, RevisionType, RevisionProperties, FieldContext } from './elements/Revision';\r\nexport { RevisionContent, isRunContent, isHyperlinkContent } from './elements/RevisionContent';\r\nexport {\r\n RevisionLocation,\r\n RunPropertyChange,\r\n ParagraphPropertyChange,\r\n ParagraphFormattingPartial,\r\n ParagraphBorderDef,\r\n ParagraphBorders,\r\n ParagraphShading,\r\n TabStopDef,\r\n PropertyChangeBase,\r\n TablePropertyChange,\r\n TablePropertyChangeType,\r\n SectionPropertyChange,\r\n NumberingChange,\r\n AnyPropertyChange,\r\n isRunPropertyChange,\r\n isParagraphPropertyChange,\r\n isTablePropertyChange,\r\n isSectionPropertyChange,\r\n isNumberingChange,\r\n} from './elements/PropertyChangeTypes';\r\nexport {\r\n acceptRevisionsInMemory,\r\n AcceptRevisionsOptions,\r\n AcceptRevisionsResult,\r\n paragraphHasRevisions,\r\n getRevisionsFromParagraph,\r\n countRevisionsByType,\r\n stripRevisionsFromXml,\r\n} from './utils/InMemoryRevisionAcceptor';\r\nexport {\r\n MoveOperationHelper,\r\n MoveOperationOptions,\r\n MoveOperationResult,\r\n} from './utils/MoveOperationHelper';\r\nexport {\r\n SelectiveRevisionAcceptor,\r\n SelectiveAcceptResult,\r\n} from './utils/SelectiveRevisionAcceptor';\r\nexport {\r\n RevisionAwareProcessor,\r\n RevisionHandlingMode,\r\n RevisionProcessingOptions,\r\n SelectionCriteria,\r\n RevisionProcessingResult,\r\n ConflictInfo,\r\n ProcessingLogEntry,\r\n} from './utils/RevisionAwareProcessor';\r\nexport {\r\n ChangelogGenerator,\r\n ChangeEntry,\r\n ChangeCategory,\r\n ChangeLocation,\r\n ChangelogOptions,\r\n ChangelogFormat,\r\n ConsolidatedChange,\r\n ChangelogSummary,\r\n} from './utils/ChangelogGenerator';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Formatting / Styles / Numbering\r\n// =============================================================================\r\n\r\nexport { Style, StyleType, StyleProperties } from './formatting/Style';\r\nexport { StylesManager, ValidationResult } from './formatting/StylesManager';\r\nexport {\r\n NumberingLevel,\r\n NumberFormat,\r\n NumberAlignment,\r\n NumberingLevelProperties,\r\n WORD_NATIVE_BULLETS,\r\n WordNativeBullet,\r\n} from './formatting/NumberingLevel';\r\nexport {\r\n AbstractNumbering,\r\n AbstractNumberingProperties,\r\n} from './formatting/AbstractNumbering';\r\nexport {\r\n NumberingInstance,\r\n NumberingInstanceProperties,\r\n} from './formatting/NumberingInstance';\r\nexport {\r\n NumberingManager,\r\n NumberingConsolidationOptions,\r\n NumberingConsolidationResult,\r\n} from './formatting/NumberingManager';\r\nexport {\r\n StyleRunFormatting,\r\n StyleParagraphFormatting,\r\n Heading2TableOptions,\r\n StyleConfig,\r\n Heading2Config,\r\n ApplyCustomFormattingOptions,\r\n} from './types/styleConfig';\r\nexport {\r\n FormatOptions,\r\n StyleApplyOptions,\r\n EmphasisType,\r\n ListPrefix,\r\n} from './types/formatting';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Managers\r\n// =============================================================================\r\n\r\nexport { RevisionManager, RevisionCategory, RevisionSummary } from './elements/RevisionManager';\r\nexport { ImageManager } from './elements/ImageManager';\r\nexport { BookmarkManager } from './elements/BookmarkManager';\r\nexport { CommentManager } from './elements/CommentManager';\r\nexport { FootnoteManager } from './elements/FootnoteManager';\r\nexport { EndnoteManager } from './elements/EndnoteManager';\r\nexport { HeaderFooterManager } from './elements/HeaderFooterManager';\r\nexport { FontManager, FontFormat, FontEntry } from './elements/FontManager';\r\nexport { DrawingManager, DrawingElement, DrawingType, PreservedDrawing } from './managers/DrawingManager';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Image Optimization\r\n// =============================================================================\r\n\r\nexport type { ImageOptimizationResult } from './images/ImageOptimizer';\r\n\r\n// =============================================================================\r\n// TYPES — Common / Shared Type Definitions\r\n// =============================================================================\r\n\r\nexport {\r\n ShadingPattern,\r\n BasicShadingPattern,\r\n BorderStyle,\r\n ExtendedBorderStyle,\r\n FullBorderStyle,\r\n BorderDefinition,\r\n FourSidedBorders,\r\n TableBorderDefinitions,\r\n HorizontalAlignment,\r\n VerticalAlignment,\r\n PageVerticalAlignment,\r\n CellVerticalAlignment,\r\n ParagraphAlignment as CommonParagraphAlignment,\r\n TableAlignment as CommonTableAlignment,\r\n RowJustification,\r\n TextVerticalAlignment,\r\n TabAlignment,\r\n PositionAnchor,\r\n HorizontalAnchor,\r\n VerticalAnchor,\r\n TextDirection,\r\n SectionTextDirection,\r\n WidthType,\r\n ShadingConfig,\r\n buildShadingAttributes,\r\n TabLeader,\r\n TabStop,\r\n isShadingPattern,\r\n isBorderStyle,\r\n isHorizontalAlignment,\r\n isVerticalAlignment,\r\n isParagraphAlignment,\r\n isWidthType,\r\n DEFAULT_BORDER,\r\n NO_BORDER,\r\n} from './elements/CommonTypes';\r\nexport {\r\n ListCategory,\r\n NumberFormat as ListNumberFormat,\r\n BulletFormat,\r\n ListDetectionResult,\r\n ListAnalysis,\r\n ListNormalizationOptions,\r\n ListNormalizationReport,\r\n IndentationLevel,\r\n} from './types/list-types';\r\n\r\nexport {\r\n CompatibilityMode,\r\n CompatibilityInfo,\r\n CompatSetting,\r\n} from './types/compatibility-types';\r\n\r\nexport {\r\n DocumentProtection,\r\n RevisionViewSettings,\r\n TrackChangesSettings,\r\n WebSettingsInfo,\r\n} from './types/settings-types';\r\n\r\n// =============================================================================\r\n// TYPES — Compatibility Upgrade\r\n// =============================================================================\r\n\r\nexport { CompatibilityUpgrader, UpgradeReport } from './utils/CompatibilityUpgrader';\r\nexport {\r\n LEGACY_COMPAT_ELEMENTS,\r\n LEGACY_COMPAT_ELEMENT_NAMES,\r\n MODERN_COMPAT_SETTINGS,\r\n MS_WORD_COMPAT_URI,\r\n} from './constants/legacyCompatFlags';\r\n\r\n// =============================================================================\r\n// UTILITIES — Unit Conversions\r\n// =============================================================================\r\n\r\nexport {\r\n STANDARD_DPI,\r\n UNITS,\r\n PAGE_SIZES,\r\n COMMON_MARGINS,\r\n twipsToPoints,\r\n twipsToInches,\r\n twipsToCm,\r\n twipsToEmus,\r\n emusToTwips,\r\n emusToInches,\r\n emusToCm,\r\n emusToPoints,\r\n emusToPixels,\r\n pointsToTwips,\r\n pointsToEmus,\r\n pointsToInches,\r\n pointsToCm,\r\n pointsToHalfPoints,\r\n halfPointsToPoints,\r\n inchesToTwips,\r\n inchesToEmus,\r\n inchesToPoints,\r\n inchesToCm,\r\n inchesToPixels,\r\n cmToTwips,\r\n cmToEmus,\r\n cmToInches,\r\n cmToPoints,\r\n cmToPixels,\r\n pixelsToEmus,\r\n pixelsToInches,\r\n pixelsToTwips,\r\n pixelsToCm,\r\n pixelsToPoints,\r\n} from './utils/units';\r\n\r\n// =============================================================================\r\n// UTILITIES — Validation, Corruption Detection, Error Handling\r\n// =============================================================================\r\n\r\nexport {\r\n validateDocxStructure,\r\n isBinaryFile,\r\n normalizePath,\r\n isValidZipBuffer,\r\n isTextContent,\r\n validateTwips,\r\n validateColor,\r\n validateHexColor,\r\n normalizeColor,\r\n validateNumberingId,\r\n validateLevel,\r\n validateAlignment,\r\n validateFontSize,\r\n validateNonEmptyString,\r\n validatePercentage,\r\n validateEmus,\r\n detectXmlInText,\r\n cleanXmlFromText,\r\n validateRunText,\r\n TextValidationResult,\r\n} from './utils/validation';\r\nexport {\r\n detectCorruptionInDocument,\r\n detectCorruptionInText,\r\n suggestFix,\r\n looksCorrupted,\r\n CorruptionReport,\r\n CorruptionLocation,\r\n CorruptionType,\r\n} from './utils/corruptionDetection';\r\nexport { isError, toError, wrapError, getErrorMessage } from './utils/errorHandling';\r\nexport {\r\n REVISION_RULES,\r\n ValidationSeverity,\r\n ValidationIssue,\r\n ValidationRule,\r\n ValidationOptions,\r\n AutoFixOptions,\r\n ValidationResult as RevisionValidationResult,\r\n FixAction,\r\n AutoFixResult,\r\n createIssueFromRule,\r\n getRuleByCode,\r\n getRulesBySeverity,\r\n getAutoFixableRules,\r\n RevisionValidator,\r\n RevisionAutoFixer,\r\n} from './validation';\r\n\r\n// =============================================================================\r\n// UTILITIES — Formatting, Parsing, Sanitization\r\n// =============================================================================\r\n\r\nexport {\r\n mergeFormatting,\r\n cloneFormatting,\r\n hasFormatting,\r\n cleanFormatting,\r\n isEqualFormatting,\r\n applyDefaults,\r\n} from './utils/formatting';\r\nexport {\r\n safeParseInt,\r\n parseOoxmlBoolean,\r\n isExplicitlySet,\r\n parseNumericAttribute,\r\n parseOnOffAttribute,\r\n} from './utils/parsingHelpers';\r\nexport {\r\n removeInvalidXmlChars,\r\n findInvalidXmlChars,\r\n hasInvalidXmlChars,\r\n XML_CONTROL_CHARS,\r\n} from './utils/xmlSanitization';\r\n\r\n// =============================================================================\r\n// UTILITIES — List Detection (kept for basic detection; normalization moved to consumer)\r\n// =============================================================================\r\n\r\nexport {\r\n detectTypedPrefix,\r\n detectListType,\r\n inferLevelFromIndentation,\r\n getParagraphIndentation,\r\n validateListSequence,\r\n getListCategoryFromFormat,\r\n getLevelFromFormat,\r\n TYPED_LIST_PATTERNS,\r\n PATTERN_TO_CATEGORY,\r\n FORMAT_TO_LEVEL,\r\n} from './utils/list-detection';\r\n\r\n// =============================================================================\r\n// UTILITIES — Logging\r\n// =============================================================================\r\n\r\nexport {\r\n ILogger,\r\n LogLevel,\r\n LogEntry,\r\n ConsoleLogger,\r\n SilentLogger,\r\n CollectingLogger,\r\n defaultLogger,\r\n createScopedLogger,\r\n createComponentLogger,\r\n getGlobalLogger,\r\n setGlobalLogger,\r\n resetGlobalLogger,\r\n} from './utils/logger';\r\n\r\n// =============================================================================\r\n// UTILITIES — Revision Walker\r\n// =============================================================================\r\n\r\nexport { RevisionWalker, RevisionWalkerOptions } from './utils/RevisionWalker';\r\nexport { resolveCellShading } from './utils/ShadingResolver';\r\nexport { decodeCnfStyle, getActiveConditionalsInPriorityOrder } from './utils/cnfStyleDecoder';\r\n\r\n// =============================================================================\r\n// UTILITIES — Cleanup\r\n// =============================================================================\r\n\r\nexport {\r\n CleanupHelper,\r\n CleanupOptions,\r\n CleanupReport,\r\n} from './helpers/CleanupHelper';\r\n\r\n// =============================================================================\r\n// INTERNAL — ZIP Handling (advanced usage)\r\n// =============================================================================\r\n\r\nexport { ZipHandler } from './zip/ZipHandler';\r\nexport { ZipReader } from './zip/ZipReader';\r\nexport { ZipWriter } from './zip/ZipWriter';\r\nexport {\r\n ZipFile,\r\n FileMap,\r\n LoadOptions,\r\n SaveOptions,\r\n AddFileOptions,\r\n SizeLimitOptions,\r\n DEFAULT_SIZE_LIMITS,\r\n REQUIRED_DOCX_FILES,\r\n DOCX_PATHS,\r\n} from './zip/types';\r\nexport {\r\n DocxError,\r\n DocxNotFoundError,\r\n InvalidDocxError,\r\n CorruptedArchiveError,\r\n MissingRequiredFileError,\r\n FileOperationError,\r\n} from './zip/errors';\r\n\r\n// =============================================================================\r\n// INTERNAL — XML Builder and Parser (advanced usage)\r\n// =============================================================================\r\n\r\nexport { XMLBuilder, XMLElement } from './xml/XMLBuilder';\r\nexport {\r\n XMLParser,\r\n ParseToObjectOptions,\r\n ParsedXMLValue,\r\n ParsedXMLObject,\r\n DEFAULT_MAX_NESTING_DEPTH,\r\n} from './xml/XMLParser';\r\n\r\n// =============================================================================\r\n// INTERNAL — Parser, Generator, Validator (advanced usage)\r\n// =============================================================================\r\n\r\nexport { Relationship, RelationshipType, RelationshipProperties } from './core/Relationship';\r\nexport { RelationshipManager } from './core/RelationshipManager';\r\nexport { DocumentParser, ParseError } from './core/DocumentParser';\r\nexport { DocumentGenerator, IZipHandlerReader } from './core/DocumentGenerator';\r\nexport { DocumentValidator, SizeEstimate, MemoryOptions } from './core/DocumentValidator';\r\nexport { DocumentIdManager } from './core/DocumentIdManager';\r\n\r\n// =============================================================================\r\n// INTERNAL — Document Subsystem Classes (advanced usage)\r\n// =============================================================================\r\n\r\nexport { DocumentContent, BodyElement } from './core/DocumentContent';\r\n\r\n// =============================================================================\r\n// INTERNAL — Constants\r\n// =============================================================================\r\n\r\nexport { LIMITS } from './constants/limits';\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AASA,4CAAmH;AAA1G,oGAAA,QAAQ,OAAA;AAMjB,kDAe8B;AAd5B,sGAAA,SAAS,OAAA;AAKT,kGAAA,KAAK,OAAA;AACL,oGAAA,OAAO,OAAA;AACP,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AACb,oGAAA,OAAO,OAAA;AACP,sGAAA,SAAS,OAAA;AAEX,sCAAqE;AAA5D,0FAAA,GAAG,OAAA;AACZ,8CAY4B;AAX1B,kGAAA,OAAO,OAAA;AAYT,0CAO0B;AANxB,8FAAA,KAAK,OAAA;AAOP,gDAA8D;AAArD,oGAAA,QAAQ,OAAA;AACjB,kDAM8B;AAL5B,sGAAA,SAAS,OAAA;AAMX,8DAAoG;AAA3F,kHAAA,eAAe,OAAA;AACxB,0CAU0B;AATxB,8FAAA,KAAK,OAAA;AAUP,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,0CAA8F;AAArF,8FAAA,KAAK,OAAA;AACd,8CAA6F;AAApF,kGAAA,OAAO,OAAA;AAChB,4CAAyE;AAAhE,gGAAA,MAAM,OAAA;AACf,4CAAyE;AAAhE,gGAAA,MAAM,OAAA;AACf,kDAAsE;AAA7D,sGAAA,SAAS,OAAA;AAClB,gDAAmE;AAA1D,oGAAA,QAAQ,OAAA;AACjB,sDAA6F;AAApF,0GAAA,WAAW,OAAA;AACpB,8CAAgE;AAAvD,kGAAA,OAAO,OAAA;AAChB,gDAAiF;AAAxE,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAC/B,8CAA6E;AAApE,kGAAA,OAAO,OAAA;AAAE,sGAAA,WAAW,OAAA;AAC7B,0CAS0B;AARxB,8FAAA,KAAK,OAAA;AAGL,qGAAA,YAAY,OAAA;AAIZ,uGAAA,cAAc,OAAA;AAEhB,wDAUiC;AAT/B,wHAAA,wBAAwB,OAAA;AACxB,gHAAA,gBAAgB,OAAA;AAChB,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,iHAAA,iBAAiB,OAAA;AACjB,yHAAA,yBAAyB,OAAA;AACzB,yHAAA,yBAAyB,OAAA;AACzB,sHAAA,sBAAsB,OAAA;AAGxB,0EAAqK;AAA5J,8HAAA,qBAAqB,OAAA;AAC9B,8DAA4E;AAAnE,kHAAA,eAAe,OAAA;AACxB,4EAA2E;AAAlE,gIAAA,sBAAsB,OAAA;AAC/B,gEAA+D;AAAtD,oHAAA,gBAAgB,OAAA;AACzB,sDAAuE;AAA9D,4GAAA,aAAa,OAAA;AAAE,6GAAA,cAAc,OAAA;AACtC,kDAAsD;AAA7C,2GAAA,cAAc,OAAA;AACvB,gEAAwF;AAA/E,oHAAA,gBAAgB,OAAA;AAMzB,gDAA+F;AAAtF,oGAAA,QAAQ,OAAA;AACjB,8DAA+F;AAArE,+GAAA,YAAY,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC1D,sEAoBwC;AALtC,0HAAA,mBAAmB,OAAA;AACnB,gIAAA,yBAAyB,OAAA;AACzB,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AACvB,wHAAA,iBAAiB,OAAA;AAEnB,6EAQ0C;AAPxC,mIAAA,uBAAuB,OAAA;AAGvB,iIAAA,qBAAqB,OAAA;AACrB,qIAAA,yBAAyB,OAAA;AACzB,gIAAA,oBAAoB,OAAA;AACpB,iIAAA,qBAAqB,OAAA;AAEvB,mEAIqC;AAHnC,0HAAA,mBAAmB,OAAA;AAIrB,+EAG2C;AAFzC,sIAAA,yBAAyB,OAAA;AAG3B,yEAQwC;AAPtC,gIAAA,sBAAsB,OAAA;AAQxB,iEASoC;AARlC,wHAAA,kBAAkB,OAAA;AAcpB,4CAAuE;AAA9D,8FAAA,KAAK,OAAA;AACd,4DAAuH;AAA9G,8GAAA,aAAa,OAAA;AACtB,8DAOqC;AANnC,gHAAA,cAAc,OAAA;AAId,qHAAA,mBAAmB,OAAA;AAGrB,oEAGwC;AAFtC,sHAAA,iBAAiB,OAAA;AAGnB,oEAGwC;AAFtC,sHAAA,iBAAiB,OAAA;AAGnB,kEAIuC;AAHrC,oHAAA,gBAAgB,OAAA;AAuBlB,8DAAgG;AAAvF,kHAAA,eAAe,OAAA;AACxB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AACrB,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,4DAA2D;AAAlD,gHAAA,cAAc,OAAA;AACvB,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,sDAA4E;AAAnE,0GAAA,WAAW,OAAA;AACpB,4DAA0G;AAAjG,gHAAA,cAAc,OAAA;AAYvB,sDAoCgC;AAX9B,qHAAA,sBAAsB,OAAA;AAGtB,+GAAA,gBAAgB,OAAA;AAChB,4GAAA,aAAa,OAAA;AACb,oHAAA,qBAAqB,OAAA;AACrB,kHAAA,mBAAmB,OAAA;AACnB,mHAAA,oBAAoB,OAAA;AACpB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AACd,wGAAA,SAAS,OAAA;AAaX,mEAIqC;AAHnC,wHAAA,iBAAiB,OAAA;AAgBnB,uEAAqF;AAA5E,8HAAA,qBAAqB,OAAA;AAC9B,mEAKuC;AAJrC,2HAAA,sBAAsB,OAAA;AACtB,gIAAA,2BAA2B,OAAA;AAC3B,2HAAA,sBAAsB,OAAA;AACtB,uHAAA,kBAAkB,OAAA;AAOpB,uCAmCuB;AAlCrB,qGAAA,YAAY,OAAA;AACZ,8FAAA,KAAK,OAAA;AACL,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AACb,kGAAA,SAAS,OAAA;AACT,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,iGAAA,QAAQ,OAAA;AACR,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,2GAAA,kBAAkB,OAAA;AAClB,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AAOhB,iDAqB4B;AApB1B,mHAAA,qBAAqB,OAAA;AACrB,0GAAA,YAAY,OAAA;AACZ,2GAAA,aAAa,OAAA;AACb,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,8GAAA,gBAAgB,OAAA;AAChB,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA;AACnB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,gHAAA,kBAAkB,OAAA;AAClB,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,6GAAA,eAAe,OAAA;AAGjB,mEAQqC;AAPnC,iIAAA,0BAA0B,OAAA;AAC1B,6HAAA,sBAAsB,OAAA;AACtB,iHAAA,UAAU,OAAA;AACV,qHAAA,cAAc,OAAA;AAKhB,uDAAqF;AAA5E,wGAAA,OAAO,OAAA;AAAE,wGAAA,OAAO,OAAA;AAAE,0GAAA,SAAS,OAAA;AAAE,gHAAA,eAAe,OAAA;AACrD,2CAgBsB;AAfpB,4GAAA,cAAc,OAAA;AASd,iHAAA,mBAAmB,OAAA;AACnB,2GAAA,aAAa,OAAA;AACb,gHAAA,kBAAkB,OAAA;AAClB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,+GAAA,iBAAiB,OAAA;AAOnB,iDAO4B;AAN1B,6GAAA,eAAe,OAAA;AACf,6GAAA,eAAe,OAAA;AACf,2GAAA,aAAa,OAAA;AACb,6GAAA,eAAe,OAAA;AACf,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AAEf,yDAMgC;AAL9B,8GAAA,YAAY,OAAA;AACZ,mHAAA,iBAAiB,OAAA;AACjB,iHAAA,eAAe,OAAA;AACf,uHAAA,qBAAqB,OAAA;AACrB,qHAAA,mBAAmB,OAAA;AAErB,2DAKiC;AAJ/B,wHAAA,qBAAqB,OAAA;AACrB,sHAAA,mBAAmB,OAAA;AACnB,qHAAA,kBAAkB,OAAA;AAClB,oHAAA,iBAAiB,OAAA;AAOnB,yDAWgC;AAV9B,mHAAA,iBAAiB,OAAA;AACjB,gHAAA,cAAc,OAAA;AACd,2HAAA,yBAAyB,OAAA;AACzB,yHAAA,uBAAuB,OAAA;AACvB,sHAAA,oBAAoB,OAAA;AACpB,2HAAA,yBAAyB,OAAA;AACzB,oHAAA,kBAAkB,OAAA;AAClB,qHAAA,mBAAmB,OAAA;AACnB,qHAAA,mBAAmB,OAAA;AACnB,iHAAA,eAAe,OAAA;AAOjB,yCAawB;AAXtB,kGAAA,QAAQ,OAAA;AAER,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,0GAAA,gBAAgB,OAAA;AAChB,uGAAA,aAAa,OAAA;AACb,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AAOnB,yDAA+E;AAAtE,gHAAA,cAAc,OAAA;AACvB,2DAA6D;AAApD,qHAAA,kBAAkB,OAAA;AAC3B,2DAA+F;AAAtF,iHAAA,cAAc,OAAA;AAAE,uIAAA,oCAAoC,OAAA;AAM7D,yDAIiC;AAH/B,8GAAA,aAAa,OAAA;AASf,+CAA8C;AAArC,wGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,sGAAA,SAAS,OAAA;AAClB,6CAA4C;AAAnC,sGAAA,SAAS,OAAA;AAClB,qCAUqB;AAHnB,4GAAA,mBAAmB,OAAA;AACnB,4GAAA,mBAAmB,OAAA;AACnB,mGAAA,UAAU,OAAA;AAEZ,uCAOsB;AANpB,mGAAA,SAAS,OAAA;AACT,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,+GAAA,qBAAqB,OAAA;AACrB,kHAAA,wBAAwB,OAAA;AACxB,4GAAA,kBAAkB,OAAA;AAOpB,+CAA0D;AAAjD,wGAAA,UAAU,OAAA;AACnB,6CAMyB;AALvB,sGAAA,SAAS,OAAA;AAIT,sHAAA,yBAAyB,OAAA;AAO3B,oDAA6F;AAApF,4GAAA,YAAY,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AACvC,kEAAiE;AAAxD,0HAAA,mBAAmB,OAAA;AAC5B,wDAAmE;AAA1D,gHAAA,cAAc,OAAA;AACvB,8DAAgF;AAAvE,sHAAA,iBAAiB,OAAA;AAC1B,8DAA0F;AAAjF,sHAAA,iBAAiB,OAAA;AAC1B,8DAA6D;AAApD,sHAAA,iBAAiB,OAAA;AAM1B,0DAAsE;AAA7D,kHAAA,eAAe,OAAA;AAMxB,6CAA4C;AAAnC,gGAAA,MAAM,OAAA","sourcesContent":["/**\r\n * DocXML - DOCX Editing Framework\r\n * Main entry point\r\n */\r\n\r\n// =============================================================================\r\n// PUBLIC API — Core Document Classes\r\n// =============================================================================\r\n\r\nexport { Document, DocumentProperties, DocumentOptions, DocumentLoadOptions, DocumentPart } from './core/Document';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Document Elements\r\n// =============================================================================\r\n\r\nexport {\r\n Paragraph,\r\n ParagraphAlignment,\r\n ParagraphFormatting,\r\n ParagraphContent,\r\n FieldLike,\r\n isRun,\r\n isField,\r\n isSimpleField,\r\n isComplexField,\r\n isHyperlink,\r\n isRevision,\r\n isRangeMarker,\r\n isShape,\r\n isTextBox,\r\n} from './elements/Paragraph';\r\nexport { Run, RunFormatting, ThemeColorValue } from './elements/Run';\r\nexport {\r\n Section,\r\n PageOrientation,\r\n SectionType,\r\n PageNumberFormat,\r\n PageSize,\r\n Margins,\r\n Columns,\r\n PageNumbering,\r\n SectionProperties,\r\n LineNumbering,\r\n LineNumberingRestart,\r\n} from './elements/Section';\r\nexport {\r\n Table,\r\n TableAlignment,\r\n TableLayout,\r\n TableBorder,\r\n TableBorders,\r\n TableFormatting,\r\n} from './elements/Table';\r\nexport { TableRow, RowFormatting } from './elements/TableRow';\r\nexport {\r\n TableCell,\r\n CellBorder,\r\n CellBorders,\r\n CellShading,\r\n CellFormatting,\r\n} from './elements/TableCell';\r\nexport { TableGridChange, GridColumn, TableGridChangeProperties } from './elements/TableGridChange';\r\nexport {\r\n Image,\r\n ImageFormat,\r\n ImageProperties,\r\n ImageBorder,\r\n ImageEffects,\r\n PresetGeometry,\r\n BlipCompressionState,\r\n PicLockAttribute,\r\n PicNonVisualProperties,\r\n} from './elements/Image';\r\nexport { ImageRun } from './elements/ImageRun';\r\nexport { Shape, ShapeType, ShapeProperties, ShapeFill, ShapeOutline } from './elements/Shape';\r\nexport { TextBox, TextBoxProperties, TextBoxFill, TextBoxMargins } from './elements/TextBox';\r\nexport { Header, HeaderType, HeaderProperties } from './elements/Header';\r\nexport { Footer, FooterType, FooterProperties } from './elements/Footer';\r\nexport { Hyperlink, HyperlinkProperties } from './elements/Hyperlink';\r\nexport { Bookmark, BookmarkProperties } from './elements/Bookmark';\r\nexport { RangeMarker, RangeMarkerType, RangeMarkerProperties } from './elements/RangeMarker';\r\nexport { Comment, CommentProperties } from './elements/Comment';\r\nexport { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote';\r\nexport { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';\r\nexport {\r\n Field,\r\n FieldType,\r\n FieldProperties,\r\n ComplexField,\r\n ComplexFieldProperties,\r\n FieldCharType,\r\n TOCFieldOptions,\r\n createTOCField,\r\n} from './elements/Field';\r\nexport {\r\n createNestedIFMergeField,\r\n createMergeField,\r\n createRefField,\r\n createIFField,\r\n createNestedField,\r\n parseHyperlinkInstruction,\r\n buildHyperlinkInstruction,\r\n isHyperlinkInstruction,\r\n ParsedHyperlinkInstruction,\r\n} from './elements/FieldHelpers';\r\nexport { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent, SDTPlaceholder, SDTDataBinding, ContentControlType } from './elements/StructuredDocumentTag';\r\nexport { TableOfContents, TOCProperties } from './elements/TableOfContents';\r\nexport { TableOfContentsElement } from './elements/TableOfContentsElement';\r\nexport { AlternateContent } from './elements/AlternateContent';\r\nexport { MathParagraph, MathExpression } from './elements/MathElement';\r\nexport { CustomXmlBlock } from './elements/CustomXml';\r\nexport { PreservedElement, PreservedElementContext } from './elements/PreservedElement';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Track Changes / Revisions\r\n// =============================================================================\r\n\r\nexport { Revision, RevisionType, RevisionProperties, FieldContext } from './elements/Revision';\r\nexport { RevisionContent, isRunContent, isHyperlinkContent } from './elements/RevisionContent';\r\nexport {\r\n RevisionLocation,\r\n RunPropertyChange,\r\n ParagraphPropertyChange,\r\n ParagraphFormattingPartial,\r\n ParagraphBorderDef,\r\n ParagraphBorders,\r\n ParagraphShading,\r\n TabStopDef,\r\n PropertyChangeBase,\r\n TablePropertyChange,\r\n TablePropertyChangeType,\r\n SectionPropertyChange,\r\n NumberingChange,\r\n AnyPropertyChange,\r\n isRunPropertyChange,\r\n isParagraphPropertyChange,\r\n isTablePropertyChange,\r\n isSectionPropertyChange,\r\n isNumberingChange,\r\n} from './elements/PropertyChangeTypes';\r\nexport {\r\n acceptRevisionsInMemory,\r\n AcceptRevisionsOptions,\r\n AcceptRevisionsResult,\r\n paragraphHasRevisions,\r\n getRevisionsFromParagraph,\r\n countRevisionsByType,\r\n stripRevisionsFromXml,\r\n} from './utils/InMemoryRevisionAcceptor';\r\nexport {\r\n MoveOperationHelper,\r\n MoveOperationOptions,\r\n MoveOperationResult,\r\n} from './utils/MoveOperationHelper';\r\nexport {\r\n SelectiveRevisionAcceptor,\r\n SelectiveAcceptResult,\r\n} from './utils/SelectiveRevisionAcceptor';\r\nexport {\r\n RevisionAwareProcessor,\r\n RevisionHandlingMode,\r\n RevisionProcessingOptions,\r\n SelectionCriteria,\r\n RevisionProcessingResult,\r\n ConflictInfo,\r\n ProcessingLogEntry,\r\n} from './utils/RevisionAwareProcessor';\r\nexport {\r\n ChangelogGenerator,\r\n ChangeEntry,\r\n ChangeCategory,\r\n ChangeLocation,\r\n ChangelogOptions,\r\n ChangelogFormat,\r\n ConsolidatedChange,\r\n ChangelogSummary,\r\n} from './utils/ChangelogGenerator';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Formatting / Styles / Numbering\r\n// =============================================================================\r\n\r\nexport { Style, StyleType, StyleProperties } from './formatting/Style';\r\nexport { StylesManager, ValidationResult, LatentStylesConfig, LatentStyleException } from './formatting/StylesManager';\r\nexport {\r\n NumberingLevel,\r\n NumberFormat,\r\n NumberAlignment,\r\n NumberingLevelProperties,\r\n WORD_NATIVE_BULLETS,\r\n WordNativeBullet,\r\n} from './formatting/NumberingLevel';\r\nexport {\r\n AbstractNumbering,\r\n AbstractNumberingProperties,\r\n} from './formatting/AbstractNumbering';\r\nexport {\r\n NumberingInstance,\r\n NumberingInstanceProperties,\r\n} from './formatting/NumberingInstance';\r\nexport {\r\n NumberingManager,\r\n NumberingConsolidationOptions,\r\n NumberingConsolidationResult,\r\n} from './formatting/NumberingManager';\r\nexport {\r\n StyleRunFormatting,\r\n StyleParagraphFormatting,\r\n Heading2TableOptions,\r\n StyleConfig,\r\n Heading2Config,\r\n ApplyCustomFormattingOptions,\r\n} from './types/styleConfig';\r\nexport {\r\n FormatOptions,\r\n StyleApplyOptions,\r\n EmphasisType,\r\n ListPrefix,\r\n} from './types/formatting';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Managers\r\n// =============================================================================\r\n\r\nexport { RevisionManager, RevisionCategory, RevisionSummary } from './elements/RevisionManager';\r\nexport { ImageManager } from './elements/ImageManager';\r\nexport { BookmarkManager } from './elements/BookmarkManager';\r\nexport { CommentManager } from './elements/CommentManager';\r\nexport { FootnoteManager } from './elements/FootnoteManager';\r\nexport { EndnoteManager } from './elements/EndnoteManager';\r\nexport { HeaderFooterManager } from './elements/HeaderFooterManager';\r\nexport { FontManager, FontFormat, FontEntry } from './elements/FontManager';\r\nexport { DrawingManager, DrawingElement, DrawingType, PreservedDrawing } from './managers/DrawingManager';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Image Optimization\r\n// =============================================================================\r\n\r\nexport type { ImageOptimizationResult } from './images/ImageOptimizer';\r\n\r\n// =============================================================================\r\n// TYPES — Common / Shared Type Definitions\r\n// =============================================================================\r\n\r\nexport {\r\n ShadingPattern,\r\n BasicShadingPattern,\r\n BorderStyle,\r\n ExtendedBorderStyle,\r\n FullBorderStyle,\r\n BorderDefinition,\r\n FourSidedBorders,\r\n TableBorderDefinitions,\r\n HorizontalAlignment,\r\n VerticalAlignment,\r\n PageVerticalAlignment,\r\n CellVerticalAlignment,\r\n ParagraphAlignment as CommonParagraphAlignment,\r\n TableAlignment as CommonTableAlignment,\r\n RowJustification,\r\n TextVerticalAlignment,\r\n TabAlignment,\r\n PositionAnchor,\r\n HorizontalAnchor,\r\n VerticalAnchor,\r\n TextDirection,\r\n SectionTextDirection,\r\n WidthType,\r\n ShadingConfig,\r\n buildShadingAttributes,\r\n TabLeader,\r\n TabStop,\r\n isShadingPattern,\r\n isBorderStyle,\r\n isHorizontalAlignment,\r\n isVerticalAlignment,\r\n isParagraphAlignment,\r\n isWidthType,\r\n DEFAULT_BORDER,\r\n NO_BORDER,\r\n} from './elements/CommonTypes';\r\nexport {\r\n ListCategory,\r\n NumberFormat as ListNumberFormat,\r\n BulletFormat,\r\n ListDetectionResult,\r\n ListAnalysis,\r\n ListNormalizationOptions,\r\n ListNormalizationReport,\r\n IndentationLevel,\r\n} from './types/list-types';\r\n\r\nexport {\r\n CompatibilityMode,\r\n CompatibilityInfo,\r\n CompatSetting,\r\n} from './types/compatibility-types';\r\n\r\nexport {\r\n DocumentProtection,\r\n RevisionViewSettings,\r\n TrackChangesSettings,\r\n WebSettingsInfo,\r\n} from './types/settings-types';\r\n\r\n// =============================================================================\r\n// TYPES — Compatibility Upgrade\r\n// =============================================================================\r\n\r\nexport { CompatibilityUpgrader, UpgradeReport } from './utils/CompatibilityUpgrader';\r\nexport {\r\n LEGACY_COMPAT_ELEMENTS,\r\n LEGACY_COMPAT_ELEMENT_NAMES,\r\n MODERN_COMPAT_SETTINGS,\r\n MS_WORD_COMPAT_URI,\r\n} from './constants/legacyCompatFlags';\r\n\r\n// =============================================================================\r\n// UTILITIES — Unit Conversions\r\n// =============================================================================\r\n\r\nexport {\r\n STANDARD_DPI,\r\n UNITS,\r\n PAGE_SIZES,\r\n COMMON_MARGINS,\r\n twipsToPoints,\r\n twipsToInches,\r\n twipsToCm,\r\n twipsToEmus,\r\n emusToTwips,\r\n emusToInches,\r\n emusToCm,\r\n emusToPoints,\r\n emusToPixels,\r\n pointsToTwips,\r\n pointsToEmus,\r\n pointsToInches,\r\n pointsToCm,\r\n pointsToHalfPoints,\r\n halfPointsToPoints,\r\n inchesToTwips,\r\n inchesToEmus,\r\n inchesToPoints,\r\n inchesToCm,\r\n inchesToPixels,\r\n cmToTwips,\r\n cmToEmus,\r\n cmToInches,\r\n cmToPoints,\r\n cmToPixels,\r\n pixelsToEmus,\r\n pixelsToInches,\r\n pixelsToTwips,\r\n pixelsToCm,\r\n pixelsToPoints,\r\n} from './utils/units';\r\n\r\n// =============================================================================\r\n// UTILITIES — Validation, Corruption Detection, Error Handling\r\n// =============================================================================\r\n\r\nexport {\r\n validateDocxStructure,\r\n isBinaryFile,\r\n normalizePath,\r\n isValidZipBuffer,\r\n isTextContent,\r\n validateTwips,\r\n validateColor,\r\n validateHexColor,\r\n normalizeColor,\r\n validateNumberingId,\r\n validateLevel,\r\n validateAlignment,\r\n validateFontSize,\r\n validateNonEmptyString,\r\n validatePercentage,\r\n validateEmus,\r\n detectXmlInText,\r\n cleanXmlFromText,\r\n validateRunText,\r\n TextValidationResult,\r\n} from './utils/validation';\r\nexport {\r\n detectCorruptionInDocument,\r\n detectCorruptionInText,\r\n suggestFix,\r\n looksCorrupted,\r\n CorruptionReport,\r\n CorruptionLocation,\r\n CorruptionType,\r\n} from './utils/corruptionDetection';\r\nexport { isError, toError, wrapError, getErrorMessage } from './utils/errorHandling';\r\nexport {\r\n REVISION_RULES,\r\n ValidationSeverity,\r\n ValidationIssue,\r\n ValidationRule,\r\n ValidationOptions,\r\n AutoFixOptions,\r\n ValidationResult as RevisionValidationResult,\r\n FixAction,\r\n AutoFixResult,\r\n createIssueFromRule,\r\n getRuleByCode,\r\n getRulesBySeverity,\r\n getAutoFixableRules,\r\n RevisionValidator,\r\n RevisionAutoFixer,\r\n} from './validation';\r\n\r\n// =============================================================================\r\n// UTILITIES — Formatting, Parsing, Sanitization\r\n// =============================================================================\r\n\r\nexport {\r\n mergeFormatting,\r\n cloneFormatting,\r\n hasFormatting,\r\n cleanFormatting,\r\n isEqualFormatting,\r\n applyDefaults,\r\n} from './utils/formatting';\r\nexport {\r\n safeParseInt,\r\n parseOoxmlBoolean,\r\n isExplicitlySet,\r\n parseNumericAttribute,\r\n parseOnOffAttribute,\r\n} from './utils/parsingHelpers';\r\nexport {\r\n removeInvalidXmlChars,\r\n findInvalidXmlChars,\r\n hasInvalidXmlChars,\r\n XML_CONTROL_CHARS,\r\n} from './utils/xmlSanitization';\r\n\r\n// =============================================================================\r\n// UTILITIES — List Detection (kept for basic detection; normalization moved to consumer)\r\n// =============================================================================\r\n\r\nexport {\r\n detectTypedPrefix,\r\n detectListType,\r\n inferLevelFromIndentation,\r\n getParagraphIndentation,\r\n validateListSequence,\r\n getListCategoryFromFormat,\r\n getLevelFromFormat,\r\n TYPED_LIST_PATTERNS,\r\n PATTERN_TO_CATEGORY,\r\n FORMAT_TO_LEVEL,\r\n} from './utils/list-detection';\r\n\r\n// =============================================================================\r\n// UTILITIES — Logging\r\n// =============================================================================\r\n\r\nexport {\r\n ILogger,\r\n LogLevel,\r\n LogEntry,\r\n ConsoleLogger,\r\n SilentLogger,\r\n CollectingLogger,\r\n defaultLogger,\r\n createScopedLogger,\r\n createComponentLogger,\r\n getGlobalLogger,\r\n setGlobalLogger,\r\n resetGlobalLogger,\r\n} from './utils/logger';\r\n\r\n// =============================================================================\r\n// UTILITIES — Revision Walker\r\n// =============================================================================\r\n\r\nexport { RevisionWalker, RevisionWalkerOptions } from './utils/RevisionWalker';\r\nexport { resolveCellShading } from './utils/ShadingResolver';\r\nexport { decodeCnfStyle, getActiveConditionalsInPriorityOrder } from './utils/cnfStyleDecoder';\r\n\r\n// =============================================================================\r\n// UTILITIES — Cleanup\r\n// =============================================================================\r\n\r\nexport {\r\n CleanupHelper,\r\n CleanupOptions,\r\n CleanupReport,\r\n} from './helpers/CleanupHelper';\r\n\r\n// =============================================================================\r\n// INTERNAL — ZIP Handling (advanced usage)\r\n// =============================================================================\r\n\r\nexport { ZipHandler } from './zip/ZipHandler';\r\nexport { ZipReader } from './zip/ZipReader';\r\nexport { ZipWriter } from './zip/ZipWriter';\r\nexport {\r\n ZipFile,\r\n FileMap,\r\n LoadOptions,\r\n SaveOptions,\r\n AddFileOptions,\r\n SizeLimitOptions,\r\n DEFAULT_SIZE_LIMITS,\r\n REQUIRED_DOCX_FILES,\r\n DOCX_PATHS,\r\n} from './zip/types';\r\nexport {\r\n DocxError,\r\n DocxNotFoundError,\r\n InvalidDocxError,\r\n CorruptedArchiveError,\r\n MissingRequiredFileError,\r\n FileOperationError,\r\n} from './zip/errors';\r\n\r\n// =============================================================================\r\n// INTERNAL — XML Builder and Parser (advanced usage)\r\n// =============================================================================\r\n\r\nexport { XMLBuilder, XMLElement } from './xml/XMLBuilder';\r\nexport {\r\n XMLParser,\r\n ParseToObjectOptions,\r\n ParsedXMLValue,\r\n ParsedXMLObject,\r\n DEFAULT_MAX_NESTING_DEPTH,\r\n} from './xml/XMLParser';\r\n\r\n// =============================================================================\r\n// INTERNAL — Parser, Generator, Validator (advanced usage)\r\n// =============================================================================\r\n\r\nexport { Relationship, RelationshipType, RelationshipProperties } from './core/Relationship';\r\nexport { RelationshipManager } from './core/RelationshipManager';\r\nexport { DocumentParser, ParseError } from './core/DocumentParser';\r\nexport { DocumentGenerator, IZipHandlerReader } from './core/DocumentGenerator';\r\nexport { DocumentValidator, SizeEstimate, MemoryOptions } from './core/DocumentValidator';\r\nexport { DocumentIdManager } from './core/DocumentIdManager';\r\n\r\n// =============================================================================\r\n// INTERNAL — Document Subsystem Classes (advanced usage)\r\n// =============================================================================\r\n\r\nexport { DocumentContent, BodyElement } from './core/DocumentContent';\r\n\r\n// =============================================================================\r\n// INTERNAL — Constants\r\n// =============================================================================\r\n\r\nexport { LIMITS } from './constants/limits';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAsB,MAAM,iBAAiB,CAAC;AAM1D,OAAO,KAAK,EAAE,eAAe,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1F,MAAM,WAAW,qBAAqB;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAiC;IAGrD,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAuB1C;gBAMS,eAAe,EAAE,eAAe;IAQ5C,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAa7C,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY/B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,MAAM;IAInB,kBAAkB,IAAI,eAAe;IAIrC,wBAAwB,IAAI,OAAO;IAInC,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAyBP,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAiBP,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IA4BP,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB7D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB5D,mBAAmB,IAAI,QAAQ,EAAE;IAqHjC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAYtB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOpD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOnD,eAAe,IAAI,MAAM;IAOzB,iBAAiB,IAAI,OAAO;IAO5B,mBAAmB,IAAI,IAAI;CAG5B"}
1
+ {"version":3,"file":"DocumentTrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAsB,MAAM,iBAAiB,CAAC;AAM1D,OAAO,KAAK,EAAE,eAAe,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1F,MAAM,WAAW,qBAAqB;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAiC;IAGrD,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAuB1C;gBAMS,eAAe,EAAE,eAAe;IAQ5C,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAa7C,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY/B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,MAAM;IAInB,kBAAkB,IAAI,eAAe;IAIrC,wBAAwB,IAAI,OAAO;IAInC,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAyBP,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAiBP,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IA4BP,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB7D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB5D,mBAAmB,IAAI,QAAQ,EAAE;IAoJjC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAYtB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOpD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOnD,eAAe,IAAI,MAAM;IAOzB,iBAAiB,IAAI,OAAO;IAO5B,mBAAmB,IAAI,IAAI;CAG5B"}
@@ -241,16 +241,39 @@ class DocumentTrackingContext {
241
241
  this.applyParagraphPrChange(paragraph, changes);
242
242
  }
243
243
  for (const [table, changes] of tableChanges) {
244
- this.applyElementPrChange(changes, (prevProps, getNextId, date) => {
245
- const existing = table.getTblPrChange();
246
- if (existing) {
247
- const merged = { ...(existing.previousProperties || {}), ...prevProps };
248
- table.setTblPrChange({ ...existing, previousProperties: merged });
244
+ const currentFormatting = table.getFormatting();
245
+ const fullPrevProps = {};
246
+ for (const [key, value] of Object.entries(currentFormatting)) {
247
+ if (value !== undefined) {
248
+ fullPrevProps[key] = value;
249
+ }
250
+ }
251
+ let latestTimestamp = 0;
252
+ for (const change of changes) {
253
+ if (change.previousValue !== undefined) {
254
+ fullPrevProps[change.property] = change.previousValue;
249
255
  }
250
256
  else {
251
- table.setTblPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });
257
+ delete fullPrevProps[change.property];
252
258
  }
253
- });
259
+ if (change.timestamp > latestTimestamp) {
260
+ latestTimestamp = change.timestamp;
261
+ }
262
+ }
263
+ const date = (0, dateFormatting_1.formatDateForXml)(new Date(latestTimestamp));
264
+ const existing = table.getTblPrChange();
265
+ if (existing) {
266
+ const merged = { ...fullPrevProps, ...(existing.previousProperties || {}) };
267
+ table.setTblPrChange({ ...existing, previousProperties: merged });
268
+ }
269
+ else {
270
+ table.setTblPrChange({
271
+ author: this.author,
272
+ date,
273
+ id: String(this.revisionManager.consumeNextId()),
274
+ previousProperties: fullPrevProps,
275
+ });
276
+ }
254
277
  }
255
278
  for (const [row, changes] of rowChanges) {
256
279
  this.applyElementPrChange(changes, (prevProps, getNextId, date) => {