import { InputConnector } from "../index";

export class SelectInputConnector extends InputConnector{

    public override createInput(key: string, data: Record<string, any>, value: string): HTMLElement{
        let input = document.createElement("select");
        for(var k in data.values){
            var option = document.createElement("option");
            option.setAttribute("value", k);
            option.innerHTML = data.values[k];
            if(k === value){
                option.setAttribute("selected","selected");
            }
            input.appendChild(option);
        }
        input.placeholder = data.name || key;
        return input;
    }

    getSelectedElement(){
        return this.inputElement.options[this.inputElement.selectedIndex];
    }

    getValue(){
        const selectedElement = this.getSelectedElement();
        if(selectedElement){
            return selectedElement.value;
        }
    }

    public getTestData(): NodeEditorTestData {
        const testData = super.getTestData();
        testData.value = testData.value + ": " +  this.getSelectedElement().innerText;
        return testData;
    }
}