{
    "description": {
        "author": "Salesforce",
        "text": [
            "Selector: .forceListViewManagerSplitViewList",
            "Represents the force:listViewManagerSplitViewList Aura component.",
            "Provides split view functionality with list records and column header controls."
        ]
    },
    "elements": [
        {
            "name": "columnHeader",
            "type": "container",
            "selector": {
                "css": ".slds-split-view__list-header.test-header"
            },
            "public": true
        },
        {
            "name": "columnHeaderTitle",
            "type": "container",
            "selector": {
                "css": ".test-title"
            },
            "public": true
        },
        {
            "name": "headerCheckbox",
            "type": [
                "editable",
                "actionable"
            ],
            "selector": {
                "css": ".forceSplitViewCheckbox input[type='checkbox']"
            },
            "public": true
        },
        {
            "name": "headerCheckboxContainer",
            "type": [
                "clickable",
                "actionable"
            ],
            "selector": {
                "css": ".forceSplitViewCheckbox"
            },
            "public": true
        },
        {
            "name": "sortIcon",
            "type": "utam-lightning/pageObjects/primitiveIcon",
            "selector": {
                "css": "lightning-icon"
            },
            "public": true
        },
        {
            "name": "helpText",
            "type": "utam-lightning/pageObjects/helptext",
            "selector": {
                "css": "lightning-helptext"
            },
            "public": true
        },
        {
            "name": "virtualRecordList",
            "type": "actionable",
            "selector": {
                "css": ".forceVirtualRecordList"
            },
            "public": true
        },
        {
            "name": "listRows",
            "type": "utam-force/pageObjects/splitViewListSelectableRecord",
            "selector": {
                "css": "ul li",
                "returnAll": true
            },
            "public": true
        },
        {
            "name": "spinner",
            "type": "actionable",
            "selector": {
                "css": ".forceComponentSpinner"
            },
            "public": true
        },
        {
            "name": "listStencil",
            "type": "container",
            "selector": {
                "css": ".forcePlaceholder[data-aura-class*='listStencil']"
            },
            "public": true
        },
        {
            "name": "ascendingSortIndicator",
            "type": "actionable",
            "selector": {
                "css": ".test-ascending"
            },
            "public": true
        },
        {
            "name": "descendingSortIndicator",
            "type": "actionable",
            "selector": {
                "css": ".test-descending"
            },
            "public": true
        },
        {
            "name": "rowByIndex",
            "type": [
                "clickable",
                "actionable"
            ],
            "selector": {
                "css": "ul li:nth-child(%d)",
                "args": [
                    {
                        "name": "index",
                        "type": "number"
                    }
                ]
            },
            "public": true
        },
        {
            "name": "rowByRecordId",
            "type": "utam-force/pageObjects/splitViewListSelectableRecord",
            "selector": {
                "css": "a[data-recordid*='%s']",
                "args": [
                    {
                        "name": "recordId",
                        "type": "string"
                    }
                ]
            },
            "public": true
        }
    ],
    "methods": [
        {
            "name": "getNumRows",
            "description": {
                "text": [
                    "Gets the total number of rows in the split view list"
                ],
                "return": "the number of rows"
            },
            "compose": [
                {
                    "element": "listRows",
                    "apply": "size",
                    "returnType": "number"
                }
            ]
        },
        {
            "name": "hasSpinner",
            "description": {
                "text": [
                    "Checks if the loading spinner is currently visible"
                ],
                "return": "true if spinner is displayed"
            },
            "compose": [
                {
                    "element": "spinner",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "isSortedAscending",
            "description": {
                "text": [
                    "Checks if the list is sorted in ascending order"
                ],
                "return": "true if sorted ascending"
            },
            "compose": [
                {
                    "element": "ascendingSortIndicator",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "isSortedDescending",
            "description": {
                "text": [
                    "Checks if the list is sorted in descending order"
                ],
                "return": "true if sorted descending"
            },
            "compose": [
                {
                    "element": "descendingSortIndicator",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "focusHeaderCheckbox",
            "description": {
                "text": [
                    "Focuses on the column header select all checkbox"
                ]
            },
            "compose": [
                {
                    "element": "headerCheckbox",
                    "apply": "focus"
                }
            ]
        },
        {
            "name": "toggleHeaderCheckbox",
            "description": {
                "text": [
                    "Clicks the header checkbox to select/deselect all rows"
                ]
            },
            "compose": [
                {
                    "element": "headerCheckboxContainer",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isHeaderCheckboxChecked",
            "description": {
                "text": [
                    "Checks if the header checkbox is checked"
                ],
                "return": "true if header checkbox is checked"
            },
            "compose": [
                {
                    "element": "headerCheckbox",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "checked"
                        }
                    ]
                }
            ]
        },
        {
            "name": "isHeaderCheckboxPartiallySelected",
            "description": {
                "text": [
                    "Checks if the header checkbox is in indeterminate state (some rows selected)"
                ],
                "return": "true if header checkbox is indeterminate"
            },
            "compose": [
                {
                    "element": "headerCheckboxContainer",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "class"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "isHeaderCheckboxFullySelected",
            "description": {
                "text": [
                    "Checks if the header checkbox is fully selected (all rows selected)"
                ],
                "return": "true if all rows are selected"
            },
            "compose": [
                {
                    "element": "headerCheckbox",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "checked"
                        }
                    ]
                }
            ]
        },
        {
            "name": "isHeaderCheckboxNotSelected",
            "description": {
                "text": [
                    "Checks if no rows are selected"
                ],
                "return": "true if no rows are selected"
            },
            "compose": [
                {
                    "element": "headerCheckbox",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "checked"
                        }
                    ]
                }
            ]
        },
        {
            "name": "isHeaderCheckboxDisabled",
            "description": {
                "text": [
                    "Checks if the header checkbox is disabled"
                ],
                "return": "true if header checkbox is disabled"
            },
            "compose": [
                {
                    "element": "headerCheckbox",
                    "apply": "isEnabled",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "isHelpTextVisible",
            "description": {
                "text": [
                    "Checks if help text is visible in the header"
                ],
                "return": "true if help text is visible"
            },
            "compose": [
                {
                    "element": "helpText",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "isVirtualRecordListVisible",
            "description": {
                "text": [
                    "Checks if the virtual record list is visible and loaded"
                ],
                "return": "true if virtual record list is visible"
            },
            "compose": [
                {
                    "element": "virtualRecordList",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        }
    ]
}