let formInputs = {};
const OpenMenu = (data) => {
    if (data == null || data == "") {
        console.log("No data detected");
        return null;
    }
    $(`.main-wrapper`).fadeIn(0);
    let form = ["
");
    $(".main-wrapper").html(form.join(" "));
    $("#qb-input-form").on("change", function (event) {
        if ($(event.target).attr("type") == "checkbox") {
            const value = $(event.target).is(":checked") ? "true" : "false";
            formInputs[$(event.target).attr("value")] = value;
        } else {
            formInputs[$(event.target).attr("name")] = $(event.target).val();
        }
    });
    $("#qb-input-form").on("submit", async function (event) {
        if (event != null) {
            event.preventDefault();
        }
        await $.post(`https://${GetParentResourceName()}/buttonSubmit`, JSON.stringify({ data: formInputs }));
        CloseMenu();
    });
};
const renderTextInput = (item) => {
    const { text, name } = item;
    formInputs[name] = item.default ? item.default : "";
    const isRequired = item.isRequired == "true" || item.isRequired ? "required" : "";
    const defaultValue = item.default ? `value="${item.default}"` : "";
    return `  `;
};
const renderPasswordInput = (item) => {
    const { text, name } = item;
    formInputs[name] = item.default ? item.default : "";
    const isRequired = item.isRequired == "true" || item.isRequired ? "required" : "";
    const defaultValue = item.default ? `value="${item.default}"` : "";
    return `  `;
};
const renderNumberInput = (item) => {
    try {
        const { text, name } = item;
        formInputs[name] = item.default ? item.default : "";
        const isRequired = item.isRequired == "true" || item.isRequired ? "required" : "";
        const defaultValue = item.default ? `value="${item.default}"` : "";
        return ` `;
    } catch (err) {
        console.log(err);
        return "";
    }
};
const renderRadioInput = (item) => {
    const { options, name, text } = item;
    formInputs[name] = options[0].value;
    let div = `";
    return div;
};
const renderCheckboxInput = (item) => {
    const { options, name, text } = item;
    let div = `";
    return div;
};
const renderSelectInput = (item) => {
    const { options, name, text } = item;
    let div = `${text}
`;
    div += ``;
    formInputs[name] = options[0].value;
    options.forEach((option, index) => {
        const isDefaultValue = item.default == option.value;
        div += `${option.text} `;
        if (isDefaultValue) {
            formInputs[name] = option.value;
        }
    });
    div += " ";
    return div;
};
const renderColorInput = (item) => {
    const { text, name } = item;
    formInputs[name] = item.default ? item.default : "#ffffff";
    const isRequired = item.isRequired == "true" || item.isRequired ? "required" : "";
    const defaultValue = item.default ? `value="${item.default}"` : "";
    return `  `;
};
const CloseMenu = () => {
    $(`.main-wrapper`).fadeOut(0);
    $("#qb-input-form").remove();
    formInputs = {};
};
const SetStyle = (style) => {
    var stylesheet = $(" ", {
        rel: "stylesheet",
        type: "text/css",
        href: `./styles/${style}.css`,
    });
    stylesheet.appendTo("head");
};
const CancelMenu = () => {
    $.post(`https://${GetParentResourceName()}/closeMenu`);
    return CloseMenu();
};
window.addEventListener("message", (event) => {
    const data = event.data;
    const info = data.data;
    const action = data.action;
    switch (action) {
        case "SET_STYLE":
            return SetStyle(info);
        case "OPEN_MENU":
            return OpenMenu(info);
        case "CLOSE_MENU":
            return CloseMenu();
        default:
            return;
    }
});
document.onkeyup = function (event) {
    const charCode = event.key;
    if (charCode == "Escape") {
        CancelMenu();
    } else if (charCode == "Enter") {
        SubmitData();
    }
};
// IDK why this is a thing ? what if they misclick?
$(document).click(function (event) {
    var $target = $(event.target);
    if (!$target.closest(".main-wrapper").length && $(".main-wrapper").is(":visible")) {
        CancelMenu();
    }
});