@office-open/core 0.10.15 → 0.12.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 (93) 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-DED4tXC9.mjs +2325 -0
  5. package/dist/chart-DED4tXC9.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/data-type-CZMKVaaT.d.mts.map +1 -1
  9. package/dist/descriptor/index.d.mts +2 -2
  10. package/dist/descriptor/index.mjs +1 -1
  11. package/dist/{descriptor-BjNkn5jo.mjs → descriptor-BqaNZrrZ.mjs} +43 -11
  12. package/dist/{descriptor-BjNkn5jo.mjs.map → descriptor-BqaNZrrZ.mjs.map} +1 -1
  13. package/dist/drawing/index.d.mts +2 -0
  14. package/dist/drawing/index.mjs +2 -0
  15. package/dist/{drawingml-sj1J3lb0.mjs → drawing-BCAyrCCw.mjs} +4456 -3452
  16. package/dist/drawing-BCAyrCCw.mjs.map +1 -0
  17. package/dist/{converters-C_Y2QX1w.mjs → ext-uri-BHBcIrW7.mjs} +742 -45
  18. package/dist/ext-uri-BHBcIrW7.mjs.map +1 -0
  19. package/dist/index-BAxlDUQ1.d.mts +590 -0
  20. package/dist/index-BAxlDUQ1.d.mts.map +1 -0
  21. package/dist/index-BP541uS-.d.mts +489 -0
  22. package/dist/index-BP541uS-.d.mts.map +1 -0
  23. package/dist/{index-BVK2dv6C.d.mts → index-BQLIofaF.d.mts} +10 -4
  24. package/dist/index-BQLIofaF.d.mts.map +1 -0
  25. package/dist/{index-k8WKLXnA.d.mts → index-CaNwM5_e.d.mts} +19 -20
  26. package/dist/index-CaNwM5_e.d.mts.map +1 -0
  27. package/dist/index-DPkf_CtG.d.mts +1578 -0
  28. package/dist/index-DPkf_CtG.d.mts.map +1 -0
  29. package/dist/index-DcukVskh.d.mts +31 -0
  30. package/dist/index-DcukVskh.d.mts.map +1 -0
  31. package/dist/index-Di6XPdGl.d.mts +322 -0
  32. package/dist/index-Di6XPdGl.d.mts.map +1 -0
  33. package/dist/index-L6AXewfV.d.mts +872 -0
  34. package/dist/index-L6AXewfV.d.mts.map +1 -0
  35. package/dist/index.d.mts +294 -30
  36. package/dist/index.d.mts.map +1 -1
  37. package/dist/index.mjs +1327 -112
  38. package/dist/index.mjs.map +1 -1
  39. package/dist/{output-D_G_JR_8.d.mts → output-yyxdkG0C.d.mts} +2 -3
  40. package/dist/output-yyxdkG0C.d.mts.map +1 -0
  41. package/dist/patch/index.d.mts +2 -2
  42. package/dist/patch/index.mjs +2 -2
  43. package/dist/{patch-BmRfghOo.mjs → patch-AkQY17CD.mjs} +73 -28
  44. package/dist/patch-AkQY17CD.mjs.map +1 -0
  45. package/dist/smartart/index.d.mts +2 -2
  46. package/dist/smartart/index.mjs +2 -2
  47. package/dist/smartart-n1kYJ6Jg.mjs +1650 -0
  48. package/dist/smartart-n1kYJ6Jg.mjs.map +1 -0
  49. package/dist/style-matrix-B6jhPAT3.mjs +123 -0
  50. package/dist/style-matrix-B6jhPAT3.mjs.map +1 -0
  51. package/dist/theme/index.d.mts +4 -2
  52. package/dist/theme/index.mjs +4 -2
  53. package/dist/theme-BKnXRmvn.mjs +426 -0
  54. package/dist/theme-BKnXRmvn.mjs.map +1 -0
  55. package/dist/theme-options-kO89NUEX.d.mts +109 -0
  56. package/dist/theme-options-kO89NUEX.d.mts.map +1 -0
  57. package/dist/util/index.d.mts +3 -3
  58. package/dist/util/index.mjs +3 -3
  59. package/dist/{util-Tq9PSjK0.mjs → util-ptE16MEk.mjs} +237 -459
  60. package/dist/util-ptE16MEk.mjs.map +1 -0
  61. package/dist/{values-8di32lIe.d.mts → values-BECDm4zr.d.mts} +17 -31
  62. package/dist/values-BECDm4zr.d.mts.map +1 -0
  63. package/dist/vector/index.d.mts +2 -0
  64. package/dist/vector/index.mjs +2 -0
  65. package/dist/vector-DhLGZjP5.mjs +3049 -0
  66. package/dist/vector-DhLGZjP5.mjs.map +1 -0
  67. package/package.json +16 -8
  68. package/dist/chart-DIGJna_6.mjs +0 -582
  69. package/dist/chart-DIGJna_6.mjs.map +0 -1
  70. package/dist/converters-C_Y2QX1w.mjs.map +0 -1
  71. package/dist/drawingml/index.d.mts +0 -2
  72. package/dist/drawingml/index.mjs +0 -2
  73. package/dist/drawingml-sj1J3lb0.mjs.map +0 -1
  74. package/dist/index-BVK2dv6C.d.mts.map +0 -1
  75. package/dist/index-BfHfKuKy.d.mts +0 -275
  76. package/dist/index-BfHfKuKy.d.mts.map +0 -1
  77. package/dist/index-CE53SwpZ.d.mts +0 -1463
  78. package/dist/index-CE53SwpZ.d.mts.map +0 -1
  79. package/dist/index-D6VE-MnJ.d.mts +0 -43
  80. package/dist/index-D6VE-MnJ.d.mts.map +0 -1
  81. package/dist/index-DE4CLElr.d.mts +0 -145
  82. package/dist/index-DE4CLElr.d.mts.map +0 -1
  83. package/dist/index-DlPA26cw.d.mts +0 -91
  84. package/dist/index-DlPA26cw.d.mts.map +0 -1
  85. package/dist/index-k8WKLXnA.d.mts.map +0 -1
  86. package/dist/output-D_G_JR_8.d.mts.map +0 -1
  87. package/dist/patch-BmRfghOo.mjs.map +0 -1
  88. package/dist/smartart-B7ukZ-Tw.mjs +0 -305
  89. package/dist/smartart-B7ukZ-Tw.mjs.map +0 -1
  90. package/dist/theme-CiNzdl-9.mjs +0 -177
  91. package/dist/theme-CiNzdl-9.mjs.map +0 -1
  92. package/dist/util-Tq9PSjK0.mjs.map +0 -1
  93. package/dist/values-8di32lIe.d.mts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-DIGJna_6.mjs","names":[],"sources":["../src/chart/chart-collection.ts","../src/chart/chart-descriptors.ts","../src/chart/types.ts"],"sourcesContent":["/**\n * Chart data and collection for document generation.\n *\n * @module\n */\n\nexport interface ChartData {\n key: string;\n chartSpaceXml: string;\n}\n\nexport class ChartCollection {\n private map: Map<string, ChartData>;\n\n public constructor() {\n this.map = new Map<string, ChartData>();\n }\n\n public addChart(key: string, chartData: ChartData): void {\n this.map.set(key, chartData);\n }\n\n public get array(): ChartData[] {\n return [...this.map.values()];\n }\n}\n","/**\n * Chart descriptors — CustomDescriptor for c:chartSpace serialization.\n *\n * @module\n */\n\nimport { escapeXml } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\nimport { attr, findChild, children, textOf } from \"@office-open/xml\";\n\nimport type { CustomDescriptor, ReadContext, WriteContext } from \"../descriptor\";\nimport type {\n ChartSpaceOptions,\n BubbleSeriesData,\n ChartSeriesData,\n ChartType,\n DataLabelOptions,\n DataLabelsOptions,\n ErrorBarOptions,\n TrendlineLabelOptions,\n TrendlineOptions,\n View3DOptions,\n} from \"./types\";\n\n// ── Mutable build type for read results (readonly properties not assignable) ──\n\ntype MutableChartSpaceResult = {\n -readonly [K in keyof ChartSpaceOptions]?: ChartSpaceOptions[K];\n};\n\n// ── Chart type → XML element tag mapping ──\n\nconst CHART_TYPE_TAGS: Record<string, string> = {\n column: \"c:barChart\",\n bar: \"c:barChart\",\n line: \"c:lineChart\",\n pie: \"c:pieChart\",\n area: \"c:areaChart\",\n scatter: \"c:scatterChart\",\n bubble: \"c:bubbleChart\",\n doughnut: \"c:doughnutChart\",\n radar: \"c:radarChart\",\n stock: \"c:stockChart\",\n surface: \"c:surfaceChart\",\n};\n\nconst CHART_TYPE_TAGS_3D: Record<string, string> = {\n column: \"c:bar3DChart\",\n bar: \"c:bar3DChart\",\n line: \"c:line3DChart\",\n pie: \"c:pie3DChart\",\n area: \"c:area3DChart\",\n};\n\nconst NO_AXES_TYPES = new Set([\"pie\", \"doughnut\"]);\n\n// ── XML tag → chart type reverse mapping (for read) ──\n\nconst TAG_TO_CHART_TYPE: Record<string, { type: ChartType; threeD?: boolean }> = {\n \"c:barChart\": { type: \"column\" },\n \"c:bar3DChart\": { type: \"column\", threeD: true },\n \"c:lineChart\": { type: \"line\" },\n \"c:line3DChart\": { type: \"line\", threeD: true },\n \"c:pieChart\": { type: \"pie\" },\n \"c:pie3DChart\": { type: \"pie\", threeD: true },\n \"c:areaChart\": { type: \"area\" },\n \"c:area3DChart\": { type: \"area\", threeD: true },\n \"c:scatterChart\": { type: \"scatter\" },\n \"c:bubbleChart\": { type: \"bubble\" },\n \"c:doughnutChart\": { type: \"doughnut\" },\n \"c:radarChart\": { type: \"radar\" },\n \"c:stockChart\": { type: \"stock\" },\n \"c:surfaceChart\": { type: \"surface\" },\n \"c:surface3DChart\": { type: \"surface\", threeD: true },\n};\n\n// ── String helpers ──\n\nfunction attrVal(name: string, value: string | number): string {\n return `${name}=\"${escapeXml(String(value))}\"`;\n}\n\nfunction emptyEl(tag: string): string {\n return `<${tag}/>`;\n}\n\nfunction valEl(tag: string, value: string | number): string {\n return `<${tag} ${attrVal(\"val\", value)}/>`;\n}\n\n// ── Boolean helper (CT_OnOff: true → omit val, false → \"0\") ──\n\nfunction boolVal(value: boolean | undefined): string {\n // XSD CT_OnOff: omit val for true, val=\"0\" for false\n return value === false ? ` val=\"0\"` : \"\";\n}\n\n// ── Numeric literal (c:numLit) ──\n\nfunction stringifyNumLit(value: number): string {\n return `<c:numLit><c:formatCode>General</c:formatCode><c:ptCount val=\"1\"/><c:pt idx=\"0\"><c:v>${value}</c:v></c:pt></c:numLit>`;\n}\n\n// ── Trendline XML (CT_Trendline) ──\n\nfunction stringifyTrendline(opts: TrendlineOptions): string {\n const parts: string[] = [];\n if (opts.name !== undefined) {\n parts.push(`<c:name>${escapeXml(opts.name)}</c:name>`);\n }\n parts.push(valEl(\"c:trendlineType\", opts.type ?? \"linear\"));\n if (opts.order !== undefined) parts.push(valEl(\"c:order\", opts.order));\n if (opts.period !== undefined) parts.push(valEl(\"c:period\", opts.period));\n if (opts.forward !== undefined) parts.push(valEl(\"c:forward\", opts.forward));\n if (opts.backward !== undefined) parts.push(valEl(\"c:backward\", opts.backward));\n if (opts.intercept !== undefined) parts.push(valEl(\"c:intercept\", opts.intercept));\n if (opts.dispRSqr !== undefined) parts.push(`<c:dispRSqr${boolVal(opts.dispRSqr)}/>`);\n if (opts.dispEq !== undefined) parts.push(`<c:dispEq${boolVal(opts.dispEq)}/>`);\n // XSD CT_Trendline: trendlineLbl follows dispEq; CT_TrendlineLbl's children are all optional.\n const labelFmt = opts.label?.numberFormat;\n if (labelFmt !== undefined) {\n parts.push(\n `<c:trendlineLbl><c:numFmt formatCode=\"${escapeXml(labelFmt)}\" sourceLinked=\"0\"/></c:trendlineLbl>`,\n );\n }\n return `<c:trendline>${parts.join(\"\")}</c:trendline>`;\n}\n\n// ── Error bars XML (CT_ErrBars) ──\n\nfunction stringifyErrBars(opts: ErrorBarOptions): string {\n const parts: string[] = [];\n if (opts.direction !== undefined) parts.push(valEl(\"c:errDir\", opts.direction));\n parts.push(valEl(\"c:errBarType\", opts.barType ?? \"both\"));\n parts.push(valEl(\"c:errValType\", opts.valueType ?? \"fixedVal\"));\n if (opts.noEndCap !== undefined) parts.push(`<c:noEndCap${boolVal(opts.noEndCap)}/>`);\n if (opts.plusValue !== undefined)\n parts.push(`<c:plus>${stringifyNumLit(opts.plusValue)}</c:plus>`);\n if (opts.minusValue !== undefined)\n parts.push(`<c:minus>${stringifyNumLit(opts.minusValue)}</c:minus>`);\n if (opts.value !== undefined) parts.push(valEl(\"c:val\", opts.value));\n return `<c:errBars>${parts.join(\"\")}</c:errBars>`;\n}\n\n// ── Data labels XML (CT_DLbls) ──\n\nfunction stringifyDataLabel(opts: DataLabelOptions): string {\n // CT_DLbl: idx (required) → choice(delete | Group_DLbl needing ≥1 EG_DLblShared child).\n if (opts.delete) {\n return `<c:dLbl><c:idx val=\"${opts.index}\"/><c:delete val=\"1\"/></c:dLbl>`;\n }\n const inner: string[] = [];\n if (opts.numberFormat !== undefined)\n inner.push(`<c:numFmt formatCode=\"${escapeXml(opts.numberFormat)}\" sourceLinked=\"0\"/>`);\n if (opts.position !== undefined) inner.push(valEl(\"c:dLblPos\", opts.position));\n return `<c:dLbl><c:idx val=\"${opts.index}\"/>${inner.join(\"\")}</c:dLbl>`;\n}\n\nfunction stringifyDataLabels(opts: DataLabelsOptions): string {\n const parts: string[] = [];\n // CT_DLbls: per-point overrides (c:dLbl) precede the shared Group_DLbls settings.\n if (opts.labels) {\n for (const lbl of opts.labels) parts.push(stringifyDataLabel(lbl));\n }\n if (opts.position !== undefined) parts.push(valEl(\"c:dLblPos\", opts.position));\n if (opts.showLegendKey !== undefined)\n parts.push(`<c:showLegendKey${boolVal(opts.showLegendKey)}/>`);\n if (opts.showVal !== undefined) parts.push(`<c:showVal${boolVal(opts.showVal)}/>`);\n if (opts.showCatName !== undefined) parts.push(`<c:showCatName${boolVal(opts.showCatName)}/>`);\n if (opts.showSerName !== undefined) parts.push(`<c:showSerName${boolVal(opts.showSerName)}/>`);\n if (opts.showPercent !== undefined) parts.push(`<c:showPercent${boolVal(opts.showPercent)}/>`);\n if (opts.showBubbleSize !== undefined)\n parts.push(`<c:showBubbleSize${boolVal(opts.showBubbleSize)}/>`);\n if (opts.separator !== undefined)\n parts.push(`<c:separator>${escapeXml(opts.separator)}</c:separator>`);\n if (opts.showLeaderLines !== undefined)\n parts.push(`<c:showLeaderLines${boolVal(opts.showLeaderLines)}/>`);\n // CT_ChartLines (leaderLines) closes Group_DLbls; an empty element is XSD-valid.\n if (opts.leaderLines) parts.push(emptyEl(\"c:leaderLines\"));\n return `<c:dLbls>${parts.join(\"\")}</c:dLbls>`;\n}\n\n// ── 3D view XML (CT_View3D) ──\n\nfunction stringifyView3D(opts: View3DOptions): string {\n const parts: string[] = [];\n if (opts.rotX !== undefined) parts.push(valEl(\"c:rotX\", opts.rotX));\n if (opts.hPercent !== undefined) parts.push(valEl(\"c:hPercent\", opts.hPercent));\n if (opts.rotY !== undefined) parts.push(valEl(\"c:rotY\", opts.rotY));\n if (opts.depthPercent !== undefined) parts.push(valEl(\"c:depthPercent\", opts.depthPercent));\n if (opts.rAngAx !== undefined) parts.push(`<c:rAngAx${boolVal(opts.rAngAx)}/>`);\n if (opts.perspective !== undefined) parts.push(valEl(\"c:perspective\", opts.perspective));\n return `<c:view3D>${parts.join(\"\")}</c:view3D>`;\n}\n\n// ── Series data XML builders ──\n\nfunction stringifyStrRef(values: readonly string[]): string {\n const pts = values.map((v, i) => `<c:pt idx=\"${i}\"><c:v>${escapeXml(v)}</c:v></c:pt>`).join(\"\");\n return `<c:strRef><c:f/><c:strCache><c:ptCount ${attrVal(\"val\", values.length)}/>${pts}</c:strCache></c:strRef>`;\n}\n\nfunction stringifyNumRef(values: readonly number[]): string {\n const pts = values.map((v, i) => `<c:pt idx=\"${i}\"><c:v>${v}</c:v></c:pt>`).join(\"\");\n return `<c:numRef><c:f/><c:numCache><c:formatCode>General</c:formatCode><c:ptCount ${attrVal(\"val\", values.length)}/>${pts}</c:numCache></c:numRef>`;\n}\n\n// ── Chart type header XML ──\n\nfunction chartTypeHeader(opts: ChartSpaceOptions): string {\n const tag = opts.threeD ? CHART_TYPE_TAGS_3D[opts.type] : CHART_TYPE_TAGS[opts.type];\n if (!tag) throw new Error(`Unsupported chart type: ${opts.type}`);\n\n const headerParts: string[] = [];\n\n switch (opts.type) {\n case \"column\":\n case \"bar\":\n headerParts.push(valEl(\"c:barDir\", opts.type === \"column\" ? \"col\" : \"bar\"));\n headerParts.push(valEl(\"c:grouping\", \"clustered\"));\n break;\n case \"line\":\n case \"area\":\n headerParts.push(valEl(\"c:grouping\", \"standard\"));\n break;\n case \"scatter\":\n headerParts.push(valEl(\"c:scatterStyle\", \"line\"));\n break;\n case \"radar\":\n headerParts.push(valEl(\"c:radarStyle\", \"standard\"));\n break;\n case \"pie\":\n case \"doughnut\":\n case \"bubble\":\n headerParts.push(valEl(\"c:varyColors\", 1));\n break;\n }\n\n return `<${tag}>${headerParts.join(\"\")}`;\n}\n\nfunction chartTypeFooter(opts: ChartSpaceOptions): string {\n const tag = opts.threeD ? CHART_TYPE_TAGS_3D[opts.type] : CHART_TYPE_TAGS[opts.type];\n // Pie and doughnut have no axId\n if (NO_AXES_TYPES.has(opts.type)) return `</${tag}>`;\n const axIds: string[] = [valEl(\"c:axId\", 10), valEl(\"c:axId\", 20)];\n // 3D charts and surface charts need a third axis\n if (opts.threeD || opts.type === \"surface\") axIds.push(valEl(\"c:axId\", 30));\n return `${axIds.join(\"\")}</${tag}>`;\n}\n\n// ── Series XML ──\n\nfunction stringifySeries(\n index: number,\n series: ChartSeriesData | BubbleSeriesData,\n categories: readonly string[],\n chartType: ChartType,\n): string {\n const parts: string[] = [];\n\n parts.push(valEl(\"c:idx\", index));\n parts.push(valEl(\"c:order\", index));\n\n // Series name (c:tx -> c:strRef)\n parts.push(`<c:tx>${stringifyStrRef([series.name])}</c:tx>`);\n parts.push(emptyEl(\"c:spPr\"));\n\n // Per-series enhancements (XSD order: dLbls → trendline → errBars → cat/val)\n const s = series as ChartSeriesData;\n if (s.dataLabels) parts.push(stringifyDataLabels(s.dataLabels));\n if (s.trendlines) {\n for (const tl of s.trendlines) parts.push(stringifyTrendline(tl));\n }\n if (s.errorBars) parts.push(stringifyErrBars(s.errorBars));\n\n if (chartType === \"bubble\") {\n const bs = series as BubbleSeriesData;\n parts.push(`<c:xVal>${stringifyNumRef(bs.xValues)}</c:xVal>`);\n parts.push(`<c:yVal>${stringifyNumRef(bs.yValues)}</c:yVal>`);\n parts.push(`<c:bubbleSize>${stringifyNumRef(bs.bubbleSize)}</c:bubbleSize>`);\n } else if (chartType === \"scatter\") {\n parts.push(`<c:xVal>${stringifyStrRef(categories)}</c:xVal>`);\n parts.push(`<c:yVal>${stringifyNumRef(s.values)}</c:yVal>`);\n } else {\n parts.push(`<c:cat>${stringifyStrRef(categories)}</c:cat>`);\n parts.push(`<c:val>${stringifyNumRef(s.values)}</c:val>`);\n }\n\n return `<c:ser>${parts.join(\"\")}</c:ser>`;\n}\n\n// ── Title XML ──\n\nfunction stringifyTitle(title: string): string {\n return `<c:title><c:tx><c:rich><a:bodyPr/><a:lstStyle/><a:p><a:r><a:t>${escapeXml(title)}</a:t></a:r></a:p></c:rich></c:tx><c:overlay val=\"0\"/></c:title>`;\n}\n\n// ── Legend XML ──\n\nfunction stringifyLegend(): string {\n return `<c:legend><c:legendPos val=\"b\"/><c:layout/><c:overlay val=\"0\"/><c:spPr><a:noFill/><a:ln><a:noFill/></a:ln><a:effectLst/></c:spPr><c:txPr><a:bodyPr rot=\"0\" spcFirstLastPara=\"1\" vertOverflow=\"ellipsis\" vert=\"horz\" wrap=\"square\" anchor=\"ctr\" anchorCtr=\"1\"/><a:lstStyle/><a:p><a:pPr><a:defRPr/></a:pPr><a:endParaRPr lang=\"en-US\"/></a:p></c:txPr></c:legend>`;\n}\n\n// ── Shared boilerplate ──\n\nfunction noFillSpPr(): string {\n return `<c:spPr><a:noFill/><a:ln><a:noFill/></a:ln><a:effectLst/></c:spPr>`;\n}\n\nfunction chartTxPr(): string {\n return `<c:txPr><a:bodyPr/><a:lstStyle/><a:p><a:pPr><a:defRPr/></a:pPr><a:endParaRPr lang=\"en-US\"/></a:p></c:txPr>`;\n}\n\n// ── Axes XML ──\n\nfunction stringifyAxes(chartType: ChartType, threeD?: boolean): string {\n if (NO_AXES_TYPES.has(chartType)) return \"\";\n\n const parts: string[] = [];\n\n if (chartType === \"scatter\" || chartType === \"bubble\") {\n parts.push(valAxXml(10, 20));\n parts.push(valAxXml(20, 10));\n } else if (chartType === \"stock\" || chartType === \"surface\") {\n parts.push(catAxXml(10, 20));\n parts.push(valAxXml(20, 10));\n if (chartType === \"surface\") {\n parts.push(serAxXml(30, 10));\n }\n } else {\n parts.push(catAxXml(10, 20));\n parts.push(valAxXml(20, 10));\n if (threeD) {\n parts.push(catAxXml(30, 10));\n }\n }\n\n return parts.join(\"\");\n}\n\nfunction catAxXml(axId: number, crossAx: number): string {\n return `<c:catAx><c:axId ${attrVal(\"val\", axId)}/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"b\"/><c:crossAx ${attrVal(\"val\", crossAx)}/><c:crosses val=\"autoZero\"/><c:auto val=\"1\"/><c:lblOffset val=\"100\"/><c:noMultiLvlLbl val=\"0\"/></c:catAx>`;\n}\n\nfunction valAxXml(axId: number, crossAx: number): string {\n return `<c:valAx><c:axId ${attrVal(\"val\", axId)}/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"l\"/><c:numFmt formatCode=\"General\" sourceLinked=\"1\"/><c:spPr/><c:crossAx ${attrVal(\"val\", crossAx)}/><c:crosses val=\"autoZero\"/></c:valAx>`;\n}\n\nfunction serAxXml(axId: number, crossAx: number): string {\n return `<c:serAx><c:axId ${attrVal(\"val\", axId)}/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"b\"/><c:numFmt formatCode=\"General\" sourceLinked=\"1\"/><c:spPr/><c:crossAx ${attrVal(\"val\", crossAx)}/><c:crosses val=\"autoZero\"/><c:tickLblSkip val=\"1\"/></c:serAx>`;\n}\n\n// ── Read helpers ──\n\nfunction readStrCache(el: XmlElement): string[] {\n const strRef = findChild(el, \"c:strRef\");\n if (!strRef) return [];\n const strCache = findChild(strRef, \"c:strCache\");\n if (!strCache?.elements) return [];\n const result: string[] = [];\n for (const pt of strCache.elements) {\n if (pt.name === \"c:pt\" && pt.elements) {\n const v = pt.elements.find((c) => c.name === \"c:v\");\n if (v?.text !== undefined) result.push(String(v.text));\n }\n }\n return result;\n}\n\nfunction readNumCache(el: XmlElement): number[] {\n const numRef = findChild(el, \"c:numRef\");\n if (!numRef) return [];\n const numCache = findChild(numRef, \"c:numCache\");\n if (!numCache?.elements) return [];\n const result: number[] = [];\n for (const pt of numCache.elements) {\n if (pt.name === \"c:pt\" && pt.elements) {\n const v = pt.elements.find((c) => c.name === \"c:v\");\n if (v?.text !== undefined) result.push(Number(v.text));\n }\n }\n return result;\n}\n\nfunction readSeriesName(serEl: XmlElement): string {\n const tx = findChild(serEl, \"c:tx\");\n if (!tx) return \"\";\n const values = readStrCache(tx);\n return values[0] ?? \"\";\n}\n\nfunction readTitleText(titleEl: XmlElement): string | undefined {\n const tx = findChild(titleEl, \"c:tx\");\n if (!tx?.elements) return undefined;\n for (const child of tx.elements) {\n if (child.name === \"c:rich\" && child.elements) {\n for (const sub of child.elements) {\n if (sub.name === \"a:p\" && sub.elements) {\n for (const r of sub.elements) {\n if (r.name === \"a:r\" && r.elements) {\n for (const t of r.elements) {\n if (t.name === \"a:t\" && t.text !== undefined) {\n return String(t.text);\n }\n }\n }\n }\n }\n }\n }\n }\n return undefined;\n}\n\n// ── Read helpers: series enhancements ──\n\nfunction readBoolAttr(el: XmlElement, childName: string): boolean | undefined {\n const child = findChild(el, childName);\n if (!child) return undefined;\n const v = attr(child, \"val\");\n // CT_OnOff: absent val or val=\"1\"/\"true\" → true; val=\"0\"/\"false\" → false\n if (v === undefined) return true;\n return v !== \"0\" && v !== \"false\";\n}\n\nfunction readValNum(el: XmlElement, childName: string): number | undefined {\n const child = findChild(el, childName);\n if (!child) return undefined;\n const v = attr(child, \"val\");\n return v !== undefined ? Number(v) : undefined;\n}\n\nfunction readValStr(el: XmlElement, childName: string): string | undefined {\n const child = findChild(el, childName);\n if (!child) return undefined;\n return attr(child, \"val\") ?? undefined;\n}\n\nfunction readNumLit(el: XmlElement, childName: string): number | undefined {\n const child = findChild(el, childName);\n if (!child) return undefined;\n const numLit = findChild(child, \"c:numLit\");\n if (!numLit?.elements) return undefined;\n for (const pt of numLit.elements) {\n if (pt.name === \"c:pt\" && pt.elements) {\n const v = pt.elements.find((c) => c.name === \"c:v\");\n if (v) {\n const text = textOf(v);\n if (text) return Number(text);\n }\n }\n }\n return undefined;\n}\n\nfunction readTrendlines(serEl: XmlElement): TrendlineOptions[] | undefined {\n const tlEls = children(serEl, \"c:trendline\");\n if (tlEls.length === 0) return undefined;\n return tlEls.map((tl) => {\n const opts: TrendlineOptions = {};\n const type = readValStr(tl, \"c:trendlineType\");\n if (type) opts.type = type as TrendlineOptions[\"type\"];\n const order = readValNum(tl, \"c:order\");\n if (order !== undefined) opts.order = order;\n const period = readValNum(tl, \"c:period\");\n if (period !== undefined) opts.period = period;\n const forward = readValNum(tl, \"c:forward\");\n if (forward !== undefined) opts.forward = forward;\n const backward = readValNum(tl, \"c:backward\");\n if (backward !== undefined) opts.backward = backward;\n const intercept = readValNum(tl, \"c:intercept\");\n if (intercept !== undefined) opts.intercept = intercept;\n const dispRSqr = readBoolAttr(tl, \"c:dispRSqr\");\n if (dispRSqr !== undefined) opts.dispRSqr = dispRSqr;\n const dispEq = readBoolAttr(tl, \"c:dispEq\");\n if (dispEq !== undefined) opts.dispEq = dispEq;\n const nameEl = findChild(tl, \"c:name\");\n const nameText = textOf(nameEl);\n if (nameText) opts.name = nameText;\n const labelFmt = attr(findChild(findChild(tl, \"c:trendlineLbl\"), \"c:numFmt\"), \"formatCode\");\n if (labelFmt) opts.label = { numberFormat: labelFmt } satisfies TrendlineLabelOptions;\n return opts;\n });\n}\n\nfunction readErrBars(serEl: XmlElement): ErrorBarOptions | undefined {\n const ebEl = findChild(serEl, \"c:errBars\");\n if (!ebEl) return undefined;\n const opts: ErrorBarOptions = {};\n const direction = readValStr(ebEl, \"c:errDir\");\n if (direction) opts.direction = direction as ErrorBarOptions[\"direction\"];\n const barType = readValStr(ebEl, \"c:errBarType\");\n if (barType) opts.barType = barType as ErrorBarOptions[\"barType\"];\n const valueType = readValStr(ebEl, \"c:errValType\");\n if (valueType) opts.valueType = valueType as ErrorBarOptions[\"valueType\"];\n const noEndCap = readBoolAttr(ebEl, \"c:noEndCap\");\n if (noEndCap !== undefined) opts.noEndCap = noEndCap;\n const plusValue = readNumLit(ebEl, \"c:plus\");\n if (plusValue !== undefined) opts.plusValue = plusValue;\n const minusValue = readNumLit(ebEl, \"c:minus\");\n if (minusValue !== undefined) opts.minusValue = minusValue;\n const value = readValNum(ebEl, \"c:val\");\n if (value !== undefined) opts.value = value;\n return opts;\n}\n\nfunction readDataLabels(serEl: XmlElement): DataLabelsOptions | undefined {\n const dlEl = findChild(serEl, \"c:dLbls\");\n if (!dlEl) return undefined;\n const opts: DataLabelsOptions = {};\n const position = readValStr(dlEl, \"c:dLblPos\");\n if (position) opts.position = position as DataLabelsOptions[\"position\"];\n const showLegendKey = readBoolAttr(dlEl, \"c:showLegendKey\");\n if (showLegendKey !== undefined) opts.showLegendKey = showLegendKey;\n const showVal = readBoolAttr(dlEl, \"c:showVal\");\n if (showVal !== undefined) opts.showVal = showVal;\n const showCatName = readBoolAttr(dlEl, \"c:showCatName\");\n if (showCatName !== undefined) opts.showCatName = showCatName;\n const showSerName = readBoolAttr(dlEl, \"c:showSerName\");\n if (showSerName !== undefined) opts.showSerName = showSerName;\n const showPercent = readBoolAttr(dlEl, \"c:showPercent\");\n if (showPercent !== undefined) opts.showPercent = showPercent;\n const showBubbleSize = readBoolAttr(dlEl, \"c:showBubbleSize\");\n if (showBubbleSize !== undefined) opts.showBubbleSize = showBubbleSize;\n const showLeaderLines = readBoolAttr(dlEl, \"c:showLeaderLines\");\n if (showLeaderLines !== undefined) opts.showLeaderLines = showLeaderLines;\n const sepEl = findChild(dlEl, \"c:separator\");\n const sepText = textOf(sepEl);\n if (sepText) opts.separator = sepText;\n const lblEls = children(dlEl, \"c:dLbl\");\n if (lblEls.length > 0) {\n opts.labels = lblEls.map((el): DataLabelOptions => {\n const result: DataLabelOptions = { index: readValNum(el, \"c:idx\") ?? 0 };\n if (findChild(el, \"c:delete\")) result.delete = true;\n const numFmt = attr(findChild(el, \"c:numFmt\"), \"formatCode\");\n if (numFmt) result.numberFormat = numFmt;\n const pos = readValStr(el, \"c:dLblPos\");\n if (pos) result.position = pos as DataLabelOptions[\"position\"];\n return result;\n });\n }\n if (findChild(dlEl, \"c:leaderLines\")) opts.leaderLines = true;\n return opts;\n}\n\nfunction readView3D(chartEl: XmlElement): View3DOptions | undefined {\n const v3d = findChild(chartEl, \"c:view3D\");\n if (!v3d) return undefined;\n const opts: View3DOptions = {};\n const rotX = readValNum(v3d, \"c:rotX\");\n if (rotX !== undefined) opts.rotX = rotX;\n const hPercent = readValNum(v3d, \"c:hPercent\");\n if (hPercent !== undefined) opts.hPercent = hPercent;\n const rotY = readValNum(v3d, \"c:rotY\");\n if (rotY !== undefined) opts.rotY = rotY;\n const depthPercent = readValNum(v3d, \"c:depthPercent\");\n if (depthPercent !== undefined) opts.depthPercent = depthPercent;\n const rAngAx = readBoolAttr(v3d, \"c:rAngAx\");\n if (rAngAx !== undefined) opts.rAngAx = rAngAx;\n const perspective = readValNum(v3d, \"c:perspective\");\n if (perspective !== undefined) opts.perspective = perspective;\n return opts;\n}\n\n// ── Main descriptor ──\n\nexport const chartSpaceDesc: CustomDescriptor<ChartSpaceOptions> = {\n kind: \"custom\",\n\n stringify(opts: ChartSpaceOptions, _ctx: WriteContext): string {\n const parts: string[] = [];\n\n // Opening tag with namespaces\n parts.push(\n `<c:chartSpace xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">`,\n );\n\n // Fixed header elements\n parts.push(valEl(\"c:date1904\", 0));\n parts.push(valEl(\"c:lang\", \"en-US\"));\n parts.push(valEl(\"c:roundedCorners\", 0));\n\n // Style\n if (opts.style !== undefined) {\n parts.push(valEl(\"c:style\", opts.style));\n }\n\n // c:chart container\n parts.push(\"<c:chart>\");\n\n // Title\n if (opts.title) {\n parts.push(stringifyTitle(opts.title));\n }\n\n parts.push(valEl(\"c:autoTitleDeleted\", 0));\n\n // 3D view (before plotArea per CT_Chart sequence)\n if (opts.view3D) {\n parts.push(stringifyView3D(opts.view3D));\n }\n\n // c:plotArea\n parts.push(\"<c:plotArea><c:layout/>\");\n\n // Chart type element (header + series + footer)\n parts.push(chartTypeHeader(opts));\n\n const categories = opts.categories ?? [];\n for (const [i, series] of opts.series.entries()) {\n parts.push(stringifySeries(i, series, categories, opts.type));\n }\n\n parts.push(chartTypeFooter(opts));\n\n // Axes\n parts.push(stringifyAxes(opts.type, opts.threeD));\n\n parts.push(\"</c:plotArea>\");\n\n // Legend\n if (opts.showLegend !== false) {\n parts.push(stringifyLegend());\n }\n\n parts.push(\"</c:chart>\");\n\n // SpPr and txPr\n parts.push(noFillSpPr());\n parts.push(chartTxPr());\n\n parts.push(\"</c:chartSpace>\");\n\n return parts.join(\"\");\n },\n\n parse(el: XmlElement, _ctx: ReadContext) {\n const result: MutableChartSpaceResult = {};\n\n // Style\n const styleEl = findChild(el, \"c:style\");\n if (styleEl?.attributes?.[\"val\"] !== undefined) {\n result.style = Number(styleEl.attributes[\"val\"]);\n }\n\n // Chart container\n const chart = findChild(el, \"c:chart\");\n if (!chart) return result as ChartSpaceOptions;\n\n // Title\n const titleEl = findChild(chart, \"c:title\");\n if (titleEl) {\n const title = readTitleText(titleEl);\n if (title !== undefined) result.title = title;\n }\n\n // 3D view (before plotArea per CT_Chart sequence)\n const view3D = readView3D(chart);\n if (view3D) result.view3D = view3D;\n\n // Plot area — detect chart type\n const plotArea = findChild(chart, \"c:plotArea\");\n if (plotArea?.elements) {\n let detectedType: ChartType | undefined;\n let threeD = false;\n let chartTypeEl: XmlElement | undefined;\n\n for (const child of plotArea.elements) {\n if (!child.name) continue;\n const mapping = TAG_TO_CHART_TYPE[child.name];\n if (mapping) {\n detectedType = mapping.type;\n threeD = mapping.threeD ?? false;\n chartTypeEl = child;\n // bar/column share the c:barChart tag; distinguish via c:barDir\n if (child.name === \"c:barChart\" || child.name === \"c:bar3DChart\") {\n const barDir = findChild(child, \"c:barDir\");\n const barDirVal = barDir ? attr(barDir, \"val\") : undefined;\n if (barDirVal === \"bar\") detectedType = \"bar\";\n else if (barDirVal === \"col\") detectedType = \"column\";\n }\n break;\n }\n }\n\n if (detectedType) {\n result.type = detectedType;\n if (threeD) result.threeD = true;\n }\n\n // Extract series data (c:ser are children of the chart-type element, not plotArea)\n const seriesEls = chartTypeEl ? children(chartTypeEl, \"c:ser\") : [];\n if (seriesEls.length > 0) {\n if (detectedType === \"bubble\") {\n const bubbleSeries: BubbleSeriesData[] = [];\n for (const serEl of seriesEls) {\n const name = readSeriesName(serEl);\n const xVal = findChild(serEl, \"c:xVal\");\n const yVal = findChild(serEl, \"c:yVal\");\n const bubbleSize = findChild(serEl, \"c:bubbleSize\");\n bubbleSeries.push({\n name,\n xValues: xVal ? readNumCache(xVal) : [],\n yValues: yVal ? readNumCache(yVal) : [],\n bubbleSize: bubbleSize ? readNumCache(bubbleSize) : [],\n });\n }\n result.series = bubbleSeries as BubbleSeriesData[];\n } else {\n const chartSeries: ChartSeriesData[] = [];\n let categories: string[] | undefined;\n\n for (const serEl of seriesEls) {\n const name = readSeriesName(serEl);\n\n // Read categories from first series\n if (!categories) {\n const catEl = findChild(serEl, \"c:cat\") ?? findChild(serEl, \"c:xVal\");\n if (catEl) categories = readStrCache(catEl);\n }\n\n // Read values\n const valEl = findChild(serEl, \"c:val\") ?? findChild(serEl, \"c:yVal\");\n const values = valEl ? readNumCache(valEl) : [];\n\n const ser: ChartSeriesData = { name, values };\n\n // Read series enhancements\n const trendlines = readTrendlines(serEl);\n if (trendlines) ser.trendlines = trendlines;\n const errorBars = readErrBars(serEl);\n if (errorBars) ser.errorBars = errorBars;\n const dataLabels = readDataLabels(serEl);\n if (dataLabels) ser.dataLabels = dataLabels;\n\n chartSeries.push(ser);\n }\n\n result.series = chartSeries as ChartSeriesData[];\n if (categories?.length) result.categories = categories;\n }\n }\n }\n\n // Legend — default is true, only set if explicitly absent\n const legend = findChild(chart, \"c:legend\");\n if (!legend) {\n result.showLegend = false;\n }\n\n return result as ChartSpaceOptions;\n },\n};\n","/**\n * Chart type definitions — interfaces and constants.\n *\n * Class implementations have been removed; all chart XML generation\n * goes through chart-descriptors.ts (stringify/parse path).\n *\n * @module\n */\n\n// ── Series common (CT_Ser shared children) ──\n\n/** Fields shared by every chart series type (name + optional decorations). */\nexport interface ChartSeriesCommon {\n name: string;\n trendlines?: readonly TrendlineOptions[];\n errorBars?: ErrorBarOptions;\n dataLabels?: DataLabelsOptions;\n}\n\n// ── BubbleSeriesData ──\n\nexport interface BubbleSeriesData extends ChartSeriesCommon {\n xValues: readonly number[];\n yValues: readonly number[];\n bubbleSize: readonly number[];\n}\n\n// ── Trendline ──\n\nexport const TrendlineType = {\n EXP: \"exp\",\n LINEAR: \"linear\",\n LOG: \"log\",\n MOVING_AVG: \"movingAvg\",\n POLY: \"poly\",\n POWER: \"power\",\n} as const;\n\nexport type TrendlineType = (typeof TrendlineType)[keyof typeof TrendlineType];\n\n/** Trendline label formatting (CT_TrendlineLbl — all children optional). */\nexport interface TrendlineLabelOptions {\n /** Number format applied to the trendline label (c:numFmt formatCode). */\n numberFormat?: string;\n}\n\nexport interface TrendlineOptions {\n type?: TrendlineType;\n name?: string;\n order?: number;\n period?: number;\n forward?: number;\n backward?: number;\n intercept?: number;\n dispRSqr?: boolean;\n dispEq?: boolean;\n /** Per-trendline label formatting (emitted as c:trendlineLbl). */\n label?: TrendlineLabelOptions;\n}\n\n// ── Error bars ──\n\nexport const ErrorBarDirection = {\n BOTH: \"both\",\n X: \"x\",\n Y: \"y\",\n} as const;\n\nexport type ErrorBarDirection = (typeof ErrorBarDirection)[keyof typeof ErrorBarDirection];\n\nexport const ErrorBarType = {\n BOTH: \"both\",\n MINUS: \"minus\",\n PLUS: \"plus\",\n} as const;\n\nexport type ErrorBarType = (typeof ErrorBarType)[keyof typeof ErrorBarType];\n\nexport const ErrorValueType = {\n CUST: \"cust\",\n FIXED: \"fixedVal\",\n PERCENTAGE: \"percentage\",\n STD_DEV: \"stdDev\",\n STD_ERR: \"stdErr\",\n} as const;\n\nexport type ErrorValueType = (typeof ErrorValueType)[keyof typeof ErrorValueType];\n\nexport interface ErrorBarOptions {\n direction?: ErrorBarDirection;\n barType?: ErrorBarType;\n valueType?: ErrorValueType;\n value?: number;\n noEndCap?: boolean;\n /** Custom plus error value (emitted as c:plus > c:numLit). */\n plusValue?: number;\n /** Custom minus error value (emitted as c:minus > c:numLit). */\n minusValue?: number;\n}\n\n// ── Data labels ──\n\nexport const DataLabelPosition = {\n BEST_FIT: \"bestFit\",\n B: \"b\",\n CTRL: \"ctr\",\n IN_BASE: \"inBase\",\n IN_END: \"inEnd\",\n L: \"l\",\n OUT_END: \"outEnd\",\n R: \"r\",\n T: \"t\",\n} as const;\n\nexport type DataLabelPosition = (typeof DataLabelPosition)[keyof typeof DataLabelPosition];\n\n/** Single data-point label override (CT_DLbl). */\nexport interface DataLabelOptions {\n /** Series point index this label applies to (c:idx, required). */\n index: number;\n /** Drop the label for this point (c:delete). */\n delete?: boolean;\n position?: DataLabelPosition;\n /** Number format override (c:numFmt inside EG_DLblShared). */\n numberFormat?: string;\n}\n\nexport interface DataLabelsOptions {\n position?: DataLabelPosition;\n showVal?: boolean;\n showCatName?: boolean;\n showSerName?: boolean;\n showPercent?: boolean;\n showBubbleSize?: boolean;\n showLegendKey?: boolean;\n showLeaderLines?: boolean;\n separator?: string;\n /** Per-point label overrides (c:dLbl, emitted before the shared settings). */\n labels?: readonly DataLabelOptions[];\n /** Emit a c:leaderLines element for default-styled leader lines. */\n leaderLines?: boolean;\n}\n\n// ── Chart series ──\n\nexport interface ChartSeriesData extends ChartSeriesCommon {\n values: readonly number[];\n}\n\n// ── Chart types ──\n\nexport type ChartType =\n | \"column\"\n | \"bar\"\n | \"line\"\n | \"pie\"\n | \"area\"\n | \"scatter\"\n | \"bubble\"\n | \"doughnut\"\n | \"radar\"\n | \"stock\"\n | \"surface\";\n\nexport type AxisChartType = Exclude<ChartType, \"bubble\">;\n\n// ── ChartSpace options ──\n\nexport interface ChartSpaceOptions {\n title?: string;\n type: ChartType;\n categories?: readonly string[];\n series: readonly ChartSeriesData[] | readonly BubbleSeriesData[];\n showLegend?: boolean;\n style?: number;\n threeD?: boolean;\n view3D?: View3DOptions;\n}\n\n// ── 3D view ──\n\nexport const TimeUnit = {\n DAYS: \"days\",\n MONTHS: \"months\",\n YEARS: \"years\",\n} as const;\n\nexport type TimeUnit = (typeof TimeUnit)[keyof typeof TimeUnit];\n\nexport interface View3DOptions {\n rotX?: number;\n /** Height percentage of the chart (XSD CT_HPercent). */\n hPercent?: number;\n rotY?: number;\n depthPercent?: number;\n rAngAx?: boolean;\n perspective?: number;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters-C_Y2QX1w.mjs","names":[],"sources":["../src/util/base64.ts","../src/util/data-type.ts","../src/util/generators.ts","../src/util/mappings.ts","../src/util/converters.ts"],"sourcesContent":["/**\n * Shared base64 encode/decode helpers.\n *\n * Both prefer the native `Uint8Array` base64 methods (Node 22+, modern\n * browsers): they avoid the intermediate binary string that `btoa`/`atob`\n * materialize and cannot stack-overflow on large buffers. Node `Buffer` is the\n * secondary path; a manual loop covers older runtimes.\n *\n * @module\n */\n\n/**\n * Decode a base64 string into a `Uint8Array`.\n *\n * Prefers native `Uint8Array.fromBase64` (no intermediate binary string), then\n * Node `Buffer` (zero-copy), then `atob`.\n */\nexport function decodeBase64(input: string): Uint8Array {\n const fromBase64 = (Uint8Array as { fromBase64?: (s: string) => Uint8Array }).fromBase64;\n if (typeof fromBase64 === \"function\") return fromBase64.call(Uint8Array, input);\n if (typeof Buffer !== \"undefined\") return Buffer.from(input, \"base64\");\n return Uint8Array.from(atob(input), (c) => c.codePointAt(0)!);\n}\n\n/**\n * Encode a `Uint8Array` into a base64 string.\n *\n * Prefers native `Uint8Array.prototype.toBase64` (no intermediate binary\n * string), then Node `Buffer` (zero-copy), then a `btoa` fallback.\n *\n * The fallback builds the binary string in a loop rather than\n * `String.fromCharCode(...bytes)` — the spread form places every byte on the\n * call stack and overflows for large buffers (V8 caps function arguments near\n * ~65k).\n */\nexport function encodeBase64(bytes: Uint8Array): string {\n const toBase64 = (Uint8Array.prototype as { toBase64?: () => string }).toBase64;\n if (typeof toBase64 === \"function\") return toBase64.call(bytes);\n if (typeof Buffer !== \"undefined\") return Buffer.from(bytes).toString(\"base64\");\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n return btoa(binary);\n}\n","/**\n * Binary input normalization.\n *\n * Accepts the full range of binary inputs (Buffer/Uint8Array/ArrayBuffer/\n * DataView/number[]/string/base64 data URL/…) and normalizes to `Uint8Array`.\n * Centralized here so every entry point (packer, patch, descriptor helpers)\n * shares one definition instead of re-declaring per module.\n *\n * @module\n */\nimport { decodeBase64 } from \"./base64\";\n\n/** Supported binary input shapes. */\nexport type DataType =\n | ArrayBufferLike\n | Blob\n | DataView\n | number[]\n | ReadableStream\n | string\n | Uint8Array;\n\n// Matches data:[<mediatype>][;base64],<data> — a base64 data URL. Mirrors the\n// `isBase64DataURL` check in unjs/undio so plain strings stay UTF-8 text.\nconst DATA_URL_RE = /^data:([\\w.+-]+\\/[\\w.+-]+)?;base64,/;\n\n/** Test whether a string is a base64 data URL (`data:[mime];base64,...`). */\nexport function isBase64DataURL(input: string): boolean {\n return DATA_URL_RE.test(input);\n}\n\n/** Options for {@link toUint8Array}. */\nexport interface ToUint8ArrayOptions {\n /**\n * How to interpret a plain (non-data-URL) string input. Data URLs\n * (`data:...;base64,...`) and binary inputs (Buffer/Uint8Array/ArrayBuffer/\n * DataView/number[]) are auto-detected and ignore this hint.\n *\n * - `\"utf8\"` (default): UTF-8 text.\n * - `\"base64\"`: base64-encoded binary — e.g. an image supplied via\n * `readFileSync(...).toString(\"base64\")`.\n */\n encoding?: \"utf8\" | \"base64\";\n}\n\n/** Normalize any supported binary input to a `Uint8Array`. */\nexport function toUint8Array(data: DataType, options?: ToUint8ArrayOptions): Uint8Array {\n if (data instanceof Uint8Array) return data;\n if (data instanceof ArrayBuffer) return new Uint8Array(data);\n if (data instanceof DataView)\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n if (typeof data === \"string\") {\n const match = data.match(DATA_URL_RE);\n if (match) return decodeBase64(data.slice(match[0].length));\n if (options?.encoding === \"base64\") return decodeBase64(data);\n return new TextEncoder().encode(data);\n }\n if (Array.isArray(data)) return new Uint8Array(data);\n if (data instanceof Blob) throw new TypeError(\"Blob input requires async processing\");\n if (data instanceof ReadableStream)\n throw new TypeError(\"ReadableStream input requires async processing\");\n throw new TypeError(`Unsupported data type: ${typeof data}`);\n}\n","/**\n * Unique ID generation utilities.\n *\n * @module\n */\n\nimport { sha1 } from \"@noble/hashes/legacy.js\";\nimport { bytesToHex } from \"@noble/hashes/utils.js\";\n\n/**\n * A function that generates unique sequential numeric IDs.\n */\nexport type UniqueNumericIdCreator = () => number;\n\n/**\n * Creates a unique numeric ID generator with sequential numbering.\n */\nexport const uniqueNumericIdCreator = (initial = 0): UniqueNumericIdCreator => {\n let currentCount = initial;\n return () => ++currentCount;\n};\n\nconst URL_ALPHABET = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n\n/**\n * Generates a unique lowercase alphanumeric ID using crypto.getRandomValues.\n */\nexport const uniqueId = (): string => {\n const bytes = new Uint8Array(21);\n crypto.getRandomValues(bytes);\n let id = \"\";\n // URL_ALPHABET has 64 entries; the index is masked to [0,63], so the access is in-bounds.\n for (const byte of bytes) id += URL_ALPHABET[byte & 63]!;\n return id.toLowerCase();\n};\n\n/**\n * Generates a SHA-1 hash of the provided data.\n */\nexport const hashedId = (data: Uint8Array | ArrayBuffer | string): string => {\n const bytes =\n data instanceof ArrayBuffer\n ? new Uint8Array(data)\n : typeof data === \"string\"\n ? new TextEncoder().encode(data)\n : data;\n return bytesToHex(sha1(bytes));\n};\n\n/**\n * Generates a UUID v4-style unique identifier using crypto.randomUUID.\n */\nexport const uniqueUuid = (): string => crypto.randomUUID();\n","/**\n * Bidirectional mappings between user-friendly values and XSD abbreviated values.\n *\n * When XSD uses full English words (e.g. \"center\", \"start\"), values are used directly — no mapping needed.\n * When XSD uses abbreviations (e.g. \"ctr\", \"l\", \"rnd\"), this module maps them to full words.\n *\n * Usage in generation (Options → XML): xsdAlign.to(\"center\") → \"ctr\"\n * Usage in parsing (XML → Options): xsdAlign.from(\"ctr\") → \"center\"\n */\n\n/** Invert a Record<K, V> into Record<V, K>. */\nexport function invertMap<K extends string, V extends string>(map: Record<K, V>): Record<V, K> {\n const result = {} as Record<V, K>;\n for (const key of Object.keys(map) as K[]) {\n result[map[key]] = key;\n }\n return result;\n}\n\n/** Create a bidirectional mapping helper from a single forward map. */\nfunction bidi<K extends string, V extends string>(forward: Record<K, V>) {\n const reverse = invertMap(forward);\n return {\n /** User-friendly value → XSD value */\n to: (key: string): string => (forward as Record<string, string>)[key] ?? key,\n /** XSD value → user-friendly value */\n from: (xsd: string): string => (reverse as Record<string, string>)[xsd] ?? xsd,\n /** The forward map (user → XSD) */\n forward,\n /** The reverse map (XSD → user) */\n reverse,\n };\n}\n\n// ---------------------------------------------------------------------------\n// DrawingML — Direction / Position (ST_RectAlignment)\n// Used by: RectAlignment, TileAlignment, ReflectionAlignment\n// ---------------------------------------------------------------------------\n\nexport const xsdRectAlignment = bidi({\n topLeft: \"tl\",\n top: \"t\",\n topRight: \"tr\",\n left: \"l\",\n center: \"ctr\",\n right: \"r\",\n bottomLeft: \"bl\",\n bottom: \"b\",\n bottomRight: \"br\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Text alignment (ST_TextAlignType)\n// Used by: TextAlignment (pptx)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextAlign = bidi({\n left: \"l\",\n center: \"ctr\",\n right: \"r\",\n justify: \"just\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Text anchoring (ST_TextAnchoringType)\n// Used by: VerticalAlignment (pptx)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextAnchor = bidi({\n top: \"t\",\n center: \"ctr\",\n bottom: \"b\",\n justify: \"just\",\n distribute: \"dist\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Line cap (ST_LineCap)\n// ---------------------------------------------------------------------------\n\nexport const xsdLineCap = bidi({\n round: \"rnd\",\n square: \"sq\",\n flat: \"flat\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Compound line (ST_CompoundLine)\n// ---------------------------------------------------------------------------\n\nexport const xsdCompoundLine = bidi({\n single: \"sng\",\n double: \"dbl\",\n thickThin: \"thickThin\",\n thinThick: \"thinThick\",\n triple: \"tri\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Pen alignment (ST_PenAlignment)\n// ---------------------------------------------------------------------------\n\nexport const xsdPenAlignment = bidi({\n center: \"ctr\",\n inside: \"in\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Line end size (ST_LineEndWidth, ST_LineEndLength)\n// ---------------------------------------------------------------------------\n\nexport const xsdLineEndSize = bidi({\n small: \"sm\",\n medium: \"med\",\n large: \"lg\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Blend mode (ST_BlendMode)\n// ---------------------------------------------------------------------------\n\nexport const xsdBlendMode = bidi({\n over: \"over\",\n multiply: \"mult\",\n screen: \"screen\",\n darken: \"darken\",\n lighten: \"lighten\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Path fill mode (ST_PathFillMode)\n// ---------------------------------------------------------------------------\n\nexport const xsdPathFillMode = bidi({\n none: \"none\",\n normal: \"norm\",\n lighten: \"lighten\",\n lightenLess: \"lightenLess\",\n darken: \"darken\",\n darkenLess: \"darkenLess\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Effect container type\n// ---------------------------------------------------------------------------\n\nexport const xsdEffectContainer = bidi({\n sibling: \"sib\",\n tree: \"tree\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset shadow (ST_PresetShadowVal)\n// ---------------------------------------------------------------------------\n\nexport const xsdPresetShadow = bidi({\n shadow1: \"shdw1\",\n shadow2: \"shdw2\",\n shadow3: \"shdw3\",\n shadow4: \"shdw4\",\n shadow5: \"shdw5\",\n shadow6: \"shdw6\",\n shadow7: \"shdw7\",\n shadow8: \"shdw8\",\n shadow9: \"shdw9\",\n shadow10: \"shdw10\",\n shadow11: \"shdw11\",\n shadow12: \"shdw12\",\n shadow13: \"shdw13\",\n shadow14: \"shdw14\",\n shadow15: \"shdw15\",\n shadow16: \"shdw16\",\n shadow17: \"shdw17\",\n shadow18: \"shdw18\",\n shadow19: \"shdw19\",\n shadow20: \"shdw20\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset material type (ST_PresetMaterialType)\n// Only the abbreviated ones need mapping; full-word values pass through.\n// ---------------------------------------------------------------------------\n\nexport const xsdMaterialType = bidi({\n legacyMatte: \"legacyMatte\",\n legacyPlastic: \"legacyPlastic\",\n legacyMetal: \"legacyMetal\",\n legacyWireframe: \"legacyWireframe\",\n matte: \"matte\",\n plastic: \"plastic\",\n metal: \"metal\",\n warmMatte: \"warmMatte\",\n translucentPowder: \"translucentPowder\",\n powder: \"powder\",\n darkEdge: \"dkEdge\",\n softEdge: \"softEdge\",\n clear: \"clear\",\n flat: \"flat\",\n softMetal: \"softmetal\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DrawingML — Preset pattern fill (ST_PresetPatternVal)\n// Only the abbreviated ones are mapped; values already using full words pass through.\n// ---------------------------------------------------------------------------\n\nexport const xsdPattern = bidi({\n percent5: \"pct5\",\n percent10: \"pct10\",\n percent20: \"pct20\",\n percent25: \"pct25\",\n percent30: \"pct30\",\n percent40: \"pct40\",\n percent50: \"pct50\",\n percent60: \"pct60\",\n percent70: \"pct70\",\n percent75: \"pct75\",\n percent80: \"pct80\",\n percent90: \"pct90\",\n horizontal: \"horz\",\n vertical: \"vert\",\n lightHorizontal: \"ltHorz\",\n lightVertical: \"ltVert\",\n darkHorizontal: \"dkHorz\",\n darkVertical: \"dkVert\",\n narrowHorizontal: \"narHorz\",\n narrowVertical: \"narVert\",\n dashedHorizontal: \"dashHorz\",\n dashedVertical: \"dashVert\",\n cross: \"cross\",\n downDiagonal: \"dnDiag\",\n upDiagonal: \"upDiag\",\n lightDownDiagonal: \"ltDnDiag\",\n lightUpDiagonal: \"ltUpDiag\",\n darkDownDiagonal: \"dkDnDiag\",\n darkUpDiagonal: \"dkUpDiag\",\n wideDownDiagonal: \"wdDnDiag\",\n wideUpDiagonal: \"wdUpDiag\",\n dashedDownDiagonal: \"dashDnDiag\",\n dashedUpDiagonal: \"dashUpDiag\",\n diagonalCross: \"diagCross\",\n smallChecker: \"smCheck\",\n largeChecker: \"lgCheck\",\n smallGrid: \"smGrid\",\n largeGrid: \"lgGrid\",\n dotGrid: \"dotGrid\",\n smallConfetti: \"smConfetti\",\n largeConfetti: \"lgConfetti\",\n horizontalBrick: \"horzBrick\",\n diagonalBrick: \"diagBrick\",\n solidDiamond: \"solidDmnd\",\n openDiamond: \"openDmnd\",\n dottedDiamond: \"dotDmnd\",\n plaid: \"plaid\",\n sphere: \"sphere\",\n weave: \"weave\",\n divot: \"divot\",\n shingle: \"shingle\",\n wave: \"wave\",\n trellis: \"trellis\",\n zigZag: \"zigZag\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// DOCX — Vertical merge revision (ST_VerticalMergeRestart)\n// ---------------------------------------------------------------------------\n\nexport const xsdVerticalMergeRev = bidi({\n continue: \"cont\",\n restart: \"rest\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Underline style (ST_TextUnderlineType, abbreviated subset)\n// ---------------------------------------------------------------------------\n\nexport const xsdUnderlineStyle = bidi({\n single: \"sng\",\n double: \"dbl\",\n none: \"none\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Strike style (ST_TextStrikeType)\n// ---------------------------------------------------------------------------\n\nexport const xsdStrikeStyle = bidi({\n singleStrike: \"sngStrike\",\n doubleStrike: \"dblStrike\",\n noStrike: \"noStrike\",\n} as const);\n\n// ---------------------------------------------------------------------------\n// PPTX — Text capitalization (ST_TextCapsType)\n// ---------------------------------------------------------------------------\n\nexport const xsdTextCaps = bidi({\n none: \"none\",\n all: \"all\",\n small: \"small\",\n} as const);\n","/**\n * OOXML unit conversion utilities.\n *\n * @module\n */\n\n// ---------------------------------------------------------------------------\n// TWIP conversions (1 TWIP = 1/20 point, used in WordprocessingML)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts millimeters to TWIP (twentieths of a point).\n */\nexport const convertMillimetersToTwip = (millimeters: number): number =>\n Math.floor((millimeters / 25.4) * 72 * 20);\n\n/**\n * Converts inches to TWIP (twentieths of a point).\n */\nexport const convertInchesToTwip = (inches: number): number => Math.floor(inches * 72 * 20);\n\n// ---------------------------------------------------------------------------\n// EMU conversions (English Metric Units, used in DrawingML)\n// 1 inch = 914400 EMU, 1 pixel (96 DPI) = 9525 EMU, 1 point = 12700 EMU\n// ---------------------------------------------------------------------------\n\n/**\n * Converts pixels to EMU (96 DPI).\n */\nexport const convertPixelsToEmu = (pixels: number): number => Math.round(pixels * 9525);\n\n/**\n * Converts EMU to pixels (96 DPI).\n *\n * Returns a possibly fractional (sub-pixel) value. The integer rounding that\n * lived here before permanently discarded sub-pixel precision, which made an\n * EMU → pixel → EMU round-trip lossy (e.g. 5521960 EMU → 580 px → 5524500 EMU).\n * Keeping the fraction lets convertPixelsToEmu restore the exact original EMU.\n * Callers needing an integer pixel for display should Math.round the result.\n */\nexport const convertEmuToPixels = (emus: number): number => emus / 9525;\n\n/**\n * Converts inches to EMU.\n */\nexport const convertInchesToEmu = (inches: number): number => Math.round(inches * 914400);\n\n/**\n * Converts EMU to inches.\n */\nexport const convertEmuToInches = (emus: number): number => emus / 914400;\n\n/**\n * Converts points to EMU.\n */\nexport const convertPointsToEmu = (points: number): number => Math.round(points * 12700);\n\n/**\n * Converts EMU to points.\n */\nexport const convertEmuToPoints = (emus: number): number => emus / 12700;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → Twips conversion\n// Used when numeric computation is needed (e.g., landscape width/height swap)\n// ---------------------------------------------------------------------------\n\n/** Parsed result of a UniversalMeasure string. */\ninterface ParsedMeasure {\n value: number;\n unit: \"mm\" | \"cm\" | \"in\" | \"pt\" | \"pc\" | \"pi\" | \"px\";\n}\n\n/**\n * Parse a UniversalMeasure string into its numeric value and unit.\n *\n * @param measure - A universal measure string like \"2.54cm\", \"-10mm\", \"1in\"\n * @returns The parsed value and unit\n * @throws Error if the format is invalid\n *\n * @example\n * ```typescript\n * parseUniversalMeasure(\"2.54cm\"); // { value: 2.54, unit: \"cm\" }\n * parseUniversalMeasure(\"-10mm\"); // { value: -10, unit: \"mm\" }\n * ```\n */\nexport const parseUniversalMeasure = (measure: string): ParsedMeasure => {\n const match = measure.match(/^(-?[0-9]+(?:\\.[0-9]+)?)(mm|cm|in|pt|pc|pi|px)$/);\n if (!match) {\n throw new Error(`Invalid universal measure: '${measure}'`);\n }\n const [, value, unit] = match;\n if (value === undefined || unit === undefined) {\n throw new Error(`Invalid universal measure: '${measure}'`);\n }\n return { value: parseFloat(value), unit: unit as ParsedMeasure[\"unit\"] };\n};\n\n/**\n * Converts a UniversalMeasure string to TWIP (twentieths of a point).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc).\n *\n * @param measure - A universal measure string like \"2.54cm\", \"1in\", \"12pt\"\n * @returns The value in TWIP\n *\n * @example\n * ```typescript\n * convertUniversalMeasureToTwip(\"1in\"); // 1440\n * convertUniversalMeasureToTwip(\"2.54cm\"); // ~1440 (1 inch)\n * convertUniversalMeasureToTwip(\"72pt\"); // 1440 (1 inch = 72pt = 1440 twips)\n * ```\n */\nexport const convertUniversalMeasureToTwip = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return convertMillimetersToTwip(value);\n case \"cm\":\n return convertMillimetersToTwip(value * 10);\n case \"in\":\n return convertInchesToTwip(value);\n case \"pt\":\n return Math.floor(value * 20); // 1 point = 20 twips\n case \"pc\":\n case \"pi\":\n return Math.floor(value * 12 * 20); // 1 pica = 12 points = 240 twips\n case \"px\":\n return Math.round(value * 15); // 1px = 15twip (1in = 1440twip = 96px)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to TWIP.\n *\n * If the value is already a number, it is returned as-is (assumed to be in twips).\n * If the value is a UniversalMeasure string, it is converted to twips.\n *\n * Useful for accepting both `number` and `UniversalMeasure` inputs where\n * the XSD type is a union (e.g., ST_TwipsMeasure, ST_SignedTwipsMeasure).\n *\n * @param val - A numeric twip value or a universal measure string\n * @returns The value in TWIP\n *\n * @example\n * ```typescript\n * convertToTwip(1440); // 1440 (already twips)\n * convertToTwip(\"1in\"); // 1440\n * convertToTwip(\"2.54cm\"); // ~1440\n * ```\n */\nexport const convertToTwip = (val: number | string): number =>\n typeof val === \"string\" ? convertUniversalMeasureToTwip(val) : val;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → EMU conversion\n// Used in DrawingML (PPTX shapes, images, etc.)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts a UniversalMeasure string to EMU (English Metric Units).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc).\n *\n * @param measure - A universal measure string like \"2.54cm\", \"1in\", \"12pt\"\n * @returns The value in EMU\n *\n * @example\n * ```typescript\n * convertUniversalMeasureToEmu(\"1in\"); // 914400\n * convertUniversalMeasureToEmu(\"2.54cm\"); // 914400\n * convertUniversalMeasureToEmu(\"12pt\"); // 152400\n * ```\n */\nexport const convertUniversalMeasureToEmu = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return Math.round(value * 36000);\n case \"cm\":\n return Math.round(value * 360000);\n case \"in\":\n return convertInchesToEmu(value);\n case \"pt\":\n return convertPointsToEmu(value);\n case \"pc\":\n case \"pi\":\n return convertPointsToEmu(value * 12); // 1 pica = 12 points\n case \"px\":\n return convertPixelsToEmu(value); // 1px = 9525 EMU (96 DPI)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to EMU.\n *\n * Numbers are returned as-is (assumed EMU). Strings are parsed as\n * UniversalMeasure via {@link convertUniversalMeasureToEmu} — including the\n * project-only `px` unit (96 DPI). The result is always an EMU number written to\n * XML, so px never appears verbatim in the document.\n *\n * Useful for DrawingML fields where the XSD type is a union (e.g., ST_Coordinate).\n *\n * @param val - A numeric EMU value, or a UniversalMeasure string (incl. `${n}px`)\n * @returns The value in EMU\n *\n * @example\n * ```typescript\n * convertToEmu(914400); // 914400 (already EMU)\n * convertToEmu(\"1in\"); // 914400\n * convertToEmu(\"2.54cm\"); // 914400\n * convertToEmu(\"200px\"); // 1905000 (200 * 9525)\n * ```\n */\nexport const convertToEmu = (val: number | string): number =>\n typeof val === \"string\" ? convertUniversalMeasureToEmu(val) : val;\n\n// ---------------------------------------------------------------------------\n// UniversalMeasure → Points / Inches conversion\n// Used in SpreadsheetML (row height in points, page margins in inches)\n// ---------------------------------------------------------------------------\n\n/**\n * Converts a UniversalMeasure string to points (1pt = 1/72 inch).\n *\n * Supports units: mm, cm, in, pt, pc (picas, 1pc = 12pt), pi (alias for pc),\n * px (96 DPI).\n */\nexport const convertUniversalMeasureToPt = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return (value / 25.4) * 72;\n case \"cm\":\n return ((value * 10) / 25.4) * 72;\n case \"in\":\n return value * 72;\n case \"pt\":\n return value;\n case \"pc\":\n case \"pi\":\n return value * 12; // 1 pica = 12 points\n case \"px\":\n return (value / 96) * 72; // 1px = 0.75pt (96 DPI)\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to points.\n *\n * Numbers are returned as-is (assumed to be in points). Strings are parsed as\n * UniversalMeasure. Useful for SpreadsheetML fields where a number is points.\n */\nexport const convertToPt = (val: number | string): number =>\n typeof val === \"string\" ? convertUniversalMeasureToPt(val) : val;\n\n/**\n * Converts a UniversalMeasure string to inches.\n *\n * Supports units: mm, cm, in, pt, pc, pi, px (96 DPI).\n */\nexport const convertUniversalMeasureToInch = (measure: string): number => {\n const { value, unit } = parseUniversalMeasure(measure);\n switch (unit) {\n case \"mm\":\n return value / 25.4;\n case \"cm\":\n return (value * 10) / 25.4;\n case \"in\":\n return value;\n case \"pt\":\n return value / 72;\n case \"pc\":\n case \"pi\":\n return (value * 12) / 72;\n case \"px\":\n return value / 96;\n }\n};\n\n/**\n * Converts a measurement value (number or UniversalMeasure) to inches.\n *\n * Numbers are returned as-is (assumed to be in inches). Useful for SpreadsheetML\n * page-margin fields where a number is inches.\n */\nexport const convertToInch = (val: number | string): number =>\n typeof val === \"string\" ? convertUniversalMeasureToInch(val) : val;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -1,2 +0,0 @@
1
- import { $ as createLineColorList, $n as createReflectionEffect, $r as createSourceRectangle, $t as TableStyleListOptions, A as scRgbColorDesc, An as createShape3D, Ar as PresetPattern, At as PresentationLayoutVariablesOptions, B as createDiagramTextProperties, Bn as SphereCoords, Br as GradientShadeOptions, Bt as GraphicFrameLockingOptions, C as fillDesc, Cn as createCustomGeometry, Cr as LineEndType, Ct as AnimationLevelOptions, D as parseColorChoice, Dn as stringifyAdjustmentValues, Dr as createCustomDash, Dt as MaxChildrenOptions, E as hslColorDesc, En as GeometryGuide, Er as DashStop, Et as HierBranchStyle, F as DiagramExtensionListOptions, Fn as BackdropOptions, Fr as FillOptions, Ft as createHierBranch, G as DiagramStyleLabelOptions, Gn as EffectDagOptions, Gr as RelativeRect, Gt as createGroupLocking, H as createDiagramRelationshipIds, Hn as createScene3D, Hr as LinearShadeOptions, Ht as PictureLockingOptions, I as DiagramExtensionOptions, In as CameraOptions, Ir as GradientStopOptions, It as createMaxChildren, J as HueDirection, Jn as EffectExtent, Jr as createGradientStop, Jt as OnOffStyleType, K as DiagramStyleOptions, Kn as createEffectDag, Kr as TileFlipMode, Kt as createPictureLocking, L as DiagramTextPropertiesOptions, Ln as LightRigOptions, Lr as buildFill, Lt as createOrgChart, M as solidFillDesc, Mn as BevelPresetType, Mr as createNoFill, Mt as createAdjustList, N as stringifyColorChoice, Nn as createBevel, Nr as BlipFillConfigOptions, Nt as createAnimateOneByOne, O as presetColorDesc, On as PresetMaterialType, Or as createGroupFill, Ot as OrgChartOptions, P as systemColorDesc, Pn as createBottomBevel, Pr as BlipFillMediaData, Pt as createAnimationLevel, Q as createFillColorList, Qn as ReflectionEffectOptions, Qr as SourceRectangleOptions, Qt as TablePartStyleOptions, R as createDiagramExtensionList, Rn as Point3D, Rr as extractBlipFillMedia, Rt as createPreferredChildren, S as outlineDesc, Sn as PathOptions, Sr as LineEndOptions, St as AnimateOneByOneValue, T as patternFillDesc, Tn as stringifyPresetGeometry, Tr as createLineEnd, Tt as HierBranchOptions, U as ColorListOptions, Un as createSoftEdgeEffect, Ur as PathShadeOptions, Ut as ShapeLockingOptions, V as DiagramRelationshipIdsOptions, Vn as Vector3D, Vr as GradientStop, Vt as GroupLockingOptions, W as ColorMethod, Wn as EffectContainerType, Wr as PathShadeType, Wt as createGraphicFrameLocking, X as createDiagramStyle, Xn as calculateEffectExtent, Xr as TileOptions, Xt as TableCellBorderOptions, Y as StyleMatrixIndex, Yn as EffectListOptions, Yr as TileAlignment, Yt as StyleMatrixReferenceOptions, Z as createEffectColorList, Zn as createEffectList, Zr as createTileInfo, Zt as TableCellStyleOptions, _ as graphicFrameLockingDesc, _i as createPresetColor, _n as ConnectionSite, _r as OutlineOptions, _t as createStyleDefinitionHeader, a as blipDesc, ai as SystemColor, an as createTableStyleList, ar as createOuterShadowEffect, at as ColorsDefinitionHeaderOptions, b as shapeLockingDesc, bi as ColorTransformOptions, bn as PathCommand, br as createOutline, bt as AdjustOptions, c as stretchDesc, ci as SchemeColor, cn as Transform2DOptions, cr as GlowEffectOptions, ct as DiagramNameOptions, d as scene3DDesc, di as ScRgbColorOptions, dn as stringifyStretch, dr as FillOverlayEffectOptions, dt as StyleDefinitionHeaderListOptions, ei as BlipEffectsOptions, en as TableStyleOptions, er as PresetShadowEffectOptions, et as createStyleLabel, f as shape3DDesc, fi as createScRgbColor, fn as createExtensionList, fr as createFillOverlayEffect, ft as StyleDefinitionHeaderOptions, g as presetGeometryDesc, gi as PresetColorOptions, gn as createBlip, gr as OutlineFillProperties, gt as createLayoutDefinitionHeaderList, h as customGeometryDesc, hi as PresetColor, hn as BlipOptions, hr as LineJoin, ht as createLayoutDefinitionHeader, i as presentationLayoutVariablesDesc, ii as createSolidFill, in as createTableStyle, ir as RectAlignment, it as ColorsDefinitionHeaderListOptions, j as schemeColorDesc, jn as BevelOptions, jr as createPatternFill, jt as createAdjust, k as rgbColorDesc, kn as Shape3DOptions, kr as PatternFillOptions, kt as PreferredChildrenOptions, l as tileDesc, li as SchemeColorOptions, ln as createGroupTransform2D, lr as createGlowEffect, lt as LayoutDefinitionHeaderListOptions, m as transform2DDesc, mi as createRgbColor, mn as createBlipFill, mr as LineCap, mt as createColorsDefinitionHeaderList, n as diagramRelationshipIdsDesc, ni as SolidFillOptions, nn as TableTextStyleOptions, nr as createPresetShadowEffect, nt as createTextFillColorList, o as blipFillDesc, oi as SystemColorOptions, on as parseTableStyleList, or as InnerShadowEffectOptions, ot as DiagramCategoryOptions, p as groupTransform2DDesc, pi as RgbColorOptions, pn as BlipFillOptions, pr as CompoundLine, pt as createColorsDefinitionHeader, q as FontCollectionIndex, qn as BlurEffectOptions, qr as createGradientFill, qt as createShapeLocking, r as diagramStyleDesc, ri as createColorElement, rn as ThemeableLineStyleOptions, rr as OuterShadowEffectOptions, rt as createTextLineColorList, s as sourceRectangleDesc, si as createSystemColor, sn as GroupTransform2DOptions, sr as createInnerShadowEffect, st as DiagramDescriptionOptions, t as diagramExtensionListDesc, ti as createBlipEffects, tn as TableStyleRegion, tr as PresetShadowVal, tt as createTextEffectColorList, u as bevelDesc, ui as createSchemeColor, un as createTransform2D, ur as BlendMode, ut as LayoutDefinitionHeaderOptions, v as groupLockingDesc, vi as HslColorOptions, vn as CustomGeometryOptions, vr as PenAlignment, vt as createStyleDefinitionHeaderList, w as gradientFillDesc, wn as PresetGeometryOptions, wr as LineEndWidth, wt as AnimationLevelValue, x as effectListDesc, xi as createColorTransforms, xn as PathFillMode, xr as LineEndLength, xt as AnimateOneByOneOptions, y as pictureLockingDesc, yi as createHslColor, yn as GeomRect, yr as PresetDash, yt as AdjustListOptions, z as createDiagramShape3D, zn as Scene3DOptions, zr as GradientFillOptions, zt as createPresentationLayoutVariables } from "../index-CE53SwpZ.mjs";
2
- export { type AdjustListOptions, type AdjustOptions, type AnimateOneByOneOptions, AnimateOneByOneValue, type AnimationLevelOptions, AnimationLevelValue, type BackdropOptions, type BevelOptions, BevelPresetType, BlendMode, type BlipEffectsOptions, type BlipFillConfigOptions, type BlipFillMediaData, type BlipFillOptions, type BlipOptions, type BlurEffectOptions, type CameraOptions, type ColorListOptions, ColorMethod, type ColorTransformOptions, type ColorsDefinitionHeaderListOptions, type ColorsDefinitionHeaderOptions, CompoundLine, type ConnectionSite, type CustomGeometryOptions, type DashStop, type DiagramCategoryOptions, type DiagramDescriptionOptions, type DiagramExtensionListOptions, type DiagramExtensionOptions, type DiagramNameOptions, type DiagramRelationshipIdsOptions, type DiagramStyleLabelOptions, type DiagramStyleOptions, type DiagramTextPropertiesOptions, type EffectContainerType, type EffectDagOptions, type EffectExtent, type EffectListOptions, type FillOptions, type FillOverlayEffectOptions, FontCollectionIndex, type GeomRect, type GeometryGuide, type GlowEffectOptions, type GradientFillOptions, type GradientShadeOptions, type GradientStop, type GradientStopOptions, type GraphicFrameLockingOptions, type GroupLockingOptions, type GroupTransform2DOptions, type HierBranchOptions, HierBranchStyle, type HslColorOptions, HueDirection, type InnerShadowEffectOptions, type LayoutDefinitionHeaderListOptions, type LayoutDefinitionHeaderOptions, type LightRigOptions, LineCap, LineEndLength, type LineEndOptions, LineEndType, LineEndWidth, LineJoin, type LinearShadeOptions, type MaxChildrenOptions, type OnOffStyleType, type OrgChartOptions, type OuterShadowEffectOptions, type OutlineFillProperties, type OutlineOptions, type PathCommand, type PathFillMode, type PathOptions, type PathShadeOptions, PathShadeType, type PatternFillOptions, PenAlignment, type PictureLockingOptions, type Point3D, type PreferredChildrenOptions, type PresentationLayoutVariablesOptions, PresetColor, type PresetColorOptions, PresetDash, type PresetGeometryOptions, PresetMaterialType, PresetPattern, type PresetShadowEffectOptions, PresetShadowVal, RectAlignment, type ReflectionEffectOptions, type RelativeRect, type RgbColorOptions, type ScRgbColorOptions, type Scene3DOptions, SchemeColor, type SchemeColorOptions, type Shape3DOptions, type ShapeLockingOptions, type SolidFillOptions, type SourceRectangleOptions, type SphereCoords, type StyleDefinitionHeaderListOptions, type StyleDefinitionHeaderOptions, StyleMatrixIndex, type StyleMatrixReferenceOptions, SystemColor, type SystemColorOptions, type TableCellBorderOptions, type TableCellStyleOptions, type TablePartStyleOptions, type TableStyleListOptions, type TableStyleOptions, type TableStyleRegion, type TableTextStyleOptions, type ThemeableLineStyleOptions, TileAlignment, TileFlipMode, type TileOptions, type Transform2DOptions, type Vector3D, bevelDesc, blipDesc, blipFillDesc, buildFill, calculateEffectExtent, createAdjust, createAdjustList, createAnimateOneByOne, createAnimationLevel, createBevel, createBlip, createBlipEffects, createBlipFill, createBottomBevel, createColorElement, createColorTransforms, createColorsDefinitionHeader, createColorsDefinitionHeaderList, createCustomDash, createCustomGeometry, createDiagramExtensionList, createDiagramRelationshipIds, createDiagramShape3D, createDiagramStyle, createDiagramTextProperties, createEffectColorList, createEffectDag, createEffectList, createExtensionList, createFillColorList, createFillOverlayEffect, createGlowEffect, createGradientFill, createGradientStop, createGraphicFrameLocking, createGroupFill, createGroupLocking, createGroupTransform2D, createHierBranch, createHslColor, createInnerShadowEffect, createLayoutDefinitionHeader, createLayoutDefinitionHeaderList, createLineColorList, createLineEnd, createMaxChildren, createNoFill, createOrgChart, createOuterShadowEffect, createOutline, createPatternFill, createPictureLocking, createPreferredChildren, createPresentationLayoutVariables, createPresetColor, createPresetShadowEffect, createReflectionEffect, createRgbColor, createScRgbColor, createScene3D, createSchemeColor, createShape3D, createShapeLocking, createSoftEdgeEffect, createSolidFill, createSourceRectangle, createStyleDefinitionHeader, createStyleDefinitionHeaderList, createStyleLabel, createSystemColor, createTableStyle, createTableStyleList, createTextEffectColorList, createTextFillColorList, createTextLineColorList, createTileInfo, createTransform2D, customGeometryDesc, diagramExtensionListDesc, diagramRelationshipIdsDesc, diagramStyleDesc, effectListDesc, extractBlipFillMedia, fillDesc, gradientFillDesc, graphicFrameLockingDesc, groupLockingDesc, groupTransform2DDesc, hslColorDesc, outlineDesc, parseColorChoice, parseTableStyleList, patternFillDesc, pictureLockingDesc, presentationLayoutVariablesDesc, presetColorDesc, presetGeometryDesc, rgbColorDesc, scRgbColorDesc, scene3DDesc, schemeColorDesc, shape3DDesc, shapeLockingDesc, solidFillDesc, sourceRectangleDesc, stretchDesc, stringifyAdjustmentValues, stringifyColorChoice, stringifyPresetGeometry, stringifyStretch, systemColorDesc, tileDesc, transform2DDesc };
@@ -1,2 +0,0 @@
1
- import { $ as createLayoutDefinitionHeader, $t as PenAlignment, A as scRgbColorDesc, An as createPresetColor, At as stringifyAdjustmentValues, B as FontCollectionIndex, Bt as createSoftEdgeEffect, C as sourceRectangleDesc, Cn as SystemColor, Ct as createTransform2D, D as parseColorChoice, Dn as createScRgbColor, Dt as createExtensionList, E as hslColorDesc, En as createSchemeColor, Et as createBlip, F as createDiagramExtensionList, Ft as createBottomBevel, G as createFillColorList, Gt as createOuterShadowEffect, H as StyleMatrixIndex, Ht as PresetShadowVal, I as createDiagramShape3D, It as createScene3D, J as createTextEffectColorList, Jt as BlendMode, K as createLineColorList, Kt as createInnerShadowEffect, L as createDiagramTextProperties, Lt as createEffectDag, M as solidFillDesc, Mn as createColorTransforms, Mt as createShape3D, N as stringifyColorChoice, Nt as BevelPresetType, O as presetColorDesc, On as createRgbColor, Ot as createCustomGeometry, P as systemColorDesc, Pt as createBevel, Q as createColorsDefinitionHeaderList, Qt as LineJoin, R as createDiagramRelationshipIds, Rt as calculateEffectExtent, S as blipFillDesc, Sn as createSolidFill, St as createGroupTransform2D, T as tileDesc, Tn as SchemeColor, Tt as createBlipFill, U as createDiagramStyle, Ut as createPresetShadowEffect, V as HueDirection, Vt as createReflectionEffect, W as createEffectColorList, Wt as RectAlignment, X as createTextLineColorList, Xt as CompoundLine, Y as createTextFillColorList, Yt as createFillOverlayEffect, Z as createColorsDefinitionHeader, Zt as LineCap, _ as outlineDesc, _n as TileAlignment, _t as createPictureLocking, a as bevelDesc, an as createLineEnd, at as HierBranchStyle, b as patternFillDesc, bn as createBlipEffects, bt as createTableStyleList, c as groupTransform2DDesc, cn as createNoFill, ct as createAnimateOneByOne, d as presetGeometryDesc, dn as PresetPattern, dt as createMaxChildren, en as PresetDash, et as createLayoutDefinitionHeaderList, f as graphicFrameLockingDesc, fn as createPatternFill, ft as createOrgChart, g as effectListDesc, gn as createGradientStop, gt as createGroupLocking, h as shapeLockingDesc, hn as createGradientFill, ht as createGraphicFrameLocking, i as presentationLayoutVariablesDesc, in as LineEndWidth, it as AnimationLevelValue, j as schemeColorDesc, jn as createHslColor, jt as PresetMaterialType, k as rgbColorDesc, kn as PresetColor, kt as stringifyPresetGeometry, l as transform2DDesc, ln as buildFill, lt as createAnimationLevel, m as pictureLockingDesc, mn as TileFlipMode, mt as createPresentationLayoutVariables, n as diagramRelationshipIdsDesc, nn as LineEndLength, nt as createStyleDefinitionHeaderList, o as scene3DDesc, on as createCustomDash, ot as createAdjust, p as groupLockingDesc, pn as PathShadeType, pt as createPreferredChildren, q as createStyleLabel, qt as createGlowEffect, r as diagramStyleDesc, rn as LineEndType, rt as AnimateOneByOneValue, s as shape3DDesc, sn as createGroupFill, st as createAdjustList, t as diagramExtensionListDesc, tn as createOutline, tt as createStyleDefinitionHeader, u as customGeometryDesc, un as extractBlipFillMedia, ut as createHierBranch, v as fillDesc, vn as createTileInfo, vt as createShapeLocking, w as stretchDesc, wn as createSystemColor, wt as stringifyStretch, x as blipDesc, xn as createColorElement, xt as parseTableStyleList, y as gradientFillDesc, yn as createSourceRectangle, yt as createTableStyle, z as ColorMethod, zt as createEffectList } from "../drawingml-sj1J3lb0.mjs";
2
- export { AnimateOneByOneValue, AnimationLevelValue, BevelPresetType, BlendMode, ColorMethod, CompoundLine, FontCollectionIndex, HierBranchStyle, HueDirection, LineCap, LineEndLength, LineEndType, LineEndWidth, LineJoin, PathShadeType, PenAlignment, PresetColor, PresetDash, PresetMaterialType, PresetPattern, PresetShadowVal, RectAlignment, SchemeColor, StyleMatrixIndex, SystemColor, TileAlignment, TileFlipMode, bevelDesc, blipDesc, blipFillDesc, buildFill, calculateEffectExtent, createAdjust, createAdjustList, createAnimateOneByOne, createAnimationLevel, createBevel, createBlip, createBlipEffects, createBlipFill, createBottomBevel, createColorElement, createColorTransforms, createColorsDefinitionHeader, createColorsDefinitionHeaderList, createCustomDash, createCustomGeometry, createDiagramExtensionList, createDiagramRelationshipIds, createDiagramShape3D, createDiagramStyle, createDiagramTextProperties, createEffectColorList, createEffectDag, createEffectList, createExtensionList, createFillColorList, createFillOverlayEffect, createGlowEffect, createGradientFill, createGradientStop, createGraphicFrameLocking, createGroupFill, createGroupLocking, createGroupTransform2D, createHierBranch, createHslColor, createInnerShadowEffect, createLayoutDefinitionHeader, createLayoutDefinitionHeaderList, createLineColorList, createLineEnd, createMaxChildren, createNoFill, createOrgChart, createOuterShadowEffect, createOutline, createPatternFill, createPictureLocking, createPreferredChildren, createPresentationLayoutVariables, createPresetColor, createPresetShadowEffect, createReflectionEffect, createRgbColor, createScRgbColor, createScene3D, createSchemeColor, createShape3D, createShapeLocking, createSoftEdgeEffect, createSolidFill, createSourceRectangle, createStyleDefinitionHeader, createStyleDefinitionHeaderList, createStyleLabel, createSystemColor, createTableStyle, createTableStyleList, createTextEffectColorList, createTextFillColorList, createTextLineColorList, createTileInfo, createTransform2D, customGeometryDesc, diagramExtensionListDesc, diagramRelationshipIdsDesc, diagramStyleDesc, effectListDesc, extractBlipFillMedia, fillDesc, gradientFillDesc, graphicFrameLockingDesc, groupLockingDesc, groupTransform2DDesc, hslColorDesc, outlineDesc, parseColorChoice, parseTableStyleList, patternFillDesc, pictureLockingDesc, presentationLayoutVariablesDesc, presetColorDesc, presetGeometryDesc, rgbColorDesc, scRgbColorDesc, scene3DDesc, schemeColorDesc, shape3DDesc, shapeLockingDesc, solidFillDesc, sourceRectangleDesc, stretchDesc, stringifyAdjustmentValues, stringifyColorChoice, stringifyPresetGeometry, stringifyStretch, systemColorDesc, tileDesc, transform2DDesc };