(() => {
    "use strict";
    var t = {
            d: (e, s) => {
                for (var i in s) t.o(s, i) && !t.o(e, i) && Object.defineProperty(e, i, {
                    enumerable: !0,
                    get: s[i]
                })
            },
            o: (t, e) => Object.prototype.hasOwnProperty.call(t, e),
            r: t => {
                "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                    value: "Module"
                }), Object.defineProperty(t, "__esModule", {
                    value: !0
                })
            }
        },
        e = {};

    function s(t) {
        if (this.formData = {}, this.tree = {}, !(t instanceof FormData)) return this;
        this.formData = t;
        const e = () => {
            const t = new Map;
            return t.largestIndex = 0, t.set = function(e, s) {
                "" === e ? e = t.largestIndex++ : /^[0-9]+$/.test(e) && (e = parseInt(e), t.largestIndex <= e && (t.largestIndex = e + 1)), Map.prototype.set.call(t, e, s)
            }, t
        };
        this.tree = e();
        const s = /^(?<name>[a-z][-a-z0-9_:]*)(?<array>(?:\[(?:[a-z][-a-z0-9_:]*|[0-9]*)\])*)/i;
        for (const [t, i] of this.formData) {
            const o = t.match(s);
            if (o)
                if ("" === o.groups.array) this.tree.set(o.groups.name, i);
                else {
                    const t = [...o.groups.array.matchAll(/\[([a-z][-a-z0-9_:]*|[0-9]*)\]/gi)].map((([t, e]) => e));
                    t.unshift(o.groups.name);
                    const s = t.pop();
                    t.reduce(((t, s) => {
                        if (/^[0-9]+$/.test(s) && (s = parseInt(s)), t.get(s) instanceof Map) return t.get(s);
                        const i = e();
                        return t.set(s, i), i
                    }), this.tree).set(s, i)
                }
        }
    }
    t.r(e), t.d(e, {
        date: () => d,
        email: () => r,
        enum: () => f,
        file: () => m,
        maxdate: () => b,
        maxfilesize: () => z,
        maxitems: () => u,
        maxlength: () => v,
        maxnumber: () => x,
        mindate: () => y,
        minfilesize: () => A,
        minitems: () => h,
        minlength: () => g,
        minnumber: () => w,
        number: () => c,
        required: () => n,
        requiredfile: () => a,
        tel: () => l,
        url: () => p
    }), s.prototype.entries = function() {
        return this.tree.entries()
    }, s.prototype.get = function(t) {
        return this.tree.get(t)
    }, s.prototype.getAll = function(t) {
        if (!this.has(t)) return [];
        const e = t => {
            const s = [];
            if (t instanceof Map)
                for (const [i, o] of t) s.push(...e(o));
            else "" !== t && s.push(t);
            return s
        };
        return e(this.get(t))
    }, s.prototype.has = function(t) {
        return this.tree.has(t)
    }, s.prototype.keys = function() {
        return this.tree.keys()
    }, s.prototype.values = function() {
        return this.tree.values()
    };
    const i = s;

    function o({
        rule: t,
        field: e,
        error: s,
        ...i
    }) {
        this.rule = t, this.field = e, this.error = s, this.properties = i
    }
    const n = function(t) {
            if (0 === t.getAll(this.field).length) throw new o(this)
        },
        a = function(t) {
            if (0 === t.getAll(this.field).length) throw new o(this)
        },
        r = function(t) {
            if (!t.getAll(this.field).every((t => {
                    if ((t = t.trim()).length < 6) return !1;
                    if (-1 === t.indexOf("@", 1)) return !1;
                    if (t.indexOf("@") !== t.lastIndexOf("@")) return !1;
                    const [e, s] = t.split("@", 2);
                    if (!/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/.test(e)) return !1;
                    if (/\.{2,}/.test(s)) return !1;
                    if (/(?:^[ \t\n\r\0\x0B.]|[ \t\n\r\0\x0B.]$)/.test(s)) return !1;
                    const i = s.split(".");
                    if (i.length < 2) return !1;
                    for (const t of i) {
                        if (/(?:^[ \t\n\r\0\x0B-]|[ \t\n\r\0\x0B-]$)/.test(t)) return !1;
                        if (!/^[a-z0-9-]+$/i.test(t)) return !1
                    }
                    return !0
                }))) throw new o(this)
        },
        p = function(t) {
            const e = t.getAll(this.field);
            if (!e.every((t => {
                    if ("" === (t = t.trim())) return !1;
                    try {
                        return (t => -1 !== ["http", "https", "ftp", "ftps", "mailto", "news", "irc", "irc6", "ircs", "gopher", "nntp", "feed", "telnet", "mms", "rtsp", "sms", "svn", "tel", "fax", "xmpp", "webcal", "urn"].indexOf(t))(new URL(t).protocol.replace(/:$/, ""))
                    } catch {
                        return !1
                    }
                }))) throw new o(this)
        },
        l = function(t) {
            if (!t.getAll(this.field).every((t => (t = (t = t.trim()).replaceAll(/[()/.*#\s-]+/g, ""), /^[+]?[0-9]+$/.test(t))))) throw new o(this)
        },
        c = function(t) {
            if (!t.getAll(this.field).every((t => (t = t.trim(), !!/^[-]?[0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t) || !!/^[-]?(?:[0-9]+)?[.][0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t))))) throw new o(this)
        },
        d = function(t) {
            if (!t.getAll(this.field).every((t => /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t.trim())))) throw new o(this)
        },
        m = function(t) {
            if (!t.getAll(this.field).every((t => t instanceof File && this.accept ? .some((e => /^\.[a-z0-9]+$/i.test(e) ? t.name.toLowerCase().endsWith(e.toLowerCase()) : (t => {
                    const e = [],
                        s = t.match(/^(?<toplevel>[a-z]+)\/(?<sub>[*]|[a-z0-9.+-]+)$/i);
                    if (s) {
                        const t = s.groups.toplevel.toLowerCase(),
                            i = s.groups.sub.toLowerCase();
                        for (const [o, n] of (() => {
                                const t = new Map;
                                return t.set("jpg|jpeg|jpe", "image/jpeg"), t.set("gif", "image/gif"), t.set("png", "image/png"), t.set("bmp", "image/bmp"), t.set("tiff|tif", "image/tiff"), t.set("webp", "image/webp"), t.set("ico", "image/x-icon"), t.set("heic", "image/heic"), t.set("asf|asx", "video/x-ms-asf"), t.set("wmv", "video/x-ms-wmv"), t.set("wmx", "video/x-ms-wmx"), t.set("wm", "video/x-ms-wm"), t.set("avi", "video/avi"), t.set("divx", "video/divx"), t.set("flv", "video/x-flv"), t.set("mov|qt", "video/quicktime"), t.set("mpeg|mpg|mpe", "video/mpeg"), t.set("mp4|m4v", "video/mp4"), t.set("ogv", "video/ogg"), t.set("webm", "video/webm"), t.set("mkv", "video/x-matroska"), t.set("3gp|3gpp", "video/3gpp"), t.set("3g2|3gp2", "video/3gpp2"), t.set("txt|asc|c|cc|h|srt", "text/plain"), t.set("csv", "text/csv"), t.set("tsv", "text/tab-separated-values"), t.set("ics", "text/calendar"), t.set("rtx", "text/richtext"), t.set("css", "text/css"), t.set("htm|html", "text/html"), t.set("vtt", "text/vtt"), t.set("dfxp", "application/ttaf+xml"), t.set("mp3|m4a|m4b", "audio/mpeg"), t.set("aac", "audio/aac"), t.set("ra|ram", "audio/x-realaudio"), t.set("wav", "audio/wav"), t.set("ogg|oga", "audio/ogg"), t.set("flac", "audio/flac"), t.set("mid|midi", "audio/midi"), t.set("wma", "audio/x-ms-wma"), t.set("wax", "audio/x-ms-wax"), t.set("mka", "audio/x-matroska"), t.set("rtf", "application/rtf"), t.set("js", "application/javascript"), t.set("pdf", "application/pdf"), t.set("swf", "application/x-shockwave-flash"), t.set("class", "application/java"), t.set("tar", "application/x-tar"), t.set("zip", "application/zip"), t.set("gz|gzip", "application/x-gzip"), t.set("rar", "application/rar"), t.set("7z", "application/x-7z-compressed"), t.set("exe", "application/x-msdownload"), t.set("psd", "application/octet-stream"), t.set("xcf", "application/octet-stream"), t.set("doc", "application/msword"), t.set("pot|pps|ppt", "application/vnd.ms-powerpoint"), t.set("wri", "application/vnd.ms-write"), t.set("xla|xls|xlt|xlw", "application/vnd.ms-excel"), t.set("mdb", "application/vnd.ms-access"), t.set("mpp", "application/vnd.ms-project"), t.set("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"), t.set("docm", "application/vnd.ms-word.document.macroEnabled.12"), t.set("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"), t.set("dotm", "application/vnd.ms-word.template.macroEnabled.12"), t.set("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"), t.set("xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"), t.set("xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"), t.set("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"), t.set("xltm", "application/vnd.ms-excel.template.macroEnabled.12"), t.set("xlam", "application/vnd.ms-excel.addin.macroEnabled.12"), t.set("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"), t.set("pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"), t.set("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"), t.set("ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"), t.set("potx", "application/vnd.openxmlformats-officedocument.presentationml.template"), t.set("potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"), t.set("ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"), t.set("sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"), t.set("sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"), t.set("onetoc|onetoc2|onetmp|onepkg", "application/onenote"), t.set("oxps", "application/oxps"), t.set("xps", "application/vnd.ms-xpsdocument"), t.set("odt", "application/vnd.oasis.opendocument.text"), t.set("odp", "application/vnd.oasis.opendocument.presentation"), t.set("ods", "application/vnd.oasis.opendocument.spreadsheet"), t.set("odg", "application/vnd.oasis.opendocument.graphics"), t.set("odc", "application/vnd.oasis.opendocument.chart"), t.set("odb", "application/vnd.oasis.opendocument.database"), t.set("odf", "application/vnd.oasis.opendocument.formula"), t.set("wp|wpd", "application/wordperfect"), t.set("key", "application/vnd.apple.keynote"), t.set("numbers", "application/vnd.apple.numbers"), t.set("pages", "application/vnd.apple.pages"), t
                            })())("*" === i && n.startsWith(t + "/") || n === s[0]) && e.push(...o.split("|"))
                    }
                    return e
                })(e).some((e => (e = "." + e.trim(), t.name.toLowerCase().endsWith(e.toLowerCase()))))))))) throw new o(this)
        },
        f = function(t) {
            if (!t.getAll(this.field).every((t => this.accept ? .some((e => t === String(e)))))) throw new o(this)
        },
        h = function(t) {
            if (t.getAll(this.field).length < parseInt(this.threshold)) throw new o(this)
        },
        u = function(t) {
            const e = t.getAll(this.field);
            if (parseInt(this.threshold) < e.length) throw new o(this)
        },
        g = function(t) {
            const e = t.getAll(this.field);
            let s = 0;
            if (e.forEach((t => {
                    "string" == typeof t && (s += t.length)
                })), 0 !== s && s < parseInt(this.threshold)) throw new o(this)
        },
        v = function(t) {
            const e = t.getAll(this.field);
            let s = 0;
            if (e.forEach((t => {
                    "string" == typeof t && (s += t.length)
                })), parseInt(this.threshold) < s) throw new o(this)
        },
        w = function(t) {
            if (!t.getAll(this.field).every((t => !(parseFloat(t) < parseFloat(this.threshold))))) throw new o(this)
        },
        x = function(t) {
            if (!t.getAll(this.field).every((t => !(parseFloat(this.threshold) < parseFloat(t))))) throw new o(this)
        },
        y = function(t) {
            if (!t.getAll(this.field).every((t => (t = t.trim(), !(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t) && /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold) && t < this.threshold))))) throw new o(this)
        },
        b = function(t) {
            if (!t.getAll(this.field).every((t => (t = t.trim(), !(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t) && /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold) && this.threshold < t))))) throw new o(this)
        },
        A = function(t) {
            const e = t.getAll(this.field);
            let s = 0;
            if (e.forEach((t => {
                    t instanceof File && (s += t.size)
                })), s < parseInt(this.threshold)) throw new o(this)
        },
        z = function(t) {
            const e = t.getAll(this.field);
            let s = 0;
            if (e.forEach((t => {
                    t instanceof File && (s += t.size)
                })), parseInt(this.threshold) < s) throw new o(this)
        };
    var $;
    window.swv = {
        validators: e,
        validate: (t, s, n = {}) => {
            const a = (t.rules ? ? []).filter((({
                rule: t,
                ...s
            }) => "function" == typeof e[t] && ("function" != typeof e[t].matches || e[t].matches(s, n))));
            if (!a.length) return new Map;
            const r = new i(s),
                p = a.reduce(((t, s) => {
                    const {
                        rule: i,
                        ...n
                    } = s;
                    if (t.get(n.field) ? .error) return t;
                    try {
                        e[i].call({
                            rule: i,
                            ...n
                        }, r)
                    } catch (e) {
                        if (e instanceof o) return t.set(n.field, e)
                    }
                    return t
                }), new Map);
            for (const t of r.keys()) p.has(t) || p.set(t, {
                validInputs: r.getAll(t)
            });
            return p
        },
        ...null !== ($ = window.swv) && void 0 !== $ ? $ : {}
    }
})();