$('.btn_reject').click(_ =>
    Swal.fire({
        title: localized.rejection,
        html: `<div class="text-start fs-6 p-0 m-0">${localized.rejectionReasonQ}</div>`,
        icon: "question",
        input: "text",
        inputAttributes: {
            autocapitalize: "off"
        },
        showCancelButton: true,
        confirmButtonColor: "#3085d6",
        cancelButtonColor: "#d33",
        confirmButtonText: localized.complete,
        cancelButtonText: localized.back,
        showLoaderOnConfirm: true,
        preConfirm: async (reason) => {
            try {
                var res = await rejectEnvelope(reason);
                return res;
            } catch (error) {
                Swal.showValidationMessage(`
          Request failed: ${error}
        `);
            }
        },
        allowOutsideClick: () => !Swal.isLoading()
    }).then((result) => {
        if (!result.isConfirmed)
            return;
        const res = result.value;
        if (res.ok) {
            redirRejected()
        }
        else
            Swal.showValidationMessage(`Request failed: ${res.message}`);
    }));


class Comp {
    static ActPanel = class {
        static __Root;
        static get Root() {
            Comp.ActPanel.__Root ??= document.getElementById("flex-actio-panel")
            return Comp.ActPanel.__Root
        }

        static get Elements() {
            return [...Comp.ActPanel.Root.children]
        }

        static get IsHided() {
            return Comp.ActPanel.Root.style.display == 'none';
        }

        /**
         * @param {string} value
         */
        static set Display(value) {
            Comp.ActPanel.Root.style.display = value
            Comp.ActPanel.Elements.forEach(e => e.style.display = value);
        }

        static Toggle() {
            Comp.ActPanel.Display = Comp.ActPanel.IsHided ? '' : 'none'
        }
    }
}