feat: add presentation JSON Schema with basic and full examples
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,758 @@
|
||||
{
|
||||
"$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
|
||||
}
|
||||
Reference in New Issue
Block a user