{
    "description": {
        "author": "Salesforce",
        "text": [
            "Selector: .forceListViewSettingsDetail",
            "Represents the force:listViewSettingsDetail Aura component.",
            "Provides list view settings functionality including name, developer name, visibility, and column selection."
        ]
    },
    "elements": [
        {
            "name": "listViewNameInput",
            "type": "editable",
            "selector": {
                "css": "lightning-input[data-aura-class*='listName'] input"
            },
            "public": true
        },
        {
            "name": "listViewNameContainer",
            "type": "container",
            "selector": {
                "css": "lightning-input.listViewTitle"
            },
            "public": true
        },
        {
            "name": "developerNameInput",
            "type": "editable",
            "selector": {
                "css": "lightning-input[data-aura-class*='developerName'] input"
            },
            "public": true
        },
        {
            "name": "developerNameContainer",
            "type": "container",
            "selector": {
                "css": "lightning-input[data-aura-class*='developerName']"
            },
            "public": true
        },
        {
            "name": "visibilityPrivateRadio",
            "type": "clickable",
            "selector": {
                "css": "lightning-input[value='PRIVATE'] input[type='radio']"
            },
            "public": true
        },
        {
            "name": "visibilityGlobalRadio",
            "type": "clickable",
            "selector": {
                "css": "lightning-input[value='GLOBAL'] input[type='radio']"
            },
            "public": true
        },
        {
            "name": "visibilitySharedRadio",
            "type": "clickable",
            "selector": {
                "css": "lightning-input[value='SHARED'] input[type='radio']"
            },
            "public": true
        },
        {
            "name": "currentlySelectedVisibilityRadio",
            "type": "actionable",
            "selector": {
                "css": "lightning-input input[type='radio']:checked"
            },
            "public": true
        },
        {
            "name": "visibilitySection",
            "type": "container",
            "selector": {
                "css": ".visibilitySection"
            },
            "public": true
        },
        {
            "name": "entitySharePanel",
            "type": "utam-force/pageObjects/entityShare",
            "selector": {
                "css": ".forceEntityShare[data-aura-class*='list-share-with-groups']"
            },
            "public": true
        },
        {
            "name": "dualListbox",
            "type": "utam-lightning/pageObjects/dualListbox",
            "selector": {
                "css": "lightning-dual-listbox[data-aura-class*='listview-select-columns']"
            },
            "public": true
        },
        {
            "name": "pageLevelErrors",
            "type": "actionable",
            "selector": {
                "css": ".pageLevelErrors"
            },
            "public": true
        },
        {
            "name": "spinner",
            "type": "actionable",
            "selector": {
                "css": ".forceComponentSpinner[data-aura-class*='spinner']"
            },
            "public": true
        },
        {
            "name": "allUsersTooltip",
            "type": "utam-lightning/pageObjects/helptext",
            "selector": {
                "css": "lightning-helptext[data-aura-class*='allUsersTooltip']"
            },
            "public": true
        },
        {
            "name": "shareUsersTooltip",
            "type": "utam-lightning/pageObjects/helptext",
            "selector": {
                "css": "lightning-helptext[data-aura-class*='shareUsersTooltip']"
            },
            "public": true
        }
    ],
    "methods": [
        {
            "name": "getListViewName",
            "description": {
                "text": [
                    "Gets the current list view name from the input field"
                ],
                "return": "the list view name value"
            },
            "compose": [
                {
                    "element": "listViewNameInput",
                    "apply": "getValue"
                }
            ]
        },
        {
            "name": "setListViewName",
            "description": {
                "text": [
                    "Sets the list view name input field value"
                ]
            },
            "args": [
                {
                    "name": "name",
                    "type": "string"
                }
            ],
            "compose": [
                {
                    "element": "listViewNameInput",
                    "apply": "clear"
                },
                {
                    "element": "listViewNameInput",
                    "apply": "setText",
                    "args": [
                        {
                            "type": "argumentReference",
                            "name": "name"
                        }
                    ]
                }
            ]
        },
        {
            "name": "getDeveloperName",
            "description": {
                "text": [
                    "Gets the current developer name from the input field"
                ],
                "return": "the developer name value"
            },
            "compose": [
                {
                    "element": "developerNameInput",
                    "apply": "getValue"
                }
            ]
        },
        {
            "name": "setDeveloperName",
            "description": {
                "text": [
                    "Sets the developer name input field value"
                ]
            },
            "args": [
                {
                    "name": "devName",
                    "type": "string"
                }
            ],
            "compose": [
                {
                    "element": "developerNameInput",
                    "apply": "clear"
                },
                {
                    "element": "developerNameInput",
                    "apply": "setText",
                    "args": [
                        {
                            "type": "argumentReference",
                            "name": "devName"
                        }
                    ]
                }
            ]
        },
        {
            "name": "getCurrentVisibility",
            "description": {
                "text": [
                    "Gets the currently selected visibility setting"
                ],
                "return": "the visibility value (PRIVATE, GLOBAL, or SHARED)"
            },
            "compose": [
                {
                    "element": "currentlySelectedVisibilityRadio",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "value": "value"
                        }
                    ],
                    "returnType": "string"
                }
            ]
        },
        {
            "name": "setVisibilityToPrivate",
            "description": {
                "text": [
                    "Selects the private visibility radio button"
                ]
            },
            "compose": [
                {
                    "element": "visibilityPrivateRadio",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "setVisibilityToGlobal",
            "description": {
                "text": [
                    "Selects the global visibility radio button"
                ]
            },
            "compose": [
                {
                    "element": "visibilityGlobalRadio",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "setVisibilityToShared",
            "description": {
                "text": [
                    "Selects the shared visibility radio button"
                ]
            },
            "compose": [
                {
                    "element": "visibilitySharedRadio",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isVisibilityEditable",
            "description": {
                "text": [
                    "Checks if the visibility settings can be edited"
                ],
                "return": "true if global and shared radio buttons are enabled"
            },
            "compose": [
                {
                    "element": "visibilityGlobalRadio",
                    "apply": "isEnabled"
                }
            ]
        },
        {
            "name": "hasValidationError",
            "description": {
                "text": [
                    "Checks if there are any page-level validation errors"
                ],
                "return": "true if validation errors are present and visible"
            },
            "compose": [
                {
                    "element": "pageLevelErrors",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        },
        {
            "name": "isSpinnerVisible",
            "description": {
                "text": [
                    "Checks if the loading spinner is currently visible"
                ],
                "return": "true if spinner is visible"
            },
            "compose": [
                {
                    "element": "spinner",
                    "apply": "isVisible",
                    "returnType": "boolean"
                }
            ]
        }
    ]
}