{
    "description": {
        "author": "Salesforce",
        "text": [
            "Represents the lst-quick-filter-range LWC component.",
            "Provides range filtering functionality with min and max input fields."
        ]
    },
    "elements": [
        {
            "name": "fieldLegend",
            "type": "actionable",
            "selector": {
                "css": "legend.fieldLegend"
            },
            "public": true
        },
        {
            "name": "rowWrapper",
            "type": "container",
            "selector": {
                "css": ".rowWrapper"
            },
            "public": true
        },
        {
            "name": "lowerBoundInput",
            "type": [
                "editable",
                "actionable"
            ],
            "selector": {
                "css": "div.rowWrapper span.rangeInputWrapper:first-child lightning-input"
            },
            "public": true
        },
        {
            "name": "upperBoundInput",
            "type": [
                "editable",
                "actionable"
            ],
            "selector": {
                "css": "div.rowWrapper span:nth-child(3) lightning-input"
            },
            "public": true
        },
        {
            "name": "lowerBoundInputContainer",
            "type": "actionable",
            "selector": {
                "css": "div.rowWrapper span.rangeInputWrapper:first-child"
            },
            "public": true
        },
        {
            "name": "upperBoundInputContainer",
            "type": "actionable",
            "selector": {
                "css": "div.rowWrapper span:nth-child(3)"
            },
            "public": true
        },
        {
            "name": "minusSeparator",
            "type": "container",
            "selector": {
                "css": "span.minus"
            },
            "public": true
        },
        {
            "name": "clearButton",
            "type": "clickable",
            "selector": {
                "css": ".clearButton"
            },
            "public": true
        }
    ],
    "methods": [
        {
            "name": "getLowerBound",
            "description": {
                "text": [
                    "Gets the value from the lower bound (minimum) input field"
                ],
                "return": "the lower bound value"
            },
            "compose": [
                {
                    "element": "lowerBoundInput",
                    "apply": "getValue"
                }
            ]
        },
        {
            "name": "getUpperBound",
            "description": {
                "text": [
                    "Gets the value from the upper bound (maximum) input field"
                ],
                "return": "the upper bound value"
            },
            "compose": [
                {
                    "element": "upperBoundInput",
                    "apply": "getValue"
                }
            ]
        },
        {
            "name": "setLowerBound",
            "description": {
                "text": [
                    "Sets the value in the lower bound (minimum) input field"
                ]
            },
            "args": [
                {
                    "name": "value",
                    "type": "string"
                }
            ],
            "compose": [
                {
                    "element": "lowerBoundInput",
                    "apply": "clear"
                },
                {
                    "element": "lowerBoundInput",
                    "apply": "setText",
                    "args": [
                        {
                            "type": "argumentReference",
                            "name": "value"
                        }
                    ]
                }
            ]
        },
        {
            "name": "setUpperBound",
            "description": {
                "text": [
                    "Sets the value in the upper bound (maximum) input field"
                ]
            },
            "args": [
                {
                    "name": "value",
                    "type": "string"
                }
            ],
            "compose": [
                {
                    "element": "upperBoundInput",
                    "apply": "clear"
                },
                {
                    "element": "upperBoundInput",
                    "apply": "setText",
                    "args": [
                        {
                            "type": "argumentReference",
                            "name": "value"
                        }
                    ]
                }
            ]
        },
        {
            "name": "clear",
            "description": {
                "text": [
                    "Clears both input fields by clicking the clear button"
                ]
            },
            "compose": [
                {
                    "element": "clearButton",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isLowerBoundValid",
            "description": {
                "text": [
                    "Checks if the lower bound input field has no validation errors"
                ],
                "return": "true if lower bound is valid, false if there are errors"
            },
            "compose": [
                {
                    "element": "lowerBoundInputContainer",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "class"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "isUpperBoundValid",
            "description": {
                "text": [
                    "Checks if the upper bound input field has no validation errors"
                ],
                "return": "true if upper bound is valid, false if there are errors"
            },
            "compose": [
                {
                    "element": "upperBoundInputContainer",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "class"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "isValid",
            "description": {
                "text": [
                    "Checks if both input fields are valid (no validation errors)"
                ],
                "return": "true if both bounds are valid, false otherwise"
            },
            "compose": [
                {
                    "element": "lowerBoundInputContainer",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "class"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "getLabel",
            "description": {
                "text": [
                    "Gets the field legend/label text"
                ],
                "return": "the field label"
            },
            "compose": [
                {
                    "element": "fieldLegend",
                    "apply": "getText",
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "clickLowerBoundInput",
            "description": {
                "text": [
                    "Clicks on the lower bound input field to focus it"
                ]
            },
            "compose": [
                {
                    "element": "lowerBoundInput",
                    "apply": "focus"
                }
            ]
        },
        {
            "name": "clickUpperBoundInput",
            "description": {
                "text": [
                    "Clicks on the upper bound input field to focus it"
                ]
            },
            "compose": [
                {
                    "element": "upperBoundInput",
                    "apply": "focus"
                }
            ]
        },
        {
            "name": "isClearButtonVisible",
            "description": {
                "text": [
                    "Checks if the clear button is visible"
                ],
                "return": "true if clear button is visible"
            },
            "compose": [
                {
                    "element": "clearButton",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "getLowerBoundInputType",
            "description": {
                "text": [
                    "Gets the input type of the lower bound field (e.g., text, date, datetime, time)"
                ],
                "return": "the input type"
            },
            "compose": [
                {
                    "element": "lowerBoundInput",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "type"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "getUpperBoundInputType",
            "description": {
                "text": [
                    "Gets the input type of the upper bound field (e.g., text, date, datetime, time)"
                ],
                "return": "the input type"
            },
            "compose": [
                {
                    "element": "upperBoundInput",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "type"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        }
    ]
}