.
├── .vscode/
│ └── settings.json
├── manifest.json
└── manifest.schema.json
.vscode/settings.json
{
"json.schemas": [
{
"fileMatch": [
"/manifest.json"
],
"url": "/manifest.schema.json"
}
]
}| { | |
| "$schema": "https://json-schema.org/draft/2020-12/output/schema", | |
| "valid": true, | |
| "additionalProperties": false, | |
| "definitions": { | |
| "ExtensionsConfig": { | |
| "additionalProperties": false, | |
| "type": "object" | |
| } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "version", | |
| "type", | |
| "customElementsVersion" | |
| ], | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The human-readable name of the component." | |
| }, | |
| "description": { | |
| "type": "string", | |
| "description": "A succinct but complete description of the component." | |
| }, | |
| "type": { | |
| "type": "string", | |
| "description": "The element type, which must contain a hyphen (-). Required." | |
| }, | |
| "tagName": { | |
| "type": "string" | |
| }, | |
| "version": { | |
| "type": "number", | |
| "description": "The component version number, which must be incremented with each update. Required." | |
| }, | |
| "customElementsVersion": { | |
| "type": "number", | |
| "description": "The Custom Element specification version number, which should be set to 1 for newly authored components. Required for new components." | |
| }, | |
| "nestable": { | |
| "type": "boolean", | |
| "description": "When true, other element could be place in this element." | |
| }, | |
| "files": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "description": "The JavaScript and CSS files for the component.", | |
| "properties": { | |
| "js": { | |
| "description": "The path to JavaScript files, relative to the manifest.json file.", | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "css": { | |
| "description": "The path to the CSS files, relative to the manifest.json file.", | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| } | |
| }, | |
| "externalScripts": { | |
| "type": "array", | |
| "description": "The external scripts for the component.", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "externalStyles": { | |
| "type": "array", | |
| "description": "The external style sheets for the component.", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "dependencies": { | |
| "type": "array", | |
| "description": "Other components that this component depends on.", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "attributes": { | |
| "type": "array", | |
| "description": "The attributes of the component.", | |
| "items": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "description": "The name of the attribute.", | |
| "type": "string" | |
| }, | |
| "label": { | |
| "description": "The human-readable name of the attribute.", | |
| "type": "string" | |
| }, | |
| "type": { | |
| "description": "The data type of the attribute.", | |
| "enum": [ | |
| "string", | |
| "number", | |
| "file", | |
| "color", | |
| "boolean", | |
| "dropdown" | |
| ] | |
| }, | |
| "description": { | |
| "description": "A short description of the attribute.", | |
| "type": "string" | |
| }, | |
| "required": { | |
| "description": "Whether the attribute is required.", | |
| "type": "boolean" | |
| }, | |
| "defaultValue": { | |
| "description": "The default value of the attribute.", | |
| "type": [ | |
| "boolean", | |
| "string" | |
| ] | |
| }, | |
| "min": { | |
| "description": "Minimum value for the attribute, if the attribute is a number.", | |
| "type": "number" | |
| }, | |
| "max": { | |
| "description": "Maximum value for the attribute, if the attribute is a number.", | |
| "type": "number" | |
| }, | |
| "accept": { | |
| "description": "File types accepted, if the attribute is a file.", | |
| "type": "string" | |
| }, | |
| "gwdSpecific": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "const": "dropdown" | |
| }, | |
| "items": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "important": { | |
| "type": "boolean", | |
| "description": "When true, includes the attribute in the component tag." | |
| }, | |
| "label": { | |
| "type": "string", | |
| "description": "The key in the strings file for translation." | |
| }, | |
| "advanced": { | |
| "type": "boolean", | |
| "description": "Whether this attribute is shown in the Advanced properties section of the Properties panel." | |
| }, | |
| "v1Name": { | |
| "type": "string", | |
| "description": "The name of this attribute in v.1 of Google Web Designer." | |
| } | |
| }, | |
| "dependentRequired": { | |
| "type": [ | |
| "items" | |
| ] | |
| } | |
| }, | |
| "bindable": { | |
| "type": "boolean", | |
| "description": "When true, the attribute is exposed on the Bindings tab of the Dynamic Properties dialog." | |
| } | |
| } | |
| } | |
| }, | |
| "methods": { | |
| "type": "array", | |
| "description": "The methods of the component.", | |
| "items": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the method." | |
| }, | |
| "label": { | |
| "type": "string", | |
| "description": "The human-readable name of the method." | |
| }, | |
| "description": { | |
| "type": "string", | |
| "description": "A short description of the method." | |
| }, | |
| "parameters": { | |
| "type": "array", | |
| "description": "The parameters of this method.", | |
| "items": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the parameter." | |
| }, | |
| "label": { | |
| "type": "string", | |
| "description": "The human-readable name of the parameter." | |
| }, | |
| "type": { | |
| "type": "string", | |
| "description": "The data type of the parameter." | |
| }, | |
| "optional": { | |
| "type": "boolean", | |
| "description": "Whether the parameter is optional." | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "events": { | |
| "type": "array", | |
| "description": "The events sent by the component.", | |
| "items": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the event." | |
| }, | |
| "label": { | |
| "type": "string", | |
| "description": "The human-readable name of the event." | |
| }, | |
| "description": { | |
| "type": "string", | |
| "description": "A couple of sentences describing the event." | |
| }, | |
| "parameters": { | |
| "items": { | |
| "type": "string" | |
| }, | |
| "type": "array", | |
| "description": " The parameters of the event; by default, the Event object." | |
| } | |
| } | |
| } | |
| }, | |
| "metrics": { | |
| "type": "array", | |
| "description": "The metrics tracked for the component.", | |
| "items": { | |
| "additionalProperties": false, | |
| "type": "object", | |
| "properties": { | |
| "eventName": { | |
| "type": "string", | |
| "description": "The event that's tracked for this metric." | |
| }, | |
| "metric": { | |
| "type": "string", | |
| "description": "The text used when reporting the tracked event." | |
| }, | |
| "isCumulative": { | |
| "type": "boolean", | |
| "description": "Whether the metric is cumulative." | |
| }, | |
| "exit": { | |
| "type": "string", | |
| "description": "The exit associated with the metric event." | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } |