I had the task to create a new Highlights widget. The documentation has some examples on how to create a new widget https://help.hcl-software.com/connections/v8-cr4/connectors/icec/cec-custom-widget-api.html
To add properties to your widget you simply provide a customEditor in the registerCustomWidget command.
function editSampleConfig(container$, widgetData) {
var instanceID=XCC.T.getXccPropertyValue(widgetData,"widgetinstanceid");
return [
XCC.U.createTextInputOnTheFly('Title', widgetData.title, 'title'),
XCC.U.createTextInputOnTheFly('Height', widgetData.height, 'height'),
XCC.U.createTextInputOnTheFly('InstanceID', instanceID, 'instanceid'),
];
}
And a simple save function
function saveSampleConfig(container$, widgetData) {
widgetData.title = container$.find('input[name=title]').val();
widgetData.height = container$.find('input[name=height]').val();
var instanceid = container$.find('input[name=instanceid]').val();
XCC.T.setXccProperty(widgetData, {
"propKey": "widgetinstanceid",
"propValue": instanceid,
"propType": "string"
});
}
And the register function looks like
XCC.W.registerCustomWidget({
id: 'cloud.collab.view-sample.widget',
name: 'View Sample Widget',
icon: 'th-large',
createCustomWidget: render,
customEditor: editSampleConfig,
synchUiToWidgetDataObject: saveSampleConfig,
});