{
  "widget": {
    "name": "ListBox",
    "selector": "jqx-list-box"
  },
  "properties": [
    {
      "name": "dataSource",
      "value": [ ],
      "allowedValues": [ ],
      "description": "Determines the data source that will be loaded to the ListBox.",
      "demoValues": [ "[\"item 1\", \"item 2\"]", "[\"new item 1\", \"new item 2\"]" ],
      "type": "any"
    },
    {
      "name": "disabled",
      "value": false,
      "allowedValues": [ ],
      "description": "Enables or disables the list box.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "displayLoadingIndicator",
      "value": false,
      "allowedValues": [ ],
      "description": "Displays or hidess the loading indicator",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "displayMember",
      "value": "\"\"",
      "allowedValues": [ ],
      "description": "Sets or gets the displayMember. The displayMember specifies the name of an object property to display. The name is contained in the collection specified by the 'dataSource' property.",
      "demoValues": [ "label", "name" ],
      "type": "string"
    },
    {
      "name": "dropAction",
      "value": "move",
      "allowedValues": [ "copy", "move", "none" ],
      "description": "Determines what happens when an item is dropped.",
      "demoValues": [ "copy", "move" ],
      "type": "string"
    },
    {
      "name": "filterable",
      "value": false,
      "allowedValues": [ ],
      "description": "Determines whether the Filtering is enabled.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "filterMode",
      "value": "startsWithIgnoreCase",
      "allowedValues": [ "none", "contains", "containsIgnoreCase", "equals", "equalsIgnoreCase", "startsWith", "startsWithIgnoreCase", "endsWith", "endsWithIgnoreCase", "matchMetaData" ],
      "description": "Determines the filtering mode.",
      "demoValues": [ "contains", "equals" ],
      "type": "string"
    },
    {
      "name": "filterInputPlaceholder",
      "value": "",
      "allowedValues": [ ],
      "description": "Determines the placeholder for the filter input field.",
      "demoValues": [ "Enter a value:", "Awaiting entry:"],
      "type": "string"
    },
    {
      "name": "grouped",
      "value": false,
      "allowedValues": [ ],
      "description": "If enabled, the items will be grouped by their first letter. Can't be applied if the dataSource already contains groups.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "groupMember",
      "value": null,
      "allowedValues": [ ],
      "description": "Sets or gets the groupMember. If it's not set, by default is used 'group' property of the source object.",
      "demoValues": [ "group", "section" ],
      "type": "string"
    },
    {
      "name": "incrementalSearchDelay",
      "value": 700,
      "allowedValues": [ ],
      "description": "Sets ot gets the incrementalSearchDelay property. The incrementalSearchDelay specifies the time-interval in milliseconds after which the previous search string is deleted. The timer starts when you stop typing.",
      "demoValues": [ "group", "mygroup" ],
      "type": "number"
    },
    {
      "name": "incrementalSearchMode",
      "value": "startsWith",
      "allowedValues": [ "none", "contains", "containsIgnoreCase", "equals", "equalsIgnoreCase", "startsWith", "startsWithIgnoreCase", "endsWith", "endsWithIgnoreCase", "matchMetaData" ],
      "description": "Sets ot gets the mode of the incremental search mode.",
      "demoValues": [ "contains", "endsWith" ],
      "type": "string"
    },
    {
      "name": "itemTemplate",
      "value": null,
      "allowedValues": [ ],
      "description": "The itemTemplate property is a string that represents the id of an HTMLTemplateElement in the DOM. It's used to load list items from the HTMLTemplateElement.",
      "demoValues": ["templateA", "templateB"],
      "type": "string"
    },
    {
      "name": "loadingIndicatorPlaceholder",
      "value": "Loading...",
      "allowedValues": [ ],
      "description": "Determines the text that will be displayed next to the loading indicator when the loader is visible and it's position is top or bottom.",
      "demoValues": [ "Incoming data", "LOADING..." ],
      "type": "string"
    },
    {
      "name": "loadingIndicatorPosition",
      "value": "center",
      "allowedValues": [ "bottom", "center", "top" ],
      "description": "The position of the loading indicator.",
      "demoValues": [ "bottom", "top" ],
      "type": "string"
    },
    {
      "name": "messages",
      "value": "{ \"en\": { \"missingReference\": \"{{elementType}}: Missing reference to {{files}}.\", \"overridingProperties\": \"{{elementType}}: Overriding properties {{property1}} and {{property2}} applied. {{property1}} is applied.\",  } }",
      "allowedValues": [ ],
      "description": "Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property <strong>language</strong>. ",
      "demoValues": [
        "{ \"de\": { \"missingReference\": \"{{elementType}}: Fehlende Bezugnahme auf {{files}}.\", \"overridingProperties\": \"{{elementType}}: Übergeordnete Eigenschaften {{property1}} und {{property2}} wurden angewendet. {{property1}} angewendet wird.\" } }",
        "{ \"de\": { \"missingReference\": \"{{elementType}}: Fehlende Bezugnahme auf {{files}}.\", \"overridingProperties\": \"{{elementType}}: Übergeordnete Eigenschaften {{property1}} und {{property2}} wurden angewendet. {{property1}} angewendet wird.\" } }"
      ],
      "type": "object"
    },
    {
      "name": "placeholder",
      "value": "No Items",
      "allowedValues": [ ],
      "description": "Determines the widget's place holder, displayed when the widget is empty.",
      "demoValues": [ "Placeholder", "New Placeholder" ],
      "type": "string"
    },
    {
      "name": "reorder",
      "value": "false",
      "allowedValues": [ ],
      "description": "Determines weather or not reordering of items by dragging is enabled.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "selectedIndexes",
      "value": [ ],
      "allowedValues": [ ],
      "description": "Sets or gets elected indexes.",
      "demoValues": [ "[\"item 1\"]", "[\"item 2\"]" ],
      "type": "array"
    },
    {
      "name": "selectedValues",
      "value": [ ],
      "allowedValues": [ ],
      "description": "Sets or gets elected indexes.",
      "demoValues": [ "[1,2,3]", "[4,5,6]" ],
      "type": "array"
    },
    {
      "name": "selectionMode",
      "value": "one",
      "allowedValues": [ "none", "default", "zeroOrMany", "oneOrMany", "zeroOrOne", "one", "checkBox", "radioButton" ],
      "description": "Determines how many items can be selected.",
      "demoValues": [ "zeroOrMany", "zeroOrOne" ],
      "type": "string"
    },
    {
      "name": "sorted",
      "value": false,
      "allowedValues": [ ],
      "description": "Determines whether the items are sorted alphabetically or not",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "valueMember",
      "value": "\"\"",
      "allowedValues": [ ],
      "description": "Determines the value member of an item. Stored as value in the item object.",
      "demoValues": [ "value", "newValue" ],
      "type": "string"
    },
    {
      "name": "virtualized",
      "value": "false",
      "allowedValues": [ ],
      "description": "Determines weather or not Virtualization is used for the ListBox.",
      "demoValues": [ true, false ],
      "type": "boolean"
    }
  ],
  "events": [
    {
      "name": "change",
      "description": "This event is triggered when selection is changed."
    },
    {
      "name": "dragEnd",
      "description": "This event is triggered when an item is dragged."
    },
    {
      "name": "dragStart",
      "description": "This event is triggered when an item is dropped."
    },
    {
      "name": "scrollBottomReached",
      "description": "This event is triggered when user scrolls to the end of the list."
    },
    {
      "name": "scrollTopReached",
      "description": "This event is triggered when user scrolls to the start of the list."
    },
    {
      "name": "swipeleft",
      "description": "This event is triggered when the user swipes to the left, inside the listBox."
    },
    {
      "name": "swiperight",
      "description": "This event is triggered when the user swipes to the right, inside the listBox."
    }
  ],
  "methods": [
  {
      "name": "clearItems",
      "description": "Removes all items from the listBox.",
      "demoValues": [ ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "None",
          "type": null,
          "description": "",
          "optional": false
        }
      ]
    },
    {
      "name": "clearSelection",
      "description": "Unselects all items.",
      "demoValues": [ ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "None",
          "type": null,
          "description": "",
          "optional": false
        }
      ]
    },
    {
      "name": "getItem",
      "description": "Returns an item instance from the listBox.",
      "demoValues": ["First", "Second"],
      "returnDataType": "HTMLElement",
      "arguments": [
        {
          "name": "value",
          "type": "string",
          "description": "The value of an item from the listBox.",
          "optional": false
        }
      ]
    },
    {
      "name": "items",
      "description": "Returns an array with the items from the listBox.",
      "demoValues": [ ],
      "returnDataType": "Array",
      "arguments": [
        {
          "name": "None",
          "type": null,
          "description": "",
          "optional": false
        }
      ]
    },
    {
      "name": "insert",
      "description": "Inserts a new item at a specified position.",
      "demoValues": [ 5, "New item" ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "position",
          "type": "number",
          "description": "The position where the item must be inserted.",
          "optional": false
        },
        {
          "name": "value",
          "type": "any",
          "description": "The value of the new item.",
          "optional": false
        }
      ]
    },
    {
      "name": "remove",
      "description": "Removes an item at a specified position.",
      "demoValues": [ 5 ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "position",
          "type": "number",
          "description": "The position of the removed item.",
          "optional": false
        }
      ]
    },
    {
      "name": "select",
      "description": "Selects an item from the listBox. ",
      "demoValues": [ "First Item", "Second Item" ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "item",
          "type": "String/HTMLElement",
          "description": "A string, representing the value of the item or an HTML Element referencing an item from the list",
          "optional": false
        }
      ]
    },
    {
      "name": "unselect",
      "description": "Unselects an item from the listBox. ",
      "demoValues": [ "First Item", "Second Item" ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "item",
          "type": "String/HTMLElement",
          "description": "A string, representing the value of the item or an HTML Element referencing an item from the list",
          "optional": false
        }
      ]
    },
    {
      "name": "update",
      "description": "Updates an item from the listBox.",
      "demoValues": [ 5, "Updated item" ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "position",
          "type": "number",
          "description": "The position where the item must be updated.",
          "optional": false
        },
        {
          "name": "value",
          "type": "any",
          "description": "The value of the updated item.",
          "optional": false
        }
      ]
    }
  ]
}