@office-open/core 0.10.15 → 0.11.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 (83) hide show
  1. package/README.md +2 -1
  2. package/dist/chart/index.d.mts +2 -2
  3. package/dist/chart/index.mjs +2 -2
  4. package/dist/chart-Kf_utasF.mjs +1780 -0
  5. package/dist/chart-Kf_utasF.mjs.map +1 -0
  6. package/dist/color-mapping-CFF0vRSe.mjs +117 -0
  7. package/dist/color-mapping-CFF0vRSe.mjs.map +1 -0
  8. package/dist/descriptor/index.d.mts +2 -2
  9. package/dist/descriptor/index.mjs +1 -1
  10. package/dist/{descriptor-BjNkn5jo.mjs → descriptor-BX8xW8na.mjs} +6 -2
  11. package/dist/{descriptor-BjNkn5jo.mjs.map → descriptor-BX8xW8na.mjs.map} +1 -1
  12. package/dist/drawing/index.d.mts +2 -0
  13. package/dist/drawing/index.mjs +2 -0
  14. package/dist/{drawingml-sj1J3lb0.mjs → drawing-FBzd2I0m.mjs} +2596 -1518
  15. package/dist/drawing-FBzd2I0m.mjs.map +1 -0
  16. package/dist/{converters-C_Y2QX1w.mjs → generators-CElPsAhd.mjs} +699 -258
  17. package/dist/generators-CElPsAhd.mjs.map +1 -0
  18. package/dist/index-BsTUn4K1.d.mts +28 -0
  19. package/dist/index-BsTUn4K1.d.mts.map +1 -0
  20. package/dist/index-C0ClOhmZ.d.mts +869 -0
  21. package/dist/index-C0ClOhmZ.d.mts.map +1 -0
  22. package/dist/{index-BVK2dv6C.d.mts → index-CLX7gU9J.d.mts} +8 -3
  23. package/dist/index-CLX7gU9J.d.mts.map +1 -0
  24. package/dist/index-Cgz88FU0.d.mts +308 -0
  25. package/dist/index-Cgz88FU0.d.mts.map +1 -0
  26. package/dist/{index-CE53SwpZ.d.mts → index-CnjCK-lF.d.mts} +497 -351
  27. package/dist/index-CnjCK-lF.d.mts.map +1 -0
  28. package/dist/{index-BfHfKuKy.d.mts → index-DpPeyf5f.d.mts} +61 -20
  29. package/dist/index-DpPeyf5f.d.mts.map +1 -0
  30. package/dist/index-DxwLMnBF.d.mts +384 -0
  31. package/dist/index-DxwLMnBF.d.mts.map +1 -0
  32. package/dist/index.d.mts +175 -22
  33. package/dist/index.d.mts.map +1 -1
  34. package/dist/index.mjs +523 -70
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/patch/index.mjs +1 -1
  37. package/dist/{patch-BmRfghOo.mjs → patch-3KLx2yEP.mjs} +4 -4
  38. package/dist/patch-3KLx2yEP.mjs.map +1 -0
  39. package/dist/smartart/index.d.mts +2 -2
  40. package/dist/smartart/index.mjs +2 -2
  41. package/dist/smartart-BxnkROOp.mjs +1649 -0
  42. package/dist/smartart-BxnkROOp.mjs.map +1 -0
  43. package/dist/style-matrix-DAP6XrLv.mjs +123 -0
  44. package/dist/style-matrix-DAP6XrLv.mjs.map +1 -0
  45. package/dist/theme/index.d.mts +4 -2
  46. package/dist/theme/index.mjs +3 -2
  47. package/dist/theme-OAuRcA9_.mjs +460 -0
  48. package/dist/theme-OAuRcA9_.mjs.map +1 -0
  49. package/dist/theme-options-BbWccl85.d.mts +109 -0
  50. package/dist/theme-options-BbWccl85.d.mts.map +1 -0
  51. package/dist/util/index.d.mts +3 -3
  52. package/dist/util/index.mjs +3 -3
  53. package/dist/{util-Tq9PSjK0.mjs → util-C94-JKtp.mjs} +175 -429
  54. package/dist/util-C94-JKtp.mjs.map +1 -0
  55. package/dist/{values-8di32lIe.d.mts → values-aVoirbWB.d.mts} +4 -2
  56. package/dist/values-aVoirbWB.d.mts.map +1 -0
  57. package/dist/vector/index.d.mts +2 -0
  58. package/dist/vector/index.mjs +2 -0
  59. package/dist/vector-TpjW6ZSc.mjs +3092 -0
  60. package/dist/vector-TpjW6ZSc.mjs.map +1 -0
  61. package/package.json +15 -7
  62. package/dist/chart-DIGJna_6.mjs +0 -582
  63. package/dist/chart-DIGJna_6.mjs.map +0 -1
  64. package/dist/converters-C_Y2QX1w.mjs.map +0 -1
  65. package/dist/drawingml/index.d.mts +0 -2
  66. package/dist/drawingml/index.mjs +0 -2
  67. package/dist/drawingml-sj1J3lb0.mjs.map +0 -1
  68. package/dist/index-BVK2dv6C.d.mts.map +0 -1
  69. package/dist/index-BfHfKuKy.d.mts.map +0 -1
  70. package/dist/index-CE53SwpZ.d.mts.map +0 -1
  71. package/dist/index-D6VE-MnJ.d.mts +0 -43
  72. package/dist/index-D6VE-MnJ.d.mts.map +0 -1
  73. package/dist/index-DE4CLElr.d.mts +0 -145
  74. package/dist/index-DE4CLElr.d.mts.map +0 -1
  75. package/dist/index-DlPA26cw.d.mts +0 -91
  76. package/dist/index-DlPA26cw.d.mts.map +0 -1
  77. package/dist/patch-BmRfghOo.mjs.map +0 -1
  78. package/dist/smartart-B7ukZ-Tw.mjs +0 -305
  79. package/dist/smartart-B7ukZ-Tw.mjs.map +0 -1
  80. package/dist/theme-CiNzdl-9.mjs +0 -177
  81. package/dist/theme-CiNzdl-9.mjs.map +0 -1
  82. package/dist/util-Tq9PSjK0.mjs.map +0 -1
  83. package/dist/values-8di32lIe.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch-3KLx2yEP.mjs","names":[],"sources":["../src/opc/core.ts","../src/patch/xml-namespace.ts","../src/patch/xml-patch-utils.ts","../src/patch/paragraph-split-inject.ts","../src/patch/paragraph-token-replacer.ts","../src/patch/run-renderer.ts","../src/patch/xml-traverser.ts","../src/patch/xml-replacer.ts","../src/patch/content-types-manager.ts","../src/patch/relationship-manager.ts","../src/patch/core-properties-override.ts"],"sourcesContent":["import { textOf, escapeXml } from \"@office-open/xml\";\nimport type { Element } from \"@office-open/xml\";\n\n/**\n * Core document properties (docProps/core.xml).\n *\n * Shared across docx/pptx/xlsx: each format's top-level Options extends this,\n * parse emits the same shape, and patch overrides it — read/write symmetry\n * (CONTRIBUTING §Property Naming). Field names follow the OPC core-properties\n * XSD element local names (`creator` = dc:creator, … — never `author`).\n */\nexport interface CorePropertiesOptions {\n title?: string;\n subject?: string;\n creator?: string;\n keywords?: string;\n description?: string;\n lastModifiedBy?: string;\n revision?: number;\n lastPrinted?: string;\n /** Creation timestamp (W3CDTF), round-tripped from dcterms:created. */\n created?: string;\n /** Last modified timestamp (W3CDTF), round-tripped from dcterms:modified. */\n modified?: string;\n}\n\nconst FIELD_MAP: Array<{ name: string; key: keyof CorePropertiesOptions }> = [\n { name: \"dc:title\", key: \"title\" },\n { name: \"dc:subject\", key: \"subject\" },\n { name: \"dc:creator\", key: \"creator\" },\n { name: \"dc:description\", key: \"description\" },\n { name: \"cp:keywords\", key: \"keywords\" },\n { name: \"cp:lastModifiedBy\", key: \"lastModifiedBy\" },\n { name: \"cp:lastPrinted\", key: \"lastPrinted\" },\n { name: \"dcterms:created\", key: \"created\" },\n { name: \"dcterms:modified\", key: \"modified\" },\n];\n\n/**\n * Parse core properties from an already-parsed XML element.\n * Shared by docx/pptx/xlsx to extract Dublin Core metadata into the unified\n * {@link CorePropertiesOptions} shape.\n */\nexport function parseCorePropsElement(el: Element | undefined): CorePropertiesOptions {\n if (!el) return {};\n\n const props: CorePropertiesOptions = {};\n\n for (const field of FIELD_MAP) {\n const child = el.elements?.find((e) => e.name === field.name);\n const value = textOf(child) || undefined;\n if (value) (props as Record<string, unknown>)[field.key] = value;\n }\n\n const revEl = el.elements?.find((e) => e.name === \"cp:revision\");\n if (revEl) {\n const rev = textOf(revEl);\n if (rev) {\n const n = Number(rev);\n if (!Number.isNaN(n)) props.revision = n;\n }\n }\n\n return props;\n}\n\n/**\n * Build a cp:coreProperties XML string directly (fast path).\n *\n * Shared by pptx and xlsx to bypass the toXml() → xml() pipeline.\n * created/modified default to now when not supplied; all other fields emit\n * only when present.\n */\nexport function buildCorePropertiesXmlString(opts: CorePropertiesOptions): string {\n const p: string[] = [\n '<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcmitype=\"http://purl.org/dcmitype/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">',\n ];\n if (opts.title) p.push(`<dc:title>${escapeXml(opts.title)}</dc:title>`);\n if (opts.subject) p.push(`<dc:subject>${escapeXml(opts.subject)}</dc:subject>`);\n if (opts.creator) p.push(`<dc:creator>${escapeXml(opts.creator)}</dc:creator>`);\n if (opts.keywords) p.push(`<cp:keywords>${escapeXml(opts.keywords)}</cp:keywords>`);\n if (opts.description) p.push(`<dc:description>${escapeXml(opts.description)}</dc:description>`);\n if (opts.lastPrinted) p.push(`<cp:lastPrinted>${escapeXml(opts.lastPrinted)}</cp:lastPrinted>`);\n if (opts.lastModifiedBy)\n p.push(`<cp:lastModifiedBy>${escapeXml(opts.lastModifiedBy)}</cp:lastModifiedBy>`);\n if (opts.revision !== undefined) p.push(`<cp:revision>${opts.revision}</cp:revision>`);\n\n const now = new Date().toISOString();\n p.push(`<dcterms:created xsi:type=\"dcterms:W3CDTF\">${opts.created ?? now}</dcterms:created>`);\n p.push(`<dcterms:modified xsi:type=\"dcterms:W3CDTF\">${opts.modified ?? now}</dcterms:modified>`);\n p.push(\"</cp:coreProperties>\");\n return p.join(\"\");\n}\n","/**\n * Namespace configuration for XML patch operations.\n *\n * Parameterises element names so the same patch algorithm works for both\n * DOCX (`w:*`) and PPTX (`a:*`) documents.\n */\n\nexport interface XmlNamespaceOptions {\n paragraph: string;\n run: string;\n text: string;\n runProperties: string;\n}\n\nexport const DOCX_NS: XmlNamespaceOptions = {\n paragraph: \"w:p\",\n run: \"w:r\",\n text: \"w:t\",\n runProperties: \"w:rPr\",\n};\n\nexport const PPTX_NS: XmlNamespaceOptions = {\n paragraph: \"a:p\",\n run: \"a:r\",\n text: \"a:t\",\n runProperties: \"a:rPr\",\n};\n","/**\n * XML utility functions for patch operations.\n */\nimport { parse } from \"@office-open/xml\";\nimport type { Element } from \"@office-open/xml\";\n\nexport const toJson = (xmlData: string): Element => {\n const xmlObj = parse(xmlData, {\n captureSpacesBetweenElements: true,\n compact: false,\n }) as Element;\n return xmlObj;\n};\n\n/**\n * Creates the inner content of a text element (`w:t` / `a:t`).\n *\n * Returns `[{ type: \"text\", text }]` for non-empty text, `[]` for empty.\n * The `xml:space` attribute is handled separately by `patchSpaceAttribute`.\n */\nexport const createTextElementContents = (text: string): Element[] =>\n text === \"\" ? [] : [{ text, type: \"text\" }];\n\nexport const patchSpaceAttribute = (element: Element): Element => ({\n ...element,\n attributes: {\n \"xml:space\": \"preserve\",\n },\n});\n\nexport const getFirstLevelElements = (relationships: Element, id: string): Element[] =>\n relationships.elements?.find((e) => e.name === id)?.elements ?? [];\n\n/**\n * Next sequential numeric id: the largest `attr` value among direct children\n * named `childName`, plus one. `seed` is the floor — e.g. PPTX `<p:sldId>`\n * values start at 255, so the first appended id is at least 256.\n *\n * Unifies the per-package `maxCommentId` / `maxSldId` / `maxSheetId` helpers.\n */\nexport const nextNumericId = (\n parent: Element | undefined,\n childName: string,\n attr: string,\n seed = 0,\n): number => {\n let maxId = seed;\n for (const child of parent?.elements ?? []) {\n if (child.name !== childName) continue;\n const id = Number(child.attributes?.[attr]);\n if (Number.isFinite(id)) maxId = Math.max(maxId, id);\n }\n return maxId + 1;\n};\n","/**\n * Paragraph split and inject utilities for run-level text replacement.\n *\n * Parameterised by `XmlNamespaceOptions` so it works for both DOCX and PPTX.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport type { XmlNamespaceOptions } from \"./xml-namespace\";\nimport { patchSpaceAttribute } from \"./xml-patch-utils\";\n\nexport class TokenNotFoundError extends Error {\n public constructor(token: string) {\n super(`Token ${token} not found`);\n this.name = \"TokenNotFoundError\";\n }\n}\n\nexport function createSplitInject(\n ns: XmlNamespaceOptions,\n createTextElementContents: (text: string) => Element[],\n options?: { readonly preserveSpace?: boolean },\n) {\n const preserveSpace = options?.preserveSpace ?? true;\n const findRunElementIndexWithToken = (paragraphElement: Element, token: string): number => {\n for (const [i, element] of (paragraphElement.elements ?? []).entries()) {\n if (element.type === \"element\" && element.name === ns.run) {\n const textElement = (element.elements ?? []).filter(\n (e) => e.type === \"element\" && e.name === ns.text,\n );\n\n for (const text of textElement) {\n const firstChild = text.elements?.[0];\n if (!firstChild) {\n continue;\n }\n\n if ((firstChild.text as string).includes(token)) {\n return i;\n }\n }\n }\n }\n\n throw new TokenNotFoundError(token);\n };\n\n const splitRunElement = (\n runElement: Element,\n token: string,\n ): { readonly left: Element; readonly right: Element } => {\n let splitIndex = -1;\n\n const splitElements =\n runElement.elements\n ?.map((e, i) => {\n if (splitIndex !== -1) {\n return e;\n }\n\n if (e.type === \"element\" && e.name === ns.text) {\n const text = (e.elements?.[0]?.text as string) ?? \"\";\n const splitText = text.split(token);\n const newElements = splitText.map((t) => ({\n ...e,\n ...(preserveSpace ? patchSpaceAttribute(e) : {}),\n elements: createTextElementContents(t),\n }));\n\n if (splitText.length > 1) {\n splitIndex = i;\n }\n\n return newElements;\n } else {\n return e;\n }\n })\n .flat() ?? [];\n\n const leftRunElement: Element = {\n ...runElement,\n elements: splitElements.slice(0, splitIndex + 1),\n };\n\n const rightRunElement: Element = {\n ...runElement,\n elements: splitElements.slice(splitIndex + 1),\n };\n\n return { left: leftRunElement, right: rightRunElement };\n };\n\n return { findRunElementIndexWithToken, splitRunElement };\n}\n","/**\n * Paragraph token replacer for substituting text within paragraph runs.\n *\n * Fully generic — operates on Element nodes without namespace-specific logic.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport type { RenderedParagraphNode } from \"./run-renderer\";\nimport { patchSpaceAttribute } from \"./xml-patch-utils\";\n\nconst ReplaceMode = {\n START: 0,\n MIDDLE: 1,\n END: 2,\n} as const;\n\nexport function createTokenReplacer(\n createTextElementContents: (text: string) => Element[],\n options?: { readonly preserveSpace?: boolean },\n) {\n const preserveSpace = options?.preserveSpace ?? true;\n\n const patchTextElement = (element: Element, text: string): Element => {\n element.elements = createTextElementContents(text);\n return element;\n };\n\n return ({\n paragraphElement,\n renderedParagraph,\n originalText,\n replacementText,\n }: {\n paragraphElement: Element;\n renderedParagraph: RenderedParagraphNode;\n originalText: string;\n replacementText: string;\n }): Element => {\n const startIndex = renderedParagraph.text.indexOf(originalText);\n const endIndex = startIndex + originalText.length - 1;\n\n let replaceMode: (typeof ReplaceMode)[keyof typeof ReplaceMode] = ReplaceMode.START;\n\n for (const run of renderedParagraph.runs) {\n const runChildren = paragraphElement.elements?.[run.index]?.elements;\n if (!runChildren) continue;\n for (const { text, index, start, end } of run.parts) {\n const partElement = runChildren[index];\n if (!partElement) continue;\n switch (replaceMode) {\n case ReplaceMode.START: {\n if (startIndex >= start && startIndex <= end) {\n const offsetStartIndex = startIndex - start;\n const offsetEndIndex = Math.min(endIndex, end) - start;\n const partToReplace = text.substring(offsetStartIndex, offsetEndIndex + 1);\n if (partToReplace === \"\") {\n continue;\n }\n\n const firstPart = text.replace(partToReplace, replacementText);\n patchTextElement(partElement, firstPart);\n replaceMode = ReplaceMode.MIDDLE;\n continue;\n }\n break;\n }\n case ReplaceMode.MIDDLE: {\n if (endIndex <= end) {\n const lastPart = text.substring(endIndex - start + 1);\n patchTextElement(partElement, lastPart);\n runChildren[index] = preserveSpace ? patchSpaceAttribute(partElement) : partElement;\n replaceMode = ReplaceMode.END;\n } else {\n patchTextElement(partElement, \"\");\n }\n break;\n }\n }\n }\n }\n\n return paragraphElement;\n };\n}\n","/**\n * Run renderer for extracting text content from OOXML paragraph structures.\n *\n * Parameterised by `XmlNamespaceOptions` so it works for both DOCX and PPTX.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport type { XmlNamespaceOptions } from \"./xml-namespace\";\n\nexport interface ElementWrapper {\n element: Element;\n index: number;\n parent: ElementWrapper | undefined;\n}\n\nexport interface RenderedParagraphNode {\n text: string;\n runs: readonly RenderedRunNode[];\n index: number;\n pathToParagraph: readonly number[];\n}\n\ninterface StartAndEnd {\n start: number;\n end: number;\n}\n\ntype IParts = {\n text: string;\n index: number;\n} & StartAndEnd;\n\nexport type RenderedRunNode = {\n text: string;\n parts: readonly IParts[];\n index: number;\n} & StartAndEnd;\n\nexport function createRunRenderer(ns: XmlNamespaceOptions) {\n const renderParagraphNode = (node: ElementWrapper): RenderedParagraphNode => {\n if (node.element.name !== ns.paragraph) {\n throw new Error(`Invalid node type: ${node.element.name}`);\n }\n\n if (!node.element.elements) {\n return {\n index: -1,\n pathToParagraph: [],\n runs: [],\n text: \"\",\n };\n }\n\n let currentRunStringLength = 0;\n\n const runs: RenderedRunNode[] = [];\n for (const [i, element] of node.element.elements.entries()) {\n if (element.name === ns.run) {\n const renderedRunNode = renderRunNode(element, i, currentRunStringLength);\n currentRunStringLength += renderedRunNode.text.length;\n runs.push(renderedRunNode);\n }\n }\n\n const text = runs.reduce((acc, curr) => acc + curr.text, \"\");\n\n return {\n index: node.index,\n pathToParagraph: buildNodePath(node),\n runs,\n text,\n };\n };\n\n const renderRunNode = (\n node: Element,\n index: number,\n currentRunStringIndex: number,\n ): RenderedRunNode => {\n if (!node.elements) {\n return {\n end: currentRunStringIndex,\n index: -1,\n parts: [],\n start: currentRunStringIndex,\n text: \"\",\n };\n }\n\n let currentTextStringIndex = currentRunStringIndex;\n\n const parts: IParts[] = [];\n for (const [i, element] of node.elements.entries()) {\n if (element.name !== ns.text) continue;\n const textChildren = element.elements;\n if (!textChildren || textChildren.length === 0) continue;\n const firstChild = textChildren[0];\n if (!firstChild) continue;\n const text = firstChild.text ?? \"\";\n const textStr = String(text);\n const partStart = currentTextStringIndex;\n currentTextStringIndex += textStr.length;\n parts.push({ end: currentTextStringIndex - 1, index: i, start: partStart, text: textStr });\n }\n\n const text = parts.reduce((acc, curr) => acc + curr.text, \"\");\n\n return {\n end: currentTextStringIndex - 1,\n index,\n parts,\n start: currentRunStringIndex,\n text,\n };\n };\n\n return renderParagraphNode;\n}\n\nconst buildNodePath = (node: ElementWrapper): readonly number[] => {\n const path: number[] = [];\n let current: ElementWrapper | undefined = node;\n while (current) {\n path.push(current.index);\n current = current.parent;\n }\n path.reverse();\n return path;\n};\n","/**\n * XML traverser for searching paragraph content in OOXML documents.\n *\n * Parameterised by `XmlNamespaceOptions` so it works for both DOCX and PPTX.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport { createRunRenderer, type ElementWrapper, type RenderedParagraphNode } from \"./run-renderer\";\nimport type { XmlNamespaceOptions } from \"./xml-namespace\";\n\nexport function createTraverser(ns: XmlNamespaceOptions) {\n const renderParagraphNode = createRunRenderer(ns);\n\n const traverse = (node: Element): readonly RenderedParagraphNode[] => {\n const renderedParagraphs: RenderedParagraphNode[] = [];\n const queue: ElementWrapper[] = [];\n\n // Seed with root as virtual wrapper so paths include the root level\n const rootChildren = node.elements;\n if (rootChildren) {\n const root: ElementWrapper = { element: node, index: 0, parent: undefined };\n for (const [i, child] of rootChildren.entries()) {\n queue.push({ element: child, index: i, parent: root });\n }\n }\n\n let qi = 0;\n while (qi < queue.length) {\n const current = queue[qi++];\n if (!current) break;\n\n if (current.element.name === ns.paragraph) {\n renderedParagraphs.push(renderParagraphNode(current));\n }\n\n const children = current.element.elements;\n if (children) {\n for (const [i, child] of children.entries()) {\n queue.push({ element: child, index: i, parent: current });\n }\n }\n }\n\n return renderedParagraphs;\n };\n\n const findLocationOfText = (node: Element, text: string): readonly RenderedParagraphNode[] =>\n traverse(node).filter((p) => p.text.includes(text));\n\n return { traverse, findLocationOfText };\n}\n","/**\n * Parameterised XML replacer for placeholder substitution in OOXML documents.\n *\n * Accepts namespace config and a format callback so both DOCX and PPTX can\n * use the same replacement algorithm.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport { createSplitInject } from \"./paragraph-split-inject\";\nimport { createTokenReplacer } from \"./paragraph-token-replacer\";\nimport type { XmlNamespaceOptions } from \"./xml-namespace\";\nimport { createTextElementContents } from \"./xml-patch-utils\";\nimport { createTraverser } from \"./xml-traverser\";\n\nexport interface ReplacerOptions {\n ns: XmlNamespaceOptions;\n formatChild: (child: unknown, context: unknown) => Element[];\n preserveSpace?: boolean;\n}\n\ninterface ReplacerResult {\n element: Element;\n didFindOccurrence: boolean;\n}\n\nconst SPLIT_TOKEN = \"\\u0275\";\n\nexport function createReplacer(config: ReplacerOptions) {\n const { ns, formatChild } = config;\n const { findLocationOfText } = createTraverser(ns);\n\n const replaceTokenInParagraphElement = createTokenReplacer(createTextElementContents, {\n preserveSpace: config.preserveSpace,\n });\n const { findRunElementIndexWithToken, splitRunElement } = createSplitInject(\n ns,\n createTextElementContents,\n { preserveSpace: config.preserveSpace },\n );\n\n const replacer = ({\n json,\n patch,\n patchText,\n context,\n keepOriginalStyles = true,\n }: {\n json: Element;\n patch: {\n type: string;\n children: readonly unknown[];\n };\n patchText: string;\n context: unknown;\n keepOriginalStyles?: boolean;\n }): ReplacerResult => {\n const renderedParagraphs = findLocationOfText(json, patchText);\n\n if (renderedParagraphs.length === 0) {\n return { didFindOccurrence: false, element: json };\n }\n\n for (const renderedParagraph of renderedParagraphs) {\n const textJson = patch.children.flatMap((c) => formatChild(c, context));\n\n switch (patch.type) {\n case \"document\": {\n const parentElement = goToParentElementFromPath(json, renderedParagraph.pathToParagraph);\n const elementIndex = getLastElementIndexFromPath(renderedParagraph.pathToParagraph);\n parentElement.elements!.splice(elementIndex, 1, ...textJson);\n break;\n }\n case \"paragraph\":\n default: {\n const paragraphElement = goToElementFromPath(json, renderedParagraph.pathToParagraph);\n replaceTokenInParagraphElement({\n originalText: patchText,\n paragraphElement,\n renderedParagraph,\n replacementText: SPLIT_TOKEN,\n });\n\n const index = findRunElementIndexWithToken(paragraphElement, SPLIT_TOKEN);\n\n const runElementToBeReplaced = paragraphElement.elements![index];\n if (!runElementToBeReplaced) break;\n const { left, right } = splitRunElement(runElementToBeReplaced, SPLIT_TOKEN);\n\n let newRunElements = textJson;\n let patchedRightElement = right;\n\n if (keepOriginalStyles) {\n const runElementNonTextualElements = runElementToBeReplaced.elements!.filter(\n (e) => e.type === \"element\" && e.name === ns.runProperties,\n );\n\n newRunElements = textJson.map((e) => {\n if (\n e.type !== \"element\" ||\n e.name !== ns.run ||\n e.elements?.some((c) => c.type === \"element\" && c.name === ns.runProperties)\n ) {\n return e;\n }\n return {\n ...e,\n elements: [...runElementNonTextualElements, ...(e.elements ?? [])],\n };\n });\n\n patchedRightElement = {\n ...right,\n elements: [...runElementNonTextualElements, ...right.elements!],\n };\n }\n\n paragraphElement.elements!.splice(index, 1, left, ...newRunElements, patchedRightElement);\n break;\n }\n }\n }\n\n return { didFindOccurrence: true, element: json };\n };\n\n return replacer;\n}\n\nconst goToElementFromPath = (json: Element, path: readonly number[]): Element => {\n let element = json;\n for (let i = 1; i < path.length; i++) {\n const index = path[i];\n if (index === undefined) break;\n const nextElements = element.elements!;\n const next = nextElements[index];\n if (!next) break;\n element = next;\n }\n return element;\n};\n\nconst goToParentElementFromPath = (json: Element, path: readonly number[]): Element =>\n goToElementFromPath(json, path.slice(0, -1));\n\n// pathToParagraph is built by the renderer and always non-empty; the `!` is a contract narrow.\nconst getLastElementIndexFromPath = (path: readonly number[]): number => path[path.length - 1]!;\n","/**\n * Content types manager for OOXML [Content_Types].xml management.\n */\nimport type { Element } from \"@office-open/xml\";\n\n/**\n * The `<Types>` child array, initialized in place when absent (so a `<Default>`\n * or `<Override>` can always be appended). Returns `undefined` if `element` has\n * no `<Types>` child (malformed `[Content_Types].xml`).\n */\nconst typesChildren = (element: Element): Element[] | undefined => {\n const types = element.elements?.find((e) => e.name === \"Types\");\n if (!types) return undefined;\n return types.elements ?? (types.elements = []);\n};\n\nexport const appendContentType = (\n element: Element,\n contentType: string,\n extension: string,\n): void => {\n const els = typesChildren(element);\n if (!els) return;\n\n // OPC Default Extension matching is case-insensitive (ECMA-376-2 §10.1.2):\n // an existing `JPG` must block a colliding `jpg`, or Word rejects the package.\n const exist = els.some(\n (el) =>\n el.type === \"element\" &&\n el.name === \"Default\" &&\n String(el?.attributes?.Extension ?? \"\").toLowerCase() === extension.toLowerCase(),\n );\n if (exist) {\n return;\n }\n\n els.push({\n attributes: {\n ContentType: contentType,\n Extension: extension,\n },\n name: \"Default\",\n type: \"element\",\n });\n};\n\n/**\n * Append an `<Override>` element to a `[Content_Types].xml` root, deduped by\n * `PartName`. Sibling to {@link appendContentType} (which handles `<Default>`):\n * unifies the per-package Override-dedup blocks in docx/pptx/xlsx patchers.\n */\nexport const appendOverride = (element: Element, partName: string, contentType: string): void => {\n const els = typesChildren(element);\n if (!els) return;\n\n // OPC Override PartName matching is case-insensitive (ECMA-376-2 §10.1.4).\n const exists = els.some(\n (el) =>\n el.type === \"element\" &&\n el.name === \"Override\" &&\n String(el?.attributes?.PartName ?? \"\").toLowerCase() === partName.toLowerCase(),\n );\n if (exists) return;\n\n els.push({\n attributes: {\n PartName: partName,\n ContentType: contentType,\n },\n name: \"Override\",\n type: \"element\",\n });\n};\n","/**\n * Relationship manager for OOXML .rels file management.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport { getFirstLevelElements } from \"./xml-patch-utils\";\n\nconst getIdFromRelationshipId = (relationshipId: string): number => {\n const output = parseInt(relationshipId.substring(3), 10);\n return isNaN(output) ? 0 : output;\n};\n\nexport const getNextRelationshipIndex = (relationships: Element): number => {\n const relationshipElements = getFirstLevelElements(relationships, \"Relationships\");\n\n return (\n relationshipElements\n .map((e) => getIdFromRelationshipId(e.attributes?.Id?.toString() ?? \"\"))\n .reduce((acc, curr) => Math.max(acc, curr), 0) + 1\n );\n};\n\nexport const appendRelationship = (\n relationships: Element,\n id: number | string,\n type: string,\n target: string,\n targetMode?: string,\n): readonly Element[] => {\n const relationshipElements = getFirstLevelElements(relationships, \"Relationships\");\n relationshipElements.push({\n attributes: {\n Id: `rId${id}`,\n Target: target,\n TargetMode: targetMode,\n Type: type,\n },\n name: \"Relationship\",\n type: \"element\",\n });\n\n return relationshipElements;\n};\n","/**\n * Merge core-properties overrides onto an existing docProps/core.xml document.\n *\n * The patch layer unzips docProps/core.xml into an parse document structure\n * (its `.elements` holds the `cp:coreProperties` root). This helper parses the\n * existing values, layers `overrides` on top (override wins), and returns the\n * re-serialized XML — without the XML declaration, which the caller prepends.\n */\nimport type { Element } from \"@office-open/xml\";\n\nimport { buildCorePropertiesXmlString, parseCorePropsElement } from \"../opc/core\";\nimport type { CorePropertiesOptions } from \"../opc/core\";\n\nexport function applyCorePropertiesOverride(\n corePropsDoc: Element,\n overrides: Partial<CorePropertiesOptions>,\n): string {\n const rootEl = (corePropsDoc.elements?.find((e) => e.name === \"cp:coreProperties\") ??\n corePropsDoc) as Element;\n const existing = parseCorePropsElement(rootEl);\n const merged: CorePropertiesOptions = { ...existing, ...overrides };\n return buildCorePropertiesXmlString(merged);\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as PointPropertySetOptions, c as stringifyDataModel, d as getColorXml, f as getLayoutXml, g as STYLE_CATEGORIES, h as LAYOUT_CATEGORIES, i as SmartArtData, l as stringifyConnection, m as COLOR_CATEGORIES, n as createDataModel, o as stringifyPoint, p as getStyleXml, r as SmartArtCollection, s as stringifyTransPoint, t as TreeNode, u as DEFAULT_DRAWING_XML } from "../index-DlPA26cw.mjs";
2
- export { COLOR_CATEGORIES, DEFAULT_DRAWING_XML, LAYOUT_CATEGORIES, PointPropertySetOptions, STYLE_CATEGORIES, SmartArtCollection, SmartArtData, TreeNode, createDataModel, getColorXml, getLayoutXml, getStyleXml, stringifyConnection, stringifyDataModel, stringifyPoint, stringifyTransPoint };
1
+ import { $ as colorsDefDesc, A as LayoutRuleOptions, B as stringifyLayoutDefinitionPart, C as ConstraintType, D as LayoutDefinitionOptions, E as ForEachOptions, F as VariableListOptions, G as parseDataModelOptions, H as DataModelOptions, I as WhenOptions, J as PointPropertySetOptions, K as stringifyDataModel, L as layoutDefDesc, M as OtherwiseOptions, N as ResizeHandles, O as LayoutNodeChild, P as SampleDataOptions, Q as ColorDefinitionOptions, R as parseLayoutDefinition, S as ConstraintRelationship, T as DiagramIterationOptions, U as ModelConnectionOptions, V as withDiagramNamespaces, W as ModelPointOptions, X as stringifyTransPoint, Y as stringifyPoint, Z as stringifyConnection, _ as ChooseOptions, a as definitionId, at as getLayoutXml, b as ConstraintOperator, c as TextProperties3DOptions, ct as LAYOUT_CATEGORIES, d as stringifyStyleDefinitionPart, et as parseColorDefinition, f as styleDefDesc, g as ChildOrder, h as AlgorithmType, i as SmartArtData, it as getColorXml, j as LayoutShapeOptions, k as LayoutNodeOptions, l as parseStyleDefinition, lt as STYLE_CATEGORIES, m as AlgorithmParameterOptions, n as createDataModel, nt as stringifyColorDefinitionPart, o as StyleDefinitionOptions, ot as getStyleXml, p as AlgorithmOptions, q as stringifyDataModelOptions, r as SmartArtCollection, rt as DEFAULT_DRAWING_XML, s as StyleLabelOptions, st as COLOR_CATEGORIES, t as TreeNode, tt as stringifyColorDefinition, u as stringifyStyleDefinition, v as ConditionFunction, w as DiagramDirection, x as ConstraintOptions, y as ConditionOperator, z as stringifyLayoutDefinition } from "../index-Cgz88FU0.mjs";
2
+ export { AlgorithmOptions, AlgorithmParameterOptions, AlgorithmType, COLOR_CATEGORIES, ChildOrder, ChooseOptions, ColorDefinitionOptions, ConditionFunction, ConditionOperator, ConstraintOperator, ConstraintOptions, ConstraintRelationship, ConstraintType, DEFAULT_DRAWING_XML, DataModelOptions, DiagramDirection, DiagramIterationOptions, ForEachOptions, LAYOUT_CATEGORIES, LayoutDefinitionOptions, LayoutNodeChild, LayoutNodeOptions, LayoutRuleOptions, LayoutShapeOptions, ModelConnectionOptions, ModelPointOptions, OtherwiseOptions, PointPropertySetOptions, ResizeHandles, STYLE_CATEGORIES, SampleDataOptions, SmartArtCollection, SmartArtData, StyleDefinitionOptions, StyleLabelOptions, TextProperties3DOptions, TreeNode, VariableListOptions, WhenOptions, colorsDefDesc, createDataModel, definitionId, getColorXml, getLayoutXml, getStyleXml, layoutDefDesc, parseColorDefinition, parseDataModelOptions, parseLayoutDefinition, parseStyleDefinition, stringifyColorDefinition, stringifyColorDefinitionPart, stringifyConnection, stringifyDataModel, stringifyDataModelOptions, stringifyLayoutDefinition, stringifyLayoutDefinitionPart, stringifyPoint, stringifyStyleDefinition, stringifyStyleDefinitionPart, stringifyTransPoint, styleDefDesc, withDiagramNamespaces };
@@ -1,2 +1,2 @@
1
- import { a as stringifyDataModel, c as getColorXml, d as COLOR_CATEGORIES, f as LAYOUT_CATEGORIES, i as stringifyTransPoint, l as getLayoutXml, n as SmartArtCollection, o as stringifyConnection, p as STYLE_CATEGORIES, r as stringifyPoint, s as DEFAULT_DRAWING_XML, t as createDataModel, u as getStyleXml } from "../smartart-B7ukZ-Tw.mjs";
2
- export { COLOR_CATEGORIES, DEFAULT_DRAWING_XML, LAYOUT_CATEGORIES, STYLE_CATEGORIES, SmartArtCollection, createDataModel, getColorXml, getLayoutXml, getStyleXml, stringifyConnection, stringifyDataModel, stringifyPoint, stringifyTransPoint };
1
+ import { C as stringifyDataModelOptions, D as COLOR_CATEGORIES, E as stringifyConnection, O as LAYOUT_CATEGORIES, S as stringifyDataModel, T as stringifyTransPoint, _ as parseLayoutDefinition, a as getColorXml, b as withDiagramNamespaces, c as parseStyleDefinition, d as styleDefDesc, f as colorsDefDesc, g as layoutDefDesc, h as stringifyColorDefinitionPart, i as DEFAULT_DRAWING_XML, k as STYLE_CATEGORIES, l as stringifyStyleDefinition, m as stringifyColorDefinition, n as SmartArtCollection, o as getLayoutXml, p as parseColorDefinition, r as definitionId, s as getStyleXml, t as createDataModel, u as stringifyStyleDefinitionPart, v as stringifyLayoutDefinition, w as stringifyPoint, x as parseDataModelOptions, y as stringifyLayoutDefinitionPart } from "../smartart-BxnkROOp.mjs";
2
+ export { COLOR_CATEGORIES, DEFAULT_DRAWING_XML, LAYOUT_CATEGORIES, STYLE_CATEGORIES, SmartArtCollection, colorsDefDesc, createDataModel, definitionId, getColorXml, getLayoutXml, getStyleXml, layoutDefDesc, parseColorDefinition, parseDataModelOptions, parseLayoutDefinition, parseStyleDefinition, stringifyColorDefinition, stringifyColorDefinitionPart, stringifyConnection, stringifyDataModel, stringifyDataModelOptions, stringifyLayoutDefinition, stringifyLayoutDefinitionPart, stringifyPoint, stringifyStyleDefinition, stringifyStyleDefinitionPart, stringifyTransPoint, styleDefDesc, withDiagramNamespaces };