{
  "name": "MultiSelectFieldPro",
  "label": "Multi Select Field",
  "description": "Multi-select dropdown of dimension values from a dataset. Pairs with a string-array variable used in dataset filters; emits onChange.",
  "category": "Dropdowns - values",
  "defaultWidth": 300,
  "defaultHeight": 120,
  "inputs": [
    {
      "name": "dataset",
      "type": "dataset",
      "label": "Dataset",
      "required": true,
      "category": "Component Data"
    },
    {
      "name": "dimension",
      "type": "dimension",
      "label": "Dimension (to load Dropdown values)",
      "config": {
        "dataset": "dataset"
      },
      "required": true,
      "category": "Component Data",
      "inputs": [
        {
          "name": "prefix",
          "type": "string",
          "label": "Prefix"
        },
        {
          "name": "suffix",
          "type": "string",
          "label": "Suffix"
        },
        {
          "name": "displayName",
          "type": "string",
          "label": "Display name"
        },
        {
          "name": "maxCharacters",
          "type": "number",
          "label": "Maximum characters",
          "supportedTypes": [
            "string"
          ]
        },
        {
          "name": "decimalPlaces",
          "type": "number",
          "label": "Decimal places",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "currency",
          "type": "string",
          "label": "Currency",
          "description": "e.g. EUR",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "abbreviateLargeNumber",
          "type": "boolean",
          "label": "Abbreviate large number",
          "supportedTypes": [
            "number"
          ]
        }
      ]
    },
    {
      "name": "title",
      "type": "string",
      "label": "Title",
      "category": "Component Header"
    },
    {
      "name": "description",
      "type": "string",
      "label": "Description",
      "category": "Component Header"
    },
    {
      "name": "tooltip",
      "type": "string",
      "label": "Tooltip",
      "category": "Component Header"
    },
    {
      "name": "placeholder",
      "type": "string",
      "label": "Placeholder",
      "category": "Component Settings",
      "defaultValue": "Select values..."
    },
    {
      "name": "maxOptions",
      "type": "number",
      "label": "Maximum options",
      "category": "Component Settings",
      "defaultValue": 200
    },
    {
      "name": "selectedValues",
      "type": "string",
      "label": "Selected values",
      "array": true,
      "category": "Pre-configured Variables"
    },
    {
      "name": "optionalSecondDimension",
      "type": "dimension",
      "label": "Optional secondary dimension",
      "config": {
        "dataset": "dataset"
      },
      "required": false,
      "category": "Data Mapping for Interactions",
      "inputs": [
        {
          "name": "prefix",
          "type": "string",
          "label": "Prefix"
        },
        {
          "name": "suffix",
          "type": "string",
          "label": "Suffix"
        },
        {
          "name": "displayName",
          "type": "string",
          "label": "Display name"
        },
        {
          "name": "maxCharacters",
          "type": "number",
          "label": "Maximum characters",
          "supportedTypes": [
            "string"
          ]
        },
        {
          "name": "decimalPlaces",
          "type": "number",
          "label": "Decimal places",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "currency",
          "type": "string",
          "label": "Currency",
          "description": "e.g. EUR",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "abbreviateLargeNumber",
          "type": "boolean",
          "label": "Abbreviate large number",
          "supportedTypes": [
            "number"
          ]
        }
      ],
      "description": "Send a different dimension to embeddable when the user clicks. Must be unique."
    }
  ],
  "events": [
    {
      "name": "onChange",
      "label": "Selected values updated",
      "properties": [
        {
          "name": "value",
          "label": "Selected values",
          "type": "string",
          "array": true
        }
      ]
    }
  ],
  "variables": [
    {
      "name": "multi-select values",
      "type": "string",
      "array": true,
      "defaultValue": {
        "operation": "NO_FILTER",
        "value": null,
        "__embeddableVariableMeta": true
      },
      "inputs": [
        "selectedValues"
      ],
      "events": [
        {
          "name": "onChange",
          "property": "value"
        }
      ]
    }
  ]
}