Color can be specified as name (blue, pink, ...), on hexidecimal format (#aa00cc) or alpha hex (#33ffffff, transparent white)
As created by ActionButton
As created by Config
The general of type of extension, this typically appears on the homescreen as a button
As created by Page
As created by Panel
As created by Row
As created by WebApp
Number of columns that the widget taks up. Each row has maximum 4 columns.
An action button is located on the home screen and can be programmed to do an action when the user presses it. Unlike a panel (button), it does not automatically open anything when pressed.
A simple push button.
Creates a new UI extension config. This is the top level node, and the one that you must use when saving an extension to the video device
A 4-way directional pad + center button. The text of the center button can be specified.
Create group button, where the user can select one of several choices You can programatically select which button is selected by setting the widget value. Example:
const group = GroupButton({
widgetId: 'my-colors',
buttons: {
green: 'Green',
red: 'Red',
blue: 'Blue',
}
})
A page is contained in a panel and can contain multiple rows.
A panel is a top level node in a config object and contain custom ui elements. All direct children of a panel are pages.
A row is contained in a page, and can contain multiple widgets. The widgets are laid of horizontally. Each row contains 4 columns, if the widgets take up more than that they will wrap to the next line (but same row).
A slider / scrollbar. The range is fixed from 0-255, you might need to map this to your own scale. See the ui lib for a handy scale function. You can programatically set the scroll position by setting the widget value.
An invisible widget that takes up space, so you can create custom layouts with gaps if you need it.
A widget that lefts the user select next/previous or up/down. You can programatically update the text in the middle of the spinner by setting the widget value
A simple text label. Change the text by setting the value of the widget.
An on/off mode button. You can programatically set the mode by setting widget value to 'on' or 'off'.
A web app is basically a url shortcut that can open a full screen web page on the device.
The web page is opened when the user presses the shortcut.
Generated using TypeDoc
Library for creating dynamic UI extensions for Cisco Webex Devices.
This means you don't need to know or deal with the XML syntax for UI extensions.
An extension (ui panel, action button or web app) is typically constructed by creating a tree of nodes. A node can be a panel, a page, a row, a slider etc. A node has attributes (type, name, color, text, ...), and most nodes types can also have child nodes.
The library will validate the attributes (a slider cannot have a name) and the children type (eg a row can only be added to a page, not a panel).
Each node type has, for convenience, a method that creates this node. Eg this is how we construct a page with two empty rows:
To save an extension to the video device, a panel / action button / web app must also be wrapped in a Config object. Here are 3 full examples:
Example - Create an action button:
If you do not want to use the ui lib (just the ui-builder), you can replace the last line with:
Example - Create a panel:
Example - create a web app: