The widget configuration mechanism enables you to configure widget elements via a JSON based schema. To add configuration to your widget, add the following files to your directory structure:
widget/ <widget-name>/ config/ config.json locales/ en.json
The configuration resources are stored in locale files within the config directory and are not read from the widget localization resources. The structure of these locale files is identical; please refer to Localize a widget for example resources.
The structure of a sample configuration schema looks like this:
{ "widgetDescriptorName": "QuoteWidget", "properties": [ { "id": "quoteText", "type": "stringType", "name": "quoteText", "helpTextResourceId": "quoteTextHelpText", "labelResourceId": "quoteTextLabel", "defaultValue": "", "required": true, "maxLength": 50, "minLength": 3, "pattern": "regex" }, { "id": "quoteSource", "type": "stringType", "name": "quoteSource", "helpTextResourceId": "quoteSourceHelpText", "labelResourceId": "quoteSourceLabel", "defaultValue": "" }, { "id": "quoteStyle", "type": "booleanType", "name": "quoteStyle", "helpTextResourceId": "quoteStyleHelpText", "labelResourceId": "quoteStyleLabel", "defaultValue": true }, { "id": "quoteSize", "type": "optionType", "name": "quoteSize", "helpTextResourceId": "quoteSizeHelpText", "labelResourceId": "quoteSizeLabel", "defaultValue": "medium", "options": [ { "id": "quoteSizeSmall", "value": "small", "labelResourceId": "quoteSizeSmallLabel" }, { "id": "quoteSizeMedium", "value": "medium", "labelResourceId": "quoteSizeMediumLabel" }, { "id": "quoteSizeLarge", "value": "large", "labelResourceId": "quoteSizeLargeLabel" } ] } ] }
For each property, the following standard keys are supported:
id - the unique name of the property, which you also use in the HTML template to bind a configurable property.
name – a property name which is meaningful to end users.
type - the data-type stored in the property.
helpTextResourceId - the name of the resource key (in locales) to use to describe the property’s help text.
labelResourceId - the resource key to use to display a label for the property on the widget configuration dialog.
defaultValue - the property’s default value, which must be a valid value for the data-type specified by
type
.required - Boolean flag to determine if the config property requires a value.