{
  "widget": {
    "name": "DropDownList",
    "selector": "jqx-drop-down-list"
  },
  "properties": [
    {
      "name": "dataSource",
      "value": [ ],
      "allowedValues": [ ],
      "description": "Determines the data source that will be loaded to the drop down list.",
      "demoValues": [ "[\"item 1\", \"item 2\"]", "[\"new item 1\", \"new item 2\"]" ],
      "type": "any"
    },
    {
      "name": "disabled",
      "value": false,
      "allowedValues": [ ],
      "description": "Enables or disables the dropDown list.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "displayLoadingIndicator",
      "value": false,
      "allowedValues": [ ],
      "description": "Displays or hides 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": "dropDownOpenMode",
      "value": ["default"],
      "allowedValues": ["none", "default", "dropDownButton", "auto"],
      "description": "Determines when to open the dropDown list.",
      "demoValues": [ "dropDownButton", "auto" ],
      "type": "string"
    },
    {
      "name": "dropDownHeight",
      "value": ["200"],
      "allowedValues": [ ],
      "description": "Determines the height of the dropDown list.",
      "demoValues": [ "300", "50" ],
      "type": "string"
    },
    {
      "name": "dropDownVerticalPosition",
      "value": ["overlay"],
      "allowedValues": ["top", "bottom", "overlay"],
      "description": "Determines the vertical position of the dropDown list.",
      "demoValues": [ "top", "bottom" ],
      "type": "string"
    },
    {
      "name": "dropDownWidth",
      "value": ["auto"],
      "allowedValues": [ ],
      "description": "Determines the width of the dropDown list.",
      "demoValues": [ "200", "400" ],
      "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 for the drop down list mode.",
      "demoValues": [ "contains", "equals" ],
      "type": "string"
    },
    {
      "name": "filterInputPlaceholder",
      "value": [""],
      "allowedValues": [ ],
      "description": "Determines the placeholder for the drop down list 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": [ "100", "500" ],
      "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": "itemHeight",
      "value": null,
      "allowedValues": [ ],
      "description": "Determines the height of the items.",
      "demoValues": ["20", "auto"],
      "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": "listBoxPlaceholder",
      "value": "No Items",
      "allowedValues": [ ],
      "description": "Determines the placeholder for the list box, displayed when there are no items in it.",
      "demoValues": [ "No Items", "Empty" ],
      "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": "Please Select:",
      "allowedValues": [],
      "description": "Determines the element's placeholder, displayed in the element's selection field.",
      "demoValues": [ "Choose:", "Submit" ],
      "type": "string"
    },
    {
      "name": "readonly",
      "value": false,
      "allowedValues": [ ],
      "description": "Disables user interaction with the element.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "selectionDisplayMode",
      "value": "default",
      "allowedValues": [ "default", "placeholder" ],
      "description": "Determines what will be displayed in the dropDown selection field.",
      "demoValues": [ "placeholder", "default" ],
      "type": "string"
    },
    {
      "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", "oneOrMany" ],
      "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 dropDownList.",
      "demoValues": [ true, false ],
      "type": "boolean"
    }
  ],
  "events": [
    {
      "name": "change",
      "description": "This event is triggered when selection is changed."
    },
    {
      "name": "close",
      "description": "This event is triggered when the drop down list is closed."
    },
    {
      "name": "closing",
      "description": "This event is triggered when the drop down list is closing."
    },
    {
      "name": "open",
      "description": "This event is triggered when the drop down list is opened."
    },
    {
      "name": "opening",
      "description": "This event is triggered when the drop down list is opening."
    },
    {
      "name": "scrollBottomReached",
      "description": "This event is triggered when user scrolls to the end of the dropDown list."
    },
    {
      "name": "scrollTopReached",
      "description": "This event is triggered when user scrolls to the start of the dropDown list."
    }
  ],
  "methods": [
  {
      "name": "clearItems",
      "description": "Removes all items from the drop down list.",
      "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": "close",
      "description": "Closes the dropDown list.",
      "demoValues": [ ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "None",
          "type": "null",
          "description": "",
          "optional": false
        }
      ]
    },
    {
      "name": "getItem",
      "description": "Returns an item instance from the dropDown list.",
      "demoValues": ["First", "Second"],
      "returnDataType": "HTMLElement",
      "arguments": [
        {
          "name": "value",
          "type": "string",
          "description": "The value of an item from the drop down list.",
          "optional": false
        }
      ]
    },
    {
      "name": "items",
      "description": "Returns an array with the items from the dropDown list.",
      "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": "open",
      "description": "Opens the dropDown list.",
      "demoValues": [ ],
      "returnDataType": "None",
      "arguments": [
        {
          "name": "None",
          "type": "null",
          "description": "",
          "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 dropDown list. ",
      "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 dropDown list. ",
      "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 dropDown list.",
      "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
        }
      ]
    }
  ]
}