8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
139 lines
4.8 KiB
JSON
139 lines
4.8 KiB
JSON
{
|
|
"$schema": "../_schema.json",
|
|
"format": "pptx",
|
|
"element": "chart",
|
|
"operations": {
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"query": true,
|
|
"remove": true
|
|
},
|
|
"paths": {
|
|
"stable": [
|
|
"/slide[N]/chart[@id=ID]"
|
|
],
|
|
"positional": [
|
|
"/slide[N]/chart[N]"
|
|
]
|
|
},
|
|
"note": "source of truth: Core/Chart/ChartHelper.cs ParseChartType() for the classic (c:chart) family, Core/Chart/ChartExBuilder.cs IsExtendedChartType() for the extended (cx:chart) family. Adding a new chartType value MUST update both the handler and this file in the same PR — contract tests enforce equivalence. Axis configuration: chart-level axis* props (axismin, axismax, axistitle, axisfont, ...) are Add-time only; for post-creation axis Set/Get use the chart-axis element.",
|
|
"children": [
|
|
{
|
|
"element": "chart-title",
|
|
"pathSegment": "title",
|
|
"cardinality": "0..1"
|
|
},
|
|
{
|
|
"element": "chart-legend",
|
|
"pathSegment": "legend",
|
|
"cardinality": "0..1"
|
|
},
|
|
{
|
|
"element": "chart-plotArea",
|
|
"pathSegment": "plotArea",
|
|
"cardinality": "0..1"
|
|
},
|
|
{
|
|
"element": "chart-axis",
|
|
"pathSegment": "axis",
|
|
"cardinality": "0..n",
|
|
"key": "role",
|
|
"keyValues": [
|
|
"category",
|
|
"value",
|
|
"value2",
|
|
"series"
|
|
],
|
|
"appliesWhen": {
|
|
"chartType": [
|
|
"bar",
|
|
"column",
|
|
"line",
|
|
"area",
|
|
"scatter",
|
|
"bubble",
|
|
"radar",
|
|
"stock",
|
|
"combo"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"element": "chart-series",
|
|
"pathSegment": "series",
|
|
"cardinality": "1..n"
|
|
}
|
|
],
|
|
"extends": [
|
|
"_shared/chart",
|
|
"_shared/chart.docx-pptx",
|
|
"_shared/chart.pptx-xlsx"
|
|
],
|
|
"properties": {
|
|
"direction": {
|
|
"type": "string",
|
|
"aliases": [
|
|
"rtl"
|
|
],
|
|
"add": false,
|
|
"set": true,
|
|
"get": false,
|
|
"examples": [
|
|
"--prop direction=rtl"
|
|
],
|
|
"readback": "rtl|ltr",
|
|
"description": "Chart-level reading direction. rtl stamps a:rtl=\"1\" on chartSpace c:txPr lvl1pPr so default text bodies (axis labels, data labels) render right-to-left for Arabic / Hebrew."
|
|
},
|
|
"id": {
|
|
"type": "number",
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"description": "cNvPr chart id; @id in /chart[@id=ID]. add honors a caller-supplied id so dump-replay keeps it stable for spTgt animation refs; immutable after creation.",
|
|
"readback": "integer chart shape id",
|
|
"enforcement": "report"
|
|
},
|
|
"zorder": {
|
|
"type": "number",
|
|
"description": "1-based z-order in slide shape tree. On add, positions the chart within the shape tree (1 = back). Post-creation reordering is not supported via Set; use Move/Swap on the chart graphic frame, or raw-set the spTree child order.",
|
|
"aliases": ["z-order", "order"],
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"examples": ["--prop zorder=1"],
|
|
"readback": "1-based integer (1 = back)",
|
|
"enforcement": "report"
|
|
},
|
|
"chartType": {
|
|
"type": "enum",
|
|
"values": [
|
|
"bar", "column", "line", "pie", "doughnut", "area",
|
|
"scatter", "bubble", "radar", "stock", "combo",
|
|
"waterfall", "funnel", "treemap", "sunburst",
|
|
"boxWhisker", "histogram", "pareto"
|
|
],
|
|
"description": "pptx override: chartType is consumed by AddChart (creation only). Switching chart type post-creation is not supported — rebuild the chart with the new type. INPUT is lenient and accepts friendly aliases (stackedArea, bar3D, percentStackedColumn, stackedLine, percentStackedBar, ...) which round-trip correctly. READBACK (Get) is intentionally NOT symmetric with input: it returns the systematic `base_modifier` token form — e.g. area_stacked, area_percentStacked, bar_stacked, bar_percentStacked, bar3d, column_stacked, column_percentStacked, line_stacked, line_percentStacked, pieOfPie, barOfPie. This canonical-readback form is by design (one systematic token per geometry); do not expect the readback to echo the friendly input alias.",
|
|
"aliases": ["type"],
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"examples": ["--prop chartType=column", "--prop chartType=stackedArea # readback: area_stacked", "--prop chartType=bar3D # readback: bar3d"],
|
|
"readback": "systematic base_modifier token (e.g. area_stacked, bar_percentStacked, column_stacked, line_stacked, bar3d, pieOfPie, barOfPie) — NOT the friendly input alias",
|
|
"enforcement": "report"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"description": "shape name (DocProperties.Name).",
|
|
"examples": [
|
|
"--prop name=\"Sales Chart\""
|
|
],
|
|
"readback": "shape name string",
|
|
"enforcement": "report"
|
|
}
|
|
}
|
|
}
|