// ==UserScript== // @name 超兴学习通自动化 ——— Chaoxing Auto(学习通自动完成讨论) // @namespace https://github.com/lcandy2/Chaoxing-Auto // @version 1.2 // @author lcandy2 (甜檸Cirtron) // @description 超兴学习通自动化脚本,能自动完成讨论,具备自动完成讨论任务、一键回复指定话题、批量回复和创建话题等功能,让讨论任务变得轻松简单。 // @license None // @homepage https://greasyfork.org/scripts/489933 // @homepageURL https://github.com/lcandy2/user.js/tree/main/chaoxing.com // @source https://github.com/lcandy2/Chaoxing-Auto // @match https://mooc1.chaoxing.com/bbscircle/grouptopic* // @match https://mooc1.chaoxing.com/mooc-ans/bbscircle/grouptopic* // @match https://mooc1.chaoxing.com/bbscircle/gettopicdetail* // @match https://mooc1.chaoxing.com/mooc-ans/bbscircle/gettopicdetail* // @match https://groupweb.chaoxing.com/course/topic/topicList* // @match https://groupweb.chaoxing.com/course/topic/v3/bbs* // @require https://registry.npmmirror.com/react/18.2.0/files/umd/react.production.min.js // @require https://registry.npmmirror.com/react-dom/18.2.0/files/umd/react-dom.production.min.js // @require https://registry.npmmirror.com/react-draggable/4.4.6/files/build/web/react-draggable.min.js // @require https://registry.npmmirror.com/@emotion/react/11.11.4/files/dist/emotion-react.umd.min.js // @require https://registry.npmmirror.com/@emotion/styled/11.11.0/files/dist/emotion-styled.umd.min.js // @require https://registry.npmmirror.com/@mui/material/5.15.13/files/umd/material-ui.production.min.js // @grant GM_addStyle // @grant GM_deleteValue // @grant GM_getValue // @grant GM_setValue // ==/UserScript== (t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const o=document.createElement("style");o.textContent=t,document.head.append(o)})(' .floating-overlay{position:fixed;top:0;left:0;z-index:1001}.floating-overlay .MuiDialog-root{position:static}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.googlefonts.cn/s/materialicons/v141/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format("woff2")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased} '); (function (e, material, R, react, P, M) { 'use strict'; function _interopNamespaceDefault(e) { const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { for (const k in e) { if (k !== 'default') { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const e__namespace = /*#__PURE__*/_interopNamespaceDefault(e); function I(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } function F(e) { if (e.__esModule) return e; var t = e.default; if ("function" == typeof t) { var n = function e() { return this instanceof e ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments); }; n.prototype = t.prototype; } else n = {}; return Object.defineProperty(n, "__esModule", { value: !0 }), Object.keys(e).forEach((function(t) { var r = Object.getOwnPropertyDescriptor(e, t); Object.defineProperty(n, t, r.get ? r : { enumerable: !0, get: function() { return e[t]; } }); })), n; } var B = { exports: {} }, N = {}, L = e, z = Symbol.for("react.element"), D = Symbol.for("react.fragment"), W = Object.prototype.hasOwnProperty, V = L.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, H = { key: !0, ref: !0, __self: !0, __source: !0 }; function q(e, t, n) { var r, o = {}, i = null, a = null; for (r in void 0 !== n && (i = "" + n), void 0 !== t.key && (i = "" + t.key), void 0 !== t.ref && (a = t.ref), t) W.call(t, r) && !H.hasOwnProperty(r) && (o[r] = t[r]); if (e && e.defaultProps) for (r in t = e.defaultProps) void 0 === o[r] && (o[r] = t[r]); return { $$typeof: z, type: e, key: i, ref: a, props: o, _owner: V.current }; } N.Fragment = D, N.jsx = q, N.jsxs = q, B.exports = N; var K = B.exports; const U = new URL("https://mooc1.chaoxing.com/bbscircle/grouptopic"), X = new URL("https://mooc1.chaoxing.com/mooc-ans/bbscircle/grouptopic"), G = new URL("https://mooc1.chaoxing.com/bbscircle/gettopicdetail"), Y = new URL("https://mooc1.chaoxing.com/mooc-ans/bbscircle/gettopicdetail"), J = new URL("https://groupweb.chaoxing.com/course/topic/topicList"), Z = new URL("https://groupweb.chaoxing.com/course/topic/v3/bbs"), Q = window.location.href, ee = () => oe() || ae(), te = () => ie() || se(), ne = () => oe() || ie(), re = () => ae() || se(), oe = () => { const e = J.href; return Q.includes(e); }, ie = () => { const e = U.href, t = X.href; return Q.includes(e) || Q.includes(t); }, ae = () => { const e = Z.href; return Q.includes(e); }, se = () => { const e = G.href, t = Y.href; return Q.includes(e) || Q.includes(t); }; var le = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1 }; const ce = e => { let t; const n = new Set, r = (e, r) => { const o = "function" == typeof e ? e(t) : e; if (!Object.is(o, t)) { const e = t; t = (null != r ? r : "object" != typeof o || null === o) ? o : Object.assign({}, t, o), n.forEach((n => n(t, e))); } }, o = () => t, i = { setState: r, getState: o, getInitialState: () => a, subscribe: e => (n.add(e), () => n.delete(e)), destroy: () => { "production" !== (le ? "production" : void 0) && console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."), n.clear(); } }, a = t = e(r, o, i); return i; }; var ue = { exports: {} }, de = {}, pe = { exports: {} }, fe = {}, he = e; var me = "function" == typeof Object.is ? Object.is : function(e, t) { return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t; }, ge = he.useState, ye = he.useEffect, be = he.useLayoutEffect, ve = he.useDebugValue; function xe(e) { var t = e.getSnapshot; e = e.value; try { var n = t(); return !me(e, n); } catch (r) { return !0; } } var Se = "undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement ? function(e, t) { return t(); } : function(e, t) { var n = t(), r = ge({ inst: { value: n, getSnapshot: t } }), o = r[0].inst, i = r[1]; return be((function() { o.value = n, o.getSnapshot = t, xe(o) && i({ inst: o }); }), [ e, n, t ]), ye((function() { return xe(o) && i({ inst: o }), e((function() { xe(o) && i({ inst: o }); })); }), [ e ]), ve(n), n; }; fe.useSyncExternalStore = void 0 !== he.useSyncExternalStore ? he.useSyncExternalStore : Se, pe.exports = fe; var we = pe.exports, Ce = e, ke = we; var je = "function" == typeof Object.is ? Object.is : function(e, t) { return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t; }, Te = ke.useSyncExternalStore, Re = Ce.useRef, Ee = Ce.useEffect, $e = Ce.useMemo, _e = Ce.useDebugValue; de.useSyncExternalStoreWithSelector = function(e, t, n, r, o) { var i = Re(null); if (null === i.current) { var a = { hasValue: !1, value: null }; i.current = a; } else a = i.current; i = $e((function() { function e(e) { if (!l) { if (l = !0, i = e, e = r(e), void 0 !== o && a.hasValue) { var t = a.value; if (o(t, e)) return s = t; } return s = e; } if (t = s, je(i, e)) return t; var n = r(e); return void 0 !== o && o(t, n) ? t : (i = e, s = n); } var i, s, l = !1, c = void 0 === n ? null : n; return [ function() { return e(t()); }, null === c ? void 0 : function() { return e(c()); } ]; }), [ t, n, r, o ]); var s = Te(e, i[0], i[1]); return Ee((function() { a.hasValue = !0, a.value = s; }), [ s ]), _e(s), s; }, ue.exports = de; const Oe = I(ue.exports); var Ae = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1 }; const {useDebugValue: Pe} = e, {useSyncExternalStoreWithSelector: Me} = Oe; let Ie = !1; const Fe = e => e; const Be = e => { "production" !== (Ae ? "production" : void 0) && "function" != typeof e && console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`."); const t = "function" == typeof e ? (e => e ? ce(e) : ce)(e) : e, n = (e, n) => function(e, t = Fe, n) { "production" !== (Ae ? "production" : void 0) && n && !Ie && (console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"), Ie = !0); const r = Me(e.subscribe, e.getState, e.getServerState || e.getInitialState, t, n); return Pe(r), r; }(t, e, n); return Object.assign(n, t), n; }, Ne = e => e ? Be(e) : Be; var Le = { BASE_URL: "/", MODE: "production", DEV: !1, PROD: !0, SSR: !1 }; const ze = (e, t) => (...n) => Object.assign({}, e, t(...n)); function De(e, t) { let n; try { n = e(); } catch (r) { return; } return { getItem: e => { var r; const o = e => null === e ? null : JSON.parse(e, null == t ? void 0 : t.reviver), i = null != (r = n.getItem(e)) ? r : null; return i instanceof Promise ? i.then(o) : o(i); }, setItem: (e, r) => n.setItem(e, JSON.stringify(r, null == t ? void 0 : t.replacer)), removeItem: e => n.removeItem(e) }; } const We = e => t => { try { const n = e(t); return n instanceof Promise ? n : { then: e => We(e)(n), catch(e) { return this; } }; } catch (n) { return { then(e) { return this; }, catch: e => We(e)(n) }; } }, Ve = (e, t) => "getStorage" in t || "serialize" in t || "deserialize" in t ? ("production" !== (Le ? "production" : void 0) && console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."), ((e, t) => (n, r, o) => { let i = { getStorage: () => localStorage, serialize: JSON.stringify, deserialize: JSON.parse, partialize: e => e, version: 0, merge: (e, t) => ({ ...t, ...e }), ...t }, a = !1; const s = new Set, l = new Set; let c; try { c = i.getStorage(); } catch (g) {} if (!c) return e(((...e) => { console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`), n(...e); }), r, o); const u = We(i.serialize), d = () => { const e = i.partialize({ ...r() }); let t; const n = u({ state: e, version: i.version }).then((e => c.setItem(i.name, e))).catch((e => { t = e; })); if (t) throw t; return n; }, p = o.setState; o.setState = (e, t) => { p(e, t), d(); }; const f = e(((...e) => { n(...e), d(); }), r, o); let h; const m = () => { var e; if (!c) return; a = !1, s.forEach((e => e(r()))); const t = (null == (e = i.onRehydrateStorage) ? void 0 : e.call(i, r())) || void 0; return We(c.getItem.bind(c))(i.name).then((e => { if (e) return i.deserialize(e); })).then((e => { if (e) { if ("number" != typeof e.version || e.version === i.version) return e.state; if (i.migrate) return i.migrate(e.state, e.version); console.error("State loaded from storage couldn't be migrated since no migrate function was provided"); } })).then((e => { var t; return h = i.merge(e, null != (t = r()) ? t : f), n(h, !0), d(); })).then((() => { null == t || t(h, void 0), a = !0, l.forEach((e => e(h))); })).catch((e => { null == t || t(void 0, e); })); }; return o.persist = { setOptions: e => { i = { ...i, ...e }, e.getStorage && (c = e.getStorage()); }, clearStorage: () => { null == c || c.removeItem(i.name); }, getOptions: () => i, rehydrate: () => m(), hasHydrated: () => a, onHydrate: e => (s.add(e), () => { s.delete(e); }), onFinishHydration: e => (l.add(e), () => { l.delete(e); }) }, m(), h || f; })(e, t)) : ((e, t) => (n, r, o) => { let i = { storage: De((() => localStorage)), partialize: e => e, version: 0, merge: (e, t) => ({ ...t, ...e }), ...t }, a = !1; const s = new Set, l = new Set; let c = i.storage; if (!c) return e(((...e) => { console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`), n(...e); }), r, o); const u = () => { const e = i.partialize({ ...r() }); return c.setItem(i.name, { state: e, version: i.version }); }, d = o.setState; o.setState = (e, t) => { d(e, t), u(); }; const p = e(((...e) => { n(...e), u(); }), r, o); let f; o.getInitialState = () => p; const h = () => { var e, t; if (!c) return; a = !1, s.forEach((e => { var t; return e(null != (t = r()) ? t : p); })); const o = (null == (t = i.onRehydrateStorage) ? void 0 : t.call(i, null != (e = r()) ? e : p)) || void 0; return We(c.getItem.bind(c))(i.name).then((e => { if (e) { if ("number" != typeof e.version || e.version === i.version) return e.state; if (i.migrate) return i.migrate(e.state, e.version); console.error("State loaded from storage couldn't be migrated since no migrate function was provided"); } })).then((e => { var t; return f = i.merge(e, null != (t = r()) ? t : p), n(f, !0), u(); })).then((() => { null == o || o(f, void 0), f = r(), a = !0, l.forEach((e => e(f))); })).catch((e => { null == o || o(void 0, e); })); }; return o.persist = { setOptions: e => { i = { ...i, ...e }, e.storage && (c = e.storage); }, clearStorage: () => { null == c || c.removeItem(i.name); }, getOptions: () => i, rehydrate: () => h(), hasHydrated: () => a, onHydrate: e => (s.add(e), () => { s.delete(e); }), onFinishHydration: e => (l.add(e), () => { l.delete(e); }) }, i.skipHydration || h(), f || p; })(e, t); var He = (() => "undefined" != typeof GM_deleteValue ? GM_deleteValue : void 0)(), qe = (() => "undefined" != typeof GM_getValue ? GM_getValue : void 0)(), Ke = (() => "undefined" != typeof GM_setValue ? GM_setValue : void 0)(); const Ue = { getItem: async e => await qe(e) || null, setItem: async (e, t) => { await Ke(e, t); }, removeItem: async e => { await He(e); } }, Xe = Ne(ze({ logItems: [] }, (e => ({ addLogItem: t => { e((e => ({ logItems: [ ...e.logItems, t ] }))); } })))), Ge = Ne(Ve(ze({ standbyTime: 1e3, replyCountTimes: 1, newTopicCountTimes: 3, _hasHydrated: !1 }, (e => ({ setStandbyTime: t => { e({ standbyTime: t }); }, setReplyCountTimes: t => { e({ replyCountTimes: t }); }, setNewTopicCountTimes: t => { e({ newTopicCountTimes: t }); }, setHasHydrated: t => { e({ _hasHydrated: t }); } }))), { name: "topic_settings", storage: De((() => Ue)), onRehydrateStorage: () => e => { e && e.setHasHydrated(!0); } })), Ye = Ne(ze({ currentStatus: null, currentPage: null, isInActionFrame: !1, actionFrameStatus: {}, actionNewTopicStatus: null, topicDetail: {}, topicList: [], titleList: [], actionFrameRunningType: "" }, (e => ({ setCurrentStatus: t => { e({ currentStatus: t }); }, setCurrentPage: t => { e({ currentPage: t }); }, setIsInActionFrame: t => { e({ isInActionFrame: t }); }, setActionFrameStatus: t => { e({ actionFrameStatus: t }); }, setActionFrameStatusStatus: t => { e((e => ({ actionFrameStatus: { ...e.actionFrameStatus, status: t } }))); }, setActionFrameStatusIndex: t => { e((e => ({ actionFrameStatus: { ...e.actionFrameStatus, index: t } }))); }, setActionFrameStatusTotal: t => { e((e => ({ actionFrameStatus: { ...e.actionFrameStatus, total: t } }))); }, setActionFrameStatusSrc: t => { e((e => ({ actionFrameStatus: { ...e.actionFrameStatus, src: t } }))); }, setActionNewTopicStatus: t => { e({ actionNewTopicStatus: t }); }, setTopicDetail: t => { e({ topicDetail: t }); }, setTopicList: t => { e({ topicList: t }); }, setTitleList: t => { e({ titleList: t }); }, setActionFrameRunningType: t => { e({ actionFrameRunningType: t }); } })))); async function Je(e = 1) { const t = await Ge.getState().standbyTime; return new Promise((n => setTimeout(n, t * e))); } async function Ze() { const e = ae(), t = se(), n = Xe.getState().addLogItem, r = { title: void 0, content: void 0, replies: void 0 }; if (e && !t) try { const e = document.querySelector(".topicDetail_detail"), t = document.querySelector(".topicDetail_replyList"); if (!e || !t) return; const n = Qe(e), o = tt(e), i = await nt(t); r.title = n, r.content = o, r.replies = i; } catch (o) { console.error(o), n(`获取讨论详情失败:${o}`); } else if (t && !e) try { const e = document.querySelectorAll("div"); let t; for (let r = 0; r < e.length; r++) if (e[r].className.match(/content\d{4}/)) { t = e[r]; break; } if (!t) return; const n = rt(t), o = ot(t), i = it(t); r.title = n, r.content = o, r.replies = i; } catch (o) { console.error(o), n(`获取讨论详情失败:${o}`); } return r; } const Qe = e => { var t; const n = e.querySelector(".topicDetail_title"); return n ? null == (t = n.textContent) ? void 0 : t.trim() : void 0; }, et = e => { const t = document.querySelector(".topicDetail_replyList"); if (!t) return void console.error("Element not found"); if (t.children.length > 1) return void e(); const n = new MutationObserver(((t, n) => { for (let r of t) "childList" === r.type && e(); })); return n.observe(t, { attributes: !1, childList: !0, subtree: !0 }), () => n.disconnect(); }, tt = e => { const t = e.querySelector(".topicDetail_main"); if (!t) return; return Array.from(t.children).filter((e => !e.classList.contains("topicDetail_info"))).map((e => { var t; return null == (t = e.textContent) ? void 0 : t.trim(); })).join(" "); }, nt = async e => { const t = document.querySelector(".classReplyCount span"), n = Number((null == t ? void 0 : t.textContent) || 0); let r = (() => { Je(.5); return Array.from(e.querySelectorAll(".topicDetail_replyItem")).map((e => { var t, n; const r = e.querySelector(".author"), o = e.querySelector(".replyContent"); return { author: r ? null == (t = r.textContent) ? void 0 : t.trim() : "", content: o ? null == (n = o.textContent) ? void 0 : n.trim() : "" }; })); })(); return 0 === n || r.length > 0 ? r : [ { content: "NEED_OBSERVE" } ]; }, rt = e => { var t; const n = e.querySelector(".oneDiv"); let r; if (n) { let e = n.querySelector("h3"); if (e) { let n = e.querySelector("em"); n && n.remove(), r = null == (t = e.textContent) ? void 0 : t.trim(); } } return r; }, ot = e => { var t; const n = e.querySelector("#topicContent"); return n ? null == (t = n.textContent) ? void 0 : t.trim() : void 0; }, it = e => { var t, n; let r, o = []; if (e && e.children.length > 1) { r = e.children[1]; let i = r.querySelectorAll("div"); for (let e = 0; e < i.length; e++) { if (i[e].parentElement !== r) continue; let a = {}, s = i[e].querySelector("p > span.name"), l = i[e].querySelector("h3"); s && (a.author = null == (t = s.textContent) ? void 0 : t.trim()), l && (a.content = null == (n = l.textContent) ? void 0 : n.trim()), a.content && o.push(a); } } return o; }, at = window.location.hash, st = "cxauto_success_", lt = "cxauto_action_trigger", ct = "cxauto_action_reply_index_", ut = "cxauto_action_new_topic_title_", dt = e => { at.includes(e) || window.history.replaceState(null, "", `${at}#${e}`); }, pt = () => at.includes("cxauto_start"), ft = () => { const e = st, t = at.match(new RegExp(`${e}(\\w+)`)); return t ? t[1] : at.includes(e.slice(0, -1)); }, ht = () => { const e = lt; return at.includes(e); }, mt = () => { const e = ct, t = at.match(new RegExp(`${e}(\\d+)`)); return t ? parseInt(t[1]) : 0; }, gt = (e, t) => { const n = st + e; return t ? `${t}#${n}` : (dt(n), !0); }, yt = e => e ? `${e}#${lt}` : (dt(lt), !0), bt = (e, t) => { const n = `${ct}${e}`; return t ? `${t}#${n}` : (dt(n), !0); }, vt = (e, t) => { const n = `${ut}${e}`; return t ? `${t}#${n}` : (dt(n), !0); }, xt = ee() && !te() ? "new" : te() && !ee() ? "legacy" : null; function St(e) { const t = Xe.getState().addLogItem; t("----- 执行失败 -----"), t(e.toString()), t(`-v=${xt}`), console.error(e, xt); } const wt = () => Array.from(document.querySelectorAll("div#showTopics div.content1118")).filter((e => Array.from(e.children).some((e => e.classList.contains("oneRight"))))).map((e => { var t, n, r; const o = e.querySelector("h3 a"), i = (null == (t = null == o ? void 0 : o.textContent) ? void 0 : t.trim()) || "", a = e.querySelector("p.clearfix"); return { title: i, author: (null == (n = null == a ? void 0 : a.children[0].textContent) ? void 0 : n.trim()) || "", replyCount: (null == (r = null == a ? void 0 : a.children[1].textContent) ? void 0 : r.trim()) || "", url: (null == o ? void 0 : o.getAttribute("href")) || "" }; })), Ct = () => Array.from(document.querySelectorAll("div.dataCon ul.dataBody li.dataBody_topic")).map((e => { var t, n, r; const o = e.querySelector("span.author"), i = (null == (t = null == o ? void 0 : o.textContent) ? void 0 : t.trim()) || "", a = e.querySelector("div.topic_interactive div.comment span"), s = (null == (n = null == a ? void 0 : a.textContent) ? void 0 : n.trim()) || "", l = e.querySelector("a.topicli_link"), c = (null == l ? void 0 : l.getAttribute("href")) || ""; return { title: (null == (r = null == l ? void 0 : l.textContent) ? void 0 : r.trim()) || "", author: i, replyCount: s, url: c }; })), kt = ae() && !se() ? "new" : se() && !ae() ? "legacy" : null, jt = "new" === kt, Tt = Xe.getState().addLogItem; const Rt = (e, t) => { if (!e.replies) throw new Error("topicDetail.replies is undefined"); const n = e.replies.map((e => e.content || "")), r = []; if (n.length <= 0) { for (let n = 0; n < t; n++) r.push(e.content || e.title || ""); return r; } let o = !0; n.length <= t && (o = !1); for (let i = 0; i < t; i++) { const e = Math.floor(Math.random() * n.length); r.push(n[e]), o && n.splice(e, 1); } return r; }, Et = async e => { try { const t = document.querySelector(e); if (console.log(t, e), !t) throw new Error("无法找到进行回复的按钮。"); return t.click(), Tt("已点击进行回复的按钮,即将继续..."), await Je(.1), !0; } catch (t) { return St(t), !1; } }, $t = async e => { try { const t = document.querySelector(e); if (!t) throw new Error("无法找到用于回复的文本区域。"); return t.click(), t.focus(), Tt("已找到用于回复的文本区域,等待回复..."), await Je(.1), t; } catch (t) { St(t); } }, _t = async ({selector: e, textarea: t, contextToReply: n}) => { try { const r = document.querySelector(e); if (!r || !t) throw new Error("Required elements not found."); for (let e = 0; e < n.length; e++) t.value = n[e], Tt(`Reply ${n[e]} filled, waiting to submit...`), "legacy" === kt && r.addEventListener("click", (function(e) { e.preventDefault(); })), await Je(1), r.click(), t.value = "", e !== n.length - 1 && (Tt("Reply submitted, waiting to continue..."), await Je(1)); return !0; } catch (r) { St(r); } }; const Ot = ({setCurrentStatus: e}) => async () => { e("triggered"); }, At = async ({setCurrentStatus: e}) => { e(await async function() { const {replyCountTimes: e} = Ge.getState(), {topicDetail: t} = Ye.getState(), n = Rt(t, e); console.debug("currentVersion", kt); try { if (n.length <= 0) throw new Error("未获取到回复评论。"); const e = jt ? "div.topicDetail_detail div.replyBtn" : "div.oneDiv p.clearfix a.tl1", t = jt ? "div.topicDetail_editContainer div.replyEdit textarea" : "div.plDiv div.hfpl textarea", r = jt ? "div.replyEditBtnGroup div.addReply" : "div.plDiv div.hfpl input.grenBtn", o = await Et(e), i = await $t(t), a = await _t({ selector: r, textarea: i, contextToReply: n }); if (o && i && a) return !0; } catch (r) { return St(r), !1; } }() ? "success" : "failed"); }, Pt = e => { const t = { type: "cxauto_action_frame", status: "success", index: e }; console.debug("PostMessageSuccess", t), window.parent.postMessage(t, "*"); }, Mt = () => { window.addEventListener("message", (e => { if (console.debug("ReceiveMessage", e.data), "cxauto_action_frame" === e.data.type) { const t = Ye.getState().actionFrameStatus.status, n = Ye.getState().actionFrameStatus.index; "success" === e.data.status && "running" === t && n === e.data.index && Ye.getState().setActionFrameStatusStatus("success"); } })); }, It = Ye.getState().setActionFrameStatusStatus, Ft = Ye.getState().setActionFrameStatusIndex, Bt = Ye.getState().setActionFrameStatusTotal, Nt = Ye.getState().setActionFrameStatusSrc, Lt = Xe.getState().addLogItem; const zt = () => { const {topicList: e} = Ye.getState(); return e.length, Ft(0), Bt(e.length), Nt(""), !0; }, Dt = async (e, t) => (Lt("等待继续..."), Nt(""), await Je(.5), e === t - 1 || (Ft(e + 1), It("waitingToStart"), !1)); async function Wt() { let e, t, n; Ge.getState(), Ye.getState(), ee() ? (e = "div.bnt_group a.jb_btn", t = "div.edit_main div.edit_title input", n = "div.edit_main div.edit_btn div.jb_btn") : (e = "div.operations a.addTopics", t = "form#addGroupTopicForm input#c_title", n = "div.listBtn a.qdBtn"); if (await Ht(e)) { let e = (() => { const e = ut, t = at.match(new RegExp(`${e}([^#]+)`)); return t ? decodeURIComponent(t[1]) : ""; })(); "" === e && (e = "如何学好该课程?"); if (await qt(t, e)) { if (await Kt(n)) return !0; } } return !1; } const Vt = Xe.getState().addLogItem, Ht = async e => { try { const t = document.querySelector(e); if (console.log(t, e), !t) throw new Error("无法找到发表讨论的按钮。"); return t.click(), Vt("已点击进行回复的按钮,即将继续..."), await Je(.3), !0; } catch (t) { return St(t), !1; } }, qt = async (e, t) => { try { const n = document.querySelector(e); if (!n) throw new Error("无法找到输入标题的输入框。"); return n.click(), n.focus(), n.value = t, Vt(`已输入标题:${t},即将继续...`), await Je(1), !0; } catch (n) { return St(n), !1; } }, Kt = async e => { try { const t = document.querySelector(e); if (!t) throw new Error("无法找到发表讨论的按钮。"); return Vt("已点击发表讨论的按钮,即将继续..."), te() && (window.alert = () => !1), t.click(), await Je(1), !0; } catch (t) { return St(t), !1; } }, Ut = async ({setCurrentStatus: e}) => { e(await Wt() ? "success" : "failed"); }; const Xt = Ye.getState().setActionFrameStatusStatus, Gt = Ye.getState().setActionFrameStatusIndex, Yt = Ye.getState().setActionFrameStatusTotal, Jt = Ye.getState().setActionFrameStatusSrc, Zt = Xe.getState().addLogItem; const Qt = () => { const {newTopicCountTimes: e} = Ge.getState(), {topicList: t, setTitleList: n} = Ye.getState(), r = e, o = ((e, t) => { const n = [], r = e.map((e => e.title)).filter((e => void 0 !== e)); if (r.length <= 0) { for (let e = 0; e < t; e++) n.push("如何学好该课程?"); return n; } let o = !0; r.length <= t && (o = !1); for (let i = 0; i < t; i++) { const e = Math.floor(Math.random() * r.length); let t = r[e]; o && r.splice(e, 1), n.push(t); } return n; })(t, r); return n(o), Gt(0), Yt(r), Jt(""), !0; }, en = async (e, t) => (Zt("等待继续..."), Jt(""), await Je(.5), e === t - 1 || (Gt(e + 1), Xt("waitingToStart"), !1)); function tn() { const {currentPage: e$1, setCurrentPage: t} = Ye(), {topicDetail: o, setTopicDetail: i} = Ye(), {topicList: a, setTopicList: s} = Ye(), {currentStatus: p, setCurrentStatus: f} = Ye(), {isInActionFrame: h, setIsInActionFrame: m} = Ye(), [g, y] = e.useState(!0), {addLogItem: b} = Xe(), {actionFrameStatus: v, setActionFrameStatus: x, setActionFrameStatusStatus: S} = Ye(), w = v.status, {actionFrameRunningType: C, setActionFrameRunningType: k} = Ye(); e.useEffect((() => { const e = ft(); !0 === e || "singleReply" === e || "newTopic" === e ? f("success") : "multiReply" === e && S("finished"), ht() && m(!0), re() ? t("detail") : ne() && t("list"); }), []), e.useEffect((() => { if ("list" === e$1 || "detail" === e$1) { let t; switch (e$1) { case "detail": t = "讨论详情", (async () => { const e = await Ze(); if (e) if (e.replies && e.replies[0] && e.replies[0].content && "NEED_OBSERVE" === e.replies[0].content) { let e; console.debug("NEED_OBSERVE"), e = et((async () => { console.log("Replies changed"), e && e(); const t = await Ze(); t && (console.debug("topicDetail", t), i(t), p || f("idle")); })); } else i(e), p || f("idle"); })(); break; case "list": t = "讨论列表"; const e = function() { const e = "new" === (oe() && !ie() ? "new" : ie() && !oe() ? "legacy" : null); try { if (e) { const e = Ct(); return console.debug("getNewItems", e), e; } { const e = wt(); return console.debug("getLegacyItems", e), e; } } catch (t) { St(t); } }(); e && (s(e), w || p || S("idle")); break; default: t = "未知页面"; } b(`检测到当前为 [${t}]`); } }), [ e$1 ]), function({topicDetail: e$1}) { const {addLogItem: t} = Xe(); e.useEffect((() => { e$1 && (e$1.title && t(`获取到讨论标题:${e$1.title}`), e$1.content && t(`获取到讨论内容:${e$1.content}`), e$1.replies && t(`获取到讨论回复:共 ${e$1.replies.length} 条`)); }), [ e$1 ]); }({ topicDetail: o }); const j = Ot({ setCurrentStatus: f }); !function({setCurrentStatus: e$1, currentStatus: t, setIsButtonDisabled: r, setIsInActionFrame: o, actionFrameStatusStatus: i, actionFrameRunningType: a}) { const {addLogItem: s} = Xe(); e.useEffect((() => { switch (t) { case "running": default: r(!0); break; case "triggered": r(!0), e$1("running"), re() ? At({ setCurrentStatus: e$1 }) : ne() && Ut({ setCurrentStatus: e$1 }); break; case "success": r(!1), re() ? gt("singleReply") : "finished" === i ? "multiReply" === a ? gt("multiReply") : "newTopic" === a ? gt("newTopic") : gt() : gt(), s("All done!"); break; case "idle": r(!1); const t = ht(); (pt() || t) && e$1("triggered"); break; case "failed": r(!1); } }), [ t ]); }({ setCurrentStatus: f, currentStatus: p, setIsButtonDisabled: y, setIsInActionFrame: m, actionFrameStatusStatus: w, actionFrameRunningType: C }), e.useEffect((() => { a.length && b(`获取到发起的讨论:共 ${a.length} 条`); }), [ a ]), e.useEffect((() => { h && "success" === p && (console.debug("PostMessageSuccess"), Pt(mt() || 0)); }), [ h, p ]); return e.useEffect((() => { const e = w; e && console.debug("PanelActions useEffect actionFrameStatus", v); const t = async () => { if (e) { const t = await async function(e) { const {actionFrameStatus: t} = Ye.getState(), n = t.total, {topicList: r} = Ye.getState(); console.debug("RunningTopicListReply Status", e), "triggered" === e && (zt(), Lt("开始:批量回复讨论"), await Je(.3), It("waitingToStart")); const o = t.index || 0; try { if ("waitingToStart" === e) { const e = r[o].url; if (e) { const t = yt(e).toString(), n = bt(o, t).toString(); Nt(n), Lt(`正在回复讨论:${r[o].title}`), await Je(.5), Mt(), It("running"); } else St("未找到讨论链接"), It("failed"); } if ("failed" === e && It("waitingToNext"), "success" === e) { const e = r[o].title; Lt(`已回复讨论:${e}`), await Je(1), It("waitingToNext"); } const t = n || 0; if ("waitingToNext" === e) return await Dt(o, t); } catch (i) { St(i), It("failed"); } return !1; }(e); t && S("finished"); } }, n = async () => { if (e) { const t = await async function(e) { const {actionFrameStatus: t} = Ye.getState(), n = t.total, {titleList: r} = Ye.getState(); Ge.getState(), console.debug("RunningTopicListReply Status", e), "triggered" === e && (Qt(), Zt("开始:批量发起讨论"), await Je(.3), Xt("waitingToStart")); const o = t.index || 0; try { if ("waitingToStart" === e) { const e = r[o], t = window.location.href, n = vt(e, t).toString(); if (n) { const e = yt(n).toString(), t = bt(o, e).toString(); Jt(t), Zt(`正在创建新讨论:${r[o]}`), await Je(.5), Mt(), Xt("running"); } else St("未知错误"), Xt("failed"); } if ("failed" === e && Xt("waitingToNext"), "success" === e) { const e = r[o]; Zt(`已回复讨论:${e}`), await Je(1), Xt("waitingToNext"); } const t = n || 0; if ("waitingToNext" === e) return await en(o, t); } catch (i) { St(i), Xt("failed"); } return !1; }(e); t && S("finished"); } }; "triggered" === e || "waitingToStart" === e || "waitingToNext" === e || "failed" === e || "success" === e ? "multiReply" === C ? (t(), f("running")) : "newTopic" === C && (n(), f("running")) : "finished" === e ? f("success") : "idle" === e && f("idle"); }), [ w ]), K.jsxs(K.Fragment, { children: [ g && K.jsx(material.CircularProgress, { size: "2em" }), "success" === p && "detail" === e$1 && K.jsxs(K.Fragment, { children: [ K.jsx(material.Icon, { color: "success", children: "done" }), K.jsx(material.Typography, { variant: "body2", children: "已完成" }) ] }), "failed" === p && K.jsxs(K.Fragment, { children: [ K.jsx(material.Icon, { color: "error", children: "error" }), K.jsx(material.Typography, { variant: "body2", children: "错误" }) ] }), "detail" === e$1 && !h && K.jsxs(material.Button, { autoFocus: "success" !== p, disabled: g, onClick: j, children: [ ("success" === p || "failed" === p) && "再次", "回复讨论" ] }), "list" === e$1 && !h && K.jsxs(K.Fragment, { children: [ K.jsxs(material.Button, { autoFocus: !0, disabled: g, onClick: async () => { S("triggered"), k("newTopic"); }, children: [ "finished" === w && "newTopic" === C && K.jsx(material.Icon, { color: "success", children: "done" }), "finished" === w && "newTopic" === C && "再次", "发起讨论" ] }), K.jsxs(material.Button, { autoFocus: "success" !== p || "finished" !== w, disabled: g, onClick: async () => { S("triggered"), k("multiReply"); }, children: [ "finished" === w && "multiReply" === C && K.jsx(material.Icon, { color: "success", children: "done" }), "finished" === w && "multiReply" === C ? "再次批量回复" : "批量回复讨论" ] }) ] }) ] }); } function nn(e, t) { if (null == e) return {}; var n, r, o = {}, i = Object.keys(e); for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]); return o; } function rn() { return rn = Object.assign ? Object.assign.bind() : function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]); } return e; }, rn.apply(this, arguments); } var on, an = { exports: {} }, sn = {}, ln = Symbol.for("react.element"), cn = Symbol.for("react.portal"), un = Symbol.for("react.fragment"), dn = Symbol.for("react.strict_mode"), pn = Symbol.for("react.profiler"), fn = Symbol.for("react.provider"), hn = Symbol.for("react.context"), mn = Symbol.for("react.server_context"), gn = Symbol.for("react.forward_ref"), yn = Symbol.for("react.suspense"), bn = Symbol.for("react.suspense_list"), vn = Symbol.for("react.memo"), xn = Symbol.for("react.lazy"), Sn = Symbol.for("react.offscreen"); function wn(e) { if ("object" == typeof e && null !== e) { var t = e.$$typeof; switch (t) { case ln: switch (e = e.type) { case un: case pn: case dn: case yn: case bn: return e; default: switch (e = e && e.$$typeof) { case mn: case hn: case gn: case xn: case vn: case fn: return e; default: return t; } } case cn: return t; } } } on = Symbol.for("react.module.reference"), sn.ContextConsumer = hn, sn.ContextProvider = fn, sn.Element = ln, sn.ForwardRef = gn, sn.Fragment = un, sn.Lazy = xn, sn.Memo = vn, sn.Portal = cn, sn.Profiler = pn, sn.StrictMode = dn, sn.Suspense = yn, sn.SuspenseList = bn, sn.isAsyncMode = function() { return !1; }, sn.isConcurrentMode = function() { return !1; }, sn.isContextConsumer = function(e) { return wn(e) === hn; }, sn.isContextProvider = function(e) { return wn(e) === fn; }, sn.isElement = function(e) { return "object" == typeof e && null !== e && e.$$typeof === ln; }, sn.isForwardRef = function(e) { return wn(e) === gn; }, sn.isFragment = function(e) { return wn(e) === un; }, sn.isLazy = function(e) { return wn(e) === xn; }, sn.isMemo = function(e) { return wn(e) === vn; }, sn.isPortal = function(e) { return wn(e) === cn; }, sn.isProfiler = function(e) { return wn(e) === pn; }, sn.isStrictMode = function(e) { return wn(e) === dn; }, sn.isSuspense = function(e) { return wn(e) === yn; }, sn.isSuspenseList = function(e) { return wn(e) === bn; }, sn.isValidElementType = function(e) { return "string" == typeof e || "function" == typeof e || e === un || e === pn || e === dn || e === yn || e === bn || e === Sn || "object" == typeof e && null !== e && (e.$$typeof === xn || e.$$typeof === vn || e.$$typeof === fn || e.$$typeof === hn || e.$$typeof === gn || e.$$typeof === on || void 0 !== e.getModuleId); }, sn.typeOf = wn, an.exports = sn; var Cn = an.exports; function kn(e) { var t, n, r = ""; if ("string" == typeof e || "number" == typeof e) r += e; else if ("object" == typeof e) if (Array.isArray(e)) { var o = e.length; for (t = 0; t < o; t++) e[t] && (n = kn(e[t])) && (r && (r += " "), r += n); } else for (n in e) e[n] && (r && (r += " "), r += n); return r; } function jn() { for (var e, t, n = 0, r = "", o = arguments.length; n < o; n++) (e = arguments[n]) && (t = kn(e)) && (r && (r += " "), r += t); return r; } function Tn(e) { if ("object" != typeof e || null === e) return !1; const t = Object.getPrototypeOf(e); return !(null !== t && t !== Object.prototype && null !== Object.getPrototypeOf(t) || Symbol.toStringTag in e || Symbol.iterator in e); } function Rn(e) { if (!Tn(e)) return e; const t = {}; return Object.keys(e).forEach((n => { t[n] = Rn(e[n]); })), t; } function En(e, t, n = { clone: !0 }) { const r = n.clone ? rn({}, e) : e; return Tn(e) && Tn(t) && Object.keys(t).forEach((o => { "__proto__" !== o && (Tn(t[o]) && o in e && Tn(e[o]) ? r[o] = En(e[o], t[o], n) : n.clone ? r[o] = Tn(t[o]) ? Rn(t[o]) : t[o] : r[o] = t[o]); })), r; } const $n = Object.freeze(Object.defineProperty({ __proto__: null, default: En, isPlainObject: Tn }, Symbol.toStringTag, { value: "Module" })); function _n(e) { let t = "https://mui.com/production-error/?code=" + e; for (let n = 1; n < arguments.length; n += 1) t += "&args[]=" + encodeURIComponent(arguments[n]); return "Minified MUI error #" + e + "; visit " + t + " for the full message."; } const On = Object.freeze(Object.defineProperty({ __proto__: null, default: _n }, Symbol.toStringTag, { value: "Module" })), An = /^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/; function Pn(e) { const t = `${e}`.match(An); return t && t[1] || ""; } function Mn(e, t = "") { return e.displayName || e.name || Pn(e) || t; } function In(e, t, n) { const r = Mn(t); return e.displayName || ("" !== r ? `${n}(${r})` : n); } const Fn = Object.freeze(Object.defineProperty({ __proto__: null, default: function(e) { if (null != e) { if ("string" == typeof e) return e; if ("function" == typeof e) return Mn(e, "Component"); if ("object" == typeof e) switch (e.$$typeof) { case Cn.ForwardRef: return In(e, e.render, "ForwardRef"); case Cn.Memo: return In(e, e.type, "memo"); default: return; } } }, getFunctionName: Pn }, Symbol.toStringTag, { value: "Module" })); function Bn(e) { if ("string" != typeof e) throw new Error(_n(7)); return e.charAt(0).toUpperCase() + e.slice(1); } const Nn = Object.freeze(Object.defineProperty({ __proto__: null, default: Bn }, Symbol.toStringTag, { value: "Module" })); function Ln(e, t = 166) { let n; function r(...r) { clearTimeout(n), n = setTimeout((() => { e.apply(this, r); }), t); } return r.clear = () => { clearTimeout(n); }, r; } function zn(e) { return e && e.ownerDocument || document; } function Dn(e) { return zn(e).defaultView || window; } const Wn = "undefined" != typeof window ? e__namespace.useLayoutEffect : e__namespace.useEffect; function Vn(t) { const n = e__namespace.useRef(t); return Wn((() => { n.current = t; })), e__namespace.useRef(((...e) => (0, n.current)(...e))).current; } function Hn(...t) { return e__namespace.useMemo((() => t.every((e => null == e)) ? null : e => { t.forEach((t => { !function(e, t) { "function" == typeof e ? e(t) : e && (e.current = t); }(t, e); })); }), t); } const qn = {}; const Kn = []; class Un { constructor() { this.currentId = null, this.clear = () => { null !== this.currentId && (clearTimeout(this.currentId), this.currentId = null); }, this.disposeEffect = () => this.clear; } static create() { return new Un; } start(e, t) { this.clear(), this.currentId = setTimeout((() => { this.currentId = null, t(); }), e); } } function Xn() { const t = function(t, n) { const r = e__namespace.useRef(qn); return r.current === qn && (r.current = t(n)), r; }(Un.create).current; var n; return n = t.disposeEffect, e__namespace.useEffect(n, Kn), t; } let Gn = !0, Yn = !1; const Jn = new Un, Zn = { text: !0, search: !0, url: !0, tel: !0, email: !0, password: !0, number: !0, date: !0, month: !0, week: !0, time: !0, datetime: !0, "datetime-local": !0 }; function Qn(e) { e.metaKey || e.altKey || e.ctrlKey || (Gn = !0); } function er() { Gn = !1; } function tr() { "hidden" === this.visibilityState && Yn && (Gn = !0); } function nr(e) { const {target: t} = e; try { return t.matches(":focus-visible"); } catch (n) {} return Gn || function(e) { const {type: t, tagName: n} = e; return !("INPUT" !== n || !Zn[t] || e.readOnly) || "TEXTAREA" === n && !e.readOnly || !!e.isContentEditable; }(t); } function rr() { const t = e__namespace.useCallback((e => { var t; null != e && ((t = e.ownerDocument).addEventListener("keydown", Qn, !0), t.addEventListener("mousedown", er, !0), t.addEventListener("pointerdown", er, !0), t.addEventListener("touchstart", er, !0), t.addEventListener("visibilitychange", tr, !0)); }), []), n = e__namespace.useRef(!1); return { isFocusVisibleRef: n, onFocus: function(e) { return !!nr(e) && (n.current = !0, !0); }, onBlur: function() { return !!n.current && (Yn = !0, Jn.start(100, (() => { Yn = !1; })), n.current = !1, !0); }, ref: t }; } let or; function ir() { if (or) return or; const e = document.createElement("div"), t = document.createElement("div"); return t.style.width = "10px", t.style.height = "1px", e.appendChild(t), e.dir = "rtl", e.style.fontSize = "14px", e.style.width = "4px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.overflow = "scroll", document.body.appendChild(e), or = "reverse", e.scrollLeft > 0 ? or = "default" : (e.scrollLeft = 1, 0 === e.scrollLeft && (or = "negative")), document.body.removeChild(e), or; } function ar(e, t) { const n = e.scrollLeft; if ("rtl" !== t) return n; switch (ir()) { case "negative": return e.scrollWidth - e.clientWidth + n; case "reverse": return e.scrollWidth - e.clientWidth - n; default: return n; } } function sr(e, t) { const n = rn({}, t); return Object.keys(e).forEach((r => { if (r.toString().match(/^(components|slots)$/)) n[r] = rn({}, e[r], n[r]); else if (r.toString().match(/^(componentsProps|slotProps)$/)) { const o = e[r] || {}, i = t[r]; n[r] = {}, i && Object.keys(i) ? o && Object.keys(o) ? (n[r] = rn({}, i), Object.keys(o).forEach((e => { n[r][e] = sr(o[e], i[e]); }))) : n[r] = i : n[r] = o; } else void 0 === n[r] && (n[r] = e[r]); })), n; } function lr(e, t, n = void 0) { const r = {}; return Object.keys(e).forEach((o => { r[o] = e[o].reduce(((e, r) => { if (r) { const o = t(r); "" !== o && e.push(o), n && n[r] && e.push(n[r]); } return e; }), []).join(" "); })), r; } const cr = e => e, ur = (() => { let e = cr; return { configure(t) { e = t; }, generate: t => e(t), reset() { e = cr; } }; })(), dr = { active: "active", checked: "checked", completed: "completed", disabled: "disabled", error: "error", expanded: "expanded", focused: "focused", focusVisible: "focusVisible", open: "open", readOnly: "readOnly", required: "required", selected: "selected" }; function pr(e, t, n = "Mui") { const r = dr[t]; return r ? `${n}-${r}` : `${ur.generate(e)}-${t}`; } function fr(e, t, n = "Mui") { const r = {}; return t.forEach((t => { r[t] = pr(e, t, n); })), r; } const hr = Object.freeze(Object.defineProperty({ __proto__: null, default: function(e, t = Number.MIN_SAFE_INTEGER, n = Number.MAX_SAFE_INTEGER) { return Math.max(t, Math.min(e, n)); } }, Symbol.toStringTag, { value: "Module" })); function mr(e) { if (void 0 === e) return {}; const t = {}; return Object.keys(e).filter((t => !(t.match(/^on[A-Z]/) && "function" == typeof e[t]))).forEach((n => { t[n] = e[n]; })), t; } function gr(e) { const {getSlotProps: t, additionalProps: n, externalSlotProps: r, externalForwardedProps: o, className: i} = e; if (!t) { const e = jn(null == n ? void 0 : n.className, i, null == o ? void 0 : o.className, null == r ? void 0 : r.className), t = rn({}, null == n ? void 0 : n.style, null == o ? void 0 : o.style, null == r ? void 0 : r.style), a = rn({}, n, o, r); return e.length > 0 && (a.className = e), Object.keys(t).length > 0 && (a.style = t), { props: a, internalRef: void 0 }; } const a = function(e, t = []) { if (void 0 === e) return {}; const n = {}; return Object.keys(e).filter((n => n.match(/^on[A-Z]/) && "function" == typeof e[n] && !t.includes(n))).forEach((t => { n[t] = e[t]; })), n; }(rn({}, o, r)), s = mr(r), l = mr(o), c = t(a), u = jn(null == c ? void 0 : c.className, null == n ? void 0 : n.className, i, null == o ? void 0 : o.className, null == r ? void 0 : r.className), d = rn({}, null == c ? void 0 : c.style, null == n ? void 0 : n.style, null == o ? void 0 : o.style, null == r ? void 0 : r.style), p = rn({}, c, n, l, s); return u.length > 0 && (p.className = u), Object.keys(d).length > 0 && (p.style = d), { props: p, internalRef: c.ref }; } const yr = [ "elementType", "externalSlotProps", "ownerState", "skipResolvingSlotProps" ]; function br(e) { var t; const {elementType: n, externalSlotProps: r, ownerState: o, skipResolvingSlotProps: i = !1} = e, a = nn(e, yr), s = i ? {} : function(e, t, n) { return "function" == typeof e ? e(t, n) : e; }(r, o), {props: l, internalRef: c} = gr(rn({}, a, { externalSlotProps: s })), u = function(e, t, n) { return void 0 === e || "string" == typeof e ? t : rn({}, t, { ownerState: rn({}, t.ownerState, n) }); }(n, rn({}, l, { ref: Hn(c, null == s ? void 0 : s.ref, null == (t = e.additionalProps) ? void 0 : t.ref) }), o); return u; } const vr = e__namespace.createContext(), xr = () => { const t = e__namespace.useContext(vr); return null != t && t; }; var Sr, wr = {}, Cr = { exports: {} }; (Sr = Cr).exports = function(e) { return e && e.__esModule ? e : { default: e }; }, Sr.exports.__esModule = !0, Sr.exports.default = Sr.exports; var kr, jr = Cr.exports, Tr = { exports: {} }; var Rr, Er = { exports: {} }; var $r = function() { function e(e) { var t = this; this._insertTag = function(e) { var n; n = 0 === t.tags.length ? t.insertionPoint ? t.insertionPoint.nextSibling : t.prepend ? t.container.firstChild : t.before : t.tags[t.tags.length - 1].nextSibling, t.container.insertBefore(e, n), t.tags.push(e); }, this.isSpeedy = void 0 === e.speedy || e.speedy, this.tags = [], this.ctr = 0, this.nonce = e.nonce, this.key = e.key, this.container = e.container, this.prepend = e.prepend, this.insertionPoint = e.insertionPoint, this.before = null; } var t = e.prototype; return t.hydrate = function(e) { e.forEach(this._insertTag); }, t.insert = function(e) { this.ctr % (this.isSpeedy ? 65e3 : 1) == 0 && this._insertTag(function(e) { var t = document.createElement("style"); return t.setAttribute("data-emotion", e.key), void 0 !== e.nonce && t.setAttribute("nonce", e.nonce), t.appendChild(document.createTextNode("")), t.setAttribute("data-s", ""), t; }(this)); var t = this.tags[this.tags.length - 1]; if (this.isSpeedy) { var n = function(e) { if (e.sheet) return e.sheet; for (var t = 0; t < document.styleSheets.length; t++) if (document.styleSheets[t].ownerNode === e) return document.styleSheets[t]; }(t); try { n.insertRule(e, n.cssRules.length); } catch (r) {} } else t.appendChild(document.createTextNode(e)); this.ctr++; }, t.flush = function() { this.tags.forEach((function(e) { return e.parentNode && e.parentNode.removeChild(e); })), this.tags = [], this.ctr = 0; }, e; }(), _r = "-ms-", Or = "-moz-", Ar = "-webkit-", Pr = "comm", Mr = "rule", Ir = "decl", Fr = "@keyframes", Br = Math.abs, Nr = String.fromCharCode, Lr = Object.assign; function zr(e) { return e.trim(); } function Dr(e, t, n) { return e.replace(t, n); } function Wr(e, t) { return e.indexOf(t); } function Vr(e, t) { return 0 | e.charCodeAt(t); } function Hr(e, t, n) { return e.slice(t, n); } function qr(e) { return e.length; } function Kr(e) { return e.length; } function Ur(e, t) { return t.push(e), e; } var Xr = 1, Gr = 1, Yr = 0, Jr = 0, Zr = 0, Qr = ""; function eo(e, t, n, r, o, i, a) { return { value: e, root: t, parent: n, type: r, props: o, children: i, line: Xr, column: Gr, length: a, return: "" }; } function to(e, t) { return Lr(eo("", null, null, "", null, null, 0), e, { length: -e.length }, t); } function no() { return Zr = Jr < Yr ? Vr(Qr, Jr++) : 0, Gr++, 10 === Zr && (Gr = 1, Xr++), Zr; } function ro() { return Vr(Qr, Jr); } function oo() { return Jr; } function io(e, t) { return Hr(Qr, e, t); } function ao(e) { switch (e) { case 0: case 9: case 10: case 13: case 32: return 5; case 33: case 43: case 44: case 47: case 62: case 64: case 126: case 59: case 123: case 125: return 4; case 58: return 3; case 34: case 39: case 40: case 91: return 2; case 41: case 93: return 1; } return 0; } function so(e) { return Xr = Gr = 1, Yr = qr(Qr = e), Jr = 0, []; } function lo(e) { return Qr = "", e; } function co(e) { return zr(io(Jr - 1, fo(91 === e ? e + 2 : 40 === e ? e + 1 : e))); } function uo(e) { for (;(Zr = ro()) && Zr < 33; ) no(); return ao(e) > 2 || ao(Zr) > 3 ? "" : " "; } function po(e, t) { for (;--t && no() && !(Zr < 48 || Zr > 102 || Zr > 57 && Zr < 65 || Zr > 70 && Zr < 97); ) ; return io(e, oo() + (t < 6 && 32 == ro() && 32 == no())); } function fo(e) { for (;no(); ) switch (Zr) { case e: return Jr; case 34: case 39: 34 !== e && 39 !== e && fo(Zr); break; case 40: 41 === e && fo(e); break; case 92: no(); } return Jr; } function ho(e, t) { for (;no() && e + Zr !== 57 && (e + Zr !== 84 || 47 !== ro()); ) ; return "/*" + io(t, Jr - 1) + "*" + Nr(47 === e ? e : no()); } function mo(e) { for (;!ao(ro()); ) no(); return io(e, Jr); } function go(e) { return lo(yo("", null, null, null, [ "" ], e = so(e), 0, [ 0 ], e)); } function yo(e, t, n, r, o, i, a, s, l) { for (var c = 0, u = 0, d = a, p = 0, f = 0, h = 0, m = 1, g = 1, y = 1, b = 0, v = "", x = o, S = i, w = r, C = v; g; ) switch (h = b, b = no()) { case 40: if (108 != h && 58 == Vr(C, d - 1)) { -1 != Wr(C += Dr(co(b), "&", "&\f"), "&\f") && (y = -1); break; } case 34: case 39: case 91: C += co(b); break; case 9: case 10: case 13: case 32: C += uo(h); break; case 92: C += po(oo() - 1, 7); continue; case 47: switch (ro()) { case 42: case 47: Ur(vo(ho(no(), oo()), t, n), l); break; default: C += "/"; } break; case 123 * m: s[c++] = qr(C) * y; case 125 * m: case 59: case 0: switch (b) { case 0: case 125: g = 0; case 59 + u: -1 == y && (C = Dr(C, /\f/g, "")), f > 0 && qr(C) - d && Ur(f > 32 ? xo(C + ";", r, n, d - 1) : xo(Dr(C, " ", "") + ";", r, n, d - 2), l); break; case 59: C += ";"; default: if (Ur(w = bo(C, t, n, c, u, o, s, v, x = [], S = [], d), i), 123 === b) if (0 === u) yo(C, t, w, w, x, i, d, s, S); else switch (99 === p && 110 === Vr(C, 3) ? 100 : p) { case 100: case 108: case 109: case 115: yo(e, w, w, r && Ur(bo(e, w, w, 0, 0, o, s, v, o, x = [], d), S), o, S, d, s, r ? x : S); break; default: yo(C, w, w, w, [ "" ], S, 0, s, S); } } c = u = f = 0, m = y = 1, v = C = "", d = a; break; case 58: d = 1 + qr(C), f = h; default: if (m < 1) if (123 == b) --m; else if (125 == b && 0 == m++ && 125 == (Zr = Jr > 0 ? Vr(Qr, --Jr) : 0, Gr--, 10 === Zr && (Gr = 1, Xr--), Zr)) continue; switch (C += Nr(b), b * m) { case 38: y = u > 0 ? 1 : (C += "\f", -1); break; case 44: s[c++] = (qr(C) - 1) * y, y = 1; break; case 64: 45 === ro() && (C += co(no())), p = ro(), u = d = qr(v = C += mo(oo())), b++; break; case 45: 45 === h && 2 == qr(C) && (m = 0); } } return i; } function bo(e, t, n, r, o, i, a, s, l, c, u) { for (var d = o - 1, p = 0 === o ? i : [ "" ], f = Kr(p), h = 0, m = 0, g = 0; h < r; ++h) for (var y = 0, b = Hr(e, d + 1, d = Br(m = a[h])), v = e; y < f; ++y) (v = zr(m > 0 ? p[y] + " " + b : Dr(b, /&\f/g, p[y]))) && (l[g++] = v); return eo(e, t, n, 0 === o ? Mr : s, l, c, u); } function vo(e, t, n) { return eo(e, t, n, Pr, Nr(Zr), Hr(e, 2, -2), 0); } function xo(e, t, n, r) { return eo(e, t, n, Ir, Hr(e, 0, r), Hr(e, r + 1, -1), r); } function So(e, t) { for (var n = "", r = Kr(e), o = 0; o < r; o++) n += t(e[o], o, e, t) || ""; return n; } function wo(e, t, n, r) { switch (e.type) { case "@layer": if (e.children.length) break; case "@import": case Ir: return e.return = e.return || e.value; case Pr: return ""; case Fr: return e.return = e.value + "{" + So(e.children, r) + "}"; case Mr: e.value = e.props.join(","); } return qr(n = So(e.children, r)) ? e.return = e.value + "{" + n + "}" : ""; } var Co = function(e, t, n) { for (var r = 0, o = 0; r = o, o = ro(), 38 === r && 12 === o && (t[n] = 1), !ao(o); ) no(); return io(e, Jr); }, ko = function(e, t) { return lo(function(e, t) { var n = -1, r = 44; do { switch (ao(r)) { case 0: 38 === r && 12 === ro() && (t[n] = 1), e[n] += Co(Jr - 1, t, n); break; case 2: e[n] += co(r); break; case 4: if (44 === r) { e[++n] = 58 === ro() ? "&\f" : "", t[n] = e[n].length; break; } default: e[n] += Nr(r); } } while (r = no()); return e; }(so(e), t)); }, jo = new WeakMap, To = function(e) { if ("rule" === e.type && e.parent && !(e.length < 1)) { for (var t = e.value, n = e.parent, r = e.column === n.column && e.line === n.line; "rule" !== n.type; ) if (!(n = n.parent)) return; if ((1 !== e.props.length || 58 === t.charCodeAt(0) || jo.get(n)) && !r) { jo.set(e, !0); for (var o = [], i = ko(t, o), a = n.props, s = 0, l = 0; s < i.length; s++) for (var c = 0; c < a.length; c++, l++) e.props[l] = o[s] ? i[s].replace(/&\f/g, a[c]) : a[c] + " " + i[s]; } } }, Ro = function(e) { if ("decl" === e.type) { var t = e.value; 108 === t.charCodeAt(0) && 98 === t.charCodeAt(2) && (e.return = "", e.value = ""); } }; function Eo(e, t) { switch (function(e, t) { return 45 ^ Vr(e, 0) ? (((t << 2 ^ Vr(e, 0)) << 2 ^ Vr(e, 1)) << 2 ^ Vr(e, 2)) << 2 ^ Vr(e, 3) : 0; }(e, t)) { case 5103: return Ar + "print-" + e + e; case 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921: case 5572: case 6356: case 5844: case 3191: case 6645: case 3005: case 6391: case 5879: case 5623: case 6135: case 4599: case 4855: case 4215: case 6389: case 5109: case 5365: case 5621: case 3829: return Ar + e + e; case 5349: case 4246: case 4810: case 6968: case 2756: return Ar + e + Or + e + _r + e + e; case 6828: case 4268: return Ar + e + _r + e + e; case 6165: return Ar + e + _r + "flex-" + e + e; case 5187: return Ar + e + Dr(e, /(\w+).+(:[^]+)/, Ar + "box-$1$2" + _r + "flex-$1$2") + e; case 5443: return Ar + e + _r + "flex-item-" + Dr(e, /flex-|-self/, "") + e; case 4675: return Ar + e + _r + "flex-line-pack" + Dr(e, /align-content|flex-|-self/, "") + e; case 5548: return Ar + e + _r + Dr(e, "shrink", "negative") + e; case 5292: return Ar + e + _r + Dr(e, "basis", "preferred-size") + e; case 6060: return Ar + "box-" + Dr(e, "-grow", "") + Ar + e + _r + Dr(e, "grow", "positive") + e; case 4554: return Ar + Dr(e, /([^-])(transform)/g, "$1" + Ar + "$2") + e; case 6187: return Dr(Dr(Dr(e, /(zoom-|grab)/, Ar + "$1"), /(image-set)/, Ar + "$1"), e, "") + e; case 5495: case 3959: return Dr(e, /(image-set\([^]*)/, Ar + "$1$`$1"); case 4968: return Dr(Dr(e, /(.+:)(flex-)?(.*)/, Ar + "box-pack:$3" + _r + "flex-pack:$3"), /s.+-b[^;]+/, "justify") + Ar + e + e; case 4095: case 3583: case 4068: case 2532: return Dr(e, /(.+)-inline(.+)/, Ar + "$1$2") + e; case 8116: case 7059: case 5753: case 5535: case 5445: case 5701: case 4933: case 4677: case 5533: case 5789: case 5021: case 4765: if (qr(e) - 1 - t > 6) switch (Vr(e, t + 1)) { case 109: if (45 !== Vr(e, t + 4)) break; case 102: return Dr(e, /(.+:)(.+)-([^]+)/, "$1" + Ar + "$2-$3$1" + Or + (108 == Vr(e, t + 3) ? "$3" : "$2-$3")) + e; case 115: return ~Wr(e, "stretch") ? Eo(Dr(e, "stretch", "fill-available"), t) + e : e; } break; case 4949: if (115 !== Vr(e, t + 1)) break; case 6444: switch (Vr(e, qr(e) - 3 - (~Wr(e, "!important") && 10))) { case 107: return Dr(e, ":", ":" + Ar) + e; case 101: return Dr(e, /(.+:)([^;!]+)(;|!.+)?/, "$1" + Ar + (45 === Vr(e, 14) ? "inline-" : "") + "box$3$1" + Ar + "$2$3$1" + _r + "$2box$3") + e; } break; case 5936: switch (Vr(e, t + 11)) { case 114: return Ar + e + _r + Dr(e, /[svh]\w+-[tblr]{2}/, "tb") + e; case 108: return Ar + e + _r + Dr(e, /[svh]\w+-[tblr]{2}/, "tb-rl") + e; case 45: return Ar + e + _r + Dr(e, /[svh]\w+-[tblr]{2}/, "lr") + e; } return Ar + e + _r + e + e; } return e; } var $o = [ function(e, t, n, r) { if (e.length > -1 && !e.return) switch (e.type) { case Ir: e.return = Eo(e.value, e.length); break; case Fr: return So([ to(e, { value: Dr(e.value, "@", "@" + Ar) }) ], r); case Mr: if (e.length) return function(e, t) { return e.map(t).join(""); }(e.props, (function(t) { switch (function(e, t) { return (e = t.exec(e)) ? e[0] : e; }(t, /(::plac\w+|:read-\w+)/)) { case ":read-only": case ":read-write": return So([ to(e, { props: [ Dr(t, /:(read-\w+)/, ":-moz-$1") ] }) ], r); case "::placeholder": return So([ to(e, { props: [ Dr(t, /:(plac\w+)/, ":" + Ar + "input-$1") ] }), to(e, { props: [ Dr(t, /:(plac\w+)/, ":-moz-$1") ] }), to(e, { props: [ Dr(t, /:(plac\w+)/, _r + "input-$1") ] }) ], r); } return ""; })); } } ]; let _o; function Oo(e, t) { return R(e, t); } "object" == typeof document && (_o = function(e) { var t = e.key; if ("css" === t) { var n = document.querySelectorAll("style[data-emotion]:not([data-s])"); Array.prototype.forEach.call(n, (function(e) { -1 !== e.getAttribute("data-emotion").indexOf(" ") && (document.head.appendChild(e), e.setAttribute("data-s", "")); })); } var r, o, i = e.stylisPlugins || $o, a = {}, s = []; r = e.container || document.head, Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="' + t + ' "]'), (function(e) { for (var t = e.getAttribute("data-emotion").split(" "), n = 1; n < t.length; n++) a[t[n]] = !0; s.push(e); })); var l, c, u, d, p = [ wo, (d = function(e) { l.insert(e); }, function(e) { e.root || (e = e.return) && d(e); }) ], f = (c = [ To, Ro ].concat(i, p), u = Kr(c), function(e, t, n, r) { for (var o = "", i = 0; i < u; i++) o += c[i](e, t, n, r) || ""; return o; }); o = function(e, t, n, r) { l = n, So(go(e ? e + "{" + t.styles + "}" : t.styles), f), r && (h.inserted[t.name] = !0); }; var h = { key: t, sheet: new $r({ key: t, container: r, nonce: e.nonce, speedy: e.speedy, prepend: e.prepend, insertionPoint: e.insertionPoint }), nonce: e.nonce, inserted: a, registered: {}, insert: o }; return h.sheet.hydrate(s), h; }({ key: "css", prepend: !0 })); const Ao = F(Object.freeze(Object.defineProperty({ __proto__: null, GlobalStyles: function(e) { const {styles: t, defaultTheme: n = {}} = e, r = "function" == typeof t ? e => { return t(null == (r = e) || 0 === Object.keys(r).length ? n : e); var r; } : t; return K.jsx(react.Global, { styles: r }); }, StyledEngineProvider: function(e) { const {injectFirst: t, children: n} = e; return t && _o ? K.jsx(react.CacheProvider, { value: _o, children: n }) : n; }, ThemeContext: react.ThemeContext, css: react.css, default: Oo, internal_processStyles: (e, t) => { Array.isArray(e.__emotion_styles) && (e.__emotion_styles = t(e.__emotion_styles)); }, keyframes: react.keyframes }, Symbol.toStringTag, { value: "Module" }))), Po = F($n), Mo = F(Nn), Io = F(Fn), Fo = [ "values", "unit", "step" ], Bo = e => { const t = Object.keys(e).map((t => ({ key: t, val: e[t] }))) || []; return t.sort(((e, t) => e.val - t.val)), t.reduce(((e, t) => rn({}, e, { [t.key]: t.val })), {}); }; function No(e) { const {values: t = { xs: 0, sm: 600, md: 900, lg: 1200, xl: 1536 }, unit: n = "px", step: r = 5} = e, o = nn(e, Fo), i = Bo(t), a = Object.keys(i); function s(e) { return `@media (min-width:${"number" == typeof t[e] ? t[e] : e}${n})`; } function l(e) { return `@media (max-width:${("number" == typeof t[e] ? t[e] : e) - r / 100}${n})`; } function c(e, o) { const i = a.indexOf(o); return `@media (min-width:${"number" == typeof t[e] ? t[e] : e}${n}) and (max-width:${(-1 !== i && "number" == typeof t[a[i]] ? t[a[i]] : o) - r / 100}${n})`; } return rn({ keys: a, values: i, up: s, down: l, between: c, only: function(e) { return a.indexOf(e) + 1 < a.length ? c(e, a[a.indexOf(e) + 1]) : s(e); }, not: function(e) { const t = a.indexOf(e); return 0 === t ? s(a[1]) : t === a.length - 1 ? l(a[t]) : c(e, a[a.indexOf(e) + 1]).replace("@media", "@media not all and"); }, unit: n }, o); } const Lo = { borderRadius: 4 }; function zo(e, t) { return t ? En(e, t, { clone: !1 }) : e; } const Do = { xs: 0, sm: 600, md: 900, lg: 1200, xl: 1536 }, Wo = { keys: [ "xs", "sm", "md", "lg", "xl" ], up: e => `@media (min-width:${Do[e]}px)` }; function Vo(e, t, n) { const r = e.theme || {}; if (Array.isArray(t)) { const e = r.breakpoints || Wo; return t.reduce(((r, o, i) => (r[e.up(e.keys[i])] = n(t[i]), r)), {}); } if ("object" == typeof t) { const e = r.breakpoints || Wo; return Object.keys(t).reduce(((r, o) => { if (-1 !== Object.keys(e.values || Do).indexOf(o)) { r[e.up(o)] = n(t[o], o); } else { const e = o; r[e] = t[e]; } return r; }), {}); } return n(t); } function Ho(e, t, n = !0) { if (!t || "string" != typeof t) return null; if (e && e.vars && n) { const n = `vars.${t}`.split(".").reduce(((e, t) => e && e[t] ? e[t] : null), e); if (null != n) return n; } return t.split(".").reduce(((e, t) => e && null != e[t] ? e[t] : null), e); } function qo(e, t, n, r = n) { let o; return o = "function" == typeof e ? e(n) : Array.isArray(e) ? e[n] || r : Ho(e, n) || r, t && (o = t(o, r, e)), o; } function Ko(e) { const {prop: t, cssProperty: n = e.prop, themeKey: r, transform: o} = e, i = e => { if (null == e[t]) return null; const i = e[t], a = Ho(e.theme, r) || {}; return Vo(e, i, (e => { let r = qo(a, o, e); return e === r && "string" == typeof e && (r = qo(a, o, `${t}${"default" === e ? "" : Bn(e)}`, e)), !1 === n ? r : { [n]: r }; })); }; return i.propTypes = {}, i.filterProps = [ t ], i; } const Uo = { m: "margin", p: "padding" }, Xo = { t: "Top", r: "Right", b: "Bottom", l: "Left", x: [ "Left", "Right" ], y: [ "Top", "Bottom" ] }, Go = { marginX: "mx", marginY: "my", paddingX: "px", paddingY: "py" }, Yo = function(e) { const t = {}; return n => (void 0 === t[n] && (t[n] = e(n)), t[n]); }((e => { if (e.length > 2) { if (!Go[e]) return [ e ]; e = Go[e]; } const [t, n] = e.split(""), r = Uo[t], o = Xo[n] || ""; return Array.isArray(o) ? o.map((e => r + e)) : [ r + o ]; })), Jo = [ "m", "mt", "mr", "mb", "ml", "mx", "my", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginX", "marginY", "marginInline", "marginInlineStart", "marginInlineEnd", "marginBlock", "marginBlockStart", "marginBlockEnd" ], Zo = [ "p", "pt", "pr", "pb", "pl", "px", "py", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingX", "paddingY", "paddingInline", "paddingInlineStart", "paddingInlineEnd", "paddingBlock", "paddingBlockStart", "paddingBlockEnd" ]; function Qo(e, t, n, r) { var o; const i = null != (o = Ho(e, t, !1)) ? o : n; return "number" == typeof i ? e => "string" == typeof e ? e : i * e : Array.isArray(i) ? e => "string" == typeof e ? e : i[e] : "function" == typeof i ? i : () => {}; } function ei(e) { return Qo(e, "spacing", 8); } function ti(e, t) { if ("string" == typeof t || null == t) return t; const n = e(Math.abs(t)); return t >= 0 ? n : "number" == typeof n ? -n : `-${n}`; } function ni(e, t, n, r) { if (-1 === t.indexOf(n)) return null; const o = function(e, t) { return n => e.reduce(((e, r) => (e[r] = ti(t, n), e)), {}); }(Yo(n), r); return Vo(e, e[n], o); } function ri(e, t) { const n = ei(e.theme); return Object.keys(e).map((r => ni(e, t, r, n))).reduce(zo, {}); } function oi(e) { return ri(e, Jo); } function ii(e) { return ri(e, Zo); } function ai(...e) { const t = e.reduce(((e, t) => (t.filterProps.forEach((n => { e[n] = t; })), e)), {}), n = e => Object.keys(e).reduce(((n, r) => t[r] ? zo(n, t[r](e)) : n), {}); return n.propTypes = {}, n.filterProps = e.reduce(((e, t) => e.concat(t.filterProps)), []), n; } function si(e) { return "number" != typeof e ? e : `${e}px solid`; } function li(e, t) { return Ko({ prop: e, themeKey: "borders", transform: t }); } oi.propTypes = {}, oi.filterProps = Jo, ii.propTypes = {}, ii.filterProps = Zo; const ci = li("border", si), ui = li("borderTop", si), di = li("borderRight", si), pi = li("borderBottom", si), fi = li("borderLeft", si), hi = li("borderColor"), mi = li("borderTopColor"), gi = li("borderRightColor"), yi = li("borderBottomColor"), bi = li("borderLeftColor"), vi = li("outline", si), xi = li("outlineColor"), Si = e => { if (void 0 !== e.borderRadius && null !== e.borderRadius) { const t = Qo(e.theme, "shape.borderRadius", 4), n = e => ({ borderRadius: ti(t, e) }); return Vo(e, e.borderRadius, n); } return null; }; Si.propTypes = {}, Si.filterProps = [ "borderRadius" ], ai(ci, ui, di, pi, fi, hi, mi, gi, yi, bi, Si, vi, xi); const wi = e => { if (void 0 !== e.gap && null !== e.gap) { const t = Qo(e.theme, "spacing", 8), n = e => ({ gap: ti(t, e) }); return Vo(e, e.gap, n); } return null; }; wi.propTypes = {}, wi.filterProps = [ "gap" ]; const Ci = e => { if (void 0 !== e.columnGap && null !== e.columnGap) { const t = Qo(e.theme, "spacing", 8), n = e => ({ columnGap: ti(t, e) }); return Vo(e, e.columnGap, n); } return null; }; Ci.propTypes = {}, Ci.filterProps = [ "columnGap" ]; const ki = e => { if (void 0 !== e.rowGap && null !== e.rowGap) { const t = Qo(e.theme, "spacing", 8), n = e => ({ rowGap: ti(t, e) }); return Vo(e, e.rowGap, n); } return null; }; ki.propTypes = {}, ki.filterProps = [ "rowGap" ]; function ji(e, t) { return "grey" === t ? t : e; } ai(wi, Ci, ki, Ko({ prop: "gridColumn" }), Ko({ prop: "gridRow" }), Ko({ prop: "gridAutoFlow" }), Ko({ prop: "gridAutoColumns" }), Ko({ prop: "gridAutoRows" }), Ko({ prop: "gridTemplateColumns" }), Ko({ prop: "gridTemplateRows" }), Ko({ prop: "gridTemplateAreas" }), Ko({ prop: "gridArea" })); function Ti(e) { return e <= 1 && 0 !== e ? 100 * e + "%" : e; } ai(Ko({ prop: "color", themeKey: "palette", transform: ji }), Ko({ prop: "bgcolor", cssProperty: "backgroundColor", themeKey: "palette", transform: ji }), Ko({ prop: "backgroundColor", themeKey: "palette", transform: ji })); const Ri = Ko({ prop: "width", transform: Ti }), Ei = e => { if (void 0 !== e.maxWidth && null !== e.maxWidth) { const t = t => { var n, r; const o = (null == (n = e.theme) || null == (n = n.breakpoints) || null == (n = n.values) ? void 0 : n[t]) || Do[t]; return o ? "px" !== (null == (r = e.theme) || null == (r = r.breakpoints) ? void 0 : r.unit) ? { maxWidth: `${o}${e.theme.breakpoints.unit}` } : { maxWidth: o } : { maxWidth: Ti(t) }; }; return Vo(e, e.maxWidth, t); } return null; }; Ei.filterProps = [ "maxWidth" ]; const $i = Ko({ prop: "minWidth", transform: Ti }), _i = Ko({ prop: "height", transform: Ti }), Oi = Ko({ prop: "maxHeight", transform: Ti }), Ai = Ko({ prop: "minHeight", transform: Ti }); Ko({ prop: "size", cssProperty: "width", transform: Ti }), Ko({ prop: "size", cssProperty: "height", transform: Ti }); ai(Ri, Ei, $i, _i, Oi, Ai, Ko({ prop: "boxSizing" })); const Pi = { border: { themeKey: "borders", transform: si }, borderTop: { themeKey: "borders", transform: si }, borderRight: { themeKey: "borders", transform: si }, borderBottom: { themeKey: "borders", transform: si }, borderLeft: { themeKey: "borders", transform: si }, borderColor: { themeKey: "palette" }, borderTopColor: { themeKey: "palette" }, borderRightColor: { themeKey: "palette" }, borderBottomColor: { themeKey: "palette" }, borderLeftColor: { themeKey: "palette" }, outline: { themeKey: "borders", transform: si }, outlineColor: { themeKey: "palette" }, borderRadius: { themeKey: "shape.borderRadius", style: Si }, color: { themeKey: "palette", transform: ji }, bgcolor: { themeKey: "palette", cssProperty: "backgroundColor", transform: ji }, backgroundColor: { themeKey: "palette", transform: ji }, p: { style: ii }, pt: { style: ii }, pr: { style: ii }, pb: { style: ii }, pl: { style: ii }, px: { style: ii }, py: { style: ii }, padding: { style: ii }, paddingTop: { style: ii }, paddingRight: { style: ii }, paddingBottom: { style: ii }, paddingLeft: { style: ii }, paddingX: { style: ii }, paddingY: { style: ii }, paddingInline: { style: ii }, paddingInlineStart: { style: ii }, paddingInlineEnd: { style: ii }, paddingBlock: { style: ii }, paddingBlockStart: { style: ii }, paddingBlockEnd: { style: ii }, m: { style: oi }, mt: { style: oi }, mr: { style: oi }, mb: { style: oi }, ml: { style: oi }, mx: { style: oi }, my: { style: oi }, margin: { style: oi }, marginTop: { style: oi }, marginRight: { style: oi }, marginBottom: { style: oi }, marginLeft: { style: oi }, marginX: { style: oi }, marginY: { style: oi }, marginInline: { style: oi }, marginInlineStart: { style: oi }, marginInlineEnd: { style: oi }, marginBlock: { style: oi }, marginBlockStart: { style: oi }, marginBlockEnd: { style: oi }, displayPrint: { cssProperty: !1, transform: e => ({ "@media print": { display: e } }) }, display: {}, overflow: {}, textOverflow: {}, visibility: {}, whiteSpace: {}, flexBasis: {}, flexDirection: {}, flexWrap: {}, justifyContent: {}, alignItems: {}, alignContent: {}, order: {}, flex: {}, flexGrow: {}, flexShrink: {}, alignSelf: {}, justifyItems: {}, justifySelf: {}, gap: { style: wi }, rowGap: { style: ki }, columnGap: { style: Ci }, gridColumn: {}, gridRow: {}, gridAutoFlow: {}, gridAutoColumns: {}, gridAutoRows: {}, gridTemplateColumns: {}, gridTemplateRows: {}, gridTemplateAreas: {}, gridArea: {}, position: {}, zIndex: { themeKey: "zIndex" }, top: {}, right: {}, bottom: {}, left: {}, boxShadow: { themeKey: "shadows" }, width: { transform: Ti }, maxWidth: { style: Ei }, minWidth: { transform: Ti }, height: { transform: Ti }, maxHeight: { transform: Ti }, minHeight: { transform: Ti }, boxSizing: {}, fontFamily: { themeKey: "typography" }, fontSize: { themeKey: "typography" }, fontStyle: { themeKey: "typography" }, fontWeight: { themeKey: "typography" }, letterSpacing: {}, textTransform: {}, lineHeight: {}, textAlign: {}, typography: { cssProperty: !1, themeKey: "typography" } }; function Mi() { function e(e, t, n, r) { const o = { [e]: t, theme: n }, i = r[e]; if (!i) return { [e]: t }; const {cssProperty: a = e, themeKey: s, transform: l, style: c} = i; if (null == t) return null; if ("typography" === s && "inherit" === t) return { [e]: t }; const u = Ho(n, s) || {}; if (c) return c(o); return Vo(o, t, (t => { let n = qo(u, l, t); return t === n && "string" == typeof t && (n = qo(u, l, `${e}${"default" === t ? "" : Bn(t)}`, t)), !1 === a ? n : { [a]: n }; })); } return function t(n) { var r; const {sx: o, theme: i = {}} = n || {}; if (!o) return null; const a = null != (r = i.unstable_sxConfig) ? r : Pi; function s(n) { let r = n; if ("function" == typeof n) r = n(i); else if ("object" != typeof n) return n; if (!r) return null; const o = function(e = {}) { var t; return (null == (t = e.keys) ? void 0 : t.reduce(((t, n) => (t[e.up(n)] = {}, t)), {})) || {}; }(i.breakpoints), s = Object.keys(o); let l = o; return Object.keys(r).forEach((n => { const o = (s = r[n], c = i, "function" == typeof s ? s(c) : s); var s, c; if (null != o) if ("object" == typeof o) if (a[n]) l = zo(l, e(n, o, i, a)); else { const e = Vo({ theme: i }, o, (e => ({ [n]: e }))); !function(...e) { const t = e.reduce(((e, t) => e.concat(Object.keys(t))), []), n = new Set(t); return e.every((e => n.size === Object.keys(e).length)); }(e, o) ? l = zo(l, e) : l[n] = t({ sx: o, theme: i }); } else l = zo(l, e(n, o, i, a)); })), c = l, s.reduce(((e, t) => { const n = e[t]; return (!n || 0 === Object.keys(n).length) && delete e[t], e; }), c); var c; } return Array.isArray(o) ? o.map(s) : s(o); }; } const Ii = Mi(); Ii.filterProps = [ "sx" ]; const Fi = Ii; function Bi(e, t) { const n = this; if (n.vars && "function" == typeof n.getColorSchemeSelector) { return { [n.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/, "*:where($1)")]: t }; } return n.palette.mode === e ? t : {}; } const Ni = [ "breakpoints", "palette", "spacing", "shape" ]; function Li(e = {}, ...t) { const {breakpoints: n = {}, palette: r = {}, spacing: o, shape: i = {}} = e, a = nn(e, Ni), s = No(n), l = function(e = 8) { if (e.mui) return e; const t = ei({ spacing: e }), n = (...e) => (0 === e.length ? [ 1 ] : e).map((e => { const n = t(e); return "number" == typeof n ? `${n}px` : n; })).join(" "); return n.mui = !0, n; }(o); let c = En({ breakpoints: s, direction: "ltr", components: {}, palette: rn({ mode: "light" }, r), spacing: l, shape: rn({}, Lo, i) }, a); return c.applyStyles = Bi, c = t.reduce(((e, t) => En(e, t)), c), c.unstable_sxConfig = rn({}, Pi, null == a ? void 0 : a.unstable_sxConfig), c.unstable_sx = function(e) { return Fi({ sx: e, theme: this }); }, c; } const zi = F(Object.freeze(Object.defineProperty({ __proto__: null, default: Li, private_createBreakpoints: No, unstable_applyStyles: Bi }, Symbol.toStringTag, { value: "Module" }))), Di = [ "sx" ], Wi = e => { var t, n; const r = { systemProps: {}, otherProps: {} }, o = null != (t = null == e || null == (n = e.theme) ? void 0 : n.unstable_sxConfig) ? t : Pi; return Object.keys(e).forEach((t => { o[t] ? r.systemProps[t] = e[t] : r.otherProps[t] = e[t]; })), r; }; function Vi(e) { const {sx: t} = e, n = nn(e, Di), {systemProps: r, otherProps: o} = Wi(n); let i; return i = Array.isArray(t) ? [ r, ...t ] : "function" == typeof t ? (...e) => { const n = t(...e); return Tn(n) ? rn({}, r, n) : r; } : rn({}, r, t), rn({}, o, { sx: i }); } const Hi = F(Object.freeze(Object.defineProperty({ __proto__: null, default: Fi, extendSxProp: Vi, unstable_createStyleFunctionSx: Mi, unstable_defaultSxConfig: Pi }, Symbol.toStringTag, { value: "Module" }))); var qi = jr; Object.defineProperty(wr, "__esModule", { value: !0 }); var Ki = wr.default = function(e = {}) { const {themeId: t, defaultTheme: n = ia, rootShouldForwardProp: r = oa, slotShouldForwardProp: o = oa} = e, i = e => (0, Qi.default)((0, Xi.default)({}, e, { theme: sa((0, Xi.default)({}, e, { defaultTheme: n, themeId: t })) })); return i.__mui_systemSx = !0, (e, a = {}) => { (0, Yi.internal_processStyles)(e, (e => e.filter((e => !(null != e && e.__mui_systemSx))))); const {name: s, slot: l, skipVariantsResolver: c, skipSx: u, overridesResolver: d = la(aa(l))} = a, p = (0, Gi.default)(a, na), f = void 0 !== c ? c : l && "Root" !== l && "root" !== l || !1, h = u || !1; let m = oa; "Root" === l || "root" === l ? m = r : l ? m = o : function(e) { return "string" == typeof e && e.charCodeAt(0) > 96; }(e) && (m = void 0); const g = (0, Yi.default)(e, (0, Xi.default)({ shouldForwardProp: m, label: undefined }, p)), y = e => "function" == typeof e && e.__emotion_real !== e || (0, Ji.isPlainObject)(e) ? r => ca(e, (0, Xi.default)({}, r, { theme: sa({ theme: r.theme, defaultTheme: n, themeId: t }) })) : e, b = (r, ...o) => { let a = y(r); const l = o ? o.map(y) : []; s && d && l.push((e => { const r = sa((0, Xi.default)({}, e, { defaultTheme: n, themeId: t })); if (!r.components || !r.components[s] || !r.components[s].styleOverrides) return null; const o = r.components[s].styleOverrides, i = {}; return Object.entries(o).forEach((([t, n]) => { i[t] = ca(n, (0, Xi.default)({}, e, { theme: r })); })), d(e, i); })), s && !f && l.push((e => { var r; const o = sa((0, Xi.default)({}, e, { defaultTheme: n, themeId: t })); return ca({ variants: null == o || null == (r = o.components) || null == (r = r[s]) ? void 0 : r.variants }, (0, Xi.default)({}, e, { theme: o })); })), h || l.push(i); const c = l.length - o.length; if (Array.isArray(r) && c > 0) { const e = new Array(c).fill(""); a = [ ...r, ...e ], a.raw = [ ...r.raw, ...e ]; } const u = g(a, ...l); return e.muiName && (u.muiName = e.muiName), u; }; return g.withConfig && (b.withConfig = g.withConfig), b; }; }, Ui = wr.shouldForwardProp = oa; wr.systemDefaultTheme = void 0; var Xi = qi((kr || (kr = 1, function(e) { function t() { return e.exports = t = Object.assign ? Object.assign.bind() : function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]); } return e; }, e.exports.__esModule = !0, e.exports.default = e.exports, t.apply(this, arguments); } e.exports = t, e.exports.__esModule = !0, e.exports.default = e.exports; }(Tr)), Tr.exports)), Gi = qi((Rr || (Rr = 1, function(e) { e.exports = function(e, t) { if (null == e) return {}; var n, r, o = {}, i = Object.keys(e); for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]); return o; }, e.exports.__esModule = !0, e.exports.default = e.exports; }(Er)), Er.exports)), Yi = function(e, t) { if (!t && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var n = ra(t); if (n && n.has(e)) return n.get(e); var r = { __proto__: null }, o = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var i in e) if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) { var a = o ? Object.getOwnPropertyDescriptor(e, i) : null; a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i]; } return r.default = e, n && n.set(e, r), r; }(Ao), Ji = Po; qi(Mo), qi(Io); var Zi = qi(zi), Qi = qi(Hi); const ea = [ "ownerState" ], ta = [ "variants" ], na = [ "name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver" ]; function ra(e) { if ("function" != typeof WeakMap) return null; var t = new WeakMap, n = new WeakMap; return (ra = function(e) { return e ? n : t; })(e); } function oa(e) { return "ownerState" !== e && "theme" !== e && "sx" !== e && "as" !== e; } const ia = wr.systemDefaultTheme = (0, Zi.default)(), aa = e => e ? e.charAt(0).toLowerCase() + e.slice(1) : e; function sa({defaultTheme: e, theme: t, themeId: n}) { return r = t, 0 === Object.keys(r).length ? e : t[n] || t; var r; } function la(e) { return e ? (t, n) => n[e] : null; } function ca(e, t) { let {ownerState: n} = t, r = (0, Gi.default)(t, ea); const o = "function" == typeof e ? e((0, Xi.default)({ ownerState: n }, r)) : e; if (Array.isArray(o)) return o.flatMap((e => ca(e, (0, Xi.default)({ ownerState: n }, r)))); if (o && "object" == typeof o && Array.isArray(o.variants)) { const {variants: e = []} = o; let t = (0, Gi.default)(o, ta); return e.forEach((e => { let o = !0; "function" == typeof e.props ? o = e.props((0, Xi.default)({ ownerState: n }, r, n)) : Object.keys(e.props).forEach((t => { (null == n ? void 0 : n[t]) !== e.props[t] && r[t] !== e.props[t] && (o = !1); })), o && (Array.isArray(t) || (t = [ t ]), t.push("function" == typeof e.style ? e.style((0, Xi.default)({ ownerState: n }, r, n)) : e.style)); })), t; } return o; } var ua = {}; const da = F(On), pa = F(hr); var fa = jr; Object.defineProperty(ua, "__esModule", { value: !0 }), ua.alpha = Ta, ua.blend = function(e, t, n, r = 1) { const o = (e, t) => Math.round((e ** (1 / r) * (1 - n) + t ** (1 / r) * n) ** r), i = Sa(e), a = Sa(t); return Ca({ type: "rgb", values: [ o(i.values[0], a.values[0]), o(i.values[1], a.values[1]), o(i.values[2], a.values[2]) ] }); }, ua.colorChannel = void 0; var ha = ua.darken = Ra; ua.decomposeColor = Sa, ua.emphasize = function(e, t = .15) { return ja(e) > .5 ? Ra(e, t) : Ea(e, t); }; var ma = ua.getContrastRatio = function(e, t) { const n = ja(e), r = ja(t); return (Math.max(n, r) + .05) / (Math.min(n, r) + .05); }; ua.getLuminance = ja, ua.hexToRgb = xa, ua.hslToRgb = ka; var ga = ua.lighten = Ea; ua.private_safeAlpha = function(e, t, n) { try { return Ta(e, t); } catch (r) { return e; } }, ua.private_safeColorChannel = void 0, ua.private_safeDarken = function(e, t, n) { try { return Ra(e, t); } catch (r) { return e; } }, ua.private_safeEmphasize = function e(t, n, r) { try { return e(t, n); } catch (o) { return t; } }, ua.private_safeLighten = function(e, t, n) { try { return Ea(e, t); } catch (r) { return e; } }, ua.recomposeColor = Ca, ua.rgbToHex = function(e) { if (0 === e.indexOf("#")) return e; const {values: t} = Sa(e); return `#${t.map(((e, t) => function(e) { const t = e.toString(16); return 1 === t.length ? `0${t}` : t; }(3 === t ? Math.round(255 * e) : e))).join("")}`; }; var ya = fa(da), ba = fa(pa); function va(e, t = 0, n = 1) { return (0, ba.default)(e, t, n); } function xa(e) { e = e.slice(1); const t = new RegExp(`.{1,${e.length >= 6 ? 2 : 1}}`, "g"); let n = e.match(t); return n && 1 === n[0].length && (n = n.map((e => e + e))), n ? `rgb${4 === n.length ? "a" : ""}(${n.map(((e, t) => t < 3 ? parseInt(e, 16) : Math.round(parseInt(e, 16) / 255 * 1e3) / 1e3)).join(", ")})` : ""; } function Sa(e) { if (e.type) return e; if ("#" === e.charAt(0)) return Sa(xa(e)); const t = e.indexOf("("), n = e.substring(0, t); if (-1 === [ "rgb", "rgba", "hsl", "hsla", "color" ].indexOf(n)) throw new Error((0, ya.default)(9, e)); let r, o = e.substring(t + 1, e.length - 1); if ("color" === n) { if (o = o.split(" "), r = o.shift(), 4 === o.length && "/" === o[3].charAt(0) && (o[3] = o[3].slice(1)), -1 === [ "srgb", "display-p3", "a98-rgb", "prophoto-rgb", "rec-2020" ].indexOf(r)) throw new Error((0, ya.default)(10, r)); } else o = o.split(","); return o = o.map((e => parseFloat(e))), { type: n, values: o, colorSpace: r }; } const wa = e => { const t = Sa(e); return t.values.slice(0, 3).map(((e, n) => -1 !== t.type.indexOf("hsl") && 0 !== n ? `${e}%` : e)).join(" "); }; ua.colorChannel = wa; function Ca(e) { const {type: t, colorSpace: n} = e; let {values: r} = e; return -1 !== t.indexOf("rgb") ? r = r.map(((e, t) => t < 3 ? parseInt(e, 10) : e)) : -1 !== t.indexOf("hsl") && (r[1] = `${r[1]}%`, r[2] = `${r[2]}%`), r = -1 !== t.indexOf("color") ? `${n} ${r.join(" ")}` : `${r.join(", ")}`, `${t}(${r})`; } function ka(e) { e = Sa(e); const {values: t} = e, n = t[0], r = t[1] / 100, o = t[2] / 100, i = r * Math.min(o, 1 - o), a = (e, t = (e + n / 30) % 12) => o - i * Math.max(Math.min(t - 3, 9 - t, 1), -1); let s = "rgb"; const l = [ Math.round(255 * a(0)), Math.round(255 * a(8)), Math.round(255 * a(4)) ]; return "hsla" === e.type && (s += "a", l.push(t[3])), Ca({ type: s, values: l }); } function ja(e) { let t = "hsl" === (e = Sa(e)).type || "hsla" === e.type ? Sa(ka(e)).values : e.values; return t = t.map((t => ("color" !== e.type && (t /= 255), t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4))), Number((.2126 * t[0] + .7152 * t[1] + .0722 * t[2]).toFixed(3)); } function Ta(e, t) { return e = Sa(e), t = va(t), "rgb" !== e.type && "hsl" !== e.type || (e.type += "a"), "color" === e.type ? e.values[3] = `/${t}` : e.values[3] = t, Ca(e); } function Ra(e, t) { if (e = Sa(e), t = va(t), -1 !== e.type.indexOf("hsl")) e.values[2] *= 1 - t; else if (-1 !== e.type.indexOf("rgb") || -1 !== e.type.indexOf("color")) for (let n = 0; n < 3; n += 1) e.values[n] *= 1 - t; return Ca(e); } function Ea(e, t) { if (e = Sa(e), t = va(t), -1 !== e.type.indexOf("hsl")) e.values[2] += (100 - e.values[2]) * t; else if (-1 !== e.type.indexOf("rgb")) for (let n = 0; n < 3; n += 1) e.values[n] += (255 - e.values[n]) * t; else if (-1 !== e.type.indexOf("color")) for (let n = 0; n < 3; n += 1) e.values[n] += (1 - e.values[n]) * t; return Ca(e); } ua.private_safeColorChannel = (e, t) => { try { return wa(e); } catch (n) { return e; } }; const $a = { black: "#000", white: "#fff" }, _a = { 50: "#fafafa", 100: "#f5f5f5", 200: "#eeeeee", 300: "#e0e0e0", 400: "#bdbdbd", 500: "#9e9e9e", 600: "#757575", 700: "#616161", 800: "#424242", 900: "#212121", A100: "#f5f5f5", A200: "#eeeeee", A400: "#bdbdbd", A700: "#616161" }, Oa = { 50: "#f3e5f5", 100: "#e1bee7", 200: "#ce93d8", 300: "#ba68c8", 400: "#ab47bc", 500: "#9c27b0", 600: "#8e24aa", 700: "#7b1fa2", 800: "#6a1b9a", 900: "#4a148c", A100: "#ea80fc", A200: "#e040fb", A400: "#d500f9", A700: "#aa00ff" }, Aa = { 50: "#ffebee", 100: "#ffcdd2", 200: "#ef9a9a", 300: "#e57373", 400: "#ef5350", 500: "#f44336", 600: "#e53935", 700: "#d32f2f", 800: "#c62828", 900: "#b71c1c", A100: "#ff8a80", A200: "#ff5252", A400: "#ff1744", A700: "#d50000" }, Pa = { 50: "#fff3e0", 100: "#ffe0b2", 200: "#ffcc80", 300: "#ffb74d", 400: "#ffa726", 500: "#ff9800", 600: "#fb8c00", 700: "#f57c00", 800: "#ef6c00", 900: "#e65100", A100: "#ffd180", A200: "#ffab40", A400: "#ff9100", A700: "#ff6d00" }, Ma = { 50: "#e3f2fd", 100: "#bbdefb", 200: "#90caf9", 300: "#64b5f6", 400: "#42a5f5", 500: "#2196f3", 600: "#1e88e5", 700: "#1976d2", 800: "#1565c0", 900: "#0d47a1", A100: "#82b1ff", A200: "#448aff", A400: "#2979ff", A700: "#2962ff" }, Ia = { 50: "#e1f5fe", 100: "#b3e5fc", 200: "#81d4fa", 300: "#4fc3f7", 400: "#29b6f6", 500: "#03a9f4", 600: "#039be5", 700: "#0288d1", 800: "#0277bd", 900: "#01579b", A100: "#80d8ff", A200: "#40c4ff", A400: "#00b0ff", A700: "#0091ea" }, Fa = { 50: "#e8f5e9", 100: "#c8e6c9", 200: "#a5d6a7", 300: "#81c784", 400: "#66bb6a", 500: "#4caf50", 600: "#43a047", 700: "#388e3c", 800: "#2e7d32", 900: "#1b5e20", A100: "#b9f6ca", A200: "#69f0ae", A400: "#00e676", A700: "#00c853" }, Ba = [ "mode", "contrastThreshold", "tonalOffset" ], Na = { text: { primary: "rgba(0, 0, 0, 0.87)", secondary: "rgba(0, 0, 0, 0.6)", disabled: "rgba(0, 0, 0, 0.38)" }, divider: "rgba(0, 0, 0, 0.12)", background: { paper: $a.white, default: $a.white }, action: { active: "rgba(0, 0, 0, 0.54)", hover: "rgba(0, 0, 0, 0.04)", hoverOpacity: .04, selected: "rgba(0, 0, 0, 0.08)", selectedOpacity: .08, disabled: "rgba(0, 0, 0, 0.26)", disabledBackground: "rgba(0, 0, 0, 0.12)", disabledOpacity: .38, focus: "rgba(0, 0, 0, 0.12)", focusOpacity: .12, activatedOpacity: .12 } }, La = { text: { primary: $a.white, secondary: "rgba(255, 255, 255, 0.7)", disabled: "rgba(255, 255, 255, 0.5)", icon: "rgba(255, 255, 255, 0.5)" }, divider: "rgba(255, 255, 255, 0.12)", background: { paper: "#121212", default: "#121212" }, action: { active: $a.white, hover: "rgba(255, 255, 255, 0.08)", hoverOpacity: .08, selected: "rgba(255, 255, 255, 0.16)", selectedOpacity: .16, disabled: "rgba(255, 255, 255, 0.3)", disabledBackground: "rgba(255, 255, 255, 0.12)", disabledOpacity: .38, focus: "rgba(255, 255, 255, 0.12)", focusOpacity: .12, activatedOpacity: .24 } }; function za(e, t, n, r) { const o = r.light || r, i = r.dark || 1.5 * r; e[t] || (e.hasOwnProperty(n) ? e[t] = e[n] : "light" === t ? e.light = ga(e.main, o) : "dark" === t && (e.dark = ha(e.main, i))); } function Da(e) { const {mode: t = "light", contrastThreshold: n = 3, tonalOffset: r = .2} = e, o = nn(e, Ba), i = e.primary || function(e = "light") { return "dark" === e ? { main: Ma[200], light: Ma[50], dark: Ma[400] } : { main: Ma[700], light: Ma[400], dark: Ma[800] }; }(t), a = e.secondary || function(e = "light") { return "dark" === e ? { main: Oa[200], light: Oa[50], dark: Oa[400] } : { main: Oa[500], light: Oa[300], dark: Oa[700] }; }(t), s = e.error || function(e = "light") { return "dark" === e ? { main: Aa[500], light: Aa[300], dark: Aa[700] } : { main: Aa[700], light: Aa[400], dark: Aa[800] }; }(t), l = e.info || function(e = "light") { return "dark" === e ? { main: Ia[400], light: Ia[300], dark: Ia[700] } : { main: Ia[700], light: Ia[500], dark: Ia[900] }; }(t), c = e.success || function(e = "light") { return "dark" === e ? { main: Fa[400], light: Fa[300], dark: Fa[700] } : { main: Fa[800], light: Fa[500], dark: Fa[900] }; }(t), u = e.warning || function(e = "light") { return "dark" === e ? { main: Pa[400], light: Pa[300], dark: Pa[700] } : { main: "#ed6c02", light: Pa[500], dark: Pa[900] }; }(t); function d(e) { return ma(e, La.text.primary) >= n ? La.text.primary : Na.text.primary; } const p = ({color: e, name: t, mainShade: n = 500, lightShade: o = 300, darkShade: i = 700}) => { if (!(e = rn({}, e)).main && e[n] && (e.main = e[n]), !e.hasOwnProperty("main")) throw new Error(_n(11, t ? ` (${t})` : "", n)); if ("string" != typeof e.main) throw new Error(_n(12, t ? ` (${t})` : "", JSON.stringify(e.main))); return za(e, "light", o, r), za(e, "dark", i, r), e.contrastText || (e.contrastText = d(e.main)), e; }, f = { dark: La, light: Na }; return En(rn({ common: rn({}, $a), mode: t, primary: p({ color: i, name: "primary" }), secondary: p({ color: a, name: "secondary", mainShade: "A400", lightShade: "A200", darkShade: "A700" }), error: p({ color: s, name: "error" }), warning: p({ color: u, name: "warning" }), info: p({ color: l, name: "info" }), success: p({ color: c, name: "success" }), grey: _a, contrastThreshold: n, getContrastText: d, augmentColor: p, tonalOffset: r }, f[t]), o); } const Wa = [ "fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem" ]; const Va = { textTransform: "uppercase" }, Ha = '"Roboto", "Helvetica", "Arial", sans-serif'; function qa(e, t) { const n = "function" == typeof t ? t(e) : t, {fontFamily: r = Ha, fontSize: o = 14, fontWeightLight: i = 300, fontWeightRegular: a = 400, fontWeightMedium: s = 500, fontWeightBold: l = 700, htmlFontSize: c = 16, allVariants: u, pxToRem: d} = n, p = nn(n, Wa), f = o / 14, h = d || (e => e / c * f + "rem"), m = (e, t, n, o, i) => { return rn({ fontFamily: r, fontWeight: e, fontSize: h(t), lineHeight: n }, r === Ha ? { letterSpacing: (a = o / t, Math.round(1e5 * a) / 1e5) + "em" } : {}, i, u); var a; }, g = { h1: m(i, 96, 1.167, -1.5), h2: m(i, 60, 1.2, -.5), h3: m(a, 48, 1.167, 0), h4: m(a, 34, 1.235, .25), h5: m(a, 24, 1.334, 0), h6: m(s, 20, 1.6, .15), subtitle1: m(a, 16, 1.75, .15), subtitle2: m(s, 14, 1.57, .1), body1: m(a, 16, 1.5, .15), body2: m(a, 14, 1.43, .15), button: m(s, 14, 1.75, .4, Va), caption: m(a, 12, 1.66, .4), overline: m(a, 12, 2.66, 1, Va), inherit: { fontFamily: "inherit", fontWeight: "inherit", fontSize: "inherit", lineHeight: "inherit", letterSpacing: "inherit" } }; return En(rn({ htmlFontSize: c, pxToRem: h, fontFamily: r, fontSize: o, fontWeightLight: i, fontWeightRegular: a, fontWeightMedium: s, fontWeightBold: l }, g), p, { clone: !1 }); } function Ka(...e) { return [ `${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,0.2)`, `${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,0.14)`, `${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,0.12)` ].join(","); } const Ua = [ "none", Ka(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), Ka(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), Ka(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), Ka(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), Ka(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), Ka(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), Ka(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), Ka(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), Ka(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), Ka(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), Ka(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), Ka(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), Ka(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), Ka(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), Ka(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), Ka(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), Ka(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), Ka(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), Ka(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), Ka(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), Ka(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), Ka(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), Ka(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), Ka(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8) ], Xa = [ "duration", "easing", "delay" ], Ga = { easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)", easeOut: "cubic-bezier(0.0, 0, 0.2, 1)", easeIn: "cubic-bezier(0.4, 0, 1, 1)", sharp: "cubic-bezier(0.4, 0, 0.6, 1)" }, Ya = { shortest: 150, shorter: 200, short: 250, standard: 300, complex: 375, enteringScreen: 225, leavingScreen: 195 }; function Ja(e) { return `${Math.round(e)}ms`; } function Za(e) { if (!e) return 0; const t = e / 36; return Math.round(10 * (4 + 15 * t ** .25 + t / 5)); } function Qa(e) { const t = rn({}, Ga, e.easing), n = rn({}, Ya, e.duration); return rn({ getAutoHeightDuration: Za, create: (e = [ "all" ], r = {}) => { const {duration: o = n.standard, easing: i = t.easeInOut, delay: a = 0} = r; return nn(r, Xa), (Array.isArray(e) ? e : [ e ]).map((e => `${e} ${"string" == typeof o ? o : Ja(o)} ${i} ${"string" == typeof a ? a : Ja(a)}`)).join(","); } }, e, { easing: t, duration: n }); } const es = { mobileStepper: 1e3, fab: 1050, speedDial: 1050, appBar: 1100, drawer: 1200, modal: 1300, snackbar: 1400, tooltip: 1500 }, ts = [ "breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape" ]; function ns(e = {}, ...t) { const {mixins: n = {}, palette: r = {}, transitions: o = {}, typography: i = {}} = e, a = nn(e, ts); if (e.vars) throw new Error(_n(18)); const s = Da(r), l = Li(e); let c = En(l, { mixins: (u = l.breakpoints, d = n, rn({ toolbar: { minHeight: 56, [u.up("xs")]: { "@media (orientation: landscape)": { minHeight: 48 } }, [u.up("sm")]: { minHeight: 64 } } }, d)), palette: s, shadows: Ua.slice(), typography: qa(s, i), transitions: Qa(o), zIndex: rn({}, es) }); var u, d; return c = En(c, a), c = t.reduce(((e, t) => En(e, t)), c), c.unstable_sxConfig = rn({}, Pi, null == a ? void 0 : a.unstable_sxConfig), c.unstable_sx = function(e) { return Fi({ sx: e, theme: this }); }, c; } const rs = ns(), os = "$$material", is = Ki({ themeId: os, defaultTheme: rs, rootShouldForwardProp: e => Ui(e) && "classes" !== e }); function as(e) { const {theme: t, name: n, props: r} = e; return t && t.components && t.components[n] && t.components[n].defaultProps ? sr(t.components[n].defaultProps, r) : r; } function ss(t = null) { const n = e__namespace.useContext(react.ThemeContext); return n && (r = n, 0 !== Object.keys(r).length) ? n : t; var r; } const ls = Li(); function cs(e = ls) { return ss(e); } function us({props: e, name: t}) { return function({props: e, name: t, defaultTheme: n, themeId: r}) { let o = cs(n); return r && (o = o[r] || o), as({ theme: o, name: t, props: e }); }({ props: e, name: t, defaultTheme: rs, themeId: os }); } const ds = [ "className", "component" ]; function ps(e) { return (1 + Math.sin(Math.PI * e - Math.PI / 2)) / 2; } function fs(e) { return pr("MuiSvgIcon", e); } fr("MuiSvgIcon", [ "root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge" ]); const hs = [ "children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox" ], ms = is("svg", { name: "MuiSvgIcon", slot: "Root", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ t.root, "inherit" !== n.color && t[`color${Bn(n.color)}`], t[`fontSize${Bn(n.fontSize)}`] ]; } })((({theme: e, ownerState: t}) => { var n, r, o, i, a, s, l, c, u, d, p, f, h; return { userSelect: "none", width: "1em", height: "1em", display: "inline-block", fill: t.hasSvgAsChild ? void 0 : "currentColor", flexShrink: 0, transition: null == (n = e.transitions) || null == (r = n.create) ? void 0 : r.call(n, "fill", { duration: null == (o = e.transitions) || null == (o = o.duration) ? void 0 : o.shorter }), fontSize: { inherit: "inherit", small: (null == (i = e.typography) || null == (a = i.pxToRem) ? void 0 : a.call(i, 20)) || "1.25rem", medium: (null == (s = e.typography) || null == (l = s.pxToRem) ? void 0 : l.call(s, 24)) || "1.5rem", large: (null == (c = e.typography) || null == (u = c.pxToRem) ? void 0 : u.call(c, 35)) || "2.1875rem" }[t.fontSize], color: null != (d = null == (p = (e.vars || e).palette) || null == (p = p[t.color]) ? void 0 : p.main) ? d : { action: null == (f = (e.vars || e).palette) || null == (f = f.action) ? void 0 : f.active, disabled: null == (h = (e.vars || e).palette) || null == (h = h.action) ? void 0 : h.disabled, inherit: void 0 }[t.color] }; })), gs = e__namespace.forwardRef((function(t, n) { const r = us({ props: t, name: "MuiSvgIcon" }), {children: o, className: i, color: a = "inherit", component: s = "svg", fontSize: l = "medium", htmlColor: c, inheritViewBox: u = !1, titleAccess: d, viewBox: p = "0 0 24 24"} = r, f = nn(r, hs), h = e__namespace.isValidElement(o) && "svg" === o.type, m = rn({}, r, { color: a, component: s, fontSize: l, instanceFontSize: t.fontSize, inheritViewBox: u, viewBox: p, hasSvgAsChild: h }), g = {}; u || (g.viewBox = p); const y = (e => { const {color: t, fontSize: n, classes: r} = e; return lr({ root: [ "root", "inherit" !== t && `color${Bn(t)}`, `fontSize${Bn(n)}` ] }, fs, r); })(m); return K.jsxs(ms, rn({ as: s, className: jn(y.root, i), focusable: "false", color: c, "aria-hidden": !d || void 0, role: d ? "img" : void 0, ref: n }, g, f, h && o.props, { ownerState: m, children: [ h ? o.props.children : o, d ? K.jsx("title", { children: d }) : null ] })); })); function ys(t, n) { function r(e, r) { return K.jsx(gs, rn({ "data-testid": `${n}Icon`, ref: r }, e, { children: t })); } return r.muiName = gs.muiName, e__namespace.memo(e__namespace.forwardRef(r)); } gs.muiName = "SvgIcon"; const bs = [ "onChange" ], vs = { width: 99, height: 99, position: "absolute", top: -9999, overflow: "scroll" }; const xs = ys(K.jsx("path", { d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z" }), "KeyboardArrowLeft"), Ss = ys(K.jsx("path", { d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" }), "KeyboardArrowRight"); function ws(e, t) { return (ws = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) { return e.__proto__ = t, e; })(e, t); } const Cs = e.createContext(null); function ks(e$1, t) { var n = Object.create(null); return e$1 && e.Children.map(e$1, (function(e) { return e; })).forEach((function(e$1) { n[e$1.key] = function(e$1) { return t && e.isValidElement(e$1) ? t(e$1) : e$1; }(e$1); })), n; } function js(e, t, n) { return null != n[t] ? n[t] : e.props[t]; } function Ts(e$1, t, n) { var r = ks(e$1.children), o = function(e, t) { function n(n) { return n in t ? t[n] : e[n]; } e = e || {}, t = t || {}; var r, o = Object.create(null), i = []; for (var a in e) a in t ? i.length && (o[a] = i, i = []) : i.push(a); var s = {}; for (var l in t) { if (o[l]) for (r = 0; r < o[l].length; r++) { var c = o[l][r]; s[o[l][r]] = n(c); } s[l] = n(l); } for (r = 0; r < i.length; r++) s[i[r]] = n(i[r]); return s; }(t, r); return Object.keys(o).forEach((function(s) { var l = o[s]; if (e.isValidElement(l)) { var c = s in t, u = s in r, d = t[s], p = e.isValidElement(d) && !d.props.in; !u || c && !p ? u || !c || p ? u && c && e.isValidElement(d) && (o[s] = e.cloneElement(l, { onExited: n.bind(null, l), in: d.props.in, exit: js(l, "exit", e$1), enter: js(l, "enter", e$1) })) : o[s] = e.cloneElement(l, { in: !1 }) : o[s] = e.cloneElement(l, { onExited: n.bind(null, l), in: !0, exit: js(l, "exit", e$1), enter: js(l, "enter", e$1) }); } })), o; } var Rs = Object.values || function(e) { return Object.keys(e).map((function(t) { return e[t]; })); }, Es = function(e$1) { var n, r; function o(t, n) { var r, o = (r = e$1.call(this, t, n) || this).handleExited.bind(function(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }(r)); return r.state = { contextValue: { isMounting: !0 }, handleExited: o, firstRender: !0 }, r; } r = e$1, (n = o).prototype = Object.create(r.prototype), n.prototype.constructor = n, ws(n, r); var i = o.prototype; return i.componentDidMount = function() { this.mounted = !0, this.setState({ contextValue: { isMounting: !1 } }); }, i.componentWillUnmount = function() { this.mounted = !1; }, o.getDerivedStateFromProps = function(e$1, t) { var n, r, o = t.children, i = t.handleExited; return { children: t.firstRender ? (n = e$1, r = i, ks(n.children, (function(e$1) { return e.cloneElement(e$1, { onExited: r.bind(null, e$1), in: !0, appear: js(e$1, "appear", n), enter: js(e$1, "enter", n), exit: js(e$1, "exit", n) }); }))) : Ts(e$1, o, i), firstRender: !1 }; }, i.handleExited = function(e, t) { var n = ks(this.props.children); e.key in n || (e.props.onExited && e.props.onExited(t), this.mounted && this.setState((function(t) { var n = rn({}, t.children); return delete n[e.key], { children: n }; }))); }, i.render = function() { var e$1 = this.props, n = e$1.component, r = e$1.childFactory, o = nn(e$1, [ "component", "childFactory" ]), i = this.state.contextValue, a = Rs(this.state.children).map(r); return delete o.appear, delete o.enter, delete o.exit, null === n ? e.createElement(Cs.Provider, { value: i }, a) : e.createElement(Cs.Provider, { value: i }, e.createElement(n, o, a)); }, o; }(e.Component); Es.propTypes = {}, Es.defaultProps = { component: "div", childFactory: function(e) { return e; } }; const $s = Es; const _s = fr("MuiTouchRipple", [ "root", "ripple", "rippleVisible", "ripplePulsate", "child", "childLeaving", "childPulsate" ]), Os = [ "center", "classes", "className" ]; let As, Ps, Ms, Is, Fs = e => e; const Bs = react.keyframes(As || (As = Fs` 0% { transform: scale(0); opacity: 0.1; } 100% { transform: scale(1); opacity: 0.3; } `)), Ns = react.keyframes(Ps || (Ps = Fs` 0% { opacity: 1; } 100% { opacity: 0; } `)), Ls = react.keyframes(Ms || (Ms = Fs` 0% { transform: scale(1); } 50% { transform: scale(0.92); } 100% { transform: scale(1); } `)), zs = is("span", { name: "MuiTouchRipple", slot: "Root" })({ overflow: "hidden", pointerEvents: "none", position: "absolute", zIndex: 0, top: 0, right: 0, bottom: 0, left: 0, borderRadius: "inherit" }), Ds = is((function(t) { const {className: n, classes: r, pulsate: o = !1, rippleX: i, rippleY: a, rippleSize: s, in: l, onExited: c, timeout: u} = t, [d, p] = e__namespace.useState(!1), f = jn(n, r.ripple, r.rippleVisible, o && r.ripplePulsate), h = { width: s, height: s, top: -s / 2 + a, left: -s / 2 + i }, m = jn(r.child, d && r.childLeaving, o && r.childPulsate); return l || d || p(!0), e__namespace.useEffect((() => { if (!l && null != c) { const e = setTimeout(c, u); return () => { clearTimeout(e); }; } }), [ c, l, u ]), K.jsx("span", { className: f, style: h, children: K.jsx("span", { className: m }) }); }), { name: "MuiTouchRipple", slot: "Ripple" })(Is || (Is = Fs` opacity: 0; position: absolute; &.${0} { opacity: 0.3; transform: scale(1); animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } &.${0} { animation-duration: ${0}ms; } & .${0} { opacity: 1; display: block; width: 100%; height: 100%; border-radius: 50%; background-color: currentColor; } & .${0} { opacity: 0; animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } & .${0} { position: absolute; /* @noflip */ left: 0px; top: 0; animation-name: ${0}; animation-duration: 2500ms; animation-timing-function: ${0}; animation-iteration-count: infinite; animation-delay: 200ms; } `), _s.rippleVisible, Bs, 550, (({theme: e}) => e.transitions.easing.easeInOut), _s.ripplePulsate, (({theme: e}) => e.transitions.duration.shorter), _s.child, _s.childLeaving, Ns, 550, (({theme: e}) => e.transitions.easing.easeInOut), _s.childPulsate, Ls, (({theme: e}) => e.transitions.easing.easeInOut)), Ws = e__namespace.forwardRef((function(t, n) { const r = us({ props: t, name: "MuiTouchRipple" }), {center: o = !1, classes: i = {}, className: a} = r, s = nn(r, Os), [l, c] = e__namespace.useState([]), u = e__namespace.useRef(0), d = e__namespace.useRef(null); e__namespace.useEffect((() => { d.current && (d.current(), d.current = null); }), [ l ]); const p = e__namespace.useRef(!1), f = Xn(), h = e__namespace.useRef(null), m = e__namespace.useRef(null), g = e__namespace.useCallback((e => { const {pulsate: t, rippleX: n, rippleY: r, rippleSize: o, cb: a} = e; c((e => [ ...e, K.jsx(Ds, { classes: { ripple: jn(i.ripple, _s.ripple), rippleVisible: jn(i.rippleVisible, _s.rippleVisible), ripplePulsate: jn(i.ripplePulsate, _s.ripplePulsate), child: jn(i.child, _s.child), childLeaving: jn(i.childLeaving, _s.childLeaving), childPulsate: jn(i.childPulsate, _s.childPulsate) }, timeout: 550, pulsate: t, rippleX: n, rippleY: r, rippleSize: o }, u.current) ])), u.current += 1, d.current = a; }), [ i ]), y = e__namespace.useCallback(((e = {}, t = {}, n = (() => {})) => { const {pulsate: r = !1, center: i = o || t.pulsate, fakeElement: a = !1} = t; if ("mousedown" === (null == e ? void 0 : e.type) && p.current) return void (p.current = !1); "touchstart" === (null == e ? void 0 : e.type) && (p.current = !0); const s = a ? null : m.current, l = s ? s.getBoundingClientRect() : { width: 0, height: 0, left: 0, top: 0 }; let c, u, d; if (i || void 0 === e || 0 === e.clientX && 0 === e.clientY || !e.clientX && !e.touches) c = Math.round(l.width / 2), u = Math.round(l.height / 2); else { const {clientX: t, clientY: n} = e.touches && e.touches.length > 0 ? e.touches[0] : e; c = Math.round(t - l.left), u = Math.round(n - l.top); } if (i) d = Math.sqrt((2 * l.width ** 2 + l.height ** 2) / 3), d % 2 == 0 && (d += 1); else { const e = 2 * Math.max(Math.abs((s ? s.clientWidth : 0) - c), c) + 2, t = 2 * Math.max(Math.abs((s ? s.clientHeight : 0) - u), u) + 2; d = Math.sqrt(e ** 2 + t ** 2); } null != e && e.touches ? null === h.current && (h.current = () => { g({ pulsate: r, rippleX: c, rippleY: u, rippleSize: d, cb: n }); }, f.start(80, (() => { h.current && (h.current(), h.current = null); }))) : g({ pulsate: r, rippleX: c, rippleY: u, rippleSize: d, cb: n }); }), [ o, g, f ]), b = e__namespace.useCallback((() => { y({}, { pulsate: !0 }); }), [ y ]), v = e__namespace.useCallback(((e, t) => { if (f.clear(), "touchend" === (null == e ? void 0 : e.type) && h.current) return h.current(), h.current = null, void f.start(0, (() => { v(e, t); })); h.current = null, c((e => e.length > 0 ? e.slice(1) : e)), d.current = t; }), [ f ]); return e__namespace.useImperativeHandle(n, (() => ({ pulsate: b, start: y, stop: v })), [ b, y, v ]), K.jsx(zs, rn({ className: jn(_s.root, i.root, a), ref: m }, s, { children: K.jsx($s, { component: null, exit: !0, children: l }) })); })); function Vs(e) { return pr("MuiButtonBase", e); } const Hs = fr("MuiButtonBase", [ "root", "disabled", "focusVisible" ]), qs = [ "action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type" ], Ks = is("button", { name: "MuiButtonBase", slot: "Root", overridesResolver: (e, t) => t.root })({ display: "inline-flex", alignItems: "center", justifyContent: "center", position: "relative", boxSizing: "border-box", WebkitTapHighlightColor: "transparent", backgroundColor: "transparent", outline: 0, border: 0, margin: 0, borderRadius: 0, padding: 0, cursor: "pointer", userSelect: "none", verticalAlign: "middle", MozAppearance: "none", WebkitAppearance: "none", textDecoration: "none", color: "inherit", "&::-moz-focus-inner": { borderStyle: "none" }, [`&.${Hs.disabled}`]: { pointerEvents: "none", cursor: "default" }, "@media print": { colorAdjust: "exact" } }), Us = e__namespace.forwardRef((function(t, n) { const r = us({ props: t, name: "MuiButtonBase" }), {action: o, centerRipple: i = !1, children: a, className: s, component: l = "button", disabled: c = !1, disableRipple: u = !1, disableTouchRipple: d = !1, focusRipple: p = !1, LinkComponent: f = "a", onBlur: h, onClick: m, onContextMenu: g, onDragLeave: y, onFocus: b, onFocusVisible: v, onKeyDown: x, onKeyUp: S, onMouseDown: w, onMouseLeave: C, onMouseUp: k, onTouchEnd: j, onTouchMove: T, onTouchStart: R, tabIndex: E = 0, TouchRippleProps: $, touchRippleRef: _, type: O} = r, A = nn(r, qs), P = e__namespace.useRef(null), M = e__namespace.useRef(null), I = Hn(M, _), {isFocusVisibleRef: F, onFocus: B, onBlur: N, ref: L} = rr(), [z, D] = e__namespace.useState(!1); c && z && D(!1), e__namespace.useImperativeHandle(o, (() => ({ focusVisible: () => { D(!0), P.current.focus(); } })), []); const [W, V] = e__namespace.useState(!1); e__namespace.useEffect((() => { V(!0); }), []); const H = W && !u && !c; function q(e, t, n = d) { return Vn((r => { t && t(r); return !n && M.current && M.current[e](r), !0; })); } e__namespace.useEffect((() => { z && p && !u && W && M.current.pulsate(); }), [ u, p, z, W ]); const U = q("start", w), X = q("stop", g), G = q("stop", y), Y = q("stop", k), J = q("stop", (e => { z && e.preventDefault(), C && C(e); })), Z = q("start", R), Q = q("stop", j), ee = q("stop", T), te = q("stop", (e => { N(e), !1 === F.current && D(!1), h && h(e); }), !1), ne = Vn((e => { P.current || (P.current = e.currentTarget), B(e), !0 === F.current && (D(!0), v && v(e)), b && b(e); })), re = () => { const e = P.current; return l && "button" !== l && !("A" === e.tagName && e.href); }, oe = e__namespace.useRef(!1), ie = Vn((e => { p && !oe.current && z && M.current && " " === e.key && (oe.current = !0, M.current.stop(e, (() => { M.current.start(e); }))), e.target === e.currentTarget && re() && " " === e.key && e.preventDefault(), x && x(e), e.target === e.currentTarget && re() && "Enter" === e.key && !c && (e.preventDefault(), m && m(e)); })), ae = Vn((e => { p && " " === e.key && M.current && z && !e.defaultPrevented && (oe.current = !1, M.current.stop(e, (() => { M.current.pulsate(e); }))), S && S(e), m && e.target === e.currentTarget && re() && " " === e.key && !e.defaultPrevented && m(e); })); let se = l; "button" === se && (A.href || A.to) && (se = f); const le = {}; "button" === se ? (le.type = void 0 === O ? "button" : O, le.disabled = c) : (A.href || A.to || (le.role = "button"), c && (le["aria-disabled"] = c)); const ce = Hn(n, L, P), ue = rn({}, r, { centerRipple: i, component: l, disabled: c, disableRipple: u, disableTouchRipple: d, focusRipple: p, tabIndex: E, focusVisible: z }), de = (e => { const {disabled: t, focusVisible: n, focusVisibleClassName: r, classes: o} = e, i = lr({ root: [ "root", t && "disabled", n && "focusVisible" ] }, Vs, o); return n && r && (i.root += ` ${r}`), i; })(ue); return K.jsxs(Ks, rn({ as: se, className: jn(de.root, s), ownerState: ue, onBlur: te, onClick: m, onContextMenu: X, onFocus: ne, onKeyDown: ie, onKeyUp: ae, onMouseDown: U, onMouseLeave: J, onMouseUp: Y, onDragLeave: G, onTouchEnd: Q, onTouchMove: ee, onTouchStart: Z, ref: ce, tabIndex: c ? -1 : E, type: O }, le, A, { children: [ a, H ? K.jsx(Ws, rn({ ref: I, center: i }, $)) : null ] })); })); function Xs(e) { return pr("MuiTabScrollButton", e); } const Gs = fr("MuiTabScrollButton", [ "root", "vertical", "horizontal", "disabled" ]), Ys = [ "className", "slots", "slotProps", "direction", "orientation", "disabled" ], Js = is(Us, { name: "MuiTabScrollButton", slot: "Root", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ t.root, n.orientation && t[n.orientation] ]; } })((({ownerState: e}) => rn({ width: 40, flexShrink: 0, opacity: .8, [`&.${Gs.disabled}`]: { opacity: 0 } }, "vertical" === e.orientation && { width: "100%", height: 40, "& svg": { transform: `rotate(${e.isRtl ? -90 : 90}deg)` } }))), Zs = e__namespace.forwardRef((function(e, t) { var n, r; const o = us({ props: e, name: "MuiTabScrollButton" }), {className: i, slots: a = {}, slotProps: s = {}, direction: l} = o, c = nn(o, Ys), u = rn({ isRtl: xr() }, o), d = (e => { const {classes: t, orientation: n, disabled: r} = e; return lr({ root: [ "root", n, r && "disabled" ] }, Xs, t); })(u), p = null != (n = a.StartScrollButtonIcon) ? n : xs, f = null != (r = a.EndScrollButtonIcon) ? r : Ss, h = br({ elementType: p, externalSlotProps: s.startScrollButtonIcon, additionalProps: { fontSize: "small" }, ownerState: u }), m = br({ elementType: f, externalSlotProps: s.endScrollButtonIcon, additionalProps: { fontSize: "small" }, ownerState: u }); return K.jsx(Js, rn({ component: "div", className: jn(d.root, i), ref: t, role: null, ownerState: u, tabIndex: null }, c, { children: "left" === l ? K.jsx(p, rn({}, h)) : K.jsx(f, rn({}, m)) })); })); function Qs(e) { return pr("MuiTabs", e); } const el = fr("MuiTabs", [ "root", "vertical", "flexContainer", "flexContainerVertical", "centered", "scroller", "fixed", "scrollableX", "scrollableY", "hideScrollbar", "scrollButtons", "scrollButtonsHideMobile", "indicator" ]), tl = [ "aria-label", "aria-labelledby", "action", "centered", "children", "className", "component", "allowScrollButtonsMobile", "indicatorColor", "onChange", "orientation", "ScrollButtonComponent", "scrollButtons", "selectionFollowsFocus", "slots", "slotProps", "TabIndicatorProps", "TabScrollButtonProps", "textColor", "value", "variant", "visibleScrollbar" ], nl = (e, t) => e === t ? e.firstChild : t && t.nextElementSibling ? t.nextElementSibling : e.firstChild, rl = (e, t) => e === t ? e.lastChild : t && t.previousElementSibling ? t.previousElementSibling : e.lastChild, ol = (e, t, n) => { let r = !1, o = n(e, t); for (;o; ) { if (o === e.firstChild) { if (r) return; r = !0; } const t = o.disabled || "true" === o.getAttribute("aria-disabled"); if (o.hasAttribute("tabindex") && !t) return void o.focus(); o = n(e, o); } }, il = is("div", { name: "MuiTabs", slot: "Root", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ { [`& .${el.scrollButtons}`]: t.scrollButtons }, { [`& .${el.scrollButtons}`]: n.scrollButtonsHideMobile && t.scrollButtonsHideMobile }, t.root, n.vertical && t.vertical ]; } })((({ownerState: e, theme: t}) => rn({ overflow: "hidden", minHeight: 48, WebkitOverflowScrolling: "touch", display: "flex" }, e.vertical && { flexDirection: "column" }, e.scrollButtonsHideMobile && { [`& .${el.scrollButtons}`]: { [t.breakpoints.down("sm")]: { display: "none" } } }))), al = is("div", { name: "MuiTabs", slot: "Scroller", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ t.scroller, n.fixed && t.fixed, n.hideScrollbar && t.hideScrollbar, n.scrollableX && t.scrollableX, n.scrollableY && t.scrollableY ]; } })((({ownerState: e}) => rn({ position: "relative", display: "inline-block", flex: "1 1 auto", whiteSpace: "nowrap" }, e.fixed && { overflowX: "hidden", width: "100%" }, e.hideScrollbar && { scrollbarWidth: "none", "&::-webkit-scrollbar": { display: "none" } }, e.scrollableX && { overflowX: "auto", overflowY: "hidden" }, e.scrollableY && { overflowY: "auto", overflowX: "hidden" }))), sl = is("div", { name: "MuiTabs", slot: "FlexContainer", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ t.flexContainer, n.vertical && t.flexContainerVertical, n.centered && t.centered ]; } })((({ownerState: e}) => rn({ display: "flex" }, e.vertical && { flexDirection: "column" }, e.centered && { justifyContent: "center" }))), ll = is("span", { name: "MuiTabs", slot: "Indicator", overridesResolver: (e, t) => t.indicator })((({ownerState: e, theme: t}) => rn({ position: "absolute", height: 2, bottom: 0, width: "100%", transition: t.transitions.create() }, "primary" === e.indicatorColor && { backgroundColor: (t.vars || t).palette.primary.main }, "secondary" === e.indicatorColor && { backgroundColor: (t.vars || t).palette.secondary.main }, e.vertical && { height: "100%", width: 2, right: 0 }))), cl = is((function(t) { const {onChange: n} = t, r = nn(t, bs), o = e__namespace.useRef(), i = e__namespace.useRef(null), a = () => { o.current = i.current.offsetHeight - i.current.clientHeight; }; return Wn((() => { const e = Ln((() => { const e = o.current; a(), e !== o.current && n(o.current); })), t = Dn(i.current); return t.addEventListener("resize", e), () => { e.clear(), t.removeEventListener("resize", e); }; }), [ n ]), e__namespace.useEffect((() => { a(), n(o.current); }), [ n ]), K.jsx("div", rn({ style: vs, ref: i }, r)); }))({ overflowX: "auto", overflowY: "hidden", scrollbarWidth: "none", "&::-webkit-scrollbar": { display: "none" } }), ul = {}, dl = e__namespace.forwardRef((function(t, n) { const r = us({ props: t, name: "MuiTabs" }), o = function() { const e = cs(rs); return e[os] || e; }(), i = xr(), {"aria-label": a, "aria-labelledby": s, action: l, centered: c = !1, children: u, className: d, component: p = "div", allowScrollButtonsMobile: f = !1, indicatorColor: h = "primary", onChange: m, orientation: g = "horizontal", ScrollButtonComponent: y = Zs, scrollButtons: b = "auto", selectionFollowsFocus: v, slots: x = {}, slotProps: S = {}, TabIndicatorProps: w = {}, TabScrollButtonProps: C = {}, textColor: k = "primary", value: j, variant: T = "standard", visibleScrollbar: R = !1} = r, E = nn(r, tl), $ = "scrollable" === T, _ = "vertical" === g, O = _ ? "scrollTop" : "scrollLeft", A = _ ? "top" : "left", P = _ ? "bottom" : "right", M = _ ? "clientHeight" : "clientWidth", I = _ ? "height" : "width", F = rn({}, r, { component: p, allowScrollButtonsMobile: f, indicatorColor: h, orientation: g, vertical: _, scrollButtons: b, textColor: k, variant: T, visibleScrollbar: R, fixed: !$, hideScrollbar: $ && !R, scrollableX: $ && !_, scrollableY: $ && _, centered: c && !$, scrollButtonsHideMobile: !f }), B = (e => { const {vertical: t, fixed: n, hideScrollbar: r, scrollableX: o, scrollableY: i, centered: a, scrollButtonsHideMobile: s, classes: l} = e; return lr({ root: [ "root", t && "vertical" ], scroller: [ "scroller", n && "fixed", r && "hideScrollbar", o && "scrollableX", i && "scrollableY" ], flexContainer: [ "flexContainer", t && "flexContainerVertical", a && "centered" ], indicator: [ "indicator" ], scrollButtons: [ "scrollButtons", s && "scrollButtonsHideMobile" ], scrollableX: [ o && "scrollableX" ], hideScrollbar: [ r && "hideScrollbar" ] }, Qs, l); })(F), N = br({ elementType: x.StartScrollButtonIcon, externalSlotProps: S.startScrollButtonIcon, ownerState: F }), L = br({ elementType: x.EndScrollButtonIcon, externalSlotProps: S.endScrollButtonIcon, ownerState: F }), [z, D] = e__namespace.useState(!1), [W, V] = e__namespace.useState(ul), [H, q] = e__namespace.useState(!1), [U, X] = e__namespace.useState(!1), [G, Y] = e__namespace.useState(!1), [J, Z] = e__namespace.useState({ overflow: "hidden", scrollbarWidth: 0 }), Q = new Map, ee = e__namespace.useRef(null), te = e__namespace.useRef(null), ne = () => { const e = ee.current; let t, n; if (e) { const n = e.getBoundingClientRect(); t = { clientWidth: e.clientWidth, scrollLeft: e.scrollLeft, scrollTop: e.scrollTop, scrollLeftNormalized: ar(e, i ? "rtl" : "ltr"), scrollWidth: e.scrollWidth, top: n.top, bottom: n.bottom, left: n.left, right: n.right }; } if (e && !1 !== j) { const e = te.current.children; if (e.length > 0) { const t = e[Q.get(j)]; n = t ? t.getBoundingClientRect() : null; } } return { tabsMeta: t, tabMeta: n }; }, re = Vn((() => { const {tabsMeta: e, tabMeta: t} = ne(); let n, r = 0; if (_) n = "top", t && e && (r = t.top - e.top + e.scrollTop); else if (n = i ? "right" : "left", t && e) { const o = i ? e.scrollLeftNormalized + e.clientWidth - e.scrollWidth : e.scrollLeft; r = (i ? -1 : 1) * (t[n] - e[n] + o); } const o = { [n]: r, [I]: t ? t[I] : 0 }; if (isNaN(W[n]) || isNaN(W[I])) V(o); else { const e = Math.abs(W[n] - o[n]), t = Math.abs(W[I] - o[I]); (e >= 1 || t >= 1) && V(o); } })), oe = (e, {animation: t = !0} = {}) => { t ? function(e, t, n, r = {}, o = (() => {})) { const {ease: i = ps, duration: a = 300} = r; let s = null; const l = t[e]; const d = r => { null === s && (s = r); const u = Math.min(1, (r - s) / a); t[e] = i(u) * (n - l) + l, u >= 1 ? requestAnimationFrame((() => { o(null); })) : requestAnimationFrame(d); }; l === n ? o(new Error("Element already at target position")) : requestAnimationFrame(d); }(O, ee.current, e, { duration: o.transitions.duration.standard }) : ee.current[O] = e; }, ie = e => { let t = ee.current[O]; _ ? t += e : (t += e * (i ? -1 : 1), t *= i && "reverse" === ir() ? -1 : 1), oe(t); }, ae = () => { const e = ee.current[M]; let t = 0; const n = Array.from(te.current.children); for (let r = 0; r < n.length; r += 1) { const o = n[r]; if (t + o[M] > e) { 0 === r && (t = e); break; } t += o[M]; } return t; }, se = () => { ie(-1 * ae()); }, le = () => { ie(ae()); }, ce = e__namespace.useCallback((e => { Z({ overflow: null, scrollbarWidth: e }); }), []), ue = Vn((e => { const {tabsMeta: t, tabMeta: n} = ne(); if (n && t) if (n[A] < t[A]) { const r = t[O] + (n[A] - t[A]); oe(r, { animation: e }); } else if (n[P] > t[P]) { const r = t[O] + (n[P] - t[P]); oe(r, { animation: e }); } })), de = Vn((() => { $ && !1 !== b && Y(!G); })); e__namespace.useEffect((() => { const e = Ln((() => { ee.current && re(); })); let t; const n = n => { n.forEach((e => { e.removedNodes.forEach((e => { var n; null == (n = t) || n.unobserve(e); })), e.addedNodes.forEach((e => { var n; null == (n = t) || n.observe(e); })); })), e(), de(); }, r = Dn(ee.current); let o; return r.addEventListener("resize", e), "undefined" != typeof ResizeObserver && (t = new ResizeObserver(e), Array.from(te.current.children).forEach((e => { t.observe(e); }))), "undefined" != typeof MutationObserver && (o = new MutationObserver(n), o.observe(te.current, { childList: !0 })), () => { var n, i; e.clear(), r.removeEventListener("resize", e), null == (n = o) || n.disconnect(), null == (i = t) || i.disconnect(); }; }), [ re, de ]), e__namespace.useEffect((() => { const e = Array.from(te.current.children), t = e.length; if ("undefined" != typeof IntersectionObserver && t > 0 && $ && !1 !== b) { const n = e[0], r = e[t - 1], o = { root: ee.current, threshold: .99 }, i = new IntersectionObserver((e => { q(!e[0].isIntersecting); }), o); i.observe(n); const a = new IntersectionObserver((e => { X(!e[0].isIntersecting); }), o); return a.observe(r), () => { i.disconnect(), a.disconnect(); }; } }), [ $, b, G, null == u ? void 0 : u.length ]), e__namespace.useEffect((() => { D(!0); }), []), e__namespace.useEffect((() => { re(); })), e__namespace.useEffect((() => { ue(ul !== W); }), [ ue, W ]), e__namespace.useImperativeHandle(l, (() => ({ updateIndicator: re, updateScrollButtons: de })), [ re, de ]); const pe = K.jsx(ll, rn({}, w, { className: jn(B.indicator, w.className), ownerState: F, style: rn({}, W, w.style) })); let fe = 0; const he = e__namespace.Children.map(u, (t => { if (!e__namespace.isValidElement(t)) return null; const n = void 0 === t.props.value ? fe : t.props.value; Q.set(n, fe); const r = n === j; return fe += 1, e__namespace.cloneElement(t, rn({ fullWidth: "fullWidth" === T, indicator: r && !z && pe, selected: r, selectionFollowsFocus: v, onChange: m, textColor: k, value: n }, 1 !== fe || !1 !== j || t.props.tabIndex ? {} : { tabIndex: 0 })); })), me = (() => { const e = {}; e.scrollbarSizeListener = $ ? K.jsx(cl, { onChange: ce, className: jn(B.scrollableX, B.hideScrollbar) }) : null; const t = $ && ("auto" === b && (H || U) || !0 === b); return e.scrollButtonStart = t ? K.jsx(y, rn({ slots: { StartScrollButtonIcon: x.StartScrollButtonIcon }, slotProps: { startScrollButtonIcon: N }, orientation: g, direction: i ? "right" : "left", onClick: se, disabled: !H }, C, { className: jn(B.scrollButtons, C.className) })) : null, e.scrollButtonEnd = t ? K.jsx(y, rn({ slots: { EndScrollButtonIcon: x.EndScrollButtonIcon }, slotProps: { endScrollButtonIcon: L }, orientation: g, direction: i ? "left" : "right", onClick: le, disabled: !U }, C, { className: jn(B.scrollButtons, C.className) })) : null, e; })(); return K.jsxs(il, rn({ className: jn(B.root, d), ownerState: F, ref: n, as: p }, E, { children: [ me.scrollButtonStart, me.scrollbarSizeListener, K.jsxs(al, { className: B.scroller, ownerState: F, style: { overflow: J.overflow, [_ ? "margin" + (i ? "Left" : "Right") : "marginBottom"]: R ? void 0 : -J.scrollbarWidth }, ref: ee, children: [ K.jsx(sl, { "aria-label": a, "aria-labelledby": s, "aria-orientation": "vertical" === g ? "vertical" : null, className: B.flexContainer, ownerState: F, onKeyDown: e => { const t = te.current, n = zn(t).activeElement; if ("tab" !== n.getAttribute("role")) return; let r = "horizontal" === g ? "ArrowLeft" : "ArrowUp", o = "horizontal" === g ? "ArrowRight" : "ArrowDown"; switch ("horizontal" === g && i && (r = "ArrowRight", o = "ArrowLeft"), e.key) { case r: e.preventDefault(), ol(t, n, rl); break; case o: e.preventDefault(), ol(t, n, nl); break; case "Home": e.preventDefault(), ol(t, null, nl); break; case "End": e.preventDefault(), ol(t, null, rl); } }, ref: te, role: "tablist", children: he }), z && pe ] }), me.scrollButtonEnd ] })); })); function pl(e) { return pr("MuiTab", e); } const fl = fr("MuiTab", [ "root", "labelIcon", "textColorInherit", "textColorPrimary", "textColorSecondary", "selected", "disabled", "fullWidth", "wrapped", "iconWrapper" ]), hl = [ "className", "disabled", "disableFocusRipple", "fullWidth", "icon", "iconPosition", "indicator", "label", "onChange", "onClick", "onFocus", "selected", "selectionFollowsFocus", "textColor", "value", "wrapped" ], ml = is(Us, { name: "MuiTab", slot: "Root", overridesResolver: (e, t) => { const {ownerState: n} = e; return [ t.root, n.label && n.icon && t.labelIcon, t[`textColor${Bn(n.textColor)}`], n.fullWidth && t.fullWidth, n.wrapped && t.wrapped ]; } })((({theme: e, ownerState: t}) => rn({}, e.typography.button, { maxWidth: 360, minWidth: 90, position: "relative", minHeight: 48, flexShrink: 0, padding: "12px 16px", overflow: "hidden", whiteSpace: "normal", textAlign: "center" }, t.label && { flexDirection: "top" === t.iconPosition || "bottom" === t.iconPosition ? "column" : "row" }, { lineHeight: 1.25 }, t.icon && t.label && { minHeight: 72, paddingTop: 9, paddingBottom: 9, [`& > .${fl.iconWrapper}`]: rn({}, "top" === t.iconPosition && { marginBottom: 6 }, "bottom" === t.iconPosition && { marginTop: 6 }, "start" === t.iconPosition && { marginRight: e.spacing(1) }, "end" === t.iconPosition && { marginLeft: e.spacing(1) }) }, "inherit" === t.textColor && { color: "inherit", opacity: .6, [`&.${fl.selected}`]: { opacity: 1 }, [`&.${fl.disabled}`]: { opacity: (e.vars || e).palette.action.disabledOpacity } }, "primary" === t.textColor && { color: (e.vars || e).palette.text.secondary, [`&.${fl.selected}`]: { color: (e.vars || e).palette.primary.main }, [`&.${fl.disabled}`]: { color: (e.vars || e).palette.text.disabled } }, "secondary" === t.textColor && { color: (e.vars || e).palette.text.secondary, [`&.${fl.selected}`]: { color: (e.vars || e).palette.secondary.main }, [`&.${fl.disabled}`]: { color: (e.vars || e).palette.text.disabled } }, t.fullWidth && { flexShrink: 1, flexGrow: 1, flexBasis: 0, maxWidth: "none" }, t.wrapped && { fontSize: e.typography.pxToRem(12) }))), gl = e__namespace.forwardRef((function(t, n) { const r = us({ props: t, name: "MuiTab" }), {className: o, disabled: i = !1, disableFocusRipple: a = !1, fullWidth: s, icon: l, iconPosition: c = "top", indicator: u, label: d, onChange: p, onClick: f, onFocus: h, selected: m, selectionFollowsFocus: g, textColor: y = "inherit", value: b, wrapped: v = !1} = r, x = nn(r, hl), S = rn({}, r, { disabled: i, disableFocusRipple: a, selected: m, icon: !!l, iconPosition: c, label: !!d, fullWidth: s, textColor: y, wrapped: v }), w = (e => { const {classes: t, textColor: n, fullWidth: r, wrapped: o, icon: i, label: a, selected: s, disabled: l} = e; return lr({ root: [ "root", i && a && "labelIcon", `textColor${Bn(n)}`, r && "fullWidth", o && "wrapped", s && "selected", l && "disabled" ], iconWrapper: [ "iconWrapper" ] }, pl, t); })(S), C = l && d && e__namespace.isValidElement(l) ? e__namespace.cloneElement(l, { className: jn(w.iconWrapper, l.props.className) }) : l; return K.jsxs(ml, rn({ focusRipple: !a, className: jn(w.root, o), ref: n, role: "tab", "aria-selected": m, disabled: i, onClick: e => { !m && p && p(e, b), f && f(e); }, onFocus: e => { g && !m && p && p(e, b), h && h(e); }, ownerState: S, tabIndex: m ? 0 : -1 }, x, { children: [ "top" === c || "start" === c ? K.jsxs(e__namespace.Fragment, { children: [ C, d ] }) : K.jsxs(e__namespace.Fragment, { children: [ d, C ] }), u ] })); })), yl = fr("MuiBox", [ "root" ]), bl = ns(), vl = function(t = {}) { const {themeId: n, defaultTheme: r, defaultClassName: o = "MuiBox-root", generateClassName: i} = t, a = Oo("div", { shouldForwardProp: e => "theme" !== e && "sx" !== e && "as" !== e })(Fi); return e__namespace.forwardRef((function(e, t) { const s = cs(r), l = Vi(e), {className: c, component: u = "div"} = l, d = nn(l, ds); return K.jsx(a, rn({ as: u, ref: t, className: jn(c, i ? i(o) : o), theme: n && s[n] || s }, d)); })); }({ themeId: os, defaultTheme: bl, defaultClassName: yl.root, generateClassName: ur.generate }); function xl() { const {logItems: e$1} = Xe(), t = e.useRef(null); return e.useEffect((() => { t.current && t.current.scrollIntoView({ behavior: "smooth" }); }), [ e$1 ]), K.jsxs(material.List, { dense: !0, sx: {}, children: [ e$1.map(((e, t) => K.jsx(material.ListItem, { children: K.jsx(material.ListItemText, { primary: e, sx: { typography: "overline", lineHeight: "normal", px: 0, my: 0 }, disableTypography: !0 }) }, t))), K.jsx("div", { ref: t }) ] }); } const Sl = ({value: e$1, min: t = 0, max: n = 1 / 0, step: o = 1, decimalScale: i = 0, unit: a, singularUnit: s, helperText: l, textAlign: d = "center", hideActionButtons: p = !1, onChange: f, ...h}) => { var w, C; const [k, j] = e.useState(null == e$1 ? void 0 : e$1.toString()), T = Math.max(...[ t, n, o ].map((e => (e % 1 || 0).toString().length - 2)), 0), R = i > 0 || T > 0; i = i > 0 ? i : T; const E = Cl(t, n, R), $ = e => wl(e, t, n, i), _ = $(k).toString() === k && void 0 !== e$1 ? $(e$1).toString() : k, O = e => { j(e); const t = $(e); t.toString() === e && (null == f || f(t)); }, A = e => () => O($($(_) + e).toString()); h ?? (h = {}), h.inputProps ?? (h.inputProps = {}), (w = h.inputProps).style ?? (w.style = {}), (C = h.inputProps.style).textAlign ?? (C.textAlign = d), h.placeholder ?? (h.placeholder = Math.min(n, Math.max(t, 0)).toString()); const P = kl(h); return p = p || h.readOnly || !1, s ?? (s = a), a ?? (a = s), K.jsx(material.Box, { children: K.jsxs(material.FormControl, { ...P, variant: "outlined", children: [ K.jsx(material.InputLabel, { shrink: !0, htmlFor: "number-input", children: h.label }), K.jsx(material.OutlinedInput, { notched: !0, error: h.error || Number(k) < t || Number(k) > n, ...h, value: _, id: "number-input", onChange: e => O(e.target.value), onBlur: e => O($(e.target.value).toString()), onKeyDown: e => { const r = (e => { if (e.ctrlKey || e.shiftKey || e.altKey) return; if ("ArrowUp" === e.key) return void A(o)(); if ("ArrowDown" === e.key) return void A(-o)(); const t = e.key; if (t.length > 1) return; const n = t.charCodeAt(0); return n < 32 || n > 126 && n < 160 || n > 255 ? void 0 : t; })(e); if (!r) return; const i = e.target; if (null == i.selectionStart || null == i.selectionEnd) return; const a = i.value.substring(0, i.selectionStart) + r + i.value.substring(i.selectionEnd); a.match(E) ? (Number(a) < t || Number(a) > n) && e.preventDefault() : e.preventDefault(); }, onPaste: e => { var r; const o = null == (r = e.clipboardData) ? void 0 : r.getData("Text"); (null == o ? void 0 : o.trim().match(E)) ? (Number(!(null == o ? void 0 : o.trim())) < t || Number(!(null == o ? void 0 : o.trim())) > n) && e.preventDefault() : e.preventDefault(); }, startAdornment: p ? void 0 : K.jsx(material.InputAdornment, { position: "start", children: K.jsx(material.IconButton, { "aria-label": "decrease value", onClick: A(-o), edge: "start", disabled: h.disabled || $(_) <= t, children: K.jsx(material.Icon, { children: "do_not_disturb_on" }) }) }), endAdornment: (a || !p) && K.jsxs(material.InputAdornment, { position: "end", children: [ a && K.jsx(material.Typography, { className: "cursor-default select-none", children: 1 === $(_) ? s : a }), !p && K.jsx(material.IconButton, { "aria-label": "increase value", onClick: A(o), edge: "end", disabled: h.disabled || $(_) >= n, color: void 0, sx: { "&:hover": { color: e => h.color || e.palette.primary.main }, "&:focus": { color: e => h.color || e.palette.primary.main }, transition: e => e.transitions.create("color") }, children: K.jsx(material.Icon, { children: "add_circle" }) }) ] }) }), l && K.jsx(material.FormHelperText, { children: l }) ] }) }); }, wl = (e, t = -1 / 0, n = 1 / 0, r = 0) => { let o = "number" == typeof e ? e : Number(e); return o = Math.min(n, Math.max(t, isNaN(o) ? 0 : o)), Number(o.toFixed(r)); }, Cl = (e, t, n) => { let r = "^"; return r += t < 0 ? "-[0-9]*" : e > 0 ? "[0-9]+" : "-?[0-9]*", n && (r += "(\\.[0-9]*)?"), r += "$", new RegExp(r); }, kl = e => ({ color: e.color, disabled: e.disabled, error: e.error, fullWidth: e.fullWidth, required: e.required, variant: e.variant }); function jl() { const {standbyTime: e, setStandbyTime: t} = Ge(), {replyCountTimes: n, setReplyCountTimes: r} = Ge(), {newTopicCountTimes: o, setNewTopicCountTimes: i} = Ge(); return Ge((e => e._hasHydrated)) ? K.jsxs(material.List, { sx: {}, children: [ K.jsx(material.ListItem, { sx: { pt: 3 }, children: K.jsx(Sl, { label: "评论数量", min: 1, max: 10, value: n, onChange: r, size: "small", style: { width: 130 } }) }), K.jsx(material.ListItem, { sx: { pt: 3 }, children: K.jsx(Sl, { label: "发起讨论数量", min: 1, max: 10, value: o, onChange: i, size: "small", style: { width: 130 } }) }), K.jsx(material.ListItem, { sx: { pt: 3 }, children: K.jsx(Sl, { label: "间隔时间(ms)", min: 500, max: 1e4, value: e, step: 100, onChange: t, size: "small", style: { width: 200 } }) }), K.jsx(material.ListItem, { sx: { pt: 3 } }) ] }) : K.jsx("p", { children: "Loading..." }); } function Tl() { return K.jsxs(K.Fragment, { children: [ K.jsx(material.Typography, { variant: "body1", gutterBottom: !0, children: "本脚本用于自动化学习通讨论区的评论操作。" }), K.jsxs(material.Typography, { variant: "body2", gutterBottom: !0, children: [ "作者:", K.jsx("a", { href: "http://github.com/lcandy2", target: "_blank", children: "@lcandy2" }) ] }) ] }); } function Rl(e) { const {children: t, value: n, index: r, ...o} = e; return K.jsx("div", { role: "tabpanel", hidden: n !== r, id: `cx-auto-tabpanel-${r}`, "aria-labelledby": `cx-auto-tab-${r}`, ...o, children: n === r && K.jsx(vl, { sx: { p: 0, maxWidth: 280, maxHeight: 300, minWidth: 260, minHeight: 200, overflow: "auto" }, children: t }) }); } function El(e) { return { id: `cx-auto-tab-${e}`, "aria-controls": `cx-auto-tabpanel-${e}` }; } function $l() { const [e$1, t] = e.useState(0), {isInActionFrame: n} = Ye(); return K.jsxs(vl, { sx: { width: "100%" }, children: [ !n && K.jsx(vl, { sx: { borderBottom: 1, borderColor: "divider" }, children: K.jsxs(dl, { value: e$1, onChange: (e, n) => { t(n); }, "aria-label": "basic tabs example", children: [ K.jsx(gl, { disabled: n, label: "状态", ...El(0) }), K.jsx(gl, { disabled: n, label: "设定", ...El(1) }), K.jsx(gl, { disabled: n, label: "关于", ...El(2) }) ] }) }), K.jsx(Rl, { value: e$1, index: 0, children: K.jsx(xl, {}) }), !n && K.jsxs(K.Fragment, { children: [ K.jsx(Rl, { value: e$1, index: 1, children: K.jsx(jl, {}) }), K.jsx(Rl, { value: e$1, index: 2, children: K.jsx(Tl, {}) }) ] }) ] }); } function _l({title: e$1, canBeClosed: n = !0, handleClose: o, actions: i, draggableProps: a, dialogProps: s, maxWidth: l, children: u}) { const [d, p] = e.useState(!0), f = e.useRef(null); return d && K.jsx(P, { handle: "#draggable-dialog-title", cancel: '[class*="MuiDialogContent-root"]', nodeRef: f, ...a, children: K.jsx("div", { className: "floating-overlay", ref: f, children: K.jsxs(material.Dialog, { open: !0, hideBackdrop: !0, disableEnforceFocus: !0, disableAutoFocus: !0, disableScrollLock: !0, disablePortal: !0, maxWidth: l || "xs", "aria-labelledby": "draggable-dialog-title", container: () => document.querySelector(".floating-overlay"), ...s, children: [ K.jsx(material.DialogTitle, { style: { cursor: "move" }, id: "draggable-dialog-title", children: e$1 }), n && K.jsx(material.IconButton, { "aria-label": "close", onClick: () => { p(!1), o && o(); }, sx: { position: "absolute", right: 8, top: 8, color: e => e.palette.grey[500] }, children: K.jsx(material.Icon, { children: "close" }) }), K.jsx(material.DialogContent, { dividers: !0, sx: { p: 0 }, children: K.jsx(material.DialogContentText, { component: "div", children: u }) }), i && K.jsx(material.DialogActions, { children: i }) ] }) }) }); } function Ol() { const [e$1, n] = e.useState(!0); e.useRef(null); const {isInActionFrame: o, actionFrameStatus: i, setCurrentStatus: a, setCurrentPage: s} = Ye(), l = i.src; return e$1 && K.jsxs(K.Fragment, { children: [ K.jsx(_l, { title: "学习通自动化", actions: K.jsx(tn, {}), canBeClosed: !o, handleClose: () => { n(!1), a(null), s(null); }, children: K.jsx($l, {}) }), l && K.jsxs(_l, { title: "--执行讨论回复中--", canBeClosed: !1, draggableProps: { positionOffset: { x: "300px", y: "30px" } }, maxWidth: "sm", children: [ K.jsx("iframe", { id: "cxauto_action", src: l, width: "600", height: "460" }), K.jsx("div", { id: "cxauto_action" }) ] }) ] }); } var Al = {}, Pl = M; Al.createRoot = Pl.createRoot, Al.hydrateRoot = Pl.hydrateRoot, console.log("Chaoxing auto start!!!"), (ee() || te()) && (console.log("Topic Match"), Al.createRoot((() => { const e = document.createElement("div"); return document.body.append(e), e; })()).render(K.jsx(e.StrictMode, { children: K.jsx(Ol, {}) }))); })(React, MaterialUI, emotionStyled, emotionReact, ReactDraggable, ReactDOM);