Fix Draftlol

Fix Draftlol's Support tab

// ==UserScript==
// @name         Fix Draftlol
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Fix Draftlol's Support tab
// @author       You
// @match        https://draftlol.dawe.gg/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=dawe.gg
// @grant        none
// @run-at document-start
// @license MIT
// ==/UserScript==

(function() {
    (window.webpackJsonp = window.webpackJsonp || []).push([
    [0], {
        30: function(e, t, a) {
            e.exports = a(53)
        },
        35: function(e, t, a) {},
        53: function(e, t, a) {
            "use strict";
            a.r(t);
            var n = a(0),
                c = a.n(n),
                r = a(28),
                o = a.n(r),
                i = a(1),
                l = (a(35), a(9)),
                s = a(2),
                u = a(4),
                d = a(13),
                m = a.n(d),
                p = a(14),
                b = a.n(p),
                g = function() {
                    var e = "https:" === window.location.protocol ? "wss" : "ws";
                    return "localhost:3000" === window.location.host ? "wss://draftlol.dawe.gg" : "".concat(e, "://").concat(window.location.host)
                },
                f = a(7),
                h = a.n(f),
                v = a(10),
                k = function() {
                    var e = Object(v.a)(h.a.mark(function e(t) {
                        var a;
                        return h.a.wrap(function(e) {
                            for (;;) switch (e.prev = e.next) {
                                case 0:
                                    return e.next = 2, fetch("https://ddragon.leagueoflegends.com/cdn/".concat(t, "/data/en_US/champion.json"));
                                case 2:
                                    return e.next = 4, e.sent.json();
                                case 4:
                                    return a = e.sent, e.abrupt("return", a.data);
                                case 6:
                                case "end":
                                    return e.stop()
                            }
                        }, e)
                    }));
                    return function(t) {
                        return e.apply(this, arguments)
                    }
                }(),
                E = function(e) {
                    var t = Object(n.useState)(void 0),
                        a = Object(i.a)(t, 2),
                        c = a[0],
                        r = a[1];
                    return Object(n.useEffect)(function() {
                        k(e).then(r)
                    }, [e]), c
                },
                y = [{
                    turn: 0,
                    display: "Disable First ban",
                    index: 0,
                    array: "blueBans"
                }, {
                    turn: 2,
                    display: "Disable Second ban",
                    index: 1,
                    array: "blueBans"
                }, {
                    turn: 4,
                    display: "Disable Third ban",
                    index: 2,
                    array: "blueBans"
                }, {
                    turn: 13,
                    display: "Disable Fourth ban",
                    index: 3,
                    array: "blueBans"
                }, {
                    turn: 15,
                    display: "Disable Fifth ban",
                    index: 4,
                    array: "blueBans"
                }, {
                    turn: 6,
                    display: "Disable First pick",
                    index: 0,
                    array: "bluePicks"
                }, {
                    turn: 9,
                    display: "Disable Second pick",
                    index: 1,
                    array: "bluePicks"
                }, {
                    turn: 10,
                    display: "Disable Third pick",
                    index: 2,
                    array: "bluePicks"
                }, {
                    turn: 17,
                    display: "Disable Fourth pick",
                    index: 3,
                    array: "bluePicks"
                }, {
                    turn: 18,
                    display: "Disable Fifth pick",
                    index: 4,
                    array: "bluePicks"
                }],
                O = [{
                    turn: 1,
                    display: "Disable First ban",
                    index: 0,
                    array: "redBans"
                }, {
                    turn: 3,
                    display: "Disable Second ban",
                    index: 1,
                    array: "redBans"
                }, {
                    turn: 5,
                    display: "Disable Third ban",
                    index: 2,
                    array: "redBans"
                }, {
                    turn: 12,
                    display: "Disable Fourth ban",
                    index: 3,
                    array: "redBans"
                }, {
                    turn: 14,
                    display: "Disable Fifth ban",
                    index: 4,
                    array: "redBans"
                }, {
                    turn: 7,
                    display: "Disable First pick",
                    index: 0,
                    array: "redPicks"
                }, {
                    turn: 8,
                    display: "Disable Second pick",
                    index: 1,
                    array: "redPicks"
                }, {
                    turn: 11,
                    display: "Disable Third pick",
                    index: 2,
                    array: "redPicks"
                }, {
                    turn: 16,
                    display: "Disable Fourth pick",
                    index: 3,
                    array: "redPicks"
                }, {
                    turn: 19,
                    display: "Disable Fifth pick",
                    index: 4,
                    array: "redPicks"
                }],
                C = y.concat(O),
                w = function(e) {
                    return function() {
                        e.current && e.current.select(), document.execCommand("copy")
                    }
                },
                N = function() {
                    return "".concat(window.location.protocol, "//").concat(window.location.host)
                },
                S = function() {
                    var e = Object(v.a)(h.a.mark(function e() {
                        var t, a, n, c, r, o, i;
                        return h.a.wrap(function(e) {
                            for (;;) switch (e.prev = e.next) {
                                case 0:
                                    return e.next = 2, fetch("https://raw.communitydragon.org/latest/plugins/rcp-fe-lol-champion-statistics/global/default/rcp-fe-lol-champion-statistics.js");
                                case 2:
                                    return e.next = 4, e.sent.text();
                                case 4:
                                    if (t = e.sent, a = /(?<=function\(a\){a.exports=){[A-Z,:]*?({.*}[A-Z,:]*?){5}}(?=})/, null != (n = t.match(a)) && 0 !== n.length) {
                                        e.next = 9;
                                        break
                                    }
                                    return e.abrupt("return", {
                                        TOP: {},
                                        JUNGLE: {},
                                        MIDDLE: {},
                                        BOTTOM: {},
                                        SUPPORT: {}
                                    });
                                case 9:
                                    return c = n[0], r = c.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": ').replace(/(\.\d+)/g, "0$1"), o = JSON.parse(r), i = {
                                        TOP: o.TOP,
                                        JUNGLE: o.JUNGLE,
                                        MIDDLE: o.MIDDLE,
                                        BOTTOM: o.BOTTOM,
                                        UTILITY: o.SUPPORT
                                    }, e.abrupt("return", i);
                                case 14:
                                case "end":
                                    return e.stop()
                            }
                        }, e)
                    }));
                    return function() {
                        return e.apply(this, arguments)
                    }
                }(),
                j = function() {
                    var e = Object(n.useState)(),
                        t = Object(i.a)(e, 2),
                        a = t[0],
                        c = t[1];
                    return Object(n.useEffect)(function() {
                        S().then(c)
                    }, []), a
                },
                x = function(e) {
                    return c.a.createElement("svg", Object.assign({}, e, {
                        version: "1.1",
                        viewBox: "0 0 32 32",
                        xmlns: "http://www.w3.org/2000/svg"
                    }), c.a.createElement("path", {
                        stroke: "#5d5f57",
                        d: "M3,3 29,29 M3,29 29,3"
                    }))
                },
                P = function(e) {
                    return c.a.createElement("svg", Object.assign({}, e, {
                        version: "1.1",
                        viewBox: "0 0 32 32",
                        xmlns: "http://www.w3.org/2000/svg"
                    }), c.a.createElement("path", {
                        fill: "#5d5f57",
                        d: "M19.4271164,20.4271164 C18.0372495,21.4174803 16.3366522,22 14.5,22 C9.80557939,22 6,18.1944206 6,13.5 C6,8.80557939 9.80557939,5 14.5,5 C19.1944206,5 23,8.80557939 23,13.5 C23,15.8472103 22.0486052,17.9722103 20.5104077,19.5104077 L26.5077736,25.5077736 C26.782828,25.782828 26.7761424,26.2238576 26.5,26.5 C26.2219324,26.7780676 25.7796227,26.7796227 25.5077736,26.5077736 L19.4271164,20.4271164 L19.4271164,20.4271164 Z M14.5,21 C18.6421358,21 22,17.6421358 22,13.5 C22,9.35786417 18.6421358,6 14.5,6 C10.3578642,6 7,9.35786417 7,13.5 C7,17.6421358 10.3578642,21 14.5,21 L14.5,21 Z"
                    }))
                },
                B = ["top", "jungle", "middle", "bottom", "utility"],
                R = function(e) {
                    var t = e.version,
                        a = e.isChampDisabled,
                        r = e.onChampSelected,
                        o = e.allowSelectDisabled,
                        l = E(t),
                        s = j(),
                        u = Object(n.useState)(""),
                        d = Object(i.a)(u, 2),
                        m = d[0],
                        p = d[1],
                        b = Object(n.useState)(""),
                        g = Object(i.a)(b, 2),
                        f = g[0],
                        h = g[1];
                    if (!l || !s) return c.a.createElement(c.a.Fragment, null);
                    var v = function(e) {
                            return p(e.target.value)
                        },
                        k = function() {
                            return p("")
                        },
                        y = function(e) {
                            return c.a.createElement("img", {
                                key: e,
                                alt: e,
                                onClick: (t = e, function(e) {
                                    var a = t.toUpperCase();
                                    h(f === a ? "" : a), e.preventDefault()
                                }),
                                className: "champsFiltersPositionsInd ".concat(e, " ").concat(e.toUpperCase() === f ? "highlight" : ""),
                                src: "/position-".concat(e, ".svg")
                            });
                            var t
                        };
                    return c.a.createElement("div", {
                        className: "champsWithFilters"
                    }, c.a.createElement("div", {
                        className: "champsFilters"
                    }, c.a.createElement("div", {
                        className: "champsFiltersPositions"
                    }, B.map(y)), c.a.createElement("div", {
                        className: "champsFiltersSearch"
                    }, c.a.createElement("input", {
                        value: m,
                        onChange: v
                    }), c.a.createElement(P, {
                        className: "search"
                    }), c.a.createElement(x, {
                        className: "cross",
                        onClick: k
                    }))), c.a.createElement("div", {
                        className: "roomChampionsList"
                    }, Object.values(l).filter(function(e) {
                        return new RegExp(m.split("").join(".*"), "i").test(e.name)
                    }).filter(function(e) {
                        return !(f in s) || e.key in s[f]
                    }).map(function(e) {
                        return c.a.createElement("img", {
                            key: e.id,
                            alt: e.name,
                            disabled: a(e.id),
                            onClick: function() {
                                return o || !a(e.id) ? r(e) : {}
                            },
                            className: "roomImgListItem",
                            onDragStart: function(e) {
                                return e.preventDefault()
                            },
                            src: "https://ddragon.leagueoflegends.com/cdn/".concat(t, "/img/champion/").concat(e.image.full, " ")
                        })
                    })))
                },
                D = 30,
                T = 30,
                I = Object(s.h)(function(e) {
                    var t = e.version,
                        a = Object(n.useState)(function() {
                            var t = new URLSearchParams(e.location.search),
                                a = Object.fromEntries(t).opts,
                                n = {};
                            try {
                                var c = b.a.decode(a);
                                c.startsWith("{") || (c = "{".concat(c, "}")), n = JSON.parse(c)
                            } catch (r) {}
                            return {
                                disabledBlueOptions: y.map(function(e) {
                                    return Object(u.a)({}, e, {
                                        isChecked: n.t && n.t.includes(e.turn) || !1
                                    })
                                }),
                                disabledRedOptions: O.map(function(e) {
                                    return Object(u.a)({}, e, {
                                        isChecked: n.t && n.t.includes(e.turn) || !1
                                    })
                                }),
                                disabledChamps: void 0,
                                timePerBan: n.b || D,
                                timePerPick: n.p || T
                            }
                        }),
                        r = Object(i.a)(a, 2),
                        o = r[0],
                        l = r[1],
                        d = Object(n.createRef)(),
                        p = Object(n.createRef)(),
                        f = Object(n.createRef)(),
                        h = Object(n.useState)(),
                        v = Object(i.a)(h, 2),
                        k = v[0],
                        C = v[1],
                        S = Object(n.useState)(!1),
                        j = Object(i.a)(S, 2),
                        x = j[0],
                        P = j[1],
                        B = E(t);
                    Object(n.useEffect)(function() {
                        if (null != B) {
                            var t = new URLSearchParams(e.location.search),
                                a = Object.fromEntries(t).opts,
                                n = {};
                            try {
                                var c = b.a.decode(a);
                                c.startsWith("{") || (c = "{".concat(c, "}")), n = JSON.parse(c)
                            } catch (r) {}
                            l(function(e) {
                                return Object(u.a)({}, e, {
                                    disabledChamps: Object.values(B).map(function(e) {
                                        return {
                                            champion: e,
                                            isChecked: n.c && n.c.some(function(t) {
                                                return t.toString() === e.key || t.toString() === e.id
                                            }) || !1
                                        }
                                    })
                                })
                            })
                        }
                    }, [B]);
                    var I = m()(g, {
                            onMessage: function(e) {
                                var t = JSON.parse(e.data);
                                "roomcreated" === t.type && C(t)
                            },
                            shouldReconnect: function() {
                                return !0
                            }
                        }).sendJsonMessage,
                        F = function(e) {
                            I({
                                type: "createroom",
                                blueName: d.current && d.current.value || "Blue",
                                redName: p.current && p.current.value || "Red",
                                disabledTurns: o.disabledBlueOptions.concat(o.disabledRedOptions).filter(function(e) {
                                    return e.isChecked
                                }).map(function(e) {
                                    return e.turn
                                }),
                                disabledChamps: o.disabledChamps ? o.disabledChamps.filter(function(e) {
                                    return e.isChecked
                                }).map(function(e) {
                                    return e.champion.id
                                }) : [],
                                timePerPick: o.timePerPick,
                                timePerBan: o.timePerBan
                            }), e.preventDefault()
                        },
                        L = function(e) {
                            return function() {
                                l(function(t) {
                                    return Object(u.a)({}, t, {
                                        disabledBlueOptions: t.disabledBlueOptions.map(function(t, a) {
                                            return a === e ? Object(u.a)({}, t, {
                                                isChecked: !t.isChecked
                                            }) : t
                                        })
                                    })
                                })
                            }
                        },
                        M = function(e) {
                            return function() {
                                l(function(t) {
                                    return Object(u.a)({}, t, {
                                        disabledRedOptions: t.disabledRedOptions.map(function(t, a) {
                                            return a === e ? Object(u.a)({}, t, {
                                                isChecked: !t.isChecked
                                            }) : t
                                        })
                                    })
                                })
                            }
                        },
                        J = function(e) {
                            return function(t) {
                                try {
                                    var a = Number(t.target.value);
                                    if (Number.isNaN(a) || a === 1 / 0) return;
                                    a < 0 && (a = 0), a > 3600 && (a = 3600), e(a)
                                } catch (n) {}
                            }
                        };
                    return k ? c.a.createElement(s.a, {
                        to: "/".concat(k.roomId, "/").concat(k.adminPassword, "/").concat(k.bluePassword, "/").concat(k.redPassword)
                    }) : c.a.createElement("div", {
                        className: "createContainer"
                    }, c.a.createElement("div", {
                        className: "sendLine",
                        onSubmit: F
                    }, c.a.createElement("label", null, "Blue team name"), c.a.createElement("input", {
                        className: "inputLine inputBlue",
                        type: "text",
                        placeholder: "Blue",
                        ref: d
                    }), c.a.createElement("label", null, "Red team name"), c.a.createElement("input", {
                        className: "inputLine inputRed",
                        type: "text",
                        placeholder: "Red",
                        ref: p
                    }), c.a.createElement("div", {
                        className: "sendButton",
                        onClick: F
                    }, "Create")), c.a.createElement("div", {
                        className: "advancedOptionsButton",
                        onClick: function() {
                            return P(function(e) {
                                return !e
                            })
                        }
                    }, "Adv options"), x ? c.a.createElement("div", {
                        className: "advancedOptionsSuperContainer"
                    }, c.a.createElement("div", null, c.a.createElement("label", null, "Permanent link to this configuration"), c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("input", {
                        ref: f,
                        className: "",
                        type: "text",
                        value: function() {
                            var e = {
                                t: o.disabledBlueOptions.concat(o.disabledRedOptions).filter(function(e) {
                                    return e.isChecked
                                }).map(function(e) {
                                    return e.turn
                                }),
                                c: o.disabledChamps ? o.disabledChamps.filter(function(e) {
                                    return e.isChecked
                                }).map(function(e) {
                                    return +e.champion.key
                                }) : [],
                                p: o.timePerPick,
                                b: o.timePerBan
                            };
                            e.t && 0 === e.t.length && delete e.t, e.c && 0 === e.c.length && delete e.c, e.p === T && delete e.p, e.b === D && delete e.b;
                            var t = JSON.stringify(e);
                            t = t.substring(1, t.length - 1);
                            var a = b.a.encode(t);
                            return 0 === Object.keys(e).length ? N() : "".concat(N(), "?opts=").concat(a)
                        }(),
                        readOnly: !0
                    }), c.a.createElement("div", {
                        className: "outputButton",
                        onClick: w(f)
                    }, "Copy"))), c.a.createElement("div", {
                        className: "advancedOptionContainer"
                    }, c.a.createElement("div", {
                        className: "inputDisabledOptionsContainer"
                    }, c.a.createElement("div", null, c.a.createElement("label", null, "Time per ban"), c.a.createElement("input", {
                        value: o.timePerBan,
                        onChange: J(function(e) {
                            l(function(t) {
                                return Object(u.a)({}, t, {
                                    timePerBan: e
                                })
                            })
                        })
                    })), c.a.createElement("div", null, c.a.createElement("label", null, "Time per pick"), c.a.createElement("input", {
                        value: o.timePerPick,
                        onChange: J(function(e) {
                            l(function(t) {
                                return Object(u.a)({}, t, {
                                    timePerPick: e
                                })
                            })
                        })
                    }))), c.a.createElement("div", {
                        className: "inputDisabledOptionsContainer"
                    }, "Blue", o.disabledBlueOptions.map(function(e, t) {
                        return c.a.createElement("div", {
                            className: "inputDisabledOptionsElement",
                            key: e.turn,
                            onClick: L(t)
                        }, c.a.createElement("input", {
                            readOnly: !0,
                            type: "checkbox",
                            checked: e.isChecked
                        }), e.display)
                    })), c.a.createElement("div", {
                        className: "inputDisabledOptionsContainer"
                    }, "Red", o.disabledRedOptions.map(function(e, t) {
                        return c.a.createElement("div", {
                            className: "inputDisabledOptionsElement",
                            key: e.turn,
                            onClick: M(t)
                        }, c.a.createElement("input", {
                            readOnly: !0,
                            type: "checkbox",
                            checked: e.isChecked
                        }), e.display)
                    }))), c.a.createElement("div", {
                        className: "disabledChamps"
                    }, c.a.createElement("div", {
                        className: "disabledChampsLabel"
                    }, " Disable champions "), c.a.createElement("div", null, c.a.createElement(R, {
                        version: t,
                        isChampDisabled: function(e) {
                            return o.disabledChamps.find(function(t) {
                                return t.champion.id === e
                            }).isChecked
                        },
                        onChampSelected: function(e) {
                            l(function(t) {
                                return Object(u.a)({}, t, {
                                    disabledChamps: t.disabledChamps && t.disabledChamps.map(function(t) {
                                        return t.champion.id === e.id ? Object(u.a)({}, t, {
                                            isChecked: !t.isChecked
                                        }) : t
                                    })
                                })
                            })
                        },
                        allowSelectDisabled: !0
                    })))) : c.a.createElement(c.a.Fragment, null))
                }),
                F = a(20);
            var L = function(e) {
                    var t = e.version,
                        a = e.appSettings,
                        r = Object(s.g)(),
                        o = r.id,
                        u = r.password,
                        d = E(t),
                        p = j(),
                        b = Object(n.useState)(),
                        f = Object(i.a)(b, 2),
                        h = f[0],
                        v = f[1],
                        k = Object(n.useState)("none"),
                        y = Object(i.a)(k, 2),
                        O = y[0],
                        w = y[1],
                        N = Object(n.useState)(""),
                        S = Object(i.a)(N, 2),
                        x = S[0],
                        P = S[1],
                        B = Object(n.useState)(0),
                        D = Object(i.a)(B, 2),
                        T = D[0],
                        I = D[1],
                        L = Object(n.useState)(Date.now()),
                        M = Object(i.a)(L, 2),
                        J = M[0],
                        W = M[1],
                        z = Object(n.useState)(),
                        U = Object(i.a)(z, 2),
                        A = U[0],
                        V = U[1],
                        Y = Object(F.a)("https://raw.communitydragon.org/latest/plugins/rcp-fe-lol-champ-select/global/default/sounds/sfx-cs-draft-notif-yourban.ogg", {
                            volume: .25
                        }),
                        _ = Object(i.a)(Y, 1)[0],
                        Z = Object(F.a)("https://raw.communitydragon.org/latest/plugins/rcp-fe-lol-champ-select/global/default/sounds/sfx-cs-draft-notif-yourpick.ogg", {
                            volume: .25
                        }),
                        q = Object(i.a)(Z, 1)[0],
                        H = m()(g, {
                            onOpen: function() {
                                P(""), H({
                                    type: "joinroom",
                                    roomId: o,
                                    password: u
                                })
                            },
                            onMessage: function(e) {
                                var t = JSON.parse(e.data);
                                "statechange" === t.type ? (v(function(e) {
                                    return a.soundsEnabled && function(e, t) {
                                        return (null != e || null != t) && (null == e || null == t || e.blueBans.length + e.redBans.length + e.bluePicks.length + e.redPicks.length !== t.blueBans.length + t.redBans.length + t.bluePicks.length + t.redPicks.length)
                                    }(e, t.newState) && t.newState && "none" !== O && "ongoing" === t.newState.state && t.newState.nextTeam === O && (console.log(t.newState.nextTeam, O), "ban" === t.newState.nextType ? _() : "pick" === t.newState.nextType && q()), t.newState
                                }), t.newState.nextTimeout >= 0 && W(Date.now() + t.newState.nextTimeout)) : "sidechoose" === t.type ? w(t.side) : "error" === t.type && P(t.reason)
                            },
                            onClose: function() {
                                return console.log("WebSocket Client Disconnected")
                            },
                            shouldReconnect: function() {
                                return !0
                            }
                        }).sendJsonMessage;
                    if (Object(n.useEffect)(function() {
                            var e = setInterval(function() {
                                I(Math.max(J - Date.now(), 0))
                            }, 200);
                            return function() {
                                clearInterval(e)
                            }
                        }, [J]), null == d || null == p || null == h) return c.a.createElement(c.a.Fragment, null);
                    var X = function(e) {
                            H({
                                type: "setready",
                                toggle: !0
                            }), e.preventDefault()
                        },
                        G = function() {
                            void 0 !== A && H({
                                type: "lockchampion",
                                chosenChamp: A.id
                            })
                        },
                        $ = function(e, t) {
                            var a = C.find(function(a) {
                                return a.index === t && a.array === e
                            });
                            return !!a && h.disabledTurns.includes(a.turn)
                        };
                    if (void 0 !== x && "" !== x) return console.log("error", x), c.a.createElement("div", null, "Error: ", x, c.a.createElement("br", null), c.a.createElement(l.b, {
                        to: "/"
                    }, "Create a new room"));
                    var K = function(e) {
                            return e.image ? "https://ddragon.leagueoflegends.com/cdn/".concat(t, "/img/champion/").concat(e.image.full) : "/square.png"
                        },
                        Q = function(e) {
                            return e.image ? "https://raw.communitydragon.org/latest/plugins/rcp-be-lol-game-data/global/default/v1/champion-splashes/".concat(e.key, "/").concat(e.key, "000.jpg") : "/rectangle.png"
                        },
                        ee = function(e) {
                            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
                                a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
                                n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                            return c.a.createElement("div", {
                                key: e.id,
                                className: "".concat(t, " champSquareSmall"),
                                onDragStart: function(e) {
                                    return e.preventDefault()
                                }
                            }, c.a.createElement("div", {
                                className: "champImageWrapper"
                            }, c.a.createElement("div", {
                                className: "champImageSmall",
                                "data-id": null != e.key ? e.key : -1,
                                style: {
                                    backgroundImage: n ? "url(/disabled.png)" : "url(".concat(K(e), ")")
                                }
                            })), a ? c.a.createElement("div", {
                                className: "champHighlight"
                            }) : c.a.createElement(c.a.Fragment, null))
                        },
                        te = function(e) {
                            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
                                n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
                                r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                            return c.a.createElement("div", {
                                className: "roomChampRow",
                                key: e.id
                            }, "large" === a.sideView ? function(e) {
                                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
                                    a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
                                    n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                                return c.a.createElement("div", {
                                    key: e.id,
                                    className: "".concat(t, " champSquareWide"),
                                    onDragStart: function(e) {
                                        return e.preventDefault()
                                    }
                                }, c.a.createElement("div", {
                                    className: "champImageWrapper"
                                }, c.a.createElement("div", {
                                    className: "champImage",
                                    "data-id": null != e.key ? e.key : -1,
                                    style: {
                                        backgroundImage: n ? "url(/disabled.png)" : "url(".concat(Q(e), ")")
                                    }
                                })), a ? c.a.createElement("div", {
                                    className: "champHighlight"
                                }) : c.a.createElement(c.a.Fragment, null), c.a.createElement("p", {
                                    className: "roomChampName roomBigChamp"
                                }, e.name))
                            }(e, t, n, r) : ee(e, t, n, r), "large" === a.sideView ? c.a.createElement(c.a.Fragment, null) : c.a.createElement("p", {
                                className: "roomChampName roomSmallChamp"
                            }, e.name))
                        },
                        ae = [-5, -4, -3, -2, -1],
                        ne = function(e) {
                            return c.a.createElement("div", {
                                className: "roomReady"
                            }, c.a.createElement("p", {
                                className: "roomTeamName"
                            }, "\xa0".concat(h["".concat(e, "Name")], "\xa0")), c.a.createElement("div", {
                                className: "roomReadyBackground roomReadyBackground".concat(e, " ").concat(h["".concat(e, "Ready")] && "waiting" === h.state || h.nextTeam === e && "ongoing" === h.state ? "active" : "")
                            }))
                        },
                        ce = {
                            blue: "Blue",
                            red: "Red",
                            ban: "Ban",
                            pick: "Pick"
                        },
                        re = function(e) {
                            return c.a.createElement("div", {
                                className: "roomBanRow ".concat(e)
                            }, (h["".concat(e, "Bans")] || []).concat(ae).slice(0, 5).map(function(e) {
                                return d[e] || {
                                    id: e.toString()
                                }
                            }).map(function(t, n) {
                                return c.a.createElement("div", {
                                    className: "banChampContainer"
                                }, c.a.createElement("img", {
                                    alt: t.name,
                                    src: "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'></svg>"
                                }), "normal" === a.bansPosition ? ee(t, "banChamp", h.nextTeam === e && h["".concat(e, "Bans")].length === n + 1 && "ban" === h.nextType, $("".concat(e, "Bans"), n)) : function(e) {
                                    var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "",
                                        a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
                                        n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                                    return c.a.createElement("div", {
                                        key: e.id,
                                        className: "".concat(t, " champSquareSmall"),
                                        onDragStart: function(e) {
                                            return e.preventDefault()
                                        }
                                    }, c.a.createElement("div", {
                                        className: "champImageWrapper"
                                    }, c.a.createElement("div", {
                                        className: "banChamp",
                                        "data-id": null != e.key ? e.key : -1,
                                        style: {
                                            backgroundImage: n ? "url(/disabled.png)" : "url(".concat(Q(e), ")")
                                        }
                                    })), a ? c.a.createElement("div", {
                                        className: "champHighlight"
                                    }) : c.a.createElement(c.a.Fragment, null))
                                }(t, "wrapper", h.nextTeam === e && h["".concat(e, "Bans")].length === n + 1 && "ban" === h.nextType, $("".concat(e, "Bans"), n)))
                            }))
                        },
                        oe = function(e) {
                            return c.a.createElement("div", {
                                className: "roomPickColumn ".concat(e)
                            }, (h["".concat(e, "Picks")] || []).concat(ae).slice(0, 5).map(function(e) {
                                return d[e] || {
                                    id: e.toString()
                                }
                            }).map(function(t, a) {
                                return te(t, "pickChamp", h.nextTeam === e && h["".concat(e, "Picks")].length === a + 1 && "pick" === h.nextType, $("".concat(e, "Picks"), a))
                            }))
                        };
                    return d && p ? c.a.createElement("div", {
                        className: "roomContainer ".concat("tournamentRealm" === a.bansPosition ? "bansTournament" : "")
                    }, function() {
                        return c.a.createElement("div", {
                            className: "roomTimerBar",
                            onClick: X
                        }, ne("blue"), "ongoing" === h.state ? c.a.createElement("div", {
                            className: "roomTimerContainer"
                        }, c.a.createElement("p", {
                            className: "roomTimer"
                        }, (e = T / 1e3, Math.trunc(e))), c.a.createElement("p", {
                            className: "roomTimerSubtext"
                        }, ce[h.nextTeam], " ", ce[h.nextType])) : c.a.createElement(c.a.Fragment, null), ne("red"));
                        var e
                    }(), oe("blue"), oe("red"), re("blue"), re("red"), c.a.createElement(R, {
                        version: t,
                        isChampDisabled: function(e) {
                            return [].concat(h.bluePicks || [], h.redPicks || [], h.blueBans || [], h.redBans || [], h.disabledChamps || []).some(function(t) {
                                return t === e
                            })
                        },
                        onChampSelected: function(e) {
                            H({
                                type: "choosechampion",
                                chosenChamp: e.id
                            }), V(e)
                        }
                    }), function() {
                        switch (h.state) {
                            case "waiting":
                                return "blue" === O ? c.a.createElement("div", {
                                    className: "roomLock ".concat(h.blueReady ? "" : "active"),
                                    onClick: X,
                                    onDragStart: function(e) {
                                        return e.preventDefault()
                                    }
                                }, h.blueReady ? "Waiting..." : "Ready") : "red" === O ? c.a.createElement("div", {
                                    className: "roomLock ".concat(h.redReady ? "" : "active"),
                                    onClick: X
                                }, h.redReady ? "Waiting..." : "Ready") : c.a.createElement("div", {
                                    className: "roomLock "
                                }, "Waiting... ");
                            case "ongoing":
                                return c.a.createElement("div", {
                                    className: "roomLock ".concat(h.nextTeam === O ? "active" : ""),
                                    onClick: G
                                }, h.nextTeam === O ? "Lock" : "Waiting...");
                            default:
                                return c.a.createElement("div", {
                                    className: "roomLock "
                                }, " Finished ")
                        }
                    }()) : c.a.createElement("div", null)
                },
                M = function() {
                    var e = Object(n.useState)(void 0),
                        t = Object(i.a)(e, 2),
                        a = t[0],
                        c = t[1];
                    return Object(n.useEffect)(function() {
                        Object(v.a)(h.a.mark(function e() {
                            return h.a.wrap(function(e) {
                                for (;;) switch (e.prev = e.next) {
                                    case 0:
                                        return e.t0 = c, e.next = 3, fetch("https://ddragon.leagueoflegends.com/api/versions.json");
                                    case 3:
                                        return e.next = 5, e.sent.json();
                                    case 5:
                                        e.t1 = e.sent[0], (0, e.t0)(e.t1);
                                    case 7:
                                    case "end":
                                        return e.stop()
                                }
                            }, e)
                        }))()
                    }, []), a
                },
                J = function() {
                    var e = Object(s.g)(),
                        t = Object(n.useState)(!1),
                        a = Object(i.a)(t, 2),
                        r = a[0],
                        o = a[1],
                        u = Object(n.createRef)(),
                        d = Object(n.createRef)(),
                        p = Object(n.createRef)(),
                        f = Object(n.createRef)(),
                        h = Object(n.useState)(),
                        v = Object(i.a)(h, 2),
                        k = v[0],
                        E = v[1],
                        y = Object(n.useState)(),
                        O = Object(i.a)(y, 2),
                        C = O[0],
                        N = O[1],
                        S = function() {
                            return "".concat(window.location.protocol, "//").concat(window.location.host)
                        },
                        j = function() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                            return "".concat(t ? "" : S(), "/").concat(e.roomId, "/").concat(e.bluePassword)
                        },
                        x = function() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                            return "".concat(t ? "" : S(), "/").concat(e.roomId, "/").concat(e.redPassword)
                        },
                        P = function() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                            return "".concat(t ? "" : S(), "/").concat(e.roomId)
                        },
                        B = function() {
                            return "Blue pick: ".concat(j(), "\t\t\t\nRed pick: ").concat(x(), "\t\t\t\nSpectator: ").concat(P())
                        },
                        R = m()(g, {
                            onOpen: function() {
                                R({
                                    type: "joinroom",
                                    roomId: e.roomId,
                                    password: e.adminPassword
                                })
                            },
                            onMessage: function(e) {
                                var t = JSON.parse(e.data);
                                "statechange" === t.type ? E(t.newState) : "adminstats" === t.type ? N(t) : t.type
                            },
                            shouldReconnect: function() {
                                return !0
                            }
                        }).sendJsonMessage,
                        I = function(e) {
                            return function() {
                                R({
                                    type: "cyclepicker",
                                    side: e
                                })
                            }
                        },
                        F = function(e) {
                            return e.target.select()
                        };
                    return c.a.createElement("div", {
                        className: "createContainer"
                    }, c.a.createElement("div", null, c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement(l.b, {
                        className: "outputButton outputButtonCenter",
                        to: function() {
                            var e = {
                                t: k && k.disabledTurns,
                                c: k && k.disabledChamps,
                                p: k && k.timePerPick,
                                b: k && k.timePerBan
                            };
                            e.t && 0 === e.t.length && delete e.t, e.c && 0 === e.c.length && delete e.c, e.p === T && delete e.p, e.b === D && delete e.b;
                            var t = b.a.encode(JSON.stringify(e));
                            return 0 === Object.keys(e).length ? "/" : "/?opts=".concat(t)
                        }(),
                        target: "_blank"
                    }, "New draft")), c.a.createElement("label", null, "Blue"), c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("input", {
                        ref: u,
                        className: "inputBlue",
                        type: "text",
                        value: j(),
                        readOnly: !0,
                        onFocus: F
                    }), c.a.createElement(l.b, {
                        className: "outputButton",
                        to: j(!0),
                        target: "_blank"
                    }, "Open"), c.a.createElement("div", {
                        className: "outputButton",
                        onClick: w(u)
                    }, "Copy")), c.a.createElement("label", null, "Red"), c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("input", {
                        ref: d,
                        className: "inputRed",
                        type: "text",
                        value: x(),
                        readOnly: !0,
                        onFocus: F
                    }), c.a.createElement(l.b, {
                        className: "outputButton",
                        to: x(!0),
                        target: "_blank"
                    }, "Open"), c.a.createElement("div", {
                        className: "outputButton",
                        onClick: w(d)
                    }, "Copy")), c.a.createElement("label", null, "Spectator"), c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("input", {
                        ref: p,
                        className: "",
                        type: "text",
                        value: P(),
                        readOnly: !0,
                        onFocus: F
                    }), c.a.createElement(l.b, {
                        className: "outputButton",
                        to: P(!0),
                        target: "_blank"
                    }, "Open"), c.a.createElement("div", {
                        className: "outputButton",
                        onClick: w(p)
                    }, "Copy")), void 0 === navigator.clipboard ? c.a.createElement("label", null, "All") : c.a.createElement("label", null), c.a.createElement("div", {
                        className: "outputContainer"
                    }, void 0 === navigator.clipboard ? c.a.createElement("input", {
                        ref: f,
                        type: "text",
                        value: B(),
                        readOnly: !0,
                        onFocus: F
                    }) : c.a.createElement(c.a.Fragment, null), c.a.createElement("div", {
                        className: "outputButton ".concat(void 0 !== navigator.clipboard ? "outputButtonCenter" : ""),
                        onClick: function() {
                            navigator.clipboard ? navigator.clipboard.writeText(B()) : (f.current && f.current.select(), document.execCommand("copy"))
                        }
                    }, "Copy All")), c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("div", {
                        className: "advancedOptionsButton",
                        onClick: function() {
                            return o(function(e) {
                                return !e
                            })
                        }
                    }, "Adv options")), r && c.a.createElement("div", {
                        className: "outputContainer"
                    }, c.a.createElement("div", {
                        className: "textContainer"
                    }, "Blue Pickers: ", C && C.numBluePickers), c.a.createElement("div", {
                        className: "outputButton inputBlue",
                        onClick: I("blue")
                    }, "Cycle Blue"), c.a.createElement("div", {
                        className: "textContainer"
                    }, "Red Pickers: ", C && C.numRedPickers), c.a.createElement("div", {
                        className: "outputButton inputRed",
                        onClick: I("red")
                    }, "Cycle Red"), c.a.createElement("div", {
                        className: "textContainer"
                    }, "Admins: ", C && C.numAdminPickers), c.a.createElement("div", {
                        className: "textContainer"
                    }, "Rest: ", C ? C.numTotalPickers - (C.numBluePickers + C.numRedPickers + C.numAdminPickers) : null))))
                },
                W = {
                    sideView: "large",
                    bansPosition: "tournamentRealm",
                    soundsEnabled: !0,
                    version: "2"
                },
                z = function(e) {
                    return function() {
                        e(function(e) {
                            return Object(u.a)({}, e, {
                                sideView: "small" === e.sideView ? "large" : "small"
                            })
                        })
                    }
                },
                U = function(e) {
                    return function() {
                        e(function(e) {
                            return Object(u.a)({}, e, {
                                soundsEnabled: !e.soundsEnabled
                            })
                        })
                    }
                },
                A = function(e) {
                    var t = e.appSettings,
                        a = e.appSettingsSetters,
                        r = Object(n.useState)(!1),
                        o = Object(i.a)(r, 2),
                        l = o[0],
                        s = o[1];
                    return c.a.createElement(c.a.Fragment, null, c.a.createElement("button", {
                        type: "button",
                        className: "burgerButton ".concat(l ? "open" : ""),
                        onClick: function() {
                            return s(!l)
                        }
                    }, c.a.createElement("div", null), c.a.createElement("div", null), c.a.createElement("div", null)), c.a.createElement("nav", {
                        className: "burgerMenu ".concat(l ? "open" : "")
                    }, c.a.createElement("div", {
                        onClick: a.cycleSideView
                    }, "Picks: ", "large" === t.sideView ? "large" : "small"), c.a.createElement("div", {
                        onClick: a.cycleBansView
                    }, "Bans:", " ", "tournamentRealm" === t.bansPosition ? "tournament" : "normal"), c.a.createElement("div", {
                        onClick: a.toggleSoundsEnabled
                    }, "Sounds: ", !0 === t.soundsEnabled ? "enabled" : "disabled")))
                },
                V = function(e) {
                    var t = document.implementation.createHTMLDocument(""),
                        a = document.createElement("style");
                    return a.textContent = e, t.body.appendChild(a), a.sheet.cssRules
                },
                Y = /data-id/,
                _ = /\.background/,
                Z = /\.ban/,
                q = /data-id="(\d+)"/,
                H = "\n".concat(".champImage", " {\n    background-size: 241%;\n    background-position: 52% 28%;\n    background-repeat: no-repeat;\n}"),
                X = "\n".concat(".banChamp", " {\n    background-size: 360%;\n    background-position-x: 51%;\n    background-position-y: 27%;\n    background-repeat: no-repeat;\n}"),
                G = "\n".concat(".champImage", '[data-id="-1"] {\n    background-size: 100%;\n    background-position: 50%;\n}'),
                $ = "\n".concat(".banChamp", '[data-id="-1"] {\n    background: no-repeat;\n    background-size: cover;\n    background-position: 50%;\n    filter: grayscale(0) !important;\n}'),
                K = function(e) {
                    var t, a = q.exec(e.selectorText)[1],
                        n = [];
                    if (_.test(e.selectorText)) t = "".concat(".champImage", '[data-id="').concat(a, '"]'), e.style.backgroundPositionX && n.push("background-position-x: ".concat(e.style.backgroundPositionX)), e.style.backgroundPositionY && n.push("background-position-y: ".concat(e.style.backgroundPositionY)), e.style.backgroundSize && n.push("background-size: ".concat(e.style.backgroundSize));
                    else if (Z.test(e.selectorText)) {
                        if (t = "".concat(".banChamp", '[data-id="').concat(a, '"]'), e.style.backgroundPositionX && n.push("background-position-x: ".concat(e.style.backgroundPositionX)), e.style.backgroundPositionY && n.push("background-position-y: ".concat(e.style.backgroundPositionY)), e.style.backgroundSize) {
                            var c = Number(e.style.backgroundSize.replace(/\w/, ""));
                            n.push("background-size: ".concat(c / 10, "%"))
                        }
                    } else t = '[data-id="'.concat(a, '"]'), e.style.transform && n.push("transform: ".concat(e.style.transform));
                    return "".concat(t, " { ").concat(n.join(";"), " }")
                },
                Q = function() {
                    Object(n.useEffect)(function() {
                        Object(v.a)(h.a.mark(function e() {
                            var t, a, n, c, r;
                            return h.a.wrap(function(e) {
                                for (;;) switch (e.prev = e.next) {
                                    case 0:
                                        return e.next = 2, fetch("https://raw.communitydragon.org/latest/plugins/rcp-fe-lol-esports-spectate/global/default/rcp-fe-lol-esports-spectate.css");
                                    case 2:
                                        return e.next = 4, e.sent.text();
                                    case 4:
                                        t = e.sent, a = V(t), (n = window.document.styleSheets[0]).insertRule(H, n.rules.length), n.insertRule(X, n.rules.length), n.insertRule(G, n.rules.length), n.insertRule($, n.rules.length), c = 0;
                                    case 12:
                                        if (!(c < a.length)) {
                                            e.next = 20;
                                            break
                                        }
                                        if ((r = a[c]) instanceof CSSStyleRule) {
                                            e.next = 16;
                                            break
                                        }
                                        return e.abrupt("continue", 17);
                                    case 16:
                                        Y.test(r.selectorText) && n.insertRule(K(r), n.cssRules.length);
                                    case 17:
                                        c++, e.next = 12;
                                        break;
                                    case 20:
                                        console.log(n.rules);
                                    case 21:
                                    case "end":
                                        return e.stop()
                                }
                            }, e)
                        }))()
                    }, [])
                },
                ee = function() {
                    Q();
                    var e = M(),
                        t = function() {
                            var e, t = Object(n.useState)(function() {
                                    var e = localStorage.getItem("draftlol-app-settings");
                                    if (null !== e) try {
                                        return JSON.parse(e).version !== W.version ? W : Object(u.a)({}, W, JSON.parse(e))
                                    } catch (t) {}
                                    return W
                                }),
                                a = Object(i.a)(t, 2),
                                c = a[0],
                                r = a[1];
                            return [c, {
                                cycleBansView: (e = r, function() {
                                    e(function(e) {
                                        return Object(u.a)({}, e, {
                                            bansPosition: "normal" === e.bansPosition ? "tournamentRealm" : "normal"
                                        })
                                    })
                                }),
                                cycleSideView: z(r),
                                toggleSoundsEnabled: U(r)
                            }]
                        }(),
                        a = Object(i.a)(t, 2),
                        r = a[0],
                        o = a[1];
                    return Object(n.useEffect)(function() {
                        localStorage.setItem("draftlol-app-settings", JSON.stringify(r))
                    }, [r]), e ? c.a.createElement(c.a.Fragment, null, c.a.createElement(l.a, null, c.a.createElement(s.d, null, c.a.createElement(s.b, {
                        path: "/champs"
                    }, c.a.createElement(R, {
                        version: e,
                        onChampSelected: function() {},
                        isChampDisabled: function() {
                            return !1
                        }
                    })), c.a.createElement(s.b, {
                        path: "/:roomId/:adminPassword/:bluePassword/:redPassword"
                    }, c.a.createElement(J, null)), c.a.createElement(s.b, {
                        path: "/:id/:password"
                    }, c.a.createElement(L, {
                        version: e,
                        appSettings: r
                    })), c.a.createElement(s.b, {
                        path: "/:id"
                    }, c.a.createElement(L, {
                        version: e,
                        appSettings: r
                    })), c.a.createElement(s.b, {
                        path: "/"
                    }, c.a.createElement(I, {
                        version: e
                    })))), c.a.createElement(A, {
                        appSettings: r,
                        appSettingsSetters: o
                    })) : c.a.createElement(l.a, null)
                };
            Boolean("localhost" === window.location.hostname || "[::1]" === window.location.hostname || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
            o.a.render(c.a.createElement(ee, null), document.getElementById("root")), "serviceWorker" in navigator && navigator.serviceWorker.ready.then(function(e) {
                e.unregister()
            })
        }
    },
    [
        [30, 1, 2]
    ]
]);
})();