{
    "root": true,
    "exposeRootElement": true,
    "selector": {
        "css": "runtime_omnistudio_common-typeahead"
    },
    "type": [
        "actionable",
        "editable",
        "clickable"
    ],
    "shadow": {
        "elements": [
            {
                "name": "elementByCssSelector",
                "public": true,
                "type": [
                    "clickable",
                    "actionable",
                    "editable"
                ],
                "selector": {
                    "css": "%s",
                    "args": [
                        {
                            "name": "elementName",
                            "type": "string"
                        }
                    ]
                }
            },
            {
                "name": "input",
                "public": true,
                "type": [
                    "clickable",
                    "actionable",
                    "editable"
                ],
                "selector": {
                    "css": "input"
                }
            },
            {
                "name": "labelSpanElem",
                "selector": {
                    "css": "label>span"
                }
            },
            {
                "name": "requiredAbbr",
                "selector": {
                    "css": "label > abbr"
                },
                "public": true,
                "type": [
                    "clickable",
                    "actionable",
                    "editable"
                ]
            },
            {
                "name": "label",
                "selector": {
                    "css": "label"
                }
            },
            {
                "name": "errorMessageElem",
                "selector": {
                    "css": "div[id^=\"errorMessageBlock\"]"
                }
            },
            {
                "name": "helpIcon",
                "public": true,
                "type": "utam-omnistudio-common/pageObjects/tooltip",
                "selector": {
                    "css": "runtime_omnistudio_common-tooltip"
                }
            },
            {
                "name": "lastItem",
                "selector": {
                    "css": "div[id^=\"last-item-option\"]"
                }
            },
            {
                "name": "options",
                "public": true,
                "nullable": true,
                "selector": {
                    "css": "[role=\"option\"]",
                    "returnAll": true
                }
            },
            {
                "name": "optionByIndex",
                "type": [
                    "actionable",
                    "clickable"
                ],
                "public": true,
                "nullable": true,
                "selector": {
                    "css": "[role=\"option\"][data-index=\"%d\"]",
                    "args": [
                        {
                            "name": "value",
                            "type": "number"
                        }
                    ]
                }
            }
        ]
    },
    "methods": [
        {
            "name": "waitForDropdown",
            "compose": [
                {
                    "apply": "waitFor",
                    "args": [
                        {
                            "type": "function",
                            "predicate": [
                                {
                                    "element": "input",
                                    "apply": "getAttribute",
                                    "args": [
                                        {
                                            "value": "aria-expanded"
                                        }
                                    ],
                                    "matcher": {
                                        "type": "stringEquals",
                                        "args": [
                                            {
                                                "value": "true"
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "name": "setValue",
            "compose": [
                {
                    "element": "input",
                    "apply": "focus"
                },
                {
                    "element": "input",
                    "apply": "setText",
                    "args": [
                        {
                            "name": "text",
                            "type": "string"
                        }
                    ]
                },
                {
                    "element": "input",
                    "apply": "blur"
                }
            ]
        },
        {
            "name": "getLabel",
            "compose": [
                {
                    "element": "label",
                    "apply": "getText"
                }
            ]
        },
        {
            "name": "blur",
            "compose": [
                {
                    "element": "input",
                    "apply": "focus"
                },
                {
                    "element": "input",
                    "apply": "blur"
                }
            ]
        },
        {
            "name": "focus",
            "compose": [
                {
                    "element": "input",
                    "apply": "focus"
                }
            ]
        },
        {
            "name": "getErrorMessage",
            "compose": [
                {
                    "element": "errorMessageElem",
                    "apply": "getText",
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "isReadonly",
            "compose": [
                {
                    "element": "input",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "readonly"
                        }
                    ],
                    "matcher": {
                        "type": "notNull"
                    }
                }
            ]
        },
        {
            "name": "getLabelStyleAttribute",
            "compose": [
                {
                    "element": "labelSpanElem",
                    "apply": "getAttribute",
                    "returnType": "string",
                    "args": [
                        {
                            "value": "style"
                        }
                    ]
                }
            ]
        },
        {
            "name": "getStyleAttribute",
            "compose": [
                {
                    "element": "input",
                    "apply": "getAttribute",
                    "returnType": "string",
                    "args": [
                        {
                            "value": "style"
                        }
                    ]
                }
            ]
        },
        {
            "name": "isValid",
            "compose": [
                {
                    "element": "input",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "aria-invalid"
                        }
                    ],
                    "matcher": {
                        "type": "stringEquals",
                        "args": [
                            {
                                "value": "false"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "name": "getNewLabel",
            "compose": [
                {
                    "element": "lastItem",
                    "apply": "getText",
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "getValue",
            "compose": [
                {
                    "element": "input",
                    "apply": "getValue"
                }
            ]
        }
    ],
    "description": {
        "text": [
            " "
        ],
        "author": "Salesforce"
    }
}