(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([ [7177], { 13672: (e, t, n) => { "use strict"; n.d(t, { NavigationProvider: () => u, useNavigationController: () => m, useRouterContext: () => v }); var r = n(25771), o = n(87163), i = n(85151), l = n(35104); let s = (0, o.createContext)(null), a = (0, o.createContext)(null); async function d(e, t) { for (let n = e.length - 1; n >= 0; n--) { let r; try { r = await e[n](t) } catch (e) { return !1 } if (!1 === r) return !1 } return !0 } function c(e) { return e.some(e => { try { return e() } catch (e) { return !1 } }) } function u(e) { let { children: t } = e, { t: n } = (0, i.Bd)(), u = (0, l.useRouter)(), m = (0, o.useRef)([]), v = (0, o.useRef)([]), h = (0, o.useRef)(!1), f = (0, o.useCallback)(e => (m.current = [...m.current, e], () => { m.current = m.current.filter(t => t !== e) }), []), y = (0, o.useCallback)(e => (v.current = [...v.current, e], () => { v.current = v.current.filter(t => t !== e) }), []), w = (0, o.useCallback)(() => { h.current = !0, window.location.reload() }, []), b = (0, o.useMemo)(() => ({ registerBeforeNavigate: f, registerSyncNavigationBlocker: y, forcePageReload: w }), [f, y, w]), g = (0, o.useMemo)(() => { let e = async e => d(m.current, e); return { ...u, push(t, n) { (async () => { await e({ kind: "push", href: t }) && u.push(t, n) })() }, replace(t, n) { (async () => { await e({ kind: "replace", href: t }) && u.replace(t, n) })() }, back() { (async () => { await e({ kind: "back" }) && u.back() })() } } }, [u]); return (0, o.useEffect)(() => { let e = e => { !h.current && c(v.current) && (e.preventDefault(), e.returnValue = "") }, t = () => { c(v.current) && (window.confirm(n("pages.generate.form.unsavedLeaveContent")) || history.go(1)) }; return window.addEventListener("beforeunload", e), window.addEventListener("popstate", t), () => { window.removeEventListener("beforeunload", e), window.removeEventListener("popstate", t) } }, [n]), (0, r.jsx)(a.Provider, { value: b, children: (0, r.jsx)(s.Provider, { value: g, children: t }) }) } function m() { let e = (0, o.useContext)(a); if (!e) throw Error("useNavigationController must be used within NavigationProvider"); return e } function v() { let e = (0, o.useContext)(s); if (!e) throw Error("useAppRouter must be used within NavigationProvider"); return e } }, 22812: (e, t, n) => { "use strict"; n.d(t, { l: () => p, GlobalDialog: () => g }); var r = n(25771), o = n(87163), i = n(11866), l = n(85151), s = n(66170); let a = "data-dialog-scroll-surface", d = "[".concat(a, "]"), c = 0, u = null; function m(e) { let t = e.target; t instanceof Element && t.closest(d) || e.preventDefault() } var v = n(43289), h = n(51529); let f = "data-dialog-portal", y = e => { let { open: t, onOpenChange: n, title: d, description: v, content: y, children: w, confirmText: b, cancelText: g, showCancel: p = !0, showConfirm: E = !0, confirmButton: x, cancelButton: C, footer: P, onConfirm: k, onCancel: _, onClose: I, closeOnConfirm: A = !0, closeOnCancel: S = !0, closeOnClickOutside: j = !0, closeOnEscape: L = !0, preventClose: N = !1, className: R, contentClassName: T, contentStyle: O, overlayClassName: W, maxWidth: D = "lg", width: B, zIndex: H } = e, { t: M } = (0, l.Bd)(), U = null != b ? b : M("global.operate.confirm"), V = null != g ? g : M("global.operate.cancel"), [q, z] = o.useState(!1), [F, G] = o.useState(!1), Q = o.useRef(null); o.useEffect(() => { G(!0) }, []); let X = o.useCallback(() => { N || (n(!1), null == I || I()) }, [N, n, I]), J = o.useCallback(async () => { if (!q) try { z(!0), await (null == k ? void 0 : k()), A && X() } catch (e) {} finally { z(!1) } }, [q, k, A, X]), Z = o.useCallback(async () => { if (!q) try { z(!0), await (null == _ ? void 0 : _()), S && X() } catch (e) {} finally { z(!1) } }, [q, _, S, X]); o.useEffect(() => { if (!t || !L || N) return; let e = e => { "Escape" === e.key && (e.preventDefault(), X()) }; return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e) }, [t, L, N, X]), o.useEffect(() => { if (!t) return; "undefined" != typeof document && (0 === c && (u = { htmlOverflow: document.documentElement.style.overflow, htmlOverscroll: document.documentElement.style.overscrollBehavior, bodyOverflow: document.body.style.overflow, bodyTouchAction: document.body.style.touchAction, bodyOverscroll: document.body.style.overscrollBehavior }, document.documentElement.style.overflow = "hidden", document.documentElement.style.overscrollBehavior = "none", document.body.style.overflow = "hidden", document.body.style.touchAction = "none", document.body.style.overscrollBehavior = "none", document.addEventListener("touchmove", m, { passive: !1, capture: !0 })), c++); let e = Q.current, n = []; return e && Array.from(document.body.children).forEach(t => { !(t === e || t.hasAttribute(f)) && (t.hasAttribute("inert") || (t.setAttribute("inert", ""), n.push(t))) }), () => { "undefined" != typeof document && (0 == --c && function() { if (document.removeEventListener("touchmove", m, { capture: !0 }), u) { let e = u; u = null, document.documentElement.style.overflow = e.htmlOverflow, document.documentElement.style.overscrollBehavior = e.htmlOverscroll, document.body.style.overflow = e.bodyOverflow, document.body.style.touchAction = e.bodyTouchAction, document.body.style.overscrollBehavior = e.bodyOverscroll } else document.documentElement.style.removeProperty("overflow"), document.documentElement.style.removeProperty("overscroll-behavior"), document.body.style.removeProperty("overflow"), document.body.style.removeProperty("touch-action"), document.body.style.removeProperty("overscroll-behavior") }(), c < 0 && (c = 0)), n.forEach(e => e.removeAttribute("inert")) } }, [t]); let $ = o.useMemo(() => { if ("string" == typeof D) return D.includes("max-w-") ? D : "max-w-".concat(D) }, [D]), K = o.useMemo(() => { if (B) return { width: "number" == typeof B ? "".concat(B, "px") : B } }, [B]), Y = "number" == typeof H ? H : 1050, ee = { zIndex: Y + 1, ...K, ...O }, et = y || w; return t && F ? (0, i.createPortal)((0, r.jsxs)("div", { ref: Q, [f]: "", className: "fixed inset-0", style: { zIndex: Y }, children: [(0, r.jsx)("div", { className: (0, h.cn)("fixed inset-0 bg-black/80", W), style: { zIndex: Y }, onClick: () => { !N && j && X() } }), (0, r.jsxs)("div", { [a]: "", className: (0, h.cn)("bg-background fixed top-1/2 left-1/2 grid max-h-[min(100dvh-2rem,100vh-2rem)] w-full translate-x-[-50%] translate-y-[-50%] gap-4 overflow-y-auto overscroll-contain border p-6 shadow-lg sm:rounded-lg", $, T), style: ee, onClick: e => e.stopPropagation(), children: [(d || v) && (0, r.jsxs)("div", { className: "flex flex-col space-y-1.5 text-center sm:text-left", children: [d && (0, r.jsx)("div", { className: "text-lg font-semibold", children: d }), v && (0, r.jsx)("div", { className: "text-muted-foreground text-sm", children: v })] }), et && (0, r.jsx)("div", { className: (0, h.cn)("py-4", R), children: et }), (E || p || x || C || P) && (0, r.jsx)("div", { className: "flex flex-row justify-end gap-2", children: P || (0, r.jsxs)(r.Fragment, { children: [p && (0, r.jsx)(r.Fragment, { children: C || (0, r.jsx)(s.$, { variant: "outline", onClick: Z, disabled: q, className: "transition-all duration-200 hover:scale-105 hover:shadow-lg active:scale-[1.02] active:shadow-lg disabled:hover:scale-100 disabled:hover:shadow-none disabled:active:scale-100 disabled:active:shadow-none", children: V }) }), E && (0, r.jsx)(r.Fragment, { children: x || (0, r.jsx)(s.$, { onClick: J, disabled: q, className: "transition-all duration-200 hover:scale-105 hover:shadow-lg active:scale-[1.02] active:shadow-lg disabled:hover:scale-100 disabled:hover:shadow-none disabled:active:scale-100 disabled:active:shadow-none", children: q ? M("global.common.loading") : U }) })] }) })] })] }), document.body) : null }; class w { generateId() { return "dialog-".concat(Date.now(), "-").concat(++this.dialogIdCounter) } notify() { this.listeners.forEach(e => e(this.dialogs)) } subscribe(e) { return this.listeners.add(e), e(this.dialogs), () => { this.listeners.delete(e) } } update(e, t) { let n = this.dialogs.get(e); n && (Object.assign(n, t), this.notify()) } open() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = this.generateId(), n = { ...e, id: t, open: !0, isConfirm: !1 }; return this.dialogs.set(t, n), this.notify(), () => { this.close(t) } } confirm() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return new Promise(t => { let n = this.generateId(), r = !1, o = e => { r || (r = !0, t(e)) }, i = { ...e, id: n, open: !0, isConfirm: !0, title: e.title || v.A.t("global.operate.confirm"), content: e.message || e.content, showCancel: !1 !== e.showCancel, showConfirm: !1 !== e.showConfirm, confirmText: e.confirmText || v.A.t("global.operate.confirm"), cancelText: e.cancelText || v.A.t("global.operate.cancel"), resolve: o, onConfirm: async () => { var t; await (null == (t = e.onConfirm) ? void 0 : t.call(e)), o(!0) }, onCancel: async () => { var t; await (null == (t = e.onCancel) ? void 0 : t.call(e)), o(!1) }, closeOnConfirm: !0, closeOnCancel: !0 }; this.dialogs.set(n, i), this.notify() }) } close(e) { if (e) { let t = this.dialogs.get(e); t && (t.open = !1, this.notify(), setTimeout(() => { this.dialogs.delete(e), this.notify() }, 200)) } else { let e = Array.from(this.dialogs.values()).filter(e => e.open), t = e[e.length - 1]; t && this.close(t.id) } } closeAll() { this.dialogs.forEach(e => { e.open = !1 }), this.notify(), setTimeout(() => { this.dialogs.clear(), this.notify() }, 200) } constructor() { this.dialogs = new Map, this.dialogIdCounter = 0, this.listeners = new Set } } let b = new w, g = () => { let [e, t] = o.useState(new Map); return o.useEffect(() => b.subscribe(e => { t(new Map(e)) }), []), (0, r.jsx)(r.Fragment, { children: Array.from(e.values()).map(e => (0, r.jsx)(y, { ...e, open: e.open, onOpenChange: t => { t ? b.update(e.id, { open: !0 }) : b.close(e.id) }, isConfirm: e.isConfirm, onConfirm: e.onConfirm, onCancel: e.onCancel, onClose: () => { var t; null == (t = e.onClose) || t.call(e), b.close(e.id) } }, e.id)) }) }, p = e => { let { open: t = !1, onOpenChange: n, ...o } = e; return (0, r.jsx)(y, { ...o, open: t, onOpenChange: n || (() => {}), isConfirm: !1 }) }; p.open = e => b.open(e || {}), p.close = e => { b.close(e) }, p.confirm = e => "string" == typeof e ? b.confirm({ message: e }) : b.confirm(e), p.closeAll = () => { b.closeAll() } }, 35783: (e, t, n) => { "use strict"; n.d(t, { I18nProvider: () => c }); var r = n(25771), o = n(87163), i = n(85151), l = n(43289), s = n(44412), a = n(45413), d = n(21912); function c(e) { let { children: t } = e; return (0, o.useEffect)(() => { let e = !0, t = (0, d.dn)(a.Q); return (async () => { try { if ("cn" !== t && "en" !== t) { let n = await (0, s.W)(t); if (!e) return; l.A.addResourceBundle(t, "translation", n) } if (!e) return; await l.A.changeLanguage(t), e && (document.documentElement.lang = "cn" === t ? "zh-CN" : t) } catch (e) {} })(), () => { e = !1 } }, []), (0, r.jsx)(i.xC, { i18n: l.A, children: t }) } }, 40785: (e, t, n) => { "use strict"; n.d(t, { Report: () => c }); var r = n(87163), o = n(38557), i = n(34587), l = n(25781), s = n(63193); let a = !1, d = e => { let { userInfo: t } = l.kH.getState(), n = (0, o.P5)(), r = n ? (0, o.Iz)() : null; if (s.$W({ ...e, access_mode: n ? "embed" : "realtime_web", ...r ? { business_user_id: r } : {}, ...!t.loading ? { is_realtime_authorized: String(!l.kH.getState().userInfo.needsInvitation).toUpperCase() } : {} }), !t.loading) { if (t.accountId) return void s.iD({ ...e, account_id: t.accountId }); s.ri(e) } }, c = () => ((0, r.useEffect)(() => { let e = (0, i.Jv)(), t = !1, n = null, r = null, o = () => !t && !!window.sensorsDataAnalytic201505 && (a ? d(e) : (s.Ts(e), d(e), s.ni(e), a = !0), !0), c = l.kH.subscribe((t, n) => { (t.userInfo.loading !== n.userInfo.loading || t.userInfo.accountId !== n.userInfo.accountId || t.userInfo.needsInvitation !== n.userInfo.needsInvitation) && a && d(e) }); return o() || (n = window.setInterval(() => { o() && null !== n && (window.clearInterval(n), n = null) }, 100), r = window.setTimeout(() => { null !== n && (window.clearInterval(n), n = null) }, 5e3)), () => { t = !0, c(), null !== n && window.clearInterval(n), null !== r && window.clearTimeout(r) } }, []), null) }, 42474: (e, t, n) => { "use strict"; n.d(t, { WebVitals: () => i }); var r = n(87168), o = n(39502); let i = () => ((0, r.useReportWebVitals)(e => { (0, o.u4)({ key: o.yW.WEB_VITALS, params: { [o.pX.WEB_VITALS_NAME]: e.name, [o.pX.WEB_VITALS_VALUE]: e.value, [o.pX.PAGE_PATH]: window.location.pathname } }) }), null) }, 43120: (e, t, n) => { "use strict"; n.d(t, { RegionGate: () => m }); var r = n(25771), o = n(87163), i = n(35104), l = n(71146), s = n(34587); let a = "request-headers-ready"; function d(e) { var t; let n = () => e(); return window.addEventListener(a, n), (null == (t = window.__REQUEST_HEADERS__) ? void 0 : t.ready) && queueMicrotask(n), () => window.removeEventListener(a, n) } function c() { var e; return (null == (e = window.__REQUEST_HEADERS__) ? void 0 : e.ready) === !0 } function u() { return !1 } function m(e) { let { children: t } = e, n = (0, i.usePathname)(), a = (0, o.useSyncExternalStore)(d, c, u), m = (0, s.TC)() || "/not-available" === n || (null == n ? void 0 : n.startsWith("/not-available/")); return ((0, o.useEffect)(() => { !m && a && "CN" === window.__REQUEST_HEADERS__.IP && (window.location.href = (0, l.iw)()) }, [m, a]), m || a && "CN" !== window.__REQUEST_HEADERS__.IP) ? (0, r.jsx)(r.Fragment, { children: t }) : null } }, 44412: (e, t, n) => { "use strict"; n.d(t, { W: () => o }); let r = { hi: () => n.e(6403).then(n.t.bind(n, 16403, 19)), pt: () => n.e(1856).then(n.t.bind(n, 71856, 19)), id: () => n.e(717).then(n.t.bind(n, 20717, 19)), vi: () => n.e(7613).then(n.t.bind(n, 97613, 19)), ru: () => n.e(7501).then(n.t.bind(n, 67501, 19)), ja: () => n.e(9921).then(n.t.bind(n, 99921, 19)), de: () => n.e(5627).then(n.t.bind(n, 85627, 19)), tr: () => n.e(6766).then(n.t.bind(n, 66766, 19)), es: () => n.e(1e3).then(n.t.bind(n, 81e3, 19)), fr: () => n.e(8464).then(n.t.bind(n, 28464, 19)), th: () => n.e(1552).then(n.t.bind(n, 11552, 19)), ko: () => n.e(5730).then(n.t.bind(n, 55730, 19)) }, o = async e => (await r[e]()).default }, 57479: (e, t, n) => { "use strict"; n.d(t, { RegisterServiceWorker: () => l }); var r = n(87163), o = n(3724); let i = new Set(["slow-2g", "2g", "3g"]); function l() { return (0, r.useEffect)(() => { let e; if ("undefined" != typeof navigator && "serviceWorker" in navigator) return (async () => { try { await navigator.serviceWorker.register("/sw-v1.js", { scope: "/", updateViaCache: "none" }); let t = await navigator.serviceWorker.ready, n = () => { var e; null == (e = t.active) || e.postMessage({ type: "SW_TICK", swPrefetch: (() => { var e; let t = !1; try { t = null !== localStorage.getItem("sw-prefetch") } catch (e) {} if ("production" !== o.env.PRJ_TAG && !t) return !1; let n = navigator.connection; if (null == n ? void 0 : n.saveData) return !1; let r = null == n || null == (e = n.effectiveType) ? void 0 : e.toLowerCase(); return !r || !i.has(r) })() }) }; n(), e = setInterval(n, 6e4) } catch (e) {} })(), () => { void 0 !== e && clearInterval(e) } }, []), null } }, 60666: (e, t, n) => { Promise.resolve().then(n.bind(n, 70311)), Promise.resolve().then(n.t.bind(n, 7294, 23)), Promise.resolve().then(n.bind(n, 33033)), Promise.resolve().then(n.bind(n, 89972)), Promise.resolve().then(n.bind(n, 39270)), Promise.resolve().then(n.bind(n, 68890)), Promise.resolve().then(n.bind(n, 67542)), Promise.resolve().then(n.bind(n, 57479)), Promise.resolve().then(n.bind(n, 40785)), Promise.resolve().then(n.bind(n, 81025)), Promise.resolve().then(n.bind(n, 42474)), Promise.resolve().then(n.bind(n, 85608)), Promise.resolve().then(n.bind(n, 93452)), Promise.resolve().then(n.bind(n, 22812)), Promise.resolve().then(n.bind(n, 35783)), Promise.resolve().then(n.bind(n, 43120)), Promise.resolve().then(n.bind(n, 13672)), Promise.resolve().then(n.t.bind(n, 86322, 23)) }, 67542: (e, t, n) => { "use strict"; n.d(t, { GlobalErrorMonitor: () => l }); var r = n(87163), o = n(76136); function i(e) { return e instanceof Error && ("ChunkLoadError" === e.name || e.message.includes("Loading chunk") || e.message.includes("Failed to fetch dynamically imported module")) } let l = () => ((0, r.useEffect)(() => { let e = e => { let { error: t, message: n } = e; if (!n || i(t)) return; let r = t instanceof Error ? t.message : n; setTimeout(() => { let e = function() { try { var e, t; let n = document.querySelector("main") || document.body; if (!n) return !1; let r = null != (t = null == (e = n.innerText) ? void 0 : e.trim()) ? t : "", o = n.querySelectorAll("img, video, canvas, svg").length > 0; return r.length < 10 && !o } catch (e) { return !1 } }(); (0, o.cq)({ message: r, type: e ? "white_screen" : "unhandled_error" }) }, 300) }, t = e => { let t = e.reason; if (i(t)) return; let n = t instanceof Error ? t.message : "string" == typeof t ? t : JSON.stringify(t).slice(0, 200); n.includes("Authentication expired") || n.includes("No authorization token") || n.includes("Invitation code required") || (0, o.cq)({ message: n, type: "unhandled_rejection" }) }; return window.addEventListener("error", e), window.addEventListener("unhandledrejection", t), () => { window.removeEventListener("error", e), window.removeEventListener("unhandledrejection", t) } }, []), null) }, 68890: (e, t, n) => { "use strict"; n.d(t, { ArmsRum: () => l }); var r = n(25771), o = n(61437), i = n(22199); let l = () => (0, i.Nn)() ? (0, r.jsx)(o.default, { id: "arms-rum-browser-sdk", src: "https://sdk.rum.aliyuncs.com/v2/browser-sdk.js", crossOrigin: "anonymous", strategy: "afterInteractive", onReady: () => { (0, i.Ok)() }, onError: e => { (0, i.kR)(e) } }) : null }, 81025: (e, t, n) => { "use strict"; n.d(t, { UserInfoStore: () => a }); var r = n(87163), o = n(35104), i = n(38557), l = n(25781), s = n(91093); let a = () => { let e = (0, l.kH)().init, t = (0, s.C)().init, n = (0, o.usePathname)(); return (0, r.useEffect)(() => { if ((0, i.P5)()) return; let t = l.kH.getState(); (t.userInfo.loading || t.userInfo.error) && e() }, [e]), (0, r.useEffect)(() => { "/" === n || "/home" === n || n.startsWith("/home/") || t() }, [t, n]), null } }, 85608: (e, t, n) => { "use strict"; n.r(t), n.d(t, { DebugPanelLoader: () => i }); var r = n(25771); let o = (0, n(41377).default)(() => Promise.all([n.e(6953), n.e(2699), n.e(3), n.e(1573), n.e(2365)]).then(n.bind(n, 72365)).then(e => e.DebugPanel), { loadableGenerated: { webpack: () => [72365] }, ssr: !1, loading: () => null }); function i() { return (0, r.jsx)(o, {}) } }, 86322: () => {}, 91093: (e, t, n) => { "use strict"; n.d(t, { C: () => l }); var r = n(95112), o = n(37468), i = n(15202); let l = (0, r.v)()((e, t) => ({ hideExperimentalElements: !0, promotionPicUri: void 0, styleList: i.Zu, styleLoading: !0, init: async () => { await t().initStyleList() }, initStyleList: async () => { try { var t; let n = (null == (t = (await (0, o.R9)()).items) ? void 0 : t.map(e => ({ name: e.name, desc: e.desc, key: e.key, video_url: e.video_url }))) || []; e({ styleList: n.length ? n : i.Zu }) } catch (t) { e({ styleList: i.Zu }) } finally { e({ styleLoading: !1 }) } }, initHideExperimentalElements: async () => { let t = await (0, o.xX)(); e({ hideExperimentalElements: t.hideExperimentalElements, promotionPicUri: t.promotionPicUri }) } })) }, 93452: (e, t, n) => { "use strict"; n.d(t, { RouteNavigationShell: () => s }); var r = n(25771), o = n(41377), i = n(35104); let l = (0, o.default)(() => Promise.all([n.e(2824), n.e(6953), n.e(2699), n.e(3), n.e(1573), n.e(980), n.e(7173), n.e(5833), n.e(2728), n.e(5588), n.e(4611), n.e(1981), n.e(109), n.e(4617), n.e(445), n.e(4397), n.e(4233), n.e(7027), n.e(3474), n.e(1298), n.e(2321), n.e(7956), n.e(8917), n.e(1459), n.e(824), n.e(5278), n.e(7328), n.e(3809), n.e(4823), n.e(8948), n.e(314), n.e(3144), n.e(2241), n.e(5094), n.e(8858), n.e(729)]).then(n.bind(n, 60876)).then(e => e.AppNavigationShell), { loadableGenerated: { webpack: () => [60876] } }), s = e => { let { children: t } = e, n = (0, i.usePathname)(); return "/" === n || "/home" === n || n.startsWith("/home/") ? (0, r.jsx)(r.Fragment, { children: t }) : (0, r.jsx)(l, { children: t }) } } }, e => { e.O(0, [459, 7399, 8140, 411, 8484, 5719, 8886, 5065, 7827, 5745, 9168, 9454, 7002, 1803, 8413, 4965, 504, 6953, 2699, 3, 1573, 980, 5182, 7173, 5833, 2728, 5588, 4611, 1981, 109, 4617, 445, 4397, 4233, 7027, 3474, 1298, 2321, 7956, 8917, 1459, 824, 5278, 7328, 3809, 4823, 8948, 314, 3144, 2241, 9571, 6136, 1373, 7358], () => e(e.s = 60666)), _N_E = e.O() } ]);