759 lines
32 KiB
JSON
759 lines
32 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://example.com/pptx-presentation.schema.json",
|
|
"title": "PPTX Presentation Schema",
|
|
"description": "JSON Schema for PPTX presentation intermediate representation covering all pptxgenjs parameters",
|
|
"type": "object",
|
|
"definitions": {
|
|
"coord": {
|
|
"oneOf": [
|
|
{ "type": "number" },
|
|
{ "type": "string", "pattern": "^\\d+(\\.\\d+)?%$" }
|
|
],
|
|
"description": "Coordinate value in inches (number) or percentage (e.g. '50%')"
|
|
},
|
|
"hexColor": {
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Fa-f]{6}$",
|
|
"description": "6-digit hex color without # prefix"
|
|
},
|
|
"themeColor": {
|
|
"type": "string",
|
|
"enum": ["tx1", "tx2", "bg1", "bg2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6"],
|
|
"description": "PowerPoint theme/scheme color"
|
|
},
|
|
"color": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/hexColor" },
|
|
{ "$ref": "#/definitions/themeColor" }
|
|
],
|
|
"description": "Color value: hex string or theme color"
|
|
},
|
|
"margin": {
|
|
"oneOf": [
|
|
{ "type": "number" },
|
|
{ "type": "array", "items": { "type": "number" }, "minItems": 4, "maxItems": 4 }
|
|
],
|
|
"description": "Margin in points: single value or [top, right, bottom, left]"
|
|
},
|
|
"position": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": { "$ref": "#/definitions/coord" },
|
|
"y": { "$ref": "#/definitions/coord" },
|
|
"w": { "$ref": "#/definitions/coord" },
|
|
"h": { "$ref": "#/definitions/coord" }
|
|
},
|
|
"description": "Position and size properties"
|
|
},
|
|
"dataOrPath": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": { "type": "string", "description": "URL or local file path" },
|
|
"data": { "type": "string", "description": "Base64-encoded data" }
|
|
}
|
|
},
|
|
"borderProps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["none", "dash", "solid"] },
|
|
"color": { "$ref": "#/definitions/hexColor" },
|
|
"pt": { "type": "number", "description": "Border width in points" }
|
|
},
|
|
"description": "Border properties"
|
|
},
|
|
"shapeFill": {
|
|
"type": "object",
|
|
"properties": {
|
|
"color": { "$ref": "#/definitions/color" },
|
|
"transparency": { "type": "number", "minimum": 0, "maximum": 100, "description": "Fill transparency percent" },
|
|
"type": { "type": "string", "enum": ["none", "solid"] }
|
|
},
|
|
"description": "Shape fill properties"
|
|
},
|
|
"shapeLine": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/shapeFill" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"width": { "type": "number", "description": "Line width in points" },
|
|
"dashType": { "type": "string", "enum": ["solid", "dash", "dashDot", "lgDash", "lgDashDot", "lgDashDotDot", "sysDash", "sysDot"] },
|
|
"beginArrowType": { "type": "string", "enum": ["none", "arrow", "diamond", "oval", "stealth", "triangle"] },
|
|
"endArrowType": { "type": "string", "enum": ["none", "arrow", "diamond", "oval", "stealth", "triangle"] }
|
|
}
|
|
}
|
|
],
|
|
"description": "Shape line/border properties"
|
|
},
|
|
"shadow": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["outer", "inner", "none"] },
|
|
"opacity": { "type": "number", "minimum": 0, "maximum": 1, "description": "Shadow opacity (0.0-1.0)" },
|
|
"blur": { "type": "number", "minimum": 0, "maximum": 100, "description": "Shadow blur in points" },
|
|
"angle": { "type": "number", "minimum": 0, "maximum": 359, "description": "Shadow angle in degrees" },
|
|
"offset": { "type": "number", "minimum": 0, "maximum": 200, "description": "Shadow offset in points" },
|
|
"color": { "$ref": "#/definitions/hexColor" },
|
|
"rotateWithShape": { "type": "boolean" }
|
|
},
|
|
"required": ["type"],
|
|
"description": "Shadow properties"
|
|
},
|
|
"hyperlink": {
|
|
"type": "object",
|
|
"properties": {
|
|
"slide": { "type": "integer", "description": "Slide number to link to" },
|
|
"url": { "type": "string", "description": "URL to link to" },
|
|
"tooltip": { "type": "string" }
|
|
},
|
|
"description": "Hyperlink properties"
|
|
},
|
|
"textBaseProps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"align": { "type": "string", "enum": ["left", "center", "right", "justify"] },
|
|
"bold": { "type": "boolean" },
|
|
"breakLine": { "type": "boolean" },
|
|
"bullet": {
|
|
"oneOf": [
|
|
{ "type": "boolean" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["bullet", "number"] },
|
|
"characterCode": { "type": "string" },
|
|
"indent": { "type": "number" },
|
|
"numberType": {
|
|
"type": "string",
|
|
"enum": ["alphaLcParenBoth", "alphaLcParenR", "alphaLcPeriod", "alphaUcParenBoth", "alphaUcParenR", "alphaUcPeriod", "arabicParenBoth", "arabicParenR", "arabicPeriod", "arabicPlain", "romanLcParenBoth", "romanLcParenR", "romanLcPeriod", "romanUcParenBoth", "romanUcParenR", "romanUcPeriod"]
|
|
},
|
|
"numberStartAt": { "type": "number" }
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"color": { "$ref": "#/definitions/color" },
|
|
"fontFace": { "type": "string" },
|
|
"fontSize": { "type": "number" },
|
|
"highlight": { "$ref": "#/definitions/hexColor" },
|
|
"italic": { "type": "boolean" },
|
|
"lang": { "type": "string" },
|
|
"textDirection": { "type": "string", "enum": ["horz", "vert", "vert270", "wordArtVert"] },
|
|
"transparency": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
"underline": {
|
|
"type": "object",
|
|
"properties": {
|
|
"style": {
|
|
"type": "string",
|
|
"enum": ["dash", "dashHeavy", "dashLong", "dashLongHeavy", "dbl", "dotDash", "dotDashHeave", "dotDotDash", "dotDotDashHeavy", "dotted", "dottedHeavy", "heavy", "none", "sng", "wavy", "wavyDbl", "wavyHeavy"]
|
|
},
|
|
"color": { "$ref": "#/definitions/color" }
|
|
}
|
|
},
|
|
"valign": { "type": "string", "enum": ["top", "middle", "bottom"] },
|
|
"softBreakBefore": { "type": "boolean" },
|
|
"tabStops": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"position": { "type": "number" },
|
|
"alignment": { "type": "string", "enum": ["l", "r", "ctr", "dec"] }
|
|
},
|
|
"required": ["position"]
|
|
}
|
|
}
|
|
},
|
|
"description": "Base text properties shared by text objects and table cells"
|
|
},
|
|
"textOptions": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/textBaseProps" },
|
|
{ "$ref": "#/definitions/position" },
|
|
{ "$ref": "#/definitions/shapeFill" },
|
|
{ "$ref": "#/definitions/dataOrPath" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"objectName": { "type": "string" },
|
|
"baseline": { "type": "number" },
|
|
"charSpacing": { "type": "number" },
|
|
"fit": { "type": "string", "enum": ["none", "shrink", "resize"] },
|
|
"flipH": { "type": "boolean" },
|
|
"flipV": { "type": "boolean" },
|
|
"glow": {
|
|
"type": "object",
|
|
"properties": {
|
|
"color": { "$ref": "#/definitions/hexColor" },
|
|
"opacity": { "type": "number" },
|
|
"size": { "type": "number" }
|
|
},
|
|
"required": ["opacity", "size"]
|
|
},
|
|
"hyperlink": { "$ref": "#/definitions/hyperlink" },
|
|
"indentLevel": { "type": "number" },
|
|
"isTextBox": { "type": "boolean" },
|
|
"line": { "$ref": "#/definitions/shapeLine" },
|
|
"lineSpacing": { "type": "number" },
|
|
"lineSpacingMultiple": { "type": "number", "minimum": 0, "maximum": 9.99 },
|
|
"margin": { "$ref": "#/definitions/margin" },
|
|
"outline": {
|
|
"type": "object",
|
|
"properties": {
|
|
"color": { "$ref": "#/definitions/color" },
|
|
"size": { "type": "number" }
|
|
}
|
|
},
|
|
"paraSpaceAfter": { "type": "number" },
|
|
"paraSpaceBefore": { "type": "number" },
|
|
"placeholder": { "type": "string" },
|
|
"rectRadius": { "type": "number" },
|
|
"rotate": { "type": "number" },
|
|
"rtlMode": { "type": "boolean" },
|
|
"shadow": { "$ref": "#/definitions/shadow" },
|
|
"shape": { "type": "string", "description": "Valid pptxgenjs shape name" },
|
|
"strike": { "oneOf": [{ "type": "boolean" }, { "type": "string", "enum": ["dblStrike", "sngStrike"] }] },
|
|
"subscript": { "type": "boolean" },
|
|
"superscript": { "type": "boolean" },
|
|
"vert": { "type": "string", "enum": ["eaVert", "horz", "mongolianVert", "vert", "vert270", "wordArtVert", "wordArtVertRtl"] },
|
|
"wrap": { "type": "boolean" }
|
|
}
|
|
}
|
|
],
|
|
"description": "Full text object options including all TextPropsOptions parameters"
|
|
},
|
|
"textObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "pattern": "^text$" },
|
|
"text": { "type": "string", "description": "Text content" },
|
|
"options": { "$ref": "#/definitions/textOptions" }
|
|
},
|
|
"required": ["type", "text"],
|
|
"description": "Text slide object"
|
|
},
|
|
"shapeOptions": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/position" },
|
|
{ "$ref": "#/definitions/shapeFill" },
|
|
{ "$ref": "#/definitions/shapeLine" },
|
|
{ "$ref": "#/definitions/shadow" },
|
|
{ "$ref": "#/definitions/hyperlink" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"objectName": { "type": "string" },
|
|
"align": { "type": "string", "enum": ["left", "center", "right", "justify"] },
|
|
"angleRange": {
|
|
"type": "array",
|
|
"items": { "type": "number" },
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
},
|
|
"arcThicknessRatio": { "type": "number" },
|
|
"flipH": { "type": "boolean" },
|
|
"flipV": { "type": "boolean" },
|
|
"points": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"x": { "$ref": "#/definitions/coord" },
|
|
"y": { "$ref": "#/definitions/coord" },
|
|
"moveTo": { "type": "boolean" }
|
|
},
|
|
"required": ["x", "y"]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"x": { "$ref": "#/definitions/coord" },
|
|
"y": { "$ref": "#/definitions/coord" },
|
|
"curve": { "type": "object" }
|
|
},
|
|
"required": ["x", "y", "curve"]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"close": { "type": "boolean", "const": true }
|
|
},
|
|
"required": ["close"]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"rectRadius": { "type": "number", "description": "Rounded rectangle radius (0.0-1.0)" },
|
|
"rotate": { "type": "number", "description": "Rotation in degrees (-360 to 360)" }
|
|
}
|
|
}
|
|
],
|
|
"description": "Shape object options"
|
|
},
|
|
"shapeObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "pattern": "^shape$" },
|
|
"shapeName": { "type": "string", "description": "Valid pptxgenjs shape type (e.g. 'rect', 'ellipse', 'roundRect')" },
|
|
"options": { "$ref": "#/definitions/shapeOptions" }
|
|
},
|
|
"required": ["type", "shapeName"],
|
|
"description": "Shape slide object"
|
|
},
|
|
"tableCell": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": { "type": "string" },
|
|
"options": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/textBaseProps" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"border": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/borderProps" },
|
|
{ "type": "array", "items": { "$ref": "#/definitions/borderProps" }, "minItems": 4, "maxItems": 4 }
|
|
]
|
|
},
|
|
"colspan": { "type": "integer", "minimum": 1 },
|
|
"fill": { "$ref": "#/definitions/shapeFill" },
|
|
"hyperlink": { "$ref": "#/definitions/hyperlink" },
|
|
"margin": { "$ref": "#/definitions/margin" },
|
|
"rowspan": { "type": "integer", "minimum": 1 }
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"description": "Table cell with text and styling options"
|
|
},
|
|
"tableOptions": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/position" },
|
|
{ "$ref": "#/definitions/textBaseProps" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"objectName": { "type": "string" },
|
|
"autoPage": { "type": "boolean" },
|
|
"autoPageCharWeight": { "type": "number" },
|
|
"autoPageLineWeight": { "type": "number" },
|
|
"autoPageRepeatHeader": { "type": "boolean" },
|
|
"autoPageHeaderRows": { "type": "integer", "minimum": 1 },
|
|
"autoPageSlideStartY": { "type": "number" },
|
|
"border": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/borderProps" },
|
|
{ "type": "array", "items": { "$ref": "#/definitions/borderProps" }, "minItems": 4, "maxItems": 4 }
|
|
]
|
|
},
|
|
"colW": {
|
|
"oneOf": [
|
|
{ "type": "number" },
|
|
{ "type": "array", "items": { "type": "number" } }
|
|
]
|
|
},
|
|
"fill": { "$ref": "#/definitions/shapeFill" },
|
|
"margin": { "$ref": "#/definitions/margin" },
|
|
"rowH": {
|
|
"oneOf": [
|
|
{ "type": "number" },
|
|
{ "type": "array", "items": { "type": "number" } }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"description": "Table options including all TableProps parameters"
|
|
},
|
|
"tableObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "pattern": "^table$" },
|
|
"rows": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/tableCell" }
|
|
}
|
|
},
|
|
"options": { "$ref": "#/definitions/tableOptions" }
|
|
},
|
|
"required": ["type", "rows"],
|
|
"description": "Table slide object"
|
|
},
|
|
"imageOptions": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/position" },
|
|
{ "$ref": "#/definitions/dataOrPath" },
|
|
{ "$ref": "#/definitions/shadow" },
|
|
{ "$ref": "#/definitions/hyperlink" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"objectName": { "type": "string" },
|
|
"altText": { "type": "string" },
|
|
"flipH": { "type": "boolean" },
|
|
"flipV": { "type": "boolean" },
|
|
"placeholder": { "type": "string" },
|
|
"rotate": { "type": "number" },
|
|
"rounding": { "type": "boolean" },
|
|
"sizing": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["contain", "cover", "crop"] },
|
|
"w": { "$ref": "#/definitions/coord" },
|
|
"h": { "$ref": "#/definitions/coord" },
|
|
"x": { "$ref": "#/definitions/coord" },
|
|
"y": { "$ref": "#/definitions/coord" }
|
|
},
|
|
"required": ["type", "w", "h"]
|
|
},
|
|
"transparency": { "type": "number", "minimum": 0, "maximum": 100 }
|
|
}
|
|
}
|
|
],
|
|
"description": "Image options including all ImageProps parameters"
|
|
},
|
|
"imageObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "pattern": "^image$" },
|
|
"options": { "$ref": "#/definitions/imageOptions" }
|
|
},
|
|
"required": ["type", "options"],
|
|
"description": "Image slide object"
|
|
},
|
|
"chartData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": { "type": "string", "description": "Series name" },
|
|
"labels": {
|
|
"oneOf": [
|
|
{ "type": "array", "items": { "type": "string" } },
|
|
{ "type": "array", "items": { "type": "array", "items": { "type": "string" } } }
|
|
]
|
|
},
|
|
"sizes": { "type": "array", "items": { "type": "number" }, "description": "Bubble sizes" },
|
|
"values": { "type": "array", "items": { "type": "number" }, "description": "Category values" }
|
|
},
|
|
"description": "Chart data series"
|
|
},
|
|
"optsChartGridLine": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cap": { "type": "string", "enum": ["flat", "round", "square"] },
|
|
"color": { "$ref": "#/definitions/hexColor" },
|
|
"size": { "type": "number" },
|
|
"style": { "type": "string", "enum": ["solid", "dash", "dot", "none"] }
|
|
},
|
|
"description": "Chart grid line options"
|
|
},
|
|
"chartOptions": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/position" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"objectName": { "type": "string" },
|
|
"altText": { "type": "string" },
|
|
|
|
"axisPos": { "type": "string", "enum": ["b", "l", "r", "t"] },
|
|
"chartColors": { "type": "array", "items": { "$ref": "#/definitions/hexColor" } },
|
|
"chartColorsOpacity": { "type": "number" },
|
|
"dataBorder": { "$ref": "#/definitions/borderProps" },
|
|
"displayBlanksAs": { "type": "string" },
|
|
"invertedColors": { "type": "array", "items": { "$ref": "#/definitions/hexColor" } },
|
|
"lang": { "type": "string" },
|
|
"layout": { "$ref": "#/definitions/position" },
|
|
"shadow": { "$ref": "#/definitions/shadow" },
|
|
"showLabel": { "type": "boolean" },
|
|
"showLeaderLines": { "type": "boolean" },
|
|
"showLegend": { "type": "boolean" },
|
|
"showPercent": { "type": "boolean" },
|
|
"showSerName": { "type": "boolean" },
|
|
"showTitle": { "type": "boolean" },
|
|
"showValue": { "type": "boolean" },
|
|
|
|
"v3DPerspective": { "type": "number", "minimum": 0, "maximum": 120 },
|
|
"v3DRAngAx": { "type": "boolean" },
|
|
"v3DRotX": { "type": "number", "minimum": 0, "maximum": 359.9 },
|
|
"v3DRotY": { "type": "number", "minimum": 0, "maximum": 359.9 },
|
|
|
|
"chartArea": {
|
|
"type": "object",
|
|
"properties": {
|
|
"border": { "$ref": "#/definitions/borderProps" },
|
|
"fill": { "$ref": "#/definitions/shapeFill" },
|
|
"roundedCorners": { "type": "boolean" }
|
|
}
|
|
},
|
|
"plotArea": {
|
|
"type": "object",
|
|
"properties": {
|
|
"border": { "$ref": "#/definitions/borderProps" },
|
|
"fill": { "$ref": "#/definitions/shapeFill" }
|
|
}
|
|
},
|
|
|
|
"catAxes": { "type": "array", "items": { "type": "object" } },
|
|
"catAxisBaseTimeUnit": { "type": "string" },
|
|
"catAxisCrossesAt": { "oneOf": [{ "type": "number" }, { "type": "string", "enum": ["autoZero"] }] },
|
|
"catAxisHidden": { "type": "boolean" },
|
|
"catAxisLabelColor": { "type": "string" },
|
|
"catAxisLabelFontBold": { "type": "boolean" },
|
|
"catAxisLabelFontFace": { "type": "string" },
|
|
"catAxisLabelFontItalic": { "type": "boolean" },
|
|
"catAxisLabelFontSize": { "type": "number" },
|
|
"catAxisLabelFrequency": { "type": "string" },
|
|
"catAxisLabelPos": { "type": "string", "enum": ["none", "low", "high", "nextTo"] },
|
|
"catAxisLabelRotate": { "type": "number" },
|
|
"catAxisLineColor": { "type": "string" },
|
|
"catAxisLineShow": { "type": "boolean" },
|
|
"catAxisLineSize": { "type": "number" },
|
|
"catAxisLineStyle": { "type": "string", "enum": ["solid", "dash", "dot"] },
|
|
"catAxisMajorTickMark": { "type": "string", "enum": ["none", "inside", "outside", "cross"] },
|
|
"catAxisMajorTimeUnit": { "type": "string" },
|
|
"catAxisMajorUnit": { "type": "number" },
|
|
"catAxisMaxVal": { "type": "number" },
|
|
"catAxisMinorTickMark": { "type": "string", "enum": ["none", "inside", "outside", "cross"] },
|
|
"catAxisMinorTimeUnit": { "type": "string" },
|
|
"catAxisMinorUnit": { "type": "number" },
|
|
"catAxisMinVal": { "type": "number" },
|
|
"catAxisMultiLevelLabels": { "type": "boolean" },
|
|
"catAxisOrientation": { "type": "string", "enum": ["minMax"] },
|
|
"catAxisTitle": { "type": "string" },
|
|
"catAxisTitleColor": { "type": "string" },
|
|
"catAxisTitleFontFace": { "type": "string" },
|
|
"catAxisTitleFontSize": { "type": "number" },
|
|
"catAxisTitleRotate": { "type": "number" },
|
|
"catGridLine": { "$ref": "#/definitions/optsChartGridLine" },
|
|
"catLabelFormatCode": { "type": "string" },
|
|
"secondaryCatAxis": { "type": "boolean" },
|
|
"showCatAxisTitle": { "type": "boolean" },
|
|
|
|
"serAxisBaseTimeUnit": { "type": "string" },
|
|
"serAxisHidden": { "type": "boolean" },
|
|
"serAxisLabelColor": { "type": "string" },
|
|
"serAxisLabelFontBold": { "type": "boolean" },
|
|
"serAxisLabelFontFace": { "type": "string" },
|
|
"serAxisLabelFontItalic": { "type": "boolean" },
|
|
"serAxisLabelFontSize": { "type": "number" },
|
|
"serAxisLabelFrequency": { "type": "string" },
|
|
"serAxisLabelPos": { "type": "string", "enum": ["none", "low", "high", "nextTo"] },
|
|
"serAxisLineColor": { "type": "string" },
|
|
"serAxisLineShow": { "type": "boolean" },
|
|
"serAxisMajorTimeUnit": { "type": "string" },
|
|
"serAxisMajorUnit": { "type": "number" },
|
|
"serAxisMinorTimeUnit": { "type": "string" },
|
|
"serAxisMinorUnit": { "type": "number" },
|
|
"serAxisOrientation": { "type": "string" },
|
|
"serAxisTitle": { "type": "string" },
|
|
"serAxisTitleColor": { "type": "string" },
|
|
"serAxisTitleFontFace": { "type": "string" },
|
|
"serAxisTitleFontSize": { "type": "number" },
|
|
"serAxisTitleRotate": { "type": "number" },
|
|
"serGridLine": { "$ref": "#/definitions/optsChartGridLine" },
|
|
"serLabelFormatCode": { "type": "string" },
|
|
"showSerAxisTitle": { "type": "boolean" },
|
|
|
|
"secondaryValAxis": { "type": "boolean" },
|
|
"showValAxisTitle": { "type": "boolean" },
|
|
"valAxes": { "type": "array", "items": { "type": "object" } },
|
|
"valAxisCrossesAt": { "oneOf": [{ "type": "number" }, { "type": "string", "enum": ["autoZero"] }] },
|
|
"valAxisDisplayUnit": { "type": "string", "enum": ["billions", "hundredMillions", "hundreds", "hundredThousands", "millions", "tenMillions", "tenThousands", "thousands", "trillions"] },
|
|
"valAxisDisplayUnitLabel": { "type": "boolean" },
|
|
"valAxisHidden": { "type": "boolean" },
|
|
"valAxisLabelColor": { "type": "string" },
|
|
"valAxisLabelFontBold": { "type": "boolean" },
|
|
"valAxisLabelFontFace": { "type": "string" },
|
|
"valAxisLabelFontItalic": { "type": "boolean" },
|
|
"valAxisLabelFontSize": { "type": "number" },
|
|
"valAxisLabelFormatCode": { "type": "string" },
|
|
"valAxisLabelPos": { "type": "string", "enum": ["none", "low", "high", "nextTo"] },
|
|
"valAxisLabelRotate": { "type": "number" },
|
|
"valAxisLineColor": { "type": "string" },
|
|
"valAxisLineShow": { "type": "boolean" },
|
|
"valAxisLineSize": { "type": "number" },
|
|
"valAxisLineStyle": { "type": "string", "enum": ["solid", "dash", "dot"] },
|
|
"valAxisLogScaleBase": { "type": "number", "minimum": 2, "maximum": 99 },
|
|
"valAxisMajorTickMark": { "type": "string", "enum": ["none", "inside", "outside", "cross"] },
|
|
"valAxisMajorUnit": { "type": "number" },
|
|
"valAxisMaxVal": { "type": "number" },
|
|
"valAxisMinorTickMark": { "type": "string", "enum": ["none", "inside", "outside", "cross"] },
|
|
"valAxisMinVal": { "type": "number" },
|
|
"valAxisOrientation": { "type": "string", "enum": ["minMax"] },
|
|
"valAxisTitle": { "type": "string" },
|
|
"valAxisTitleColor": { "type": "string" },
|
|
"valAxisTitleFontFace": { "type": "string" },
|
|
"valAxisTitleFontSize": { "type": "number" },
|
|
"valAxisTitleRotate": { "type": "number" },
|
|
"valGridLine": { "$ref": "#/definitions/optsChartGridLine" },
|
|
"valLabelFormatCode": { "type": "string" },
|
|
|
|
"bar3DShape": { "type": "string" },
|
|
"barDir": { "type": "string" },
|
|
"barGapDepthPct": { "type": "number" },
|
|
"barGapWidthPct": { "type": "number" },
|
|
"barGrouping": { "type": "string" },
|
|
"barOverlapPct": { "type": "number" },
|
|
|
|
"dataNoEffects": { "type": "boolean" },
|
|
"holeSize": { "type": "number" },
|
|
|
|
"lineCap": { "type": "string", "enum": ["flat", "round", "square"] },
|
|
"lineDash": { "type": "string", "enum": ["dash", "dashDot", "lgDash", "lgDashDot", "lgDashDotDot", "solid", "sysDash", "sysDot"] },
|
|
"lineDataSymbol": { "type": "string", "enum": ["circle", "dash", "diamond", "dot", "none", "square", "triangle"] },
|
|
"lineDataSymbolLineColor": { "type": "string" },
|
|
"lineDataSymbolLineSize": { "type": "number" },
|
|
"lineDataSymbolSize": { "type": "number" },
|
|
"lineSize": { "type": "number" },
|
|
"lineSmooth": { "type": "boolean" },
|
|
|
|
"firstSliceAng": { "type": "number", "minimum": 0, "maximum": 359 },
|
|
|
|
"radarStyle": { "type": "string", "enum": ["standard", "marker", "filled"] },
|
|
|
|
"dataLabelBkgrdColors": { "type": "boolean" },
|
|
"dataLabelColor": { "type": "string" },
|
|
"dataLabelFontBold": { "type": "boolean" },
|
|
"dataLabelFontFace": { "type": "string" },
|
|
"dataLabelFontItalic": { "type": "boolean" },
|
|
"dataLabelFontSize": { "type": "number" },
|
|
"dataLabelFormatCode": { "type": "string" },
|
|
"dataLabelFormatScatter": { "type": "string" },
|
|
"dataLabelPosition": { "type": "string", "enum": ["b", "bestFit", "ctr", "l", "r", "t", "inEnd", "outEnd"] },
|
|
|
|
"dataTableFontSize": { "type": "number" },
|
|
"dataTableFormatCode": { "type": "string" },
|
|
"showDataTable": { "type": "boolean" },
|
|
"showDataTableHorzBorder": { "type": "boolean" },
|
|
"showDataTableKeys": { "type": "boolean" },
|
|
"showDataTableOutline": { "type": "boolean" },
|
|
"showDataTableVertBorder": { "type": "boolean" },
|
|
|
|
"legendColor": { "type": "string" },
|
|
"legendFontFace": { "type": "string" },
|
|
"legendFontSize": { "type": "number" },
|
|
"legendPos": { "type": "string", "enum": ["b", "l", "r", "t", "tr"] },
|
|
|
|
"title": { "type": "string" },
|
|
"titleAlign": { "type": "string" },
|
|
"titleBold": { "type": "boolean" },
|
|
"titleColor": { "type": "string" },
|
|
"titleFontFace": { "type": "string" },
|
|
"titleFontSize": { "type": "number" },
|
|
"titlePos": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": { "type": "number" },
|
|
"y": { "type": "number" }
|
|
}
|
|
},
|
|
"titleRotate": { "type": "number" },
|
|
|
|
"cap": { "type": "string", "enum": ["flat", "round", "square"] },
|
|
"color": { "$ref": "#/definitions/hexColor" },
|
|
"size": { "type": "number" },
|
|
"style": { "type": "string", "enum": ["solid", "dash", "dot", "none"] }
|
|
}
|
|
}
|
|
],
|
|
"description": "Chart options including all IChartOpts parameters"
|
|
},
|
|
"chartObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "type": "string", "pattern": "^chart$" },
|
|
"chartType": { "type": "string", "enum": ["area", "bar", "bar3D", "bubble", "doughnut", "line", "pie", "radar", "scatter"] },
|
|
"data": { "type": "array", "items": { "$ref": "#/definitions/chartData" } },
|
|
"options": { "$ref": "#/definitions/chartOptions" }
|
|
},
|
|
"required": ["type", "chartType", "data"],
|
|
"description": "Chart slide object"
|
|
},
|
|
"slideNumberProps": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/position" },
|
|
{ "$ref": "#/definitions/textBaseProps" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"margin": { "$ref": "#/definitions/margin" }
|
|
}
|
|
}
|
|
],
|
|
"description": "Slide number display properties"
|
|
},
|
|
"backgroundProps": {
|
|
"allOf": [
|
|
{ "$ref": "#/definitions/dataOrPath" },
|
|
{ "$ref": "#/definitions/shapeFill" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"fill": { "$ref": "#/definitions/hexColor", "description": "Deprecated: use shapeFill.color instead" }
|
|
}
|
|
}
|
|
],
|
|
"description": "Slide background properties (color or image with DataOrPathProps + ShapeFillProps)"
|
|
},
|
|
"slideObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"background": { "$ref": "#/definitions/backgroundProps" },
|
|
"color": { "$ref": "#/definitions/hexColor", "description": "Default text color for this slide" },
|
|
"hidden": { "type": "boolean", "description": "Whether slide is hidden" },
|
|
"slideNumber": { "$ref": "#/definitions/slideNumberProps" },
|
|
"objects": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/textObject" },
|
|
{ "$ref": "#/definitions/shapeObject" },
|
|
{ "$ref": "#/definitions/tableObject" },
|
|
{ "$ref": "#/definitions/imageObject" },
|
|
{ "$ref": "#/definitions/chartObject" }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"description": "A single slide with background, properties, and content objects"
|
|
}
|
|
},
|
|
"properties": {
|
|
"presentation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"layout": { "type": "string", "description": "Presentation layout (e.g. LAYOUT_16x9, LAYOUT_4x3)" },
|
|
"author": { "type": "string" },
|
|
"title": { "type": "string" },
|
|
"subject": { "type": "string" },
|
|
"company": { "type": "string" },
|
|
"revision": { "type": "string" },
|
|
"rtlMode": { "type": "boolean" },
|
|
"theme": {
|
|
"type": "object",
|
|
"properties": {
|
|
"headFontFace": { "type": "string" },
|
|
"bodyFontFace": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"description": "Presentation-level metadata and layout settings"
|
|
},
|
|
"slides": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/slideObject" },
|
|
"minItems": 1,
|
|
"description": "Array of slides in the presentation"
|
|
}
|
|
},
|
|
"required": ["slides"],
|
|
"additionalProperties": true
|
|
}
|