Select
The basic control that represents an advanced select box with a set of options to choose from.
Usage
{
type: "select",
options: (object | string)[],
key?: string | string[],
wrap?: boolean, // false by default
css?: string,
disabled?: boolean, // false by default
hidden?: boolean, // false by default
height?: string | number | "content", // "content" by default
width?: string | number | "content", // "content" by default
padding?: string | number,
icon?: string,
// for `wrap:true` check the label properties for the Fieldset
label?: string,
labelWidth?: string | number,
labelPosition?: "left" | "top", // "top" by default
// service properties and methods
$on?: { [eventName: string]: function },
$handler?: function,
$setValue?: function,
$layout?: function
}
Option configuration object inside Select:
{
value: string | number,
content: string,
disabled?: boolean
}
Description
Select properties
Basic properties
type
- (required) the type of a control. Set it to "select"options
- (required) an array of Select options, each option can be set as a string or as an object with a set ofkey:value
pairs - attributes of options and their valueskey
- (optional) the name of the specified/modified property or the path to it in the object of a Diagram itemwrap
- (optional) allows displaying the external wrapping. false by defaultcss
- (optional) adds style classes to a controldisabled
- (optional) defines whether a control is enabled (false) or disabled (true). false by defaulthidden
- (boolean) defines whether a Select is hidden. false by defaultheight
- (optional) the height of a control. "content" by defaultwidth
- (optional) the width of a control. "content" by defaultpadding
- (optional) sets padding between a cell and a border of a Select controlicon
- (optional) the CSS class of an icon from the used icon fontlabel
- (optional) specifies a label for the controllabelWidth
- (optional) sets the label width of the controllabelPosition
- (optional) defines the position of a label: "left" | "top". "top" by default
Service properties and methods
warning
Note that it's highly not recommended to redefine the service properties and methods for the default types of controls, since it may cause breaks in their functionality.
$on
- (optional) - allows setting an event listener. The object has the following properties:eventName
- a callback function which is called with the following parameters:object
- an object with the following properties:control
- the Select Form controleditor
- the object of the Diagram Editorid
- the id of a Diagram item
arguments
- (optional) - the original event arguments
$handler
- (optional) - a callback function that allows handling actions on firing thechange
event of the Select Form control and thechange
event of DataCollection. Called with the following parameter:object
- an object with the following properties:
$setValue
- (optional) - a callback function that allows setting the value of the Select Form control on initialization of a control and on changing the value in DataCollection. Called with the following parameter:object
- an object with the following properties:editor
- the object of the Diagram Editorcontrol
- the object of the Select Form control the component is built onvalue
- the value of a Diagram item
$layout
- (optional) - a callback function that allows setting the structure of a control. Returns the configuration of the Select Form control. Called with the following parameter:object
- the configuration of a control without service properties
Option properties
value
- (required) sets the value for the select optioncontent
- (required) the content displayed in the select optiondisabled
- (optional) defines whether the option is enabled (false) or disabled (true). false by default
Example
const editor = new dhx.DiagramEditor("editor_container", {
type: "default",
view: {
editbar: {
properties: {
$shape: [
{
type: "select",
label: "Position",
key: "position",
wrap: true,
options: [
"",
"Technical Director",
"Manager",
"QA Lead",
{ value: 4, content: "Team Lead", disabled: true },
{ value: 5, content: "Programmer" }
]
}
]
}
}
}
});