// ==UserScript== // @name 大鸟学习通助手|超星学习通刷课·AI自动答题·作业考试|装好即用 新号送50积分 // @namespace daniao-xuexitong // @version 6.10.11 // @description 超星学习通助手:视频、文档任务点后台挂机免费用;作业、章节测验、考试由 DeepSeek AI 给参考答案,每题 1 积分,新号送 50 积分,面板里扫码就能充,不用注册、不用填密钥。 // @license Proprietary // @tag 超星学习通 // @tag 学习通助手 // @tag AI答题 // @tag 自动答题 // @tag 自动挂机 // @tag 视频刷课 // @tag 免费刷课 // @tag 网课 // @match *://*.chaoxing.com/* // @match *://*.edu.cn/* // @match *://*.xueyinonline.com/* // @match *://*.nbdlib.cn/* // @match *://*.hnsyu.net/* // @match *://*.ac.cn/* // @run-at document-end // @grant unsafeWindow // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @connect chaoxing.com // @connect edu.cn // @connect mooc1.chaoxing.com // @connect mooc1-1.chaoxing.com // @connect mooc1-2.chaoxing.com // @connect cx.icodef.com // @connect xxt.491746.xyz // @icon data:image/png;base64,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 // ==/UserScript== /* Local Lucide icon license ISC License Copyright (c) 2026 Lucide Icons and Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --- The following Lucide icons are derived from the Feather project: airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out The MIT License (MIT) (for the icons listed above) Copyright (c) 2013-present Cole Bemis Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ (() => { const map = {"unrivalrate":"courseRate","unrivalreview":"courseReview","unrivaldowork":"courseDoWork","unrivalautosubmit":"courseAutoSubmit","unrivalautosave":"courseAutoSave","unrivaltimelong":"courseTimeLong"}; for (const [from, to] of Object.entries(map)) { const value = GM_getValue(from); if (value === undefined) continue; if (GM_getValue(to) === undefined) GM_setValue(to, value); GM_deleteValue(from); } })(); function __dripUserscriptFetch(url, options = {}) { return new Promise((resolve, reject) => { const request = GM_xmlhttpRequest({ method: String(options.method || 'GET').toUpperCase(), url: String(url), headers: options.headers || {}, data: options.body ?? undefined, anonymous: true, timeout: 45000, onload: (res) => resolve(new Response(res.status === 204 ? null : (res.responseText || ''), { status: res.status || 200, statusText: res.statusText || '' })), onerror: () => reject(new TypeError('NETWORK_ERROR')), ontimeout: () => reject(new TypeError('NETWORK_TIMEOUT')), onabort: () => reject(new DOMException('Aborted', 'AbortError')) }); options.signal?.addEventListener('abort', () => request?.abort?.(), { once: true }); }); } (() => { // src/src/main.js (() => { var CourseUx = (() => { var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var course_ux_exports = {}; __export(course_ux_exports, { courseUxState: () => courseUxState, mountCourseUx: () => mountCourseUx }); var tokens_default = "/* Opt-in only: importing this sheet does not style the host page. */\n.lt-ui {\n --lt-color-page: #f5f6f8;\n --lt-color-panel: #ffffff;\n --lt-color-secondary: #f5f6f8;\n --lt-color-hover: #eef0f3;\n --lt-color-pressed: #e4e7ec;\n --lt-color-selected: #edf0fc;\n --lt-color-border: #e1e4e8;\n --lt-color-control-border: #89929f;\n --lt-color-text: #20242c;\n --lt-color-text-secondary: #59616e;\n --lt-color-text-muted: #68707e;\n --lt-color-brand: #465acb;\n --lt-color-brand-hover: #3d4fb5;\n --lt-color-brand-pressed: #35459b;\n --lt-color-success: #18724b;\n --lt-color-success-bg: #eef7f1;\n --lt-color-warning: #8c5a0b;\n --lt-color-warning-bg: #fff7e6;\n --lt-color-error: #b42318;\n --lt-color-error-bg: #fff1f0;\n --lt-color-disabled-bg: #f0f1f3;\n --lt-color-disabled-text: #9298a2;\n --lt-color-launcher: rgba(255, 255, 255, .96);\n --lt-space-0: 0px;\n --lt-space-2: 2px;\n --lt-space-4: 4px;\n --lt-space-8: 8px;\n --lt-space-12: 12px;\n --lt-space-16: 16px;\n --lt-space-20: 20px;\n --lt-space-24: 24px;\n --lt-space-32: 32px;\n --lt-radius-badge: 4px;\n --lt-radius-selection: 6px;\n --lt-radius-control: 8px;\n --lt-radius-surface: 12px;\n --lt-radius-round: 999px;\n --lt-border-width: 1px;\n --lt-focus-width: 2px;\n --lt-focus-offset: 2px;\n --lt-size-button: 36px;\n --lt-size-button-min: 64px;\n --lt-size-icon-button: 40px;\n --lt-size-touch: 44px;\n --lt-size-icon: 16px;\n --lt-icon-stroke: 2;\n --lt-size-toggle-width: 36px;\n --lt-size-toggle-height: 20px;\n --lt-size-toggle-thumb: 16px;\n --lt-size-launcher: 48px;\n --lt-size-logo: 32px;\n --lt-size-panel: 352px;\n --lt-size-panel-min: 320px;\n --lt-size-panel-max-height: 560px;\n --lt-size-course: 720px;\n --lt-size-course-custom-input: 64px;\n --lt-size-course-segments: 232px;\n --lt-size-course-guard: 140px;\n --lt-size-header: 48px;\n --lt-size-segment-min: 56px;\n --lt-size-status-dot: 6px;\n --lt-font-family: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;\n --lt-font-mono: ui-monospace, Consolas, monospace;\n --lt-font-title: 14px;\n --lt-font-body: 13px;\n --lt-font-caption: 12px;\n --lt-font-section: 16px;\n --lt-font-balance: 20px;\n --lt-line-body: 20px;\n --lt-line-caption: 18px;\n --lt-line-section: 24px;\n --lt-weight-normal: 400;\n --lt-weight-medium: 500;\n --lt-weight-semibold: 600;\n --lt-shadow-1: 0 1px 2px rgba(15, 23, 42, .06);\n --lt-shadow-2: 0 4px 12px rgba(15, 23, 42, .12);\n --lt-shadow-3: 0 8px 24px rgba(15, 23, 42, .16);\n --lt-duration-press: 90ms;\n --lt-duration-hover: 140ms;\n --lt-duration-state: 180ms;\n --lt-duration-open: 200ms;\n --lt-duration-close: 120ms;\n --lt-duration-snap: 180ms;\n --lt-ease-standard: cubic-bezier(.2, 0, 0, 1);\n --lt-ease-out: cubic-bezier(.16, 1, .3, 1);\n --lt-ease-in: cubic-bezier(.4, 0, 1, 1);\n --lt-scale-launcher-pressed: .97;\n --lt-scale-launcher-lift: 1.04;\n font-family: var(--lt-font-family);\n font-size: var(--lt-font-body);\n line-height: var(--lt-line-body);\n font-weight: var(--lt-weight-normal);\n color: var(--lt-color-text);\n}\n"; function courseUxState({ chapters = [], missions = [], tasksReady = false, taskCount = 0, readError = false } = {}) { if (readError) return { state: "error", title: "\u6682\u672A\u8BFB\u53D6\u5230\u8BFE\u7A0B\u4EFB\u52A1", next: "\u8BF7\u5237\u65B0\u8BFE\u7A0B\u9875\u91CD\u8BD5\uFF1B\u5F53\u524D\u672A\u786E\u8BA4\u4EFB\u52A1\u5B8C\u6210\u3002" }; if (missions.some((item) => item.failed)) return { state: "error", title: "\u6709\u8BFE\u7A0B\u4EFB\u52A1\u672A\u80FD\u5B8C\u6210", next: "\u8BF7\u68C0\u67E5\u5F53\u524D\u4EFB\u52A1\u6216\u5237\u65B0\u8BFE\u7A0B\u9875\uFF1B\u5931\u8D25\u4EFB\u52A1\u6CA1\u6709\u6807\u8BB0\u4E3A\u5B8C\u6210\u3002" }; if (missions.some((item) => item.running && !item.done)) return { state: "running", title: "\u6B63\u5728\u5904\u7406\u672C\u8282\u4EFB\u52A1", next: "\u4FDD\u6301\u8BFE\u7A0B\u9875\u6253\u5F00\uFF0C\u7B49\u5F85\u5F53\u524D\u4EFB\u52A1\u5904\u7406\u548C\u5E73\u53F0\u786E\u8BA4\u3002" }; if (chapters.length && chapters.every((item) => item.isCompleted === true)) return { state: "done", title: "\u76EE\u5F55\u4E2D\u7684\u8BFE\u7A0B\u4EFB\u52A1\u5DF2\u5B8C\u6210", next: "\u53EF\u8FD4\u56DE\u8BFE\u7A0B\u5217\u8868\uFF0C\u9009\u62E9\u5176\u4ED6\u8BFE\u7A0B\u3002" }; if (chapters.some((item) => item.isLocked && !item.isCompleted)) return { state: "waiting", title: "\u8BFE\u7A0B\u4ECD\u6709\u672A\u5B8C\u6210\u6216\u672A\u5F00\u653E\u4EFB\u52A1", next: "\u4FDD\u6301\u8BFE\u7A0B\u9875\u6253\u5F00\uFF1B\u672A\u5F00\u653E\u7684\u4EFB\u52A1\u9700\u7B49\u5F85\u5B66\u4E60\u901A\u5141\u8BB8\u8BBF\u95EE\u3002" }; if (taskCount > 0 && missions.length >= taskCount && missions.every((item) => item.done)) return { state: "waiting", title: "\u672C\u8282\u5DF2\u68C0\u6D4B\u4EFB\u52A1\u5DF2\u5B8C\u6210", next: "\u7B49\u5F85\u8BFE\u7A0B\u68C0\u67E5\u540E\u7EED\u4EFB\u52A1\uFF1B\u672C\u8282\u5B8C\u6210\u4E0D\u4EE3\u8868\u6574\u95E8\u8BFE\u7A0B\u5B8C\u6210\u3002" }; if (tasksReady && taskCount === 0) return { state: "waiting", title: "\u672C\u8282\u672A\u68C0\u6D4B\u5230\u5F85\u5904\u7406\u4EFB\u52A1", next: "\u7B49\u5F85\u5176\u4ED6\u6807\u7B7E\u9875\u548C\u8BFE\u7A0B\u76EE\u5F55\u68C0\u67E5\uFF1B\u8FD9\u4E0D\u4EE3\u8868\u6574\u95E8\u8BFE\u7A0B\u5B8C\u6210\u3002" }; return { state: "waiting", title: "\u6B63\u5728\u68C0\u67E5\u8BFE\u7A0B\u4EFB\u52A1", next: "\u4FDD\u6301\u8BFE\u7A0B\u9875\u6253\u5F00\uFF1B\u68C0\u6D4B\u5230\u53EF\u5904\u7406\u4EFB\u52A1\u540E\u5C06\u81EA\u52A8\u5904\u7406\u3002" }; } var components_default = `/* All component selectors require the explicit .lt-ui boundary. */ .lt-ui :where(*, *::before, *::after) { box-sizing: border-box; } .lt-ui :where(button, input, summary) { font: inherit; } .lt-ui [hidden] { display: none !important; } .lt-ui .lt-icon { width: var(--lt-size-icon); height: var(--lt-size-icon); flex: 0 0 var(--lt-size-icon); stroke-width: var(--lt-icon-stroke); vertical-align: middle; } .lt-ui .lt-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--lt-space-8); min-width: var(--lt-size-button-min); min-height: var(--lt-size-button); padding: var(--lt-space-4) var(--lt-space-12); border: var(--lt-border-width) solid transparent; border-radius: var(--lt-radius-control); background: transparent; color: var(--lt-color-text); font-weight: var(--lt-weight-medium); line-height: var(--lt-line-body); text-decoration: none; cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard), border-color var(--lt-duration-hover) var(--lt-ease-standard), color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-button--primary { background: var(--lt-color-brand); color: var(--lt-color-panel); } .lt-ui .lt-button--secondary { background: var(--lt-color-panel); border-color: var(--lt-color-border); } .lt-ui .lt-button--ghost, .lt-ui .lt-button--icon { color: var(--lt-color-text-secondary); } .lt-ui .lt-button--icon { width: var(--lt-size-icon-button); height: var(--lt-size-icon-button); min-width: var(--lt-size-icon-button); padding: var(--lt-space-0); } .lt-ui .lt-button:not(:disabled):not([aria-disabled="true"]):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); color: var(--lt-color-text); } .lt-ui .lt-button--primary:not(:disabled):not([aria-disabled="true"]):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-brand-hover); color: var(--lt-color-panel); } .lt-ui .lt-button:not(:disabled):not([aria-disabled="true"]):is(:active, [data-ui-state="pressed"]) { background: var(--lt-color-pressed); transition-duration: var(--lt-duration-press); } .lt-ui .lt-button--primary:not(:disabled):not([aria-disabled="true"]):is(:active, [data-ui-state="pressed"]) { background: var(--lt-color-brand-pressed); } .lt-ui .lt-button[aria-expanded="true"] { background: var(--lt-color-selected); } .lt-ui :is(.lt-button, .lt-toggle, .lt-segment, .lt-launcher, .lt-input):is(:focus-visible, [data-ui-state="focus"]) { outline: var(--lt-focus-width) solid var(--lt-color-brand); outline-offset: var(--lt-focus-offset); } .lt-ui .lt-button:is(:disabled, [aria-disabled="true"]) { background: var(--lt-color-disabled-bg); color: var(--lt-color-disabled-text); border-color: transparent; cursor: not-allowed; } .lt-ui .lt-button--ghost:is(:disabled, [aria-disabled="true"]), .lt-ui .lt-button--icon:is(:disabled, [aria-disabled="true"]) { background: transparent; } .lt-ui .lt-button[aria-busy="true"] { cursor: progress; } .lt-ui .lt-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--lt-space-16); min-height: var(--lt-size-icon-button); padding: var(--lt-space-8); border: var(--lt-border-width) solid transparent; border-radius: var(--lt-radius-control); background: transparent; color: var(--lt-color-text); cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-toggle:not(:disabled):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); } .lt-ui .lt-toggle-copy { display: flex; flex-direction: column; text-align: left; gap: var(--lt-space-2); } .lt-ui .lt-toggle-label { font-weight: var(--lt-weight-medium); } .lt-ui .lt-toggle-value { font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); color: var(--lt-color-text-muted); padding: var(--lt-space-2) var(--lt-space-8); border-radius: var(--lt-radius-badge); background: var(--lt-color-secondary); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-value { color: var(--lt-color-success); background: var(--lt-color-success-bg); } .lt-ui .lt-toggle-track { display: block; position: relative; width: var(--lt-size-toggle-width); height: var(--lt-size-toggle-height); flex: 0 0 var(--lt-size-toggle-width); border-radius: var(--lt-radius-round); background: var(--lt-color-control-border); transition: background-color var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-toggle-track::after { content: ''; position: absolute; width: var(--lt-size-toggle-thumb); height: var(--lt-size-toggle-thumb); top: var(--lt-space-2); left: var(--lt-space-2); border-radius: var(--lt-radius-round); background: var(--lt-color-panel); transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-track { background: var(--lt-color-brand); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-track::after { transform: translateX(var(--lt-size-toggle-thumb)); } .lt-ui .lt-toggle:not(:disabled):active .lt-toggle-track { background: var(--lt-color-text-secondary); } .lt-ui .lt-toggle[aria-checked="true"]:not(:disabled):active .lt-toggle-track { background: var(--lt-color-brand-pressed); } .lt-ui .lt-toggle:disabled { color: var(--lt-color-disabled-text); cursor: not-allowed; } .lt-ui .lt-toggle:disabled .lt-toggle-track { background: var(--lt-color-disabled-text); } .lt-ui .lt-segmented { --lt-segment-count: 4; --lt-segment-index: 0; position: relative; display: grid; grid-template-columns: repeat(var(--lt-segment-count), minmax(var(--lt-size-segment-min), 1fr)); min-width: 0; width: 100%; padding: var(--lt-space-2); border-radius: var(--lt-radius-control); background: var(--lt-color-secondary); isolation: isolate; } .lt-ui .lt-segment-indicator { position: absolute; z-index: -1; top: var(--lt-space-2); bottom: var(--lt-space-2); left: var(--lt-space-2); width: calc((100% - var(--lt-space-2) * 2) / var(--lt-segment-count)); border-radius: var(--lt-radius-selection); background: var(--lt-color-panel); box-shadow: var(--lt-shadow-1); transform: translateX(calc(var(--lt-segment-index) * 100%)); transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-segment { position: relative; min-width: 0; min-height: calc(var(--lt-size-button) - var(--lt-space-2) * 2); padding: var(--lt-space-4) var(--lt-space-8); border: 0; border-radius: var(--lt-radius-selection); background: transparent; color: var(--lt-color-text-secondary); font-weight: var(--lt-weight-medium); font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-segment[aria-checked="true"] { color: var(--lt-color-text); font-weight: var(--lt-weight-semibold); } .lt-ui .lt-segment[aria-checked="false"]:not(:disabled):hover { background: var(--lt-color-hover); } .lt-ui .lt-segment:not(:disabled):active { background: var(--lt-color-pressed); } .lt-ui .lt-segment:disabled { color: var(--lt-color-disabled-text); cursor: not-allowed; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher) { display: grid; place-items: center; width: var(--lt-size-launcher); height: var(--lt-size-launcher); flex: 0 0 var(--lt-size-launcher); padding: var(--lt-space-0); border: var(--lt-border-width) solid var(--lt-color-border); border-radius: var(--lt-radius-surface); background: var(--lt-color-launcher); box-shadow: var(--lt-shadow-2); cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard), border-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-launcher-mark { display: block; width: var(--lt-size-logo); height: var(--lt-size-logo); object-fit: contain; transition: transform var(--lt-duration-press) var(--lt-ease-standard); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:active, [data-ui-state="pressed"]) .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-pressed)); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[aria-expanded="true"] { background: var(--lt-color-selected); border-color: var(--lt-color-brand); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-press="true"] .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-pressed)); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-pose="spread"] { box-shadow: var(--lt-shadow-3); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-pose="spread"] .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-lift)); } :is(.lt-ui .lt-panel, .lt-ui.lt-panel) { display: flex; flex-direction: column; width: min(var(--lt-size-panel), calc(100vw - var(--lt-space-12) * 2)); min-width: min(var(--lt-size-panel-min), calc(100vw - var(--lt-space-12) * 2)); max-width: 100%; max-height: min(var(--lt-size-panel-max-height), calc(100dvh - var(--lt-space-12) * 2)); overflow: hidden; border: var(--lt-border-width) solid var(--lt-color-border); border-radius: var(--lt-radius-surface); background: var(--lt-color-panel); box-shadow: var(--lt-shadow-3); } .lt-ui .lt-panel-header { display: flex; align-items: center; justify-content: space-between; gap: var(--lt-space-8); min-height: var(--lt-size-header); padding: var(--lt-space-4) var(--lt-space-8) var(--lt-space-0) var(--lt-space-16); flex-shrink: 0; } .lt-ui .lt-panel-title { margin: 0; font-size: var(--lt-font-title); line-height: var(--lt-line-body); font-weight: var(--lt-weight-semibold); } .lt-ui .lt-panel-body { padding: var(--lt-space-8) var(--lt-space-16) var(--lt-space-16); overflow: auto; min-height: 0; } .lt-ui .lt-status { display: flex; align-items: center; gap: var(--lt-space-8); font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); font-weight: var(--lt-weight-medium); } .lt-ui .lt-status-dot { width: var(--lt-size-status-dot); height: var(--lt-size-status-dot); border-radius: var(--lt-radius-round); background: var(--lt-color-control-border); flex-shrink: 0; } .lt-ui .lt-caption { color: var(--lt-color-text-muted); font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); margin: var(--lt-space-4) 0 0; overflow-wrap: anywhere; } .lt-ui .lt-help-copy { color: var(--lt-color-text-secondary); font-size: var(--lt-font-body); line-height: var(--lt-line-body); text-align: left; overflow-wrap: anywhere; } .lt-ui .lt-help-emphasis { color: var(--lt-color-brand); font-weight: var(--lt-weight-medium); } .lt-ui .lt-help-lead { display: block; margin-bottom: var(--lt-space-4); color: var(--lt-color-brand); font-weight: var(--lt-weight-medium); } .lt-ui .lt-help-purchase { color: var(--lt-color-warning); } .lt-ui .lt-help-safe { color: var(--lt-color-success); font-weight: var(--lt-weight-medium); } .lt-ui .lt-context { margin: var(--lt-space-8) 0 var(--lt-space-16); color: var(--lt-color-text-secondary); } :is(.lt-ui .lt-panel, .lt-ui.lt-panel) .lt-toggle { width: 100%; padding-inline: 0; min-height: var(--lt-size-launcher); } .lt-ui .lt-panel-section { padding-top: var(--lt-space-16); margin-top: var(--lt-space-16); border-top: var(--lt-border-width) solid var(--lt-color-border); } .lt-ui .lt-course-entry { justify-content: flex-start; margin-left: calc(var(--lt-space-8) * -1); padding-inline: var(--lt-space-8); } .lt-ui .lt-account-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lt-space-8); } .lt-ui .lt-account-copy { display: flex; align-items: baseline; gap: var(--lt-space-8); } .lt-ui .lt-balance { font-size: var(--lt-font-balance); line-height: var(--lt-line-section); font-weight: var(--lt-weight-semibold); font-variant-numeric: tabular-nums; } .lt-ui .lt-account-actions { display: flex; align-items: center; gap: var(--lt-space-4); } .lt-ui .lt-disclosure > summary { list-style: none; } .lt-ui .lt-disclosure > summary::-webkit-details-marker { display: none; } .lt-ui .lt-disclosure[open] > summary { background: var(--lt-color-selected); } .lt-ui .lt-disclosure[open] > summary .lt-icon { transform: rotate(180deg); } .lt-ui .lt-disclosure > summary .lt-icon { transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-recharge { margin-top: var(--lt-space-8); } .lt-ui .lt-disclosure-content { padding-top: var(--lt-space-12); } .lt-ui .lt-field { display: flex; flex-direction: column; gap: var(--lt-space-8); } .lt-ui .lt-input { width: 100%; height: var(--lt-size-touch); padding: var(--lt-space-8) var(--lt-space-12); border: var(--lt-border-width) solid var(--lt-color-control-border); border-radius: var(--lt-radius-control); background: var(--lt-color-panel); color: var(--lt-color-text); } .lt-ui .lt-form-actions { display: flex; gap: var(--lt-space-8); margin-top: var(--lt-space-12); } .lt-ui .lt-log-summary { justify-content: space-between; width: 100%; padding-inline: 0; } .lt-ui .lt-log-summary-copy { display: flex; flex-direction: column; text-align: left; } .lt-ui .lt-log-entry { display: flex; gap: var(--lt-space-8); align-items: start; padding-block: var(--lt-space-8); } .lt-ui .lt-log-entry .lt-icon { color: var(--lt-color-success); margin-top: var(--lt-space-2); } .lt-ui .lt-log-text { margin: 0; } @media (pointer: coarse) { .lt-ui :is(.lt-button, .lt-toggle) { min-height: var(--lt-size-touch); } .lt-ui .lt-button--icon { width: var(--lt-size-touch); height: var(--lt-size-touch); min-width: var(--lt-size-touch); } .lt-ui .lt-segment { min-height: calc(var(--lt-size-touch) - var(--lt-space-2) * 2); } } @media (prefers-reduced-motion: reduce) { .lt-ui :is(.lt-button, .lt-toggle, .lt-toggle-track, .lt-toggle-track::after, .lt-segment-indicator, .lt-segment, .lt-launcher, .lt-launcher-mark, .lt-disclosure > summary .lt-icon) { transition: none; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:active, [data-ui-state="pressed"]) .lt-launcher-mark { transform: none; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is([data-bird-pose="spread"], [data-bird-press="true"]) .lt-launcher-mark { transform: none; } } `; var runtime_default = `/* Runtime adapters retain the existing hooks; every rule is opt-in and scoped. */ .lt-ui.lt-ux-collapse-toast{position:fixed;z-index:2147483647;width:240px;box-sizing:border-box;margin:0;padding:var(--lt-space-8) var(--lt-space-12);background:var(--lt-color-panel);color:var(--lt-color-text-secondary);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-control);box-shadow:var(--lt-shadow-2);font-size:var(--lt-font-caption);pointer-events:none} .lt-ui.lt-ux-collapse-toast[hidden]{display:none} .lt-ui [hidden]{display:none!important} #cxds-logo.lt-ui{position:fixed;right:var(--lt-space-24);top:74px;z-index:2147483647;touch-action:none;isolation:isolate} #cxds-logo.lt-ui[data-lt-bird]>.lt-bird-mark{width:var(--lt-size-logo);height:var(--lt-size-logo)} #cxds-logo.lt-ui.cxds-active{background:var(--lt-color-selected);border-color:var(--lt-color-brand);z-index:2147483645} #cxds-logo.lt-ui.cxds-dragging{cursor:grabbing;box-shadow:var(--lt-shadow-3)} #cxds-logo.lt-ui:focus-visible{outline:var(--lt-focus-width) solid var(--lt-color-brand);outline-offset:var(--lt-focus-offset)} #cxds-panel.lt-ui{box-sizing:border-box;position:fixed;z-index:2147483646;text-align:left;isolation:isolate;color-scheme:light;transition:opacity var(--lt-duration-open) var(--lt-ease-standard)} #cxds-panel.lt-ui.cxds-hidden{visibility:hidden;opacity:0;pointer-events:none} #cxds-panel.lt-ui .cxds-header{display:flex;align-items:center;justify-content:space-between;gap:var(--lt-space-8);min-height:var(--lt-size-header);padding:var(--lt-space-4) var(--lt-space-8) 0 var(--lt-space-16);flex-shrink:0} #cxds-panel.lt-ui .cxds-title strong{font-size:var(--lt-font-title);line-height:var(--lt-line-body);font-weight:var(--lt-weight-semibold)} #cxds-panel.lt-ui .cxds-title small,#cxds-panel.lt-ui .cxds-status-badge{display:none} #cxds-panel.lt-ui .cxds-body{padding:var(--lt-space-8) var(--lt-space-16) var(--lt-space-16);overflow:auto;min-height:0;scrollbar-width:thin} #cxds-panel.lt-ui .lt-runtime-empty{display:none} #cxds-panel.lt-ui .cxds-status-banner{display:flex;align-items:center;gap:var(--lt-space-8);font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);font-weight:var(--lt-weight-medium);margin:0 0 var(--lt-space-8)} #cxds-panel.lt-ui .cxds-status-dot{width:var(--lt-size-status-dot);height:var(--lt-size-status-dot);background:var(--lt-color-control-border);border-radius:var(--lt-radius-round);flex-shrink:0} #cxds-panel.lt-ui .cxds-status-banner:is(.is-warning,.is-error){color:var(--lt-color-warning)} #cxds-panel.lt-ui .cxds-status-banner.is-error{color:var(--lt-color-error)} #cxds-panel.lt-ui .cxds-status-banner.is-success{color:var(--lt-color-success)} #cxds-panel.lt-ui .cxds-status-banner:is(.is-warning,.is-error,.is-success) .cxds-status-dot{background:currentColor} #cxds-panel.lt-ui .drip-task-context{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:0 0 var(--lt-space-12);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-current{margin:var(--lt-space-8) 0;padding:var(--lt-space-12);border-radius:var(--lt-radius-control);background:var(--lt-color-secondary);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .drip-current-head{display:flex;justify-content:space-between;gap:var(--lt-space-8);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui [data-current-title]{display:block;margin-top:var(--lt-space-4);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui [data-current-description]{margin:var(--lt-space-4) 0 0;color:var(--lt-color-text-secondary);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-ai-toggle{width:100%;padding-inline:0;min-height:var(--lt-size-launcher)} #cxds-panel.lt-ui .drip-ai-copy{display:flex;align-items:center;gap:var(--lt-space-8)} #cxds-panel.lt-ui .drip-ai-copy strong{font-size:var(--lt-font-body);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .drip-ai-copy small{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-muted);background:var(--lt-color-secondary);padding:var(--lt-space-2) var(--lt-space-8);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .drip-ai-toggle[aria-checked="true"] .drip-ai-copy small{color:var(--lt-color-success);background:var(--lt-color-success-bg)} #cxds-panel.lt-ui #drip-ai-help{margin:0;color:var(--lt-color-text-secondary);font-size:var(--lt-font-body);line-height:var(--lt-line-body)} #cxds-panel.lt-ui .cxds-notice{margin:var(--lt-space-8) 0;padding:var(--lt-space-8);background:var(--lt-color-warning-bg);color:var(--lt-color-warning);font-size:var(--lt-font-caption);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .cxds-license-box{margin-top:var(--lt-space-16);padding-top:var(--lt-space-16);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-runtime-account-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8)} #cxds-panel.lt-ui .cxds-license-top{display:flex;align-items:baseline;gap:var(--lt-space-8);flex:1;min-width:0;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-balance-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--lt-space-4)} #cxds-panel.lt-ui [data-balance]{font-size:var(--lt-font-balance);line-height:var(--lt-line-section);color:var(--lt-color-text);font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums} #cxds-panel.lt-ui .drip-license-status{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .drip-warning-icon{display:none} #cxds-panel.lt-ui [data-license-state][data-ux-state="ready"]{color:var(--lt-color-success)} #cxds-panel.lt-ui [data-license-state][data-ux-state="warning"]{color:var(--lt-color-warning)} #cxds-panel.lt-ui [data-balance][data-ux-known="true"]::after{content:' \u79EF\u5206';font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal)} #cxds-panel.lt-ui :is(.lt-ux-course,.lt-ux-next,.lt-ux-feedback,.lt-ux-receipt,.lt-ux-collapse){font-size:var(--lt-font-caption);line-height:var(--lt-line-body);overflow-wrap:anywhere;margin:var(--lt-space-4) 0 var(--lt-space-8);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .lt-ux-next{color:var(--lt-color-text);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .lt-ux-receipt{color:var(--lt-color-brand)} #cxds-panel.lt-ui .lt-ux-collapse{padding-top:var(--lt-space-8);border-top:var(--lt-border-width) solid var(--lt-color-border);margin-bottom:0} #cxds-panel.lt-ui .cxds-license-state.is-warning{color:var(--lt-color-warning)} #cxds-panel.lt-ui .drip-credit-help{margin:var(--lt-space-12) 0 0;font-size:var(--lt-font-body);line-height:var(--lt-line-body);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-recharge{margin-top:var(--lt-space-4)} #cxds-panel.lt-ui .drip-recharge-content{padding-top:var(--lt-space-12)} #cxds-panel.lt-ui .cxds-field{display:flex;flex-direction:column;gap:var(--lt-space-8);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .cxds-license-actions{display:flex;gap:var(--lt-space-8);margin-top:var(--lt-space-12)} #cxds-panel.lt-ui .lt-record-details{margin-top:var(--lt-space-16);padding-top:var(--lt-space-12);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-record-summary-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--lt-space-4);min-width:0} #cxds-panel.lt-ui .lt-record-preview{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px} #cxds-panel.lt-ui .cxds-log-head{display:flex;align-items:center;gap:var(--lt-space-4);margin-top:var(--lt-space-8)} #cxds-panel.lt-ui .cxds-log-head>span{margin-right:auto;color:var(--lt-color-text-muted);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .drip-submission,#cxds-panel.lt-ui .drip-log-history{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-submission[data-confirmed="true"]{color:var(--lt-color-success)} #cxds-panel.lt-ui .drip-timeline{max-height:240px;overflow:auto;font-size:var(--lt-font-caption);line-height:var(--lt-line-caption)} #cxds-panel.lt-ui .drip-timeline:empty::after{content:attr(data-empty-copy);display:block;padding:var(--lt-space-8);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .drip-timeline-entry{position:relative;padding:var(--lt-space-12) 0 var(--lt-space-12) var(--lt-space-16);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .drip-timeline-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--lt-space-8)} #cxds-panel.lt-ui .drip-timeline-heading strong{font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .drip-log-state,#cxds-panel.lt-ui .drip-timeline-entry time{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);white-space:nowrap} #cxds-panel.lt-ui .drip-timeline-entry p{margin:var(--lt-space-4) 0;color:var(--lt-color-text-secondary);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-timeline-node{position:absolute;left:0;top:var(--lt-space-16);width:var(--lt-size-status-dot);height:var(--lt-size-status-dot);background:var(--lt-color-control-border);border-radius:var(--lt-radius-round)} #cxds-panel.lt-ui [data-state="done"] .drip-timeline-node{background:var(--lt-color-success)} #cxds-panel.lt-ui [data-state="paused"] .drip-timeline-node{background:var(--lt-color-warning)} #cxds-panel.lt-ui [data-state="running"] .drip-timeline-node{background:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-progress-segments{display:flex;gap:var(--lt-space-4);height:var(--lt-space-4);margin:var(--lt-space-12) 0} #cxds-panel.lt-ui .drip-progress-segments>span{flex:1;background:var(--lt-color-border);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .drip-progress-segments>span[data-state="done"]{background:var(--lt-color-success)} #cxds-panel.lt-ui .drip-progress-segments>span[data-state="running"]{background:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-progress-caption{display:flex;justify-content:space-between;font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .lt-button[aria-busy="true"]{background:var(--lt-color-secondary);color:var(--lt-color-text-secondary);min-width:var(--lt-size-button);opacity:1} #cxds-panel.lt-ui:has(.drip-recharge[open]) [data-action="home-entry"]{background:var(--lt-color-panel);color:var(--lt-color-text);border-color:var(--lt-color-border)} .lt-course-document.lt-ui{margin:0;background:var(--lt-color-page);padding-bottom:var(--lt-space-32);color-scheme:light} #lt-course-ui.lt-ui{width:min(var(--lt-size-course),calc(100vw - var(--lt-space-16)*2));max-width:var(--lt-size-course);padding:var(--lt-space-20) var(--lt-space-24);margin:var(--lt-space-20) auto;background:var(--lt-color-panel);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-surface);box-shadow:var(--lt-shadow-1);font-family:var(--lt-font-family);color:var(--lt-color-text)} #lt-course-ui.lt-ui .lt-course-header{gap:var(--lt-space-12);flex-wrap:wrap} #lt-course-ui.lt-ui .lt-course-header>div:first-child{font-size:var(--lt-font-section);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .lt-course-header>div:first-child span{font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #courseProgressSource{color:var(--lt-color-text-secondary);font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui #courseProgressSource>span{background:var(--lt-color-success);border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui #onlineNum{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui .custom-card{background:transparent!important;color:var(--lt-color-text)!important;border:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:var(--lt-border-width) solid var(--lt-color-border)!important;margin-bottom:var(--lt-space-8)!important;overflow:visible} #lt-course-ui.lt-ui .custom-card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8);background:transparent;border:0;padding:var(--lt-space-12) 0;color:var(--lt-color-text);font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .custom-card-header>span:last-child{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);font-weight:var(--lt-weight-normal)} #lt-course-ui.lt-ui .custom-card-body{padding:var(--lt-space-12) 0} #lt-course-ui.lt-ui .custom-card-header>span:first-child>span{display:none!important} #lt-course-ui.lt-ui #courseOverviewCard{background:var(--lt-color-secondary)!important;border-radius:var(--lt-radius-control)!important;border:0!important} #lt-course-ui.lt-ui .lt-course-overview-body{padding:var(--lt-space-16)!important} #lt-course-ui.lt-ui .lt-course-overview-body>div:last-child{border:0;padding-top:0!important;font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-estimate .lt-button{min-width:0;min-height:0;padding:var(--lt-space-2) var(--lt-space-4);font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #courseOverviewCard span,#lt-course-ui.lt-ui #courseOverviewCard b,#lt-course-ui.lt-ui #courseOverviewCard details{color:var(--lt-color-text-secondary)!important;font-family:var(--lt-font-family)!important} #lt-course-ui.lt-ui #overviewPercent{font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums;color:var(--lt-color-text)!important} #lt-course-ui.lt-ui #overviewProgressFill{background:var(--lt-color-brand)!important;transition:width var(--lt-duration-state) var(--lt-ease-standard)!important} #lt-course-ui.lt-ui .lt-course-progress-track{background:var(--lt-color-border)!important;border:0!important;height:var(--lt-space-4)!important;padding:0!important;border-radius:var(--lt-radius-round);overflow:hidden} #lt-course-ui.lt-ui #overviewProgressFill{border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui .lt-course-control-row{gap:var(--lt-space-12)!important;align-items:center!important} #lt-course-ui.lt-ui .lt-course-speed{display:flex!important;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8)!important} #lt-course-ui.lt-ui .lt-course-speed>span{order:1;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui .lt-course-speed .lt-segmented{order:2;width:var(--lt-size-course-segments);margin:0!important} #lt-course-ui.lt-ui .lt-course-custom-speed{order:3;display:flex;gap:var(--lt-space-8);align-items:center} #lt-course-ui.lt-ui .lt-course-custom-label{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);margin-left:var(--lt-space-4)} #lt-course-ui.lt-ui .speed-pill{border:0;background:transparent;color:var(--lt-color-text-secondary);height:32px;min-width:0;border-radius:var(--lt-radius-selection);padding:var(--lt-space-4) var(--lt-space-8);font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .speed-pill.active{background:transparent;border:0;color:var(--lt-color-text);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .speed-pill:not(.active):hover{background:var(--lt-color-hover)} #lt-course-ui.lt-ui .speed-pill:active{background:var(--lt-color-pressed)} #lt-course-ui.lt-ui .speed-input{width:var(--lt-size-course-custom-input);height:var(--lt-size-button);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-control);background:var(--lt-color-panel);color:var(--lt-color-text);font-size:var(--lt-font-body);font-variant-numeric:tabular-nums} #lt-course-ui.lt-ui .speed-input{text-align:center;padding:var(--lt-space-4) var(--lt-space-8)} #lt-course-ui.lt-ui .speed-input:focus-visible{outline:var(--lt-focus-width) solid var(--lt-color-brand);outline-offset:var(--lt-focus-offset)} #lt-course-ui.lt-ui .lt-course-guard{width:var(--lt-size-course-guard);margin:0} #lt-course-ui.lt-ui #backGround{background:transparent!important;border:0!important;color:var(--lt-color-text)!important;padding:0!important;font-weight:var(--lt-weight-normal);justify-content:space-between;box-shadow:none!important;width:100%;height:var(--lt-size-launcher);border-radius:var(--lt-radius-control)} #lt-course-ui.lt-ui #backGround:not(:disabled):hover{background:var(--lt-color-hover)!important} #lt-course-ui.lt-ui #backGround:not(:disabled):active{background:var(--lt-color-pressed)!important} #lt-course-ui.lt-ui #backGround .pulse-dot{display:none} #lt-course-ui.lt-ui #backGround small{display:none} #lt-course-ui.lt-ui .lt-course-records>summary{display:flex;align-items:center;justify-content:space-between;min-height:var(--lt-size-touch);list-style:none;cursor:pointer} #lt-course-ui.lt-ui .lt-course-records>summary::-webkit-details-marker{display:none} #lt-course-ui.lt-ui .lt-course-log-card div{background:transparent!important;box-shadow:none!important;border-color:var(--lt-color-border)!important} #lt-course-ui.lt-ui #log{color:var(--lt-color-text-secondary)!important;line-height:var(--lt-line-caption)!important;font-size:var(--lt-font-caption)!important;font-family:var(--lt-font-mono)!important} #lt-course-ui.lt-ui #log span{color:var(--lt-color-text-secondary)!important} #lt-course-ui.lt-ui #log span[style*="red"]{color:var(--lt-color-error)!important} #lt-course-ui.lt-ui #log span[style*="green"]{color:var(--lt-color-success)!important} #lt-course-ui.lt-ui #log span[style*="orange"]{color:var(--lt-color-warning)!important} #lt-course-ui.lt-ui #log span a{color:var(--lt-color-brand)!important} #lt-course-ui.lt-ui #clearLogBtn{font-family:var(--lt-font-family)!important;color:var(--lt-color-text-secondary)!important} #lt-course-ui.lt-ui #joblist:not(:has(*))::after{content:'\u672C\u8282\u6682\u65E0\u53EF\u663E\u793A\u4EFB\u52A1';color:var(--lt-color-text-muted);font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-log-card{margin:0!important;border-bottom:0!important} #lt-course-ui.lt-ui .lt-course-records>summary{padding-inline:0} #lt-course-ui.lt-ui #joblist>div{border:0!important;box-shadow:none!important;background:transparent!important;border-bottom:var(--lt-border-width) solid var(--lt-color-border)!important} @media(max-width:540px){#lt-course-ui.lt-ui{padding:var(--lt-space-16);margin-block:var(--lt-space-12)}#lt-course-ui.lt-ui .lt-course-control-row{display:flex;flex-direction:column;align-items:stretch!important}#lt-course-ui.lt-ui .lt-course-speed{display:grid!important;grid-template-columns:1fr;width:100%}#lt-course-ui.lt-ui .lt-course-speed .lt-segmented{width:100%}#lt-course-ui.lt-ui .lt-course-custom-label{margin:0}#lt-course-ui.lt-ui .lt-course-guard{width:100%}} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui #overviewProgressFill,#cxds-panel.lt-ui{transition:none!important}} `; var golden_wing_default = `/* Approved Golden Wing Light. Shared by the owned course iframe and panel. Opt-in selectors never theme the LearningTong host page. */ .lt-ui[data-theme="golden-wing"] { --lt-color-page:#f5f2eb; --lt-color-panel:#fffdf7; --lt-color-secondary:#f0ece2; --lt-color-hover:#eae4d6; --lt-color-pressed:#e0d8c6; --lt-color-selected:#f8f0d5; --lt-color-border:#ddd8ca; --lt-color-control-border:#9a937f; --lt-color-text:#24231f; --lt-color-text-secondary:#5e5a4f; --lt-color-text-muted:#7a745f; --lt-color-brand:#8b6615; --lt-color-brand-hover:#755311; --lt-color-brand-pressed:#61440d; --lt-color-brand-bright:#e8c23a; --lt-color-on-brand:#fffdf7; --lt-color-success:#1b7a4c; --lt-color-success-bg:#ecf6ef; --lt-color-warning:#96520f; --lt-color-warning-bg:#fff3e5; --lt-color-error:#b5331e; --lt-color-error-bg:#fff0ed; --lt-color-disabled-bg:#eceae3; --lt-color-disabled-text:#928d7e; --lt-color-launcher:#fffdf7; --lt-shadow-1:0 1px 2px rgb(36 35 31 / 5%); --lt-shadow-2:0 4px 12px rgb(36 35 31 / 9%); --lt-shadow-3:0 12px 32px rgb(36 35 31 / 12%); --lt-size-panel:340px; --lt-size-panel-min:280px; --lt-size-panel-max-height:760px; color-scheme:light; } .lt-ui[data-theme="golden-wing"] .lt-button--primary:not(:disabled) {color:var(--lt-color-on-brand)} .lt-ui[data-theme="golden-wing"] .lt-button--secondary {border-color:var(--lt-color-control-border)} .lt-ui[data-theme="golden-wing"] .lt-segment-indicator {background:var(--lt-color-selected);box-shadow:none} .lt-ui[data-theme="golden-wing"] .lt-segment[aria-checked="true"] {color:var(--lt-color-brand)} #cxds-logo.lt-ui[data-theme="golden-wing"] {top:auto;bottom:var(--lt-space-24);border-color:var(--lt-color-brand)} #cxds-panel.lt-ui[data-theme="golden-wing"] {color:var(--lt-color-text);max-height:min(760px,calc(100dvh - 104px))} #cxds-panel.lt-ui[data-theme="golden-wing"] .cxds-header {min-height:52px;padding:6px 6px 6px 14px;border-bottom:1px solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-brand-lockup {display:flex;align-items:center;gap:7px} #cxds-panel.lt-ui .lt-brand-lockup img {width:24px;height:24px;object-fit:contain} #cxds-panel.lt-ui .cxds-body {padding:14px 16px 16px} #cxds-panel.lt-ui .lt-ux-headline {display:flex;align-items:center;gap:7px;font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold);margin:0 0 6px;line-height:var(--lt-line-body)} #cxds-panel.lt-ui .lt-ux-headline::before {content:'';width:6px;height:6px;border-radius:50%;background:var(--lt-color-text-muted);flex-shrink:0} #cxds-panel.lt-ui .lt-ux-headline[data-state="running"]::before {background:var(--lt-color-brand-bright)} #cxds-panel.lt-ui .lt-ux-headline[data-state="done"]::before {background:var(--lt-color-success)} #cxds-panel.lt-ui .lt-ux-headline[data-state="error"] {color:var(--lt-color-error)} #cxds-panel.lt-ui .lt-ux-headline[data-state="warning"] {color:var(--lt-color-warning)} #cxds-panel.lt-ui .lt-ux-headline:is([data-state="error"],[data-state="warning"])::before {background:currentColor} #cxds-panel.lt-ui .lt-ux-next {font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);color:var(--lt-color-text-secondary);margin:6px 0 12px;padding-left:13px} #cxds-panel.lt-ui .lt-ux-course {display:none} #cxds-panel.lt-ui .lt-runtime-ai-row {display:flex;align-items:center;gap:10px;padding:8px 0} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-ai-toggle {width:auto;min-width:0;min-height:36px;flex:1;gap:10px} #cxds-panel.lt-ui .drip-ai-toggle[aria-checked="true"] .drip-ai-copy small {color:var(--lt-color-brand);background:var(--lt-color-selected)} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-current {margin:0;padding:0;background:transparent;font-size:var(--lt-font-caption);flex-shrink:0} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-current-head>span:first-child, #cxds-panel.lt-ui .lt-runtime-ai-row [data-current-title], #cxds-panel.lt-ui .lt-runtime-ai-row [data-current-description], #cxds-panel.lt-ui .lt-runtime-ai-row [data-action="show-recharge"] {display:none} #cxds-panel.lt-ui .drip-current[data-state="running"] [data-current-state] {color:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-current[data-state="paused"] [data-current-state] {color:var(--lt-color-warning)} #cxds-panel.lt-ui .drip-current [data-current-state] {color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-current[data-confirmed="true"] [data-current-state] {color:var(--lt-color-success)} #cxds-panel.lt-ui #drip-ai-help,#cxds-panel.lt-ui .lt-ux-ai-switch-note {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:0 0 6px} #cxds-panel.lt-ui #drip-ai-help strong {font-weight:var(--lt-weight-medium);color:var(--lt-color-text)} #cxds-panel.lt-ui .lt-runtime-account-row {justify-content:space-between} #cxds-panel.lt-ui .cxds-license-top {flex-direction:column;align-items:flex-start;gap:4px} #cxds-panel.lt-ui .lt-runtime-balance-row {display:flex;align-items:baseline;gap:6px} #cxds-panel.lt-ui .drip-balance-line {flex-direction:column;align-items:flex-start;gap:4px} #cxds-panel.lt-ui .cxds-license-top>span {display:none} #cxds-panel.lt-ui .lt-runtime-credit-label {color:var(--lt-color-text-secondary);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui [data-balance] {font-size:22px;line-height:26px} #cxds-panel.lt-ui .lt-ux-receipt {background:var(--lt-color-secondary);color:var(--lt-color-text-secondary);padding:8px 10px;border-radius:var(--lt-radius-selection);margin:8px 0} #cxds-panel.lt-ui .lt-billing-details>summary,#cxds-panel.lt-ui .drip-recharge>summary {min-height:28px;padding:0;justify-content:flex-start;font-size:var(--lt-font-caption);gap:4px} #cxds-panel.lt-ui .lt-billing-details .lt-icon,#cxds-panel.lt-ui .drip-recharge>summary .lt-icon {width:12px;height:12px} #cxds-panel.lt-ui .lt-billing-content,#cxds-panel.lt-ui .drip-recharge-content {padding-top:8px} #cxds-panel.lt-ui .lt-billing-content .lt-help-copy {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);margin:0 0 6px} #cxds-panel.lt-ui .lt-billing-content .lt-help-lead {color:var(--lt-color-text);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .lt-payment-essential {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:4px 0 0} #cxds-panel.lt-ui .lt-ux-collapse {margin:0;padding:8px 14px;border-top:1px solid var(--lt-color-border);font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);flex-shrink:0} #cxds-panel.lt-ui .lt-record-details {margin-top:10px;padding-top:10px} #cxds-panel.lt-ui .lt-record-details>summary {min-height:28px;padding:0;font-size:var(--lt-font-caption);justify-content:flex-start;gap:4px} #lt-course-ui.lt-ui {padding:0;overflow:hidden;width:min(820px,calc(100vw - 24px));max-width:820px;margin:20px auto} #lt-course-ui.lt-ui .lt-course-header {padding:12px 16px;border-bottom:1px solid var(--lt-color-border);margin-bottom:0!important} #lt-course-ui.lt-ui .lt-course-brand {display:flex;align-items:center;gap:8px;font-size:14px} #lt-course-ui.lt-ui .lt-course-brand img {width:28px;height:28px;object-fit:contain} #lt-course-ui.lt-ui .lt-course-brand small {font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);border-left:1px solid var(--lt-color-border);padding-left:8px;color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui #courseProgressSource {border:0;background:transparent;padding:0;color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #lt-course-ux {margin:0;border:0;border-radius:0;padding:16px;background:transparent} #lt-course-ui.lt-ui #lt-course-ux strong {font-size:15px;line-height:24px} #lt-course-ui.lt-ui #lt-course-ux p {font-size:var(--lt-font-caption);margin-top:8px;padding-left:10px;border-left:2px solid var(--lt-color-brand-bright)} #lt-course-ui.lt-ui .custom-card {margin:0!important;border-bottom:1px solid var(--lt-color-border)!important;padding:0 16px} #lt-course-ui.lt-ui .custom-card:last-child {border-bottom:0!important} #lt-course-ui.lt-ui .custom-card-header {padding:14px 0 8px} #lt-course-ui.lt-ui .custom-card-body {padding:8px 0 14px} #lt-course-ui.lt-ui #courseOverviewCard {background:transparent!important;border-radius:0!important} #lt-course-ui.lt-ui .lt-course-overview-body {padding:0 0 12px!important} #lt-course-ui.lt-ui #overviewScope {font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-overview-body>div:last-child {margin-top:8px!important} #lt-course-ui.lt-ui .lt-course-progress-track {background:var(--lt-color-secondary)!important} #lt-course-ui.lt-ui .lt-course-progress-lane {position:relative;--lt-course-progress:0%} #lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:30px} #lt-course-ui.lt-ui .lt-course-progress-bird {position:absolute;z-index:1;top:0;left:clamp(19px,var(--lt-course-progress),calc(100% - 19px));display:block;width:38px;height:27px;overflow:hidden;pointer-events:none;transform:translateX(-50%);transition:left var(--lt-duration-state) var(--lt-ease-standard)} #lt-course-ui.lt-ui .lt-course-progress-bird[hidden] {display:none} #lt-course-ui.lt-ui .lt-course-progress-bird img {display:block;width:38px;height:38px;max-width:none;filter:drop-shadow(0 1px 1px rgb(36 35 31 / 18%))} #lt-course-ui.lt-ui #overviewProgressFill {background:var(--lt-color-brand-bright)!important} #lt-course-ui.lt-ui[data-course-state="done"] #overviewProgressFill {background:var(--lt-color-success)!important} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui .lt-course-progress-bird{transition:none!important}} #lt-course-ui.lt-ui .speed-pill.active {color:var(--lt-color-brand)} #lt-course-ui.lt-ui .speed-input {border-color:var(--lt-color-control-border)} #lt-course-ui.lt-ui .lt-speed-legacy[hidden] {display:none!important} #lt-course-ui.lt-ui .lt-course-speed {flex:1;min-width:0;width:auto} #lt-course-ui.lt-ui .lt-speed-control {width:100%;max-width:340px;min-width:180px} #lt-course-ui.lt-ui .lt-speed-heading {display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .lt-speed-value {font-size:16px;font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums;color:var(--lt-color-text)} #lt-course-ui.lt-ui .lt-speed-track {position:relative;height:36px;border-radius:var(--lt-radius-round);background:var(--lt-color-secondary);border:1px solid var(--lt-color-border);overflow:visible;--lt-speed-fill:0%;--lt-speed-offset:13px;transition:border-color 180ms ease,box-shadow 180ms ease} #lt-course-ui.lt-ui .lt-speed-progress {position:absolute;z-index:0;inset:0 auto 0 0;width:calc(var(--lt-speed-fill) + var(--lt-speed-offset));max-width:100%;border-radius:var(--lt-radius-round);background:var(--lt-color-brand);overflow:hidden;pointer-events:none;transition:width 110ms cubic-bezier(.2,.8,.2,1)} #lt-course-ui.lt-ui .lt-speed-ticks {position:absolute;z-index:1;inset:0 14px;display:flex;align-items:center;justify-content:space-between;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-ticks i {width:4px;height:4px;background:var(--lt-color-control-border);border-radius:50%} #lt-course-ui.lt-ui .lt-speed-ticks i.is-filled {background:var(--lt-color-on-brand);opacity:.55} #lt-course-ui.lt-ui .lt-speed-knob {position:absolute;z-index:2;left:calc(var(--lt-speed-fill) + var(--lt-speed-offset));top:50%;width:26px;height:26px;background:var(--lt-color-panel);border:1px solid var(--lt-color-border);border-radius:50%;box-shadow:var(--lt-shadow-2);transform:translate(-50%,-50%) scale(1);pointer-events:none;transition:left 110ms cubic-bezier(.2,.8,.2,1),transform 160ms cubic-bezier(.2,.8,.2,1),box-shadow 160ms ease} #lt-course-ui.lt-ui .lt-speed-track.is-dragging .lt-speed-knob {transform:translate(-50%,-50%) scale(1.17);box-shadow:var(--lt-shadow-3)} #lt-course-ui.lt-ui .lt-speed-track.is-settling .lt-speed-knob {animation:lt-speed-settle 280ms cubic-bezier(.2,.8,.2,1)} @keyframes lt-speed-settle {0%{transform:translate(-50%,-50%) scale(1.13)}45%{transform:translate(-50%,-50%) scale(.94)}100%{transform:translate(-50%,-50%) scale(1)}} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-value {color:var(--lt-color-brand)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-track {border-color:var(--lt-color-brand);box-shadow:0 0 0 2px var(--lt-color-selected)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-progress {background:linear-gradient(105deg,var(--lt-color-brand-pressed),var(--lt-color-brand) 42%,var(--lt-color-brand-bright) 78%,var(--lt-color-brand))} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-progress::before {content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 68%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 29% 30%,var(--lt-color-on-brand) 0 1.5px,transparent 2.2px),radial-gradient(circle at 48% 73%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 69% 35%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 86% 66%,var(--lt-color-on-brand) 0 1.5px,transparent 2.2px);opacity:.75;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-knob {border-color:var(--lt-color-brand);box-shadow:var(--lt-shadow-2),0 0 0 3px var(--lt-color-selected)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-track.is-settling .lt-speed-progress::after {content:'';position:absolute;inset:0 auto 0 -28%;width:28%;background:linear-gradient(90deg,transparent,rgb(255 253 247 / 70%),transparent);animation:lt-speed-max-sheen 420ms ease-out both;pointer-events:none} @keyframes lt-speed-max-sheen {0%{transform:translateX(0);opacity:0}20%{opacity:.7}80%{opacity:.7}100%{transform:translateX(500%);opacity:0}} #lt-course-ui.lt-ui .lt-speed-track input {appearance:none;-webkit-appearance:none;position:relative;z-index:3;display:block;margin:0;width:100%;height:36px;background:transparent;border:0;cursor:pointer;touch-action:pan-y;border-radius:var(--lt-radius-round);padding:0} #lt-course-ui.lt-ui .lt-speed-track input::-webkit-slider-runnable-track {height:36px;background:transparent;border:0;border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui .lt-speed-track input::-webkit-slider-thumb {appearance:none;-webkit-appearance:none;width:26px;height:26px;margin-top:5px;background:transparent;border:0;border-radius:50%} #lt-course-ui.lt-ui .lt-speed-track input::-moz-range-track {height:36px;background:transparent;border:0} #lt-course-ui.lt-ui .lt-speed-track input::-moz-range-thumb {width:24px;height:24px;background:transparent;border:0;border-radius:50%} #lt-course-ui.lt-ui .lt-speed-track input:focus-visible {outline:2px solid var(--lt-color-brand);outline-offset:3px} #lt-course-ui.lt-ui .lt-speed-footer {display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:5px;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui #lt-speed-hint {text-align:center;font-size:11px} #lt-course-ui.lt-ui .lt-speed-warn {margin:8px 0 0;padding:6px 10px;border:1px solid var(--lt-color-warning);border-radius:var(--lt-radius-control);background:var(--lt-color-warning-bg);color:var(--lt-color-warning);font-size:var(--lt-font-caption);line-height:1.5;animation:lt-speed-warn-in 180ms ease-out} #lt-course-ui.lt-ui .lt-speed-warn[hidden] {display:none} @keyframes lt-speed-warn-in {from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui .lt-speed-track,#lt-course-ui.lt-ui .lt-speed-progress,#lt-course-ui.lt-ui .lt-speed-knob,#lt-course-ui.lt-ui .lt-speed-progress::after{transition:none!important;animation:none!important}} #lt-course-ui.lt-ui #updateRateButton {color:var(--lt-color-text)!important;background:var(--lt-color-panel)!important} #lt-course-ui.lt-ui .lt-course-guard {width:auto;min-width:172px} #lt-course-ui.lt-ui #backGround {gap:12px;min-height:36px;height:auto;font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .lt-course-records>summary {min-height:36px;font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .lt-course-records[open]>summary {background:transparent} #lt-course-ui.lt-ui #joblist:not(:has(*))::after {content:none} #lt-course-ui.lt-ui .lt-course-log-card {padding-top:4px} #lt-course-ui.lt-ui .lt-course-log-card #result {max-height:160px!important} #lt-course-ui.lt-ui .lt-course-log-card [data-log-header] {padding:0!important;border:0!important} #lt-course-ui.lt-ui .lt-course-log-card [data-log-body] {padding:4px 0 12px!important} #lt-course-ui.lt-ui #clearLogBtn {font:inherit;color:var(--lt-color-text-secondary)!important;padding:4px 8px!important} @media(max-width:480px){ #cxds-panel.lt-ui[data-theme="golden-wing"]{width:min(340px,calc(100vw - 48px));min-width:0} #cxds-panel.lt-ui .cxds-body{padding-inline:12px} #cxds-panel.lt-ui .lt-runtime-ai-row{gap:6px} #cxds-panel.lt-ui .drip-ai-copy{gap:4px} #lt-course-ui.lt-ui{width:calc(100vw - 16px);margin:8px auto} #lt-course-ui.lt-ui .lt-course-header{padding-inline:12px} #lt-course-ui.lt-ui .custom-card{padding-inline:12px} } `; var golden_wing_v3_default = '/* Production Golden Wing v3: scoped to owned UI, retaining all original hooks. */\n#cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] {border-radius:14px}\n#cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body {display:flex;flex-direction:column;gap:12px;padding:12px 14px}\n#cxds-panel.lt-ui .lt-v3-ai-card,#cxds-panel.lt-ui .cxds-license-box {\n padding:10px 12px;background:#fbf9f3;border:1px solid #e6dfce;border-radius:10px;margin:0;\n}\n#cxds-panel.lt-ui .lt-runtime-ai-row {padding:0;gap:6px}\n#cxds-panel.lt-ui .drip-ai-copy {flex-wrap:wrap;gap:4px}\n#cxds-panel.lt-ui .drip-ai-copy small {font-size:10px}\n#cxds-panel.lt-ui #drip-ai-help {font-size:11px;line-height:1.6;margin:4px 0 8px}\n#cxds-panel.lt-ui .lt-ux-headline {font-size:12px;line-height:1.6;margin:8px 0 0}\n#cxds-panel.lt-ui .lt-ux-next {font-size:12px;line-height:1.65;margin:6px 0 0;padding:8px 10px;border:1px solid #e2dbca;background:#fffdf7;border-radius:6px;overflow-wrap:anywhere}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current [data-current-state] {font-size:11px;padding:2px 6px;border-radius:999px;background:#ede8dc;max-width:100%}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-state="running"] [data-current-state] {background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-state="paused"] [data-current-state] {background:#fff0ed;color:#b5331e}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-confirmed="true"] [data-current-state] {background:#ecf6ef;color:#1b7a4c}\n#cxds-panel.lt-ui .lt-runtime-account-row {gap:6px;flex-wrap:wrap}\n#cxds-panel.lt-ui .lt-runtime-credit-label {font-size:11px}\n#cxds-panel.lt-ui [data-balance] {font-size:24px;color:#8b6615}\n#cxds-panel.lt-ui .lt-runtime-balance-row {gap:4px;flex-wrap:wrap}\n#cxds-panel.lt-ui .drip-license-status {font-size:11px}\n#cxds-panel.lt-ui [data-license-state][data-ux-state="ready"] {display:none}\n#cxds-panel.lt-ui .lt-v3-recharge {font-size:11px;min-height:32px;padding:4px 8px;white-space:nowrap}\n#cxds-panel.lt-ui [data-action="show-recharge"] {display:none}\n#cxds-panel.lt-ui .drip-recharge {border:0;margin-top:8px}\n#cxds-panel.lt-ui .drip-recharge:not([open]) {display:none}\n#cxds-panel.lt-ui .drip-recharge>summary {display:none}\n#cxds-panel.lt-ui .drip-recharge[open] .drip-recharge-content {padding-top:8px;border-top:1px dashed #ded7c6}\n#cxds-panel.lt-ui .lt-payment-essential {font-size:11px;margin-top:8px}\n#cxds-panel.lt-ui .lt-ux-receipt {display:flex;align-items:center;flex-wrap:wrap;gap:6px;justify-content:space-between;background:#fff5e8;border:1px solid #e8c23a;color:#8b6615;padding:8px;margin:10px 0 0}\n#cxds-panel.lt-ui .lt-ux-receipt strong {font-size:11px;font-weight:600}\n#cxds-panel.lt-ui .lt-v3-receipt-balance {background:#8b6615;color:#fffdf7;border-radius:4px;padding:1px 6px;font-size:10px;white-space:nowrap}\n#cxds-panel.lt-ui .lt-ux-receipt small {font-size:10px;line-height:1.5;width:100%;color:#7a745f}\n#cxds-panel.lt-ui .lt-billing-details {padding:8px 10px;background:#f7f4ec;border:1px solid #ded7c6;border-radius:8px}\n#cxds-panel.lt-ui .lt-record-details {padding-top:10px;margin-top:0;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui .lt-record-preview {font-size:11px;overflow-wrap:anywhere}\n#cxds-panel.lt-ui .lt-v3-footer {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#f5f0e3;font-size:11px}\n#cxds-panel.lt-ui .lt-v3-footer [data-action="courses"] {margin:0;width:auto;min-height:28px;flex-shrink:0;padding:3px 6px;font-size:11px;border:1px solid #d4ccb8;border-radius:6px}\n#cxds-panel.lt-ui .lt-v3-guide {padding:10px 12px;background:#fff8e8;border:1px solid #dcc88f;border-radius:10px;font-size:12px}\n#cxds-panel.lt-ui .lt-v3-guide strong {font-size:12px;color:#8b6615}\n#cxds-panel.lt-ui .lt-v3-guide ul {padding-left:16px;margin:6px 0 8px;font-size:11px;line-height:1.6}\n#cxds-panel.lt-ui .lt-v3-guide button {width:100%;min-height:30px;font-size:11px}\n#cxds-panel.lt-ui .lt-v3-clear-confirm {padding:8px;border:1px solid #dcc88f;border-radius:6px;background:#fff8e8;font-size:12px;display:flex;gap:6px;flex-wrap:wrap}\n#cxds-panel.lt-ui .lt-v3-clear-confirm span {width:100%}\n.lt-ui.lt-v3-launcher-hud {position:fixed;z-index:2147483647;box-sizing:border-box;margin:0;padding:10px 12px;border-radius:8px;background:#24231f;color:#fffdf7;box-shadow:0 6px 20px #0003;font:12px/1.6 var(--lt-font-family);pointer-events:none;overflow-wrap:anywhere}\n.lt-ui.lt-v3-launcher-hud strong {color:#e8c23a}\n.lt-ui.lt-v3-launcher-hud p {margin:4px 0 0}\n.lt-ui.lt-v3-launcher-hud[hidden] {display:none}\n#cxds-logo.lt-ui[data-runtime-state="running"] {border-color:#1b7a4c;box-shadow:0 0 0 4px #1b7a4c22}\n#cxds-logo.lt-ui[data-runtime-state="receipt"] {border-color:#96520f;box-shadow:0 0 0 4px #96520f22}\n#cxds-logo.lt-ui:is([data-runtime-state="warning"],[data-runtime-state="error"]) {border-color:#b5331e;box-shadow:0 0 0 4px #b5331e22}\n#cxds-logo.lt-ui[data-runtime-state="done"] {border-color:#1b7a4c}\n#lt-course-ui.lt-ui .lt-course-header {gap:12px;align-items:center}\n#lt-course-ui.lt-ui #lt-course-ux {width:auto;margin:0;padding:4px 10px;border:1px solid #d4ccb8;border-radius:999px;background:#f3f0e8}\n#lt-course-ui.lt-ui #lt-course-ux strong {font-size:12px;line-height:1.6}\n#lt-course-ui.lt-ui #lt-course-ux p {font-size:12px;margin:6px 0 0;border:0;padding:0}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="running"] {background:#fff8e6;border-color:#dcc88f;color:#8b6615}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="done"] {background:#ecf6ef;border-color:#7ecda6;color:#1b7a4c}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="error"] {background:#fff0ed;border-color:#e4b8ab;border-radius:8px}\n#lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:48px;margin-bottom:10px}\n#lt-course-ui.lt-ui .lt-course-progress-bird {width:44px;height:44px;overflow:visible;left:clamp(22px,var(--lt-course-progress),calc(100% - 22px));border:1px solid #8b6615;border-radius:50%;background:#fffdf7;display:flex;align-items:center;justify-content:center;box-sizing:border-box;box-shadow:0 2px 8px #8b661522}\n#lt-course-ui.lt-ui .lt-course-progress-bird img {width:36px;height:36px;object-fit:contain;filter:none}\n#lt-course-ui.lt-ui[data-course-state="done"] .lt-course-progress-bird {border-color:#1b7a4c}\n#lt-course-ui.lt-ui .lt-course-overview-body {margin:14px 0;padding:14px 16px!important;background:#f8f5ed;border:1px solid #e8e2d2;border-radius:10px}\n#lt-course-ui.lt-ui .lt-course-speed {flex:1}\n#lt-course-ui.lt-ui .lt-speed-control {max-width:none}\n#lt-course-ui.lt-ui .lt-course-control-row {padding:12px 14px;border:1px solid #e7e0ce;border-radius:10px;background:#fbf9f2}\n#lt-course-ui.lt-ui .lt-speed-track {height:32px;border:0;background:#e8e2d4}\n#lt-course-ui.lt-ui .lt-speed-progress::after {display:none}\n#lt-course-ui.lt-ui .lt-course-guard {min-width:148px;border-left:1px solid #e2dbca;padding-left:12px}\n#lt-course-ui.lt-ui #backGround {font-size:12px}\n#lt-course-ui.lt-ui .lt-v3-guard-help {font-size:11px;line-height:1.6;color:#7a745f;max-width:220px}\n#lt-course-ui.lt-ui .lt-v3-guard-help summary {cursor:pointer;text-align:right}\n#lt-course-ui.lt-ui #lt-course-guard-help {margin:8px 0 0;font-size:11px}\n#lt-course-ui.lt-ui .lt-v3-task-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}\n#lt-course-ui.lt-ui .lt-v3-task-card {padding:8px 10px;border:1px solid #e5ded0;background:#fbf9f2;border-radius:8px;display:flex;flex-direction:column;gap:4px;font-size:12px;overflow-wrap:anywhere}\n#lt-course-ui.lt-ui .lt-v3-task-card span {font-size:11px;color:#7a745f}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="running"] {border-color:#e8c23a;background:#fff9ea}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="done"] {border-color:#7ecda6;background:#ecf6ef}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="error"] {border-color:#e4b8ab;background:#fff0ed}\n@media(max-width:540px){\n #cxds-panel.lt-ui .lt-v3-ai-card,#cxds-panel.lt-ui .cxds-license-box{padding:10px}\n #cxds-panel.lt-ui .lt-runtime-account-row{gap:4px}\n #cxds-panel.lt-ui .lt-runtime-ai-row{flex-wrap:wrap}\n #cxds-panel.lt-ui .lt-v3-footer{flex-wrap:wrap}\n #lt-course-ui.lt-ui .lt-course-guard{width:100%;border-left:0;border-top:1px solid #e2dbca;padding:8px 0 0}\n #lt-course-ui.lt-ui .lt-v3-task-cards{grid-template-columns:1fr}\n #lt-course-ui.lt-ui .lt-v3-task-card{flex-direction:row;justify-content:space-between;gap:8px}\n}\n'; var golden_wing_v31_default = `/* Golden Wing v3.1: layout fixes and motion. Presentation only; every hook stays bound. */ :is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui { --lt-v31-ease-out:cubic-bezier(.16,1,.3,1); --lt-v31-ease-spring:cubic-bezier(.34,1.56,.64,1); --lt-v31-ease-std:cubic-bezier(.2,0,0,1); --lt-v31-gold:#8b6615; --lt-v31-gold-hi:#e8c23a; --lt-v31-ok:#1b7a4c; --lt-v31-ai:#7a5cc8; } /* ---------- course status pill ---------- */ #lt-course-ui.lt-ui #lt-course-ux {display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;overflow:hidden;transition:background-color .4s,border-color .4s,color .4s} #lt-course-ui.lt-ui #lt-course-ux p {width:100%} #lt-course-ui.lt-ui .lt-pill-dot {width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor;opacity:.75} #lt-course-ui.lt-ui .lt-pill-check {display:none;width:13px;height:13px;flex:0 0 13px} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-dot {display:none} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-check {display:block} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-check path {stroke-dasharray:20;stroke-dashoffset:20;animation:lt-v31-draw .5s .15s var(--lt-v31-ease-out) forwards} #lt-course-ui.lt-ui #lt-course-ux[data-state="running"] .lt-pill-dot {opacity:1;animation:lt-v31-ping 1.6s var(--lt-v31-ease-out) infinite} #lt-course-ui.lt-ui #lt-course-ux strong.is-swapping {animation:lt-v31-swap .42s var(--lt-v31-ease-out)} @keyframes lt-v31-swap {from{transform:translateY(9px);opacity:0;filter:blur(2px)}to{transform:none;opacity:1;filter:none}} @keyframes lt-v31-ping {0%{box-shadow:0 0 0 0 rgb(232 194 58/65%)}80%,100%{box-shadow:0 0 0 7px rgb(232 194 58/0%)}} @keyframes lt-v31-draw {to{stroke-dashoffset:0}} /* ---------- perched progress bird ---------- */ #lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:14px;margin-bottom:14px} #lt-course-ui.lt-ui #overviewProgressFill {transition:width 1.1s var(--lt-v31-ease-out),background .6s!important} #lt-course-ui.lt-ui .lt-course-progress-bird {top:0;width:32px;height:32px;left:clamp(16px,var(--lt-course-progress),calc(100% - 16px));transform:translateX(-50%);box-shadow:0 2px 6px rgb(36 35 31/18%);transition:left 1.1s var(--lt-v31-ease-out),border-color .5s;overflow:visible} #lt-course-ui.lt-ui .lt-course-progress-bird .lt-bird-mark {display:block;width:26px;height:26px;overflow:visible;pointer-events:none} #lt-course-ui.lt-ui .lt-course-progress-bird>img {display:none} #lt-course-ui.lt-ui .lt-course-progress-bird .lt-bird-wing-flap {transform-box:view-box;transform-origin:60% 53%} #lt-course-ui.lt-ui .lt-course-progress-lane.is-gliding .lt-bird-wing-flap {animation:lt-v31-flap .52s cubic-bezier(.42,0,.58,1) 2} @keyframes lt-v31-flap {0%,100%{transform:rotate(0) scaleX(1)}25%{transform:rotate(-20deg) scaleX(1.1)}75%{transform:rotate(14deg) scaleX(.94)}} #lt-course-ui.lt-ui .lt-course-progress-trail {position:absolute;z-index:0;top:8px;height:16px;width:90px;right:calc(100% - var(--lt-course-progress));background:radial-gradient(60px 8px at 100% 50%,rgb(232 194 58/55%),transparent 70%);opacity:0;pointer-events:none;transition:right 1.1s var(--lt-v31-ease-out),opacity .5s} #lt-course-ui.lt-ui .lt-course-progress-lane:not(.has-progress) .lt-course-progress-trail {display:none} #lt-course-ui.lt-ui .lt-course-progress-lane.is-gliding .lt-course-progress-trail {opacity:1;transition:right 1.1s var(--lt-v31-ease-out),opacity .2s} #lt-course-ui.lt-ui .lt-course-progress-track {position:relative} #lt-course-ui.lt-ui .lt-course-progress-track::after {content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgb(255 255 255/75%) 50%,transparent 70%);transform:translateX(-100%);pointer-events:none} #lt-course-ui.lt-ui .lt-course-progress-lane.is-celebrating .lt-course-progress-track::after {animation:lt-v31-sweep 1.1s .35s var(--lt-v31-ease-std)} #lt-course-ui.lt-ui .lt-course-progress-lane.is-celebrating .lt-course-progress-bird .lt-bird-mark {animation:lt-v31-land .7s var(--lt-v31-ease-spring)} @keyframes lt-v31-sweep {to{transform:translateX(100%)}} @keyframes lt-v31-land {0%{transform:translateY(-6px) scale(1.12)}100%{transform:none}} #lt-course-ui.lt-ui .lt-v31-spark {position:absolute;z-index:3;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#e8c23a;pointer-events:none} #lt-course-ui.lt-ui .lt-v31-feather {position:absolute;z-index:4;width:14px;height:22px;pointer-events:none} #lt-course-ui.lt-ui .lt-course-estimate[data-empty="true"] {display:none} /* ---------- section tasks ---------- */ #lt-course-ui.lt-ui .lt-v3-task-cards[hidden] {display:none} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card {animation:lt-v31-rise .45s var(--lt-v31-ease-out) both} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card:nth-child(2) {animation-delay:.07s} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card:nth-child(3) {animation-delay:.14s} @keyframes lt-v31-rise {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} #lt-course-ui.lt-ui .lt-v3-task-card {position:relative;overflow:hidden;transition:background-color .4s,border-color .4s} #lt-course-ui.lt-ui .lt-v3-task-card[data-state="running"]::before {content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgb(232 194 58/18%) 50%,transparent 65%);animation:lt-v31-sheen 2.2s linear infinite;pointer-events:none} @keyframes lt-v31-sheen {from{transform:translateX(-100%)}to{transform:translateX(100%)}} #lt-course-ui.lt-ui .lt-v31-task-bar {display:block;height:3px;margin-top:4px;border-radius:3px;background:#ece5d3;overflow:hidden} #lt-course-ui.lt-ui .lt-v31-task-bar[hidden] {display:none} #lt-course-ui.lt-ui .lt-v31-task-bar i {display:block;height:100%;width:var(--lt-task-progress,0%);background:#e8c23a;border-radius:3px;transition:width .8s var(--lt-v31-ease-out)} #lt-course-ui.lt-ui .lt-v3-task-card[data-state="done"] .lt-v31-task-bar i {background:#2e9a62} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"] {display:flex;align-items:center;gap:8px;margin:8px 0 12px;padding:8px 12px;border:1px dashed #d9d1bd;border-radius:9px;color:#5c5848;animation:lt-v31-fade .4s var(--lt-v31-ease-out)} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"][hidden] {display:none} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"]::before {content:"";width:16px;height:16px;flex:0 0 16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5C4 5 4 10.5 8 14.5C12 10.5 12 5 8 1.5Z' fill='none' stroke='%238b6615' stroke-width='1.3'/%3E%3Cpath d='M8 3.5V14' stroke='%238b6615'/%3E%3C/svg%3E") center/contain no-repeat} @keyframes lt-v31-fade {from{opacity:0}to{opacity:1}} /* ---------- course records ---------- */ #lt-course-ui.lt-ui [data-log-header] {display:flex!important;justify-content:flex-end;align-items:center;margin:0 0 4px;padding:0!important;border:0!important;background:none!important} #lt-course-ui.lt-ui #clearLogBtn {margin-left:auto;font-size:12px!important;min-height:0;min-width:0;padding:2px 12px!important;border:1px solid #d9d1bd!important;border-radius:999px!important;background:#fffdf7;line-height:1.6} #lt-course-ui.lt-ui #clearLogBtn:hover {border-color:#8b6615!important;color:#8b6615!important} #lt-course-ui.lt-ui #log>div {border-left:2px solid transparent;padding-left:6px;border-radius:3px;animation:lt-v31-row-in .45s var(--lt-v31-ease-out),lt-v31-row-flash 1.6s var(--lt-v31-ease-std)} @keyframes lt-v31-row-in {from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}} @keyframes lt-v31-row-flash {0%{border-left-color:#e8c23a;background:rgb(232 194 58/16%)}100%{border-left-color:transparent;background:transparent}} /* ---------- speed: drifting gold dust + value pop ---------- */ #lt-course-ui.lt-ui .lt-speed-dust {position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-dust i {position:absolute;left:0;width:3px;height:3px;border-radius:50%;background:#fff8d8;opacity:.75;animation:lt-v31-drift var(--lt-speed-drift,2.4s) linear infinite} @keyframes lt-v31-drift {from{transform:translateX(-12px)}to{transform:translateX(640px)}} #lt-course-ui.lt-ui .lt-speed-value.is-popping {display:inline-block;animation:lt-v31-pop .35s var(--lt-v31-ease-spring)} @keyframes lt-v31-pop {50%{transform:scale(1.35)}} /* ---------- launcher: progress ring, orbit, attention ---------- */ #cxds-logo.lt-ui .lt-launcher-ring {position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);transform:rotate(-90deg);pointer-events:none;overflow:visible} #cxds-logo.lt-ui .lt-launcher-ring circle {fill:none;stroke-width:3} #cxds-logo.lt-ui .lt-launcher-ring .lt-ring-bg {stroke:rgb(139 102 21/16%)} #cxds-logo.lt-ui .lt-launcher-ring .lt-ring-fg {stroke:#e8c23a;stroke-linecap:round;transition:stroke-dashoffset 1.1s var(--lt-v31-ease-out),stroke .5s} #cxds-logo.lt-ui:not([data-ring]) .lt-launcher-ring {display:none} #cxds-logo.lt-ui[data-motion="done"] .lt-ring-fg {stroke:#2e9a62} #cxds-logo.lt-ui[data-motion="ai"] .lt-ring-fg {stroke:#9a7ee0} #cxds-logo.lt-ui .lt-launcher-orbit {position:absolute;inset:-6px;border-radius:50%;opacity:0;pointer-events:none;transition:opacity .3s} #cxds-logo.lt-ui .lt-launcher-orbit::before {content:"";position:absolute;top:-2px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#e8c23a;box-shadow:0 0 8px 2px rgb(232 194 58/80%)} #cxds-logo.lt-ui:is([data-motion="run"],[data-motion="ai"]) .lt-launcher-orbit {opacity:1;animation:lt-v31-spin 2.4s linear infinite} #cxds-logo.lt-ui[data-motion="ai"] .lt-launcher-orbit::before {background:#b39cf0;box-shadow:0 0 8px 2px rgb(150 120 230/80%)} @keyframes lt-v31-spin {to{transform:rotate(360deg)}} #cxds-logo.lt-ui .lt-launcher-badge {position:absolute;right:-4px;bottom:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#96520f;color:#fff;font:700 10px/16px var(--lt-font-family);text-align:center;transform:scale(0);transition:transform .3s var(--lt-v31-ease-spring);pointer-events:none} #cxds-logo.lt-ui[data-attention="true"] .lt-launcher-badge {transform:scale(1)} #cxds-logo.lt-ui[data-ring]:is([data-runtime-state="running"],[data-runtime-state="done"]) {box-shadow:var(--lt-shadow-2)} /* ---------- panel unfurls from the launcher ---------- */ #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] {transform-origin:var(--lt-panel-origin,100% 100%);transition:transform .38s var(--lt-v31-ease-out),opacity .25s,visibility 0s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"].cxds-hidden {transform:scale(.35);transition:transform .22s var(--lt-v31-ease-std),opacity .18s,visibility 0s .22s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>* {transition:opacity .3s,transform .4s var(--lt-v31-ease-out)} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"].cxds-hidden .cxds-body>* {opacity:0;transform:translateY(-6px)} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(2) {transition-delay:.04s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(3) {transition-delay:.08s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(4) {transition-delay:.12s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(n+5) {transition-delay:.16s} /* ---------- panel: AI process + account ---------- */ #cxds-panel.lt-ui .lt-ux-ai-idle {margin:8px 0 0;padding:6px 10px;border-radius:8px;background:#fffdf7;border:1px solid #ece5d3;font-size:12px;line-height:1.6;color:#5c5848} #cxds-panel.lt-ui .lt-ux-ai-idle[hidden] {display:none} #cxds-panel.lt-ui .lt-ai-thinking {display:none;gap:3px;align-items:center;margin:8px 6px 0 0;vertical-align:middle} #cxds-panel.lt-ui .lt-v3-ai-card[data-ai="running"] .lt-ai-thinking {display:inline-flex} #cxds-panel.lt-ui .lt-ai-thinking i {width:5px;height:5px;border-radius:50%;background:#7a5cc8;animation:lt-v31-think 1s infinite} #cxds-panel.lt-ui .lt-ai-thinking i:nth-child(2) {animation-delay:.15s} #cxds-panel.lt-ui .lt-ai-thinking i:nth-child(3) {animation-delay:.3s} @keyframes lt-v31-think {0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}} #cxds-panel.lt-ui .lt-ai-steps {display:flex;gap:3px;margin-top:8px} #cxds-panel.lt-ui .lt-ai-steps[hidden] {display:none} #cxds-panel.lt-ui .lt-ai-steps i {flex:1;height:4px;border-radius:2px;background:#e9e2d0;transition:background-color .3s} #cxds-panel.lt-ui .lt-ai-steps i[data-step="current"] {background:#7a5cc8} #cxds-panel.lt-ui .lt-ai-steps i[data-step="done"] {background:#2e9a62} #cxds-panel.lt-ui .lt-runtime-balance-row {position:relative} #cxds-panel.lt-ui .lt-balance-delta {position:absolute;left:100%;top:-6px;margin-left:2px;font-size:12px;font-weight:700;color:#b5331e;white-space:nowrap;pointer-events:none;animation:lt-v31-float 1.6s var(--lt-v31-ease-out) forwards} #cxds-panel.lt-ui .lt-balance-delta.is-gain {color:#1b7a4c} @keyframes lt-v31-float {0%{opacity:0;transform:translateY(8px)}20%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-16px)}} #cxds-panel.lt-ui [data-balance] {font-variant-numeric:tabular-nums} #cxds-panel.lt-ui .lt-ux-receipt:not([hidden]) {animation:lt-v31-receipt .45s var(--lt-v31-ease-out)} #cxds-panel.lt-ui .lt-ux-receipt.is-new {animation:lt-v31-receipt .45s var(--lt-v31-ease-out)} @keyframes lt-v31-receipt {from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}} #cxds-panel.lt-ui [data-action="refresh-balance"].is-spinning .lt-icon {animation:lt-v31-spin .7s var(--lt-v31-ease-std)} /* ---------- concise billing / card copy ---------- */ #cxds-panel.lt-ui .lt-help-points {margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px} #cxds-panel.lt-ui .lt-help-points li {position:relative;padding-left:12px} #cxds-panel.lt-ui .lt-help-points li::before {content:"";position:absolute;left:2px;top:.65em;width:4px;height:4px;border-radius:50%;background:#c99a2e} #cxds-panel.lt-ui .lt-help-points strong {color:var(--lt-color-text);font-weight:600} /* The drawer already states the payment rule; avoid repeating it right below. */ #cxds-panel.lt-ui .drip-recharge[open] ~ .lt-payment-essential {display:none} @media(prefers-reduced-motion:reduce){ :is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *::before,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *::after {animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0s!important} #lt-course-ui.lt-ui .lt-v31-spark,#lt-course-ui.lt-ui .lt-v31-feather,#lt-course-ui.lt-ui .lt-speed-dust {display:none} } `; var golden_wing_v4_default = '/* Golden Wing v3.2 simple panel: status first, details on demand. */\n#cxds-panel.lt-ui.lt-v4 .cxds-body {gap:10px}\n\n/* Hidden by default; still present for logic, screen readers get the hero instead. */\n#cxds-panel.lt-ui.lt-v4 :is(#drip-ai-help,.lt-ux-headline,.lt-ux-next,.lt-ux-ai-idle,.drip-current,[data-current-task],.lt-runtime-credit-label,.lt-payment-essential,.lt-ux-feedback,.lt-ux-ai-switch-note,.lt-v3-footer-copy,[data-ai-label]) {display:none!important}\n#cxds-panel.lt-ui.lt-v4 :is(.lt-billing-details,.lt-record-details):not([open]) {display:none}\n\n/* Status hero */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero {display:flex;align-items:center;gap:12px;padding:2px 2px 0}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-icon {width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:grid;place-items:center;font-size:17px;font-weight:700;background:#fff4d4;color:#8b6615;transition:background-color .3s,color .3s}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="run"] .lt-v4-icon {background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="ai"] .lt-v4-icon {background:#f1ecff;color:#7a5cc8}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="ok"] .lt-v4-icon {background:#e8f4ec;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="warn"] .lt-v4-icon {background:#fff1de;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-copy {min-width:0;display:flex;flex-direction:column}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-title {font-weight:700;font-size:15px;line-height:1.4;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-desc {font-size:12px;line-height:1.5;color:#8a846f;overflow-wrap:anywhere}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-cta {width:100%;min-height:36px;font-size:13px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-cta[hidden] {display:none}\n\n/* When the hero already offers the main action, the course-home switch steps back. */\n#cxds-panel.lt-ui.lt-v4[data-lt-cta="true"] [data-action="home-entry"] {background:transparent!important;color:#8b6615!important;border:1px solid #d9d1bd!important;min-height:30px;font-weight:500}\n\n/* AI row: flat, one line */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-ai-card {padding:10px 12px}\n#cxds-panel.lt-ui.lt-v4 .lt-runtime-ai-row {display:flex;align-items:center}\n#cxds-panel.lt-ui.lt-v4 [data-action="ai-toggle"] {width:100%;justify-content:space-between}\n#cxds-panel.lt-ui.lt-v4 .drip-ai-copy {display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .drip-ai-copy strong {font-size:13px;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-ai-text {background:none!important;border:0!important;padding:0!important;border-radius:0!important;font-size:11.5px;color:#8a846f;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n#cxds-panel.lt-ui.lt-v4 .lt-ai-thinking {margin:6px 0 0}\n#cxds-panel.lt-ui.lt-v4 .lt-ai-steps {margin-top:8px}\n\n/* Points row */\n#cxds-panel.lt-ui.lt-v4 .cxds-license-box {padding:10px 12px}\n#cxds-panel.lt-ui.lt-v4 [data-balance] {font-size:22px}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge {min-height:30px;padding:3px 14px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-ux-receipt {margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:6px 6px 6px 10px;border-radius:8px;background:#f6f0e1;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop-link {min-height:28px;padding:0 10px;font-size:12px;color:#8b6615}\n\n/* Latest record + links */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last {display:flex;align-items:center;gap:8px;margin:0;padding:0 2px;font-size:12px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last::before {content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#e8c23a}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last[data-empty="true"] {color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last[data-empty="true"]::before {background:#d9d1bd}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links {display:flex;gap:16px;padding:0 2px}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-link {border:0;background:none;padding:0;font:inherit;font-size:12px;color:#8b6615;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-link:hover,#cxds-panel.lt-ui.lt-v4 .lt-v4-link[aria-expanded="true"] {text-decoration:underline}\n#cxds-panel.lt-ui.lt-v4 .lt-record-details[open] {padding-top:6px}\n\n/* Footer keeps only the course list button */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-footer {justify-content:flex-end}\n\n/* Timeline: no repeated body line */\n#cxds-panel.lt-ui .drip-timeline-entry p[hidden] {display:none}\n'; var golden_wing_invite_default = "/* \u9080\u8BF7\u540C\u5B66\uFF1A\u5165\u53E3\u3001\u9080\u8BF7\u5361\u3001\u586B\u7801\u63D0\u793A\u4E0E\u7B54\u5B8C\u4E00\u9875\u540E\u7684\u63D0\u793A\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-invite-entry {margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-entry[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-badge {font-size:10.5px;font-weight:700;line-height:17px;padding:0 6px;border-radius:999px;background:#fff4d4;color:#8b6615;border:1px solid #f0dc9c;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-card {padding:12px;background:#fbf9f3;border:1px solid #e6dfce;border-radius:10px;position:relative}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-card[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-head b {font-size:14px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perks {display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk {padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e6dfce;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk small {display:block;font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk strong {display:block;font-size:16px;line-height:1.3;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk span {display:block;font-size:11px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-ticket {display:flex;align-items:stretch;margin-top:10px;border:1.5px dashed #d6c28a;border-radius:10px;background:#fffaeb}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code {flex:1;padding:9px 12px;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code small {display:block;font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code code {font:700 20px/1.25 ui-monospace,Consolas,monospace;letter-spacing:4px;color:#24231f;background:none;padding:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code {border:0;border-left:1.5px dashed #d6c28a;border-radius:0 9px 9px 0;background:transparent;color:#8b6615;font:inherit;font-size:12px;font-weight:600;padding:0 14px;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code:hover {background:#fff3d1}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code.is-done {background:#ecf6ef;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-share {width:100%;min-height:36px;margin-top:10px;font-size:13px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-share.is-done,#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-copy.is-done {background:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats {display:flex;margin-top:12px;padding-top:10px;border-top:1px solid #e6dfce;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats div {flex:1}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats div+div {border-left:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats strong {display:block;font-size:15px;line-height:1.3;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats strong.is-gold {color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats small {font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-progress {display:flex;flex-direction:column;gap:6px;margin-top:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-progress:empty {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-row {display:grid;grid-template-columns:52px 1fr 40px;align-items:center;gap:8px;font-size:11.5px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-row em {font-style:normal;text-align:right;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bar {display:block;height:6px;border-radius:999px;background:#efe8d6;overflow:hidden}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bar b {display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#e8c23a,#a8812a);transition:width .3s}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint {margin:8px 0 0;font-size:11.5px;line-height:1.55;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint.is-error {color:#b5331e}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint:empty,#cxds-panel.lt-ui.lt-v4 .lt-invite-hint[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-toast {position:absolute;left:50%;bottom:-10px;transform:translate(-50%,8px);margin:0;background:#24231f;color:#fffdf7;font-size:12px;padding:6px 12px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-toast.is-on {opacity:1;transform:translate(-50%,0)}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bind {margin:10px 0 0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bind[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-receipt[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-kind[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-receipt {margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#ecf6ef;border:1px solid #bfe0cb;color:#1b7a4c;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-kind {margin-left:6px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 #cxds-card-code.lt-invite-input {font-family:ui-monospace,Consolas,monospace;letter-spacing:2px;font-weight:600;text-transform:uppercase}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge {position:relative;padding:10px 32px 10px 12px;border-radius:10px;background:#fff8e6;border:1px solid #ecd793;animation:lt-invite-rise .32s cubic-bezier(.16,1,.3,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge b {display:block;font-size:13px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge p {margin:2px 0 8px;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close {position:absolute;right:6px;top:6px;width:24px;height:24px;border:0;border-radius:6px;background:none;color:#8a846f;font-size:16px;line-height:1;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close:hover {background:#f3e7c4}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-actions {display:flex;align-items:center;gap:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-copy {min-height:30px;padding:0 12px;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-actions small {font-size:11px;color:#8a846f}\n@keyframes lt-invite-rise {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce){#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge{animation:none}#cxds-panel.lt-ui.lt-v4 .lt-invite-bar b,#cxds-panel.lt-ui.lt-v4 .lt-invite-toast{transition:none}}\n"; var golden_wing_pay_default = '/* \u9762\u677F\u5185\u626B\u7801\u4ED8\u6B3E\uFF1A\u5145\u503C\u62BD\u5C49\u3001\u79EF\u5206\u4E0D\u8DB3\u5361\u7247\u3001\u5C0F\u9E1F\u6C14\u6CE1\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-alt[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-short[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-short [hidden] {display:none}\n/* \u5F00\u4E86\u626B\u7801\u4ED8\u6B3E\uFF1A\u5E97\u94FA\u6761\u6536\u8FDB\u5E95\u90E8\u94FE\u63A5\uFF0C\u5361\u5BC6\u8F93\u5165\u6846\u70B9\u201C\u5DF2\u6709\u5361\u5BC6\u201D\u624D\u5C55\u5F00\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-on > .lt-v4-shop:not(.lt-invite-bind) {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-on:not(.lt-pay-redeem-open) > :is(.cxds-field,.cxds-license-actions,.drip-credit-help) {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay {margin:0 0 4px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-label {display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-label small {font-size:11px;font-weight:400;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-packages {display:grid;grid-template-columns:1fr 1fr;gap:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package {display:block;text-align:left;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid #e6dfce;font:inherit;color:#24231f;cursor:pointer;transition:border-color .14s,background-color .14s,box-shadow .14s}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package:hover {border-color:#b8995a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package[aria-checked="true"] {border-color:#8b6615;background:#fffaeb;box-shadow:inset 0 0 0 1px #8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package strong {display:block;font-size:15px;line-height:1.3}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package strong small {margin-left:2px;font-size:11px;font-weight:500;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package span {display:block;font-size:12px;font-weight:600;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-methods {display:flex;gap:6px;margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method {flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-radius:8px;border:1px solid #e6dfce;background:#fff;font:inherit;font-size:12px;color:#5c5848;cursor:pointer;transition:border-color .14s,color .14s}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method[aria-checked="true"] {border-color:#8b6615;color:#24231f;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method i,#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mark {width:16px;height:16px;border-radius:4px;display:grid;place-items:center;color:#fff;font-style:normal;font-size:10px;font-weight:700}\n#cxds-panel.lt-ui.lt-v4 .is-alipay {background:#1677ff}\n#cxds-panel.lt-ui.lt-v4 .is-wxpay {background:#07c160}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-go {width:100%;min-height:38px;margin-top:10px;font-size:13.5px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-fine {margin:7px 0 0;font-size:11px;color:#8a846f;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-alt {display:flex;justify-content:space-between;align-items:center;margin:2px 0 8px;padding-top:8px;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link {border:0;background:none;padding:2px 0;font:inherit;font-size:12px;color:#8b6615;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link:hover {text-decoration:underline}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-loading {padding:24px 0;text-align:center;font-size:12px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 :is(.lt-pay-pick,.lt-pay-qrbox,.lt-pay-done,.lt-pay-failed,.lt-pay-offer) {animation:lt-pay-rise .28s cubic-bezier(.16,1,.3,1)}\n\n/* \u4E8C\u7EF4\u7801 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrbox {display:flex;flex-direction:column;align-items:center;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead {display:flex;align-items:baseline;gap:6px;margin-bottom:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead strong {font-size:22px;letter-spacing:-.3px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead small {font-size:12px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr {position:relative;width:168px;height:168px;padding:8px;box-sizing:border-box;background:#fff;border:1px solid #e6dfce;border-radius:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr svg {display:block;width:100%;height:100%}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mark {position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:6px;font-size:14px;box-shadow:0 0 0 3px #fff}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mask {position:absolute;inset:0;border-radius:10px;background:rgb(255 255 255/93%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mask .lt-button {min-height:30px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-scan {margin-top:8px;font-size:12.5px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-scan b {margin:0 3px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-wait {display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;font-size:11.5px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-wait i,#cxds-panel.lt-ui.lt-v4 .lt-pay-resume i {width:6px;height:6px;border-radius:50%;background:#e8c23a;animation:lt-pay-pulse 1.2s ease-in-out infinite}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot {display:flex;justify-content:space-between;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot .lt-pay-link {color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot .lt-pay-link:hover {color:#8b6615}\n\n/* \u5230\u8D26 / \u5931\u8D25 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done {display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 0 2px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done-tick {width:44px;height:44px;border-radius:50%;background:#ecf6ef;color:#1b7a4c;display:grid;place-items:center;font-size:22px;font-weight:700;animation:lt-pay-pop .4s cubic-bezier(.34,1.56,.64,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done b {margin-top:8px;font-size:15px;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done small {font-size:11.5px;color:#8a846f;overflow-wrap:anywhere}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-resume {display:flex;align-items:center;gap:6px;margin-top:8px;padding:5px 10px;border-radius:999px;background:#f1ecff;color:#5b3fb0;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-resume i {background:#7a5cc8}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed {display:flex;flex-direction:column;gap:4px;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed b {font-size:14px;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed small {font-size:12px;line-height:1.6;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed-actions {display:flex;gap:6px;justify-content:center;margin-top:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed-actions .lt-button {min-height:30px;font-size:12px}\n\n/* \u79EF\u5206\u4E0D\u8DB3\u5361\u7247 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short {display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:#fffaf0;border:1px solid #f0dca8;animation:lt-pay-rise .32s cubic-bezier(.16,1,.3,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short.is-paid {background:#ecf6ef;border-color:#bfe0cb}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short.is-paid .lt-pay-short-head {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head {display:flex;align-items:flex-start;gap:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head > div {flex:1;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head b {display:block;font-size:14px;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head small {display:block;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-close {width:24px;height:24px;flex:0 0 24px;border:0;border-radius:6px;background:none;color:#8a846f;font-size:16px;line-height:1;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-close:hover {background:#f3e7c4}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-row {display:flex;align-items:center;gap:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt {flex:1;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt b {display:block;font-size:14px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt small {display:block;font-size:11.5px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-row .lt-button {min-width:96px;min-height:36px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-more {display:flex;justify-content:space-between;margin-top:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-more .lt-pay-link {font-size:11.5px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini {display:flex;gap:6px;margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button {flex:1;padding:5px 0;border-radius:8px;border:1px solid #e6dfce;background:#fff;font:inherit;font-size:11.5px;line-height:1.3;color:#5c5848;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button b {display:block;font-size:12.5px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button[aria-checked="true"] {border-color:#8b6615;background:#fffaeb;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-partial {width:100%;min-height:30px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback {display:flex;gap:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback:empty {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback .lt-button {flex:1;min-height:32px;font-size:12px}\n\n/* \u5C0F\u9E1F\u6C14\u6CE1\uFF08\u9762\u677F\u6536\u8D77\u65F6\uFF09 */\n.lt-ui.lt-pay-bubble {position:fixed;z-index:2147483647;max-width:240px;margin:0;padding:9px 12px;border:0;border-radius:12px 12px 4px 12px;white-space:nowrap;background:#24231f;color:#fffdf7;box-shadow:0 8px 20px rgb(0 0 0/18%);font:12px/1.5 var(--lt-font-family,system-ui);text-align:left;cursor:pointer;animation:lt-pay-rise .36s cubic-bezier(.16,1,.3,1)}\n.lt-ui.lt-pay-bubble[hidden] {display:none}\n.lt-ui.lt-pay-bubble b {display:block;font-size:12.5px;font-weight:600}\n.lt-ui.lt-pay-bubble span {display:block;margin-top:2px;color:#e8c23a}\n.lt-ui.lt-pay-bubble:hover span {text-decoration:underline}\n\n@keyframes lt-pay-rise {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@keyframes lt-pay-pulse {0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}\n@keyframes lt-pay-pop {from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce) {#cxds-panel.lt-ui.lt-v4 [class*="lt-pay"],.lt-ui.lt-pay-bubble,#cxds-panel.lt-ui.lt-v4 [class*="lt-pay"] * {animation:none!important;transition:none!important}}\n'; var golden_wing_close_default = '/* \u5C55\u5F00\u9879\u7EDF\u4E00\u6536\u8D77\u65B9\u5F0F\uFF1A\u91D1\u8272 \xD7\u3001\u5361\u7247\u6807\u9898\u884C\u3001\u5165\u53E3\u5C55\u5F00\u72B6\u6001\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-close {display:inline-grid;place-items:center;width:26px;height:26px;min-height:0;flex:0 0 26px;padding:0;border:1px solid transparent;border-radius:8px;background:none;color:#8b6615;cursor:pointer;transition:background .15s,border-color .15s}\n#cxds-panel.lt-ui.lt-v4 .lt-close .lt-icon {width:14px;height:14px;stroke-width:2.2}\n#cxds-panel.lt-ui.lt-v4 .lt-close:hover {background:#f3e7c4;border-color:#e6d3a0}\n#cxds-panel.lt-ui.lt-v4 .lt-close:focus-visible {outline:2px solid #c9a44a;outline-offset:1px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close {right:4px;top:4px}\n\n#cxds-panel.lt-ui.lt-v4 :is(.lt-billing-details,.lt-record-details)>summary {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-sheet-head {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px -4px 6px 0}\n#cxds-panel.lt-ui.lt-v4 .lt-sheet-head b {font-size:13px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-record-details .lt-sheet-head {margin-top:2px}\n#cxds-panel.lt-ui.lt-v4 .drip-recharge-content>.lt-sheet-head {margin-top:-2px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-head {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px -4px 0 0}\n\n/* \u5145\u503C\u5C55\u5F00\u540E\u662F\u63CF\u8FB9\u201C\u6536\u8D77 \u2303\u201D\uFF1B\u6587\u5B57\u94FE\u63A5\u5C55\u5F00\u65F6\u662F\u91D1\u8272\u5C0F\u80F6\u56CA\uFF0C\u7BAD\u5934\u671D\u4E0A */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge[aria-expanded="true"] {background:#fffdf7;color:#8b6615;border:1px solid #c9a44a;gap:3px}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge[aria-expanded="true"]:hover {background:#f8f0d5}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge .lt-icon {width:12px;height:12px;stroke-width:2.4;transform:rotate(180deg)}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link {padding:2px 8px;margin:0 -8px;border-radius:999px;text-decoration:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link:not(.lt-invite-entry)::after {content:"\u203A";display:inline-block;margin-left:3px;transition:transform .18s}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link[aria-expanded="true"] {background:#f3e7c4;text-decoration:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link[aria-expanded="true"]::after {transform:rotate(-90deg)}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link:hover {text-decoration:none;background:#f8f0d5}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-invite-entry {margin-left:auto;margin-right:-8px}\n\n/* \u9762\u677F\u6536\u8D77\u65F6\u5C0F\u9E1F\u65C1\u7684\u6C14\u6CE1\uFF1A\u53F3\u4E0A\u89D2\u5C0F \xD7\uFF0C\u53EA\u5173\u6C14\u6CE1 */\n.lt-ui.lt-pay-bubble {padding-right:30px}\n.lt-ui.lt-pay-bubble-close {position:fixed;z-index:2147483647;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:6px;background:none;color:#bdb6a3;cursor:pointer}\n.lt-ui.lt-pay-bubble-close:hover {background:rgb(255 255 255/12%);color:#fffdf7}\n.lt-ui.lt-pay-bubble-close svg {width:12px;height:12px}\n.lt-ui.lt-pay-bubble-close[hidden] {display:none}\n\n@media (prefers-reduced-motion:reduce) {#cxds-panel.lt-ui.lt-v4 .lt-v4-link::after,#cxds-panel.lt-ui.lt-v4 .lt-close {transition:none}}\n'; var golden_wing_rounds_default = "/* AI\u5B9E\u8DF5\u5F00\u804A\u524D\u9009\u8F6E\u6570\u7684\u5F39\u7A97\uFF08\u5C45\u4E2D\u5361\u7247\uFF09\u4E0E\u8D26\u6237\u533A\u7684\u5B66\u4E60\u901A UID\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n.lt-ui.lt-rounds {position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;padding:16px;background:rgb(36 35 31/32%);backdrop-filter:blur(2px);font:13px/1.5 var(--lt-font-family,system-ui);color:var(--lt-color-text);animation:lt-rounds-fade .18s ease-out}\n.lt-ui.lt-rounds[hidden] {display:none}\n.lt-ui .lt-rounds-card {width:min(340px,100%);padding:20px 20px 16px;border-radius:16px;background:var(--lt-color-panel);border:1px solid var(--lt-color-border);box-shadow:0 18px 48px rgb(36 35 31/22%);animation:lt-rounds-rise .26s cubic-bezier(.16,1,.3,1)}\n.lt-ui .lt-rounds-eyebrow {margin:0;font-size:11.5px;font-weight:600;color:var(--lt-color-brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.lt-ui .lt-rounds-title {margin:4px 0 0;font-size:18px;line-height:1.35;font-weight:700;color:var(--lt-color-text)}\n.lt-ui .lt-rounds-desc {margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--lt-color-text-secondary)}\n.lt-ui .lt-rounds-stepper {display:flex;align-items:center;justify-content:center;gap:18px;margin:16px 0 0}\n.lt-ui .lt-rounds-step {display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--lt-color-border);border-radius:999px;background:var(--lt-color-secondary);color:var(--lt-color-text);font:500 20px/1 var(--lt-font-family,system-ui);cursor:pointer;transition:background .15s,border-color .15s}\n.lt-ui .lt-rounds-step:hover:not(:disabled) {background:var(--lt-color-hover);border-color:var(--lt-color-control-border)}\n.lt-ui .lt-rounds-step:disabled {opacity:.4;cursor:default}\n.lt-ui .lt-rounds-value {display:flex;align-items:baseline;justify-content:center;gap:4px;min-width:84px}\n.lt-ui .lt-rounds-value b {font-size:40px;line-height:1;font-weight:700;color:var(--lt-color-text);font-variant-numeric:tabular-nums}\n.lt-ui .lt-rounds-value span {font-size:13px;color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-quick {display:flex;justify-content:center;gap:6px;margin:14px 0 0}\n.lt-ui .lt-rounds-chip {min-width:52px;height:28px;padding:0 10px;border:1px solid var(--lt-color-border);border-radius:999px;background:var(--lt-color-panel);color:var(--lt-color-text-secondary);font:600 12px/1 var(--lt-font-family,system-ui);cursor:pointer;transition:background .15s,border-color .15s,color .15s}\n.lt-ui .lt-rounds-chip:hover:not(:disabled) {border-color:var(--lt-color-control-border);color:var(--lt-color-text)}\n.lt-ui .lt-rounds-chip.is-on {background:var(--lt-color-selected);border-color:#e3c86d;color:var(--lt-color-brand)}\n.lt-ui .lt-rounds-chip:disabled {opacity:.35;cursor:default}\n.lt-ui .lt-rounds-summary {display:flex;justify-content:space-between;align-items:center;margin:16px 0 0;padding:9px 12px;border-radius:10px;background:#fbf9f3;border:1px solid #e6dfce;font-size:12.5px}\n.lt-ui .lt-rounds-summary span:first-child {font-weight:700;color:var(--lt-color-brand)}\n.lt-ui .lt-rounds-balance {color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-summary.is-short {background:var(--lt-color-warning-bg);border-color:#f0cfa6}\n.lt-ui .lt-rounds-summary.is-short .lt-rounds-balance {color:var(--lt-color-warning);font-weight:600}\n.lt-ui .lt-rounds-note {margin:8px 0 0;font-size:11.5px;line-height:1.55;color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-summary.is-short + .lt-rounds-note {color:var(--lt-color-warning)}\n.lt-ui .lt-rounds-note[hidden] {display:none}\n.lt-ui .lt-rounds-actions {display:flex;gap:8px;margin:16px 0 0}\n.lt-ui .lt-rounds-cancel {flex:0 0 auto;min-height:38px;padding:0 14px}\n.lt-ui .lt-rounds-start {flex:1;min-height:38px;font-size:13.5px;font-weight:600}\n@keyframes lt-rounds-fade {from{opacity:0}to{opacity:1}}\n@keyframes lt-rounds-rise {from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce) {.lt-ui.lt-rounds,.lt-ui .lt-rounds-card {animation:none}.lt-ui .lt-rounds-step,.lt-ui .lt-rounds-chip {transition:none}}\n\n/* \u8D26\u6237\u533A\u9876\u90E8\u7684\u5B66\u4E60\u901A UID\uFF1A\u79EF\u5206\u6309\u5B66\u4E60\u901A\u53F7\u5206\u5F00\u3002 */\n#cxds-panel.lt-ui .lt-uid-line {display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:11.5px;line-height:1.4;color:var(--lt-color-text-muted)}\n#cxds-panel.lt-ui .lt-uid-line b {font-weight:600;color:var(--lt-color-text);font-variant-numeric:tabular-nums;letter-spacing:.2px}\n#cxds-panel.lt-ui .lt-uid-line.is-missing b {font-weight:500;color:var(--lt-color-warning)}\n"; function installUiStyles(doc) { if (doc.getElementById("lt-ui-foundation-style")) return; const style = doc.createElement("style"); style.id = "lt-ui-foundation-style"; style.textContent = `${tokens_default} ${components_default} ${runtime_default} ${golden_wing_default} ${golden_wing_v3_default} ${golden_wing_v31_default} ${golden_wing_v4_default} ${golden_wing_invite_default} ${golden_wing_pay_default} ${golden_wing_close_default} ${golden_wing_rounds_default}`; (doc.head || doc.documentElement).append(style); } var iconSvg = Object.freeze({ "x": '\n \n \n', "list": '\n \n \n \n \n \n \n', "refresh-cw": '\n \n \n \n \n', "chevron-down": '\n \n', "circle-check": '\n \n \n' }); function mountSpeedSlider(doc, root) { const model = root.querySelector("#dripRate"); const save = root.querySelector("#updateRateButton"); const presets = root.querySelector(".speed-pill").parentElement; const section = presets.parentElement; section.classList.add("lt-course-speed"); section.parentElement.classList.add("lt-course-control-row"); for (const legacy of [model.parentElement, presets, section.firstElementChild]) { legacy.classList.add("lt-speed-legacy"); legacy.hidden = true; } const wrap = doc.createElement("div"); wrap.className = "lt-speed-control"; const heading = doc.createElement("div"); heading.className = "lt-speed-heading"; const label = doc.createElement("label"); label.htmlFor = "lt-video-speed"; label.textContent = "\u89C6\u9891\u500D\u901F"; const value = doc.createElement("output"); value.setAttribute("for", "lt-video-speed"); value.className = "lt-speed-value"; heading.append(label, value); const track = doc.createElement("div"); track.className = "lt-speed-track"; const progress = doc.createElement("span"); progress.className = "lt-speed-progress"; progress.setAttribute("aria-hidden", "true"); const ticks = doc.createElement("div"); ticks.className = "lt-speed-ticks"; ticks.setAttribute("aria-hidden", "true"); for (let i = 0; i < 5; i++) ticks.append(doc.createElement("i")); const knob = doc.createElement("span"); knob.className = "lt-speed-knob"; knob.setAttribute("aria-hidden", "true"); const slider = doc.createElement("input"); slider.id = "lt-video-speed"; slider.type = "range"; slider.min = "1"; slider.max = "5"; slider.step = "0.25"; slider.setAttribute("aria-describedby", "lt-speed-hint"); const dust = doc.createElement("span"); dust.className = "lt-speed-dust"; dust.setAttribute("aria-hidden", "true"); for (let i = 0; i < 9; i++) { const grain = doc.createElement("i"); grain.style.top = `${18 + i * 37 % 64}%`; grain.style.animationDelay = `${-(i * 0.83 % 3).toFixed(2)}s`; dust.append(grain); } progress.append(dust); track.append(progress, ticks, knob, slider); const footer = doc.createElement("div"); footer.className = "lt-speed-footer"; const min = doc.createElement("span"); min.textContent = "1\xD7"; const hint = doc.createElement("span"); hint.id = "lt-speed-hint"; const max = doc.createElement("span"); max.textContent = "5\xD7"; footer.append(min, hint, max); const warn = doc.createElement("p"); warn.className = "lt-speed-warn"; warn.setAttribute("role", "status"); warn.hidden = true; warn.textContent = "\u8D85\u8FC7 1 \u500D\u901F\u53EF\u80FD\u4F1A\u6E05\u7A7A\u8BFE\u7A0B\u8FDB\u5EA6\uFF0C\u5EFA\u8BAE\u4FDD\u6301 1 \u500D\u901F\u5E76\u5F00\u542F\u540E\u53F0\u6302\u673A\u3002"; wrap.append(heading, track, footer, warn); section.append(wrap); let previewing = false; const settle = () => { track.classList.remove("is-dragging", "is-settling"); void knob.offsetWidth; track.classList.add("is-settling"); value.classList.remove("is-popping"); void value.offsetWidth; value.classList.add("is-popping"); }; const paint = (rate2, preview = false) => { const position = Math.max(1, Math.min(5, rate2)); const fraction = (position - 1) / 4; wrap.classList.toggle("is-max", rate2 === 5); track.style.setProperty("--lt-speed-drift", `${(3.4 - position * 0.5).toFixed(2)}s`); slider.value = String(position); track.style.setProperty("--lt-speed-fill", `${fraction * 100}%`); track.style.setProperty("--lt-speed-offset", `${13 - 26 * fraction}px`); [...ticks.children].forEach((tick, i) => tick.classList.toggle("is-filled", i + 1 <= position)); value.textContent = `${rate2}\xD7`; slider.setAttribute("aria-valuetext", rate2 > 5 || rate2 < 1 ? `\u5DF2\u4FDD\u5B58 ${rate2} \u500D\u901F\uFF1B\u6ED1\u52A8\u8303\u56F4 1 \u5230 5 \u500D\u901F` : `${rate2} \u500D\u901F`); warn.hidden = !(rate2 > 1); hint.textContent = preview ? "\u677E\u5F00\u4FDD\u5B58" : rate2 > 5 || rate2 < 1 ? "\u539F\u8BBE\u7F6E\u4FDD\u7559\uFF1B\u62D6\u52A8\u540E\u6539\u4E3A 1\u20135\xD7" : "\u677E\u5F00\u5373\u4FDD\u5B58"; }; const sync = () => { if (previewing) return; const rate2 = model.value.trim() === "" ? NaN : Number(model.value); paint(Number.isFinite(rate2) ? rate2 : 1); }; slider.addEventListener("pointerdown", () => { track.classList.remove("is-settling"); track.classList.add("is-dragging"); }); slider.addEventListener("pointerup", () => track.classList.remove("is-dragging")); slider.addEventListener("input", () => { previewing = true; paint(Number(slider.value), true); }); slider.addEventListener("change", () => { model.value = slider.value; previewing = false; save.click(); sync(); settle(); }); slider.addEventListener("pointercancel", () => { track.classList.remove("is-dragging"); previewing = false; sync(); }); doc.addEventListener("drip-speed-sync", sync); sync(); } var SVG_NS = "http://www.w3.org/2000/svg"; var serial = 0; var wingOutline = "M35 18 C54 43 94 63 120 82 C136 97 130 121 150 133 L165 135 C149 147 132 151 111 150 L73 148 L53 139 L40 126 L29 112 L32 97 C24 87 21 70 23 49 L33 58 C30 42 30 29 35 18 Z"; function svgNode(tag, attributes = {}) { const node = document.createElementNS(SVG_NS, tag); for (const [name, value] of Object.entries(attributes)) node.setAttribute(name, value); return node; } function birdMark(logoUrl) { const prefix = `lt-bird-${++serial}`; const svg = svgNode("svg", { viewBox: "0 0 256 256", class: "lt-launcher-mark lt-bird-mark", "aria-hidden": "true", focusable: "false" }); const defs = svgNode("defs"); const wingClip = svgNode("clipPath", { id: `${prefix}-wing`, clipPathUnits: "userSpaceOnUse" }); wingClip.append(svgNode("path", { d: wingOutline })); const bodyClip = svgNode("clipPath", { id: `${prefix}-body`, clipPathUnits: "userSpaceOnUse" }); bodyClip.append(svgNode("path", { d: `M0 0H256V256H0Z ${wingOutline}`, "clip-rule": "evenodd" })); defs.append(wingClip, bodyClip); const image = () => svgNode("image", { href: logoUrl, width: "256", height: "256" }); const wing = svgNode("g", { class: "lt-bird-wing" }); const flap = svgNode("g", { class: "lt-bird-wing-flap" }); const clippedWing = svgNode("g", { "clip-path": `url(#${prefix}-wing)` }); clippedWing.append(image()); flap.append(clippedWing); wing.append(flap); const body = svgNode("g", { "clip-path": `url(#${prefix}-body)` }); body.append(image()); const facing = svgNode("g", { class: "lt-bird-facing" }); facing.append(wing, body); svg.append(defs, facing); return svg; } var SVG_NS2 = "http://www.w3.org/2000/svg"; var prefersReducedMotion = (win) => { var _a; return Boolean((_a = win.matchMedia) == null ? void 0 : _a.call(win, "(prefers-reduced-motion: reduce)").matches); }; function replayClass(el, className, ms) { if (!el) return; const win = el.ownerDocument.defaultView; el.classList.remove(className); void el.offsetWidth; el.classList.add(className); win.clearTimeout(el[`__lt_${className}`]); el[`__lt_${className}`] = win.setTimeout(() => el.classList.remove(className), ms); } function celebrateCourse(doc) { const win = doc.defaultView; const lane = doc.querySelector(".lt-course-progress-lane.has-progress"); const bird = lane == null ? void 0 : lane.querySelector(".lt-course-progress-bird"); if (!lane || !bird) return; replayClass(lane, "is-celebrating", 1600); if (prefersReducedMotion(win) || !bird.animate) return; const laneRect = lane.getBoundingClientRect(), birdRect = bird.getBoundingClientRect(); const cx = birdRect.left - laneRect.left + birdRect.width / 2, cy = birdRect.top - laneRect.top + birdRect.height / 2; for (let i = 0; i < 12; i++) { const spark = doc.createElement("i"); spark.className = "lt-v31-spark"; spark.style.left = `${cx}px`; spark.style.top = `${cy}px`; if (i % 3 === 0) spark.style.background = "#2e9a62"; lane.append(spark); const angle = i / 12 * Math.PI * 2 + Math.random() * 0.4, distance = 26 + Math.random() * 22; spark.animate([ { transform: "translate(0,0) scale(1)", opacity: 1 }, { transform: `translate(${Math.cos(angle) * distance}px,${Math.sin(angle) * distance}px) scale(.2)`, opacity: 0 } ], { duration: 750 + Math.random() * 300, easing: "cubic-bezier(.16,1,.3,1)" }).onfinish = () => spark.remove(); } const card = lane.closest(".custom-card") || lane.parentElement; if (win.getComputedStyle(card).position === "static") card.style.position = "relative"; const cardRect = card.getBoundingClientRect(); const feather = doc.createElementNS(SVG_NS2, "svg"); feather.setAttribute("viewBox", "0 0 14 22"); feather.setAttribute("aria-hidden", "true"); feather.classList.add("lt-v31-feather"); const vane = doc.createElementNS(SVG_NS2, "path"); vane.setAttribute("d", "M7 1C2 6 2 14 7 21C12 14 12 6 7 1Z"); vane.setAttribute("fill", "#e8c23a"); vane.setAttribute("opacity", ".85"); const shaft = doc.createElementNS(SVG_NS2, "path"); shaft.setAttribute("d", "M7 3V20"); shaft.setAttribute("stroke", "#8b6615"); shaft.setAttribute("stroke-width", ".8"); feather.append(vane, shaft); feather.style.left = `${Math.max(0, birdRect.left - cardRect.left - 10)}px`; feather.style.top = `${Math.max(0, birdRect.top - cardRect.top - 6)}px`; card.append(feather); const width = cardRect.width; feather.animate([ { transform: "translate(0,0) rotate(-20deg)", opacity: 0 }, { transform: `translate(${-width * 0.15}px,40px) rotate(25deg)`, opacity: 1, offset: 0.3 }, { transform: `translate(${-width * 0.05}px,90px) rotate(-15deg)`, opacity: 0.9, offset: 0.65 }, { transform: `translate(${-width * 0.22}px,140px) rotate(18deg)`, opacity: 0 } ], { duration: 3200, easing: "ease-in-out" }).onfinish = () => feather.remove(); } function mountCourseUi(doc) { const root = doc.querySelector(".main-container"); if (!root || root.dataset.ltCourseMounted) return; root.dataset.ltCourseMounted = "true"; root.id = "lt-course-ui"; root.classList.add("lt-ui"); doc.body.classList.add("lt-ui", "lt-course-document"); root.dataset.theme = doc.body.dataset.theme = "golden-wing"; for (const el of root.querySelectorAll("[style]")) { if (el.closest("#log")) continue; for (const property of ["color", "background", "background-color", "border", "border-color", "border-radius", "box-shadow", "font-family", "font-weight"]) el.style.removeProperty(property); } root.firstElementChild.classList.add("lt-course-header"); const brand = doc.createElement("div"); brand.className = "lt-course-brand"; const mark = doc.createElement("img"); mark.src = "data:image/png;base64,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"; mark.alt = ""; const word = doc.createElement("strong"); word.textContent = "\u5927\u9E1F\u5B66\u4E60\u4E2D\u5FC3"; const context = doc.createElement("small"); context.textContent = "\u8BFE\u7A0B\u5B66\u4E60"; context.hidden = true; brand.append(mark, word, context); root.firstElementChild.firstElementChild.replaceChildren(brand); installUiStyles(doc); mountSpeedSlider(doc, root); const guard = root.querySelector("#backGround"); guard.parentElement.classList.add("lt-course-guard"); guard.classList.add("lt-toggle"); guard.setAttribute("role", "switch"); guard.setAttribute("aria-label", "\u540E\u53F0\u6302\u673A"); const syncGuard = () => { guard.setAttribute("aria-checked", String(guard.classList.contains("btn-success"))); if (!guard.querySelector(".lt-toggle-track")) { const track = doc.createElement("span"); track.className = "lt-toggle-track"; track.setAttribute("aria-hidden", "true"); guard.append(track); } }; new MutationObserver(syncGuard).observe(guard, { attributes: true, childList: true, attributeFilter: ["class"] }); syncGuard(); for (const control of [guard, root.querySelector("#updateRateButton"), root.querySelector("#clearLogBtn")]) { control.setAttribute("role", "button"); control.tabIndex = 0; control.addEventListener("keydown", (event) => { if (event.key === "Enter" || event.key === " ") { event.preventDefault(); control.click(); } }); } guard.setAttribute("role", "switch"); const progressFill = root.querySelector("#overviewProgressFill"); const progressTrack = progressFill.parentElement; progressTrack.classList.add("lt-course-progress-track"); const progressLane = doc.createElement("div"); progressLane.className = "lt-course-progress-lane"; progressTrack.before(progressLane); progressLane.append(progressTrack); const progressBird = doc.createElement("span"); progressBird.className = "lt-course-progress-bird"; progressBird.hidden = true; progressBird.setAttribute("aria-hidden", "true"); progressBird.append(mark.cloneNode(false), birdMark(mark.src)); const progressTrail = doc.createElement("span"); progressTrail.className = "lt-course-progress-trail"; progressTrail.setAttribute("aria-hidden", "true"); progressLane.append(progressTrail, progressBird); let shownPercent = null; const syncProgressBird = () => { const raw = progressFill.getAttribute("data-lt-progress"); const percent = raw === null ? NaN : Number(raw); const known = Number.isInteger(percent) && percent >= 0 && percent <= 100; progressLane.classList.toggle("has-progress", known); progressBird.hidden = !known; if (!known) return; if (shownPercent !== null && percent > shownPercent && !prefersReducedMotion(doc.defaultView)) replayClass(progressLane, "is-gliding", 1100); shownPercent = percent; progressLane.style.setProperty("--lt-course-progress", `${percent}%`); }; const progressObserver = new MutationObserver(syncProgressBird); progressObserver.observe(progressFill, { attributes: true, attributeFilter: ["data-lt-progress"] }); doc.defaultView.addEventListener("pagehide", () => progressObserver.disconnect(), { once: true }); syncProgressBird(); const overview = root.querySelector("#courseOverviewCard"); overview.firstElementChild.classList.add("lt-course-overview-body"); overview.querySelector("details").classList.add("lt-course-estimate"); const estimate = overview.querySelector("summary"); estimate.classList.add("lt-button", "lt-button--ghost"); const tasks = root.querySelector("#joblist").closest(".custom-card"); tasks.classList.add("lt-course-tasks"); const taskIcon = doc.createElement("template"); taskIcon.innerHTML = iconSvg.list; taskIcon.content.firstElementChild.classList.add("lt-icon"); taskIcon.content.firstElementChild.setAttribute("aria-hidden", "true"); tasks.querySelector(".custom-card-header>span").prepend(taskIcon.content); const log = root.querySelector("#log"), card = log.closest(".custom-card"); card.classList.add("lt-course-log-card"); const details = doc.createElement("details"); details.className = "lt-course-records lt-disclosure"; const summary = doc.createElement("summary"); summary.className = "lt-button lt-button--ghost"; summary.textContent = "\u8BFE\u7A0B\u8BB0\u5F55\uFF08\u542B AI \u540C\u6B65\u6D88\u606F\uFF09"; const icon = doc.createElement("template"); icon.innerHTML = iconSvg["chevron-down"]; icon.content.firstElementChild.classList.add("lt-icon"); summary.append(icon.content); const header = card.firstElementChild; header.firstElementChild.hidden = true; header.dataset.logHeader = ""; header.nextElementSibling.dataset.logBody = ""; details.append(summary, ...card.children); card.append(details); details.open = true; const clear = root.querySelector("#clearLogBtn"); clear.classList.add("lt-button", "lt-button--ghost"); clear.textContent = "\u6E05\u7A7A"; } function mountCourseUx(doc, read) { var _a, _b; if (doc.getElementById("lt-course-ux")) return; mountCourseUi(doc); const style = doc.createElement("style"); style.textContent = tokens_default + ` #lt-course-ux,#lt-course-empty,#lt-course-guard-help{margin:12px 0;line-height:var(--lt-line-body);overflow-wrap:anywhere} #lt-course-ux{padding:12px 16px;background:var(--lt-color-panel);border:1px solid var(--lt-color-border);border-radius:var(--lt-radius-control)} #lt-course-ux strong{font-weight:var(--lt-weight-semibold)} #lt-course-ux p{margin:4px 0 0;color:var(--lt-color-text-secondary)} #lt-course-ux[data-state=error] strong{color:var(--lt-color-error)} #lt-course-empty,#lt-course-guard-help{font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #lt-course-empty{padding:0 20px 16px;margin:0} #lt-course-guard-help{margin:12px 0 0} #lt-course-ux[hidden],#lt-course-empty[hidden]{display:none} `; doc.head.append(style); const overview = doc.getElementById("courseOverviewCard"); if (!overview) return; const box = doc.createElement("section"); box.id = "lt-course-ux"; box.className = "lt-ui"; box.setAttribute("aria-live", "polite"); const title = doc.createElement("strong"), next = doc.createElement("p"); const dot = doc.createElement("span"); dot.className = "lt-pill-dot"; dot.setAttribute("aria-hidden", "true"); const check = doc.createElementNS("http://www.w3.org/2000/svg", "svg"); check.setAttribute("viewBox", "0 0 14 14"); check.setAttribute("class", "lt-pill-check"); check.setAttribute("aria-hidden", "true"); const tick = doc.createElementNS("http://www.w3.org/2000/svg", "path"); for (const [name, value] of Object.entries({ d: "M2.5 7.5l3 3 6-7", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })) tick.setAttribute(name, value); check.append(tick); box.append(dot, check, title, next); doc.querySelector(".lt-course-header").append(box); const jobs = doc.getElementById("joblist"); const empty = doc.createElement("p"); empty.id = "lt-course-empty"; empty.className = "lt-ui"; jobs == null ? void 0 : jobs.after(empty); const guard = doc.getElementById("backGround"); const help = doc.createElement("p"); help.id = "lt-course-guard-help"; help.className = "lt-ui"; help.textContent = "\u540E\u53F0\u6302\u673A\u53EA\u8F85\u52A9\u540E\u53F0\u4FDD\u6D3B\uFF0C\u4E0D\u662F\u8BFE\u7A0B\u5B66\u4E60\u7684\u5F00\u59CB\u6216\u505C\u6B62\u5F00\u5173\u3002\u540E\u53F0\u8FD0\u884C\u4ECD\u53EF\u80FD\u53D7\u6D4F\u89C8\u5668\u9650\u5236\uFF0C\u4E0D\u5EFA\u8BAE\u957F\u65F6\u95F4\u6700\u5C0F\u5316\u3002"; const guardDetails = doc.createElement("details"); guardDetails.className = "lt-v3-guard-help"; const guardSummary = doc.createElement("summary"); guardSummary.textContent = "\u4FDD\u6D3B\u8BF4\u660E"; guardDetails.append(guardSummary, help); guard == null ? void 0 : guard.parentElement.append(guardDetails); const taskCards = doc.createElement("div"); taskCards.className = "lt-v3-task-cards"; const taskViews = /* @__PURE__ */ new Map(); for (const [type2, label] of [["video", "\u89C6\u9891\u5B66\u4E60"], ["work", "\u7AE0\u8282\u6D4B\u9A8C"], ["document", "\u8BFE\u4EF6\u9605\u8BFB"]]) { const card = doc.createElement("div"); card.className = "lt-v3-task-card"; const labelNode = doc.createElement("strong"); labelNode.textContent = label; const status = doc.createElement("span"); const bar = doc.createElement("span"); bar.className = "lt-v31-task-bar"; bar.hidden = true; bar.setAttribute("aria-hidden", "true"); bar.append(doc.createElement("i")); card.append(labelNode, status, bar); taskCards.append(card); taskViews.set(type2, { card, status, bar }); } jobs == null ? void 0 : jobs.before(taskCards); const estimate = overview.querySelector(".lt-course-estimate"); const estimateValue = doc.getElementById("overviewEstimateTime"); let lastState = null, lastTitle = null, cardsShown = null; const logTitle = (_b = (_a = doc.getElementById("clearLogBtn")) == null ? void 0 : _a.parentElement.firstElementChild) == null ? void 0 : _b.lastElementChild; if (logTitle) logTitle.textContent = "\u8BFE\u7A0B\u8BB0\u5F55\uFF08\u542B AI \u540C\u6B65\u6D88\u606F\uFF09"; const setText = (node, text) => { if (node.textContent !== text) node.textContent = text; }; const sync = () => { var _a2; let input; try { input = read(); } catch (e) { input = { readError: true }; } const state = courseUxState(input); const root = doc.getElementById("lt-course-ui"); if (root) root.dataset.courseState = state.state; box.dataset.state = state.state; const chapters = input.chapters || []; const completed = chapters.filter((item) => item.isCompleted === true).length; const pillText = state.state === "done" && chapters.length ? `\u8BFE\u7A0B\u5DF2\u5B8C\u6210 ${completed}/${chapters.length}` : `\u8BFE\u7A0B\u72B6\u6001\uFF1A${state.title}`; if (title.textContent !== pillText && lastTitle !== null) replayClass(title, "is-swapping", 450); setText(title, pillText); lastTitle = pillText; setText(next, `\u4E0B\u4E00\u6B65\uFF1A${state.next}`); next.hidden = state.state !== "error"; if (lastState !== null && lastState !== "done" && state.state === "done") celebrateCourse(doc); lastState = state.state; let detected = 0; for (const [type2, view] of taskViews) { const tasks = (input.missions || []).filter((item) => item.type === type2); detected += tasks.length; const phase = tasks.some((item) => item.failed) ? "error" : tasks.some((item) => item.running && !item.done) ? "running" : tasks.length && tasks.every((item) => item.done) ? "done" : "waiting"; view.card.dataset.state = phase; setText(view.status, tasks.length ? phase === "done" ? `\u672C\u8282\u5DF2\u5B8C\u6210 ${tasks.length} \u9879` : phase === "error" ? "\u672A\u786E\u8BA4\u5B8C\u6210\uFF0C\u8BF7\u67E5\u770B\u8BB0\u5F55" : phase === "running" ? "\u6B63\u5728\u5904\u7406" : `\u7B49\u5F85\u5904\u7406 \xB7 ${tasks.length} \u9879` : input.tasksReady ? "\u672C\u8282\u672A\u68C0\u6D4B\u5230\u6B64\u7C7B\u4EFB\u52A1" : "\u7B49\u5F85\u8BFB\u53D6\u4EFB\u52A1"); const shares = tasks.map((item) => item.done ? 1 : Number(item.progress)).filter(Number.isFinite); const share = shares.length === tasks.length && tasks.length ? shares.reduce((sum, value) => sum + Math.min(1, Math.max(0, value)), 0) / tasks.length : NaN; view.bar.hidden = !Number.isFinite(share); if (Number.isFinite(share)) view.bar.style.setProperty("--lt-task-progress", `${Math.round(share * 100)}%`); } const none = Boolean(input.tasksReady) && detected === 0 && !(input.taskCount > 0); if (cardsShown !== !none) { taskCards.hidden = none; if (!none && cardsShown === false) replayClass(taskCards, "is-entering", 700); cardsShown = !none; } empty.dataset.variant = none ? "none" : "status"; empty.hidden = Boolean(jobs == null ? void 0 : jobs.children.length); setText(empty, none ? "\u672C\u8282\u6CA1\u6709\u89C6\u9891\u3001\u6D4B\u9A8C\u6216\u6587\u6863\u4EFB\u52A1\u3002" : input.taskCount > 0 ? "\u6B63\u5728\u663E\u793A\u5DF2\u68C0\u6D4B\u5230\u7684\u4EFB\u52A1\uFF0C\u8BF7\u7B49\u5F85\u4EFB\u52A1\u5217\u8868\u66F4\u65B0\u3002" : "\u6B63\u5728\u8BFB\u53D6\u672C\u8282\u4EFB\u52A1\uFF1B\u672A\u8BFB\u53D6\u5230\u4EFB\u52A1\u4E0D\u4EE3\u8868\u5DF2\u5B8C\u6210\u3002"); if (estimate) estimate.dataset.empty = String(!/\d/.test((estimateValue == null ? void 0 : estimateValue.textContent) || "")); const rawPercent = (_a2 = doc.getElementById("overviewProgressFill")) == null ? void 0 : _a2.getAttribute("data-lt-progress"); const percent = rawPercent === null || rawPercent === void 0 ? null : Number(rawPercent); const snapshot = JSON.stringify({ ...state, guard: guard.classList.contains("btn-success"), percent: Number.isInteger(percent) && percent >= 0 && percent <= 100 ? percent : null }); if (doc.documentElement.dataset.dripUxCourse !== snapshot) doc.documentElement.dataset.dripUxCourse = snapshot; }; sync(); const guardObserver = new MutationObserver(sync); guardObserver.observe(guard, { attributes: true, attributeFilter: ["class"] }); const timer = doc.defaultView.setInterval(sync, 1e3); doc.defaultView.addEventListener("pagehide", () => { doc.defaultView.clearInterval(timer); guardObserver.disconnect(); }, { once: true }); } return __toCommonJS(course_ux_exports); })(); if (window.__dripLegacyEngineStarted) return; window.__dripLegacyEngineStarted = true; var jumpType = 1, disableMonitor = 0, randomDo = 1; var imgEs, vrefer, strEc; var rate = GM_getValue("courseRate", "2"), token = GM_getValue("tikutoken", "111"), accuracy = GM_getValue("accuracy", 60), ctUrl = "https://cx.icodef.com/wyn-nb?v=4", getQueryVariable = (variable) => { let q = _l.search.substring(1), v = q.split("&"), r = false; for (let i = 0, l = v.length; i < l; i++) { let p = v[i].split("="); p[0] == variable && (r = p[1]); } return r; }, getCookie = (name) => `; ${document.cookie}`.split(`; ${name}=`).pop().split(";").shift(), isCat = GM_info.scriptHandler == "ScriptCat", _w = unsafeWindow, _d = _w.document, _l = _w.location, _p = _l.protocol, _h = _l.host, isFf = _w.navigator.userAgent.includes("Firefox"), isMobile = _w.navigator.userAgent.includes("Android"), stop = false, handleImgs = (s) => { imgEs = s.match(/(]*)>)/); if (imgEs) { for (let j = 0, k = imgEs.length; j < k; j++) { let urls = imgEs[j].match( /http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+/ ), url; if (urls) { url = urls[0].replace(/http[s]?:\/\//, ""); s = s.replaceAll(imgEs[j], url); } } } return s; }, trim = (s) => { return handleImgs(s).replaceAll("javascript:void(0);", "").replaceAll(" ", "").replaceAll("\uFF0C", ",").replaceAll( "\u3002", "." ).replaceAll("\uFF1A", ":").replaceAll( "\uFF1B", ";" ).replaceAll("\uFF1F", "?").replaceAll("\uFF08", "(").replaceAll("\uFF09", ")").replaceAll("\u201C", '"').replaceAll("\u201D", '"').replaceAll("\uFF01", "!").replaceAll("-", " ").replace(/(<([^>]+)>)/ig, "").replace(/^\s+/ig, "").replace(/\s+$/ig, ""); }, cVersion = 999, classId = getQueryVariable("clazzid") || getQueryVariable("clazzId") || getQueryVariable("classid") || getQueryVariable("classId"), courseId = getQueryVariable("courseid") || getQueryVariable("courseId"), UID = getCookie("_uid") || getCookie("UID"), FID = getCookie("fid"), jq = (() => { try { return _w.top.$ || _w.top.jQuery; } catch (e) { return _w.$ || _w.jQuery; } })(); if (/\/knowledge\/cards|\/mycourse\/studentstudy|\/work\/|\/api\/work|doHomeWork/i.test(_l.pathname)) { _w.confirm = (msg) => { return true; }; setInterval(function() { _w.confirm = (msg) => { return true; }; }, 2e3); } function syncLegacySettings() { var _a; rate = parseFloat(GM_getValue("courseRate", "2")); token = GM_getValue("tikutoken", "111"); accuracy = GM_getValue("accuracy", 60); for (const [key, property, fallback, buttonId] of [ ["courseReview", "dripReviewMode", "0", "reviewModeButton"], ["courseDoWork", "dripDoWork", "1", "autoDoWorkButton"], ["courseAutoSubmit", "dripAutoSubmit", "1", "autoSubmitButton"], ["courseAutoSave", "dripAutoSave", "0", "autoSaveButton"] ]) { const value = GM_getValue(key, fallback) || fallback; try { _w.top[property] = value; } catch (e) { } const button = _d.getElementById(buttonId); if (button) button.setAttribute("class", value == "1" ? "btn btn-success" : "btn btn-default"); } for (const [id, value] of [["dripRate", rate], ["accuracy", accuracy]]) { const input = _d.getElementById(id); if (input && _d.activeElement !== input) input.value = value; } _d.querySelectorAll(".speed-pill").forEach((pill) => { pill.classList.toggle("active", parseFloat(pill.getAttribute("data-speed")) === rate); }); (_a = _d.dispatchEvent) == null ? void 0 : _a.call(_d, new Event("drip-speed-sync")); } syncLegacySettings(); window.addEventListener("drip-legacy-settings-changed", syncLegacySettings); window.addEventListener("message", (msg) => { try { if (msg.data && msg.data.type === "drip-switch-next-tab") { if (typeof switchNextTabInChapter === "function") switchNextTabInChapter(); } if (msg.data && msg.data.type === "drip-trigger-chapter-jump") { if (typeof executeChapterJump === "function") executeChapterJump(); } } catch (e) { } }); function readCourseHomeTasks(doc, pageHref) { const page = new URL(pageHref); const param2 = (url, name) => { var _a; return (_a = [...url.searchParams].find(([key]) => key.toLowerCase() === name)) == null ? void 0 : _a[1]; }; const course = param2(page, "courseid"), clazz = param2(page, "clazzid"); if (!course || !clazz) return []; return Array.from(doc.querySelectorAll("h3 a[href]")).flatMap((link) => { try { const url = new URL(link.getAttribute("href"), page); const row = link.closest("h3"); const badge = row == null ? void 0 : row.querySelector(".icon .orange"); if (url.origin !== page.origin || !/\/mycourse\/studentstudy$/.test(url.pathname) || param2(url, "courseid") !== course || param2(url, "clazzid") !== clazz || !/^\d+$/.test(param2(url, "chapterid") || "") || link.getAttribute("aria-disabled") === "true" || row.querySelector(".closedlock, .lock, .blank, .noJob, .openlock") || !badge || !/^\d+$/.test(badge.textContent.trim()) || Number(badge.textContent) <= 0) return []; return [{ href: url.href, title: (link.getAttribute("aria-label") || link.textContent).trim() }]; } catch (e) { return []; } }); } class CourseHomeTakeover { constructor(doc, win) { this.doc = doc; this.win = win; this.timer = null; const params = new URL(win.location.href).searchParams; this.pauseKey = "drip7boi.homePaused:" + (params.get("courseId") || params.get("courseid") || "") + ":" + (params.get("clazzid") || params.get("clazzId") || ""); win.addEventListener("drip-course-home-control", () => { const action = doc.documentElement.dataset.dripCourseHomeAction; if (action === "stop") this.stop(); if (action === "start") this.start(true); }); win.addEventListener("pagehide", () => this.clear()); } clear() { this.win.clearTimeout(this.timer); this.timer = null; } publish(state, message) { this.doc.documentElement.dataset.dripCourseHomeState = state; this.doc.documentElement.dataset.dripCourseHomeMessage = message; this.win.dispatchEvent(new this.win.CustomEvent("drip-course-home-status")); } stop() { this.clear(); try { this.win.sessionStorage.setItem(this.pauseKey, "true"); } catch (e) { } this.publish("paused", "\u9996\u9875\u63A5\u7BA1\u5DF2\u505C\u6B62\uFF0C\u53EF\u70B9\u51FB\u5F00\u59CB\u5B66\u4E60\u7EE7\u7EED"); } start(manual = false) { this.clear(); if (this.win.top !== this.win || !/\/mycourse\/studentcourse$/.test(this.win.location.pathname)) return; try { if (!manual && this.win.sessionStorage.getItem(this.pauseKey) === "true") { this.publish("paused", "\u9996\u9875\u63A5\u7BA1\u5DF2\u505C\u6B62\uFF0C\u53EF\u70B9\u51FB\u5F00\u59CB\u5B66\u4E60\u7EE7\u7EED"); return; } this.win.sessionStorage.removeItem(this.pauseKey); } catch (e) { } this.deadline = Date.now() + 15e3; this.previous = null; this.publish("running", "\u6B63\u5728\u8BC6\u522B\u8BFE\u7A0B\u76EE\u5F55\u4E2D\u7684\u672A\u5B8C\u6210\u4EFB\u52A1"); this.timer = this.win.setTimeout(() => this.scan(), 500); } scan() { const tasks = readCourseHomeTasks(this.doc, this.win.location.href); const signature = tasks.map((task) => task.href).join("\n"); if (tasks.length && signature === this.previous) { const task = tasks[0]; this.publish("running", "\u6B63\u5728\u51C6\u5907\u8FDB\u5165\uFF1A" + task.title); this.timer = this.win.setTimeout(() => { const current = readCourseHomeTasks(this.doc, this.win.location.href)[0]; if ((current == null ? void 0 : current.href) !== task.href) { this.previous = null; this.scan(); return; } this.clear(); try { this.win.location.assign(current.href); } catch (e) { this.publish("paused", "\u7AE0\u8282\u8FDB\u5165\u5931\u8D25\uFF0C\u53EF\u70B9\u51FB\u5F00\u59CB\u5B66\u4E60\u91CD\u8BD5"); } }, 2200); return; } this.previous = signature; if (Date.now() >= this.deadline) { this.clear(); this.publish("idle", "\u672A\u627E\u5230\u53EF\u81EA\u52A8\u8FDB\u5165\u7684\u672A\u5B8C\u6210\u4EFB\u52A1\uFF0C\u8BF7\u68C0\u67E5\u8BFE\u7A0B\u76EE\u5F55"); return; } this.timer = this.win.setTimeout(() => this.scan(), 500); } } function getAccessibleDocs() { const docs = []; try { if (typeof document !== "undefined" && document) docs.push(document); } catch (e) { } try { if (typeof _d !== "undefined" && _d && !docs.includes(_d)) docs.push(_d); } catch (e) { } try { if (typeof window !== "undefined" && window.parent && window.parent.document && !docs.includes(window.parent.document)) docs.push(window.parent.document); } catch (e) { } try { if (typeof window !== "undefined" && window.top && window.top.document && !docs.includes(window.top.document)) docs.push(window.top.document); } catch (e) { } return docs; } function appendJobRow(doc, text) { const list = doc && doc.getElementById("joblist"); if (!list) return; const panel = doc.createElement("div"); panel.className = "panel panel-default"; const body = doc.createElement("div"); body.className = "panel-body"; body.textContent = String(text); panel.appendChild(body); list.appendChild(panel); } function safeLog(str, color = "black") { try { if (typeof logs !== "undefined" && logs && typeof logs.addLog === "function") { logs.addLog(str, color); return; } } catch (e) { } try { const topDoc = typeof _w !== "undefined" && _w.top && _w.top.document || typeof document !== "undefined" && document; const cardIframe = topDoc.querySelector("iframe#iframe, iframe[name='iframe']"); const cardWin = cardIframe && cardIframe.contentWindow; if (cardWin && cardWin.logs && typeof cardWin.logs.addLog === "function") { cardWin.logs.addLog(str, color); return; } } catch (e) { } console.log("[drip7boi] " + str); } function hasQuestionsOnPage() { try { const docs = getAccessibleDocs(); const all = []; const collect = (d) => { if (!d || all.includes(d)) return; all.push(d); try { const iframes = Array.from(d.querySelectorAll("iframe, frame")); for (const f of iframes) { try { if (f.contentDocument) collect(f.contentDocument); } catch (e) { } } } catch (e) { } }; docs.forEach(collect); for (const doc of all) { try { if (doc.querySelector(".mark_table .questionLi, .questionLi, .zquestions .Py-mian1, .TiMu, .stem_answer, .Zy_TItle, [id^='question']")) { return true; } } catch (e) { } } } catch (e) { } return false; } function getCatalogNodes(doc) { var _a; const targetDoc = doc || _w.top && _w.top.document || _w.parent && _w.parent.document || _d; if (!targetDoc) return []; let rawList = Array.from(targetDoc.querySelectorAll([ "h4[id^='cur']", "h5[id^='cur']", "div[id^='cur']", "li[id^='cur']", "[id^='cur']", "[onclick*='getTeacherAjax']", "a[href*='getTeacherAjax']", ".posCatalog_select", "#coursetree li", ".posCatalog li", ".chapter li", ".cells", ".leveltwo" ].join(","))); const seen = /* @__PURE__ */ new Set(); const nodes = []; for (const el of rawList) { if (el.id === "coursetree" || ((_a = el.classList) == null ? void 0 : _a.contains("posCatalog")) || el.tagName === "BODY" || el.tagName === "HTML") continue; let item = el.closest("[id^='cur']") || el.closest("h4, h5, li, .posCatalog_select, .cells") || el; if (!seen.has(item)) { seen.add(item); nodes.push(item); } } if (nodes.length === 0) { const spans = Array.from(targetDoc.querySelectorAll("span[style*='cursor:pointer'], span[style*='18px']")); for (const s of spans) { const p = s.closest("[id^='cur']") || s.parentNode; if (p && !seen.has(p)) { seen.add(p); nodes.push(p); } } } return nodes; } function parseChapterNode(node) { var _a, _b, _c, _d2, _e, _f, _g; if (!node) return null; const html = node.innerHTML || ""; const text = (node.textContent || "").trim(); const isCompleted = /roundpoint\s+blue/i.test(html) || /roundpoint.*blue/i.test(html) || html.includes("icon_Completed") || html.includes("catalog_points_done") || html.includes("catalog_points_finished") || /roundpointStudent\s+finished/i.test(html) || /已完成/.test(text) && !/待完成/.test(text); const isLocked = /roundpointStudent\s+lock/i.test(html) || /class="[^"]*lock[^"]*"/i.test(html) || text.includes("\u672A\u5F00\u653E"); let badgeCount = 0; const orangeMatch = html.match(/class="[^"]*(?:orange|f_orange|catalog_points_yi)[^"]*"[^>]*>(\d+)]*>(\d+)\s*([1-9]\d*)\s*<\/em>/i) || html.match(/>\s*([1-9]\d*)\s*<\/span>/i) || html.match(/\(([1-9]\d*)\)/); if (orangeMatch) { badgeCount = parseInt(orangeMatch[1], 10) || 1; } else if (/orange|f_orange|catalog_points_yi|prevTips/i.test(html)) { if (!isCompleted && !isLocked) badgeCount = 1; } let isActive = ((_a = node.classList) == null ? void 0 : _a.contains("posCatalog_active")) || ((_b = node.classList) == null ? void 0 : _b.contains("currents")) || ((_c = node.classList) == null ? void 0 : _c.contains("active")) || Boolean(node.querySelector && node.querySelector(".posCatalog_active, .currents, .active")); try { const curCid = getQueryVariable("chapterId") || getQueryVariable("knowledgeId") || _w.top && (((_e = (_d2 = _w.top).getQueryVariable) == null ? void 0 : _e.call(_d2, "chapterId")) || ((_g = (_f = _w.top).getQueryVariable) == null ? void 0 : _g.call(_f, "knowledgeId"))); if (curCid && (node.id === "cur" + curCid || node.id && node.id.includes(curCid) || (node.outerHTML || "").includes(curCid))) { isActive = true; } } catch (e) { } let cid = null; if (node.id && node.id.includes("cur")) { const m = node.id.match(/cur(\d+)/); if (m) cid = m[1]; } const fullHtml = (node.outerHTML || "") + " " + (node.getAttribute("onclick") || "") + " " + (node.getAttribute("href") || ""); const ajaxMatch = fullHtml.match(/getTeacherAjax\s*\(\s*['"]?(\d+)['"]?\s*,\s*['"]?(\d+)['"]?\s*,\s*['"]?(\d+)['"]?/); const targetCourseId = ajaxMatch && ajaxMatch[1] || (typeof courseId !== "undefined" ? courseId : ""); const targetClassId = ajaxMatch && ajaxMatch[2] || (typeof classId !== "undefined" ? classId : ""); if (!cid && ajaxMatch && ajaxMatch[3]) cid = ajaxMatch[3]; let title = text.replace(/\s+/g, " "); if (title.length > 35) title = title.slice(0, 35) + "..."; const isNavigable = Boolean(cid || ajaxMatch || node.querySelector && node.querySelector("a[href*='getTeacherAjax'], a[onclick*='getTeacherAjax'], a[onclick*='toOld'], a[href*='knowledgeId'], a[href*='chapterId'], .posCatalog_name, span.name")); return { node, cid, targetCourseId, targetClassId, title, isCompleted, isLocked, badgeCount, isActive, isNavigable, hasPending: !isCompleted && !isLocked && (badgeCount > 0 || !isCompleted) }; } function isTaskChapter(node, item) { if (!node || !item) return false; if (node.querySelector && node.querySelector("h4[id^='cur'], h5[id^='cur'], [id^='cur']")) return false; if (node.querySelector && node.querySelector(".roundpointStudent.noJob")) return false; if (item.isCompleted || item.badgeCount > 0) return true; const html = node.innerHTML || ""; const text = (node.textContent || "").trim(); if (node.querySelector && node.querySelector(".leveltwo, .levelthree, ul.chapter, ul.cells, li.cells, h5")) { return false; } if (/^\s*第[0-9一二三四五六七八九十]+[章节部卷篇]/i.test(text) && !/roundpoint|catalog_points|icon_Completed|roundpointStudent/i.test(html)) { return false; } if (/roundpoint|catalog_points|icon_Completed|roundpointStudent|prevTips/i.test(html)) { return true; } if (!item.cid && !/getTeacherAjax/i.test(html)) { return false; } return false; } function isCandidateUncompleted(item) { if (!item || item.isLocked || !item.isNavigable) return false; if (!isTaskChapter(item.node, item)) return false; if (_w.top && _w.top.dripReviewMode == "1") return true; if (item.badgeCount > 0) return true; if (!item.isCompleted) return true; return false; } function getCourseContext() { const docs = getAccessibleDocs(); let cId = "", clId = ""; for (const d of docs) { if (!cId) { const el = d.querySelector("#courseId, input[name='courseId']"); if (el && el.value) cId = el.value; } if (!clId) { const el = d.querySelector("#clazzId, #classId, input[name='clazzId'], input[name='classId']"); if (el && el.value) clId = el.value; } } return { courseId: cId, classId: clId }; } function jumpToChapterNode(item) { var _a, _b, _c, _d2, _e, _f, _g, _h2; if (!item || !item.node) return false; try { const topWin = _w.top && _w.top.window || _w.parent && _w.parent.window || _w; const ctx = getCourseContext(); const targetCourse = item.targetCourseId || topWin && topWin.courseId || typeof courseId !== "undefined" && courseId || ctx.courseId || getQueryVariable("courseid") || getQueryVariable("courseId") || _w.top && (((_b = (_a = _w.top).getQueryVariable) == null ? void 0 : _b.call(_a, "courseid")) || ((_d2 = (_c = _w.top).getQueryVariable) == null ? void 0 : _d2.call(_c, "courseId"))) || ""; const targetClass = item.targetClassId || topWin && (topWin.clazzId || topWin.classId) || typeof classId !== "undefined" && classId || ctx.classId || getQueryVariable("clazzid") || getQueryVariable("clazzId") || getQueryVariable("classid") || _w.top && (((_f = (_e = _w.top).getQueryVariable) == null ? void 0 : _f.call(_e, "clazzid")) || ((_h2 = (_g = _w.top).getQueryVariable) == null ? void 0 : _h2.call(_g, "clazzId"))) || ""; if (item.cid && typeof topWin.getTeacherAjax === "function" && targetCourse && targetClass) { safeLog("\u6B63\u5728\u901A\u8FC7\u5B66\u4E60\u901A\u539F\u751F\u901A\u9053\u8DF3\u8F6C\u81F3\u3010" + (item.title || "\u7AE0\u8282 " + item.cid) + "\u3011...", "cyan"); try { topWin.getTeacherAjax(String(targetCourse), String(targetClass), String(item.cid)); } catch (err) { console.warn("topWin.getTeacherAjax error:", err); } } const clickable = item.node.querySelector("a, [onclick], .posCatalog_name, .name, span") || item.node; safeLog("\u6B63\u5728\u70B9\u51FB\u7AE0\u8282\u3010" + (item.title || "\u5F85\u5B8C\u6210\u7AE0\u8282") + "\u3011\u8FDB\u884C\u8DF3\u8F6C...", "cyan"); try { clickable.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true })); } catch (e) { } try { clickable.click(); } catch (e) { } try { item.node.click(); } catch (e) { } setTimeout(() => { var _a2, _b2, _c2, _d3; try { const curCid = getQueryVariable("chapterId") || getQueryVariable("knowledgeId") || _w.top && (((_b2 = (_a2 = _w.top).getQueryVariable) == null ? void 0 : _b2.call(_a2, "chapterId")) || ((_d3 = (_c2 = _w.top).getQueryVariable) == null ? void 0 : _d3.call(_c2, "knowledgeId"))); if (item.cid && curCid && curCid != item.cid) { const topDoc = _w.top && _w.top.document || _w.parent && _w.parent.document || _d; const stillActive = topDoc.querySelector(".posCatalog_active#cur" + curCid + ", #cur" + curCid + ".posCatalog_active"); if (stillActive) { safeLog("\u68C0\u6D4B\u5230\u7AE0\u8282\u672A\u81EA\u52A8\u5237\u65B0\uFF0C\u6B63\u5728\u5F3A\u5236\u5237\u65B0\u52A0\u8F7D\u76EE\u6807\u7AE0\u8282...", "orange"); const currentHref = topWin.location.href; const newHref = currentHref.replace(/(chapterId=)[^&]+/, "$1" + item.cid).replace(/(knowledgeId=)[^&]+/, "$1" + item.cid); if (newHref !== currentHref) { topWin.location.href = newHref; } } } } catch (e) { } }, 4500); return true; } catch (e) { console.error("jumpToChapterNode error:", e); try { item.node.click(); return true; } catch (err) { } } return false; } var chapterJumpLock = false; function deferredChapters(chapterId2, failures, completedIds = []) { var _a, _b; try { const topWin = _w.top || _w; const url = new URL(topWin.location.href); const key = "drip-deferred:" + (url.searchParams.get("courseId") || url.searchParams.get("courseid") || "") + ":" + (url.searchParams.get("clazzid") || url.searchParams.get("clazzId") || ""); const records = JSON.parse(topWin.sessionStorage.getItem(key) || "{}"); for (const id of completedIds) delete records[String(id)]; if (chapterId2 && failures) { const previousRetries = ((_b = (_a = records[String(chapterId2)]) == null ? void 0 : _a[0]) == null ? void 0 : _b.retryCount) || 0; records[String(chapterId2)] = failures.map((task) => ({ name: task.name || task.jobid, reason: task.failedReason || task.reason || "\u4EFB\u52A1\u672A\u5B8C\u6210", retryCount: Math.max(previousRetries, task.retryCount || 0) })); } if (chapterId2 && failures || completedIds.length) { topWin.sessionStorage.setItem(key, JSON.stringify(records)); } return records; } catch (e) { return null; } } function deferFailedTasks(failures) { const id = getQueryVariable("knowledgeid") || getQueryVariable("knowledgeId") || getQueryVariable("chapterId") || String(typeof chapterId !== "undefined" ? chapterId : ""); if (!id || !deferredChapters(id, failures)) { logs.addLog("\u65E0\u6CD5\u4FDD\u5B58\u5F02\u5E38\u4EFB\u52A1\u8BB0\u5F55\uFF0C\u6682\u505C\u4EE5\u907F\u514D\u91CD\u590D\u8DF3\u8F6C", "red"); return; } logs.addLog("\u5DF2\u6682\u7F13 " + failures.length + " \u4E2A\u5F02\u5E38\u4EFB\u52A1\uFF08\u4ECD\u672A\u5B8C\u6210\uFF09\uFF0C\u5148\u7EE7\u7EED\u5176\u4ED6\u4EFB\u52A1\uFF0C\u672B\u5C3E\u56DE\u626B\u4E00\u6B21\uFF1B\u518D\u6B21\u5931\u8D25\u5219\u4FDD\u7559\u539F\u56E0\u4F9B\u68C0\u67E5", "orange"); if (!switchNextTabInChapter()) triggerNextChapter("\u5F02\u5E38\u4EFB\u52A1\u5DF2\u8BB0\u5F55\uFF0C\u7EE7\u7EED\u5904\u7406\u5176\u4ED6\u7AE0\u8282"); } function executeChapterJump() { if (chapterJumpLock) return; chapterJumpLock = true; setTimeout(() => { chapterJumpLock = false; }, 4e3); safeLog("\u6B63\u5728\u68C0\u67E5\u5168\u8BFE\u5F85\u5B8C\u6210\u4EFB\u52A1\u5E76\u89C4\u5212\u8DF3\u8F6C\u8DEF\u5F84...", "cyan"); try { const topWin = _w.top && _w.top.window || _w.parent && _w.parent.window || _w; if (typeof topWin.onReadComplete1 === "function") { topWin.onReadComplete1(); } } catch (e) { console.warn("onReadComplete1 caught:", e); } setTimeout(() => { var _a, _b, _c, _d2; try { const docs = getAccessibleDocs(); let catalogElements = []; for (const d of docs) { const nodes = getCatalogNodes(d); if (nodes && nodes.length > 0) { catalogElements = nodes; break; } } if (catalogElements.length > 0) { const parsedList = catalogElements.map(parseChapterNode).filter((item) => item && isTaskChapter(item.node, item)); const deferred = deferredChapters(null, null, parsedList.filter((item) => item.isCompleted && !item.badgeCount).map((item) => item.cid)) || {}; let activeIdx = parsedList.findIndex((item) => item.isActive); if (activeIdx < 0) { const curCid = getQueryVariable("chapterId") || getQueryVariable("knowledgeId") || _w.top && (((_b = (_a = _w.top).getQueryVariable) == null ? void 0 : _b.call(_a, "chapterId")) || ((_d2 = (_c = _w.top).getQueryVariable) == null ? void 0 : _d2.call(_c, "knowledgeId"))); if (curCid) { activeIdx = parsedList.findIndex((item) => item.cid == curCid || item.node && (item.node.id || "").includes(curCid)); } } let targetChapter = null; const startIdx = activeIdx >= 0 ? activeIdx + 1 : 0; for (let i = startIdx; i < parsedList.length; i++) { let item = parsedList[i]; if (!deferred[String(item.cid)] && isCandidateUncompleted(item)) { targetChapter = item; break; } } if (!targetChapter && activeIdx > 0) { for (let i = 0; i < activeIdx; i++) { let item = parsedList[i]; if (item && !deferred[String(item.cid)] && !item.isLocked && item.isNavigable && item.badgeCount > 0) { targetChapter = item; safeLog("\u540E\u65B9\u7AE0\u8282\u5DF2\u65E0\u5F85\u529E\u4EFB\u52A1\uFF0C\u68C0\u6D4B\u5230\u524D\u534A\u90E8\u5206\u7AE0\u8282\u3010" + item.title + "\u3011\u4ECD\u6709\u9057\u7559\u4EFB\u52A1\u70B9\uFF08" + item.badgeCount + "\u4E2A\uFF09\uFF0C\u6B63\u5728\u81EA\u52A8\u8FD4\u56DE\u8865\u5237\uFF01", "orange"); break; } } if (!targetChapter) { for (let i = 0; i < activeIdx; i++) { let item = parsedList[i]; if (!deferred[String(item.cid)] && isCandidateUncompleted(item)) { targetChapter = item; safeLog("\u540E\u65B9\u7AE0\u8282\u5DF2\u65E0\u5F85\u529E\u4EFB\u52A1\uFF0C\u68C0\u6D4B\u5230\u524D\u534A\u90E8\u5206\u7AE0\u8282\u3010" + item.title + "\u3011\u672A\u5B8C\u6210\uFF0C\u6B63\u5728\u81EA\u52A8\u8FD4\u56DE\u8865\u5237\uFF01", "orange"); break; } } } } if (targetChapter) { if (typeof updateCourseOverview === "function") updateCourseOverview(); jumpToChapterNode(targetChapter); return; } if (Object.keys(deferred).length) { const retry = parsedList.find((item) => deferred[String(item.cid)] && isCandidateUncompleted(item) && !deferred[String(item.cid)].some((task) => task.retryCount >= 1 || /平台限制|平台停止/.test(task.reason || ""))); if (retry) { const saved = deferredChapters(retry.cid, deferred[String(retry.cid)].map((task) => ({ ...task, retryCount: 1 }))); if (!saved) { safeLog("\u65E0\u6CD5\u4FDD\u5B58\u56DE\u626B\u6B21\u6570\uFF0C\u6682\u505C\u4EE5\u907F\u514D\u5FAA\u73AF\u91CD\u8BD5", "red"); return; } safeLog("\u6B63\u5728\u56DE\u626B\u6682\u7F13\u7AE0\u8282\u3010" + retry.title + "\u3011\uFF08\u6700\u591A\u81EA\u52A8\u91CD\u8BD5\u4E00\u6B21\uFF0C\u4ECD\u4EE5\u5E73\u53F0\u786E\u8BA4\u4E3A\u51C6\uFF09", "orange"); jumpToChapterNode(retry); return; } safeLog("\u672C\u8F6E\u53EF\u7EE7\u7EED\u7684\u7AE0\u8282\u5DF2\u5904\u7406\u5B8C\u6BD5\uFF1B\u6682\u7F13\u8BB0\u5F55\uFF1A" + Object.values(deferred).flat().map((task) => task.name + "\uFF08" + task.reason + "\uFF09").join("\uFF1B") + "\u3002\u8BF7\u4ECE\u76EE\u5F55\u8FD4\u56DE\u68C0\u67E5\uFF0C\u672A\u8BA1\u4E3A\u5B8C\u6210\u3002", "orange"); return; } const taskChapters = parsedList.filter((item) => item.isNavigable && isTaskChapter(item.node, item)); if (taskChapters.length && taskChapters.every((item) => item.isCompleted && !item.badgeCount)) { safeLog("\u6574\u95E8\u8BFE\u7A0B\u6240\u6709\u77E5\u8BC6\u70B9\u5747\u5DF2\u7531\u5E73\u53F0\u786E\u8BA4\u4E3A\u5B8C\u6210", "green"); } else { safeLog("\u4ECD\u6709\u672A\u5B8C\u6210\u3001\u9501\u5B9A\u6216\u72B6\u6001\u672A\u77E5\u7684\u77E5\u8BC6\u70B9\uFF0C\u5C1A\u672A\u901A\u8FC7\u6574\u8BFE\u5B8C\u6210\u68C0\u67E5", "orange"); } if (typeof updateCourseOverview === "function") updateCourseOverview(); return; } for (const d of docs) { let but = d.querySelector(".jb_btn.jb_btn_92.fs14.prev_next.next, .orientationright, .prev_next.next, .next"); if (but && but.offsetParent !== null) { safeLog("\u6B63\u5728\u901A\u8FC7\u4E0B\u4E00\u8282\u6309\u94AE\u8DF3\u8F6C...", "cyan"); but.click(); return; } } safeLog("\u672A\u627E\u5230\u53EF\u6838\u9A8C\u7684\u8BFE\u7A0B\u76EE\u5F55\uFF0C\u4E0D\u80FD\u786E\u8BA4\u6574\u8BFE\u5B8C\u6210", "orange"); if (typeof updateCourseOverview === "function") updateCourseOverview(); } catch (e) { console.error("executeChapterJump error:", e); safeLog("\u8DF3\u7AE0\u903B\u8F91\u6267\u884C\u5F02\u5E38: " + (e.message || e), "red"); } }, 800); } function triggerNextChapter(reason = "\u672C\u7AE0\u8282\u4EFB\u52A1\u5DF2\u5168\u90E8\u68C0\u67E5\u5B8C\u6BD5") { if (jumpType == 2) { safeLog("\u4EFB\u52A1\u5904\u7406\u5B8C\u6BD5\uFF0C\u7528\u6237\u8BBE\u7F6E\u4E3A\u4E0D\u8DF3\u8F6C", "green"); return; } _w.jump = true; try { if (_w.top) _w.top.jump = true; } catch (e) { } try { if (_w.parent) _w.parent.jump = true; } catch (e) { } safeLog(reason + "\uFF0C\u6B63\u5728\u51C6\u5907\u8FDB\u5165\u4E0B\u4E00\u5F85\u5B8C\u6210\u7AE0\u8282...", "green"); const targetWins = [window, window.parent, window.top].filter(Boolean); targetWins.forEach((win) => { try { win.postMessage({ type: "drip-trigger-chapter-jump" }, "*"); } catch (e) { } }); setTimeout(() => { try { if (typeof _w.executeChapterJump === "function") { _w.executeChapterJump(); return; } } catch (e) { } try { if (typeof _w.top.executeChapterJump === "function") { _w.top.executeChapterJump(); return; } } catch (e) { } try { if (typeof _w.parent.executeChapterJump === "function") { _w.parent.executeChapterJump(); return; } } catch (e) { } }, 1200); } function switchNextTabInChapter() { try { for (const doc of getAccessibleDocs()) { const selectors = [ ".prev_ul li, ul.prev_title li, .card-tabs li, [class*='prev_ul'] li", ".tabtags span, .tabtags a, [class*='tabtags'] span, [class*='tabtags'] a" ]; for (const selector of selectors) { const candidates = Array.from(doc.querySelectorAll(selector)); const tabs = candidates.filter((el) => !candidates.some((parent) => parent !== el && parent.contains(el))); if (tabs.length < 2) continue; const activeIdx = tabs.findIndex( (el) => el.classList.contains("active") || el.classList.contains("currents") || el.getAttribute("aria-selected") === "true" ); if (activeIdx < 0) { safeLog("\u7AE0\u8282\u6807\u7B7E\u5C1A\u672A\u6807\u660E\u5F53\u524D\u4F4D\u7F6E\uFF0C\u4FDD\u6301\u672C\u9875\u7B49\u5F85\u68C0\u67E5", "orange"); return true; } const completed = (el) => /icon_Completed|catalog_points_done|roundpoint\s+blue/i.test(el.innerHTML || ""); let targetIdx = tabs.findIndex((el, idx) => idx > activeIdx && !completed(el)); if (targetIdx < 0) { targetIdx = tabs.findIndex((el, idx) => idx < activeIdx && !completed(el) && (/catalog_points_yi|orange|f_orange|unfinish/.test(el.innerHTML || "") || /\([1-9]\d*\)/.test(el.textContent || ""))); } if (targetIdx < 0) continue; const targetTab = tabs[targetIdx]; const targetName = targetTab.textContent.trim().replace(/\s+/g, " ") || "\u6807\u7B7E " + (targetIdx + 1); safeLog("\u6B63\u5728\u68C0\u67E5\u5F53\u524D\u7AE0\u8282\u540E\u7EED\u6807\u7B7E\u9875\u3010" + targetName + "\u3011...", "cyan"); const clickable = targetTab.hasAttribute("onclick") ? targetTab : targetTab.querySelector("a, [onclick]") || targetTab; setTimeout(() => { try { clickable.click(); } catch (e) { safeLog("\u6807\u7B7E\u5207\u6362\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u9875\u9762", "orange"); } }, 1e3); setTimeout(() => { if (hasQuestionsOnPage() && _w.top.dripDoWork == "1") { triggerDirectAiAnswer(); } }, 3e3); return true; } } } catch (e) { console.error("switchNextTabInChapter error:", e); return true; } return false; } function isCompletedWorkFrame(frame, jobid, expectedCourse, expectedChapter) { var _a; try { const doc = frame.contentDocument; const url = new URL(doc.location.href); return /\/work\/phone\/selectWorkQuestionYiPiYue$/.test(url.pathname) && url.searchParams.get("jobId") === String(jobid) && url.searchParams.get("courseId") === String(expectedCourse) && url.searchParams.get("knowledgeId") === String(expectedChapter) && ((_a = doc.querySelector(".hetNumber .finish")) == null ? void 0 : _a.textContent.trim()) === "\u5DF2\u5B8C\u6210"; } catch (e) { return false; } } function triggerDirectAiAnswer(taskName) { taskName = taskName || "\u8BFE\u540E\u6D4B\u9A8C/\u4F5C\u4E1A"; safeLog("\u68C0\u6D4B\u5230\u672C\u9875\u5305\u542B\u6D4B\u9A8C/\u4F5C\u4E1A\u9898\u76EE\uFF0C\u6B63\u5728\u8C03\u7528 AI \u667A\u80FD\u7B54\u9898\u6A21\u5757...", "cyan"); const targetWins = [window, window.top, window.parent].filter(Boolean); const onDone = (res) => { const detail = res && res.detail || res && res.data && res.data.detail || res || {}; if (detail.success === true) { safeLog("AI \u7B54\u9898\u5E76\u63D0\u4EA4\u5B8C\u6210\uFF01\u51C6\u5907\u5207\u6362\u540E\u7EED\u4EFB\u52A1...", "green"); setTimeout(() => { if (!switchNextTabInChapter()) { triggerNextChapter("AI \u7B54\u9898\u5DF2\u5B8C\u6210"); } }, 3e3); } else { safeLog("AI \u7B54\u9898\u672A\u5B8C\u6210\u6216\u63D0\u4EA4\u5931\u8D25\uFF0C\u5DF2\u6682\u505C\u81EA\u52A8\u8DF3\u7AE0\uFF01\u4FDD\u6301\u5F53\u524D\u9875\u9762\u4F9B\u68C0\u67E5", "red"); _w.jump = false; if (_w.top) _w.top.jump = false; } }; targetWins.forEach((w) => { try { w.addEventListener("drip-ai-work-completed", onDone, { once: true }); } catch (e) { } try { w.dispatchEvent(new CustomEvent("drip-call-ai-work", { detail: { name: taskName, autoSubmit: true } })); w.postMessage({ type: "drip-call-ai-work", detail: { name: taskName, autoSubmit: true } }, "*"); } catch (e) { } }); window.addEventListener("message", (msg) => { if (msg.data && msg.data.type === "drip-ai-work-completed") onDone(msg.data); }, { once: true }); } if (_l.href.indexOf("knowledge/cards") > 0) { let spans = _d.getElementsByTagName("span"); for (let i = 0, l = spans.length; i < l; i++) { if (spans[i].innerHTML.indexOf("\u7AE0\u8282\u672A\u5F00\u653E") != -1) { if (_l.href.indexOf("ut=s") != -1) { _l.href = _l.href.replace("ut=s", "ut=t").replace(/&cpi=[0-9]{1,10}/, ""); } else if (_l.href.indexOf("ut=t") != -1) { spans[i].innerHTML = "\u6B64\u8BFE\u7A0B\u4E3A\u95EF\u5173\u6A21\u5F0F\uFF0C\u8BF7\u56DE\u5230\u4E0A\u4E00\u7AE0\u8282\u5B8C\u6210\u5B66\u4E60\u4EFB\u52A1\uFF01"; return; } break; } } _w.top.dripPageRd = String(Math.random()); if (!isFf) { try { cVersion = parseInt(navigator.userAgent.match(/Chrome\/[0-9]{2,3}./)[0].replace("Chrome/", "").replace(".", "")); } catch (e) { } } var busyThread = 0, getStr = (str, start, end) => { let res = str.substring(str.indexOf(start), str.indexOf(end)).replace(start, ""); return res; }, scripts = _d.getElementsByTagName("script"), param = null; for (let i = 0, l = scripts.length; i < l; i++) { if (scripts[i].innerHTML.indexOf('mArg = "";') != -1 && scripts[i].innerHTML.indexOf( "==UserScript==" ) == -1) { param = getStr(scripts[i].innerHTML, "try{\n mArg = ", ";\n}catch(e){"); } } if (param == null) { return; } try { vrefer = _d.getElementsByClassName("ans-attach-online ans-insertvideo-online")[0].src; } catch (e) { vrefer = _p + "//" + _h + "/ananas/modules/video/index.html?v=2022-1118-1729"; } GM_setValue("vrefer", vrefer); GM_setValue("host", _h); var tikutoken = GM_getValue("tikutoken"); if (tikutoken == null) { tikutoken = ""; } var base222 = `data:image/png;base64,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`; _d.getElementsByTagName("html")[0].innerHTML = ` \u5B66\u4E60\u901A\u5C0F\u52A9\u624B
\u8BFE\u7A0B\u5B66\u4E60 \u5927\u9E1F\u5B66\u4E60\u901A\u52A9\u624B
\u8BFB\u53D6\u8BFE\u7A0B\u8FDB\u5EA6
\u8BFE\u7A0B\u7AE0\u8282\u8FDB\u5EA6
--% (\u5DF2\u5B8C\u6210 -- / \u5171 --)
\u672C\u8282\u4EFB\u52A1: \u68C0\u6D4B\u4E2D... \u5269\u4F59\u4EFB\u52A1: -- \u4E2A\u4EFB\u52A1\u70B9
\u53C2\u8003\u8017\u65F6 --
\u6309\u6BCF\u4E2A\u4EFB\u52A1 5 \u5206\u949F\u548C\u5F53\u524D\u500D\u901F\u7C97\u7B97\uFF0C\u5B9E\u9645\u4EE5\u4EFB\u52A1\u7C7B\u578B\u4E0E\u5E73\u53F0\u8FDB\u5EA6\u4E3A\u51C6\u3002
\u89C6\u9891\u5B66\u4E60\u8BBE\u7F6E \u53EF\u8BBE\u7F6E 1\u20135 \u500D\u901F\uFF0C\u5B9E\u9645\u4EE5\u5E73\u53F0\u5141\u8BB8\u8303\u56F4\u4E3A\u51C6
\u672C\u8282\u4EFB\u52A1 \u81EA\u52A8\u68C0\u6D4B
\u8FD0\u884C\u65E5\u5FD7
[\u6E05\u7A7A]
[00:00:00]\u5982\u679C\u6B64\u63D0\u793A\u4E0D\u6D88\u5931\uFF0C\u8BF4\u660E\u9875\u9762\u51FA\u73B0\u4E86\u9519\u8BEF\uFF0C\u8BF7\u8054\u7CFB\u4F5C\u8005
`; try { CourseUx.mountCourseUx(_d, () => { const chapters = getCatalogNodes().map((node) => ({ node, item: parseChapterNode(node) })).filter(({ node, item }) => item && isTaskChapter(node, item)).map(({ item }) => item); return { chapters, missions: typeof missionList === "undefined" ? [] : Object.values(missionList).filter(Boolean), tasksReady: _d.documentElement.dataset.dripUxTasksReady === "true", taskCount: typeof jobList === "undefined" ? 0 : jobList.length }; }); } catch (e) { console.error(e); } var logs = { "logArry": [], "addLog": function(str, color = "black") { var _a; if (this.logArry.length >= 50) { this.logArry.splice(0, 1); } var nowTime2 = /* @__PURE__ */ new Date(); var nowHour = (Array(2).join(0) + nowTime2.getHours()).slice(-2); var nowMin = (Array(2).join(0) + nowTime2.getMinutes()).slice(-2); var nowSec = (Array(2).join(0) + nowTime2.getSeconds()).slice(-2); const entry = "[" + nowHour + ":" + nowMin + ":" + nowSec + "] " + str + ""; this.logArry.push(entry); const logTarget = _d.getElementById("log"); if (!logTarget) return; (_a = logTarget.querySelector("[data-log-placeholder]")) == null ? void 0 : _a.remove(); const line = _d.createElement("div"); line.dataset.legacyLog = ""; line.innerHTML = entry; logTarget.appendChild(line); const legacyRows = logTarget.querySelectorAll("[data-legacy-log]"); for (let i = 0; i < legacyRows.length - 50; i++) legacyRows[i].remove(); while (logTarget.children.length > 300) logTarget.firstElementChild.remove(); var scrollTarget = _d.getElementById("result") || logTarget; if (scrollTarget) { scrollTarget.scrollTop = scrollTarget.scrollHeight; } } }, htmlHook = setInterval(function() { if (_d.getElementById("dripRate") && _d.getElementById("updateRateButton") && _d.getElementById("reviewModeButton") && _d.getElementById("autoDoWorkButton") && _d.getElementById("autoSubmitButton") && _d.getElementById("autoSaveButton")) { let updateBgBtnUI2 = function(active) { if (!bgBtn) return; if (active) { bgBtn.classList.add("btn-success"); bgBtn.setAttribute("title", "\u5173\u95ED\u540E\u53F0\u6302\u673A\uFF1B\u4E0D\u505C\u6B62\u8BFE\u7A0B\u5B66\u4E60"); bgBtn.innerHTML = '\u540E\u53F0\u6302\u673A\uFF1A\u5F00'; } else { bgBtn.classList.remove("btn-success"); bgBtn.setAttribute("title", "\u5F00\u542F\u540E\u53F0\u6302\u673A\uFF1B\u4E0D\u542F\u52A8\u8BFE\u7A0B\u5B66\u4E60"); bgBtn.innerHTML = '\u540E\u53F0\u6302\u673A\uFF1A\u5173'; } }, updateCourseOverview3 = function() { try { var pFill = _d.getElementById("overviewProgressFill"); var pPercent = _d.getElementById("overviewPercent"); var pCounts = _d.getElementById("overviewCounts"); var pScope = _d.getElementById("overviewScope"); var pSource = _d.getElementById("courseProgressSource"); var pChapter = _d.getElementById("overviewChapterTask"); var pPending = _d.getElementById("overviewPendingCount"); var pTime = _d.getElementById("overviewEstimateTime"); if (!pFill) return; pFill.removeAttribute("data-lt-progress"); var catalogElements = getCatalogNodes(); var totalChapters = 0; var completedChapters = 0; var pendingTaskPoints = 0; var currentChapterPending = 0; for (var i = 0; i < catalogElements.length; i++) { var el = catalogElements[i]; var item = parseChapterNode(el); if (!item) continue; if (!isTaskChapter(el, item)) { continue; } totalChapters++; if (item.isCompleted) { completedChapters++; } else if (!item.isLocked) { pendingTaskPoints += item.badgeCount > 0 ? item.badgeCount : 1; } if (item.isActive) { currentChapterPending = item.badgeCount; } } var allCatalogComplete = totalChapters > 0 && completedChapters === totalChapters; var doneThisChap = 0; var totalThisChap = 0; if (typeof jobList !== "undefined" && Array.isArray(jobList)) { totalThisChap = jobList.length; if (typeof missionList !== "undefined") { for (var k in missionList) { if (missionList[k] && missionList[k].done) doneThisChap++; } } } if (pChapter) { if (totalThisChap > 0) { pChapter.innerText = "\u5DF2\u5B8C\u6210 " + doneThisChap + "/" + totalThisChap; } else if (currentChapterPending > 0) { pChapter.innerText = currentChapterPending + " \u4E2A\u4EFB\u52A1\u70B9\u5F85\u5B8C\u6210"; } else if (allCatalogComplete) { pChapter.innerText = "\u6574\u95E8\u8BFE\u7A0B\u5DF2\u5168\u90E8\u5B8C\u6210"; } else { pChapter.innerText = "\u81EA\u52A8\u68C0\u6D4B\u4E2D"; } } if (totalChapters > 0) { var percentVal = Math.min(100, Math.round(completedChapters / totalChapters * 100)); if (allCatalogComplete) { percentVal = 100; } if (pPercent) pPercent.innerText = percentVal + "%"; if (pScope) pScope.innerText = "\u8BFE\u7A0B\u7AE0\u8282\u8FDB\u5EA6"; if (pSource) pSource.innerText = "\u8FDB\u5EA6\u6765\u81EA\u8BFE\u7A0B\u76EE\u5F55"; if (pCounts) pCounts.innerText = "(\u5DF2\u5B8C\u6210 " + completedChapters + " / \u5171 " + totalChapters + " \u4E2A\u7AE0\u8282)"; if (pFill) pFill.style.width = percentVal + "%"; pFill.setAttribute("data-lt-progress", String(percentVal)); if (pPending) { pPending.innerText = allCatalogComplete ? "0 \u4E2A\u4EFB\u52A1\u70B9 (\u76EE\u5F55\u4EFB\u52A1\u5DF2\u5B8C\u6210)" : pendingTaskPoints <= 0 ? "\u6682\u65E0\u5DF2\u5F00\u653E\u5F85\u5B8C\u6210\u4EFB\u52A1" : pendingTaskPoints + " \u4E2A\u4EFB\u52A1\u70B9"; } } else { if (pScope) pScope.innerText = "\u672C\u8282\u4EFB\u52A1\u8FDB\u5EA6"; if (pSource) pSource.innerText = "\u8FDB\u5EA6\u6765\u81EA\u672C\u8282\u4EFB\u52A1"; if (totalThisChap > 0) { var pVal = Math.min(100, Math.round(doneThisChap / totalThisChap * 100)); if (pPercent) pPercent.innerText = pVal + "%"; if (pCounts) pCounts.innerText = "(\u672C\u8282 " + doneThisChap + " / " + totalThisChap + ")"; if (pFill) pFill.style.width = pVal + "%"; pFill.setAttribute("data-lt-progress", String(pVal)); } if (pPending) pPending.innerText = totalThisChap - doneThisChap + " \u4E2A\u4EFB\u52A1\u70B9"; } if (pTime) { var curRate = typeof rate !== "undefined" && rate > 0 ? rate : 1; var remainingSec = Math.round(pendingTaskPoints * (300 / curRate)); if (pendingTaskPoints <= 0) { pTime.innerText = allCatalogComplete ? "\u5DF2\u5168\u90E8\u5B8C\u6210" : "\u6682\u65E0\u5DF2\u5F00\u653E\u5F85\u5B8C\u6210\u4EFB\u52A1"; } else if (remainingSec >= 3600) { pTime.innerText = "~" + (remainingSec / 3600).toFixed(1) + " \u5C0F\u65F6"; } else { pTime.innerText = "~" + Math.max(1, Math.round(remainingSec / 60)) + " \u5206\u949F"; } } } catch (err) { var fillOnError = _d.getElementById("overviewProgressFill"); if (fillOnError) fillOnError.removeAttribute("data-lt-progress"); console.error("updateCourseOverview error:", err); } }; var updateBgBtnUI = updateBgBtnUI2, updateCourseOverview2 = updateCourseOverview3; clearInterval(htmlHook); if (cVersion < 86) { logs.addLog( '\u60A8\u7684\u6D4F\u89C8\u5668\u5185\u6838\u8FC7\u8001\uFF0C\u8BF7\u66F4\u65B0\u7248\u672C\u6216\u4F7F\u7528\u4E3B\u6D41\u6D4F\u89C8\u5668\uFF0C\u63A8\u8350edge\u6D4F\u89C8\u5668', "red" ); stop = true; return; } if (isMobile) { logs.addLog("\u624B\u673A\u6D4F\u89C8\u5668\u4E0D\u4FDD\u8BC1\u80FD\u6B63\u5E38\u8FD0\u884C\u6B64\u811A\u672C", "orange"); } _d.addEventListener("visibilitychange", function() { let isH = _d.hidden; if (!isH) { logs.addLog("\u6302\u673A\u529F\u80FD\u4E0D\u7A33\u5B9A\uFF0C\u4E0D\u5EFA\u8BAE\u957F\u65F6\u95F4\u6700\u5C0F\u5316\u7A97\u53E3", "orange"); } }); const tokenInput = _d.getElementById("token"); const updateTokenButton = _d.getElementById("updateToken"); if (tokenInput && updateTokenButton) { tokenInput.value = ""; updateTokenButton.onclick = function() { var token2 = tokenInput.value; if (token2.length == 16) { logs.addLog("\u9898\u5E93token\u5DF2\u66F4\u65B0\u4E3A" + token2, "green"); GM_setValue("tikutoken", token2); } else { logs.addLog("\u8BF7\u68C0\u67E5\u9898\u5E93token", "green"); } }; } _d.getElementById("accuracy").value = accuracy; _d.getElementById("updateaccuracy").onclick = function() { var uaccuracy = _d.getElementById("accuracy").value; if (parseFloat(uaccuracy) == parseInt(uaccuracy)) { uaccuracy = parseInt(uaccuracy); } else { uaccuracy = parseFloat(uaccuracy); } GM_setValue("accuracy", uaccuracy); accuracy = uaccuracy; if (uaccuracy >= 0 && uaccuracy <= 100) { logs.addLog("\u7AE0\u8282\u6D4B\u8BD5\u6B63\u786E\u7387\u5DF2\u66F4\u65B0\u4E3A" + uaccuracy + "%\uFF0C\u5C06\u57283\u79D2\u5185\u751F\u6548", "green"); } else { logs.addLog("\u5947\u602A\u6B63\u786E\u7387", "orange"); } }; const syncSpeedPills = (targetRate) => { const pills = _d.querySelectorAll(".speed-pill"); pills.forEach((pill) => { if (parseFloat(pill.getAttribute("data-speed")) === parseFloat(targetRate)) { pill.classList.add("active"); } else { pill.classList.remove("active"); } }); _d.dispatchEvent(new Event("drip-speed-sync")); }; _d.getElementById("dripRate").value = rate; syncSpeedPills(rate); _d.getElementById("updateRateButton").onclick = function() { let urate = _d.getElementById("dripRate").value; if (parseFloat(urate) == parseInt(urate)) { urate = parseInt(urate); } else { urate = parseFloat(urate); } GM_setValue("courseRate", urate); rate = urate; syncSpeedPills(urate); if (typeof updateCourseOverview3 === "function") updateCourseOverview3(); if (urate > 0) { logs.addLog("\u89C6\u9891\u500D\u901F\u5DF2\u66F4\u65B0\u4E3A" + urate + "\u500D\uFF0C\u5C06\u57283\u79D2\u5185\u751F\u6548", "green"); } else { logs.addLog("\u5947\u602A\u7684\u500D\u901F\uFF0C\u5C06\u4F1A\u81EA\u52A8\u8DF3\u8FC7\u89C6\u9891\u4EFB\u52A1", "orange"); } }; const clearBtn = _d.getElementById("clearLogBtn"); if (clearBtn) { clearBtn.onclick = function() { logs.logArry = []; _d.getElementById("log").innerHTML = ""; }; } const bgBtn = _d.getElementById("backGround"); if (typeof _w.top.backNow === "undefined") { _w.top.backNow = 1; } updateBgBtnUI2(_w.top.backNow == 1); if (typeof updateCourseOverview3 === "function") { setTimeout(updateCourseOverview3, 800); setInterval(updateCourseOverview3, 8e3); } bgBtn.onclick = function() { if (_w.top.backNow == 1) { _w.top.backNow = 0; updateBgBtnUI2(false); logs.addLog("\u5DF2\u5173\u95ED\u540E\u53F0\u6302\u673A\uFF0C\u9875\u9762\u6700\u5C0F\u5316\u65F6\u53EF\u80FD\u6682\u505C", "orange"); try { if (_w.top.audioPlayer) _w.top.audioPlayer.pause(); if (_w.audioPlayer) _w.audioPlayer.pause(); } catch (e) { } try { if (_d.hidden) { _d.title = "\u26A0\uFE0F\u8BF7\u5148\u6FC0\u6D3B\u6302\u673A"; if (_w.top.document) _w.top.document.title = "\u26A0\uFE0F\u8BF7\u5148\u6FC0\u6D3B\u6302\u673A"; } } catch (e) { } } else { _w.top.backNow = 1; updateBgBtnUI2(true); logs.addLog("\u540E\u53F0\u6302\u673A\u5DF2\u5F00\u542F\uFF0C\u60A8\u73B0\u5728\u53EF\u4EE5\u6700\u5C0F\u5316\u9875\u9762\u4E86", "green"); try { var player = _w.top.audioPlayer || _w.audioPlayer; if (player && (_d.hidden || _w.top.document && _w.top.document.hidden)) { var p = player.play(); if (p && p.catch) p.catch(function() { }); } } catch (e) { } } }; _d.getElementById("reviewModeButton").onclick = function() { let reviewButton = _d.getElementById("reviewModeButton"); if (reviewButton.getAttribute("class") == "btn btn-default") { _d.getElementById("reviewModeButton").setAttribute("class", "btn btn-success"); GM_setValue("courseReview", "1"); _w.top.dripReviewMode = "1"; } else { _d.getElementById("reviewModeButton").setAttribute("class", "btn btn-default"); GM_setValue("courseReview", "0"); _w.top.dripReviewMode = "0"; } }; _d.getElementById("autoDoWorkButton").onclick = function() { let autoDoWorkButton = _d.getElementById("autoDoWorkButton"); if (autoDoWorkButton.getAttribute("class") == "btn btn-default") { _d.getElementById("autoDoWorkButton").setAttribute("class", "btn btn-success"); GM_setValue("courseDoWork", "1"); _w.top.dripDoWork = "1"; } else { _d.getElementById("autoDoWorkButton").setAttribute("class", "btn btn-default"); GM_setValue("courseDoWork", "0"); _w.top.dripDoWork = "0"; } }; _d.getElementById("autoSubmitButton").onclick = function() { let autoSubmitButton = _d.getElementById("autoSubmitButton"); if (autoSubmitButton.getAttribute("class") == "btn btn-default") { _d.getElementById("autoSubmitButton").setAttribute("class", "btn btn-success"); GM_setValue("courseAutoSubmit", "1"); _w.top.dripAutoSubmit = "1"; } else { _d.getElementById("autoSubmitButton").setAttribute("class", "btn btn-default"); GM_setValue("courseAutoSubmit", "0"); _w.top.dripAutoSubmit = "0"; } }; _d.getElementById("autoSaveButton").onclick = function() { let autoSaveButton = _d.getElementById("autoSaveButton"); if (autoSaveButton.getAttribute("class") == "btn btn-default") { _d.getElementById("autoSaveButton").setAttribute("class", "btn btn-success"); GM_setValue("courseAutoSave", "1"); _w.top.dripAutoSave = "1"; } else { _d.getElementById("autoSaveButton").setAttribute("class", "btn btn-default"); GM_setValue("courseAutoSave", "0"); _w.top.dripAutoSave = "0"; } }; } }, 100), markMissionFailed = (mission, reason) => { var _a; if (!mission || mission.done || mission.failed) return; mission.failed = true; mission.failedReason = reason; mission.running = false; try { (_a = mission.cancel) == null ? void 0 : _a.call(mission); } catch (e) { } logs.addLog("\u4EFB\u52A1\u3010" + (mission.name || mission.jobid || "\u672A\u77E5") + "\u3011\u672A\u5B8C\u6210\uFF1A" + reason + "\uFF1B\u7EE7\u7EED\u68C0\u67E5\u672C\u7AE0\u5176\u4ED6\u4EFB\u52A1", "red"); }, loopjob = () => { if (_w.top.dripScriptList.length > 1) { logs.addLog("\u60A8\u540C\u65F6\u5F00\u542F\u4E86\u591A\u4E2A\u5237\u8BFE\u811A\u672C\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1\uFF0C\u4F1A\u6302\u79D1", "red"); } if (cVersion < 8.6 * 10) { logs.addLog( '\u60A8\u7684\u6D4F\u89C8\u5668\u5185\u6838\u8FC7\u8001\uFF0C\u8BF7\u66F4\u65B0\u7248\u672C\u6216\u4F7F\u7528\u4E3B\u6D41\u6D4F\u89C8\u5668\uFF0C\u63A8\u8350edge\u6D4F\u89C8\u5668', "red" ); stop = true; return; } if (stop) { return; } let missionli = missionList; if (missionli == []) { setTimeout(loopjob, 500); return; } for (let itemName in missionli) { if (missionli[itemName]["running"]) { const mission = missionli[itemName]; const timeoutMs = mission.type === "work" ? 21e4 : mission.type === "document" ? 9e4 : 3e5; if (mission.lastProgressAt && Date.now() - mission.lastProgressAt > timeoutMs) { markMissionFailed(mission, "\u7B49\u5F85\u4EFB\u52A1\u8FDB\u5C55\u8D85\u65F6"); break; } setTimeout(loopjob, 500); return; } } for (let itemName in missionli) { if (!missionli[itemName]["done"] && !missionli[itemName]["failed"]) { missionli[itemName].lastProgressAt = Date.now(); switch (missionli[itemName]["type"]) { case "video": doVideo(missionli[itemName]); break; case "document": doDocument(missionli[itemName]); break; case "work": doWork(missionli[itemName]); break; } setTimeout(loopjob, 500); return; } } const failedMissions = Object.values(missionli).filter((mission) => mission.failed); if (failedMissions.length) { if (failedMissions.some((mission) => mission.type === "work" || /平台限制|平台停止/.test(mission.failedReason || ""))) { logs.addLog("\u672C\u9875\u4ECD\u6709\u6D4B\u9A8C\u5931\u8D25\u6216\u5E73\u53F0\u9650\u5236\uFF0C\u8BF7\u68C0\u67E5\u539F\u56E0\u540E\u7EE7\u7EED", "red"); return; } deferFailedTasks(failedMissions); return; } if (busyThread <= 0) { if (switchNextTabInChapter()) { clearInterval(loopjob); return; } if (jumpType != 2) { triggerNextChapter("\u672C\u7AE0\u8282\u6240\u6709\u4EFB\u52A1\u5904\u7406\u5B8C\u6BD5"); } else { logs.addLog("\u6240\u6709\u4EFB\u52A1\u5904\u7406\u5B8C\u6BD5\uFF0C\u7528\u6237\u8BBE\u7F6E\u4E3A\u4E0D\u8DF3\u8F6C", "green"); } clearInterval(loopjob); } else { setTimeout(loopjob, 500); } }, readyCheck = () => { setTimeout(function() { try { if (!isCat) { logs.addLog( '\u63A8\u8350\u4F7F\u7528\u811A\u672C\u732B\u8FD0\u884C\u6B64\u811A\u672C\uFF0C\u4F7F\u7528\u5176\u4ED6\u811A\u672C\u7BA1\u7406\u5668\u4E0D\u4FDD\u8BC1\u80FD\u6B63\u5E38\u8FD0\u884C', "orange" ); } if (_w.top.dripReviewMode == "1") { _d.getElementById("reviewModeButton").setAttribute("class", [ "btn btn-default", "btn btn-success" ][_w.top.dripReviewMode]); } if (_w.top.dripDoWork == "1") { _d.getElementById("autoDoWorkButton").setAttribute("class", [ "btn btn-default", "btn btn-success" ][_w.top.dripDoWork]); } _d.getElementById("autoSubmitButton").setAttribute("class", [ "btn btn-default", "btn btn-success" ][_w.top.dripAutoSubmit]); _d.getElementById("autoSaveButton").setAttribute("class", [ "btn btn-default", "btn btn-success" ][_w.top.dripAutoSave]); } catch (e) { console.log(e); readyCheck(); return; } }, 500); }; readyCheck(); try { var pageData = JSON.parse(param); } catch (e) { if (hasQuestionsOnPage() && _w.top.dripDoWork == "1") { triggerDirectAiAnswer(); return; } if (switchNextTabInChapter()) { return; } if (jumpType != 2) { triggerNextChapter("\u672C\u7AE0\u8282\u6807\u7B7E\u9875\u5904\u7406\u5B8C\u6BD5"); } else { logs.addLog("\u6B64\u9875\u65E0\u4EFB\u52A1\uFF0C\u7528\u6237\u8BBE\u7F6E\u4E3A\u4E0D\u8DF3\u8F6C", "green"); } return; } var data = pageData["defaults"], jobList = [], classId = data["clazzId"], chapterId = data["knowledgeid"], reportUrl = data["reportUrl"], ktoken = data["ktoken"]; UID = UID || data["userid"]; FID = FID || data["fid"]; for (let i = 0, l = pageData["attachments"].length; i < l; i++) { let item = pageData["attachments"][i]; if (item["job"] != true || item["isPassed"] == true) { if (_w.top.dripReviewMode == "1" && item["type"] == "video") { jobList.push(item); } continue; } else { jobList.push(item); } } var video_getReady = (item) => { let statusUrl = _p + "//" + _h + "/ananas/status/" + item["property"]["objectid"] + "?k=" + FID + "&flag=normal&_dc=" + String(Math.round(/* @__PURE__ */ new Date())), doubleSpeed = item["property"]["doublespeed"]; const mission = missionList["m" + item["jobid"]] = { type: "video", jobid: item["jobid"], name: item["property"]["name"], done: false, running: true, lastProgressAt: Date.now() }; busyThread += 1; let settled = false; const finishStatus = () => { if (settled) return false; settled = true; busyThread -= 1; return true; }; GM_xmlhttpRequest({ method: "get", timeout: 15e3, headers: { "Host": _h, "Referer": vrefer, "Sec-Fetch-Site": "same-origin" }, url: statusUrl, onload: function(res) { if (!finishStatus() || mission.failed) return; try { let videoInfo = JSON.parse(res.responseText), duration = videoInfo["duration"], dtoken = videoInfo["dtoken"]; if (duration == void 0) { appendJobRow(_d, `[\u65E0\u6548\u89C6\u9891]` + item["property"]["name"]); markMissionFailed(mission, "\u89C6\u9891\u72B6\u6001\u7F3A\u5C11\u65F6\u957F"); return; } Object.assign(mission, { "module": item["property"]["module"], "type": "video", "dtoken": dtoken, "duration": duration, "objectId": item["property"]["objectid"], "rt": item["property"]["rt"] || "0.9", "otherInfo": item["otherInfo"], "doublespeed": doubleSpeed, "jobid": item["jobid"], "name": item["property"]["name"], "done": false, "running": false }); appendJobRow(_d, `[\u89C6\u9891]` + item["property"]["name"]); } catch (e) { markMissionFailed(mission, "\u89C6\u9891\u72B6\u6001\u89E3\u6790\u5931\u8D25"); } }, onerror: function(err) { if (!finishStatus()) return; console.log(err); if (String((err == null ? void 0 : err.error) || "").includes("@connect list")) { logs.addLog("\u8BF7\u6DFB\u52A0\u5B89\u5168\u7F51\u5740\uFF0C\u5C06 \u3010 //@connect " + _h + " \u3011\u65B9\u62EC\u53F7\u91CC\u7684\u5185\u5BB9(\u4E0D\u5305\u62EC\u65B9\u62EC\u53F7)\u6DFB\u52A0\u5230\u811A\u672C\u4EE3\u7801\u5185\u6307\u5B9A\u4F4D\u7F6E\uFF0C\u5426\u5219\u811A\u672C\u65E0\u6CD5\u6B63\u5E38\u8FD0\u884C\uFF0C\u5982\u56FE\u6240\u793A\uFF1A", "red"); logs.addLog( '' ); stop = true; } else { logs.addLog("\u83B7\u53D6\u4EFB\u52A1\u8BE6\u60C5\u5931\u8D25", "red"); logs.addLog("\u9519\u8BEF\u539F\u56E0\uFF1A" + ((err == null ? void 0 : err.error) || "\u672A\u77E5\u9519\u8BEF"), "red"); } markMissionFailed(mission, "\u83B7\u53D6\u89C6\u9891\u4EFB\u52A1\u72B6\u6001\u5931\u8D25"); }, ontimeout: function() { if (!finishStatus()) return; markMissionFailed(mission, "\u83B7\u53D6\u89C6\u9891\u4EFB\u52A1\u72B6\u6001\u8D85\u65F6"); } }); }, doVideo = (item) => { if (rate <= 0) { markMissionFailed(missionList["m" + item["jobid"]], "\u89C6\u9891\u500D\u901F\u65E0\u6548\uFF0C\u8BF7\u8BBE\u7F6E\u4E3A\u6B63\u6570"); return; } const effectiveRate = () => item.doublespeed == 0 ? Math.min(Number(rate), 1) : Number(rate); if (item.doublespeed == 0 && rate > 1) logs.addLog("\u5F53\u524D\u89C6\u9891\u4E0D\u5141\u8BB8\u500D\u901F\uFF0C\u6309 1.0x \u8FD0\u884C\uFF1B\u5B8C\u6210\u72B6\u6001\u4EE5\u5E73\u53F0\u8FD4\u56DE\u4E3A\u51C6", "orange"); let videojs_id = String(parseInt(Math.random() * 9999999)); _d.cookie = "videojs_id=" + videojs_id + ";path=/"; logs.addLog("\u5F00\u59CB\u5237\u89C6\u9891\uFF1A" + item["name"] + "\uFF0C\u500D\u901F\uFF1A" + String(effectiveRate()) + "\u500D"); logs.addLog("\u89C6\u9891\u89C2\u770B\u4FE1\u606F\u6BCF60\u79D2\u4E0A\u62A5\u4E00\u6B21\uFF0C\u8BF7\u8010\u5FC3\u7B49\u5F85", "green"); logs.addLog("\u5982\u9047\u8FD0\u884C\u5F02\u5E38\uFF0C\u8BF7\u4FDD\u7559\u672C\u9875\u65E5\u5FD7\u5E76\u8054\u7CFB drip7boi\uFF1B\u66F4\u65B0\u52A9\u624B\u540E\u8BF7\u5237\u65B0\u8BFE\u7A0B\u9875\u9762\u3002", "orange"); if (disableMonitor) { logs.addLog("\u89E3\u9664\u591A\u7AEF\u5B66\u4E60\u76D1\u63A7\u6709\u6E05\u9664\u8FDB\u5EA6\u98CE\u9669\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528", "orange"); } let dtype = "Video"; if (item["module"].includes("audio")) { dtype = "Audio"; rt = ""; } let playTime = 0, playsTime = 0, isdrag = "3", times = 0, first = true, loop = setInterval(function() { if (item.failed) { clearInterval(loop); return; } if (rate <= 0) { clearInterval(loop); markMissionFailed(item, "\u89C6\u9891\u500D\u901F\u65E0\u6548\uFF0C\u8BF7\u8BBE\u7F6E\u4E3A\u6B63\u6570"); return; } rt = missionList["m" + item["jobid"]]["rt"]; playsTime += effectiveRate(); playTime = Math.ceil(playsTime); if (times == 0 || times % 30 == 0 || playTime >= item["duration"]) { let reportProgress = function() { if (item.failed) return; strEc = `[${classId}][${UID}][${item["jobid"]}][${item["objectId"]}][${playTime * 1e3}][d_yHJ!$pdA~5][${item["duration"] * 1e3}][0_${item["duration"]}]`; let enc = jq.md5(strEc); if (enc.length != 32) { clearInterval(loop); markMissionFailed(item, "\u89C6\u9891\u4E0A\u62A5\u53C2\u6570\u65E0\u6548"); return; } let reportsUrl = reportUrl + "/" + item["dtoken"] + "?clazzId=" + classId + "&playingTime=" + playTime + "&duration=" + item["duration"] + "&clipTime=0_" + item["duration"] + "&objectId=" + item["objectId"] + "&otherInfo=" + item["otherInfo"] + "&jobid=" + item["jobid"] + "&userid=" + UID + "&isdrag=" + isdrag + "&view=pc&enc=" + enc + "&rt=" + rt + "&dtype=" + dtype + "&_t=" + String(Math.round(/* @__PURE__ */ new Date())); GM_xmlhttpRequest({ method: "get", headers: { "Host": _h, "Referer": vrefer, "Sec-Fetch-Site": "same-origin", "Content-Type": "application/json" }, url: reportsUrl, onload: function(res2) { if (item.failed) return; try { let today = /* @__PURE__ */ new Date(), todayStr = today.getFullYear() + "d" + today.getMonth() + "d" + today.getDate(), timelong = GM_getValue( "courseTimeLong", {} ); if (timelong[UID] == void 0 || timelong[UID]["today"] != todayStr) { timelong[UID] = { "time": 0, "today": todayStr }; } else { timelong[UID]["time"]++; } GM_setValue( "courseTimeLong", timelong ); busyThread -= 1; item.lastProgressAt = Date.now(); if (timelong[UID]["time"] / 60 > 22 && item["doublespeed"] == 0 && _w.top.dripReviewMode == "0") { clearInterval(loop); logs.addLog( "\u4ECA\u65E5\u5B66\u4E60\u65F6\u95F4\u8FC7\u957F\uFF0C\u7EE7\u7EED\u5B66\u4E60\u4F1A\u5BFC\u81F4\u6E05\u7A7A\u8FDB\u5EA6\uFF0C\u8BF7\u660E\u5929\u518D\u6765", "red" ); markMissionFailed(item, "\u4ECA\u65E5\u5B66\u4E60\u65F6\u95F4\u8FBE\u5230\u5E73\u53F0\u9650\u5236"); return; } let ispass = JSON.parse(res2.responseText); first = false; if (ispass["isPassed"] && _w.top.dripReviewMode == "0") { logs.addLog("\u89C6\u9891\u4EFB\u52A1\u5DF2\u5B8C\u6210", "green"); missionList["m" + item["jobid"]]["running"] = false; missionList["m" + item["jobid"]]["done"] = true; clearInterval(loop); return; } else if (isdrag == "4") { if (_w.top.dripReviewMode == "1") { logs.addLog("\u89C6\u9891\u5DF2\u89C2\u770B\u5B8C\u6BD5", "green"); } else { logs.addLog( "\u89C6\u9891\u5DF2\u89C2\u770B\u5B8C\u6BD5\uFF0C\u4F46\u89C6\u9891\u4EFB\u52A1\u672A\u5B8C\u6210", "red" ); } if (_w.top.dripReviewMode == "1") { missionList["m" + item["jobid"]]["running"] = false; missionList["m" + item["jobid"]]["done"] = true; } else { markMissionFailed(item, "\u64AD\u653E\u7ED3\u675F\u4F46\u4EFB\u52A1\u70B9\u672A\u5B8C\u6210"); } try { clearInterval(loop); } catch (e) { } } else { missionList["m" + item["jobid"]].progress = item["duration"] > 0 ? Math.min(1, _bold_playTime / item["duration"]) : 0; logs.addLog(item["name"] + "\u5DF2\u89C2\u770B" + _bold_playTime + "\u79D2\uFF0C\u5269\u4F59\u5927\u7EA6" + String(item["duration"] - _bold_playTime) + "\u79D2"); } } catch (e) { console.log(e); if (res2.responseText.indexOf("\u9A8C\u8BC1\u7801") >= 0) { logs.addLog( '\u5DF2\u88AB\u8D85\u661F\u98CE\u63A7\uFF0C\u8BF7\u70B9\u6211\u5904\u7406\uFF0C60\u79D2\u540E\u81EA\u52A8\u5237\u65B0\u9875\u9762', "red" ); missionList["m" + item["jobid"]]["running"] = false; clearInterval(loop); stop = true; setTimeout(function() { _l.reload(); }, 6e4); return; } logs.addLog("\u8D85\u661F\u8FD4\u56DE\u9519\u8BEF\u4FE1\u606F\uFF0C\u5341\u79D2\u540E\u91CD\u8BD5", "red"); times = -10; return; } }, onerror: function(err) { console.log(err); if (err.error.indexOf("@connect list") >= 0) { logs.addLog( "\u8BF7\u6DFB\u52A0\u5B89\u5168\u7F51\u5740\uFF0C\u5C06 \u3010 //@connect " + _h + " \u3011\u65B9\u62EC\u53F7\u91CC\u7684\u5185\u5BB9(\u4E0D\u5305\u62EC\u65B9\u62EC\u53F7)\u6DFB\u52A0\u5230\u811A\u672C\u4EE3\u7801\u5185\u6307\u5B9A\u4F4D\u7F6E\uFF0C\u5426\u5219\u811A\u672C\u65E0\u6CD5\u6B63\u5E38\u8FD0\u884C\uFF0C\u5982\u56FE\u6240\u793A\uFF1A", "red" ); logs.addLog( '' ); stop = true; } else { logs.addLog("\u89C2\u770B\u89C6\u9891\u5931\u8D25", "red"); logs.addLog("\u9519\u8BEF\u539F\u56E0\uFF1A" + err.error, "red"); } missionList["m" + item["jobid"]]["running"] = false; clearInterval(loop); markMissionFailed(item, "\u89C6\u9891\u8FDB\u5EA6\u4E0A\u62A5\u5931\u8D25"); } }); }; if (first) { playTime = 0; } if (playTime >= item["duration"]) { clearInterval(loop); playTime = item["duration"]; isdrag = "4"; } else if (playTime > 0) { isdrag = "0"; } busyThread += 1; var _bold_playTime = playTime; reportProgress(); } times += 1; }, 1e3); missionList["m" + item["jobid"]]["running"] = true; item.cancel = () => clearInterval(loop); }, doDocument = (item) => { missionList["m" + item["jobid"]]["running"] = true; item.lastProgressAt = Date.now(); logs.addLog("\u5F00\u59CB\u5237\u6587\u6863\uFF1A" + item["name"]); setTimeout(function() { busyThread += 1; GM_xmlhttpRequest({ method: "get", url: _p + "//" + _h + "/ananas/job/document?jobid=" + item["jobid"] + "&knowledgeid=" + chapterId + "&courseid=" + courseId + "&clazzid=" + classId + "&jtoken=" + item["jtoken"], timeout: 3e4, onload: function(res) { if (item.failed) return; try { busyThread -= 1; let ispass = JSON.parse(res.responseText); if (ispass["status"]) { logs.addLog("\u6587\u6863\u4EFB\u52A1\u5DF2\u5B8C\u6210", "green"); item.done = true; } else { logs.addLog("\u6587\u6863\u5DF2\u9605\u8BFB\u5B8C\u6210\uFF0C\u4F46\u4EFB\u52A1\u70B9\u672A\u5B8C\u6210", "red"); markMissionFailed(item, "\u5E73\u53F0\u672A\u786E\u8BA4\u6587\u6863\u4EFB\u52A1\u5B8C\u6210"); } } catch (err) { console.log(err); console.log(res.responseText); logs.addLog("\u89E3\u6790\u6587\u6863\u5185\u5BB9\u5931\u8D25", "red"); markMissionFailed(item, "\u6587\u6863\u8FD4\u56DE\u5185\u5BB9\u65E0\u6CD5\u89E3\u6790"); } missionList["m" + item["jobid"]]["running"] = false; }, onerror: function(err) { if (item.failed) return; console.log(err); if (String((err == null ? void 0 : err.error) || "").includes("@connect list")) { logs.addLog("\u8BF7\u6DFB\u52A0\u5B89\u5168\u7F51\u5740\uFF0C\u5C06 \u3010 //@connect " + _h + " \u3011\u65B9\u62EC\u53F7\u91CC\u7684\u5185\u5BB9(\u4E0D\u5305\u62EC\u65B9\u62EC\u53F7)\u6DFB\u52A0\u5230\u811A\u672C\u4EE3\u7801\u5185\u6307\u5B9A\u4F4D\u7F6E\uFF0C\u5426\u5219\u811A\u672C\u65E0\u6CD5\u6B63\u5E38\u8FD0\u884C\uFF0C\u5982\u56FE\u6240\u793A\uFF1A", "red"); logs.addLog( '' ); stop = true; } else { logs.addLog("\u9605\u8BFB\u6587\u6863\u5931\u8D25", "red"); logs.addLog("\u9519\u8BEF\u539F\u56E0\uFF1A" + ((err == null ? void 0 : err.error) || "\u672A\u77E5\u9519\u8BEF"), "red"); } markMissionFailed(item, "\u8BFB\u53D6\u6587\u6863\u5931\u8D25"); }, ontimeout: function() { markMissionFailed(item, "\u8BFB\u53D6\u6587\u6863\u8D85\u65F6"); } }); }, parseInt(Math.random() * 2e3 + 9e3, 10)); }, doWork = (item) => { missionList["m" + item["jobid"]]["running"] = true; logs.addLog("\u5F00\u59CB\u5237\u7AE0\u8282\u6D4B\u8BD5\uFF1A" + item["name"]); logs.addLog("\u6B63\u5728\u52A0\u8F7D\u4F5C\u4E1A\u6846\u67B6\u5E76\u8C03\u7528 AI \u667A\u80FD\u505A\u9898\u6A21\u5757...", "blue"); let workPanel = _d.getElementById("workPanel"); let frameContent = _d.getElementById("frame_content"); if (workPanel) workPanel.style.display = "block"; if (frameContent) { let workUrl = _p + "//" + _h + "/work/phone/work?workId=" + String(item["jobid"]).replace("work-", "") + "&courseId=" + courseId + "&clazzId=" + classId + "&knowledgeId=" + chapterId + "&jobId=" + item["jobid"] + "&enc=" + (item["enc"] || ""); frameContent.src = workUrl; } let finished = false; const requestId = "work-" + item["jobid"] + "-" + Date.now() + "-" + Math.random().toString(36).slice(2); const targetWins = [window, window.top, window.parent].filter(Boolean); let progressTimer, resultTimer, failureTimer, dispatchTimer; const onAiProgress = () => { if (finished) return; item.lastProgressAt = Date.now(); clearTimeout(progressTimer); progressTimer = setTimeout(() => { logs.addLog("\u7AE0\u8282\u6D4B\u8BD5\u3010" + item["name"] + "\u3011\u8FDE\u7EED 3 \u5206\u949F\u6CA1\u6709\u4F5C\u7B54\u8FDB\u5C55\uFF0C\u4FDD\u6301\u672C\u9875\u4F9B\u68C0\u67E5", "orange"); completeTask(false); }, 18e4); }; const completeTask = (success = true) => { if (finished) return; finished = true; clearTimeout(progressTimer); clearTimeout(failureTimer); clearTimeout(dispatchTimer); clearInterval(resultTimer); targetWins.forEach((w) => { try { w.removeEventListener("message", onAiMessage); } catch (e) { } try { w.removeEventListener("drip-ai-work-progress", onAiProgress); } catch (e) { } try { w.removeEventListener("drip-ai-work-completed", onAiDone); } catch (e) { } }); if (success) { logs.addLog("\u7AE0\u8282\u6D4B\u8BD5\u3010" + item["name"] + "\u3011\u5DF2\u786E\u8BA4\u5B8C\u6210\uFF0C\u7EE7\u7EED\u540E\u7EED\u4EFB\u52A1", "green"); setTimeout(function() { if (workPanel) workPanel.style.display = "none"; if (frameContent) frameContent.src = ""; missionList["m" + item["jobid"]]["running"] = false; missionList["m" + item["jobid"]]["done"] = true; }, 3e3); } else { logs.addLog("\u7AE0\u8282\u6D4B\u8BD5\u3010" + item["name"] + "\u3011AI \u4F5C\u7B54\u672A\u5B8C\u6210\u6216\u63D0\u4EA4\u5931\u8D25\uFF0C\u5DF2\u6682\u505C\u81EA\u52A8\u8DF3\u7AE0\uFF01\u4FDD\u6301\u5F53\u524D\u9875\u9762\u4F9B\u68C0\u67E5", "red"); missionList["m" + item["jobid"]]["running"] = false; missionList["m" + item["jobid"]]["done"] = false; missionList["m" + item["jobid"]]["failed"] = true; _w.jump = false; if (_w.top) _w.top.jump = false; } }; const onAiDone = (e) => { if (finished) return; const res = e && e.detail || e && e.data && e.data.detail || e || {}; if (res.requestId !== requestId) return; if (res.success === true || isCompletedWorkFrame(frameContent, item.jobid, courseId, chapterId)) { completeTask(true); } else if (!failureTimer) { failureTimer = setTimeout(() => completeTask(isCompletedWorkFrame(frameContent, item.jobid, courseId, chapterId)), 15e3); } }; const onAiMessage = (msg) => { var _a; if (msg.origin !== location.origin || !targetWins.includes(msg.source)) return; if (((_a = msg.data) == null ? void 0 : _a.type) === "drip-ai-work-completed") onAiDone(msg.data); }; targetWins.forEach((w) => { try { w.addEventListener("drip-ai-work-completed", onAiDone); w.addEventListener("message", onAiMessage); w.addEventListener("drip-ai-work-progress", onAiProgress); } catch (err) { } }); const dispatchAi = () => targetWins.forEach((w) => { var _a, _b; try { w.dispatchEvent(new CustomEvent("drip-call-ai-work", { detail: { jobid: item["jobid"], requestId, name: item["name"] || ((_a = item["property"]) == null ? void 0 : _a["title"]) || "\u7AE0\u8282\u6D4B\u8BD5", autoSubmit: true } })); w.postMessage({ type: "drip-call-ai-work", detail: { jobid: item["jobid"], requestId, name: item["name"] || ((_b = item["property"]) == null ? void 0 : _b["title"]) || "\u7AE0\u8282\u6D4B\u8BD5", autoSubmit: true } }, "*"); } catch (err) { } }); const frameWaitStarted = Date.now(); const waitForWorkFrame = () => { if (finished) return; if (isCompletedWorkFrame(frameContent, item.jobid, courseId, chapterId)) { completeTask(true); return; } try { const doc = frameContent == null ? void 0 : frameContent.contentDocument; const url = new URL(doc.location.href); if (doc.readyState === "complete" && url.searchParams.get("jobId") === String(item.jobid) && url.searchParams.get("courseId") === String(courseId) && url.searchParams.get("knowledgeId") === String(chapterId) && !url.pathname.includes("selectWorkQuestionYiPiYue")) { dispatchAi(); return; } } catch (e) { } if (Date.now() - frameWaitStarted >= 3e4) { logs.addLog("\u6D4B\u9A8C\u9875\u9762\u672A\u80FD\u5C31\u7EEA\uFF0C\u4FDD\u7559\u73B0\u573A\u4F9B\u68C0\u67E5", "red"); completeTask(false); return; } dispatchTimer = setTimeout(waitForWorkFrame, 500); }; resultTimer = setInterval(() => { if (!finished && isCompletedWorkFrame(frameContent, item.jobid, courseId, chapterId)) completeTask(true); }, 500); dispatchTimer = setTimeout(waitForWorkFrame, 500); onAiProgress(); }, missionList = []; _d.documentElement.dataset.dripUxTasksReady = "true"; if (jobList.length <= 0) { if (hasQuestionsOnPage() && _w.top.dripDoWork == "1") { triggerDirectAiAnswer(); return; } if (switchNextTabInChapter()) { return; } if (jumpType != 2) { triggerNextChapter("\u672C\u7AE0\u8282\u6240\u6709\u6807\u7B7E\u9875\u5DF2\u68C0\u67E5\u5B8C\u6BD5"); } else { logs.addLog("\u6B64\u9875\u65E0\u4EFB\u52A1\uFF0C\u7528\u6237\u8BBE\u7F6E\u4E3A\u4E0D\u8DF3\u8F6C", "green"); } return; } for (let i = 0, l = jobList.length; i < l; i++) { let item = jobList[i]; if (item["type"] == "video") { video_getReady(item); } else if (item["type"] == "document") { missionList["m" + item["jobid"]] = { "type": "document", "jtoken": item["jtoken"], "jobid": item["jobid"], "name": item["property"]["name"], "done": false, "running": false }; appendJobRow(_d, `[\u6587\u6863]` + item["property"]["name"]); } else if (item["type"] == "workid" && _w.top.dripDoWork == "1") { missionList["m" + item["jobid"]] = { "type": "work", "workid": item["property"]["workid"], "jobid": item["jobid"], "name": item["property"]["title"], "enc": item["enc"], "done": false, "running": false }; appendJobRow(_d, `[\u7AE0\u8282\u6D4B\u8BD5]` + item["property"]["title"]); } else { try { let jobName = item["property"]["name"]; if (jobName == void 0) { jobName = item["property"]["title"]; } appendJobRow(_d, `\u5DF2\u8DF3\u8FC7\uFF1A` + jobName); } catch (e) { } } } loopjob(); } else if (/\/mycourse\/studentcourse$/.test(_l.pathname) && _w.top === _w) { const homeTakeover = new CourseHomeTakeover(_d, _w); homeTakeover.start(); } else if (_l.href.includes("mycourse/studentstudy")) { let checkOffline = function() { let dleft = _d.getElementsByClassName("left"); if (dleft.length == 1) { let img = dleft[0].getElementsByTagName("img"); if (img.length == 1) { if (img[0].src.indexOf("loading.gif") != -1) { return true; } } } return false; }; var audiofile = "data:audio/ogg;base64,T2dnUwACAAAAAAAAAABwRPFFAAAAAGFtEqwBHgF2b3JiaXMAAAAAAUAfAAAAAAAAUHgAAAAAAACZAU9nZ1MAAAAAAAAAAAAAcETxRQEAAAA7J4IBDP8F////////////tQN2b3JiaXMvAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxNDAxMjIgKFR1cnBha8OkcsOkamlpbikGAAAAJQAAAEVOQ09ERVI9U291bmQgU3R1ZGlvLCBsaWJWb3JiaXMgMS4zLjEbAAAAQUxCVU0gQVJUSVNUPUFkdmVudHVyZSBMYW5kFAAAAEFMQlVNPUFkdmVudHVyZSBMYW5kIQAAAEVOQ09ESU5HIEFQUExJQ0FUSU9OPVNvdW5kIFN0dWRpbxUAAABBUlRJU1Q9QWR2ZW50dXJlIExhbmQjAAAAVElUTEU9RW1wdHkgTG9vcCBGb3IgSlMgUGVyZm9ybWFuY2UBBXZvcmJpcxJCQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBADIAAAYhiGH3knMkFOQSSYpVcw5CKH1DjnlFGTSUsaYYoxRzpBTDDEFMYbQKYUQ1E45pQwiCENInWTOIEs96OBi5zgQGrIiAIgCAACMQYwhxpBzDEoGIXKOScggRM45KZ2UTEoorbSWSQktldYi55yUTkompbQWUsuklNZCKwUAAAQ4AAAEWAiFhqwIAKIAABCDkFJIKcSUYk4xh5RSjinHkFLMOcWYcowx6CBUzDHIHIRIKcUYc0455iBkDCrmHIQMMgEAAAEOAAABFkKhISsCgDgBAIMkaZqlaaJoaZooeqaoqqIoqqrleabpmaaqeqKpqqaquq6pqq5seZ5peqaoqp4pqqqpqq5rqqrriqpqy6ar2rbpqrbsyrJuu7Ks256qyrapurJuqq5tu7Js664s27rkearqmabreqbpuqrr2rLqurLtmabriqor26bryrLryratyrKua6bpuqKr2q6purLtyq5tu7Ks+6br6rbqyrquyrLu27au+7KtC7vourauyq6uq7Ks67It67Zs20LJ81TVM03X9UzTdVXXtW3VdW1bM03XNV1XlkXVdWXVlXVddWVb90zTdU1XlWXTVWVZlWXddmVXl0XXtW1Vln1ddWVfl23d92VZ133TdXVblWXbV2VZ92Vd94VZt33dU1VbN11X103X1X1b131htm3fF11X11XZ1oVVlnXf1n1lmHWdMLqurqu27OuqLOu+ruvGMOu6MKy6bfyurQvDq+vGseu+rty+j2rbvvDqtjG8um4cu7Abv+37xrGpqm2brqvrpivrumzrvm/runGMrqvrqiz7uurKvm/ruvDrvi8Mo+vquirLurDasq/Lui4Mu64bw2rbwu7aunDMsi4Mt+8rx68LQ9W2heHVdaOr28ZvC8PSN3a+AACAAQcAgAATykChISsCgDgBAAYhCBVjECrGIIQQUgohpFQxBiFjDkrGHJQQSkkhlNIqxiBkjknIHJMQSmiplNBKKKWlUEpLoZTWUmotptRaDKG0FEpprZTSWmopttRSbBVjEDLnpGSOSSiltFZKaSlzTErGoKQOQiqlpNJKSa1lzknJoKPSOUippNJSSam1UEproZTWSkqxpdJKba3FGkppLaTSWkmptdRSba21WiPGIGSMQcmck1JKSamU0lrmnJQOOiqZg5JKKamVklKsmJPSQSglg4xKSaW1kkoroZTWSkqxhVJaa63VmFJLNZSSWkmpxVBKa621GlMrNYVQUgultBZKaa21VmtqLbZQQmuhpBZLKjG1FmNtrcUYSmmtpBJbKanFFluNrbVYU0s1lpJibK3V2EotOdZaa0ot1tJSjK21mFtMucVYaw0ltBZKaa2U0lpKrcXWWq2hlNZKKrGVklpsrdXYWow1lNJiKSm1kEpsrbVYW2w1ppZibLHVWFKLMcZYc0u11ZRai621WEsrNcYYa2415VIAAMCAAwBAgAlloNCQlQBAFAAAYAxjjEFoFHLMOSmNUs45JyVzDkIIKWXOQQghpc45CKW01DkHoZSUQikppRRbKCWl1losAACgwAEAIMAGTYnFAQoNWQkARAEAIMYoxRiExiClGIPQGKMUYxAqpRhzDkKlFGPOQcgYc85BKRljzkEnJYQQQimlhBBCKKWUAgAAChwAAAJs0JRYHKDQkBUBQBQAAGAMYgwxhiB0UjopEYRMSielkRJaCylllkqKJcbMWomtxNhICa2F1jJrJcbSYkatxFhiKgAA7MABAOzAQig0ZCUAkAcAQBijFGPOOWcQYsw5CCE0CDHmHIQQKsaccw5CCBVjzjkHIYTOOecghBBC55xzEEIIoYMQQgillNJBCCGEUkrpIIQQQimldBBCCKGUUgoAACpwAAAIsFFkc4KRoEJDVgIAeQAAgDFKOSclpUYpxiCkFFujFGMQUmqtYgxCSq3FWDEGIaXWYuwgpNRajLV2EFJqLcZaQ0qtxVhrziGl1mKsNdfUWoy15tx7ai3GWnPOuQAA3AUHALADG0U2JxgJKjRkJQCQBwBAIKQUY4w5h5RijDHnnENKMcaYc84pxhhzzjnnFGOMOeecc4wx55xzzjnGmHPOOeecc84556CDkDnnnHPQQeicc845CCF0zjnnHIQQCgAAKnAAAAiwUWRzgpGgQkNWAgDhAACAMZRSSimllFJKqKOUUkoppZRSAiGllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimVUkoppZRSSimllFJKKaUAIN8KBwD/BxtnWEk6KxwNLjRkJQAQDgAAGMMYhIw5JyWlhjEIpXROSkklNYxBKKVzElJKKYPQWmqlpNJSShmElGILIZWUWgqltFZrKam1lFIoKcUaS0qppdYy5ySkklpLrbaYOQelpNZaaq3FEEJKsbXWUmuxdVJSSa211lptLaSUWmstxtZibCWlllprqcXWWkyptRZbSy3G1mJLrcXYYosxxhoLAOBucACASLBxhpWks8LR4EJDVgIAIQEABDJKOeecgxBCCCFSijHnoIMQQgghREox5pyDEEIIIYSMMecghBBCCKGUkDHmHIQQQgghhFI65yCEUEoJpZRSSucchBBCCKWUUkoJIYQQQiillFJKKSGEEEoppZRSSiklhBBCKKWUUkoppYQQQiillFJKKaWUEEIopZRSSimllBJC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", audioPlayer = new Audio(audiofile); _w.top.backNow = 1; audioPlayer.loop = true; _w.audioPlayer = audioPlayer; setInterval(function() { try { _w.jQuery.fn.viewer.Constructor.prototype.show = () => { }; } catch (e) { } }, 1e3); try { _w.dripScriptList.push("drip7boi-legacy"); } catch (e) { _w.dripScriptList = ["drip7boi-legacy"]; } setInterval(function() { if (checkOffline()) { setTimeout(function() { if (checkOffline()) { _l.reload(); } }, 1e4); } }, 3e3); _d.addEventListener("visibilitychange", function() { var c = 0; if (_w.top.backNow == 0) { _d.title = "\u26A0\uFE0F\u8BF7\u5148\u6FC0\u6D3B\u6302\u673A"; return; } else { _d.title = "\u5B66\u751F\u5B66\u4E60\u9875\u9762"; } if (_d.hidden) { try { var p = audioPlayer.play(); if (p && p.catch) p.catch(function() { }); } catch (e) { } var timer = setInterval(function() { if (!_d.hidden || _w.top.backNow == 0) { clearInterval(timer); if (_w.top.backNow == 0) { _d.title = "\u26A0\uFE0F\u8BF7\u5148\u6FC0\u6D3B\u6302\u673A"; } else { _d.title = "\u5B66\u751F\u5B66\u4E60\u9875\u9762"; } return; } if (c) { _d.title = "\u{1F648}\u6302\u673A\u4E2D"; c = 0; } else { _d.title = "\u{1F649}\u6302\u673A\u4E2D"; c = 1; } }, 1300); } else { try { audioPlayer.pause(); } catch (e) { } } }); _w.dripGetTeacherAjax = _w.getTeacherAjax; _w.getTeacherAjax = (courseid, classid, cid) => { if (cid == getQueryVariable("chapterId")) { return; } _w.top.dripPageRd = ""; _w.dripGetTeacherAjax(courseid, classid, cid); }; if (disableMonitor == 1) { _w.appendChild = _w.Element.prototype.appendChild; _w.Element.prototype.appendChild = function() { try { if (arguments[0].src.indexOf("detect.chaoxing.com") > 0) { return; } } catch (e) { } _w.appendChild.apply(this, arguments); }; } _w.jump = false; const rebindChapterClick = (node) => { const id = node.getAttribute("id") || ""; if (id.indexOf("cur") < 0) return; const handler = "getTeacherAjax('" + courseId + "','" + classId + "','" + id.replace("cur", "") + "');"; if (node.getAttribute("onclick") !== handler) node.setAttribute("onclick", handler); }; setInterval(function() { if (getQueryVariable("mooc2") == "1") { let tabs = _d.getElementsByClassName("posCatalog_select"); for (let i = 0, l = tabs.length; i < l; i++) { if (tabs[i].getAttribute("class") == "posCatalog_select") rebindChapterClick(tabs[i]); } } else { for (const node of _d.querySelectorAll("h4, h5")) rebindChapterClick(node); } }, 1e3); _w.executeChapterJump = executeChapterJump; try { if (_w.top) _w.top.executeChapterJump = executeChapterJump; } catch (e) { } _w.jjump = (rd) => { executeChapterJump(); }; try { if (_w.top) _w.top.jjump = _w.jjump; } catch (e) { } setInterval(function() { if (_w.jump || _w.top && _w.top.jump || _w.parent && _w.parent.jump) { _w.jump = false; try { if (_w.top) _w.top.jump = false; } catch (e) { } try { if (_w.parent) _w.parent.jump = false; } catch (e) { } _w.top.dripDoneWorkId = ""; executeChapterJump(); } }, 300); } else if (_l.href.indexOf("work/phone/doHomeWork") > 0) { var wIdE = _d.getElementById("workLibraryId") || _d.getElementById("oldWorkId"), wid = wIdE.value; _w.top.dripWorkDone = false; _w.aalert = _w.alert; _w.alert = (msg) => { if (msg == "\u4FDD\u5B58\u6210\u529F") { _w.top.dripDoneWorkId = getQueryVariable("workId"); return; } aalert(msg); }; if (_w.top.dripDoneWorkId == getQueryVariable("workId")) { _w.top.dripWorkDone = true; return; } _w.confirm = (msg) => { return true; }; var questionList = [], questionsElement = _d.getElementsByClassName("Py-mian1"), questionNum = questionsElement.length, totalQuestionNum = questionNum; for (let i = 0; i < questionNum; i++) { let questionElement = questionsElement[i], idElements = questionElement.getElementsByTagName("input"), questionId = "0", question = questionElement.getElementsByClassName("Py-m1-title fs16")[0].innerHTML; question = handleImgs(question).replace(/(<([^>]+)>)/ig, "").replace(/[0-9]{1,3}.\[(.*?)\]/ig, "").replaceAll( "\n", "" ).replace(/^\s+/ig, "").replace(/\s+$/ig, ""); for (let z = 0, k = idElements.length; z < k; z++) { try { if (idElements[z].getAttribute("name").indexOf("answer") >= 0) { questionId = idElements[z].getAttribute("name").replace("type", ""); break; } } catch (e) { console.log(e); continue; } } if (questionId == "0" || question == "") { continue; } typeE = questionElement.getElementsByTagName("input"); if (typeE == null || typeE == []) { continue; } let typeN = "fuckme"; for (let g = 0, h = typeE.length; g < h; g++) { if (typeE[g].id == "answertype" + questionId.replace("answer", "").replace("check", "")) { typeN = typeE[g].value; break; } } if (["0", "1", "3"].indexOf(typeN) < 0) { continue; } type = { "0": "\u5355\u9009\u9898", "1": "\u591A\u9009\u9898", "3": "\u5224\u65AD\u9898" }[typeN]; let optionList = { length: 0 }; if (["\u5355\u9009\u9898", "\u591A\u9009\u9898"].indexOf(type) >= 0) { let answersElements = questionElement.getElementsByClassName("answerList")[0].getElementsByTagName( "li" ); for (let x = 0, j = answersElements.length; x < j; x++) { let optionE = answersElements[x], optionTextE = trim(optionE.innerHTML.replace(/(^\s*)|(\s*$)/g, "")), optionText = optionTextE.slice(1).replace(/(^\s*)|(\s*$)/g, ""), optionValue = optionTextE.slice(0, 1), optionId = optionE.getAttribute("id-param"); if (optionText == "") { break; } optionList[optionText] = { "id": optionId, "value": optionValue }; optionList.length++; } if (answersElements.length != optionList.length) { continue; } } questionList.push({ "question": question, "type": type, "questionid": questionId, "options": optionList }); } var qu = null, nowTime = -4e3, busyThread = questionList.length, ctOnload = function(res, quu) { busyThread -= 1; var ctResult = { "code": -1, "finalUrl": "", "data": "\u672A\u627E\u5230\u7B54\u6848" }; if (res) { try { var responseText = res.responseText, ctResult = JSON.parse(responseText); } catch (e) { console.log(e); if (res.finalUrl.includes("getAnswer.php")) { _w.top.dripWorkInfo = "\u67E5\u9898\u9519\u8BEF\uFF0C\u670D\u52A1\u5668\u8FDE\u63A5\u5931\u8D25"; return; } } } try { let choiceEs = _d.getElementsByTagName("li"); if (ctResult["code"] == -1) { try { if (ctResult["msg"] !== void 0) { _w.top.dripWorkInfo = "\u9898\u76EE\uFF1A" + quu["question"] + "\uFF1A\u672A\u641C\u7D22\u5230\u7B54\u6848"; } } catch (e) { } return; } else if (ctResult["code"] == -2) { _w.top.dripWorkInfo = ctResult["msg"]; return; } try { var result = ctResult["data"]; } catch (e) { _w.top.dripWorkInfo = "\u7B54\u6848\u89E3\u6790\u5931\u8D25"; return; } _w.top.dripWorkInfo = "\u9898\u76EE\uFF1A" + quu["question"] + "\uFF1A" + result; switch (quu["type"]) { case "\u5224\u65AD\u9898": (function() { let answer = "abaabaaba"; if ("\u6B63\u786E\u662F\u5BF9\u221ATri".indexOf(result) >= 0) { answer = "true"; } else if ("\u9519\u8BEF\u5426\u9519\xD7Fwr".indexOf(result) >= 0) { answer = "false"; } for (let u = 0, k = choiceEs.length; u < k; u++) { if (choiceEs[u].getAttribute("val-param") == answer && choiceEs[u].getAttribute( "id-param" ) == quu["questionid"].replace( "answer", "" )) { choiceEs[u].click(); questionNum -= 1; return; } } if (randomDo == 1 && accuracy < 100) { _w.top.dripWorkInfo = quu["question"] + "\uFF1A\u672A\u627E\u5230\u6B63\u786E\u7B54\u6848\uFF0C\u81EA\u52A8\u9009\u3010\u9519\u3011"; for (let u = 0, k = choiceEs.length; u < k; u++) { if (choiceEs[u].getElementsByTagName("em").length < 1) { continue; } if (choiceEs[u].getAttribute("val-param") == "false" && choiceEs[u].getAttribute( "id-param" ) == quu["questionid"].replace("answer", "")) { choiceEs[u].click(); return; } } } })(); break; case "\u5355\u9009\u9898": (function() { let answerData = result; for (let option in quu["options"]) { if (trim(option).replace(/\s/ig, "") == trim(answerData).replace(/\s/ig, "") || trim( option ).replace(/\s/ig, "").includes(trim(answerData).replace(/\s/ig, "")) || trim(answerData).replace(/\s/ig, "").includes(trim(option).replace(/\s/ig, ""))) { for (let y = 0, j = choiceEs.length; y < j; y++) { if (choiceEs[y].getElementsByTagName( "em" ).length < 1) { continue; } if (choiceEs[y].getElementsByTagName( "em" )[0].getAttribute( "id-param" ) == quu["options"][option]["value"] && choiceEs[y].getAttribute("id-param") == quu["questionid"].replace( "answer", "" )) { if (!choiceEs[y].getAttribute( "class" ).includes("cur")) { choiceEs[y].click(); } questionNum -= 1; return; } } } } if (randomDo == 1 && accuracy < 100) { _w.top.dripWorkInfo = quu["question"] + "\uFF1A\u672A\u627E\u5230\u6B63\u786E\u7B54\u6848\uFF0C\u81EA\u52A8\u9009\u3010B\u3011"; for (let y = 0, j = choiceEs.length; y < j; y++) { if (choiceEs[y].getElementsByTagName("em").length < 1) { continue; } if (choiceEs[y].getElementsByTagName("em")[0].getAttribute("id-param") == "B" && choiceEs[y].getAttribute( "id-param" ) == quu["questionid"].replace("answer", "")) { if (!choiceEs[y].getAttribute("class").includes("cur")) { choiceEs[y].click(); } return; } } } })(); break; case "\u591A\u9009\u9898": (function() { let answerData = trim(result).replace(/\s/ig, ""), hasAnswer = false; for (let option in quu["options"]) { if (answerData.includes(trim(option).replace(/\s/ig, ""))) { for (let y = 0, j = choiceEs.length; y < j; y++) { if (choiceEs[y].getElementsByTagName( "em" ).length < 1) { continue; } if (choiceEs[y].getElementsByTagName( "em" )[0].getAttribute( "id-param" ) == quu["options"][option]["value"] && choiceEs[y].getAttribute("id-param") == quu["questionid"].replace( "answer", "" )) { if (!choiceEs[y].getAttribute( "class" ).includes("cur")) { choiceEs[y].click(); } hasAnswer = true; break; } } } } if (hasAnswer) { questionNum -= 1; } else if (randomDo == 1 && accuracy < 100) { _w.top.dripWorkInfo = quu["question"] + "\uFF1A\u672A\u627E\u5230\u6B63\u786E\u7B54\u6848\uFF0C\u81EA\u52A8\u5168\u9009"; for (let y = 0, j = choiceEs.length; y < j; y++) { if (choiceEs[y].getElementsByTagName("em").length < 1) { continue; } if (choiceEs[y].getAttribute("id-param") == quu["questionid"].replace("answer", "")) { if (!choiceEs[y].getAttribute("class").includes("cur")) { choiceEs[y].click(); } } } } })(); break; } } catch (e) { console.log(e); } }; for (let i = 0, l = questionList.length; i < l; i++) { nowTime += parseInt(Math.random() * 3e3 + 3500, 10); setTimeout(function() { qu = questionList[i]; let param2 = "question=" + encodeURIComponent( qu["question"] ); if (ctUrl.includes("icodef")) { param2 += "&type=" + { "\u5355\u9009\u9898": "0", "\u591A\u9009\u9898": "1", "\u5224\u65AD\u9898": "3" }[qu["type"]] + "&id=" + wid; } GM_xmlhttpRequest({ method: "POST", headers: { "Content-type": "application/x-www-form-urlencoded", "Authorization": token }, url: ctUrl, timeout: 2e3, data: param2, onload: function(res) { ctOnload(res, qu); }, onerror: function() { ctOnload(false, qu); }, ontimeout: function() { ctOnload(false, qu); } }); }, nowTime); } var workInterval = setInterval(function() { if (busyThread != 0) { return; } clearInterval(workInterval); if (Math.floor((totalQuestionNum - questionNum) / totalQuestionNum) * 100 >= accuracy && _w.top.dripAutoSubmit == "1") { _w.top.dripDoneWorkId = getQueryVariable("workId"); _w.top.dripWorkInfo = "\u6B63\u786E\u7387\u7B26\u5408\u6807\u51C6\uFF0C\u5DF2\u63D0\u4EA4\u7B54\u6848"; setTimeout(function() { submitCheckTimes(); escapeBlank(); submitAction(); }, parseInt(Math.random() * 2e3 + 3e3, 10)); } else if (_w.top.dripAutoSave == 1) { _w.top.dripWorkInfo = "\u6B63\u786E\u7387\u4E0D\u7B26\u5408\u6807\u51C6\u6216\u672A\u8BBE\u7F6E\u81EA\u52A8\u63D0\u4EA4\uFF0C\u5DF2\u81EA\u52A8\u4FDD\u5B58\u7B54\u6848"; if (Math.floor((totalQuestionNum - questionNum) / totalQuestionNum) >= 0) { setTimeout(function() { _w.top.dripDoneWorkId = getQueryVariable("workId"); _w.noSubmit(); }, 2e3); } } else { _w.top.dripWorkInfo = "\u7528\u6237\u8BBE\u7F6E\u4E3A\u4E0D\u81EA\u52A8\u4FDD\u5B58\u7B54\u6848\uFF0C\u8BF7\u624B\u52A8\u63D0\u4EA4\u6216\u4FDD\u5B58\u4F5C\u4E1A"; } }, 1e3); } else if (_l.href.includes("work/phone/selectWorkQuestionYiPiYue")) { _w.top.dripWorkDone = true; _w.top.dripDoneWorkId = getQueryVariable("workId"); } else if (_l.href.includes("stat2-ans.chaoxing.com/task/s/index")) { if (_w.top == _w) { return; } _d.getElementsByClassName("page-container studentStatistic")[0].setAttribute("class", "studentStatistic"); _d.getElementsByClassName("page-item item-task-list minHeight390")[0].remove(); _d.getElementsByClassName("subNav clearfix")[0].remove(); setInterval(function() { _l.reload(); }, 9e4); } })(); (() => { var STORAGE_PREFIX = "drip7boi."; var DEFAULT_SETTINGS = { aiAnswerEnabled: true, autoClick: true, goodStudent: false, alterTitle: true, redo: false, fuzzyMatch: true, autoSubmit: false, forceSubmit: false, examAutoNext: false, requestInterval: 1, answerDelayMin: 1200, answerDelayMax: 3200, requestTimeout: 45e3, maxRetries: 2 }; var LICENSE_CONFIG = { apiBaseUrl: "https://xxt.491746.xyz/chaoxing-api", storageKeys: { installId: "drip7boi.installId", accessToken: "drip7boi.accessToken", balancePoints: "drip7boi.balancePoints" }, clientVersion: "6.10.11" }; var QUESTION_TYPES = { SINGLE: "single", MULTIPLE: "multiple", JUDGE: "judge", BLANK: "blank", TEXT: "text", WRITING: "writing", TRANSLATION: "translation", UNKNOWN: "unknown" }; var TYPE_NAME_MAP = /* @__PURE__ */ new Map([ ["\u5355\u9009\u9898", QUESTION_TYPES.SINGLE], ["\u5355\u9879\u9009\u62E9\u9898", QUESTION_TYPES.SINGLE], ["\u5355\u9009", QUESTION_TYPES.SINGLE], ["\u591A\u9009\u9898", QUESTION_TYPES.MULTIPLE], ["\u591A\u9879\u9009\u62E9\u9898", QUESTION_TYPES.MULTIPLE], ["\u591A\u9009", QUESTION_TYPES.MULTIPLE], ["\u4E0D\u5B9A\u9879\u9009\u62E9\u9898", QUESTION_TYPES.MULTIPLE], ["\u586B\u7A7A\u9898", QUESTION_TYPES.BLANK], ["\u586B\u7A7A", QUESTION_TYPES.BLANK], ["\u5224\u65AD\u9898", QUESTION_TYPES.JUDGE], ["\u662F\u975E\u9898", QUESTION_TYPES.JUDGE], ["\u5224\u65AD", QUESTION_TYPES.JUDGE], ["\u7B80\u7B54", QUESTION_TYPES.TEXT], ["\u7B80\u7B54\u9898", QUESTION_TYPES.TEXT], ["\u95EE\u7B54\u9898", QUESTION_TYPES.TEXT], ["\u540D\u8BCD\u89E3\u91CA", QUESTION_TYPES.TEXT], ["\u8BBA\u8FF0\u9898", QUESTION_TYPES.TEXT], ["\u8BA1\u7B97\u9898", QUESTION_TYPES.TEXT], ["\u8D44\u6599\u9898", QUESTION_TYPES.TEXT], ["\u6750\u6599\u9898", QUESTION_TYPES.TEXT], ["\u9605\u8BFB\u7406\u89E3", QUESTION_TYPES.TEXT], ["\u7EFC\u5408\u9898", QUESTION_TYPES.TEXT], ["\u5199\u4F5C\u9898", QUESTION_TYPES.WRITING], ["\u4F5C\u6587\u9898", QUESTION_TYPES.WRITING], ["\u7FFB\u8BD1\u9898", QUESTION_TYPES.TRANSLATION] ]); var labels = { [QUESTION_TYPES.SINGLE]: "\u5355\u9009\u9898", [QUESTION_TYPES.MULTIPLE]: "\u591A\u9009\u9898", [QUESTION_TYPES.JUDGE]: "\u5224\u65AD\u9898", [QUESTION_TYPES.BLANK]: "\u586B\u7A7A\u9898", [QUESTION_TYPES.TEXT]: "\u7B80\u7B54\u9898", [QUESTION_TYPES.WRITING]: "\u5199\u4F5C\u9898", [QUESTION_TYPES.TRANSLATION]: "\u7FFB\u8BD1\u9898", [QUESTION_TYPES.UNKNOWN]: "\u672A\u77E5\u9898\u578B" }; var formats = { [QUESTION_TYPES.SINGLE]: "\u53EA\u8FD4\u56DE\u4E00\u4E2A\u6B63\u786E\u9009\u9879\u7684\u5B8C\u6574\u9009\u9879\u6587\u672C\uFF0C\u4E0D\u8981\u8FD4\u56DE\u5B57\u6BCD\u3002", [QUESTION_TYPES.MULTIPLE]: "\u53EA\u8FD4\u56DE\u6240\u6709\u6B63\u786E\u9009\u9879\u7684\u5B8C\u6574\u9009\u9879\u6587\u672C\uFF0C\u591A\u4E2A\u7B54\u6848\u7528 | \u5206\u9694\uFF0C\u4E0D\u8981\u8FD4\u56DE\u5B57\u6BCD\u3002", [QUESTION_TYPES.JUDGE]: "\u53EA\u8FD4\u56DE \u6B63\u786E \u6216 \u9519\u8BEF\u3002", [QUESTION_TYPES.BLANK]: "\u53EA\u8FD4\u56DE\u586B\u7A7A\u5185\u5BB9\uFF1B\u591A\u4E2A\u7A7A\u7528 | \u5206\u9694\u3002", [QUESTION_TYPES.TEXT]: "\u53EA\u8FD4\u56DE\u53EF\u76F4\u63A5\u586B\u5199\u7684\u7B54\u6848\uFF0C\u5C3D\u91CF\u7B80\u6D01\u3002", [QUESTION_TYPES.WRITING]: "\u53EA\u8FD4\u56DE\u4F5C\u6587\u6B63\u6587\u3002", [QUESTION_TYPES.TRANSLATION]: "\u53EA\u8FD4\u56DE\u7FFB\u8BD1\u7ED3\u679C\u3002" }; function buildPrompt(question) { var _a; const lines = [ `\u9898\u578B\uFF1A${labels[question.type] || question.typeName || labels.unknown}`, `\u7B54\u9898\u683C\u5F0F\uFF1A${formats[question.type] || formats[QUESTION_TYPES.TEXT]}`, `\u9898\u76EE\uFF1A${question.stem}` ]; if ((_a = question.options) == null ? void 0 : _a.length) { lines.push("\u9009\u9879\uFF1A"); question.options.forEach((option, index) => { lines.push(`${String.fromCharCode(65 + index)}. ${option.text}`); }); } lines.push("\u4E25\u683C\u53EA\u8F93\u51FA\u7B54\u6848\u672C\u8EAB\u3002"); return lines.join("\n"); } function formatHttpFailure(code) { const status = Number(String(code).replace(/^HTTP_/i, "")); const descriptions = { 401: "\u4F7F\u7528\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5", 403: "\u670D\u52A1\u62D2\u7EDD\u8BF7\u6C42\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u68C0\u67E5\u8BBF\u95EE\u6743\u9650", 404: "\u670D\u52A1\u63A5\u53E3\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u68C0\u67E5\u5730\u5740", 429: "\u8BF7\u6C42\u8FC7\u5FEB\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5", 500: "\u670D\u52A1\u5668\u5904\u7406\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5", 502: "\u7B54\u9898\u670D\u52A1\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5", 503: "\u7B54\u9898\u670D\u52A1\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5", 504: "\u7B54\u9898\u670D\u52A1\u54CD\u5E94\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" }; return (descriptions[status] || "\u670D\u52A1\u8FD4\u56DE\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5") + "\uFF08HTTP " + status + "\uFF09"; } function htmlToText(value) { const template = document.createElement("template"); template.innerHTML = String(value); return (template.content ? template.content.textContent : template.textContent) || ""; } function normalizeText(value = "") { return htmlToText(value).replace(/\u00a0/g, " ").replace(/[ \t\r\n]+/g, " ").replace(/^[A-Z][.、.\s]+/i, "").trim(); } function normalizeOption(value = "") { return normalizeText(value).replace(/^[A-Z][.、.\s]*/i, "").replace(/^选项[A-Z][::\s]*/i, "").trim(); } function stripQuestionPrefix(value = "") { return normalizeText(value).replace(/^[((【\[]?\s*(单选题|单项选择题|多选题|多项选择题|不定项选择题|判断题|是非题|填空题|简答题|问答题|论述题|材料题|资料题|写作题|作文题|翻译题).*?[))】\]]?\s*/u, "").replace(/^\d+[.、.]\s*/, "").trim(); } function splitAnswer(value = "") { return String(value).replace(/[,、;;]+/g, "|").split("|").map((s) => s.trim()).filter(Boolean); } function parseJudgeAnswer(value = "") { const s = String(value).toLowerCase().replace(/[。.,,!!\s]/g, ""); const trueWords = ["\u6B63\u786E", "\u5BF9", "\u662F", "\u221A", "true", "t", "right", "yes"]; const falseWords = ["\u9519\u8BEF", "\u9519", "\u5426", "\u4E0D\u662F", "\xD7", "x", "false", "f", "wrong", "no"]; if (trueWords.includes(s)) return true; if (falseWords.includes(s)) return false; if (falseWords.some((word) => s.includes(word))) return false; if (trueWords.some((word) => s.includes(word))) return true; return null; } function similarity(a = "", b = "") { const left = normalizeOption(a); const right = normalizeOption(b); if (!left || !right) return 0; if (left === right) return 1; if (left.includes(right) || right.includes(left)) return 0.92; const rows = left.length + 1; const cols = right.length + 1; const dp = Array.from({ length: rows }, () => Array(cols).fill(0)); for (let i = 0; i < rows; i += 1) dp[i][0] = i; for (let j = 0; j < cols; j += 1) dp[0][j] = j; for (let i = 1; i < rows; i += 1) { for (let j = 1; j < cols; j += 1) { const cost = left[i - 1] === right[j - 1] ? 0 : 1; dp[i][j] = Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + cost); } } return 1 - dp[left.length][right.length] / Math.max(left.length, right.length); } function matchSingleOption(options, answer, fuzzyEnabled = true, threshold = 0.5) { const normalized = normalizeOption(answer); let index = options.findIndex((option) => normalizeOption(option.text) === normalized); if (index !== -1) return index; index = options.findIndex((option) => normalized.includes(normalizeOption(option.text)) || normalizeOption(option.text).includes(normalized)); if (index !== -1) return index; if (!fuzzyEnabled) return -1; let best = { index: -1, score: 0 }; options.forEach((option, i) => { const score = similarity(option.text, normalized); if (score > best.score) best = { index: i, score }; }); return best.score >= threshold ? best.index : -1; } function matchMultipleOptions(options, answer, fuzzyEnabled = true) { const parts = splitAnswer(answer); const indices = /* @__PURE__ */ new Set(); for (const part of parts.length ? parts : [answer]) { const index = matchSingleOption(options, part, fuzzyEnabled); if (index !== -1) indices.add(index); } if (indices.size === 0) { options.forEach((option, index) => { const optionText = normalizeOption(option.text); if (optionText && normalizeOption(answer).includes(optionText)) indices.add(index); }); } return [...indices]; } function $(selector, root = document) { return root.querySelector(selector); } function $all(selector, root = document) { return Array.from(root.querySelectorAll(selector)); } function clickElement(element) { if (!element) return false; element.dispatchEvent(new MouseEvent("mouseover", { bubbles: true })); element.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); element.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); element.click(); return true; } function setNativeValue(element, value) { var _a; if (!element) return; const ownerWindow = ((_a = element.ownerDocument) == null ? void 0 : _a.defaultView) || window; const proto = element.tagName === "TEXTAREA" ? ownerWindow.HTMLTextAreaElement.prototype : ownerWindow.HTMLInputElement.prototype; const descriptor = Object.getOwnPropertyDescriptor(proto, "value"); if (descriptor == null ? void 0 : descriptor.set) descriptor.set.call(element, value); else element.value = value; element.dispatchEvent(new ownerWindow.Event("input", { bubbles: true })); element.dispatchEvent(new ownerWindow.Event("change", { bubbles: true })); } function fillEmbeddedEditor(input, value) { var _a, _b; const question = (_a = input == null ? void 0 : input.closest) == null ? void 0 : _a.call(input, ".Py-mian1, .singleQuesId, .questionLi, .TiMu, .question-item, .marBom60"); if (!question) return false; const inputs = $all('textarea[name^="answerEditor"], textarea[name^="answer"], textarea', question); const frames = $all('iframe[id^="ueditor_"]', question); const inputIndex = Math.max(0, inputs.indexOf(input)); const frame = frames[inputIndex] || frames[0]; if (!frame) return false; try { const editorDocument = frame.contentDocument; const editorBody = editorDocument == null ? void 0 : editorDocument.body; if (!editorBody) return false; editorBody.textContent = ""; const paragraph = editorDocument.createElement("p"); paragraph.textContent = String(value != null ? value : ""); editorBody.appendChild(paragraph); const EditorEvent = ((_b = editorDocument.defaultView) == null ? void 0 : _b.Event) || Event; editorBody.dispatchEvent(new EditorEvent("input", { bubbles: true })); editorBody.dispatchEvent(new EditorEvent("change", { bubbles: true })); editorBody.dispatchEvent(new EditorEvent("blur", { bubbles: true })); return true; } catch (e) { return false; } } function findSameOriginFrames(root = document) { return $all("iframe", root).filter((frame) => { try { return Boolean(frame.contentDocument); } catch (e) { return false; } }); } function findSameOriginDocuments(root = document) { const documents = [root]; const visit = (doc) => { for (const frame of findSameOriginFrames(doc)) { const child = frame.contentDocument; if (!child || documents.includes(child)) continue; documents.push(child); visit(child); } }; visit(root); return documents; } var QuestionParser = class { findQuestions(root = document) { const groups = [ () => $all(".mark_table .questionLi, .questionLi", root), () => $all(".zquestions .Py-mian1, .Py-mian1", root), () => $all(".TiMu", root), () => $all(".singleQuesId, .question-item, .marBom60", root), () => $all(".whiteDiv", root).filter((node) => node.querySelector(".stem_answer")), () => $all(".mark_item", root).filter((node) => node.querySelector(".stem_answer")) ]; for (const getGroup of groups) { const candidates = this.normalizeCandidates(getGroup()); if (candidates.length) return candidates; } return []; } normalizeCandidates(nodes) { return [...new Set(nodes)].filter((node) => this.isQuestionNode(node)); } isQuestionNode(node) { var _a; if (!node || ((_a = node.closest) == null ? void 0 : _a.call(node, "#cxds-panel"))) return false; const stem = this.getStem(node); if (!stem || stem.length < 2) return false; const options = this.getOptions(node); const inputs = this.getInputs(node); if (options.length >= 2 || inputs.length > 0) return true; return Boolean(node.querySelector(".stem_answer, .answerBg, .answerList, .blankList2")); } parse(element, index = 0, total = 1) { const typeName = this.getTypeName(element); const options = this.getOptions(element); const inputs = this.getInputs(element); const type2 = this.detectType(element, typeName, options, inputs); return { element, index, total, displayIndex: this.getQuestionNumber(element) || index + 1, type: type2, typeName, stem: this.getStem(element), options, inputs, answered: this.isAnswered(element, inputs) }; } getDisplayTotal(root = document, questions = []) { const navTotal = this.getNavigationTotal(root); const questionMax = Math.max(0, ...questions.map((node) => this.getQuestionNumber(node) || 0)); return Math.max(navTotal, questionMax, questions.length); } getNavigationTotal(root = document) { var _a, _b; const contextualNumbers = /* @__PURE__ */ new Set(); const allNumbers = /* @__PURE__ */ new Set(); const nodes = $all("a, button, li, span, div", root); for (const node of nodes) { if (((_a = node.closest) == null ? void 0 : _a.call(node, "#cxds-panel")) || ((_b = node.closest) == null ? void 0 : _b.call(node, "#cxds-logo"))) continue; const text = normalizeText(node.textContent || ""); if (!/^\d{1,4}$/.test(text)) continue; const n = Number(text); if (!Number.isInteger(n) || n <= 0 || n > 999) continue; allNumbers.add(n); const path = this.contextSignature(node); if (/(mark|question|ques|card|num|nav|topic|answer|exam|test|tm|题|答|卡|卷|考)/i.test(path)) { contextualNumbers.add(n); } } const contextualTotal = this.consecutiveTotal(contextualNumbers); if (contextualTotal >= 5) return contextualTotal; const broadTotal = this.consecutiveTotal(allNumbers); return broadTotal >= 10 ? broadTotal : 0; } consecutiveTotal(numbers) { if (!numbers.has(1)) return 0; let total = 0; while (numbers.has(total + 1)) total += 1; return total; } contextSignature(node) { var _a; const parts = []; let current = node; for (let i = 0; current && i < 4; i += 1, current = current.parentElement) { parts.push(`${current.id || ""} ${current.className || ""} ${((_a = current.getAttribute) == null ? void 0 : _a.call(current, "data")) || ""}`); } return parts.join(" "); } getQuestionNumber(element) { const stemNode = element.querySelector(".mark_name, h3.mark_name, .Zy_TItle, .question-title, .Py-m1-title, .tit, .stem"); const raw = normalizeText((stemNode == null ? void 0 : stemNode.textContent) || element.textContent || ""); const match = raw.match(/^\s*(\d{1,4})\s*[.、.]/); if (!match) return null; const n = Number(match[1]); return Number.isInteger(n) && n > 0 ? n : null; } getTypeName(element) { var _a, _b, _c; const attr = element.getAttribute("typename") || ((_a = element.dataset) == null ? void 0 : _a.typename) || ""; if (attr) return normalizeText(attr); const label = normalizeText(((_b = element.querySelector(".colorShallow, .type, .question-type, .quesType")) == null ? void 0 : _b.textContent) || ""); const match = label.match(/单选题|单项选择题|多选题|多项选择题|不定项选择题|判断题|是非题|填空题|简答题|简答|问答题|名词解释|论述题|材料题|资料题|写作题|作文题|翻译题/u); if (match) return match[0]; const title = normalizeText(((_c = element.querySelector(".mark_name, h3.mark_name, .Py-m1-title")) == null ? void 0 : _c.textContent) || ""); const titleMatch = title.match(/单选题|单项选择题|多选题|多项选择题|不定项选择题|判断题|是非题|填空题|简答题|简答|问答题|名词解释|论述题|材料题|资料题|写作题|作文题|翻译题/u); return (titleMatch == null ? void 0 : titleMatch[0]) || ""; } getStem(element) { var _a2; var _a; const stemNode = element.querySelector(".workTextWrap, .mark_name, h3.mark_name, .Zy_TItle, .question-title, .Py-m1-title, .tit, .stem"); const cleanStem = (stemNode == null ? void 0 : stemNode.cloneNode) ? stemNode.cloneNode(true) : stemNode; (_a2 = cleanStem == null ? void 0 : cleanStem.querySelectorAll) == null ? void 0 : _a2.call(cleanStem, ".cxds-answer-note").forEach((note) => note.remove()); return stripQuestionPrefix((cleanStem == null ? void 0 : cleanStem.innerHTML) || ((_a = element.querySelector(".questionStem")) == null ? void 0 : _a.innerHTML) || ""); } getOptions(element) { const nodes = $all(".stem_answer .answer_p, .answerBg .answer_p, .answerList li, .ulTop li, .option, label", element).filter((node) => normalizeOption(node.textContent).length > 0); return [...new Set(nodes)].map((node, index) => ({ node, clickable: node.closest("li, label, .answerBg, .clearfix, .answer_p") || node, text: normalizeOption(node.innerHTML || node.textContent), index })); } getInputs(element) { return $all('textarea[name^="answerEditor"], textarea[name^="answer"], textarea, input[type="text"], .blankList2 input', element); } detectType(element, typeName, options, inputs) { if (TYPE_NAME_MAP.has(typeName)) return TYPE_NAME_MAP.get(typeName); if (options.length) { const hasCheckbox = Boolean(element.querySelector('input[type="checkbox"]')); const optionText = options.map((o) => o.text).join("|"); if (/正确|错误|对|错|√|×/.test(optionText) && options.length <= 3) return QUESTION_TYPES.JUDGE; return hasCheckbox ? QUESTION_TYPES.MULTIPLE : QUESTION_TYPES.SINGLE; } if (inputs.length > 1 || element.querySelector(".blankList2")) return QUESTION_TYPES.BLANK; if (inputs.length === 1) return QUESTION_TYPES.TEXT; return QUESTION_TYPES.UNKNOWN; } isAnswered(element, inputs) { if (element.querySelector('.check_answer, .check_answer_dx, .cur, [aria-checked="true"], input:checked')) return true; return inputs.some((input) => String(input.value || "").trim().length > 0); } }; var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); function randomInt(min, max) { const low = Math.min(Number(min) || 0, Number(max) || 0); const high = Math.max(Number(min) || 0, Number(max) || 0); return Math.floor(Math.random() * (high - low + 1)) + low; } function randomDelay(settings) { return randomInt(settings.answerDelayMin, settings.answerDelayMax); } var AnswerEngine = class { constructor({ aiService, settingsStore, logger }) { this.aiService = aiService; this.settingsStore = settingsStore; this.logger = logger; this.parser = new QuestionParser(); this.running = false; this.stopRequested = false; this.nextQuestionTimer = null; this.consecutiveRateLimits = 0; this.answerCache = /* @__PURE__ */ new WeakMap(); } async scan(root = document, options = {}) { if (this.settingsStore.get("aiAnswerEnabled") === false) return false; if (this.isReadOnlyWork(root)) return false; if (this.running) { this.logger.log("\u5DF2\u6709\u7B54\u9898\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C", "warn"); return false; } const questionNodes = this.parser.findQuestions(root); const displayTotal = this.parser.getDisplayTotal(root, questionNodes); const questions = questionNodes.map((element, index) => this.parser.parse(element, index, displayTotal)); if (!questions.length) { this.logger.log("\u672A\u8BC6\u522B\u5230\u9898\u76EE", "muted"); return false; } this.running = true; this.stopRequested = false; this.lastErrorCode = ""; this.logger.log(`\u8BC6\u522B\u5230 ${questions.length} \u9053\u53EF\u4F5C\u7B54\u9898\u76EE\uFF0C\u603B\u9898\u53F7 ${displayTotal}\uFF0C\u5F00\u59CB\u5904\u7406`, "success"); const paged = questions.length === 1 && displayTotal > 1; const reportProgress = (detail) => { try { window.dispatchEvent(new CustomEvent("drip-ai-question-progress", { detail })); } catch (e) { } }; let at = 0; try { for (const [position, question] of questions.entries()) { if (this.settingsStore.get("aiAnswerEnabled") === false) this.stopRequested = true; if (this.stopRequested) break; at = position; reportProgress(paged ? { active: true, current: question.displayIndex, total: displayTotal } : { active: true, current: position + 1, total: questions.length }); await this.answer(question); } if (this.stopRequested) { this.logger.log("\u7B54\u9898\u4EFB\u52A1\u5DF2\u505C\u6B62", "info"); return false; } if (this.tryNextExam(root, { questions, displayTotal })) { this.logger.log("\u672C\u9898\u5B8C\u6210\uFF0C\u7EE7\u7EED\u4E0B\u4E00\u9898", "success"); return true; } this.logger.log("\u672C\u9875\u9898\u76EE\u5904\u7406\u5B8C\u6210", "success"); const shouldSubmit = options && options.autoSubmit || this.settingsStore.get("autoSubmit"); if (shouldSubmit) { await sleep(1e3); if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return false; const submitted = await this.trySubmit(root, { force: true, autoSubmit: true }); if (!submitted) { return false; } } else if (options && options.autoSubmit === false) { this.logger.log("\u672C\u9875\u5DF2\u586B\u5199\uFF0C\u672A\u63D0\u4EA4\uFF1A\u81EA\u52A8\u63D0\u4EA4\u5DF2\u5173\u95ED\uFF0C\u8BF7\u68C0\u67E5\u540E\u81EA\u884C\u63D0\u4EA4", "info"); } return true; } catch (error) { this.lastErrorCode = error.code || "UNKNOWN_ERROR"; if (error.code === "NOT_ACTIVATED" || error.code === "INSUFFICIENT_BALANCE") { this.logger.log(error.message, "warn"); if (error.code === "INSUFFICIENT_BALANCE") { const question = questions[at]; const need = paged ? displayTotal - question.displayIndex + 1 : questions.slice(at).filter((item) => this.isPending(item)).length; try { window.dispatchEvent(new CustomEvent("drip7boi:balance-short", { detail: { phase: "during", balance: 0, need: Math.max(1, need), current: paged ? question.displayIndex : at + 1, total: paged ? displayTotal : questions.length } })); } catch (e) { } } } else { this.logger.log(`\u7B54\u9898\u4EFB\u52A1\u4E2D\u65AD\uFF1A${error.message}`, "error"); } return false; } finally { this.running = false; reportProgress({ active: false }); } } stop() { if (!this.running && !this.nextQuestionTimer) return false; this.stopRequested = true; if (this.nextQuestionTimer) { clearTimeout(this.nextQuestionTimer); this.nextQuestionTimer = null; } return true; } isReadOnlyWork(root = document) { const doc = root.ownerDocument || root; try { return /\/work\/phone\/selectWorkQuestionYiPiYue\/?$/.test(new URL(doc.location.href).pathname); } catch (e) { return false; } } hasQuestions(root = document) { return !this.isReadOnlyWork(root) && this.parser.findQuestions(root).length > 0; } // 会请求 AI(也就会扣积分)的题:没答过(或开了重做)、题型和题干都认得出。 isPending(question) { return (!question.answered || this.settingsStore.get("redo")) && question.type !== QUESTION_TYPES.UNKNOWN && Boolean(question.stem); } // 本页还要花多少积分:一页一题的考试按剩余题号算,其余按本页待答题数算。 countPending(root = document) { if (this.isReadOnlyWork(root)) return 0; const nodes = this.parser.findQuestions(root); const displayTotal = this.parser.getDisplayTotal(root, nodes); const questions = nodes.map((element, index) => this.parser.parse(element, index, displayTotal)); if (questions.length === 1 && displayTotal > 1) return Math.max(1, displayTotal - questions[0].displayIndex + 1); return questions.filter((question) => this.isPending(question)).length; } async answer(question) { var _a2; var _a; const prefix = `\u7B2C ${question.displayIndex || question.index + 1}/${question.total} \u9898`; if (question.answered && !this.settingsStore.get("redo")) { this.logger.log(`${prefix} \u5DF2\u4F5C\u7B54\uFF0C\u8DF3\u8FC7`, "muted"); return; } if (question.type === QUESTION_TYPES.UNKNOWN) { this.logger.log(`${prefix} \u65E0\u6CD5\u8BC6\u522B\u9898\u578B\uFF0C\u8DF3\u8FC7`, "warn"); return; } if (!question.stem) { this.logger.log(`${prefix} \u9898\u5E72\u4E3A\u7A7A\uFF0C\u8DF3\u8FC7`, "warn"); return; } await sleep(randomDelay(this.settingsStore.all())); if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return; const prompt = buildPrompt(question); const cached = question.element && this.answerCache.get(question.element); if ((cached == null ? void 0 : cached.prompt) === prompt && !this.settingsStore.get("redo")) { this.logger.log(`${prefix} \u4F7F\u7528\u672C\u9875\u5DF2\u6709\u7B54\u6848\uFF0C\u4E0D\u91CD\u590D\u8BF7\u6C42 AI`, "muted"); this.annotate(question, cached.answer); return this.applyAnswer(question, cached.answer); } const logRow = this.logger.log(`${prefix} \u8BF7\u6C42 AI`, "muted"); try { const result = await this.aiService.askAI(prompt, { type: question.type, index: question.displayIndex || question.index + 1, total: question.total }, { returnFull: true, shouldContinue: () => !this.stopRequested && this.settingsStore.get("aiAnswerEnabled") !== false }); const answer = String((result == null ? void 0 : result.answer) || "").trim(); if (!answer) { const error = new Error("AI_EMPTY_ANSWER"); error.code = "AI_EMPTY_ANSWER"; throw error; } this.consecutiveRateLimits = 0; if (question.element) this.answerCache.set(question.element, { prompt, answer }); this.logger.update(logRow, `${prefix} \u7B54\u6848\uFF1A${answer}`, "success"); const chargedPoints = (_a2 = result.usage) == null ? void 0 : _a2.consumedPoints; const remainingPoints = result.balancePoints; if (Number.isSafeInteger(chargedPoints) && chargedPoints >= 0 && Number.isFinite(remainingPoints) && remainingPoints >= 0) { const cachedCharge = result.usage.cached === true; const receiptText = cachedCharge ? `\u79EF\u5206\u8BB0\u5F55\uFF1A${prefix}\u4F7F\u7528\u539F\u8BF7\u6C42\u7ED3\u679C\uFF0C\u672C\u6B21\u672A\u91CD\u590D\u6263\u5206\uFF1B\u539F\u8BF7\u6C42\u6263\u9664 ${chargedPoints} \u79EF\u5206\uFF0C\u4F59\u989D ${remainingPoints} \u79EF\u5206` : `\u672C\u9898\u6D88\u8017 ${chargedPoints} \u79EF\u5206\uFF0C\u5269\u4F59 ${remainingPoints} \u79EF\u5206\uFF08AI \u8BF7\u6C42\u5DF2\u8BA1\u8D39\uFF0C\u586B\u5199\u6216\u63D0\u4EA4\u4ECD\u9700\u786E\u8BA4\uFF09`; const receiptRow = this.logger.log(receiptText, "muted"); if (!cachedCharge && chargedPoints > 0 && typeof window !== "undefined") window.dispatchEvent(new CustomEvent("drip7boi:ai-charged", { detail: { points: chargedPoints } })); if (receiptRow == null ? void 0 : receiptRow.dataset) Object.assign(receiptRow.dataset, { chargePoints: String(chargedPoints), chargeBalance: String(remainingPoints), chargeCached: String(cachedCharge), chargeQuestion: prefix }); } if (this.stopRequested) return; if (this.settingsStore.get("aiAnswerEnabled") === false) return; this.annotate(question, answer); await this.applyAnswer(question, answer); } catch (error) { if (error.code === "AI_DISABLED") { this.stopRequested = true; this.logger.update(logRow, `${prefix} AI \u4F5C\u7B54\u5DF2\u505C\u6B62`, "info"); return; } if (error.code === "AI_EMPTY_ANSWER") { error.message = "AI \u672A\u8FD4\u56DE\u53EF\u5199\u5165\u7684\u7B54\u6848\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; } if (error.code === "ORIGIN_NOT_ALLOWED") { error.message = "\u5F53\u524D\u6269\u5C55\u6765\u6E90\u672A\u88AB AI \u670D\u52A1\u653E\u884C\uFF0C\u8BF7\u66F4\u65B0\u670D\u52A1\u7AEF\u540E\u91CD\u8BD5"; } const message = error.code === "NOT_ACTIVATED" ? "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" : error.code === "INSUFFICIENT_BALANCE" ? "\u79EF\u5206\u4E0D\u8DB3\uFF0C\u8BF7\u8F93\u5165\u5361\u5BC6\u5151\u6362" : error.code === "DAILY_LIMIT_REACHED" ? "\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u660E\u5929\u6062\u590D\uFF1B\u79EF\u5206\u4F59\u989D\u4ECD\u4FDD\u7559" : error.code === "RATE_LIMITED" ? `\u8BF7\u6C42\u592A\u5FEB\uFF0C\u6682\u505C ${error.retryAfterSeconds || 30} \u79D2\u540E\u7EE7\u7EED` : error.code === "DEVICE_BANNED" ? "\u5F53\u524D\u8BBE\u5907\u5DF2\u88AB\u9650\u5236\uFF0C\u8BF7\u8054\u7CFB\u5356\u5BB6" : error.code === "AI_PROVIDER_ERROR" ? "AI \u670D\u52A1\u6682\u65F6\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" : error.code === "UNAUTHORIZED" ? "\u4F7F\u7528\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5" : error.message; this.logger.update(logRow, `${prefix} \u8BF7\u6C42\u5931\u8D25\uFF1A${message}`, "error"); if (error.code === "DAILY_LIMIT_REACHED") { this.stopRequested = true; throw error; } if (error.code === "RATE_LIMITED") { this.consecutiveRateLimits += 1; if (this.consecutiveRateLimits >= 2) { this.stopRequested = true; this.logger.log("\u8FDE\u7EED\u89E6\u53D1\u8BF7\u6C42\u9650\u5236\uFF0C\u672C\u8F6E\u7B54\u9898\u5DF2\u505C\u6B62", "warn"); throw error; } await sleep(Math.max(1, Number(error.retryAfterSeconds) || 30) * 1e3); throw error; } throw error; } } async applyAnswer(question, answer) { switch (question.type) { case QUESTION_TYPES.SINGLE: return this.applySingle(question, answer); case QUESTION_TYPES.MULTIPLE: return this.applyMultiple(question, answer); case QUESTION_TYPES.JUDGE: return this.applyJudge(question, answer); case QUESTION_TYPES.BLANK: return this.applyBlank(question, answer); case QUESTION_TYPES.TEXT: case QUESTION_TYPES.WRITING: case QUESTION_TYPES.TRANSLATION: return this.applyText(question, answer); default: return void 0; } } applySingle(question, answer) { const index = matchSingleOption(question.options, answer, this.settingsStore.get("fuzzyMatch")); if (index === -1) { this.logger.log("\u672A\u80FD\u5339\u914D\u5230\u9009\u9879\uFF0C\u8BF7\u4EBA\u5DE5\u6838\u5BF9", "warn"); return; } this.selectOption(question.options[index]); } applyMultiple(question, answer) { const indices = matchMultipleOptions(question.options, answer, this.settingsStore.get("fuzzyMatch")); if (!indices.length) { this.logger.log("\u672A\u80FD\u5339\u914D\u5230\u591A\u9009\u7B54\u6848\uFF0C\u8BF7\u4EBA\u5DE5\u6838\u5BF9", "warn"); return; } indices.forEach((index) => this.selectOption(question.options[index])); } applyJudge(question, answer) { const result = parseJudgeAnswer(answer); if (result === null) { this.logger.log("\u5224\u65AD\u9898\u7B54\u6848\u65E0\u6CD5\u6807\u51C6\u5316\uFF0C\u8BF7\u4EBA\u5DE5\u6838\u5BF9", "warn"); return; } const words = result ? ["\u6B63\u786E", "\u5BF9", "\u662F", "\u221A", "T"] : ["\u9519\u8BEF", "\u9519", "\u5426", "\xD7", "F"]; const index = question.options.findIndex((option) => words.some((word) => option.text.includes(word))); if (index === -1) { this.logger.log("\u672A\u627E\u5230\u5224\u65AD\u9898\u5BF9\u5E94\u9009\u9879", "warn"); return; } this.selectOption(question.options[index]); } applyBlank(question, answer) { const parts = splitAnswer(answer); question.inputs.forEach((input, index) => { this.fillInput(input, parts[index] || parts[0] || answer); }); } applyText(question, answer) { if (!question.inputs.length) { this.logger.log("\u672A\u627E\u5230\u6587\u672C\u4F5C\u7B54\u533A\u57DF", "warn"); return; } question.inputs.forEach((input) => this.fillInput(input, answer)); } selectOption(option) { if (!this.settingsStore.get("autoClick")) { option.clickable.style.fontWeight = "700"; option.clickable.style.outline = "2px solid #2563eb"; return; } clickElement(option.clickable); } fillInput(input, value) { var _a, _b; const editorId = input.id || input.name; const win = input.ownerDocument.defaultView || window; try { const editor = editorId && ((_b = (_a = win.UE) == null ? void 0 : _a.getEditor) == null ? void 0 : _b.call(_a, editorId)); if (editor == null ? void 0 : editor.setContent) { editor.setContent(value); return; } } catch (e) { } fillEmbeddedEditor(input, value); setNativeValue(input, value); } annotate(question, answer) { if (!this.settingsStore.get("alterTitle")) return; const stemNode = question.element.querySelector(".workTextWrap, .mark_name, h3.mark_name, .Zy_TItle, .question-title, .Py-m1-title, .tit, .stem"); if (!stemNode || stemNode.querySelector(".cxds-answer-note")) return; const note = document.createElement("div"); note.className = "cxds-answer-note"; note.style.cssText = "margin-top:6px;color:#2563eb;font-weight:600;"; note.textContent = `AI\u7B54\u6848\uFF1A${answer}`; stemNode.appendChild(note); } tryNextExam(root = document, context = {}) { const { questions = [], displayTotal = 0 } = context; const paginatedExam = displayTotal > questions.length; if (!this.settingsStore.get("examAutoNext") && !paginatedExam) return false; const next = this.findNextQuestionButton(root) || this.findNextUnansweredNavButton(root, questions); if (!next) return false; this.nextQuestionTimer = setTimeout(() => { this.nextQuestionTimer = null; if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return; clickElement(next); this.nextQuestionTimer = setTimeout(() => { this.nextQuestionTimer = null; if (!this.stopRequested && this.settingsStore.get("aiAnswerEnabled") !== false) this.scan(root); }, 1400); }, 900); return true; } async trySubmit(root = document, options = {}) { var _a, _b; if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return false; if (!(options.autoSubmit || options.force || this.settingsStore.get("autoSubmit"))) return false; const doc = root.ownerDocument || root; const nodes = this.parser.findQuestions(root); const total = this.parser.getDisplayTotal(root, nodes); const questions = nodes.map((node, index) => this.parser.parse(node, index, total)); if (!questions.length || questions.some((q) => !q.answered) || this.hasPendingQuestionNavigation(root, questions, total)) { this.logger.log("\u4F5C\u4E1A\u6846\u67B6\u4ECD\u6709\u672A\u4F5C\u7B54\u9898\u76EE\uFF0C\u8DF3\u8FC7\u81EA\u52A8\u63D0\u4EA4", "warn"); return false; } const dialogSelector = '#cxAlertBox1, .layui-layer-dialog, [role="dialog"], .ui-dialog'; const getDialog = () => Array.from(doc.querySelectorAll(dialogSelector)).find((node) => this.isVisibleAction(node) && /提交|交卷/.test(node.textContent || "")); const frame = (_a = doc.defaultView) == null ? void 0 : _a.frameElement; const submittedUrl = (_b = doc.location) == null ? void 0 : _b.href; let dialog = getDialog(); if (!dialog) { const submit = this.findSubmitButton(root); if (!submit) { this.logger.log("\u4F5C\u4E1A\u6846\u67B6\u672A\u627E\u5230\u63D0\u4EA4\u6309\u94AE\uFF0C\u8BF7\u624B\u52A8\u68C0\u67E5", "warn"); return false; } clickElement(submit); this.logger.log("\u5DF2\u70B9\u51FB\u63D0\u4EA4\uFF0C\u7B49\u5F85\u4F5C\u4E1A\u786E\u8BA4\u5F39\u7A97", "info"); for (let i = 0; i < 10 && !dialog; i++) { await sleep(300); if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return false; dialog = getDialog(); } } if (dialog) { if (this.stopRequested || this.settingsStore.get("aiAnswerEnabled") === false) return false; if (/未.*(?:完成|作答|做完)|未答|漏答/.test(dialog.textContent || "")) { this.logger.log("\u5E73\u53F0\u63D0\u793A\u5B58\u5728\u672A\u5B8C\u6210\u9898\u76EE\uFF0C\u505C\u6B62\u786E\u8BA4\u63D0\u4EA4", "warn"); return false; } const confirm = Array.from(dialog.querySelectorAll('#okBtn, .layui-layer-btn0, button, a, li, [role="button"]')).find((node) => this.isVisibleAction(node) && /^(确认|确定|提交|确认提交|确定提交)$/.test((node.textContent || node.value || "").trim())); if (!confirm) { this.logger.log("\u672A\u8BC6\u522B\u5230\u63D0\u4EA4\u786E\u8BA4\u6309\u94AE\uFF0C\u8BF7\u624B\u52A8\u68C0\u67E5", "warn"); return false; } clickElement(confirm); this.logger.log("\u5DF2\u786E\u8BA4\u63D0\u4EA4\uFF0C\u7B49\u5F85\u5E73\u53F0\u8FD4\u56DE\u7ED3\u679C", "info"); } for (let i = 0; i < 15; i++) { await sleep(1e3); let current; try { current = frame ? frame.contentDocument : doc; } catch (e) { } if (!current) continue; const reviewed = this.isReviewedSubmission(current, submittedUrl); const success = reviewed || Array.from(current.querySelectorAll("span,div,p,h1,h2,h3")).some((node) => !node.closest("#cxds-panel,.questionLi,.TiMu,.Py-mian1") && this.isVisibleAction(node) && /^(提交成功[!!。]?|已提交|待批阅|待批改|已完成)$/.test((node.textContent || "").trim())); if (success) { this.logger.log("\u5E73\u53F0\u5DF2\u786E\u8BA4\u63D0\u4EA4\u5B8C\u6210", "success"); return true; } } this.logger.log("\u5C1A\u672A\u6536\u5230\u5E73\u53F0\u63D0\u4EA4\u6210\u529F\u72B6\u6001\uFF0C\u4FDD\u6301\u672C\u9875\u68C0\u67E5", "warn"); return false; } isReviewedSubmission(doc, submittedUrl) { var _a; try { const before = new URL(submittedUrl); const after = new URL(doc.location.href); return before.origin === after.origin && /\/work\/phone\/selectWorkQuestionYiPiYue$/.test(after.pathname) && ["jobId", "courseId", "knowledgeId"].every((key) => before.searchParams.get(key) && before.searchParams.get(key) === after.searchParams.get(key)) && ((_a = doc.querySelector(".hetNumber .finish")) == null ? void 0 : _a.textContent.trim()) === "\u5DF2\u5B8C\u6210"; } catch (e) { return false; } } findNextQuestionButton(root = document) { const doc = root.ownerDocument || root; const scope = doc === root ? root : doc; const selectors = [ ".nextDiv a.jb_btn", "#next", "#nextQuestion", ".nextQuestion", ".next", 'a[onclick*="next"]', 'button[onclick*="next"]', '[class*="next"]' ]; for (const selector of selectors) { const found = Array.from(scope.querySelectorAll(selector)).find((node) => this.isVisibleAction(node) && /下一题|下一頁|下一页|下一|next/i.test(`${node.textContent || ""} ${node.value || ""} ${node.title || ""} ${node.className || ""}`)); if (found) return found; } return Array.from(scope.querySelectorAll('button,a,div,span,[role="button"]')).find((node) => this.isVisibleAction(node) && /下一题|下一頁|下一页/.test(`${node.textContent || ""} ${node.value || ""} ${node.title || ""}`)); } hasPendingQuestionNavigation(root = document, questions = [], displayTotal = 0) { void displayTotal; return Boolean(this.findNextUnansweredNavButton(root, questions)); } findNextUnansweredNavButton(root = document, questions = []) { const currentNumbers = new Set(questions.map((q) => q.displayIndex).filter(Boolean)); const nodes = Array.from(root.querySelectorAll("a,button,li,span,div")).filter((node) => { var _a; return !((_a = node.closest) == null ? void 0 : _a.call(node, "#cxds-panel,#cxds-logo")); }).filter((node) => this.isVisibleAction(node)).filter((node) => /^\d{1,4}$/.test(String(node.textContent || "").trim())); return nodes.find((node) => { var _a, _b; const n = Number(String(node.textContent || "").trim()); if (n <= 0 || currentNumbers.has(n)) return false; const state = `${node.className || ""} ${((_a = node.parentElement) == null ? void 0 : _a.className) || ""} ${node.title || ""} ${((_b = node.getAttribute) == null ? void 0 : _b.call(node, "aria-label")) || ""}`; if (/未作答|unanswer|not[-_]?answer|empty/i.test(state)) return true; if (/answered|done|finish|complete|已作答|已答|完成/i.test(state)) return false; return /question|mark|nav|num|topic|answer|exam|test/i.test(state); }) || null; } findSubmitButton(root = document) { const selectors = [ ".ZY_sub .btnSubmit", ".ZY_sub .btnBlue", ".zquestions .zsubmit .btn-ok-bottom", ".zsubmit .btn-ok-bottom", "#submitTest", "#submitFocus", "#submitButton", "#submitBtn", ".submitBtn", ".btnSubmit", ".btn-submit", ".btnOk", ".jb_btn", 'button[type="submit"]', 'input[type="submit"]' ]; for (const selector of selectors) { const element = root.querySelector(selector); if (this.isVisibleAction(element)) return element; } const textCandidates = Array.from(root.querySelectorAll('button, a, input[type="button"], input[type="submit"], .btn, .jb_btn, [role="button"]')); return textCandidates.find((element) => { if (!this.isVisibleAction(element)) return false; const text = `${element.value || ""} ${element.textContent || ""} ${element.title || ""}`.trim(); return /提交|交卷|保存并提交|确认提交|我要交卷|完成|提交答案/.test(text); }) || null; } isVisibleAction(element) { if (!element || element.disabled) return false; const style = window.getComputedStyle(element); if (style.display === "none" || style.visibility === "hidden" || Number(style.opacity) === 0) return false; const rect = element.getBoundingClientRect(); return rect.width > 0 && rect.height > 0; } }; var PageDetector = class { current(root = document) { var _a; const path = ((_a = root.location) == null ? void 0 : _a.pathname) || location.pathname; if (SITUATIONAL_DIALOGUE_PATH.test(path)) return "dialogue"; if (/exam|test|paper|preview/i.test(path) || $(".whiteDiv .stem_answer", root)) return "exam"; if (/work|homework|question/i.test(path) || $(".mark_table .questionLi, .questionLi, .zquestions .Py-mian1, .TiMu", root)) return "homework"; if (/knowledge|studentstudy|mycourse|course|video|audio|ztnodedetail/i.test(path) || $("video,audio", root)) return "media"; return "unknown"; } currentInTree() { if (this.current(document) !== "unknown") return this.current(document); for (const frame of findSameOriginFrames(document)) { const doc = frame.contentDocument; if (doc && this.current(doc) !== "unknown") return this.current(doc); } return "unknown"; } shouldMount() { return this.currentInTree() !== "unknown"; } }; function assertAiAnswerAllowed(settingsStore, options = {}) { var _a; if ((settingsStore == null ? void 0 : settingsStore.get("aiAnswerEnabled")) === false || ((_a = options.shouldContinue) == null ? void 0 : _a.call(options)) === false) { const error = new Error("AI \u4F5C\u7B54\u5DF2\u5173\u95ED"); error.code = "AI_DISABLED"; throw error; } } var AIService = class { constructor(provider, settingsStore, logger) { this.provider = provider; this.settingsStore = settingsStore; this.logger = logger; this.nextAllowedAt = 0; } async askAI(prompt, meta = {}, options = {}) { var _a, _b; assertAiAnswerAllowed(this.settingsStore, options); window.dispatchEvent(new CustomEvent("drip-ai-work-progress")); const config = await ((_b = (_a = this.provider.licenseClient) == null ? void 0 : _a.getRemoteConfig) == null ? void 0 : _b.call(_a)) || {}; const intervalMs = Math.max( Math.max(0, Number(this.settingsStore.get("requestInterval")) || 0) * 1e3, Math.min(6e4, Math.max(0, Number(config.answerIntervalMs) || 0)) ); const now = Date.now(); const waitMs = Math.max(0, this.nextAllowedAt - now); this.nextAllowedAt = Math.max(now, this.nextAllowedAt) + intervalMs; if (waitMs > 0) { this.logger.log(`\u8BF7\u6C42\u95F4\u9694\u9650\u5236\uFF0C\u7B49\u5F85 ${Math.ceil(waitMs / 1e3)} \u79D2`, "muted"); await new Promise((resolve) => setTimeout(resolve, waitMs)); } assertAiAnswerAllowed(this.settingsStore, options); return this.provider.ask(prompt, meta, options); } }; var ID_KEYS = [ "_uid", "UID", "uid", "puid", "PUID", "userId", "userid", "personId", "personid" ]; function safeRead(fn) { try { return fn(); } catch (e) { return ""; } } function normalizeValue(value) { const text = String(value || "").trim(); return /^\d{5,12}$/.test(text) ? text : ""; } function fromUrl() { const params = new URLSearchParams(location.search); for (const key of ID_KEYS) { const value = normalizeValue(params.get(key)); if (value) return { key, value }; } return null; } function fromCookie() { const pairs = String(document.cookie || "").split(";").map((item) => item.trim()).filter(Boolean); const cookies = new Map(pairs.map((item) => { const index = item.indexOf("="); const key = index >= 0 ? item.slice(0, index) : item; const value = index >= 0 ? decodeURIComponent(item.slice(index + 1)) : ""; return [key, value]; })); for (const key of ID_KEYS) { const value = normalizeValue(cookies.get(key)); if (value) return { key, value }; } return null; } function fromStorage(storage) { if (!storage) return null; for (const key of ID_KEYS) { const value = normalizeValue(storage.getItem(key)); if (value) return { key, value }; } for (let index = 0; index < storage.length; index += 1) { const key = storage.key(index); if (!/uid|userid|personid/i.test(key || "") || /uuid/i.test(key || "")) continue; const value = normalizeValue(storage.getItem(key)); if (value) return { key, value }; } return null; } function fromGlobals(rootWindow) { if (!rootWindow) return null; for (const key of ID_KEYS) { const value = normalizeValue(rootWindow[key]); if (value) return { key, value }; } const candidates = [ rootWindow.user, rootWindow.USER, rootWindow._user, rootWindow.Account, rootWindow.account, rootWindow.chaoxingUser ]; for (const item of candidates) { if (!item || typeof item !== "object") continue; for (const key of ID_KEYS) { const value = normalizeValue(item[key]); if (value) return { key, value }; } } return null; } function getChaoxingIdentity() { if (!/chaoxing\.com|edu\.cn/i.test(location.hostname)) return ""; const sources = [ () => fromCookie(), () => fromStorage(window.localStorage), () => fromStorage(window.sessionStorage), () => fromGlobals(window), () => window.top !== window ? fromGlobals(window.top) : null, () => { const result = fromUrl(); return result && { ...result, fromUrl: true }; } ]; for (const [index, read] of sources.entries()) { const result = safeRead(read); if (result == null ? void 0 : result.value) { return { key: result.key, value: result.value, fromUrl: Boolean(result.fromUrl), // 登录 Cookie 里的 _uid / UID 才算可靠;服务端只用它判断“是不是换了学习通号”。 fromCookie: index === 0 && /^(?:_uid|UID)$/.test(result.key), installId: `chaoxing:${result.key}:${result.value}` }; } } return null; } var fallbackPrefix = "drip7boi."; function fallbackKey(key) { return `${fallbackPrefix}${key}`; } async function readShared(key, fallback = "") { var _a; if (typeof GM_getValue === "function") { return GM_getValue(key, fallback); } return (_a = localStorage.getItem(fallbackKey(key))) != null ? _a : fallback; } async function writeShared(key, value) { if (typeof GM_setValue === "function") { await GM_setValue(key, value); return; } localStorage.setItem(fallbackKey(key), String(value)); } async function removeShared(key) { if (typeof GM_deleteValue === "function") { await GM_deleteValue(key); return; } localStorage.removeItem(fallbackKey(key)); } function parseChaoxingProfile(doc, expectedUid) { var _a; const identity = doc.querySelector("#uid"); const uid = String((identity == null ? void 0 : identity.value) || (identity == null ? void 0 : identity.textContent) || "").trim(); if (!uid || uid !== String(expectedUid)) return null; const clean = (value) => String(value || "").trim().slice(0, 128); const units = Array.from(doc.querySelectorAll("#messageFid > li")); const displayed = units.filter((item) => { var _a2; return !Array.from(((_a2 = item.querySelectorAll) == null ? void 0 : _a2.call(item, "a")) || []).some((link) => link.textContent.trim() === "\u8BBE\u7F6E\u4E3A\u663E\u793A\u5355\u4F4D"); }); const unit = units.length === 1 ? units[0] : displayed.length === 1 ? displayed[0] : null; const schoolName = unit ? clean(Array.from(unit.childNodes).filter((n) => n.nodeType === 3).map((n) => n.textContent).join(" ")) : ""; const readNumber = (item) => { var _a2, _b; return clean((_b = (_a2 = item == null ? void 0 : item.querySelector(".xuehao")) == null ? void 0 : _a2.textContent) == null ? void 0 : _b.replace(/^\s*学号\/工号\s*[::]\s*/, "")); }; const numbers = units.map(readNumber); const studentNumber = unit ? readNumber(unit) : numbers.length && numbers.every((n) => n && n === numbers[0]) ? numbers[0] : ""; return { displayName: clean((_a = doc.querySelector("#messageName")) == null ? void 0 : _a.textContent), schoolName, studentNumber }; } function parseChaoxingLoginInfo(text, expectedUid) { var _a; let data; try { data = JSON.parse(String(text || "").trim().split("\n")[0]); } catch (e) { return null; } const info = (data == null ? void 0 : data.result) === 1 ? data.msg : null; if (!info || String((_a = info.puid) != null ? _a : "") !== String(expectedUid)) return null; const clean = (value) => String(value != null ? value : "").trim().slice(0, 128); const number = clean(info.uname); return { displayName: clean(info.name), schoolName: clean(info.schoolname), studentNumber: number && number !== clean(info.phone) ? number : "" }; } async function readChaoxingPage(url) { if (typeof __dripExtensionFetch === "function") { const response = await __dripExtensionFetch(url); if (!response.ok) throw new Error(`HTTP_${response.status}`); return response.text(); } if (typeof GM_xmlhttpRequest !== "function") throw new Error("NO_TRANSPORT"); return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url, timeout: 1e4, onload: (response) => response.status === 200 ? resolve(response.responseText) : reject(new Error(`HTTP_${response.status}`)), onerror: () => reject(new Error("NETWORK")), ontimeout: () => reject(new Error("TIMEOUT")) }); }); } async function fetchChaoxingProfile(uid) { const local = parseChaoxingProfile(document, uid); if (local) return local; const reasons = []; const sources = [ ["page", "https://passport2.chaoxing.com/mooc/accountManage", (text) => parseChaoxingProfile(new DOMParser().parseFromString(text, "text/html"), uid)], ["sso", "https://sso.chaoxing.com/apis/login/userLogin4Uname.do", (text) => parseChaoxingLoginInfo(text, uid)] ]; for (const [name, url, parse] of sources) { try { const profile = parse(await readChaoxingPage(url)); if (profile && Object.values(profile).some(Boolean)) return profile; reasons.push(`${name}:${profile ? "EMPTY" : "NO_MATCH"}`); } catch (error2) { reasons.push(`${name}:${String((error2 == null ? void 0 : error2.message) || "ERROR").slice(0, 40)}`); } } const error = new Error("PROFILE_UNAVAILABLE"); error.reason = reasons.join(" "); throw error; } var STORE = { installId: "installId", accessToken: "accessToken", balancePoints: "balancePoints", chaoxingUid: "chaoxingUid", dailyUsedPoints: "dailyUsedPoints", dailyLimitPoints: "dailyLimitPoints", dailyRemainingPoints: "dailyRemainingPoints", resetAt: "resetAt" }; var LicenseClient = class { constructor(config = LICENSE_CONFIG) { this.config = config; this.balanceRevision = 0; this.state = { installId: "", accessToken: "", balancePoints: null, chaoxingUid: "", dailyUsedPoints: null, dailyLimitPoints: null, dailyRemainingPoints: null, resetAt: "" }; this.remoteConfig = null; this.remoteConfigFetchedAt = 0; } get apiBaseUrl() { return String(this.config.apiBaseUrl || "").replace(/\/+$/, ""); } getChaoxingIdentity() { return getChaoxingIdentity(); } getChaoxingUid() { const identity = getChaoxingIdentity(); if ((identity == null ? void 0 : identity.fromUrl) && this.state.chaoxingUid && identity.value !== this.state.chaoxingUid) { return this.state.chaoxingUid; } return (identity == null ? void 0 : identity.value) || ""; } getAccessToken() { return this.state.accessToken; } getCachedBalance() { return this.state.balancePoints; } getAccountSnapshot() { return { installId: this.state.installId, chaoxingUid: this.state.chaoxingUid, balancePoints: this.state.balancePoints, dailyUsedPoints: this.state.dailyUsedPoints, dailyLimitPoints: this.state.dailyLimitPoints, dailyRemainingPoints: this.state.dailyRemainingPoints, resetAt: this.state.resetAt }; } hasToken() { return Boolean(this.state.accessToken); } async initialize() { var _a, _b; for (const key of Object.values(STORE)) this.state[key] = await readShared(key, (_a = this.state[key]) != null ? _a : ""); const uid = this.getChaoxingUid(); if (!uid) return { recognized: false }; const switchedFrom = this.state.chaoxingUid && this.state.chaoxingUid !== uid ? this.state.chaoxingUid : ""; if (switchedFrom) await this.clearAccountSession(); this.state.chaoxingUid = uid; await writeShared(STORE.chaoxingUid, uid); if (!this.state.installId) { this.state.installId = ((_b = crypto.randomUUID) == null ? void 0 : _b.call(crypto)) || `install_${Date.now()}_${Math.random().toString(16).slice(2)}`; await writeShared(STORE.installId, this.state.installId); } if (!await this.useIdentity(uid)) this.deviceSecret = ""; await this.ensureSession(); this.scheduleProfileSync(); if (switchedFrom && window === window.top) window.dispatchEvent(new CustomEvent("drip7boi:uid-switched", { detail: { uid } })); return { recognized: true, chaoxingUid: uid }; } async syncProfile() { var _a; const uid = this.getChaoxingUid(); const token = this.state.accessToken; const installId = this.state.installId; if (!uid || !token) return; const key = `profileSyncedAt:v2:${installId}:${uid}`; if (((_a = this.profileRequest) == null ? void 0 : _a.key) === key && this.profileRequest.token === token) return this.profileRequest.promise; const pending = { key, token }; pending.promise = (async () => { if (Date.now() - Number(await readShared(key, 0)) < 6e5) return; let profile = null; let profileError = ""; try { profile = await fetchChaoxingProfile(uid); } catch (error) { profileError = String((error == null ? void 0 : error.reason) || (error == null ? void 0 : error.message) || "ERROR"); } if (!profileError && !(profile && Object.values(profile).some(Boolean))) profileError = "EMPTY"; const current = () => this.getChaoxingUid() === uid && this.state.accessToken === token && this.state.installId === installId; if (!current()) return; const reportKey = profileError ? `profileErrorAt:v1:${installId}:${uid}` : key; if (profileError && Date.now() - Number(await readShared(reportKey, 0)) < 6e5) return; await this.request("/api/profile", { method: "POST", headers: { Authorization: `Bearer ${token}` }, body: JSON.stringify(profileError ? { chaoxingUid: uid, profileError } : { ...profile, chaoxingUid: uid }) }); if (current()) await writeShared(reportKey, Date.now()); })(); this.profileRequest = pending; try { await pending.promise; } finally { if (this.profileRequest === pending) this.profileRequest = null; } } scheduleProfileSync() { if (window !== window.top) return; this.syncProfile().catch(() => console.warn("\u8D26\u53F7\u8D44\u6599\u6682\u672A\u540C\u6B65\uFF0C\u53EF\u7A0D\u540E\u5237\u65B0\u4F59\u989D\u91CD\u8BD5")); } async clearAccountSession() { this.balanceRevision += 1; this.state.accessToken = ""; this.state.balancePoints = null; this.state.dailyUsedPoints = null; this.state.dailyLimitPoints = null; this.state.dailyRemainingPoints = null; this.state.resetAt = ""; await Promise.all([ removeShared(STORE.accessToken), removeShared(STORE.balancePoints), removeShared(STORE.dailyUsedPoints), removeShared(STORE.dailyLimitPoints), removeShared(STORE.dailyRemainingPoints), removeShared(STORE.resetAt) ]); window.dispatchEvent(new CustomEvent("drip7boi:account-changed")); } async ensureSession() { if (!this.getChaoxingUid()) return null; if (this.state.accessToken && !this.deviceSecret) await this.clearAccountSession(); if (this.state.accessToken && this.deviceSecret) { try { return await this.refreshMe(); } catch (error) { if (!["UNAUTHORIZED", "BINDING_REQUIRED"].includes(error.code)) throw error; await this.clearAccountSession(); } } return this.startAutomatically(); } async startAutomatically() { if (this.startRequest) return this.startRequest; const pending = (async () => { const uid = this.getChaoxingUid(); await this.getBindingRequest(); const start = () => this.request("/api/start", { method: "POST", body: JSON.stringify({ installId: this.state.installId, deviceSecret: this.deviceSecret, chaoxingUid: uid, chaoxingUidSource: this.chaoxingUidSource(), clientVersion: this.config.clientVersion }) }); let payload; try { payload = await start(); } catch (error) { if (error.code !== "UID_MISMATCH" || !uid) throw error; await this.useIdentity(uid, true); payload = await start(); } this.state.installId = payload.installId; this.state.accessToken = payload.accessToken; await writeShared(STORE.installId, payload.installId); await writeShared(STORE.accessToken, payload.accessToken); await this.rememberIdentity(uid, payload.installId); if (uid && this.state.chaoxingUid !== uid) { this.state.chaoxingUid = uid; await writeShared(STORE.chaoxingUid, uid); } await this.applyAccountPayload(payload); window.dispatchEvent(new CustomEvent("drip7boi:account-ready")); return payload; })(); this.startRequest = pending; try { return await pending; } finally { if (this.startRequest === pending) this.startRequest = null; } } async getBindingRequest() { if (typeof GM_getValue !== "function" || typeof GM_setValue !== "function") throw new Error("\u8BF7\u4F7F\u7528\u6B63\u5F0F\u6269\u5C55\u6216\u652F\u6301\u9694\u79BB\u5B58\u50A8\u7684\u811A\u672C\u7BA1\u7406\u5668"); await this.useIdentity(this.getChaoxingUid()); const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(this.deviceSecret)); const secretHash = Array.from(new Uint8Array(bytes), (x) => x.toString(16).padStart(2, "0")).join(""); return JSON.stringify({ installId: this.state.installId, secretHash }); } // 每个学习通号各用一套 installId + 设备密钥,同一浏览器换成别人的号不会再扣原账户的积分。 // 没登记过的号先试原来那套(老用户升级后照常用原账户);服务端认出它属于另一个号时,startAutomatically 再新建一套。 async readIdentities() { let store = {}; try { store = JSON.parse(await GM_getValue("bindingIdentities", "") || "{}") || {}; } catch (e) { store = {}; } if (!store.legacy) { let secret = await GM_getValue("bindingDeviceSecret", ""); if (!secret) { secret = this.newDeviceSecret(); await GM_setValue("bindingDeviceSecret", secret); } store.legacy = { installId: this.state.installId || crypto.randomUUID(), secret }; } store.byUid = store.byUid && typeof store.byUid === "object" ? store.byUid : {}; return store; } async useIdentity(uid, fresh = false) { if (typeof GM_getValue !== "function" || typeof GM_setValue !== "function") return null; const store = await this.readIdentities(); if (fresh && uid) store.byUid[uid] = { installId: crypto.randomUUID(), secret: this.newDeviceSecret() }; const identity = uid && store.byUid[uid] || store.legacy; await GM_setValue("bindingIdentities", JSON.stringify(store)); this.deviceSecret = identity.secret; if (this.state.installId !== identity.installId) { this.state.installId = identity.installId; await writeShared(STORE.installId, identity.installId); } return identity; } async rememberIdentity(uid, installId) { if (!uid || typeof GM_getValue !== "function" || typeof GM_setValue !== "function") return; const store = await this.readIdentities(); const identity = { installId, secret: this.deviceSecret }; if (store.legacy.secret === identity.secret) store.legacy = identity; store.byUid[uid] = identity; await GM_setValue("bindingIdentities", JSON.stringify(store)); } newDeviceSecret() { return btoa(String.fromCharCode(...crypto.getRandomValues(new Uint8Array(32)))).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, ""); } chaoxingUidSource() { const identity = getChaoxingIdentity(); return (identity == null ? void 0 : identity.fromCookie) && identity.value === this.getChaoxingUid() ? "cookie" : ""; } async openSession(pairingCode) { if (!pairingCode) throw Object.assign(new Error("\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"), { code: "BINDING_REQUIRED" }); const uid = this.getChaoxingUid(); if (!uid) return null; await this.getBindingRequest(); const payload = await this.request("/api/session", { method: "POST", body: JSON.stringify({ pairingCode, deviceSecret: this.deviceSecret, installId: this.state.installId, clientVersion: this.config.clientVersion }) }); this.state.accessToken = payload.accessToken; await writeShared(STORE.accessToken, payload.accessToken); await this.applyAccountPayload(payload); window.dispatchEvent(new CustomEvent("drip7boi:account-ready")); return payload; } async setCachedBalance(balancePoints) { var _a; this.balanceRevision += 1; const value = Number(balancePoints); this.state.balancePoints = Number.isFinite(value) ? Math.max(0, value) : null; await writeShared(STORE.balancePoints, (_a = this.state.balancePoints) != null ? _a : ""); window.dispatchEvent(new CustomEvent("drip7boi:balance", { detail: this.getAccountSnapshot() })); return this.state.balancePoints; } async applyAccountPayload(payload = {}) { var _a, _b, _c, _d; this.balanceRevision += 1; if (Object.hasOwn(payload, "balancePoints")) { const balance = Number(payload.balancePoints); this.state.balancePoints = Number.isFinite(balance) ? Math.max(0, balance) : this.state.balancePoints; } for (const key of ["dailyUsedPoints", "dailyLimitPoints"]) { if (!Object.hasOwn(payload, key)) continue; const value = Number(payload[key]); this.state[key] = Number.isFinite(value) ? Math.max(0, value) : null; } if (Object.hasOwn(payload, "dailyRemainingPoints")) { const value = payload.dailyRemainingPoints; this.state.dailyRemainingPoints = value === null ? null : Math.max(0, Number(value) || 0); } if (Object.hasOwn(payload, "resetAt")) this.state.resetAt = String(payload.resetAt || ""); await Promise.all([ writeShared(STORE.balancePoints, (_a = this.state.balancePoints) != null ? _a : ""), writeShared(STORE.dailyUsedPoints, (_b = this.state.dailyUsedPoints) != null ? _b : ""), writeShared(STORE.dailyLimitPoints, (_c = this.state.dailyLimitPoints) != null ? _c : ""), writeShared(STORE.dailyRemainingPoints, (_d = this.state.dailyRemainingPoints) != null ? _d : ""), writeShared(STORE.resetAt, this.state.resetAt) ]); window.dispatchEvent(new CustomEvent("drip7boi:balance", { detail: this.getAccountSnapshot() })); this.scheduleProfileSync(); return this.getAccountSnapshot(); } async refreshMe() { var _a; if (!this.state.accessToken) return this.startAutomatically(); const token = this.state.accessToken; const revision = this.balanceRevision; if (((_a = this.meRequest) == null ? void 0 : _a.token) === token && this.meRequest.revision === revision) return this.meRequest.promise; const pending = { token, revision }; pending.promise = (async () => { try { const payload = await this.request("/api/me", { method: "GET", headers: { Authorization: `Bearer ${token}` } }); if (this.state.accessToken !== token || this.balanceRevision !== revision) throw Object.assign(new Error("\u8D26\u6237\u72B6\u6001\u5DF2\u66F4\u65B0\uFF0C\u8BF7\u91CD\u65B0\u5237\u65B0\u4F59\u989D"), { code: "ACCOUNT_CHANGED" }); await this.applyAccountPayload(payload); return payload; } catch (error) { if (this.state.accessToken !== token) throw Object.assign(new Error("\u8D26\u6237\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u5237\u65B0\u4F59\u989D"), { code: "ACCOUNT_CHANGED" }); throw error; } finally { if (this.meRequest === pending) this.meRequest = null; } })(); this.meRequest = pending; return pending.promise; } async redeemCard(cardCode) { const uid = this.getChaoxingUid(); if (!uid) { const error = new Error("ACCOUNT_UNRECOGNIZED"); error.code = "ACCOUNT_UNRECOGNIZED"; throw error; } await this.ensureSession(); await this.getBindingRequest(); const payload = await this.request("/api/redeem", { method: "POST", body: JSON.stringify({ installId: this.state.installId, deviceSecret: this.deviceSecret, chaoxingUid: uid, cardCode, clientVersion: this.config.clientVersion }) }); if (payload.installId) { this.state.installId = payload.installId; await writeShared(STORE.installId, payload.installId); } this.state.accessToken = payload.accessToken; await writeShared(STORE.accessToken, payload.accessToken); await this.applyAccountPayload(payload); window.dispatchEvent(new CustomEvent("drip7boi:account-ready")); return this.refreshMe(); } async getInvite() { await this.ensureSession(); return this.request("/api/invite", { method: "GET" }); } async bindInvite(code) { await this.ensureSession(); const payload = await this.request("/api/invite/bind", { method: "POST", body: JSON.stringify({ code }) }); await this.applyAccountPayload(payload); window.dispatchEvent(new CustomEvent("drip7boi:balance", { detail: this.getAccountSnapshot() })); return payload; } // 面板扫码付款:下单拿付款码;查单时如果已到账,顺手把余额写回本地。 async createPayOrder(packageId, method) { await this.ensureSession(); return this.request("/api/pay/orders", { method: "POST", body: JSON.stringify({ packageId, method }) }); } async getPayOrder(orderNo) { const payload = await this.request(`/api/pay/orders/${encodeURIComponent(orderNo)}`, { method: "GET" }); if (payload.status === "paid" && Number.isFinite(Number(payload.balancePoints))) await this.applyAccountPayload({ balancePoints: payload.balancePoints }); return payload; } async ensureUsableBalance() { const me = await this.refreshMe(); if (Number((me == null ? void 0 : me.balancePoints) || 0) <= 0) { const error = new Error("INSUFFICIENT_BALANCE"); error.code = "INSUFFICIENT_BALANCE"; throw error; } if (Number((me == null ? void 0 : me.dailyLimitPoints) || 0) > 0 && Number((me == null ? void 0 : me.dailyRemainingPoints) || 0) <= 0) { const error = new Error("DAILY_LIMIT_REACHED"); error.code = "DAILY_LIMIT_REACHED"; error.payload = me; throw error; } return me; } async getRemoteConfig({ force = false } = {}) { const now = Date.now(); if (!force && this.remoteConfig && now - this.remoteConfigFetchedAt < 3e4) return this.remoteConfig; const payload = await this.request(`/api/config?installId=${encodeURIComponent(this.state.installId || "")}`, { method: "GET" }); this.remoteConfig = payload; this.remoteConfigFetchedAt = now; window.__dripLastConfig = payload; window.dispatchEvent(new CustomEvent("drip7boi:config", { detail: payload })); return payload; } async request(path, options = {}) { const requestToken = this.state.accessToken; if (this.state.accessToken && this.deviceSecret) { options = { ...options, headers: { ...options.headers, Authorization: `Bearer ${this.state.accessToken}`, "x-install-id": this.state.installId, "x-device-secret": this.deviceSecret, ...this.chaoxingUidSource() === "cookie" ? { "x-chaoxing-uid": this.getChaoxingUid() } : {} } }; } const clientChannel = typeof __dripExtensionFetch === "function" ? "extension" : typeof __dripUserscriptFetch === "function" ? "userscript" : ""; if (clientChannel) options = { ...options, headers: { "x-client-channel": clientChannel, ...options.headers } }; const response = await __dripUserscriptFetch(`${this.apiBaseUrl}${path}`, { ...options, headers: { "Content-Type": "application/json", "x-client-version": this.config.clientVersion, ...options.headers || {} } }); const payload = await response.json().catch(() => ({})); if (!response.ok || payload.ok === false) { if (payload.code === "DAILY_LIMIT_REACHED" || payload.error === "DAILY_LIMIT_REACHED") { await this.applyAccountPayload(payload); } const code = payload.code || payload.error || `HTTP_${response.status}`; const error = new Error(payload.message || code); error.code = code; error.status = response.status; error.payload = payload; if (["UNAUTHORIZED", "BINDING_REQUIRED", "UID_MISMATCH"].includes(code) && path !== "/api/account" && requestToken && this.state.accessToken === requestToken) { await this.clearAccountSession(); error.message = code === "UID_MISMATCH" ? payload.message || "\u68C0\u6D4B\u5230\u6362\u4E86\u5B66\u4E60\u901A\u8D26\u53F7\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u540E\u518D\u7528" : "\u4F7F\u7528\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5\uFF1B\u539F\u6709\u79EF\u5206\u4ECD\u4FDD\u7559"; } throw error; } return payload; } }; var PaidProxyProvider = class { constructor({ licenseClient, timeout, maxRetries, logger }) { this.licenseClient = licenseClient; this.timeout = timeout; this.maxRetries = maxRetries; this.logger = logger; } setConfig({ timeout, maxRetries }) { if (typeof timeout === "number") this.timeout = timeout; if (typeof maxRetries === "number") this.maxRetries = maxRetries; } async ask(prompt, meta = {}, options = {}) { var _a, _b, _c; assertAiAnswerAllowed(null, options); await this.licenseClient.ensureUsableBalance(); let lastError; for (let attempt = 0; attempt <= this.maxRetries; attempt += 1) { assertAiAnswerAllowed(null, options); try { const result = await this.requestAnswer(prompt, meta); return options.returnFull ? result : result.answer; } catch (error) { assertAiAnswerAllowed(null, options); lastError = error; if (["BINDING_REQUIRED", "PAIRING_INVALID", "UNAUTHORIZED", "DEVICE_BANNED", "AI_PROVIDER_ERROR", "AI_PROVIDER_TIMEOUT", "AI_EMPTY_ANSWER", "INVALID_USAGE", "ACCOUNT_CHANGED", "REQUEST_ID_CONFLICT", "HTTP_502", "HTTP_503"].includes(error.code)) throw error; if (error.code === "RATE_LIMITED") { const waitSeconds = Math.max(1, Number((_a = error.payload) == null ? void 0 : _a.retryAfterSeconds) || 30); (_b = this.logger) == null ? void 0 : _b.log(`\u8BF7\u6C42\u592A\u5FEB\uFF0C\u5DF2\u6682\u505C ${waitSeconds} \u79D2`, "warn"); error.retryAfterSeconds = waitSeconds; throw error; } if (["INSUFFICIENT_BALANCE", "NOT_ACTIVATED", "DAILY_LIMIT_REACHED", "DEVICE_BANNED", "UNAUTHORIZED", "ORIGIN_NOT_ALLOWED"].includes(error.code)) throw error; if (attempt < this.maxRetries) { (_c = this.logger) == null ? void 0 : _c.log(`AI \u8BF7\u6C42\u5931\u8D25\uFF0C\u51C6\u5907\u91CD\u8BD5 ${attempt + 1}/${this.maxRetries}: ${error.message}`, "warn"); } } } throw lastError; } async requestAnswer(prompt, meta = {}) { var _a, _b; const accessToken = this.licenseClient.getAccessToken(); const controller = new AbortController(); const timer = setTimeout(() => controller.abort(), this.timeout); try { const payload = await this.licenseClient.request("/api/answer", { method: "POST", signal: controller.signal, headers: { Authorization: `Bearer ${accessToken}` }, body: JSON.stringify({ requestId: ((_a = crypto.randomUUID) == null ? void 0 : _a.call(crypto)) || `${Date.now()}-${Math.random().toString(16).slice(2)}`, model: "deepseek-chat", prompt, questionMeta: meta }) }); const balancePoints = (_b = payload.balancePoints) != null ? _b : payload.balanceTokens; if (typeof balancePoints === "number") await this.licenseClient.setCachedBalance(balancePoints); return { answer: String(payload.answer || "").trim(), usage: payload.usage || { totalTokens: 0 }, balancePoints }; } finally { clearTimeout(timer); } } }; var LOGO_DATA_URL = "data:image/png;base64,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"; var LauncherBird = (() => { var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var extension_ui_exports = {}; __export(extension_ui_exports, { decoratePanel: () => decoratePanel, installUiStyles: () => installUiStyles, mountBirdMotion: () => mountBirdMotion }); var tokens_default = "/* Opt-in only: importing this sheet does not style the host page. */\n.lt-ui {\n --lt-color-page: #f5f6f8;\n --lt-color-panel: #ffffff;\n --lt-color-secondary: #f5f6f8;\n --lt-color-hover: #eef0f3;\n --lt-color-pressed: #e4e7ec;\n --lt-color-selected: #edf0fc;\n --lt-color-border: #e1e4e8;\n --lt-color-control-border: #89929f;\n --lt-color-text: #20242c;\n --lt-color-text-secondary: #59616e;\n --lt-color-text-muted: #68707e;\n --lt-color-brand: #465acb;\n --lt-color-brand-hover: #3d4fb5;\n --lt-color-brand-pressed: #35459b;\n --lt-color-success: #18724b;\n --lt-color-success-bg: #eef7f1;\n --lt-color-warning: #8c5a0b;\n --lt-color-warning-bg: #fff7e6;\n --lt-color-error: #b42318;\n --lt-color-error-bg: #fff1f0;\n --lt-color-disabled-bg: #f0f1f3;\n --lt-color-disabled-text: #9298a2;\n --lt-color-launcher: rgba(255, 255, 255, .96);\n --lt-space-0: 0px;\n --lt-space-2: 2px;\n --lt-space-4: 4px;\n --lt-space-8: 8px;\n --lt-space-12: 12px;\n --lt-space-16: 16px;\n --lt-space-20: 20px;\n --lt-space-24: 24px;\n --lt-space-32: 32px;\n --lt-radius-badge: 4px;\n --lt-radius-selection: 6px;\n --lt-radius-control: 8px;\n --lt-radius-surface: 12px;\n --lt-radius-round: 999px;\n --lt-border-width: 1px;\n --lt-focus-width: 2px;\n --lt-focus-offset: 2px;\n --lt-size-button: 36px;\n --lt-size-button-min: 64px;\n --lt-size-icon-button: 40px;\n --lt-size-touch: 44px;\n --lt-size-icon: 16px;\n --lt-icon-stroke: 2;\n --lt-size-toggle-width: 36px;\n --lt-size-toggle-height: 20px;\n --lt-size-toggle-thumb: 16px;\n --lt-size-launcher: 48px;\n --lt-size-logo: 32px;\n --lt-size-panel: 352px;\n --lt-size-panel-min: 320px;\n --lt-size-panel-max-height: 560px;\n --lt-size-course: 720px;\n --lt-size-course-custom-input: 64px;\n --lt-size-course-segments: 232px;\n --lt-size-course-guard: 140px;\n --lt-size-header: 48px;\n --lt-size-segment-min: 56px;\n --lt-size-status-dot: 6px;\n --lt-font-family: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;\n --lt-font-mono: ui-monospace, Consolas, monospace;\n --lt-font-title: 14px;\n --lt-font-body: 13px;\n --lt-font-caption: 12px;\n --lt-font-section: 16px;\n --lt-font-balance: 20px;\n --lt-line-body: 20px;\n --lt-line-caption: 18px;\n --lt-line-section: 24px;\n --lt-weight-normal: 400;\n --lt-weight-medium: 500;\n --lt-weight-semibold: 600;\n --lt-shadow-1: 0 1px 2px rgba(15, 23, 42, .06);\n --lt-shadow-2: 0 4px 12px rgba(15, 23, 42, .12);\n --lt-shadow-3: 0 8px 24px rgba(15, 23, 42, .16);\n --lt-duration-press: 90ms;\n --lt-duration-hover: 140ms;\n --lt-duration-state: 180ms;\n --lt-duration-open: 200ms;\n --lt-duration-close: 120ms;\n --lt-duration-snap: 180ms;\n --lt-ease-standard: cubic-bezier(.2, 0, 0, 1);\n --lt-ease-out: cubic-bezier(.16, 1, .3, 1);\n --lt-ease-in: cubic-bezier(.4, 0, 1, 1);\n --lt-scale-launcher-pressed: .97;\n --lt-scale-launcher-lift: 1.04;\n font-family: var(--lt-font-family);\n font-size: var(--lt-font-body);\n line-height: var(--lt-line-body);\n font-weight: var(--lt-weight-normal);\n color: var(--lt-color-text);\n}\n"; var components_default = `/* All component selectors require the explicit .lt-ui boundary. */ .lt-ui :where(*, *::before, *::after) { box-sizing: border-box; } .lt-ui :where(button, input, summary) { font: inherit; } .lt-ui [hidden] { display: none !important; } .lt-ui .lt-icon { width: var(--lt-size-icon); height: var(--lt-size-icon); flex: 0 0 var(--lt-size-icon); stroke-width: var(--lt-icon-stroke); vertical-align: middle; } .lt-ui .lt-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--lt-space-8); min-width: var(--lt-size-button-min); min-height: var(--lt-size-button); padding: var(--lt-space-4) var(--lt-space-12); border: var(--lt-border-width) solid transparent; border-radius: var(--lt-radius-control); background: transparent; color: var(--lt-color-text); font-weight: var(--lt-weight-medium); line-height: var(--lt-line-body); text-decoration: none; cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard), border-color var(--lt-duration-hover) var(--lt-ease-standard), color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-button--primary { background: var(--lt-color-brand); color: var(--lt-color-panel); } .lt-ui .lt-button--secondary { background: var(--lt-color-panel); border-color: var(--lt-color-border); } .lt-ui .lt-button--ghost, .lt-ui .lt-button--icon { color: var(--lt-color-text-secondary); } .lt-ui .lt-button--icon { width: var(--lt-size-icon-button); height: var(--lt-size-icon-button); min-width: var(--lt-size-icon-button); padding: var(--lt-space-0); } .lt-ui .lt-button:not(:disabled):not([aria-disabled="true"]):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); color: var(--lt-color-text); } .lt-ui .lt-button--primary:not(:disabled):not([aria-disabled="true"]):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-brand-hover); color: var(--lt-color-panel); } .lt-ui .lt-button:not(:disabled):not([aria-disabled="true"]):is(:active, [data-ui-state="pressed"]) { background: var(--lt-color-pressed); transition-duration: var(--lt-duration-press); } .lt-ui .lt-button--primary:not(:disabled):not([aria-disabled="true"]):is(:active, [data-ui-state="pressed"]) { background: var(--lt-color-brand-pressed); } .lt-ui .lt-button[aria-expanded="true"] { background: var(--lt-color-selected); } .lt-ui :is(.lt-button, .lt-toggle, .lt-segment, .lt-launcher, .lt-input):is(:focus-visible, [data-ui-state="focus"]) { outline: var(--lt-focus-width) solid var(--lt-color-brand); outline-offset: var(--lt-focus-offset); } .lt-ui .lt-button:is(:disabled, [aria-disabled="true"]) { background: var(--lt-color-disabled-bg); color: var(--lt-color-disabled-text); border-color: transparent; cursor: not-allowed; } .lt-ui .lt-button--ghost:is(:disabled, [aria-disabled="true"]), .lt-ui .lt-button--icon:is(:disabled, [aria-disabled="true"]) { background: transparent; } .lt-ui .lt-button[aria-busy="true"] { cursor: progress; } .lt-ui .lt-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--lt-space-16); min-height: var(--lt-size-icon-button); padding: var(--lt-space-8); border: var(--lt-border-width) solid transparent; border-radius: var(--lt-radius-control); background: transparent; color: var(--lt-color-text); cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-toggle:not(:disabled):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); } .lt-ui .lt-toggle-copy { display: flex; flex-direction: column; text-align: left; gap: var(--lt-space-2); } .lt-ui .lt-toggle-label { font-weight: var(--lt-weight-medium); } .lt-ui .lt-toggle-value { font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); color: var(--lt-color-text-muted); padding: var(--lt-space-2) var(--lt-space-8); border-radius: var(--lt-radius-badge); background: var(--lt-color-secondary); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-value { color: var(--lt-color-success); background: var(--lt-color-success-bg); } .lt-ui .lt-toggle-track { display: block; position: relative; width: var(--lt-size-toggle-width); height: var(--lt-size-toggle-height); flex: 0 0 var(--lt-size-toggle-width); border-radius: var(--lt-radius-round); background: var(--lt-color-control-border); transition: background-color var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-toggle-track::after { content: ''; position: absolute; width: var(--lt-size-toggle-thumb); height: var(--lt-size-toggle-thumb); top: var(--lt-space-2); left: var(--lt-space-2); border-radius: var(--lt-radius-round); background: var(--lt-color-panel); transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-track { background: var(--lt-color-brand); } .lt-ui .lt-toggle[aria-checked="true"] .lt-toggle-track::after { transform: translateX(var(--lt-size-toggle-thumb)); } .lt-ui .lt-toggle:not(:disabled):active .lt-toggle-track { background: var(--lt-color-text-secondary); } .lt-ui .lt-toggle[aria-checked="true"]:not(:disabled):active .lt-toggle-track { background: var(--lt-color-brand-pressed); } .lt-ui .lt-toggle:disabled { color: var(--lt-color-disabled-text); cursor: not-allowed; } .lt-ui .lt-toggle:disabled .lt-toggle-track { background: var(--lt-color-disabled-text); } .lt-ui .lt-segmented { --lt-segment-count: 4; --lt-segment-index: 0; position: relative; display: grid; grid-template-columns: repeat(var(--lt-segment-count), minmax(var(--lt-size-segment-min), 1fr)); min-width: 0; width: 100%; padding: var(--lt-space-2); border-radius: var(--lt-radius-control); background: var(--lt-color-secondary); isolation: isolate; } .lt-ui .lt-segment-indicator { position: absolute; z-index: -1; top: var(--lt-space-2); bottom: var(--lt-space-2); left: var(--lt-space-2); width: calc((100% - var(--lt-space-2) * 2) / var(--lt-segment-count)); border-radius: var(--lt-radius-selection); background: var(--lt-color-panel); box-shadow: var(--lt-shadow-1); transform: translateX(calc(var(--lt-segment-index) * 100%)); transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-segment { position: relative; min-width: 0; min-height: calc(var(--lt-size-button) - var(--lt-space-2) * 2); padding: var(--lt-space-4) var(--lt-space-8); border: 0; border-radius: var(--lt-radius-selection); background: transparent; color: var(--lt-color-text-secondary); font-weight: var(--lt-weight-medium); font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-segment[aria-checked="true"] { color: var(--lt-color-text); font-weight: var(--lt-weight-semibold); } .lt-ui .lt-segment[aria-checked="false"]:not(:disabled):hover { background: var(--lt-color-hover); } .lt-ui .lt-segment:not(:disabled):active { background: var(--lt-color-pressed); } .lt-ui .lt-segment:disabled { color: var(--lt-color-disabled-text); cursor: not-allowed; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher) { display: grid; place-items: center; width: var(--lt-size-launcher); height: var(--lt-size-launcher); flex: 0 0 var(--lt-size-launcher); padding: var(--lt-space-0); border: var(--lt-border-width) solid var(--lt-color-border); border-radius: var(--lt-radius-surface); background: var(--lt-color-launcher); box-shadow: var(--lt-shadow-2); cursor: pointer; transition: background-color var(--lt-duration-hover) var(--lt-ease-standard), border-color var(--lt-duration-hover) var(--lt-ease-standard); } .lt-ui .lt-launcher-mark { display: block; width: var(--lt-size-logo); height: var(--lt-size-logo); object-fit: contain; transition: transform var(--lt-duration-press) var(--lt-ease-standard); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:hover, [data-ui-state="hover"]) { background: var(--lt-color-hover); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:active, [data-ui-state="pressed"]) .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-pressed)); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[aria-expanded="true"] { background: var(--lt-color-selected); border-color: var(--lt-color-brand); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-press="true"] .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-pressed)); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-pose="spread"] { box-shadow: var(--lt-shadow-3); } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher)[data-bird-pose="spread"] .lt-launcher-mark { transform: scale(var(--lt-scale-launcher-lift)); } :is(.lt-ui .lt-panel, .lt-ui.lt-panel) { display: flex; flex-direction: column; width: min(var(--lt-size-panel), calc(100vw - var(--lt-space-12) * 2)); min-width: min(var(--lt-size-panel-min), calc(100vw - var(--lt-space-12) * 2)); max-width: 100%; max-height: min(var(--lt-size-panel-max-height), calc(100dvh - var(--lt-space-12) * 2)); overflow: hidden; border: var(--lt-border-width) solid var(--lt-color-border); border-radius: var(--lt-radius-surface); background: var(--lt-color-panel); box-shadow: var(--lt-shadow-3); } .lt-ui .lt-panel-header { display: flex; align-items: center; justify-content: space-between; gap: var(--lt-space-8); min-height: var(--lt-size-header); padding: var(--lt-space-4) var(--lt-space-8) var(--lt-space-0) var(--lt-space-16); flex-shrink: 0; } .lt-ui .lt-panel-title { margin: 0; font-size: var(--lt-font-title); line-height: var(--lt-line-body); font-weight: var(--lt-weight-semibold); } .lt-ui .lt-panel-body { padding: var(--lt-space-8) var(--lt-space-16) var(--lt-space-16); overflow: auto; min-height: 0; } .lt-ui .lt-status { display: flex; align-items: center; gap: var(--lt-space-8); font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); font-weight: var(--lt-weight-medium); } .lt-ui .lt-status-dot { width: var(--lt-size-status-dot); height: var(--lt-size-status-dot); border-radius: var(--lt-radius-round); background: var(--lt-color-control-border); flex-shrink: 0; } .lt-ui .lt-caption { color: var(--lt-color-text-muted); font-size: var(--lt-font-caption); line-height: var(--lt-line-caption); margin: var(--lt-space-4) 0 0; overflow-wrap: anywhere; } .lt-ui .lt-help-copy { color: var(--lt-color-text-secondary); font-size: var(--lt-font-body); line-height: var(--lt-line-body); text-align: left; overflow-wrap: anywhere; } .lt-ui .lt-help-emphasis { color: var(--lt-color-brand); font-weight: var(--lt-weight-medium); } .lt-ui .lt-help-lead { display: block; margin-bottom: var(--lt-space-4); color: var(--lt-color-brand); font-weight: var(--lt-weight-medium); } .lt-ui .lt-help-purchase { color: var(--lt-color-warning); } .lt-ui .lt-help-safe { color: var(--lt-color-success); font-weight: var(--lt-weight-medium); } .lt-ui .lt-context { margin: var(--lt-space-8) 0 var(--lt-space-16); color: var(--lt-color-text-secondary); } :is(.lt-ui .lt-panel, .lt-ui.lt-panel) .lt-toggle { width: 100%; padding-inline: 0; min-height: var(--lt-size-launcher); } .lt-ui .lt-panel-section { padding-top: var(--lt-space-16); margin-top: var(--lt-space-16); border-top: var(--lt-border-width) solid var(--lt-color-border); } .lt-ui .lt-course-entry { justify-content: flex-start; margin-left: calc(var(--lt-space-8) * -1); padding-inline: var(--lt-space-8); } .lt-ui .lt-account-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lt-space-8); } .lt-ui .lt-account-copy { display: flex; align-items: baseline; gap: var(--lt-space-8); } .lt-ui .lt-balance { font-size: var(--lt-font-balance); line-height: var(--lt-line-section); font-weight: var(--lt-weight-semibold); font-variant-numeric: tabular-nums; } .lt-ui .lt-account-actions { display: flex; align-items: center; gap: var(--lt-space-4); } .lt-ui .lt-disclosure > summary { list-style: none; } .lt-ui .lt-disclosure > summary::-webkit-details-marker { display: none; } .lt-ui .lt-disclosure[open] > summary { background: var(--lt-color-selected); } .lt-ui .lt-disclosure[open] > summary .lt-icon { transform: rotate(180deg); } .lt-ui .lt-disclosure > summary .lt-icon { transition: transform var(--lt-duration-state) var(--lt-ease-standard); } .lt-ui .lt-recharge { margin-top: var(--lt-space-8); } .lt-ui .lt-disclosure-content { padding-top: var(--lt-space-12); } .lt-ui .lt-field { display: flex; flex-direction: column; gap: var(--lt-space-8); } .lt-ui .lt-input { width: 100%; height: var(--lt-size-touch); padding: var(--lt-space-8) var(--lt-space-12); border: var(--lt-border-width) solid var(--lt-color-control-border); border-radius: var(--lt-radius-control); background: var(--lt-color-panel); color: var(--lt-color-text); } .lt-ui .lt-form-actions { display: flex; gap: var(--lt-space-8); margin-top: var(--lt-space-12); } .lt-ui .lt-log-summary { justify-content: space-between; width: 100%; padding-inline: 0; } .lt-ui .lt-log-summary-copy { display: flex; flex-direction: column; text-align: left; } .lt-ui .lt-log-entry { display: flex; gap: var(--lt-space-8); align-items: start; padding-block: var(--lt-space-8); } .lt-ui .lt-log-entry .lt-icon { color: var(--lt-color-success); margin-top: var(--lt-space-2); } .lt-ui .lt-log-text { margin: 0; } @media (pointer: coarse) { .lt-ui :is(.lt-button, .lt-toggle) { min-height: var(--lt-size-touch); } .lt-ui .lt-button--icon { width: var(--lt-size-touch); height: var(--lt-size-touch); min-width: var(--lt-size-touch); } .lt-ui .lt-segment { min-height: calc(var(--lt-size-touch) - var(--lt-space-2) * 2); } } @media (prefers-reduced-motion: reduce) { .lt-ui :is(.lt-button, .lt-toggle, .lt-toggle-track, .lt-toggle-track::after, .lt-segment-indicator, .lt-segment, .lt-launcher, .lt-launcher-mark, .lt-disclosure > summary .lt-icon) { transition: none; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is(:active, [data-ui-state="pressed"]) .lt-launcher-mark { transform: none; } :is(.lt-ui .lt-launcher, .lt-ui.lt-launcher):is([data-bird-pose="spread"], [data-bird-press="true"]) .lt-launcher-mark { transform: none; } } `; var runtime_default = `/* Runtime adapters retain the existing hooks; every rule is opt-in and scoped. */ .lt-ui.lt-ux-collapse-toast{position:fixed;z-index:2147483647;width:240px;box-sizing:border-box;margin:0;padding:var(--lt-space-8) var(--lt-space-12);background:var(--lt-color-panel);color:var(--lt-color-text-secondary);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-control);box-shadow:var(--lt-shadow-2);font-size:var(--lt-font-caption);pointer-events:none} .lt-ui.lt-ux-collapse-toast[hidden]{display:none} .lt-ui [hidden]{display:none!important} #cxds-logo.lt-ui{position:fixed;right:var(--lt-space-24);top:74px;z-index:2147483647;touch-action:none;isolation:isolate} #cxds-logo.lt-ui[data-lt-bird]>.lt-bird-mark{width:var(--lt-size-logo);height:var(--lt-size-logo)} #cxds-logo.lt-ui.cxds-active{background:var(--lt-color-selected);border-color:var(--lt-color-brand);z-index:2147483645} #cxds-logo.lt-ui.cxds-dragging{cursor:grabbing;box-shadow:var(--lt-shadow-3)} #cxds-logo.lt-ui:focus-visible{outline:var(--lt-focus-width) solid var(--lt-color-brand);outline-offset:var(--lt-focus-offset)} #cxds-panel.lt-ui{box-sizing:border-box;position:fixed;z-index:2147483646;text-align:left;isolation:isolate;color-scheme:light;transition:opacity var(--lt-duration-open) var(--lt-ease-standard)} #cxds-panel.lt-ui.cxds-hidden{visibility:hidden;opacity:0;pointer-events:none} #cxds-panel.lt-ui .cxds-header{display:flex;align-items:center;justify-content:space-between;gap:var(--lt-space-8);min-height:var(--lt-size-header);padding:var(--lt-space-4) var(--lt-space-8) 0 var(--lt-space-16);flex-shrink:0} #cxds-panel.lt-ui .cxds-title strong{font-size:var(--lt-font-title);line-height:var(--lt-line-body);font-weight:var(--lt-weight-semibold)} #cxds-panel.lt-ui .cxds-title small,#cxds-panel.lt-ui .cxds-status-badge{display:none} #cxds-panel.lt-ui .cxds-body{padding:var(--lt-space-8) var(--lt-space-16) var(--lt-space-16);overflow:auto;min-height:0;scrollbar-width:thin} #cxds-panel.lt-ui .lt-runtime-empty{display:none} #cxds-panel.lt-ui .cxds-status-banner{display:flex;align-items:center;gap:var(--lt-space-8);font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);font-weight:var(--lt-weight-medium);margin:0 0 var(--lt-space-8)} #cxds-panel.lt-ui .cxds-status-dot{width:var(--lt-size-status-dot);height:var(--lt-size-status-dot);background:var(--lt-color-control-border);border-radius:var(--lt-radius-round);flex-shrink:0} #cxds-panel.lt-ui .cxds-status-banner:is(.is-warning,.is-error){color:var(--lt-color-warning)} #cxds-panel.lt-ui .cxds-status-banner.is-error{color:var(--lt-color-error)} #cxds-panel.lt-ui .cxds-status-banner.is-success{color:var(--lt-color-success)} #cxds-panel.lt-ui .cxds-status-banner:is(.is-warning,.is-error,.is-success) .cxds-status-dot{background:currentColor} #cxds-panel.lt-ui .drip-task-context{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:0 0 var(--lt-space-12);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-current{margin:var(--lt-space-8) 0;padding:var(--lt-space-12);border-radius:var(--lt-radius-control);background:var(--lt-color-secondary);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .drip-current-head{display:flex;justify-content:space-between;gap:var(--lt-space-8);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui [data-current-title]{display:block;margin-top:var(--lt-space-4);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui [data-current-description]{margin:var(--lt-space-4) 0 0;color:var(--lt-color-text-secondary);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-ai-toggle{width:100%;padding-inline:0;min-height:var(--lt-size-launcher)} #cxds-panel.lt-ui .drip-ai-copy{display:flex;align-items:center;gap:var(--lt-space-8)} #cxds-panel.lt-ui .drip-ai-copy strong{font-size:var(--lt-font-body);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .drip-ai-copy small{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-muted);background:var(--lt-color-secondary);padding:var(--lt-space-2) var(--lt-space-8);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .drip-ai-toggle[aria-checked="true"] .drip-ai-copy small{color:var(--lt-color-success);background:var(--lt-color-success-bg)} #cxds-panel.lt-ui #drip-ai-help{margin:0;color:var(--lt-color-text-secondary);font-size:var(--lt-font-body);line-height:var(--lt-line-body)} #cxds-panel.lt-ui .cxds-notice{margin:var(--lt-space-8) 0;padding:var(--lt-space-8);background:var(--lt-color-warning-bg);color:var(--lt-color-warning);font-size:var(--lt-font-caption);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .cxds-license-box{margin-top:var(--lt-space-16);padding-top:var(--lt-space-16);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-runtime-account-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8)} #cxds-panel.lt-ui .cxds-license-top{display:flex;align-items:baseline;gap:var(--lt-space-8);flex:1;min-width:0;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-balance-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--lt-space-4)} #cxds-panel.lt-ui [data-balance]{font-size:var(--lt-font-balance);line-height:var(--lt-line-section);color:var(--lt-color-text);font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums} #cxds-panel.lt-ui .drip-license-status{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .drip-warning-icon{display:none} #cxds-panel.lt-ui [data-license-state][data-ux-state="ready"]{color:var(--lt-color-success)} #cxds-panel.lt-ui [data-license-state][data-ux-state="warning"]{color:var(--lt-color-warning)} #cxds-panel.lt-ui [data-balance][data-ux-known="true"]::after{content:' \u79EF\u5206';font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal)} #cxds-panel.lt-ui :is(.lt-ux-course,.lt-ux-next,.lt-ux-feedback,.lt-ux-receipt,.lt-ux-collapse){font-size:var(--lt-font-caption);line-height:var(--lt-line-body);overflow-wrap:anywhere;margin:var(--lt-space-4) 0 var(--lt-space-8);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .lt-ux-next{color:var(--lt-color-text);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .lt-ux-receipt{color:var(--lt-color-brand)} #cxds-panel.lt-ui .lt-ux-collapse{padding-top:var(--lt-space-8);border-top:var(--lt-border-width) solid var(--lt-color-border);margin-bottom:0} #cxds-panel.lt-ui .cxds-license-state.is-warning{color:var(--lt-color-warning)} #cxds-panel.lt-ui .drip-credit-help{margin:var(--lt-space-12) 0 0;font-size:var(--lt-font-body);line-height:var(--lt-line-body);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-recharge{margin-top:var(--lt-space-4)} #cxds-panel.lt-ui .drip-recharge-content{padding-top:var(--lt-space-12)} #cxds-panel.lt-ui .cxds-field{display:flex;flex-direction:column;gap:var(--lt-space-8);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .cxds-license-actions{display:flex;gap:var(--lt-space-8);margin-top:var(--lt-space-12)} #cxds-panel.lt-ui .lt-record-details{margin-top:var(--lt-space-16);padding-top:var(--lt-space-12);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-record-summary-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--lt-space-4);min-width:0} #cxds-panel.lt-ui .lt-record-preview{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px} #cxds-panel.lt-ui .cxds-log-head{display:flex;align-items:center;gap:var(--lt-space-4);margin-top:var(--lt-space-8)} #cxds-panel.lt-ui .cxds-log-head>span{margin-right:auto;color:var(--lt-color-text-muted);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui .drip-submission,#cxds-panel.lt-ui .drip-log-history{font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-submission[data-confirmed="true"]{color:var(--lt-color-success)} #cxds-panel.lt-ui .drip-timeline{max-height:240px;overflow:auto;font-size:var(--lt-font-caption);line-height:var(--lt-line-caption)} #cxds-panel.lt-ui .drip-timeline:empty::after{content:attr(data-empty-copy);display:block;padding:var(--lt-space-8);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .drip-timeline-entry{position:relative;padding:var(--lt-space-12) 0 var(--lt-space-12) var(--lt-space-16);border-top:var(--lt-border-width) solid var(--lt-color-border)} #cxds-panel.lt-ui .drip-timeline-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--lt-space-8)} #cxds-panel.lt-ui .drip-timeline-heading strong{font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .drip-log-state,#cxds-panel.lt-ui .drip-timeline-entry time{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);white-space:nowrap} #cxds-panel.lt-ui .drip-timeline-entry p{margin:var(--lt-space-4) 0;color:var(--lt-color-text-secondary);overflow-wrap:anywhere} #cxds-panel.lt-ui .drip-timeline-node{position:absolute;left:0;top:var(--lt-space-16);width:var(--lt-size-status-dot);height:var(--lt-size-status-dot);background:var(--lt-color-control-border);border-radius:var(--lt-radius-round)} #cxds-panel.lt-ui [data-state="done"] .drip-timeline-node{background:var(--lt-color-success)} #cxds-panel.lt-ui [data-state="paused"] .drip-timeline-node{background:var(--lt-color-warning)} #cxds-panel.lt-ui [data-state="running"] .drip-timeline-node{background:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-progress-segments{display:flex;gap:var(--lt-space-4);height:var(--lt-space-4);margin:var(--lt-space-12) 0} #cxds-panel.lt-ui .drip-progress-segments>span{flex:1;background:var(--lt-color-border);border-radius:var(--lt-radius-badge)} #cxds-panel.lt-ui .drip-progress-segments>span[data-state="done"]{background:var(--lt-color-success)} #cxds-panel.lt-ui .drip-progress-segments>span[data-state="running"]{background:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-progress-caption{display:flex;justify-content:space-between;font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #cxds-panel.lt-ui .lt-button[aria-busy="true"]{background:var(--lt-color-secondary);color:var(--lt-color-text-secondary);min-width:var(--lt-size-button);opacity:1} #cxds-panel.lt-ui:has(.drip-recharge[open]) [data-action="home-entry"]{background:var(--lt-color-panel);color:var(--lt-color-text);border-color:var(--lt-color-border)} .lt-course-document.lt-ui{margin:0;background:var(--lt-color-page);padding-bottom:var(--lt-space-32);color-scheme:light} #lt-course-ui.lt-ui{width:min(var(--lt-size-course),calc(100vw - var(--lt-space-16)*2));max-width:var(--lt-size-course);padding:var(--lt-space-20) var(--lt-space-24);margin:var(--lt-space-20) auto;background:var(--lt-color-panel);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-surface);box-shadow:var(--lt-shadow-1);font-family:var(--lt-font-family);color:var(--lt-color-text)} #lt-course-ui.lt-ui .lt-course-header{gap:var(--lt-space-12);flex-wrap:wrap} #lt-course-ui.lt-ui .lt-course-header>div:first-child{font-size:var(--lt-font-section);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .lt-course-header>div:first-child span{font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #courseProgressSource{color:var(--lt-color-text-secondary);font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui #courseProgressSource>span{background:var(--lt-color-success);border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui #onlineNum{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui .custom-card{background:transparent!important;color:var(--lt-color-text)!important;border:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:var(--lt-border-width) solid var(--lt-color-border)!important;margin-bottom:var(--lt-space-8)!important;overflow:visible} #lt-course-ui.lt-ui .custom-card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8);background:transparent;border:0;padding:var(--lt-space-12) 0;color:var(--lt-color-text);font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .custom-card-header>span:last-child{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);font-weight:var(--lt-weight-normal)} #lt-course-ui.lt-ui .custom-card-body{padding:var(--lt-space-12) 0} #lt-course-ui.lt-ui .custom-card-header>span:first-child>span{display:none!important} #lt-course-ui.lt-ui #courseOverviewCard{background:var(--lt-color-secondary)!important;border-radius:var(--lt-radius-control)!important;border:0!important} #lt-course-ui.lt-ui .lt-course-overview-body{padding:var(--lt-space-16)!important} #lt-course-ui.lt-ui .lt-course-overview-body>div:last-child{border:0;padding-top:0!important;font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-estimate .lt-button{min-width:0;min-height:0;padding:var(--lt-space-2) var(--lt-space-4);font-size:var(--lt-font-caption);color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #courseOverviewCard span,#lt-course-ui.lt-ui #courseOverviewCard b,#lt-course-ui.lt-ui #courseOverviewCard details{color:var(--lt-color-text-secondary)!important;font-family:var(--lt-font-family)!important} #lt-course-ui.lt-ui #overviewPercent{font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums;color:var(--lt-color-text)!important} #lt-course-ui.lt-ui #overviewProgressFill{background:var(--lt-color-brand)!important;transition:width var(--lt-duration-state) var(--lt-ease-standard)!important} #lt-course-ui.lt-ui .lt-course-progress-track{background:var(--lt-color-border)!important;border:0!important;height:var(--lt-space-4)!important;padding:0!important;border-radius:var(--lt-radius-round);overflow:hidden} #lt-course-ui.lt-ui #overviewProgressFill{border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui .lt-course-control-row{gap:var(--lt-space-12)!important;align-items:center!important} #lt-course-ui.lt-ui .lt-course-speed{display:flex!important;align-items:center;flex-wrap:wrap;gap:var(--lt-space-8)!important} #lt-course-ui.lt-ui .lt-course-speed>span{order:1;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui .lt-course-speed .lt-segmented{order:2;width:var(--lt-size-course-segments);margin:0!important} #lt-course-ui.lt-ui .lt-course-custom-speed{order:3;display:flex;gap:var(--lt-space-8);align-items:center} #lt-course-ui.lt-ui .lt-course-custom-label{font-size:var(--lt-font-caption);color:var(--lt-color-text-muted);margin-left:var(--lt-space-4)} #lt-course-ui.lt-ui .speed-pill{border:0;background:transparent;color:var(--lt-color-text-secondary);height:32px;min-width:0;border-radius:var(--lt-radius-selection);padding:var(--lt-space-4) var(--lt-space-8);font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .speed-pill.active{background:transparent;border:0;color:var(--lt-color-text);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .speed-pill:not(.active):hover{background:var(--lt-color-hover)} #lt-course-ui.lt-ui .speed-pill:active{background:var(--lt-color-pressed)} #lt-course-ui.lt-ui .speed-input{width:var(--lt-size-course-custom-input);height:var(--lt-size-button);border:var(--lt-border-width) solid var(--lt-color-border);border-radius:var(--lt-radius-control);background:var(--lt-color-panel);color:var(--lt-color-text);font-size:var(--lt-font-body);font-variant-numeric:tabular-nums} #lt-course-ui.lt-ui .speed-input{text-align:center;padding:var(--lt-space-4) var(--lt-space-8)} #lt-course-ui.lt-ui .speed-input:focus-visible{outline:var(--lt-focus-width) solid var(--lt-color-brand);outline-offset:var(--lt-focus-offset)} #lt-course-ui.lt-ui .lt-course-guard{width:var(--lt-size-course-guard);margin:0} #lt-course-ui.lt-ui #backGround{background:transparent!important;border:0!important;color:var(--lt-color-text)!important;padding:0!important;font-weight:var(--lt-weight-normal);justify-content:space-between;box-shadow:none!important;width:100%;height:var(--lt-size-launcher);border-radius:var(--lt-radius-control)} #lt-course-ui.lt-ui #backGround:not(:disabled):hover{background:var(--lt-color-hover)!important} #lt-course-ui.lt-ui #backGround:not(:disabled):active{background:var(--lt-color-pressed)!important} #lt-course-ui.lt-ui #backGround .pulse-dot{display:none} #lt-course-ui.lt-ui #backGround small{display:none} #lt-course-ui.lt-ui .lt-course-records>summary{display:flex;align-items:center;justify-content:space-between;min-height:var(--lt-size-touch);list-style:none;cursor:pointer} #lt-course-ui.lt-ui .lt-course-records>summary::-webkit-details-marker{display:none} #lt-course-ui.lt-ui .lt-course-log-card div{background:transparent!important;box-shadow:none!important;border-color:var(--lt-color-border)!important} #lt-course-ui.lt-ui #log{color:var(--lt-color-text-secondary)!important;line-height:var(--lt-line-caption)!important;font-size:var(--lt-font-caption)!important;font-family:var(--lt-font-mono)!important} #lt-course-ui.lt-ui #log span{color:var(--lt-color-text-secondary)!important} #lt-course-ui.lt-ui #log span[style*="red"]{color:var(--lt-color-error)!important} #lt-course-ui.lt-ui #log span[style*="green"]{color:var(--lt-color-success)!important} #lt-course-ui.lt-ui #log span[style*="orange"]{color:var(--lt-color-warning)!important} #lt-course-ui.lt-ui #log span a{color:var(--lt-color-brand)!important} #lt-course-ui.lt-ui #clearLogBtn{font-family:var(--lt-font-family)!important;color:var(--lt-color-text-secondary)!important} #lt-course-ui.lt-ui #joblist:not(:has(*))::after{content:'\u672C\u8282\u6682\u65E0\u53EF\u663E\u793A\u4EFB\u52A1';color:var(--lt-color-text-muted);font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-log-card{margin:0!important;border-bottom:0!important} #lt-course-ui.lt-ui .lt-course-records>summary{padding-inline:0} #lt-course-ui.lt-ui #joblist>div{border:0!important;box-shadow:none!important;background:transparent!important;border-bottom:var(--lt-border-width) solid var(--lt-color-border)!important} @media(max-width:540px){#lt-course-ui.lt-ui{padding:var(--lt-space-16);margin-block:var(--lt-space-12)}#lt-course-ui.lt-ui .lt-course-control-row{display:flex;flex-direction:column;align-items:stretch!important}#lt-course-ui.lt-ui .lt-course-speed{display:grid!important;grid-template-columns:1fr;width:100%}#lt-course-ui.lt-ui .lt-course-speed .lt-segmented{width:100%}#lt-course-ui.lt-ui .lt-course-custom-label{margin:0}#lt-course-ui.lt-ui .lt-course-guard{width:100%}} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui #overviewProgressFill,#cxds-panel.lt-ui{transition:none!important}} `; var golden_wing_default = `/* Approved Golden Wing Light. Shared by the owned course iframe and panel. Opt-in selectors never theme the LearningTong host page. */ .lt-ui[data-theme="golden-wing"] { --lt-color-page:#f5f2eb; --lt-color-panel:#fffdf7; --lt-color-secondary:#f0ece2; --lt-color-hover:#eae4d6; --lt-color-pressed:#e0d8c6; --lt-color-selected:#f8f0d5; --lt-color-border:#ddd8ca; --lt-color-control-border:#9a937f; --lt-color-text:#24231f; --lt-color-text-secondary:#5e5a4f; --lt-color-text-muted:#7a745f; --lt-color-brand:#8b6615; --lt-color-brand-hover:#755311; --lt-color-brand-pressed:#61440d; --lt-color-brand-bright:#e8c23a; --lt-color-on-brand:#fffdf7; --lt-color-success:#1b7a4c; --lt-color-success-bg:#ecf6ef; --lt-color-warning:#96520f; --lt-color-warning-bg:#fff3e5; --lt-color-error:#b5331e; --lt-color-error-bg:#fff0ed; --lt-color-disabled-bg:#eceae3; --lt-color-disabled-text:#928d7e; --lt-color-launcher:#fffdf7; --lt-shadow-1:0 1px 2px rgb(36 35 31 / 5%); --lt-shadow-2:0 4px 12px rgb(36 35 31 / 9%); --lt-shadow-3:0 12px 32px rgb(36 35 31 / 12%); --lt-size-panel:340px; --lt-size-panel-min:280px; --lt-size-panel-max-height:760px; color-scheme:light; } .lt-ui[data-theme="golden-wing"] .lt-button--primary:not(:disabled) {color:var(--lt-color-on-brand)} .lt-ui[data-theme="golden-wing"] .lt-button--secondary {border-color:var(--lt-color-control-border)} .lt-ui[data-theme="golden-wing"] .lt-segment-indicator {background:var(--lt-color-selected);box-shadow:none} .lt-ui[data-theme="golden-wing"] .lt-segment[aria-checked="true"] {color:var(--lt-color-brand)} #cxds-logo.lt-ui[data-theme="golden-wing"] {top:auto;bottom:var(--lt-space-24);border-color:var(--lt-color-brand)} #cxds-panel.lt-ui[data-theme="golden-wing"] {color:var(--lt-color-text);max-height:min(760px,calc(100dvh - 104px))} #cxds-panel.lt-ui[data-theme="golden-wing"] .cxds-header {min-height:52px;padding:6px 6px 6px 14px;border-bottom:1px solid var(--lt-color-border)} #cxds-panel.lt-ui .lt-brand-lockup {display:flex;align-items:center;gap:7px} #cxds-panel.lt-ui .lt-brand-lockup img {width:24px;height:24px;object-fit:contain} #cxds-panel.lt-ui .cxds-body {padding:14px 16px 16px} #cxds-panel.lt-ui .lt-ux-headline {display:flex;align-items:center;gap:7px;font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold);margin:0 0 6px;line-height:var(--lt-line-body)} #cxds-panel.lt-ui .lt-ux-headline::before {content:'';width:6px;height:6px;border-radius:50%;background:var(--lt-color-text-muted);flex-shrink:0} #cxds-panel.lt-ui .lt-ux-headline[data-state="running"]::before {background:var(--lt-color-brand-bright)} #cxds-panel.lt-ui .lt-ux-headline[data-state="done"]::before {background:var(--lt-color-success)} #cxds-panel.lt-ui .lt-ux-headline[data-state="error"] {color:var(--lt-color-error)} #cxds-panel.lt-ui .lt-ux-headline[data-state="warning"] {color:var(--lt-color-warning)} #cxds-panel.lt-ui .lt-ux-headline:is([data-state="error"],[data-state="warning"])::before {background:currentColor} #cxds-panel.lt-ui .lt-ux-next {font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);color:var(--lt-color-text-secondary);margin:6px 0 12px;padding-left:13px} #cxds-panel.lt-ui .lt-ux-course {display:none} #cxds-panel.lt-ui .lt-runtime-ai-row {display:flex;align-items:center;gap:10px;padding:8px 0} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-ai-toggle {width:auto;min-width:0;min-height:36px;flex:1;gap:10px} #cxds-panel.lt-ui .drip-ai-toggle[aria-checked="true"] .drip-ai-copy small {color:var(--lt-color-brand);background:var(--lt-color-selected)} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-current {margin:0;padding:0;background:transparent;font-size:var(--lt-font-caption);flex-shrink:0} #cxds-panel.lt-ui .lt-runtime-ai-row .drip-current-head>span:first-child, #cxds-panel.lt-ui .lt-runtime-ai-row [data-current-title], #cxds-panel.lt-ui .lt-runtime-ai-row [data-current-description], #cxds-panel.lt-ui .lt-runtime-ai-row [data-action="show-recharge"] {display:none} #cxds-panel.lt-ui .drip-current[data-state="running"] [data-current-state] {color:var(--lt-color-brand)} #cxds-panel.lt-ui .drip-current[data-state="paused"] [data-current-state] {color:var(--lt-color-warning)} #cxds-panel.lt-ui .drip-current [data-current-state] {color:var(--lt-color-text-secondary)} #cxds-panel.lt-ui .drip-current[data-confirmed="true"] [data-current-state] {color:var(--lt-color-success)} #cxds-panel.lt-ui #drip-ai-help,#cxds-panel.lt-ui .lt-ux-ai-switch-note {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:0 0 6px} #cxds-panel.lt-ui #drip-ai-help strong {font-weight:var(--lt-weight-medium);color:var(--lt-color-text)} #cxds-panel.lt-ui .lt-runtime-account-row {justify-content:space-between} #cxds-panel.lt-ui .cxds-license-top {flex-direction:column;align-items:flex-start;gap:4px} #cxds-panel.lt-ui .lt-runtime-balance-row {display:flex;align-items:baseline;gap:6px} #cxds-panel.lt-ui .drip-balance-line {flex-direction:column;align-items:flex-start;gap:4px} #cxds-panel.lt-ui .cxds-license-top>span {display:none} #cxds-panel.lt-ui .lt-runtime-credit-label {color:var(--lt-color-text-secondary);font-size:var(--lt-font-caption)} #cxds-panel.lt-ui [data-balance] {font-size:22px;line-height:26px} #cxds-panel.lt-ui .lt-ux-receipt {background:var(--lt-color-secondary);color:var(--lt-color-text-secondary);padding:8px 10px;border-radius:var(--lt-radius-selection);margin:8px 0} #cxds-panel.lt-ui .lt-billing-details>summary,#cxds-panel.lt-ui .drip-recharge>summary {min-height:28px;padding:0;justify-content:flex-start;font-size:var(--lt-font-caption);gap:4px} #cxds-panel.lt-ui .lt-billing-details .lt-icon,#cxds-panel.lt-ui .drip-recharge>summary .lt-icon {width:12px;height:12px} #cxds-panel.lt-ui .lt-billing-content,#cxds-panel.lt-ui .drip-recharge-content {padding-top:8px} #cxds-panel.lt-ui .lt-billing-content .lt-help-copy {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);margin:0 0 6px} #cxds-panel.lt-ui .lt-billing-content .lt-help-lead {color:var(--lt-color-text);font-weight:var(--lt-weight-medium)} #cxds-panel.lt-ui .lt-payment-essential {font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);color:var(--lt-color-text-secondary);margin:4px 0 0} #cxds-panel.lt-ui .lt-ux-collapse {margin:0;padding:8px 14px;border-top:1px solid var(--lt-color-border);font-size:var(--lt-font-caption);line-height:var(--lt-line-caption);flex-shrink:0} #cxds-panel.lt-ui .lt-record-details {margin-top:10px;padding-top:10px} #cxds-panel.lt-ui .lt-record-details>summary {min-height:28px;padding:0;font-size:var(--lt-font-caption);justify-content:flex-start;gap:4px} #lt-course-ui.lt-ui {padding:0;overflow:hidden;width:min(820px,calc(100vw - 24px));max-width:820px;margin:20px auto} #lt-course-ui.lt-ui .lt-course-header {padding:12px 16px;border-bottom:1px solid var(--lt-color-border);margin-bottom:0!important} #lt-course-ui.lt-ui .lt-course-brand {display:flex;align-items:center;gap:8px;font-size:14px} #lt-course-ui.lt-ui .lt-course-brand img {width:28px;height:28px;object-fit:contain} #lt-course-ui.lt-ui .lt-course-brand small {font-size:var(--lt-font-caption);font-weight:var(--lt-weight-normal);border-left:1px solid var(--lt-color-border);padding-left:8px;color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui #courseProgressSource {border:0;background:transparent;padding:0;color:var(--lt-color-text-muted)} #lt-course-ui.lt-ui #lt-course-ux {margin:0;border:0;border-radius:0;padding:16px;background:transparent} #lt-course-ui.lt-ui #lt-course-ux strong {font-size:15px;line-height:24px} #lt-course-ui.lt-ui #lt-course-ux p {font-size:var(--lt-font-caption);margin-top:8px;padding-left:10px;border-left:2px solid var(--lt-color-brand-bright)} #lt-course-ui.lt-ui .custom-card {margin:0!important;border-bottom:1px solid var(--lt-color-border)!important;padding:0 16px} #lt-course-ui.lt-ui .custom-card:last-child {border-bottom:0!important} #lt-course-ui.lt-ui .custom-card-header {padding:14px 0 8px} #lt-course-ui.lt-ui .custom-card-body {padding:8px 0 14px} #lt-course-ui.lt-ui #courseOverviewCard {background:transparent!important;border-radius:0!important} #lt-course-ui.lt-ui .lt-course-overview-body {padding:0 0 12px!important} #lt-course-ui.lt-ui #overviewScope {font-size:var(--lt-font-caption)} #lt-course-ui.lt-ui .lt-course-overview-body>div:last-child {margin-top:8px!important} #lt-course-ui.lt-ui .lt-course-progress-track {background:var(--lt-color-secondary)!important} #lt-course-ui.lt-ui .lt-course-progress-lane {position:relative;--lt-course-progress:0%} #lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:30px} #lt-course-ui.lt-ui .lt-course-progress-bird {position:absolute;z-index:1;top:0;left:clamp(19px,var(--lt-course-progress),calc(100% - 19px));display:block;width:38px;height:27px;overflow:hidden;pointer-events:none;transform:translateX(-50%);transition:left var(--lt-duration-state) var(--lt-ease-standard)} #lt-course-ui.lt-ui .lt-course-progress-bird[hidden] {display:none} #lt-course-ui.lt-ui .lt-course-progress-bird img {display:block;width:38px;height:38px;max-width:none;filter:drop-shadow(0 1px 1px rgb(36 35 31 / 18%))} #lt-course-ui.lt-ui #overviewProgressFill {background:var(--lt-color-brand-bright)!important} #lt-course-ui.lt-ui[data-course-state="done"] #overviewProgressFill {background:var(--lt-color-success)!important} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui .lt-course-progress-bird{transition:none!important}} #lt-course-ui.lt-ui .speed-pill.active {color:var(--lt-color-brand)} #lt-course-ui.lt-ui .speed-input {border-color:var(--lt-color-control-border)} #lt-course-ui.lt-ui .lt-speed-legacy[hidden] {display:none!important} #lt-course-ui.lt-ui .lt-course-speed {flex:1;min-width:0;width:auto} #lt-course-ui.lt-ui .lt-speed-control {width:100%;max-width:340px;min-width:180px} #lt-course-ui.lt-ui .lt-speed-heading {display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .lt-speed-value {font-size:16px;font-weight:var(--lt-weight-semibold);font-variant-numeric:tabular-nums;color:var(--lt-color-text)} #lt-course-ui.lt-ui .lt-speed-track {position:relative;height:36px;border-radius:var(--lt-radius-round);background:var(--lt-color-secondary);border:1px solid var(--lt-color-border);overflow:visible;--lt-speed-fill:0%;--lt-speed-offset:13px;transition:border-color 180ms ease,box-shadow 180ms ease} #lt-course-ui.lt-ui .lt-speed-progress {position:absolute;z-index:0;inset:0 auto 0 0;width:calc(var(--lt-speed-fill) + var(--lt-speed-offset));max-width:100%;border-radius:var(--lt-radius-round);background:var(--lt-color-brand);overflow:hidden;pointer-events:none;transition:width 110ms cubic-bezier(.2,.8,.2,1)} #lt-course-ui.lt-ui .lt-speed-ticks {position:absolute;z-index:1;inset:0 14px;display:flex;align-items:center;justify-content:space-between;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-ticks i {width:4px;height:4px;background:var(--lt-color-control-border);border-radius:50%} #lt-course-ui.lt-ui .lt-speed-ticks i.is-filled {background:var(--lt-color-on-brand);opacity:.55} #lt-course-ui.lt-ui .lt-speed-knob {position:absolute;z-index:2;left:calc(var(--lt-speed-fill) + var(--lt-speed-offset));top:50%;width:26px;height:26px;background:var(--lt-color-panel);border:1px solid var(--lt-color-border);border-radius:50%;box-shadow:var(--lt-shadow-2);transform:translate(-50%,-50%) scale(1);pointer-events:none;transition:left 110ms cubic-bezier(.2,.8,.2,1),transform 160ms cubic-bezier(.2,.8,.2,1),box-shadow 160ms ease} #lt-course-ui.lt-ui .lt-speed-track.is-dragging .lt-speed-knob {transform:translate(-50%,-50%) scale(1.17);box-shadow:var(--lt-shadow-3)} #lt-course-ui.lt-ui .lt-speed-track.is-settling .lt-speed-knob {animation:lt-speed-settle 280ms cubic-bezier(.2,.8,.2,1)} @keyframes lt-speed-settle {0%{transform:translate(-50%,-50%) scale(1.13)}45%{transform:translate(-50%,-50%) scale(.94)}100%{transform:translate(-50%,-50%) scale(1)}} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-value {color:var(--lt-color-brand)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-track {border-color:var(--lt-color-brand);box-shadow:0 0 0 2px var(--lt-color-selected)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-progress {background:linear-gradient(105deg,var(--lt-color-brand-pressed),var(--lt-color-brand) 42%,var(--lt-color-brand-bright) 78%,var(--lt-color-brand))} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-progress::before {content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 68%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 29% 30%,var(--lt-color-on-brand) 0 1.5px,transparent 2.2px),radial-gradient(circle at 48% 73%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 69% 35%,var(--lt-color-on-brand) 0 1px,transparent 1.8px),radial-gradient(circle at 86% 66%,var(--lt-color-on-brand) 0 1.5px,transparent 2.2px);opacity:.75;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-knob {border-color:var(--lt-color-brand);box-shadow:var(--lt-shadow-2),0 0 0 3px var(--lt-color-selected)} #lt-course-ui.lt-ui .lt-speed-control.is-max .lt-speed-track.is-settling .lt-speed-progress::after {content:'';position:absolute;inset:0 auto 0 -28%;width:28%;background:linear-gradient(90deg,transparent,rgb(255 253 247 / 70%),transparent);animation:lt-speed-max-sheen 420ms ease-out both;pointer-events:none} @keyframes lt-speed-max-sheen {0%{transform:translateX(0);opacity:0}20%{opacity:.7}80%{opacity:.7}100%{transform:translateX(500%);opacity:0}} #lt-course-ui.lt-ui .lt-speed-track input {appearance:none;-webkit-appearance:none;position:relative;z-index:3;display:block;margin:0;width:100%;height:36px;background:transparent;border:0;cursor:pointer;touch-action:pan-y;border-radius:var(--lt-radius-round);padding:0} #lt-course-ui.lt-ui .lt-speed-track input::-webkit-slider-runnable-track {height:36px;background:transparent;border:0;border-radius:var(--lt-radius-round)} #lt-course-ui.lt-ui .lt-speed-track input::-webkit-slider-thumb {appearance:none;-webkit-appearance:none;width:26px;height:26px;margin-top:5px;background:transparent;border:0;border-radius:50%} #lt-course-ui.lt-ui .lt-speed-track input::-moz-range-track {height:36px;background:transparent;border:0} #lt-course-ui.lt-ui .lt-speed-track input::-moz-range-thumb {width:24px;height:24px;background:transparent;border:0;border-radius:50%} #lt-course-ui.lt-ui .lt-speed-track input:focus-visible {outline:2px solid var(--lt-color-brand);outline-offset:3px} #lt-course-ui.lt-ui .lt-speed-footer {display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:5px;font-size:var(--lt-font-caption);color:var(--lt-color-text-secondary)} #lt-course-ui.lt-ui #lt-speed-hint {text-align:center;font-size:11px} #lt-course-ui.lt-ui .lt-speed-warn {margin:8px 0 0;padding:6px 10px;border:1px solid var(--lt-color-warning);border-radius:var(--lt-radius-control);background:var(--lt-color-warning-bg);color:var(--lt-color-warning);font-size:var(--lt-font-caption);line-height:1.5;animation:lt-speed-warn-in 180ms ease-out} #lt-course-ui.lt-ui .lt-speed-warn[hidden] {display:none} @keyframes lt-speed-warn-in {from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}} @media(prefers-reduced-motion:reduce){#lt-course-ui.lt-ui .lt-speed-track,#lt-course-ui.lt-ui .lt-speed-progress,#lt-course-ui.lt-ui .lt-speed-knob,#lt-course-ui.lt-ui .lt-speed-progress::after{transition:none!important;animation:none!important}} #lt-course-ui.lt-ui #updateRateButton {color:var(--lt-color-text)!important;background:var(--lt-color-panel)!important} #lt-course-ui.lt-ui .lt-course-guard {width:auto;min-width:172px} #lt-course-ui.lt-ui #backGround {gap:12px;min-height:36px;height:auto;font-size:var(--lt-font-body)} #lt-course-ui.lt-ui .lt-course-records>summary {min-height:36px;font-size:var(--lt-font-title);font-weight:var(--lt-weight-semibold)} #lt-course-ui.lt-ui .lt-course-records[open]>summary {background:transparent} #lt-course-ui.lt-ui #joblist:not(:has(*))::after {content:none} #lt-course-ui.lt-ui .lt-course-log-card {padding-top:4px} #lt-course-ui.lt-ui .lt-course-log-card #result {max-height:160px!important} #lt-course-ui.lt-ui .lt-course-log-card [data-log-header] {padding:0!important;border:0!important} #lt-course-ui.lt-ui .lt-course-log-card [data-log-body] {padding:4px 0 12px!important} #lt-course-ui.lt-ui #clearLogBtn {font:inherit;color:var(--lt-color-text-secondary)!important;padding:4px 8px!important} @media(max-width:480px){ #cxds-panel.lt-ui[data-theme="golden-wing"]{width:min(340px,calc(100vw - 48px));min-width:0} #cxds-panel.lt-ui .cxds-body{padding-inline:12px} #cxds-panel.lt-ui .lt-runtime-ai-row{gap:6px} #cxds-panel.lt-ui .drip-ai-copy{gap:4px} #lt-course-ui.lt-ui{width:calc(100vw - 16px);margin:8px auto} #lt-course-ui.lt-ui .lt-course-header{padding-inline:12px} #lt-course-ui.lt-ui .custom-card{padding-inline:12px} } `; var golden_wing_v3_default = '/* Production Golden Wing v3: scoped to owned UI, retaining all original hooks. */\n#cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] {border-radius:14px}\n#cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body {display:flex;flex-direction:column;gap:12px;padding:12px 14px}\n#cxds-panel.lt-ui .lt-v3-ai-card,#cxds-panel.lt-ui .cxds-license-box {\n padding:10px 12px;background:#fbf9f3;border:1px solid #e6dfce;border-radius:10px;margin:0;\n}\n#cxds-panel.lt-ui .lt-runtime-ai-row {padding:0;gap:6px}\n#cxds-panel.lt-ui .drip-ai-copy {flex-wrap:wrap;gap:4px}\n#cxds-panel.lt-ui .drip-ai-copy small {font-size:10px}\n#cxds-panel.lt-ui #drip-ai-help {font-size:11px;line-height:1.6;margin:4px 0 8px}\n#cxds-panel.lt-ui .lt-ux-headline {font-size:12px;line-height:1.6;margin:8px 0 0}\n#cxds-panel.lt-ui .lt-ux-next {font-size:12px;line-height:1.65;margin:6px 0 0;padding:8px 10px;border:1px solid #e2dbca;background:#fffdf7;border-radius:6px;overflow-wrap:anywhere}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current [data-current-state] {font-size:11px;padding:2px 6px;border-radius:999px;background:#ede8dc;max-width:100%}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-state="running"] [data-current-state] {background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-state="paused"] [data-current-state] {background:#fff0ed;color:#b5331e}\n#cxds-panel.lt-ui .lt-runtime-ai-row .drip-current[data-confirmed="true"] [data-current-state] {background:#ecf6ef;color:#1b7a4c}\n#cxds-panel.lt-ui .lt-runtime-account-row {gap:6px;flex-wrap:wrap}\n#cxds-panel.lt-ui .lt-runtime-credit-label {font-size:11px}\n#cxds-panel.lt-ui [data-balance] {font-size:24px;color:#8b6615}\n#cxds-panel.lt-ui .lt-runtime-balance-row {gap:4px;flex-wrap:wrap}\n#cxds-panel.lt-ui .drip-license-status {font-size:11px}\n#cxds-panel.lt-ui [data-license-state][data-ux-state="ready"] {display:none}\n#cxds-panel.lt-ui .lt-v3-recharge {font-size:11px;min-height:32px;padding:4px 8px;white-space:nowrap}\n#cxds-panel.lt-ui [data-action="show-recharge"] {display:none}\n#cxds-panel.lt-ui .drip-recharge {border:0;margin-top:8px}\n#cxds-panel.lt-ui .drip-recharge:not([open]) {display:none}\n#cxds-panel.lt-ui .drip-recharge>summary {display:none}\n#cxds-panel.lt-ui .drip-recharge[open] .drip-recharge-content {padding-top:8px;border-top:1px dashed #ded7c6}\n#cxds-panel.lt-ui .lt-payment-essential {font-size:11px;margin-top:8px}\n#cxds-panel.lt-ui .lt-ux-receipt {display:flex;align-items:center;flex-wrap:wrap;gap:6px;justify-content:space-between;background:#fff5e8;border:1px solid #e8c23a;color:#8b6615;padding:8px;margin:10px 0 0}\n#cxds-panel.lt-ui .lt-ux-receipt strong {font-size:11px;font-weight:600}\n#cxds-panel.lt-ui .lt-v3-receipt-balance {background:#8b6615;color:#fffdf7;border-radius:4px;padding:1px 6px;font-size:10px;white-space:nowrap}\n#cxds-panel.lt-ui .lt-ux-receipt small {font-size:10px;line-height:1.5;width:100%;color:#7a745f}\n#cxds-panel.lt-ui .lt-billing-details {padding:8px 10px;background:#f7f4ec;border:1px solid #ded7c6;border-radius:8px}\n#cxds-panel.lt-ui .lt-record-details {padding-top:10px;margin-top:0;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui .lt-record-preview {font-size:11px;overflow-wrap:anywhere}\n#cxds-panel.lt-ui .lt-v3-footer {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#f5f0e3;font-size:11px}\n#cxds-panel.lt-ui .lt-v3-footer [data-action="courses"] {margin:0;width:auto;min-height:28px;flex-shrink:0;padding:3px 6px;font-size:11px;border:1px solid #d4ccb8;border-radius:6px}\n#cxds-panel.lt-ui .lt-v3-guide {padding:10px 12px;background:#fff8e8;border:1px solid #dcc88f;border-radius:10px;font-size:12px}\n#cxds-panel.lt-ui .lt-v3-guide strong {font-size:12px;color:#8b6615}\n#cxds-panel.lt-ui .lt-v3-guide ul {padding-left:16px;margin:6px 0 8px;font-size:11px;line-height:1.6}\n#cxds-panel.lt-ui .lt-v3-guide button {width:100%;min-height:30px;font-size:11px}\n#cxds-panel.lt-ui .lt-v3-clear-confirm {padding:8px;border:1px solid #dcc88f;border-radius:6px;background:#fff8e8;font-size:12px;display:flex;gap:6px;flex-wrap:wrap}\n#cxds-panel.lt-ui .lt-v3-clear-confirm span {width:100%}\n.lt-ui.lt-v3-launcher-hud {position:fixed;z-index:2147483647;box-sizing:border-box;margin:0;padding:10px 12px;border-radius:8px;background:#24231f;color:#fffdf7;box-shadow:0 6px 20px #0003;font:12px/1.6 var(--lt-font-family);pointer-events:none;overflow-wrap:anywhere}\n.lt-ui.lt-v3-launcher-hud strong {color:#e8c23a}\n.lt-ui.lt-v3-launcher-hud p {margin:4px 0 0}\n.lt-ui.lt-v3-launcher-hud[hidden] {display:none}\n#cxds-logo.lt-ui[data-runtime-state="running"] {border-color:#1b7a4c;box-shadow:0 0 0 4px #1b7a4c22}\n#cxds-logo.lt-ui[data-runtime-state="receipt"] {border-color:#96520f;box-shadow:0 0 0 4px #96520f22}\n#cxds-logo.lt-ui:is([data-runtime-state="warning"],[data-runtime-state="error"]) {border-color:#b5331e;box-shadow:0 0 0 4px #b5331e22}\n#cxds-logo.lt-ui[data-runtime-state="done"] {border-color:#1b7a4c}\n#lt-course-ui.lt-ui .lt-course-header {gap:12px;align-items:center}\n#lt-course-ui.lt-ui #lt-course-ux {width:auto;margin:0;padding:4px 10px;border:1px solid #d4ccb8;border-radius:999px;background:#f3f0e8}\n#lt-course-ui.lt-ui #lt-course-ux strong {font-size:12px;line-height:1.6}\n#lt-course-ui.lt-ui #lt-course-ux p {font-size:12px;margin:6px 0 0;border:0;padding:0}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="running"] {background:#fff8e6;border-color:#dcc88f;color:#8b6615}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="done"] {background:#ecf6ef;border-color:#7ecda6;color:#1b7a4c}\n#lt-course-ui.lt-ui #lt-course-ux[data-state="error"] {background:#fff0ed;border-color:#e4b8ab;border-radius:8px}\n#lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:48px;margin-bottom:10px}\n#lt-course-ui.lt-ui .lt-course-progress-bird {width:44px;height:44px;overflow:visible;left:clamp(22px,var(--lt-course-progress),calc(100% - 22px));border:1px solid #8b6615;border-radius:50%;background:#fffdf7;display:flex;align-items:center;justify-content:center;box-sizing:border-box;box-shadow:0 2px 8px #8b661522}\n#lt-course-ui.lt-ui .lt-course-progress-bird img {width:36px;height:36px;object-fit:contain;filter:none}\n#lt-course-ui.lt-ui[data-course-state="done"] .lt-course-progress-bird {border-color:#1b7a4c}\n#lt-course-ui.lt-ui .lt-course-overview-body {margin:14px 0;padding:14px 16px!important;background:#f8f5ed;border:1px solid #e8e2d2;border-radius:10px}\n#lt-course-ui.lt-ui .lt-course-speed {flex:1}\n#lt-course-ui.lt-ui .lt-speed-control {max-width:none}\n#lt-course-ui.lt-ui .lt-course-control-row {padding:12px 14px;border:1px solid #e7e0ce;border-radius:10px;background:#fbf9f2}\n#lt-course-ui.lt-ui .lt-speed-track {height:32px;border:0;background:#e8e2d4}\n#lt-course-ui.lt-ui .lt-speed-progress::after {display:none}\n#lt-course-ui.lt-ui .lt-course-guard {min-width:148px;border-left:1px solid #e2dbca;padding-left:12px}\n#lt-course-ui.lt-ui #backGround {font-size:12px}\n#lt-course-ui.lt-ui .lt-v3-guard-help {font-size:11px;line-height:1.6;color:#7a745f;max-width:220px}\n#lt-course-ui.lt-ui .lt-v3-guard-help summary {cursor:pointer;text-align:right}\n#lt-course-ui.lt-ui #lt-course-guard-help {margin:8px 0 0;font-size:11px}\n#lt-course-ui.lt-ui .lt-v3-task-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}\n#lt-course-ui.lt-ui .lt-v3-task-card {padding:8px 10px;border:1px solid #e5ded0;background:#fbf9f2;border-radius:8px;display:flex;flex-direction:column;gap:4px;font-size:12px;overflow-wrap:anywhere}\n#lt-course-ui.lt-ui .lt-v3-task-card span {font-size:11px;color:#7a745f}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="running"] {border-color:#e8c23a;background:#fff9ea}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="done"] {border-color:#7ecda6;background:#ecf6ef}\n#lt-course-ui.lt-ui .lt-v3-task-card[data-state="error"] {border-color:#e4b8ab;background:#fff0ed}\n@media(max-width:540px){\n #cxds-panel.lt-ui .lt-v3-ai-card,#cxds-panel.lt-ui .cxds-license-box{padding:10px}\n #cxds-panel.lt-ui .lt-runtime-account-row{gap:4px}\n #cxds-panel.lt-ui .lt-runtime-ai-row{flex-wrap:wrap}\n #cxds-panel.lt-ui .lt-v3-footer{flex-wrap:wrap}\n #lt-course-ui.lt-ui .lt-course-guard{width:100%;border-left:0;border-top:1px solid #e2dbca;padding:8px 0 0}\n #lt-course-ui.lt-ui .lt-v3-task-cards{grid-template-columns:1fr}\n #lt-course-ui.lt-ui .lt-v3-task-card{flex-direction:row;justify-content:space-between;gap:8px}\n}\n'; var golden_wing_v31_default = `/* Golden Wing v3.1: layout fixes and motion. Presentation only; every hook stays bound. */ :is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui { --lt-v31-ease-out:cubic-bezier(.16,1,.3,1); --lt-v31-ease-spring:cubic-bezier(.34,1.56,.64,1); --lt-v31-ease-std:cubic-bezier(.2,0,0,1); --lt-v31-gold:#8b6615; --lt-v31-gold-hi:#e8c23a; --lt-v31-ok:#1b7a4c; --lt-v31-ai:#7a5cc8; } /* ---------- course status pill ---------- */ #lt-course-ui.lt-ui #lt-course-ux {display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;overflow:hidden;transition:background-color .4s,border-color .4s,color .4s} #lt-course-ui.lt-ui #lt-course-ux p {width:100%} #lt-course-ui.lt-ui .lt-pill-dot {width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor;opacity:.75} #lt-course-ui.lt-ui .lt-pill-check {display:none;width:13px;height:13px;flex:0 0 13px} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-dot {display:none} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-check {display:block} #lt-course-ui.lt-ui #lt-course-ux[data-state="done"] .lt-pill-check path {stroke-dasharray:20;stroke-dashoffset:20;animation:lt-v31-draw .5s .15s var(--lt-v31-ease-out) forwards} #lt-course-ui.lt-ui #lt-course-ux[data-state="running"] .lt-pill-dot {opacity:1;animation:lt-v31-ping 1.6s var(--lt-v31-ease-out) infinite} #lt-course-ui.lt-ui #lt-course-ux strong.is-swapping {animation:lt-v31-swap .42s var(--lt-v31-ease-out)} @keyframes lt-v31-swap {from{transform:translateY(9px);opacity:0;filter:blur(2px)}to{transform:none;opacity:1;filter:none}} @keyframes lt-v31-ping {0%{box-shadow:0 0 0 0 rgb(232 194 58/65%)}80%,100%{box-shadow:0 0 0 7px rgb(232 194 58/0%)}} @keyframes lt-v31-draw {to{stroke-dashoffset:0}} /* ---------- perched progress bird ---------- */ #lt-course-ui.lt-ui .lt-course-progress-lane.has-progress {padding-top:14px;margin-bottom:14px} #lt-course-ui.lt-ui #overviewProgressFill {transition:width 1.1s var(--lt-v31-ease-out),background .6s!important} #lt-course-ui.lt-ui .lt-course-progress-bird {top:0;width:32px;height:32px;left:clamp(16px,var(--lt-course-progress),calc(100% - 16px));transform:translateX(-50%);box-shadow:0 2px 6px rgb(36 35 31/18%);transition:left 1.1s var(--lt-v31-ease-out),border-color .5s;overflow:visible} #lt-course-ui.lt-ui .lt-course-progress-bird .lt-bird-mark {display:block;width:26px;height:26px;overflow:visible;pointer-events:none} #lt-course-ui.lt-ui .lt-course-progress-bird>img {display:none} #lt-course-ui.lt-ui .lt-course-progress-bird .lt-bird-wing-flap {transform-box:view-box;transform-origin:60% 53%} #lt-course-ui.lt-ui .lt-course-progress-lane.is-gliding .lt-bird-wing-flap {animation:lt-v31-flap .52s cubic-bezier(.42,0,.58,1) 2} @keyframes lt-v31-flap {0%,100%{transform:rotate(0) scaleX(1)}25%{transform:rotate(-20deg) scaleX(1.1)}75%{transform:rotate(14deg) scaleX(.94)}} #lt-course-ui.lt-ui .lt-course-progress-trail {position:absolute;z-index:0;top:8px;height:16px;width:90px;right:calc(100% - var(--lt-course-progress));background:radial-gradient(60px 8px at 100% 50%,rgb(232 194 58/55%),transparent 70%);opacity:0;pointer-events:none;transition:right 1.1s var(--lt-v31-ease-out),opacity .5s} #lt-course-ui.lt-ui .lt-course-progress-lane:not(.has-progress) .lt-course-progress-trail {display:none} #lt-course-ui.lt-ui .lt-course-progress-lane.is-gliding .lt-course-progress-trail {opacity:1;transition:right 1.1s var(--lt-v31-ease-out),opacity .2s} #lt-course-ui.lt-ui .lt-course-progress-track {position:relative} #lt-course-ui.lt-ui .lt-course-progress-track::after {content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgb(255 255 255/75%) 50%,transparent 70%);transform:translateX(-100%);pointer-events:none} #lt-course-ui.lt-ui .lt-course-progress-lane.is-celebrating .lt-course-progress-track::after {animation:lt-v31-sweep 1.1s .35s var(--lt-v31-ease-std)} #lt-course-ui.lt-ui .lt-course-progress-lane.is-celebrating .lt-course-progress-bird .lt-bird-mark {animation:lt-v31-land .7s var(--lt-v31-ease-spring)} @keyframes lt-v31-sweep {to{transform:translateX(100%)}} @keyframes lt-v31-land {0%{transform:translateY(-6px) scale(1.12)}100%{transform:none}} #lt-course-ui.lt-ui .lt-v31-spark {position:absolute;z-index:3;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#e8c23a;pointer-events:none} #lt-course-ui.lt-ui .lt-v31-feather {position:absolute;z-index:4;width:14px;height:22px;pointer-events:none} #lt-course-ui.lt-ui .lt-course-estimate[data-empty="true"] {display:none} /* ---------- section tasks ---------- */ #lt-course-ui.lt-ui .lt-v3-task-cards[hidden] {display:none} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card {animation:lt-v31-rise .45s var(--lt-v31-ease-out) both} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card:nth-child(2) {animation-delay:.07s} #lt-course-ui.lt-ui .lt-v3-task-cards.is-entering .lt-v3-task-card:nth-child(3) {animation-delay:.14s} @keyframes lt-v31-rise {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} #lt-course-ui.lt-ui .lt-v3-task-card {position:relative;overflow:hidden;transition:background-color .4s,border-color .4s} #lt-course-ui.lt-ui .lt-v3-task-card[data-state="running"]::before {content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgb(232 194 58/18%) 50%,transparent 65%);animation:lt-v31-sheen 2.2s linear infinite;pointer-events:none} @keyframes lt-v31-sheen {from{transform:translateX(-100%)}to{transform:translateX(100%)}} #lt-course-ui.lt-ui .lt-v31-task-bar {display:block;height:3px;margin-top:4px;border-radius:3px;background:#ece5d3;overflow:hidden} #lt-course-ui.lt-ui .lt-v31-task-bar[hidden] {display:none} #lt-course-ui.lt-ui .lt-v31-task-bar i {display:block;height:100%;width:var(--lt-task-progress,0%);background:#e8c23a;border-radius:3px;transition:width .8s var(--lt-v31-ease-out)} #lt-course-ui.lt-ui .lt-v3-task-card[data-state="done"] .lt-v31-task-bar i {background:#2e9a62} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"] {display:flex;align-items:center;gap:8px;margin:8px 0 12px;padding:8px 12px;border:1px dashed #d9d1bd;border-radius:9px;color:#5c5848;animation:lt-v31-fade .4s var(--lt-v31-ease-out)} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"][hidden] {display:none} #lt-course-ui.lt-ui #lt-course-empty[data-variant="none"]::before {content:"";width:16px;height:16px;flex:0 0 16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5C4 5 4 10.5 8 14.5C12 10.5 12 5 8 1.5Z' fill='none' stroke='%238b6615' stroke-width='1.3'/%3E%3Cpath d='M8 3.5V14' stroke='%238b6615'/%3E%3C/svg%3E") center/contain no-repeat} @keyframes lt-v31-fade {from{opacity:0}to{opacity:1}} /* ---------- course records ---------- */ #lt-course-ui.lt-ui [data-log-header] {display:flex!important;justify-content:flex-end;align-items:center;margin:0 0 4px;padding:0!important;border:0!important;background:none!important} #lt-course-ui.lt-ui #clearLogBtn {margin-left:auto;font-size:12px!important;min-height:0;min-width:0;padding:2px 12px!important;border:1px solid #d9d1bd!important;border-radius:999px!important;background:#fffdf7;line-height:1.6} #lt-course-ui.lt-ui #clearLogBtn:hover {border-color:#8b6615!important;color:#8b6615!important} #lt-course-ui.lt-ui #log>div {border-left:2px solid transparent;padding-left:6px;border-radius:3px;animation:lt-v31-row-in .45s var(--lt-v31-ease-out),lt-v31-row-flash 1.6s var(--lt-v31-ease-std)} @keyframes lt-v31-row-in {from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}} @keyframes lt-v31-row-flash {0%{border-left-color:#e8c23a;background:rgb(232 194 58/16%)}100%{border-left-color:transparent;background:transparent}} /* ---------- speed: drifting gold dust + value pop ---------- */ #lt-course-ui.lt-ui .lt-speed-dust {position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none} #lt-course-ui.lt-ui .lt-speed-dust i {position:absolute;left:0;width:3px;height:3px;border-radius:50%;background:#fff8d8;opacity:.75;animation:lt-v31-drift var(--lt-speed-drift,2.4s) linear infinite} @keyframes lt-v31-drift {from{transform:translateX(-12px)}to{transform:translateX(640px)}} #lt-course-ui.lt-ui .lt-speed-value.is-popping {display:inline-block;animation:lt-v31-pop .35s var(--lt-v31-ease-spring)} @keyframes lt-v31-pop {50%{transform:scale(1.35)}} /* ---------- launcher: progress ring, orbit, attention ---------- */ #cxds-logo.lt-ui .lt-launcher-ring {position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);transform:rotate(-90deg);pointer-events:none;overflow:visible} #cxds-logo.lt-ui .lt-launcher-ring circle {fill:none;stroke-width:3} #cxds-logo.lt-ui .lt-launcher-ring .lt-ring-bg {stroke:rgb(139 102 21/16%)} #cxds-logo.lt-ui .lt-launcher-ring .lt-ring-fg {stroke:#e8c23a;stroke-linecap:round;transition:stroke-dashoffset 1.1s var(--lt-v31-ease-out),stroke .5s} #cxds-logo.lt-ui:not([data-ring]) .lt-launcher-ring {display:none} #cxds-logo.lt-ui[data-motion="done"] .lt-ring-fg {stroke:#2e9a62} #cxds-logo.lt-ui[data-motion="ai"] .lt-ring-fg {stroke:#9a7ee0} #cxds-logo.lt-ui .lt-launcher-orbit {position:absolute;inset:-6px;border-radius:50%;opacity:0;pointer-events:none;transition:opacity .3s} #cxds-logo.lt-ui .lt-launcher-orbit::before {content:"";position:absolute;top:-2px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#e8c23a;box-shadow:0 0 8px 2px rgb(232 194 58/80%)} #cxds-logo.lt-ui:is([data-motion="run"],[data-motion="ai"]) .lt-launcher-orbit {opacity:1;animation:lt-v31-spin 2.4s linear infinite} #cxds-logo.lt-ui[data-motion="ai"] .lt-launcher-orbit::before {background:#b39cf0;box-shadow:0 0 8px 2px rgb(150 120 230/80%)} @keyframes lt-v31-spin {to{transform:rotate(360deg)}} #cxds-logo.lt-ui .lt-launcher-badge {position:absolute;right:-4px;bottom:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#96520f;color:#fff;font:700 10px/16px var(--lt-font-family);text-align:center;transform:scale(0);transition:transform .3s var(--lt-v31-ease-spring);pointer-events:none} #cxds-logo.lt-ui[data-attention="true"] .lt-launcher-badge {transform:scale(1)} #cxds-logo.lt-ui[data-ring]:is([data-runtime-state="running"],[data-runtime-state="done"]) {box-shadow:var(--lt-shadow-2)} /* ---------- panel unfurls from the launcher ---------- */ #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] {transform-origin:var(--lt-panel-origin,100% 100%);transition:transform .38s var(--lt-v31-ease-out),opacity .25s,visibility 0s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"].cxds-hidden {transform:scale(.35);transition:transform .22s var(--lt-v31-ease-std),opacity .18s,visibility 0s .22s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>* {transition:opacity .3s,transform .4s var(--lt-v31-ease-out)} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"].cxds-hidden .cxds-body>* {opacity:0;transform:translateY(-6px)} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(2) {transition-delay:.04s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(3) {transition-delay:.08s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(4) {transition-delay:.12s} #cxds-panel.lt-ui[data-ui-revision="golden-wing-v3"] .cxds-body>*:nth-child(n+5) {transition-delay:.16s} /* ---------- panel: AI process + account ---------- */ #cxds-panel.lt-ui .lt-ux-ai-idle {margin:8px 0 0;padding:6px 10px;border-radius:8px;background:#fffdf7;border:1px solid #ece5d3;font-size:12px;line-height:1.6;color:#5c5848} #cxds-panel.lt-ui .lt-ux-ai-idle[hidden] {display:none} #cxds-panel.lt-ui .lt-ai-thinking {display:none;gap:3px;align-items:center;margin:8px 6px 0 0;vertical-align:middle} #cxds-panel.lt-ui .lt-v3-ai-card[data-ai="running"] .lt-ai-thinking {display:inline-flex} #cxds-panel.lt-ui .lt-ai-thinking i {width:5px;height:5px;border-radius:50%;background:#7a5cc8;animation:lt-v31-think 1s infinite} #cxds-panel.lt-ui .lt-ai-thinking i:nth-child(2) {animation-delay:.15s} #cxds-panel.lt-ui .lt-ai-thinking i:nth-child(3) {animation-delay:.3s} @keyframes lt-v31-think {0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}} #cxds-panel.lt-ui .lt-ai-steps {display:flex;gap:3px;margin-top:8px} #cxds-panel.lt-ui .lt-ai-steps[hidden] {display:none} #cxds-panel.lt-ui .lt-ai-steps i {flex:1;height:4px;border-radius:2px;background:#e9e2d0;transition:background-color .3s} #cxds-panel.lt-ui .lt-ai-steps i[data-step="current"] {background:#7a5cc8} #cxds-panel.lt-ui .lt-ai-steps i[data-step="done"] {background:#2e9a62} #cxds-panel.lt-ui .lt-runtime-balance-row {position:relative} #cxds-panel.lt-ui .lt-balance-delta {position:absolute;left:100%;top:-6px;margin-left:2px;font-size:12px;font-weight:700;color:#b5331e;white-space:nowrap;pointer-events:none;animation:lt-v31-float 1.6s var(--lt-v31-ease-out) forwards} #cxds-panel.lt-ui .lt-balance-delta.is-gain {color:#1b7a4c} @keyframes lt-v31-float {0%{opacity:0;transform:translateY(8px)}20%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-16px)}} #cxds-panel.lt-ui [data-balance] {font-variant-numeric:tabular-nums} #cxds-panel.lt-ui .lt-ux-receipt:not([hidden]) {animation:lt-v31-receipt .45s var(--lt-v31-ease-out)} #cxds-panel.lt-ui .lt-ux-receipt.is-new {animation:lt-v31-receipt .45s var(--lt-v31-ease-out)} @keyframes lt-v31-receipt {from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}} #cxds-panel.lt-ui [data-action="refresh-balance"].is-spinning .lt-icon {animation:lt-v31-spin .7s var(--lt-v31-ease-std)} /* ---------- concise billing / card copy ---------- */ #cxds-panel.lt-ui .lt-help-points {margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px} #cxds-panel.lt-ui .lt-help-points li {position:relative;padding-left:12px} #cxds-panel.lt-ui .lt-help-points li::before {content:"";position:absolute;left:2px;top:.65em;width:4px;height:4px;border-radius:50%;background:#c99a2e} #cxds-panel.lt-ui .lt-help-points strong {color:var(--lt-color-text);font-weight:600} /* The drawer already states the payment rule; avoid repeating it right below. */ #cxds-panel.lt-ui .drip-recharge[open] ~ .lt-payment-essential {display:none} @media(prefers-reduced-motion:reduce){ :is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *::before,:is(#lt-course-ui,#cxds-panel,#cxds-logo).lt-ui *::after {animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0s!important} #lt-course-ui.lt-ui .lt-v31-spark,#lt-course-ui.lt-ui .lt-v31-feather,#lt-course-ui.lt-ui .lt-speed-dust {display:none} } `; var golden_wing_v4_default = '/* Golden Wing v3.2 simple panel: status first, details on demand. */\n#cxds-panel.lt-ui.lt-v4 .cxds-body {gap:10px}\n\n/* Hidden by default; still present for logic, screen readers get the hero instead. */\n#cxds-panel.lt-ui.lt-v4 :is(#drip-ai-help,.lt-ux-headline,.lt-ux-next,.lt-ux-ai-idle,.drip-current,[data-current-task],.lt-runtime-credit-label,.lt-payment-essential,.lt-ux-feedback,.lt-ux-ai-switch-note,.lt-v3-footer-copy,[data-ai-label]) {display:none!important}\n#cxds-panel.lt-ui.lt-v4 :is(.lt-billing-details,.lt-record-details):not([open]) {display:none}\n\n/* Status hero */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero {display:flex;align-items:center;gap:12px;padding:2px 2px 0}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-icon {width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:grid;place-items:center;font-size:17px;font-weight:700;background:#fff4d4;color:#8b6615;transition:background-color .3s,color .3s}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="run"] .lt-v4-icon {background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="ai"] .lt-v4-icon {background:#f1ecff;color:#7a5cc8}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="ok"] .lt-v4-icon {background:#e8f4ec;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-hero[data-tone="warn"] .lt-v4-icon {background:#fff1de;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-copy {min-width:0;display:flex;flex-direction:column}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-title {font-weight:700;font-size:15px;line-height:1.4;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-desc {font-size:12px;line-height:1.5;color:#8a846f;overflow-wrap:anywhere}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-cta {width:100%;min-height:36px;font-size:13px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-cta[hidden] {display:none}\n\n/* When the hero already offers the main action, the course-home switch steps back. */\n#cxds-panel.lt-ui.lt-v4[data-lt-cta="true"] [data-action="home-entry"] {background:transparent!important;color:#8b6615!important;border:1px solid #d9d1bd!important;min-height:30px;font-weight:500}\n\n/* AI row: flat, one line */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-ai-card {padding:10px 12px}\n#cxds-panel.lt-ui.lt-v4 .lt-runtime-ai-row {display:flex;align-items:center}\n#cxds-panel.lt-ui.lt-v4 [data-action="ai-toggle"] {width:100%;justify-content:space-between}\n#cxds-panel.lt-ui.lt-v4 .drip-ai-copy {display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .drip-ai-copy strong {font-size:13px;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-ai-text {background:none!important;border:0!important;padding:0!important;border-radius:0!important;font-size:11.5px;color:#8a846f;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n#cxds-panel.lt-ui.lt-v4 .lt-ai-thinking {margin:6px 0 0}\n#cxds-panel.lt-ui.lt-v4 .lt-ai-steps {margin-top:8px}\n\n/* Points row */\n#cxds-panel.lt-ui.lt-v4 .cxds-license-box {padding:10px 12px}\n#cxds-panel.lt-ui.lt-v4 [data-balance] {font-size:22px}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge {min-height:30px;padding:3px 14px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-ux-receipt {margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:6px 6px 6px 10px;border-radius:8px;background:#f6f0e1;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-shop-link {min-height:28px;padding:0 10px;font-size:12px;color:#8b6615}\n\n/* Latest record + links */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last {display:flex;align-items:center;gap:8px;margin:0;padding:0 2px;font-size:12px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last::before {content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#e8c23a}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last[data-empty="true"] {color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last[data-empty="true"]::before {background:#d9d1bd}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-last span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links {display:flex;gap:16px;padding:0 2px}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-link {border:0;background:none;padding:0;font:inherit;font-size:12px;color:#8b6615;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-link:hover,#cxds-panel.lt-ui.lt-v4 .lt-v4-link[aria-expanded="true"] {text-decoration:underline}\n#cxds-panel.lt-ui.lt-v4 .lt-record-details[open] {padding-top:6px}\n\n/* Footer keeps only the course list button */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-footer {justify-content:flex-end}\n\n/* Timeline: no repeated body line */\n#cxds-panel.lt-ui .drip-timeline-entry p[hidden] {display:none}\n'; var golden_wing_invite_default = "/* \u9080\u8BF7\u540C\u5B66\uFF1A\u5165\u53E3\u3001\u9080\u8BF7\u5361\u3001\u586B\u7801\u63D0\u793A\u4E0E\u7B54\u5B8C\u4E00\u9875\u540E\u7684\u63D0\u793A\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-invite-entry {margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-entry[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-badge {font-size:10.5px;font-weight:700;line-height:17px;padding:0 6px;border-radius:999px;background:#fff4d4;color:#8b6615;border:1px solid #f0dc9c;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-card {padding:12px;background:#fbf9f3;border:1px solid #e6dfce;border-radius:10px;position:relative}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-card[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-head b {font-size:14px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perks {display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk {padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e6dfce;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk small {display:block;font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk strong {display:block;font-size:16px;line-height:1.3;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-perk span {display:block;font-size:11px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-ticket {display:flex;align-items:stretch;margin-top:10px;border:1.5px dashed #d6c28a;border-radius:10px;background:#fffaeb}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code {flex:1;padding:9px 12px;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code small {display:block;font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-code code {font:700 20px/1.25 ui-monospace,Consolas,monospace;letter-spacing:4px;color:#24231f;background:none;padding:0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code {border:0;border-left:1.5px dashed #d6c28a;border-radius:0 9px 9px 0;background:transparent;color:#8b6615;font:inherit;font-size:12px;font-weight:600;padding:0 14px;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code:hover {background:#fff3d1}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-copy-code.is-done {background:#ecf6ef;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-share {width:100%;min-height:36px;margin-top:10px;font-size:13px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-share.is-done,#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-copy.is-done {background:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats {display:flex;margin-top:12px;padding-top:10px;border-top:1px solid #e6dfce;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats div {flex:1}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats div+div {border-left:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats strong {display:block;font-size:15px;line-height:1.3;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats strong.is-gold {color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-stats small {font-size:11px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-progress {display:flex;flex-direction:column;gap:6px;margin-top:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-progress:empty {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-row {display:grid;grid-template-columns:52px 1fr 40px;align-items:center;gap:8px;font-size:11.5px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-row em {font-style:normal;text-align:right;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bar {display:block;height:6px;border-radius:999px;background:#efe8d6;overflow:hidden}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bar b {display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#e8c23a,#a8812a);transition:width .3s}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint {margin:8px 0 0;font-size:11.5px;line-height:1.55;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint.is-error {color:#b5331e}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-hint:empty,#cxds-panel.lt-ui.lt-v4 .lt-invite-hint[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-toast {position:absolute;left:50%;bottom:-10px;transform:translate(-50%,8px);margin:0;background:#24231f;color:#fffdf7;font-size:12px;padding:6px 12px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;white-space:nowrap}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-toast.is-on {opacity:1;transform:translate(-50%,0)}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bind {margin:10px 0 0}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-bind[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-receipt[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-kind[hidden],#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-receipt {margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#ecf6ef;border:1px solid #bfe0cb;color:#1b7a4c;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-kind {margin-left:6px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#fff4d4;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 #cxds-card-code.lt-invite-input {font-family:ui-monospace,Consolas,monospace;letter-spacing:2px;font-weight:600;text-transform:uppercase}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge {position:relative;padding:10px 32px 10px 12px;border-radius:10px;background:#fff8e6;border:1px solid #ecd793;animation:lt-invite-rise .32s cubic-bezier(.16,1,.3,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge b {display:block;font-size:13px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge p {margin:2px 0 8px;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close {position:absolute;right:6px;top:6px;width:24px;height:24px;border:0;border-radius:6px;background:none;color:#8a846f;font-size:16px;line-height:1;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close:hover {background:#f3e7c4}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-actions {display:flex;align-items:center;gap:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-copy {min-height:30px;padding:0 12px;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-actions small {font-size:11px;color:#8a846f}\n@keyframes lt-invite-rise {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce){#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge{animation:none}#cxds-panel.lt-ui.lt-v4 .lt-invite-bar b,#cxds-panel.lt-ui.lt-v4 .lt-invite-toast{transition:none}}\n"; var golden_wing_pay_default = '/* \u9762\u677F\u5185\u626B\u7801\u4ED8\u6B3E\uFF1A\u5145\u503C\u62BD\u5C49\u3001\u79EF\u5206\u4E0D\u8DB3\u5361\u7247\u3001\u5C0F\u9E1F\u6C14\u6CE1\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-alt[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-short[hidden],#cxds-panel.lt-ui.lt-v4 .lt-pay-short [hidden] {display:none}\n/* \u5F00\u4E86\u626B\u7801\u4ED8\u6B3E\uFF1A\u5E97\u94FA\u6761\u6536\u8FDB\u5E95\u90E8\u94FE\u63A5\uFF0C\u5361\u5BC6\u8F93\u5165\u6846\u70B9\u201C\u5DF2\u6709\u5361\u5BC6\u201D\u624D\u5C55\u5F00\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-on > .lt-v4-shop:not(.lt-invite-bind) {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-on:not(.lt-pay-redeem-open) > :is(.cxds-field,.cxds-license-actions,.drip-credit-help) {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay {margin:0 0 4px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-label {display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-label small {font-size:11px;font-weight:400;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-packages {display:grid;grid-template-columns:1fr 1fr;gap:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package {display:block;text-align:left;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid #e6dfce;font:inherit;color:#24231f;cursor:pointer;transition:border-color .14s,background-color .14s,box-shadow .14s}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package:hover {border-color:#b8995a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package[aria-checked="true"] {border-color:#8b6615;background:#fffaeb;box-shadow:inset 0 0 0 1px #8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package strong {display:block;font-size:15px;line-height:1.3}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package strong small {margin-left:2px;font-size:11px;font-weight:500;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-package span {display:block;font-size:12px;font-weight:600;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-methods {display:flex;gap:6px;margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method {flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-radius:8px;border:1px solid #e6dfce;background:#fff;font:inherit;font-size:12px;color:#5c5848;cursor:pointer;transition:border-color .14s,color .14s}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method[aria-checked="true"] {border-color:#8b6615;color:#24231f;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-method i,#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mark {width:16px;height:16px;border-radius:4px;display:grid;place-items:center;color:#fff;font-style:normal;font-size:10px;font-weight:700}\n#cxds-panel.lt-ui.lt-v4 .is-alipay {background:#1677ff}\n#cxds-panel.lt-ui.lt-v4 .is-wxpay {background:#07c160}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-go {width:100%;min-height:38px;margin-top:10px;font-size:13.5px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-fine {margin:7px 0 0;font-size:11px;color:#8a846f;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-alt {display:flex;justify-content:space-between;align-items:center;margin:2px 0 8px;padding-top:8px;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link {border:0;background:none;padding:2px 0;font:inherit;font-size:12px;color:#8b6615;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link:hover {text-decoration:underline}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-link[hidden] {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-loading {padding:24px 0;text-align:center;font-size:12px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 :is(.lt-pay-pick,.lt-pay-qrbox,.lt-pay-done,.lt-pay-failed,.lt-pay-offer) {animation:lt-pay-rise .28s cubic-bezier(.16,1,.3,1)}\n\n/* \u4E8C\u7EF4\u7801 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrbox {display:flex;flex-direction:column;align-items:center;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead {display:flex;align-items:baseline;gap:6px;margin-bottom:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead strong {font-size:22px;letter-spacing:-.3px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrhead small {font-size:12px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr {position:relative;width:168px;height:168px;padding:8px;box-sizing:border-box;background:#fff;border:1px solid #e6dfce;border-radius:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr svg {display:block;width:100%;height:100%}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mark {position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:6px;font-size:14px;box-shadow:0 0 0 3px #fff}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mask {position:absolute;inset:0;border-radius:10px;background:rgb(255 255 255/93%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qr-mask .lt-button {min-height:30px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-scan {margin-top:8px;font-size:12.5px;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-scan b {margin:0 3px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-wait {display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;font-size:11.5px;color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-wait i,#cxds-panel.lt-ui.lt-v4 .lt-pay-resume i {width:6px;height:6px;border-radius:50%;background:#e8c23a;animation:lt-pay-pulse 1.2s ease-in-out infinite}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot {display:flex;justify-content:space-between;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid #e6dfce}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot .lt-pay-link {color:#8a846f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-qrfoot .lt-pay-link:hover {color:#8b6615}\n\n/* \u5230\u8D26 / \u5931\u8D25 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done {display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 0 2px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done-tick {width:44px;height:44px;border-radius:50%;background:#ecf6ef;color:#1b7a4c;display:grid;place-items:center;font-size:22px;font-weight:700;animation:lt-pay-pop .4s cubic-bezier(.34,1.56,.64,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done b {margin-top:8px;font-size:15px;color:#1b7a4c}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-done small {font-size:11.5px;color:#8a846f;overflow-wrap:anywhere}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-resume {display:flex;align-items:center;gap:6px;margin-top:8px;padding:5px 10px;border-radius:999px;background:#f1ecff;color:#5b3fb0;font-size:12px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-resume i {background:#7a5cc8}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed {display:flex;flex-direction:column;gap:4px;text-align:center}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed b {font-size:14px;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed small {font-size:12px;line-height:1.6;color:#5c5848}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed-actions {display:flex;gap:6px;justify-content:center;margin-top:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-failed-actions .lt-button {min-height:30px;font-size:12px}\n\n/* \u79EF\u5206\u4E0D\u8DB3\u5361\u7247 */\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short {display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:#fffaf0;border:1px solid #f0dca8;animation:lt-pay-rise .32s cubic-bezier(.16,1,.3,1)}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short.is-paid {background:#ecf6ef;border-color:#bfe0cb}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short.is-paid .lt-pay-short-head {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head {display:flex;align-items:flex-start;gap:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head > div {flex:1;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head b {display:block;font-size:14px;color:#96520f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-head small {display:block;font-size:12px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-close {width:24px;height:24px;flex:0 0 24px;border:0;border-radius:6px;background:none;color:#8a846f;font-size:16px;line-height:1;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-close:hover {background:#f3e7c4}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-row {display:flex;align-items:center;gap:10px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt {flex:1;min-width:0}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt b {display:block;font-size:14px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-amt small {display:block;font-size:11.5px;color:#6b5a3a}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-row .lt-button {min-width:96px;min-height:36px;font-weight:600}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-more {display:flex;justify-content:space-between;margin-top:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-offer-more .lt-pay-link {font-size:11.5px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini {display:flex;gap:6px;margin-top:8px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button {flex:1;padding:5px 0;border-radius:8px;border:1px solid #e6dfce;background:#fff;font:inherit;font-size:11.5px;line-height:1.3;color:#5c5848;cursor:pointer}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button b {display:block;font-size:12.5px;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-mini button[aria-checked="true"] {border-color:#8b6615;background:#fffaeb;color:#8b6615}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-partial {width:100%;min-height:30px;font-size:12px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback {display:flex;gap:6px}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback:empty {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-pay-short-fallback .lt-button {flex:1;min-height:32px;font-size:12px}\n\n/* \u5C0F\u9E1F\u6C14\u6CE1\uFF08\u9762\u677F\u6536\u8D77\u65F6\uFF09 */\n.lt-ui.lt-pay-bubble {position:fixed;z-index:2147483647;max-width:240px;margin:0;padding:9px 12px;border:0;border-radius:12px 12px 4px 12px;white-space:nowrap;background:#24231f;color:#fffdf7;box-shadow:0 8px 20px rgb(0 0 0/18%);font:12px/1.5 var(--lt-font-family,system-ui);text-align:left;cursor:pointer;animation:lt-pay-rise .36s cubic-bezier(.16,1,.3,1)}\n.lt-ui.lt-pay-bubble[hidden] {display:none}\n.lt-ui.lt-pay-bubble b {display:block;font-size:12.5px;font-weight:600}\n.lt-ui.lt-pay-bubble span {display:block;margin-top:2px;color:#e8c23a}\n.lt-ui.lt-pay-bubble:hover span {text-decoration:underline}\n\n@keyframes lt-pay-rise {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@keyframes lt-pay-pulse {0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}\n@keyframes lt-pay-pop {from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce) {#cxds-panel.lt-ui.lt-v4 [class*="lt-pay"],.lt-ui.lt-pay-bubble,#cxds-panel.lt-ui.lt-v4 [class*="lt-pay"] * {animation:none!important;transition:none!important}}\n'; var golden_wing_close_default = '/* \u5C55\u5F00\u9879\u7EDF\u4E00\u6536\u8D77\u65B9\u5F0F\uFF1A\u91D1\u8272 \xD7\u3001\u5361\u7247\u6807\u9898\u884C\u3001\u5165\u53E3\u5C55\u5F00\u72B6\u6001\u3002 */\n#cxds-panel.lt-ui.lt-v4 .lt-close {display:inline-grid;place-items:center;width:26px;height:26px;min-height:0;flex:0 0 26px;padding:0;border:1px solid transparent;border-radius:8px;background:none;color:#8b6615;cursor:pointer;transition:background .15s,border-color .15s}\n#cxds-panel.lt-ui.lt-v4 .lt-close .lt-icon {width:14px;height:14px;stroke-width:2.2}\n#cxds-panel.lt-ui.lt-v4 .lt-close:hover {background:#f3e7c4;border-color:#e6d3a0}\n#cxds-panel.lt-ui.lt-v4 .lt-close:focus-visible {outline:2px solid #c9a44a;outline-offset:1px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-nudge-close {right:4px;top:4px}\n\n#cxds-panel.lt-ui.lt-v4 :is(.lt-billing-details,.lt-record-details)>summary {display:none}\n#cxds-panel.lt-ui.lt-v4 .lt-sheet-head {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px -4px 6px 0}\n#cxds-panel.lt-ui.lt-v4 .lt-sheet-head b {font-size:13px;font-weight:600;color:#24231f}\n#cxds-panel.lt-ui.lt-v4 .lt-record-details .lt-sheet-head {margin-top:2px}\n#cxds-panel.lt-ui.lt-v4 .drip-recharge-content>.lt-sheet-head {margin-top:-2px}\n#cxds-panel.lt-ui.lt-v4 .lt-invite-head {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px -4px 0 0}\n\n/* \u5145\u503C\u5C55\u5F00\u540E\u662F\u63CF\u8FB9\u201C\u6536\u8D77 \u2303\u201D\uFF1B\u6587\u5B57\u94FE\u63A5\u5C55\u5F00\u65F6\u662F\u91D1\u8272\u5C0F\u80F6\u56CA\uFF0C\u7BAD\u5934\u671D\u4E0A */\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge[aria-expanded="true"] {background:#fffdf7;color:#8b6615;border:1px solid #c9a44a;gap:3px}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge[aria-expanded="true"]:hover {background:#f8f0d5}\n#cxds-panel.lt-ui.lt-v4 .lt-v3-recharge .lt-icon {width:12px;height:12px;stroke-width:2.4;transform:rotate(180deg)}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link {padding:2px 8px;margin:0 -8px;border-radius:999px;text-decoration:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link:not(.lt-invite-entry)::after {content:"\u203A";display:inline-block;margin-left:3px;transition:transform .18s}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link[aria-expanded="true"] {background:#f3e7c4;text-decoration:none}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link[aria-expanded="true"]::after {transform:rotate(-90deg)}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-v4-link:hover {text-decoration:none;background:#f8f0d5}\n#cxds-panel.lt-ui.lt-v4 .lt-v4-links .lt-invite-entry {margin-left:auto;margin-right:-8px}\n\n/* \u9762\u677F\u6536\u8D77\u65F6\u5C0F\u9E1F\u65C1\u7684\u6C14\u6CE1\uFF1A\u53F3\u4E0A\u89D2\u5C0F \xD7\uFF0C\u53EA\u5173\u6C14\u6CE1 */\n.lt-ui.lt-pay-bubble {padding-right:30px}\n.lt-ui.lt-pay-bubble-close {position:fixed;z-index:2147483647;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:6px;background:none;color:#bdb6a3;cursor:pointer}\n.lt-ui.lt-pay-bubble-close:hover {background:rgb(255 255 255/12%);color:#fffdf7}\n.lt-ui.lt-pay-bubble-close svg {width:12px;height:12px}\n.lt-ui.lt-pay-bubble-close[hidden] {display:none}\n\n@media (prefers-reduced-motion:reduce) {#cxds-panel.lt-ui.lt-v4 .lt-v4-link::after,#cxds-panel.lt-ui.lt-v4 .lt-close {transition:none}}\n'; var golden_wing_rounds_default = "/* AI\u5B9E\u8DF5\u5F00\u804A\u524D\u9009\u8F6E\u6570\u7684\u5F39\u7A97\uFF08\u5C45\u4E2D\u5361\u7247\uFF09\u4E0E\u8D26\u6237\u533A\u7684\u5B66\u4E60\u901A UID\uFF0C\u6CBF\u7528\u91D1\u8272\u4E3B\u9898\u3002 */\n.lt-ui.lt-rounds {position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;padding:16px;background:rgb(36 35 31/32%);backdrop-filter:blur(2px);font:13px/1.5 var(--lt-font-family,system-ui);color:var(--lt-color-text);animation:lt-rounds-fade .18s ease-out}\n.lt-ui.lt-rounds[hidden] {display:none}\n.lt-ui .lt-rounds-card {width:min(340px,100%);padding:20px 20px 16px;border-radius:16px;background:var(--lt-color-panel);border:1px solid var(--lt-color-border);box-shadow:0 18px 48px rgb(36 35 31/22%);animation:lt-rounds-rise .26s cubic-bezier(.16,1,.3,1)}\n.lt-ui .lt-rounds-eyebrow {margin:0;font-size:11.5px;font-weight:600;color:var(--lt-color-brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.lt-ui .lt-rounds-title {margin:4px 0 0;font-size:18px;line-height:1.35;font-weight:700;color:var(--lt-color-text)}\n.lt-ui .lt-rounds-desc {margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--lt-color-text-secondary)}\n.lt-ui .lt-rounds-stepper {display:flex;align-items:center;justify-content:center;gap:18px;margin:16px 0 0}\n.lt-ui .lt-rounds-step {display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--lt-color-border);border-radius:999px;background:var(--lt-color-secondary);color:var(--lt-color-text);font:500 20px/1 var(--lt-font-family,system-ui);cursor:pointer;transition:background .15s,border-color .15s}\n.lt-ui .lt-rounds-step:hover:not(:disabled) {background:var(--lt-color-hover);border-color:var(--lt-color-control-border)}\n.lt-ui .lt-rounds-step:disabled {opacity:.4;cursor:default}\n.lt-ui .lt-rounds-value {display:flex;align-items:baseline;justify-content:center;gap:4px;min-width:84px}\n.lt-ui .lt-rounds-value b {font-size:40px;line-height:1;font-weight:700;color:var(--lt-color-text);font-variant-numeric:tabular-nums}\n.lt-ui .lt-rounds-value span {font-size:13px;color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-quick {display:flex;justify-content:center;gap:6px;margin:14px 0 0}\n.lt-ui .lt-rounds-chip {min-width:52px;height:28px;padding:0 10px;border:1px solid var(--lt-color-border);border-radius:999px;background:var(--lt-color-panel);color:var(--lt-color-text-secondary);font:600 12px/1 var(--lt-font-family,system-ui);cursor:pointer;transition:background .15s,border-color .15s,color .15s}\n.lt-ui .lt-rounds-chip:hover:not(:disabled) {border-color:var(--lt-color-control-border);color:var(--lt-color-text)}\n.lt-ui .lt-rounds-chip.is-on {background:var(--lt-color-selected);border-color:#e3c86d;color:var(--lt-color-brand)}\n.lt-ui .lt-rounds-chip:disabled {opacity:.35;cursor:default}\n.lt-ui .lt-rounds-summary {display:flex;justify-content:space-between;align-items:center;margin:16px 0 0;padding:9px 12px;border-radius:10px;background:#fbf9f3;border:1px solid #e6dfce;font-size:12.5px}\n.lt-ui .lt-rounds-summary span:first-child {font-weight:700;color:var(--lt-color-brand)}\n.lt-ui .lt-rounds-balance {color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-summary.is-short {background:var(--lt-color-warning-bg);border-color:#f0cfa6}\n.lt-ui .lt-rounds-summary.is-short .lt-rounds-balance {color:var(--lt-color-warning);font-weight:600}\n.lt-ui .lt-rounds-note {margin:8px 0 0;font-size:11.5px;line-height:1.55;color:var(--lt-color-text-muted)}\n.lt-ui .lt-rounds-summary.is-short + .lt-rounds-note {color:var(--lt-color-warning)}\n.lt-ui .lt-rounds-note[hidden] {display:none}\n.lt-ui .lt-rounds-actions {display:flex;gap:8px;margin:16px 0 0}\n.lt-ui .lt-rounds-cancel {flex:0 0 auto;min-height:38px;padding:0 14px}\n.lt-ui .lt-rounds-start {flex:1;min-height:38px;font-size:13.5px;font-weight:600}\n@keyframes lt-rounds-fade {from{opacity:0}to{opacity:1}}\n@keyframes lt-rounds-rise {from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce) {.lt-ui.lt-rounds,.lt-ui .lt-rounds-card {animation:none}.lt-ui .lt-rounds-step,.lt-ui .lt-rounds-chip {transition:none}}\n\n/* \u8D26\u6237\u533A\u9876\u90E8\u7684\u5B66\u4E60\u901A UID\uFF1A\u79EF\u5206\u6309\u5B66\u4E60\u901A\u53F7\u5206\u5F00\u3002 */\n#cxds-panel.lt-ui .lt-uid-line {display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:11.5px;line-height:1.4;color:var(--lt-color-text-muted)}\n#cxds-panel.lt-ui .lt-uid-line b {font-weight:600;color:var(--lt-color-text);font-variant-numeric:tabular-nums;letter-spacing:.2px}\n#cxds-panel.lt-ui .lt-uid-line.is-missing b {font-weight:500;color:var(--lt-color-warning)}\n"; function installUiStyles(doc) { if (doc.getElementById("lt-ui-foundation-style")) return; const style = doc.createElement("style"); style.id = "lt-ui-foundation-style"; style.textContent = `${tokens_default} ${components_default} ${runtime_default} ${golden_wing_default} ${golden_wing_v3_default} ${golden_wing_v31_default} ${golden_wing_v4_default} ${golden_wing_invite_default} ${golden_wing_pay_default} ${golden_wing_close_default} ${golden_wing_rounds_default}`; (doc.head || doc.documentElement).append(style); } var iconSvg = Object.freeze({ "x": '\n \n \n', "list": '\n \n \n \n \n \n \n', "refresh-cw": '\n \n \n \n \n', "chevron-down": '\n \n', "circle-check": '\n \n \n' }); function applyPanelHints(panel) { const aiHelp = panel.querySelector("#drip-ai-help"); aiHelp.classList.add("lt-help-copy"); aiHelp.innerHTML = '\u5F00\u542F\u540E\u81EA\u52A8\u9009\u586B\u53EF\u8BC6\u522B\u7684\u6D4B\u9A8C\u6216\u4F5C\u4E1A\uFF0C\u5E76\u5C1D\u8BD5\u63D0\u4EA4\uFF1BAI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\u3002\u5173\u95ED\u540E\u4E0D\u518D\u4F5C\u7B54\uFF0C\u6B63\u5728\u7B54\u7684\u90A3\u9898\u4ECD\u4F1A\u6263\u5206\u3002'; const [usage, payment] = panel.querySelectorAll(".drip-credit-help"); usage.classList.add("lt-help-copy"); usage.innerHTML = '
  • AI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\uFF0C\u9898\u76EE\u957F\u77ED\u90FD\u4E00\u6837
  • \u5237\u89C6\u9891\u3001\u770B\u6587\u6863\u514D\u8D39\uFF0C\u4E0D\u6263\u79EF\u5206
'; payment.classList.add("lt-help-copy"); payment.innerHTML = '\u5361\u5BC6\u9700\u53E6\u5916\u8D2D\u4E70\uFF0C\u5151\u6362\u53EA\u52A0\u79EF\u5206\uFF0C\u4E0D\u4F1A\u6263\u6B3E\u3002'; } function accountUxState({ identity, licensed, balance, account = {} }) { if (!identity) return { state: "warning", title: "\u672A\u8BC6\u522B\u5B66\u4E60\u901A\u8D26\u53F7", next: "\u8BF7\u5148\u767B\u5F55\u5B66\u4E60\u901A\uFF0C\u518D\u5237\u65B0\u9875\u9762\u3002" }; if (!licensed) return { state: "waiting", title: "\u8D26\u6237\u521D\u59CB\u5316\u4E2D", next: "\u7B49\u5F85\u8D26\u6237\u521D\u59CB\u5316\uFF1B\u5DF2\u6709\u5361\u5BC6\u53EF\u5728\u4E0B\u65B9\u5151\u6362\u3002" }; if (!Number.isFinite(balance)) return { state: "waiting", title: "\u79EF\u5206\u540C\u6B65\u4E2D", next: "\u7B49\u5F85\u540C\u6B65\uFF0C\u6216\u70B9\u51FB\u5237\u65B0\u79EF\u5206\uFF1B\u672A\u77E5\u4F59\u989D\u4E0D\u7B49\u4E8E\u96F6\u79EF\u5206\u3002" }; if (Number(account.dailyLimitPoints) > 0 && Number.isFinite(account.dailyRemainingPoints) && account.dailyRemainingPoints <= 0) return { state: "warning", title: "\u4ECA\u65E5 AI \u989D\u5EA6\u5DF2\u7528\u5B8C", next: "\u7B49\u5F85\u989D\u5EA6\u6062\u590D\uFF1B\u4F59\u989D\u4FDD\u7559\uFF0C\u5145\u503C\u4E0D\u4F1A\u6062\u590D\u4ECA\u65E5\u989D\u5EA6\u3002" }; if (balance <= 0) return { state: "warning", title: "AI \u79EF\u5206\u4E0D\u8DB3", next: "AI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\uFF0C\u5151\u6362\u5361\u5BC6\u5373\u53EF\u5145\u503C\uFF1B\u5237\u89C6\u9891\u3001\u770B\u6587\u6863\u514D\u8D39\u3002" }; return { state: "ready", title: "AI \u79EF\u5206\u53EF\u7528", next: "" }; } function pageNextStep({ path = "", course, account, aiEnabled, aiState, aiBadge, readOnly = false }) { if (readOnly) return "\u5F53\u524D\u4E3A\u5DF2\u63D0\u4EA4\u6216\u6279\u9605\u7ED3\u679C\u9875\uFF0C\u4E0D\u91CD\u65B0\u53D1\u8D77 AI \u4F5C\u7B54\u3002"; if (aiBadge === "\u5F85\u786E\u8BA4") return "\u4E0B\u4E00\u6B65\uFF1A\u7B49\u5F85\u5E73\u53F0\u786E\u8BA4\u63D0\u4EA4\uFF1B\u5C1A\u672A\u786E\u8BA4\u6210\u529F\u65F6\uFF0C\u5148\u68C0\u67E5\u5F53\u524D\u6D4B\u9A8C\u3002"; if (aiState === "running" || aiState === "paused" || aiState === "done") return ""; if (path === "/base") return "\u4E0B\u4E00\u6B65\uFF1A\u5728\u5B66\u4E60\u901A\u8BFE\u7A0B\u5217\u8868\u4E2D\u9009\u62E9\u4E00\u95E8\u8BFE\u7A0B\u3002"; if (course) return `\u4E0B\u4E00\u6B65\uFF1A${course.next}`; if (account.state !== "ready") return `\u4E0B\u4E00\u6B65\uFF1A${account.next}`; if (!aiEnabled) return "AI \u5DF2\u5173\u95ED\uFF1B\u53EF\u624B\u52A8\u4F5C\u7B54\uFF0C\u6216\u4E86\u89E3\u4E0B\u65B9\u8BF4\u660E\u540E\u5F00\u542F AI\u3002"; return "\u4E0B\u4E00\u6B65\uFF1A\u6253\u5F00\u9700\u8981\u5904\u7406\u7684\u6D4B\u9A8C\u6216\u4F5C\u4E1A\uFF1BAI \u4F1A\u81EA\u52A8\u68C0\u6D4B\u9898\u76EE\u3002"; } function panelUxSummary({ path = "", course, account, aiEnabled, aiState, aiBadge, aiTitle, aiDescription, readOnly = false }) { const courseActive = course && ["running", "done", "error"].includes(course.state); let title = courseActive ? course.title : readOnly ? "\u5F53\u524D\u4E3A\u7ED3\u679C\u9875\uFF0C\u4E0D\u91CD\u590D\u4F5C\u7B54" : aiState === "running" || aiState === "paused" || aiBadge === "\u5F85\u786E\u8BA4" ? aiTitle : path === "/base" ? "\u5C1A\u672A\u9009\u62E9\u8BFE\u7A0B" : !aiEnabled ? "AI \u5DF2\u5173\u95ED" : account.state !== "ready" ? account.title : aiTitle || "\u7B49\u5F85\u6D4B\u9A8C\u6216\u4F5C\u4E1A"; const state = courseActive ? course.state : aiBadge === "\u5F85\u786E\u8BA4" ? "waiting" : aiState === "paused" ? "error" : aiState === "running" ? "running" : account.state === "warning" && aiEnabled ? "warning" : "waiting"; let next; if (readOnly) next = pageNextStep({ readOnly: true }); else if (aiBadge === "\u5F85\u786E\u8BA4") next = pageNextStep({ aiBadge }); else if (aiState === "paused" && aiEnabled) next = "\u4E0B\u4E00\u6B65\uFF1A\u68C0\u67E5\u5F53\u524D\u6D4B\u9A8C\u548C AI \u4E0E\u79EF\u5206\u8BB0\u5F55\uFF1B\u8BF7\u6C42\u8D85\u65F6\u4E0D\u4EE3\u8868\u672A\u6263\u5206\u3002"; else if (aiState === "running") next = aiDescription || "\u7B49\u5F85\u672C\u9898\u7B54\u6848\u8FD4\u56DE\uFF1B\u63D0\u4EA4\u7ED3\u679C\u4ECD\u9700\u5B66\u4E60\u901A\u786E\u8BA4\u3002"; else if (courseActive) next = `\u4E0B\u4E00\u6B65\uFF1A${course.next}`; else if (aiEnabled && account.state !== "ready") next = `\u4E0B\u4E00\u6B65\uFF1A${account.next}`; else if (!aiEnabled && path !== "/base") next = "\u53EF\u5728\u5B66\u4E60\u901A\u4E2D\u624B\u52A8\u4F5C\u7B54\uFF1B\u8BFE\u7A0B\u8F85\u52A9\u6309\u539F\u8BBE\u7F6E\u7EE7\u7EED\u8FD0\u884C\u3002"; else next = pageNextStep({ path, course, account, aiEnabled, aiState }); return { title, state, next }; } function chargeReceipt(usage, balance, question = "") { const points = usage == null ? void 0 : usage.consumedPoints; if (!Number.isSafeInteger(points) || points < 0 || !Number.isFinite(balance) || balance < 0) return null; const cached = usage.cached === true; return { points, balance, cached, question, text: cached ? `${question}\u4F7F\u7528\u539F\u8BF7\u6C42\u7ED3\u679C\uFF0C\u672C\u6B21\u672A\u91CD\u590D\u6263\u5206\uFF1B\u539F\u8BF7\u6C42\u6263\u9664 ${points} \u79EF\u5206\uFF0C\u4F59\u989D ${balance} \u79EF\u5206` : `${question}\u672C\u9898\u6D88\u8017 ${points} \u79EF\u5206\uFF0C\u5269\u4F59 ${balance} \u79EF\u5206\uFF08AI \u8BF7\u6C42\u5DF2\u8BA1\u8D39\uFF0C\u586B\u5199\u6216\u63D0\u4EA4\u4ECD\u9700\u786E\u8BA4\uFF09` }; } function mountPanelUx(panel, timeline, callbacks = {}) { const doc = panel.ownerDocument; const make = (className, text = "") => { const el = doc.createElement("p"); el.className = className; el.textContent = text; return el; }; const body = panel.querySelector(".cxds-body"); const course = make("lt-ux-course"), next = make("lt-ux-next"); const headline = make("lt-ux-headline"); headline.dataset.uxHeadline = ""; course.dataset.uxCourse = ""; next.dataset.uxNext = ""; next.setAttribute("aria-live", "polite"); body.prepend(headline, course, next); const aiIdle = make("lt-ux-ai-idle"); aiIdle.hidden = true; next.after(aiIdle); const aiNote = make("lt-ux-ai-switch-note"); aiNote.id = "lt-ux-ai-switch-note"; aiNote.setAttribute("role", "status"); panel.querySelector("#drip-ai-help").after(aiNote); panel.querySelector('[data-action="ai-toggle"]').setAttribute("aria-describedby", "drip-ai-help lt-ux-ai-switch-note"); const originalStatus = panel.querySelector(".cxds-status-banner"); originalStatus.hidden = true; const feedback = make("lt-ux-feedback"); feedback.dataset.uxFeedback = ""; feedback.setAttribute("role", "status"); panel.querySelector(".cxds-license-box").append(feedback); const receipt = make("lt-ux-receipt"); receipt.dataset.uxReceipt = ""; receipt.setAttribute("role", "status"); const receiptCopy = doc.createElement("strong"), receiptBalance = doc.createElement("span"), receiptNote = doc.createElement("small"); receiptBalance.className = "lt-v3-receipt-balance"; receiptNote.textContent = "AI \u8BF7\u6C42\u5DF2\u8BA1\u8D39\uFF1B\u586B\u5199\u6216\u63D0\u4EA4\u4ECD\u9700\u5E73\u53F0\u786E\u8BA4\u3002"; receipt.append(receiptCopy, receiptBalance, receiptNote); panel.querySelector(".cxds-license-box").append(receipt); const collapse = make("lt-ux-collapse", "\u6536\u8D77\u9762\u677F\u4E0D\u505C\u6B62\u8FD0\u884C\uFF1BAI \u5F00\u5173\u53EA\u63A7\u5236 AI\uFF0C\u540E\u53F0\u6302\u673A\u4E0D\u63A7\u5236\u8BFE\u7A0B\u5B66\u4E60\u3002"); panel.append(collapse); panel.querySelector(".lt-runtime-account-row").after(receipt, feedback); const setText = (el, value) => { if (el.textContent !== value) el.textContent = value; }; const hide = (el, value) => { if (el.hidden !== value) el.hidden = value; }; const courseObservers = /* @__PURE__ */ new Map(); const render = () => { var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; const context = ((_a = callbacks.getUxContext) == null ? void 0 : _a.call(callbacks)) || { path: doc.location.pathname, documents: [doc] }; let account = accountUxState({ identity: (_b = callbacks.getChaoxingIdentity) == null ? void 0 : _b.call(callbacks), licensed: (_c = callbacks.hasLicense) == null ? void 0 : _c.call(callbacks), balance: (_d = callbacks.getBalance) == null ? void 0 : _d.call(callbacks), account: (_e = callbacks.getAccountSnapshot) == null ? void 0 : _e.call(callbacks) }); const enabled = panel.querySelector('[data-action="ai-toggle"]').getAttribute("aria-checked") === "true"; let snapshot; const documents = context.documents || [doc]; const roots = new Set(documents.map((candidate) => candidate.documentElement)); for (const [root, observer] of courseObservers) { if (!roots.has(root)) { observer.disconnect(); courseObservers.delete(root); } } for (const candidate of documents) { if (!candidate.documentElement) continue; if (!courseObservers.has(candidate.documentElement)) { const observer = new MutationObserver(render); observer.observe(candidate.documentElement, { attributes: true, attributeFilter: ["data-drip-ux-course"] }); courseObservers.set(candidate.documentElement, observer); } try { snapshot = JSON.parse(candidate.documentElement.dataset.dripUxCourse || "null"); } catch (e) { } if (snapshot) break; } if (!snapshot || !["done", "running", "waiting", "error"].includes(snapshot.state) || typeof snapshot.title !== "string" || typeof snapshot.next !== "string") snapshot = null; setText(course, snapshot ? `\u8BFE\u7A0B\u72B6\u6001\uFF1A${snapshot.title}` : context.path === "/base" ? "\u8BFE\u7A0B\u72B6\u6001\uFF1A\u5C1A\u672A\u9009\u62E9\u8BFE\u7A0B" : "\u8BFE\u7A0B\u72B6\u6001\uFF1A\u7B49\u5F85\u8BFB\u53D6\u5F53\u524D\u4EFB\u52A1"); hide(course, !snapshot && !/studentstudy|studentcourse|^\/base$/.test(context.path)); const statusText = ((_f = originalStatus.querySelector("[data-status-text]")) == null ? void 0 : _f.textContent) || ""; if (/账户同步失败|初始化失败/.test(statusText)) account = { state: "warning", title: "\u8D26\u6237\u540C\u6B65\u5931\u8D25", next: "\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5\uFF0C\u5F53\u524D\u672A\u786E\u8BA4\u79EF\u5206\u53EF\u7528\u3002" }; const current = panel.querySelector(".drip-current"); const aiState = current.dataset.state; if (context.readOnly || enabled && aiState === "recorded" && account.state !== "ready") { setText(current.querySelector("[data-current-title]"), context.readOnly ? "\u5F53\u524D\u4E3A\u7ED3\u679C\u9875\uFF0C\u4E0D\u91CD\u590D\u4F5C\u7B54" : account.title); setText(current.querySelector("[data-current-description]"), context.readOnly ? "\u7ED3\u679C\u9875\u4E0D\u4F1A\u91CD\u65B0\u8BF7\u6C42 AI\uFF1B\u53EF\u67E5\u770B\u5B66\u4E60\u901A\u8FD4\u56DE\u7684\u7ED3\u679C\u3002" : account.next); setText(current.querySelector("[data-current-state]"), context.readOnly ? "\u4E0D\u4F5C\u7B54" : "\u5F85\u5C31\u7EEA"); } const summary = panelUxSummary({ ...context, course: snapshot, account, aiEnabled: enabled, aiState, aiBadge: current.querySelector("[data-current-state]").textContent, aiTitle: current.querySelector("[data-current-title]").textContent, aiDescription: current.querySelector("[data-current-description]").textContent }); setText(headline, summary.title); headline.dataset.state = summary.state; setText(next, summary.next); const badge = current.querySelector("[data-current-state]").textContent; const courseShown = Boolean(snapshot) && /\/mycourse\/studentstudy$/.test(context.path) && !context.readOnly && enabled && account.state === "ready" && !["running", "paused"].includes(aiState) && badge !== "\u5F85\u786E\u8BA4"; hide(headline, courseShown); hide(next, courseShown || !summary.next); setText(aiIdle, "AI \u5F85\u547D\uFF1A\u68C0\u6D4B\u5230\u6D4B\u9A8C\u6216\u4F5C\u4E1A\u4F1A\u81EA\u52A8\u5904\u7406\u3002\u8BFE\u7A0B\u8FDB\u5EA6\u89C1\u5DE6\u4FA7\u8BFE\u7A0B\u533A\u3002"); hide(aiIdle, !courseShown); panel.dataset.courseState = (snapshot == null ? void 0 : snapshot.state) || "unknown"; panel.dataset.coursePercent = Number.isInteger(snapshot == null ? void 0 : snapshot.percent) && snapshot.percent >= 0 && snapshot.percent <= 100 ? String(snapshot.percent) : ""; setText(aiNote, enabled ? "\u5173\u6389 AI \u540E\uFF0C\u6B63\u5728\u7B54\u7684\u90A3\u9898\u4ECD\u4F1A\u6263 1 \u79EF\u5206\u3002" : "AI \u5DF2\u5173\u95ED\uFF0C\u4E4B\u540E\u4E0D\u518D\u6263\u79EF\u5206\u3002"); current.dataset.confirmed = String(panel.querySelector("[data-submission-state]").dataset.confirmed === "true" && current.querySelector("[data-current-state]").textContent !== "\u5F85\u786E\u8BA4"); const balanceState = panel.querySelector("[data-license-state]"); setText(balanceState, account.title); balanceState.dataset.uxState = account.state; const operation = [...timeline.source.children].findLast((row) => /积分已刷新|兑换成功|卡密无效|卡密已|请输入卡密/.test(row.textContent) || row.classList.contains("cxds-error") && !/第\s*\d+\s*\/\s*\d+\s*题/.test(row.textContent)); const operationText = (operation == null ? void 0 : operation.textContent.replace(/^\[\d{2}:\d{2}:\d{2}\]\s*/, "")) || ""; const meaningful = Boolean(operationText) || Boolean(statusText.trim()) && !/^(准备就绪|正在运行|AI 正在处理作业|平台已确认提交完成)$/.test(statusText) && !/查看运行日志|正在初始化|积分不足/.test(statusText); setText(feedback, meaningful ? `\u64CD\u4F5C\u53CD\u9988\uFF1A${operationText || statusText}` : ""); hide(feedback, !meaningful); const latest = [...timeline.source.children].findLast((row) => row.dataset.chargePoints !== void 0); const data = latest == null ? void 0 : latest.dataset; const confirmed = data && chargeReceipt({ consumedPoints: Number(data.chargePoints), cached: data.chargeCached === "true" }, Number(data.chargeBalance), data.chargeQuestion + " \xB7 "); if (confirmed) { setText(receiptCopy, confirmed.cached ? `${data.chargeQuestion} \xB7 \u6CBF\u7528\u539F\u8BF7\u6C42\uFF0C\u672C\u6B21\u4E0D\u91CD\u590D\u6263\u8D39` : `${data.chargeQuestion} \xB7 \u672C\u6B21\u6D88\u8017 ${confirmed.points} \u79EF\u5206`); setText(receiptBalance, `\u4F59\u989D ${confirmed.balance}`); if (receipt.title !== confirmed.text) receipt.title = confirmed.text; } hide(receipt, !confirmed); panel.querySelector("[data-balance]").dataset.uxKnown = String(Boolean((_g = callbacks.hasLicense) == null ? void 0 : _g.call(callbacks)) && Number.isFinite((_h = callbacks.getBalance) == null ? void 0 : _h.call(callbacks))); if (!((_i = callbacks.hasLicense) == null ? void 0 : _i.call(callbacks)) || !Number.isFinite((_j = callbacks.getBalance) == null ? void 0 : _j.call(callbacks))) setText(panel.querySelector("[data-balance]"), "\u2014"); const courses = panel.querySelector('[data-action="courses"]'); if (((_k = courses.lastChild) == null ? void 0 : _k.nodeType) === 3) { if (courses.lastChild.textContent !== "\u8BFE\u7A0B\u5217\u8868") courses.lastChild.textContent = "\u8BFE\u7A0B\u5217\u8868"; } else courses.append(doc.createTextNode("\u8BFE\u7A0B\u5217\u8868")); panel.querySelector(".drip-current").hidden = false; panel.dataset.courseGuard = typeof (snapshot == null ? void 0 : snapshot.guard) === "boolean" ? String(snapshot.guard) : "unknown"; panel.dispatchEvent(new doc.defaultView.CustomEvent("drip-ux-state")); }; panel.addEventListener("drip-ux-refresh", render); render(); const timer = doc.defaultView.setInterval(() => { if (!doc.hidden) render(); }, 1e3); const onVisible = () => { if (!doc.hidden) render(); }; doc.addEventListener("visibilitychange", onVisible); doc.defaultView.addEventListener("pagehide", () => { doc.defaultView.clearInterval(timer); doc.removeEventListener("visibilitychange", onVisible); courseObservers.forEach((observer) => observer.disconnect()); }, { once: true }); } function mountPanelV3(panel, logo, callbacks = {}) { const doc = panel.ownerDocument; const win = doc.defaultView; const node = (tag, className, text = "") => { const el = doc.createElement(tag); el.className = className; el.textContent = text; return el; }; const action = (name) => panel.querySelector(`[data-action="${name}"]`); const body = panel.querySelector(".cxds-body"); panel.dataset.uiRevision = "golden-wing-v3"; const aiCard = node("section", "lt-v3-ai-card"); const aiRow = panel.querySelector(".lt-runtime-ai-row"); aiRow.before(aiCard); const help = panel.querySelector("#drip-ai-help"); help.textContent = "AI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\uFF1B\u5237\u89C6\u9891\u3001\u770B\u6587\u6863\u514D\u8D39\u3002"; const billing = panel.querySelector(".lt-billing-details"); const aiNote = panel.querySelector(".lt-ux-ai-switch-note"); billing.querySelector(".lt-billing-content").append(aiNote); const headline = panel.querySelector(".lt-ux-headline"); const next = panel.querySelector(".lt-ux-next"); aiCard.append(aiRow, help, headline, next, panel.querySelector(".lt-ux-ai-idle")); action("ai-toggle").querySelector("strong").textContent = "AI \u667A\u80FD\u7B54\u9898"; const account = panel.querySelector(".cxds-license-box"); account.querySelector(".lt-runtime-credit-label").textContent = "\u8D26\u6237\u79EF\u5206"; const quickRecharge = node("button", "lt-button lt-button--primary lt-v3-recharge", "\u5151\u6362\u5361\u5BC6"); quickRecharge.type = "button"; const recharge = panel.querySelector(".drip-recharge"); recharge.id = "lt-v3-recharge"; quickRecharge.setAttribute("aria-controls", recharge.id); const updateRecharge = () => quickRecharge.setAttribute("aria-expanded", String(recharge.open)); quickRecharge.addEventListener("click", () => { if (recharge.open) recharge.open = false; else action("show-recharge").click(); updateRecharge(); }); recharge.addEventListener("toggle", updateRecharge); updateRecharge(); account.querySelector(".lt-runtime-account-row").append(quickRecharge); account.after(billing); const footer = panel.querySelector(".lt-ux-collapse"); footer.classList.add("lt-v3-footer"); footer.replaceChildren(); const footerCopy = node("span", "lt-v3-footer-copy", "\u6536\u8D77\u9762\u677F\u4E0D\u505C\u6B62\u8FD0\u884C"); footer.append(footerCopy, action("courses")); const clampFloatingUi = () => { for (const element of [logo, panel]) { const rect = element.getBoundingClientRect(); const left = Math.max(8, Math.min(rect.left, win.innerWidth - rect.width - 8)); const top = Math.max(8, Math.min(rect.top, win.innerHeight - rect.height - 8)); if (rect.left < 8 || rect.right > win.innerWidth - 8) element.style.left = left + "px"; if (rect.top < 8 || rect.bottom > win.innerHeight - 8) element.style.top = top + "px"; } }; clampFloatingUi(); win.addEventListener("resize", clampFloatingUi); const guide = node("aside", "lt-v3-guide"); const title = node("strong", "", "\u7B2C\u4E00\u6B21\u4F7F\u7528\uFF0C\u5148\u4E86\u89E3\u8FD9\u4E09\u70B9"); const list = node("ul", ""); for (const copy of ["AI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\uFF0C\u5148\u6263\u5206\u518D\u586B\u5199\u3002", "\u5237\u89C6\u9891\u3001\u770B\u6587\u6863\u514D\u8D39\uFF0C\u4E0D\u6263\u79EF\u5206\u3002", "\u7B54\u6848\u8FD4\u56DE\u4E0D\u7B49\u4E8E\u63D0\u4EA4\u6210\u529F\uFF0C\u4EE5\u5B66\u4E60\u901A\u786E\u8BA4\u7ED3\u679C\u4E3A\u51C6\u3002"]) list.append(node("li", "", copy)); const dismiss = node("button", "lt-button lt-button--primary", "\u4E86\u89E3\u4E86"); dismiss.type = "button"; guide.append(title, list, dismiss); let acknowledged = false; try { acknowledged = win.localStorage.getItem("lt-golden-wing-guide-v1") === "seen"; } catch (e) { } guide.hidden = acknowledged; dismiss.addEventListener("click", () => { guide.hidden = true; try { win.localStorage.setItem("lt-golden-wing-guide-v1", "seen"); } catch (e) { } action("ai-toggle").focus(); }); body.prepend(guide); const clear = action("clear-log"); const confirm = node("div", "lt-v3-clear-confirm"); confirm.hidden = true; const message = node("span", "", "\u6E05\u7A7A\u672C\u9875\u663E\u793A\u8BB0\u5F55\uFF1F\u8D26\u6237\u6263\u8D39\u8BB0\u5F55\u4E0D\u53D7\u5F71\u54CD\u3002"); const accept = node("button", "lt-button lt-button--ghost", "\u786E\u8BA4\u6E05\u7A7A"); accept.type = "button"; const cancel = node("button", "lt-button lt-button--ghost", "\u53D6\u6D88"); cancel.type = "button"; confirm.append(message, accept, cancel); clear.parentElement.after(confirm); let accepted = false; clear.addEventListener("click", (event) => { if (accepted) return; event.preventDefault(); event.stopImmediatePropagation(); confirm.hidden = false; accept.focus(); }, true); accept.addEventListener("click", () => { accepted = true; try { clear.click(); } finally { accepted = false; confirm.hidden = true; clear.focus(); } }); cancel.addEventListener("click", () => { confirm.hidden = true; clear.focus(); }); const hud = node("aside", "lt-ui lt-v3-launcher-hud"); hud.dataset.theme = "golden-wing"; hud.id = "lt-launcher-hud"; hud.hidden = true; hud.setAttribute("role", "tooltip"); const hudTitle = node("strong", ""), hudState = node("p", ""), hudAccount = node("p", ""); hud.append(hudTitle, hudState, hudAccount); doc.body.append(hud); logo.setAttribute("aria-describedby", hud.id); const setText = (el, text) => { if (el.textContent !== text) el.textContent = text; }; const sync = () => { var _a; const summary = panel.querySelector(".lt-ux-headline"); const badge = panel.querySelector("[data-current-state]").textContent; const state = badge === "\u5F85\u786E\u8BA4" ? "receipt" : summary.dataset.state || "waiting"; logo.dataset.runtimeState = state; setText(hudTitle, summary.textContent || "\u7B49\u5F85\u8BFB\u53D6\u5F53\u524D\u4EFB\u52A1"); const enabled = action("ai-toggle").getAttribute("aria-checked") === "true"; setText(hudState, `AI ${enabled ? "\u5DF2\u5F00\u542F" : "\u5DF2\u5173\u95ED"} \xB7 ${badge}`); const known = panel.querySelector("[data-balance]").dataset.uxKnown === "true"; const balance = (_a = callbacks.getBalance) == null ? void 0 : _a.call(callbacks); setText(hudAccount, known && Number.isFinite(balance) ? `\u79EF\u5206\u4F59\u989D\uFF1A${balance}` : "\u79EF\u5206\u4F59\u989D\uFF1A\u5F85\u540C\u6B65"); const guard = panel.dataset.courseGuard; setText(footerCopy, guard === "true" ? "\u6302\u673A\u5DF2\u5F00\u542F \xB7 \u6536\u8D77\u4E0D\u505C\u6B62\u8FD0\u884C" : guard === "false" ? "\u6302\u673A\u5DF2\u5173\u95ED \xB7 \u6536\u8D77\u4E0D\u505C\u6B62\u8FD0\u884C" : "\u6536\u8D77\u9762\u677F\u4E0D\u505C\u6B62\u8FD0\u884C"); }; panel.addEventListener("drip-ux-state", sync); sync(); let hoverTimer; const showHud = () => { sync(); const rect = logo.getBoundingClientRect(); const width = Math.min(260, win.innerWidth - 16); hud.style.width = width + "px"; hud.hidden = false; hud.style.left = Math.max(8, Math.min(rect.right - width, win.innerWidth - width - 8)) + "px"; hud.style.top = Math.max(8, Math.min(rect.top - hud.offsetHeight - 10, win.innerHeight - hud.offsetHeight - 8)) + "px"; }; const hideHud = () => { win.clearTimeout(hoverTimer); hud.hidden = true; }; logo.addEventListener("pointerenter", () => { hoverTimer = win.setTimeout(showHud, 300); }); logo.addEventListener("pointerleave", () => { if (doc.activeElement !== logo) hideHud(); }); logo.addEventListener("focus", showHud); logo.addEventListener("blur", hideHud); logo.addEventListener("pointerdown", hideHud); logo.addEventListener("keydown", (event) => { if (event.key === "Escape") hideHud(); }); action("hide").addEventListener("click", () => { logo.focus(); hideHud(); }); logo.addEventListener("click", () => { hideHud(); if (!panel.classList.contains("cxds-hidden")) action("hide").focus(); }); win.addEventListener("resize", hideHud); win.addEventListener("pagehide", () => { win.clearTimeout(hoverTimer); hud.remove(); }, { once: true }); } var SVG_NS = "http://www.w3.org/2000/svg"; var RING_LENGTH = 2 * Math.PI * 30; function mountPanelMotion(panel, logo, timeline) { var _a, _b; const doc = panel.ownerDocument; const win = doc.defaultView; const reduced = () => { var _a2; return Boolean((_a2 = win.matchMedia) == null ? void 0 : _a2.call(win, "(prefers-reduced-motion: reduce)").matches); }; const node = (tag, className) => { const el = doc.createElement(tag); el.className = className; return el; }; const ring = doc.createElementNS(SVG_NS, "svg"); ring.setAttribute("viewBox", "0 0 64 64"); ring.setAttribute("class", "lt-launcher-ring"); ring.setAttribute("aria-hidden", "true"); const circle = (attrs) => { const c = doc.createElementNS(SVG_NS, "circle"); for (const k in attrs) c.setAttribute(k, attrs[k]); return c; }; const ringFg = circle({ class: "lt-ring-fg", cx: 32, cy: 32, r: 30, "stroke-dasharray": RING_LENGTH.toFixed(2), "stroke-dashoffset": RING_LENGTH.toFixed(2) }); ring.append(circle({ class: "lt-ring-bg", cx: 32, cy: 32, r: 30 }), ringFg); const orbit = node("span", "lt-launcher-orbit"); orbit.setAttribute("aria-hidden", "true"); const badge = node("span", "lt-launcher-badge"); badge.textContent = "!"; badge.setAttribute("aria-hidden", "true"); logo.append(ring, orbit, badge); const aiCard = panel.querySelector(".lt-v3-ai-card"); const thinking = node("span", "lt-ai-thinking"); thinking.setAttribute("aria-hidden", "true"); thinking.append(doc.createElement("i"), doc.createElement("i"), doc.createElement("i")); const steps = node("div", "lt-ai-steps"); steps.hidden = true; steps.setAttribute("aria-hidden", "true"); (_a = aiCard == null ? void 0 : aiCard.querySelector(".lt-runtime-ai-row")) == null ? void 0 : _a.after(thinking); aiCard == null ? void 0 : aiCard.append(steps); let reported = null; win.addEventListener("drip-ai-question-progress", (event) => { const detail = event.detail || {}; const current = Number(detail.current), total = Number(detail.total); reported = detail.active && Number.isInteger(current) && Number.isInteger(total) && total > 0 && total <= 200 && current >= 1 && current <= total ? { current, total } : null; sync(); }); const questionProgress = () => { var _a2; if (reported) return reported; const rows = [...((_a2 = timeline == null ? void 0 : timeline.source) == null ? void 0 : _a2.children) || []]; const start = rows.findLastIndex((row) => /收到挂机任务|\[自动答题\]|识别到\s*\d+\s*道/.test(row.textContent)); let current = 0, total = 0; for (const row of rows.slice(Math.max(0, start))) { const match = row.textContent.match(/第\s*(\d+)\s*\/\s*(\d+)\s*题/); if (match) { current = Math.max(current, Number(match[1])); total = Number(match[2]); } } return total > 0 && total <= 200 ? { current, total } : null; }; const sync = () => { var _a2, _b2, _c; const current = panel.querySelector(".drip-current"); const rawAiState = (current == null ? void 0 : current.dataset.state) || ""; const progressNow = rawAiState === "running" ? questionProgress() : null; const aiState = rawAiState === "running" && !progressNow && !/题|轮/.test(((_a2 = current == null ? void 0 : current.querySelector("[data-current-title]")) == null ? void 0 : _a2.textContent) || "") ? "recorded" : rawAiState; const badgeText = ((_b2 = current == null ? void 0 : current.querySelector("[data-current-state]")) == null ? void 0 : _b2.textContent) || ""; const courseState = panel.dataset.courseState; const headlineState = (_c = panel.querySelector(".lt-ux-headline")) == null ? void 0 : _c.dataset.state; const motion = aiState === "running" ? "ai" : courseState === "running" ? "run" : courseState === "done" ? "done" : "wait"; if (logo.dataset.motion !== motion) logo.dataset.motion = motion; const attention = aiState === "paused" || badgeText === "\u5F85\u786E\u8BA4" || ["warning", "error"].includes(headlineState) || courseState === "error"; if (logo.dataset.attention !== String(attention)) logo.dataset.attention = String(attention); const percent = panel.dataset.coursePercent === "" ? NaN : Number(panel.dataset.coursePercent); if (Number.isFinite(percent)) { logo.dataset.ring = ""; const offset = (RING_LENGTH * (1 - percent / 100)).toFixed(2); if (ringFg.getAttribute("stroke-dashoffset") !== offset) ringFg.setAttribute("stroke-dashoffset", offset); } else delete logo.dataset.ring; if (aiCard && aiCard.dataset.ai !== aiState) aiCard.dataset.ai = aiState; const progress = aiState === "running" ? progressNow : null; steps.hidden = !progress; if (progress) { if (steps.children.length !== progress.total) steps.replaceChildren(...Array.from({ length: progress.total }, () => doc.createElement("i"))); [...steps.children].forEach((step, index) => { const value = index < progress.current - 1 ? "done" : index === progress.current - 1 ? "current" : ""; if ((step.dataset.step || "") !== value) step.dataset.step = value; }); } tryDock(); placeOrigin(); }; const placeOrigin = () => { const left = parseFloat(panel.style.left), top = parseFloat(panel.style.top), l = logo.getBoundingClientRect(); if (!Number.isFinite(left) || !Number.isFinite(top)) return; const origin = `${Math.round(l.left + l.width / 2 - left)}px ${Math.round(l.top + l.height / 2 - top)}px`; if (panel.style.getPropertyValue("--lt-panel-origin") !== origin) panel.style.setProperty("--lt-panel-origin", origin); }; const catalog = () => { const tree = doc.getElementById("coursetree"); const rect = tree == null ? void 0 : tree.getBoundingClientRect(); return rect && rect.width > 0 && rect.height > 0 ? rect : null; }; const dockBesideCatalog = () => { const cat = catalog(); if (!cat) return false; const l = logo.getBoundingClientRect(); const overlaps = l.right > cat.left && l.left < cat.right && l.bottom > cat.top && l.top < cat.bottom; if (!overlaps) return true; const left = Math.max(8, cat.left - l.width - 16); logo.style.left = `${left}px`; logo.style.top = `${Math.max(8, l.top)}px`; logo.style.right = "auto"; logo.style.bottom = "auto"; return true; }; let dragged = false, downAt = null; const tryDock = () => { if (!dragged) dockBesideCatalog(); }; logo.addEventListener("pointerdown", () => { const r = logo.getBoundingClientRect(); downAt = `${r.left},${r.top}`; }); logo.addEventListener("pointerup", () => { const r = logo.getBoundingClientRect(); if (downAt !== null && downAt !== `${r.left},${r.top}`) dragged = true; downAt = null; }); tryDock(); win.addEventListener("resize", () => win.setTimeout(tryDock, 0)); const balance = panel.querySelector("[data-balance]"); let shown = Number(balance == null ? void 0 : balance.textContent), frame = 0, balanceWatch = null; const rollTo = (from, to) => { win.cancelAnimationFrame(frame); const delta = to - from; if (delta !== 0 && Number.isFinite(from)) { const chip = node("span", `lt-balance-delta${delta > 0 ? " is-gain" : ""}`); chip.textContent = `${delta > 0 ? "+" : "\u2212"}${Math.abs(delta)} \u79EF\u5206`; balance.parentElement.append(chip); win.setTimeout(() => chip.remove(), 1700); } if (reduced() || !Number.isFinite(from)) return; const started = win.performance.now(); const step = (now) => { const k = Math.min(1, (now - started) / 900), eased = 1 - Math.pow(1 - k, 3); balance.textContent = String(Math.round(from + delta * eased)); balanceWatch == null ? void 0 : balanceWatch.takeRecords(); if (k < 1) frame = win.requestAnimationFrame(step); }; frame = win.requestAnimationFrame(step); }; if (balance) (balanceWatch = new MutationObserver(() => { const next = Number(balance.textContent); if (!Number.isFinite(next) || balance.textContent.trim() === "") { win.cancelAnimationFrame(frame); shown = NaN; return; } if (next === shown) return; const from = shown; shown = next; if (Number.isFinite(from)) rollTo(from, next); })).observe(balance, { childList: true, characterData: true, subtree: true }); const receiptCopy = panel.querySelector(".lt-ux-receipt strong"); if (receiptCopy) new MutationObserver(() => { const receipt = receiptCopy.closest(".lt-ux-receipt"); receipt.classList.remove("is-new"); void receipt.offsetWidth; receipt.classList.add("is-new"); }).observe(receiptCopy, { childList: true, characterData: true, subtree: true }); (_b = panel.querySelector('[data-action="refresh-balance"]')) == null ? void 0 : _b.addEventListener("click", (event) => { const button = event.currentTarget; button.classList.remove("is-spinning"); void button.offsetWidth; button.classList.add("is-spinning"); win.setTimeout(() => button.classList.remove("is-spinning"), 800); }); panel.addEventListener("drip-ux-state", sync); new MutationObserver(placeOrigin).observe(panel, { attributes: true, attributeFilter: ["class"] }); logo.addEventListener("pointerup", () => win.setTimeout(placeOrigin, 0)); sync(); } function mountPanelSimple(panel) { var _a; const doc = panel.ownerDocument; const win = doc.defaultView; const node = (tag, className, text = "") => { const el = doc.createElement(tag); el.className = className; el.textContent = text; return el; }; const action = (name) => panel.querySelector(`[data-action="${name}"]`); const body = panel.querySelector(".cxds-body"); panel.classList.add("lt-v4"); const hero = node("section", "lt-v4-hero"); hero.setAttribute("aria-live", "polite"); const icon = node("span", "lt-v4-icon"); icon.setAttribute("aria-hidden", "true"); const copy = node("div", "lt-v4-copy"); const title = node("b", "lt-v4-title"); const desc = node("small", "lt-v4-desc"); copy.append(title, desc); const cta = node("button", "lt-button lt-button--primary lt-v4-cta"); cta.type = "button"; cta.hidden = true; hero.append(icon, copy); const guide = body.querySelector(".lt-v3-guide"); (guide ? guide.after.bind(guide) : body.prepend.bind(body))(hero); hero.after(cta); let ctaAction = null; cta.addEventListener("click", () => ctaAction == null ? void 0 : ctaAction.click()); const aiToggle = action("ai-toggle"); aiToggle.querySelector("strong").textContent = "AI \u7B54\u9898"; const aiRow = panel.querySelector(".lt-runtime-ai-row"); const aiText = node("small", "lt-v4-ai-text"); (_a = aiToggle.querySelector(".drip-ai-copy")) == null ? void 0 : _a.append(aiText); const recharge = panel.querySelector(".lt-v3-recharge"); if (recharge) recharge.textContent = "\u5145\u503C"; const drawer = panel.querySelector(".drip-recharge-content"); const paymentHelp = drawer == null ? void 0 : drawer.querySelector(".drip-credit-help"); const paymentHelpHtml = (paymentHelp == null ? void 0 : paymentHelp.innerHTML) || ""; const shopRow = node("div", "lt-v4-shop"); const shopText = node("span", "", "\u8FD8\u6CA1\u6709\u5361\u5BC6\uFF1F\u8BF7\u8054\u7CFB\u5356\u5BB6\u8D2D\u4E70"); const shopButton = node("button", "lt-button lt-button--ghost lt-v4-shop-link", "\u53BB\u5E97\u94FA\u8D2D\u4E70 \u2197"); shopButton.type = "button"; shopButton.hidden = true; shopRow.append(shopText, shopButton); drawer == null ? void 0 : drawer.prepend(shopRow); let shopUrl = ""; shopButton.addEventListener("click", () => { if (shopUrl) win.open(shopUrl, "_blank", "noopener,noreferrer"); }); const safeShopUrl = (value) => { try { const url = new URL(String(value || "")); return url.protocol === "https:" && !url.username && !url.password ? url.href : ""; } catch (e) { return ""; } }; const applyConfig = (config) => { shopUrl = safeShopUrl(config == null ? void 0 : config.shopUrl); shopButton.hidden = !shopUrl; shopText.textContent = shopUrl ? "\u8FD8\u6CA1\u6709\u5361\u5BC6\uFF1F" : "\u8FD8\u6CA1\u6709\u5361\u5BC6\uFF1F\u8BF7\u8054\u7CFB\u5356\u5BB6\u8D2D\u4E70"; if (paymentHelp) paymentHelp.innerHTML = shopUrl ? '\u4ED8\u6B3E\u540E\u5E97\u94FA\u81EA\u52A8\u53D1\u5361\uFF0C\u590D\u5236\u56DE\u6765\u7C98\u8D34\u5151\u6362\uFF1B\u5151\u6362\u53EA\u52A0\u79EF\u5206\uFF0C\u4E0D\u4F1A\u6263\u6B3E\u3002' : paymentHelpHtml; }; win.addEventListener("drip7boi:config", (event) => applyConfig(event.detail)); if (win.__dripLastConfig) applyConfig(win.__dripLastConfig); const last = node("p", "lt-v4-last"); const lastText = node("span", ""); last.append(lastText); const links = node("div", "lt-v4-links"); const billing = panel.querySelector(".lt-billing-details"); const records = panel.querySelector(".lt-record-details"); const link = (label, details) => { const button = node("button", "lt-v4-link", label); button.type = "button"; button.setAttribute("aria-expanded", "false"); button.addEventListener("click", () => { details.open = !details.open; if (details.open) win.requestAnimationFrame(() => details.scrollIntoView({ block: "nearest", behavior: "smooth" })); }); details.addEventListener("toggle", () => button.setAttribute("aria-expanded", String(details.open))); return button; }; if (billing) billing.open = false; if (records) records.open = false; links.append(link("\u8BA1\u8D39\u8BF4\u660E", billing), link("\u5168\u90E8\u8BB0\u5F55", records)); const account = panel.querySelector(".cxds-license-box"); account.after(last, links); const strip = (text) => String(text || "").replace(/^下一步:/, "").replace(/。$/, ""); const setText = (el, text) => { if (el.textContent !== text) el.textContent = text; }; const sync = () => { var _a2, _b, _c, _d, _e; const current = panel.querySelector(".drip-current"); const aiState = (current == null ? void 0 : current.dataset.state) || ""; const badge = ((_a2 = current == null ? void 0 : current.querySelector("[data-current-state]")) == null ? void 0 : _a2.textContent) || ""; const currentTitle = ((_b = current == null ? void 0 : current.querySelector("[data-current-title]")) == null ? void 0 : _b.textContent) || ""; const enabled = aiToggle.getAttribute("aria-checked") === "true"; const headline = panel.querySelector(".lt-ux-headline"); const next = strip((_c = panel.querySelector(".lt-ux-next")) == null ? void 0 : _c.textContent); const courseState = panel.dataset.courseState; const task = String(((_d = panel.querySelector("[data-current-task]")) == null ? void 0 : _d.textContent) || "").replace(/^当前(章节|测验)\s*·\s*/, ""); const steps = panel.querySelector(".lt-ai-steps"); const progress = steps && !steps.hidden ? `${steps.querySelectorAll('[data-step="done"], [data-step="current"]').length} / ${steps.children.length}` : ""; const personalSpace = win.location.hostname === "i.chaoxing.com" && win.location.pathname === "/base"; const answering = aiState === "running" && (Boolean(progress) || /题/.test(currentTitle)); const home = doc.documentElement.dataset.dripCourseHomeState; let view; if (answering) view = ["ai", "\u270E", "AI \u6B63\u5728\u7B54\u9898", progress ? `\u7B2C ${progress} \u9898` : currentTitle || "\u6B63\u5728\u5904\u7406\u672C\u9875\u9898\u76EE"]; else if (badge === "\u5F85\u786E\u8BA4") view = ["warn", "!", "\u7B49\u5F85\u5B66\u4E60\u901A\u786E\u8BA4\u63D0\u4EA4", "\u786E\u8BA4\u524D\u5148\u522B\u79BB\u5F00\u8FD9\u4E2A\u6D4B\u9A8C"]; else if (home === "running") view = ["run", "\u25B6", "\u6B63\u5728\u627E\u8981\u5B66\u7684\u7AE0\u8282", "\u627E\u5230\u540E\u4F1A\u81EA\u52A8\u8FDB\u5165"]; else if (home === "idle") view = ["ok", "\u2713", "\u6CA1\u6709\u5F85\u5B66\u7684\u7AE0\u8282", "\u4EFB\u52A1\u90FD\u5B8C\u6210\u4E86\uFF0C\u6216\u8FD8\u6CA1\u5F00\u653E", "courses", "\u6362\u4E00\u95E8\u8BFE"]; else if (home === "paused") view = ["wait", "\u2016", "\u5DF2\u505C\u6B62\u81EA\u52A8\u8FDB\u5165", "\u70B9\u201C\u5F00\u59CB\u5B66\u4E60\u201D\u7EE7\u7EED"]; else if (aiState === "paused") view = ["warn", "!", (headline == null ? void 0 : headline.textContent) || "AI \u5DF2\u6682\u505C", next || currentTitle]; else if (courseState === "running") view = ["run", "\u25B6", "\u6B63\u5728\u5237\u8BFE", task || "\u4FDD\u6301\u9875\u9762\u6253\u5F00\u5373\u53EF"]; else if (courseState === "done") view = ["ok", "\u2713", "\u8FD9\u95E8\u8BFE\u5DF2\u5B8C\u6210", "\u53EF\u4EE5\u6362\u4E00\u95E8\u8BFE\u7EE7\u7EED", "courses", "\u6362\u4E00\u95E8\u8BFE"]; else if (courseState === "error") view = ["warn", "!", (headline == null ? void 0 : headline.textContent) || "\u8BFE\u7A0B\u4EFB\u52A1\u6CA1\u5B8C\u6210", next]; else if (personalSpace) view = ["wait", "\u2197", "\u5148\u9009\u4E00\u95E8\u8BFE\u7A0B", "\u6253\u5F00\u8BFE\u7A0B\u540E\u4F1A\u81EA\u52A8\u5237\u89C6\u9891\u3001\u8DF3\u7AE0\u8282", "courses", "\u53BB\u9009\u8BFE\u7A0B"]; else if ((headline == null ? void 0 : headline.dataset.state) === "warning") view = ["warn", "!", headline.textContent, next]; else if (courseState === "waiting") view = ["wait", "\u2026", task ? "\u6B63\u5728\u68C0\u67E5\u672C\u8282\u4EFB\u52A1" : (headline == null ? void 0 : headline.textContent) || "\u6B63\u5728\u68C0\u67E5\u8BFE\u7A0B\u4EFB\u52A1", task || "\u4FDD\u6301\u9875\u9762\u6253\u5F00\uFF0C\u4F1A\u81EA\u52A8\u5904\u7406"]; else if (/结果页/.test((headline == null ? void 0 : headline.textContent) || "")) view = ["ok", "\u2713", "\u8FD9\u662F\u7ED3\u679C\u9875", "\u4E0D\u4F1A\u91CD\u590D\u4F5C\u7B54"]; else view = enabled ? ["wait", "\u270E", "\u7B49\u5F85\u6D4B\u9A8C\u6216\u4F5C\u4E1A", "\u6253\u5F00\u6D4B\u9A8C\u6216\u4F5C\u4E1A\uFF0CAI \u4F1A\u81EA\u52A8\u4F5C\u7B54"] : ["wait", "\u2013", "AI \u5DF2\u5173\u95ED", "\u53EF\u4EE5\u81EA\u5DF1\u4F5C\u7B54\uFF0C\u5237\u8BFE\u7167\u5E38\u8FD0\u884C"]; const [tone, mark, heading, sub, ctaName, ctaLabel] = view; if (hero.dataset.tone !== tone) hero.dataset.tone = tone; setText(icon, mark); setText(title, heading); setText(desc, sub || ""); ctaAction = ctaName ? action(ctaName) : null; cta.hidden = !ctaAction; const ctaOn = String(!cta.hidden); if (panel.dataset.ltCta !== ctaOn) panel.dataset.ltCta = ctaOn; if (ctaLabel) setText(cta, ctaLabel); setText(aiText, !enabled ? "\u5DF2\u5173\u95ED\uFF0C\u53EA\u5237\u8BFE" : answering ? progress ? `\u7B2C ${progress} \u9898` : "\u7B54\u9898\u4E2D" : "\u9047\u5230\u6D4B\u9A8C\u81EA\u52A8\u4F5C\u7B54"); const preview = ((_e = panel.querySelector(".lt-record-preview")) == null ? void 0 : _e.textContent) || ""; setText(lastText, preview && !/暂无/.test(preview) ? preview : "\u8FD8\u6CA1\u6709\u8BB0\u5F55"); last.dataset.empty = String(!preview || /暂无/.test(preview)); }; panel.addEventListener("drip-ux-state", sync); sync(); } var INVITE_CODE = /^YQ[A-HJ-NP-Z2-9]{4}$/i; var NUDGE_KEY = "drip7boi:invite-nudge"; var NUDGE_EVERY_MS = 3 * 24 * 60 * 6e4; var NUDGE_AFTER_ANSWERS = 10; var NUDGE_QUIET_MS = 5e3; function mountPanelInvite(panel, callbacks = {}) { var _a, _b, _c, _d; const doc = panel.ownerDocument; const win = doc.defaultView; const node = (tag, className, text = "") => { const el = doc.createElement(tag); if (className) el.className = className; if (text) el.textContent = text; return el; }; const button = (className, text) => { const el = node("button", className, text); el.type = "button"; return el; }; const links = panel.querySelector(".lt-v4-links"); const account = panel.querySelector(".cxds-license-box"); const recharge = panel.querySelector(".drip-recharge"); const input = panel.querySelector("#cxds-card-code"); const redeem = panel.querySelector('[data-action="redeem-card"]'); if (!links || !account || !input || !redeem || !callbacks.getInvite) return; let info = null; let loading = null; const entry = button("lt-v4-link lt-invite-entry", "\u9080\u8BF7\u540C\u5B66"); const badge = node("span", "lt-invite-badge"); entry.append(badge); entry.hidden = true; entry.setAttribute("aria-expanded", "false"); links.append(entry); const card = node("section", "lt-invite-card"); card.hidden = true; card.id = "lt-invite-card"; entry.setAttribute("aria-controls", card.id); const head = node("div", "lt-invite-head"); head.append(node("b", "", "\u9080\u8BF7\u540C\u5B66\uFF0C\u4E00\u8D77\u7701\u65F6\u95F4")); const perks = node("div", "lt-invite-perks"); const perk = (who) => { const box = node("div", "lt-invite-perk"); const value = node("strong"); const note = node("span"); box.append(node("small", "", who), value, note); perks.append(box); return { value, note }; }; const friendPerk = perk("\u540C\u5B66"); const selfPerk = perk("\u4F60"); const ticket = node("div", "lt-invite-ticket"); const codeBox = node("div", "lt-invite-code"); const codeText = node("code"); codeBox.append(node("small", "", "\u6211\u7684\u9080\u8BF7\u7801"), codeText); const copyCode = button("lt-invite-copy-code", "\u590D\u5236\u7801"); ticket.append(codeBox, copyCode); const share = button("lt-button lt-button--primary lt-invite-share", "\u590D\u5236\u9080\u8BF7\u8BDD\u672F\uFF0C\u53D1\u7ED9\u540C\u5B66"); const stats = node("div", "lt-invite-stats"); const stat = (label) => { const box = node("div"); const value = node("strong", "", "0"); box.append(value, node("small", "", label)); stats.append(box); return value; }; const invitedValue = stat("\u5DF2\u9080\u8BF7"); const activatedValue = stat("\u5DF2\u751F\u6548"); const earnedValue = stat("\u5171\u5F97\u79EF\u5206"); earnedValue.classList.add("is-gold"); const progress = node("div", "lt-invite-progress"); const hint = node("p", "lt-invite-hint"); const toast = node("p", "lt-invite-toast"); toast.setAttribute("role", "status"); card.append(head, perks, ticket, share, stats, progress, hint, toast); links.after(card); const setOpen = (open) => { card.hidden = !open; entry.setAttribute("aria-expanded", String(open)); if (open) { load(true); win.requestAnimationFrame(() => card.scrollIntoView({ block: "nearest", behavior: "smooth" })); } }; entry.addEventListener("click", () => setOpen(card.hidden)); const bindStrip = node("div", "lt-v4-shop lt-invite-bind"); const bindText = node("span"); const bindLink = button("lt-button lt-button--ghost lt-v4-shop-link", "\u586B\u5199 \u203A"); bindStrip.append(bindText, bindLink); bindStrip.hidden = true; (_a = account.querySelector(".lt-runtime-account-row") || account.firstElementChild) == null ? void 0 : _a.after(bindStrip); bindLink.addEventListener("click", () => { var _a2; if (recharge && !recharge.open) (_a2 = panel.querySelector('[data-action="show-recharge"]')) == null ? void 0 : _a2.click(); if (recharge) recharge.open = true; win.requestAnimationFrame(() => input.focus()); }); recharge == null ? void 0 : recharge.addEventListener("toggle", () => { if (info) bindStrip.hidden = !(info.enabled && info.canBind) || recharge.open; }); const receipt = node("p", "lt-invite-receipt"); receipt.hidden = true; bindStrip.after(receipt); const fieldLabel = (_b = input.closest("label")) == null ? void 0 : _b.querySelector("span"); const kind = node("span", "lt-invite-kind", "\u9080\u8BF7\u7801"); kind.hidden = true; fieldLabel == null ? void 0 : fieldLabel.append(kind); const codeHint = node("p", "lt-invite-hint lt-invite-code-hint"); codeHint.hidden = true; (_c = input.closest("label")) == null ? void 0 : _c.after(codeHint); const redeemLabel = redeem.textContent; const syncInput = () => { var _a2; const isInvite = INVITE_CODE.test(input.value.trim()); input.classList.toggle("lt-invite-input", isInvite); codeHint.classList.remove("is-error"); kind.hidden = !isInvite; codeHint.hidden = !isInvite; const bonus = (_a2 = info == null ? void 0 : info.inviteeBonus) != null ? _a2 : 50; codeHint.textContent = (info == null ? void 0 : info.canBind) === false ? "\u4F60\u5DF2\u7ECF\u586B\u8FC7\u9080\u8BF7\u7801\uFF0C\u6216\u6CE8\u518C\u5DF2\u8D85\u8FC7 7 \u5929\uFF0C\u4E0D\u80FD\u518D\u586B\u4E86\u3002" : `\u586B\u540C\u5B66\u7684\u9080\u8BF7\u7801\uFF0C\u4F60\u7ACB\u5373\u591A\u5F97 ${bonus} \u79EF\u5206\u3002\u6BCF\u4EBA\u53EA\u80FD\u586B\u4E00\u6B21\u3002`; syncLabel(); }; const syncLabel = () => { var _a2; const isInvite = INVITE_CODE.test(input.value.trim()); redeem.textContent = isInvite ? `\u9886\u53D6 ${(_a2 = info == null ? void 0 : info.inviteeBonus) != null ? _a2 : 50} \u79EF\u5206` : redeemLabel; }; input.addEventListener("input", syncInput); new win.MutationObserver(() => { if (!redeem.hasAttribute("aria-busy")) syncLabel(); }).observe(redeem, { attributes: true, attributeFilter: ["aria-busy"] }); const render = () => { var _a2; if (!info) return; entry.hidden = !info.enabled; if (!info.enabled) card.hidden = true; badge.textContent = `+${info.inviterBonus} \u79EF\u5206`; friendPerk.value.textContent = `+${info.inviteeBonus} \u79EF\u5206`; friendPerk.note.textContent = "\u586B\u4F60\u7684\u7801\u7ACB\u5373\u5230\u8D26"; selfPerk.value.textContent = `+${info.inviterBonus} \u79EF\u5206`; selfPerk.note.textContent = `\u540C\u5B66\u7B54\u6EE1 ${info.activateAnswers} \u9898\u540E`; codeText.textContent = info.code; invitedValue.textContent = String(info.invited); activatedValue.textContent = String(info.activated); earnedValue.textContent = String(info.earned); progress.replaceChildren(...(info.pending || []).map((row) => { const line = node("div", "lt-invite-row"); const bar = node("i", "lt-invite-bar"); const fill = node("b"); fill.style.width = `${Math.round(row.answers / info.activateAnswers * 100)}%`; bar.append(fill); line.append(node("span", "", row.label), bar, node("em", "", `${row.answers}/${info.activateAnswers}`)); return line; })); hint.textContent = info.purchasePercent > 0 ? `\u540C\u5B66\u9996\u6B21\u4E70\u5361\uFF0C\u4F60\u518D\u5F97\u4ED6\u6240\u4E70\u79EF\u5206\u7684 ${info.purchasePercent}%` : ""; bindStrip.hidden = !(info.enabled && info.canBind) || Boolean(recharge == null ? void 0 : recharge.open); bindText.textContent = `\u540C\u5B66\u7ED9\u4E86\u9080\u8BF7\u7801\uFF1F\u591A\u5F97 ${info.inviteeBonus} \u79EF\u5206`; if (info.canBind && ((_a2 = fieldLabel == null ? void 0 : fieldLabel.firstChild) == null ? void 0 : _a2.nodeType) === 3) fieldLabel.firstChild.nodeValue = "\u5361\u5BC6\u6216\u9080\u8BF7\u7801"; if (info.canBind) input.placeholder = "\u7C98\u8D34\u5361\u5BC6\uFF0C\u6216\u586B\u540C\u5B66\u7684\u9080\u8BF7\u7801"; syncInput(); }; const load = (force = false) => { if (loading || info && !force) return loading; if (callbacks.hasLicense && !callbacks.hasLicense()) return null; loading = Promise.resolve(callbacks.getInvite()).then((data) => { if (data == null ? void 0 : data.code) { info = data; render(); } }).catch(() => { }).finally(() => { loading = null; }); return loading; }; const showToast = (text) => { toast.textContent = text; toast.classList.add("is-on"); win.clearTimeout(toast.timer); toast.timer = win.setTimeout(() => toast.classList.remove("is-on"), 1800); }; const copy = async (text, target, doneText) => { let ok = false; try { await win.navigator.clipboard.writeText(text); ok = true; } catch (e) { const area = node("textarea"); area.value = text; area.setAttribute("readonly", ""); area.style.position = "fixed"; area.style.opacity = "0"; doc.body.append(area); area.select(); try { ok = doc.execCommand("copy"); } catch (e2) { ok = false; } area.remove(); } if (!ok) { card.hidden = false; const range = doc.createRange(); range.selectNodeContents(codeText); const selection = win.getSelection(); selection.removeAllRanges(); selection.addRange(range); showToast("\u6D4F\u89C8\u5668\u4E0D\u8BA9\u81EA\u52A8\u590D\u5236\uFF0C\u9080\u8BF7\u7801\u5DF2\u9009\u4E2D\uFF0C\u6309 Ctrl+C \u590D\u5236"); return false; } const label = target.textContent; target.classList.add("is-done"); target.textContent = doneText; win.setTimeout(() => { target.classList.remove("is-done"); target.textContent = label; }, 1600); return true; }; copyCode.addEventListener("click", async () => { if (info && await copy(info.code, copyCode, "\u5DF2\u590D\u5236")) showToast("\u9080\u8BF7\u7801\u5DF2\u590D\u5236"); }); share.addEventListener("click", async () => { if (info && await copy(info.shareText, share, "\u5DF2\u590D\u5236 \u2713")) showToast("\u5DF2\u590D\u5236\uFF0C\u53BB\u73ED\u7EA7\u7FA4\u7C98\u8D34\u5427"); }); panel.addEventListener("drip-invite-failed", (event) => { var _a2; codeHint.hidden = false; codeHint.classList.add("is-error"); codeHint.textContent = ((_a2 = event.detail) == null ? void 0 : _a2.message) || "\u586B\u5199\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; }); panel.addEventListener("drip-invite-bound", (event) => { var _a2; const points = Number(((_a2 = event.detail) == null ? void 0 : _a2.inviteePoints) || 0); receipt.hidden = false; receipt.textContent = points > 0 ? `\u5DF2\u7ED1\u5B9A\u540C\u5B66\u7684\u9080\u8BF7\uFF0C\u591A\u5F97 ${points} \u79EF\u5206` : "\u5DF2\u7ED1\u5B9A\u540C\u5B66\u7684\u9080\u8BF7"; bindStrip.hidden = true; if (recharge) recharge.open = false; load(true); }); const nudge = node("section", "lt-invite-nudge"); nudge.hidden = true; const close = button("lt-invite-nudge-close", "\xD7"); close.setAttribute("aria-label", "\u5173\u95ED\u9080\u8BF7\u63D0\u793A"); const nudgeTitle = node("b", "", "\u540C\u5B66\u4E5F\u5728\u8D76\u8FD9\u4EFD\u4F5C\u4E1A\uFF1F"); const nudgeText = node("p"); const nudgeActions = node("div", "lt-invite-nudge-actions"); const nudgeCopy = button("lt-button lt-button--primary lt-invite-nudge-copy", "\u590D\u5236\u9080\u8BF7\u8BDD\u672F"); const nudgeCode = node("small"); nudgeActions.append(nudgeCopy, nudgeCode); nudge.append(close, nudgeTitle, nudgeText, nudgeActions); (_d = panel.querySelector(".lt-v4-cta") || panel.querySelector(".lt-v4-hero")) == null ? void 0 : _d.after(nudge); const readNudge = () => { try { return JSON.parse(win.localStorage.getItem(NUDGE_KEY) || "{}"); } catch (e) { return {}; } }; const writeNudge = (value) => { try { win.localStorage.setItem(NUDGE_KEY, JSON.stringify(value)); } catch (e) { } }; let charged = 0; let quietTimer = 0; const maybeNudge = async () => { const state = readNudge(); if ((state.dismissed || 0) >= 2 || Date.now() - (state.lastShown || 0) < NUDGE_EVERY_MS) return; await load(); if (!(info == null ? void 0 : info.enabled)) return; nudgeText.textContent = `\u53D1\u7ED9\u4ED6\uFF1A\u4ED6\u591A\u5F97 ${info.inviteeBonus} \u79EF\u5206\uFF0C\u4F60\u5F97 ${info.inviterBonus} \u79EF\u5206`; nudgeCode.textContent = `\u9080\u8BF7\u7801 ${info.code}`; nudge.hidden = false; writeNudge({ ...state, lastShown: Date.now() }); }; win.addEventListener("drip7boi:ai-charged", () => { charged += 1; win.clearTimeout(quietTimer); if (charged >= NUDGE_AFTER_ANSWERS) quietTimer = win.setTimeout(maybeNudge, NUDGE_QUIET_MS); }); close.addEventListener("click", () => { nudge.hidden = true; const state = readNudge(); writeNudge({ ...state, dismissed: (state.dismissed || 0) + 1 }); }); nudgeCopy.addEventListener("click", async () => { if (info && await copy(info.shareText, nudgeCopy, "\u5DF2\u590D\u5236 \u2713")) { nudge.hidden = true; } }); win.addEventListener("drip7boi:account-ready", () => load(true)); win.addEventListener("drip7boi:balance", () => { if (!info) load(); }); load(); } var qrcode = function(typeNumber, errorCorrectionLevel) { const PAD0 = 236; const PAD1 = 17; let _typeNumber = typeNumber; const _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel]; let _modules = null; let _moduleCount = 0; let _dataCache = null; const _dataList = []; const _this = {}; const makeImpl = function(test, maskPattern) { _moduleCount = _typeNumber * 4 + 17; _modules = (function(moduleCount) { const modules = new Array(moduleCount); for (let row = 0; row < moduleCount; row += 1) { modules[row] = new Array(moduleCount); for (let col = 0; col < moduleCount; col += 1) { modules[row][col] = null; } } return modules; })(_moduleCount); setupPositionProbePattern(0, 0); setupPositionProbePattern(_moduleCount - 7, 0); setupPositionProbePattern(0, _moduleCount - 7); setupPositionAdjustPattern(); setupTimingPattern(); setupTypeInfo(test, maskPattern); if (_typeNumber >= 7) { setupTypeNumber(test); } if (_dataCache == null) { _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList); } mapData(_dataCache, maskPattern); }; const setupPositionProbePattern = function(row, col) { for (let r = -1; r <= 7; r += 1) { if (row + r <= -1 || _moduleCount <= row + r) continue; for (let c = -1; c <= 7; c += 1) { if (col + c <= -1 || _moduleCount <= col + c) continue; if (0 <= r && r <= 6 && (c == 0 || c == 6) || 0 <= c && c <= 6 && (r == 0 || r == 6) || 2 <= r && r <= 4 && 2 <= c && c <= 4) { _modules[row + r][col + c] = true; } else { _modules[row + r][col + c] = false; } } } }; const getBestMaskPattern = function() { let minLostPoint = 0; let pattern = 0; for (let i = 0; i < 8; i += 1) { makeImpl(true, i); const lostPoint = QRUtil.getLostPoint(_this); if (i == 0 || minLostPoint > lostPoint) { minLostPoint = lostPoint; pattern = i; } } return pattern; }; const setupTimingPattern = function() { for (let r = 8; r < _moduleCount - 8; r += 1) { if (_modules[r][6] != null) { continue; } _modules[r][6] = r % 2 == 0; } for (let c = 8; c < _moduleCount - 8; c += 1) { if (_modules[6][c] != null) { continue; } _modules[6][c] = c % 2 == 0; } }; const setupPositionAdjustPattern = function() { const pos = QRUtil.getPatternPosition(_typeNumber); for (let i = 0; i < pos.length; i += 1) { for (let j = 0; j < pos.length; j += 1) { const row = pos[i]; const col = pos[j]; if (_modules[row][col] != null) { continue; } for (let r = -2; r <= 2; r += 1) { for (let c = -2; c <= 2; c += 1) { if (r == -2 || r == 2 || c == -2 || c == 2 || r == 0 && c == 0) { _modules[row + r][col + c] = true; } else { _modules[row + r][col + c] = false; } } } } } }; const setupTypeNumber = function(test) { const bits = QRUtil.getBCHTypeNumber(_typeNumber); for (let i = 0; i < 18; i += 1) { const mod = !test && (bits >> i & 1) == 1; _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod; } for (let i = 0; i < 18; i += 1) { const mod = !test && (bits >> i & 1) == 1; _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod; } }; const setupTypeInfo = function(test, maskPattern) { const data = _errorCorrectionLevel << 3 | maskPattern; const bits = QRUtil.getBCHTypeInfo(data); for (let i = 0; i < 15; i += 1) { const mod = !test && (bits >> i & 1) == 1; if (i < 6) { _modules[i][8] = mod; } else if (i < 8) { _modules[i + 1][8] = mod; } else { _modules[_moduleCount - 15 + i][8] = mod; } } for (let i = 0; i < 15; i += 1) { const mod = !test && (bits >> i & 1) == 1; if (i < 8) { _modules[8][_moduleCount - i - 1] = mod; } else if (i < 9) { _modules[8][15 - i - 1 + 1] = mod; } else { _modules[8][15 - i - 1] = mod; } } _modules[_moduleCount - 8][8] = !test; }; const mapData = function(data, maskPattern) { let inc = -1; let row = _moduleCount - 1; let bitIndex = 7; let byteIndex = 0; const maskFunc = QRUtil.getMaskFunction(maskPattern); for (let col = _moduleCount - 1; col > 0; col -= 2) { if (col == 6) col -= 1; while (true) { for (let c = 0; c < 2; c += 1) { if (_modules[row][col - c] == null) { let dark = false; if (byteIndex < data.length) { dark = (data[byteIndex] >>> bitIndex & 1) == 1; } const mask = maskFunc(row, col - c); if (mask) { dark = !dark; } _modules[row][col - c] = dark; bitIndex -= 1; if (bitIndex == -1) { byteIndex += 1; bitIndex = 7; } } } row += inc; if (row < 0 || _moduleCount <= row) { row -= inc; inc = -inc; break; } } } }; const createBytes = function(buffer, rsBlocks) { let offset = 0; let maxDcCount = 0; let maxEcCount = 0; const dcdata = new Array(rsBlocks.length); const ecdata = new Array(rsBlocks.length); for (let r = 0; r < rsBlocks.length; r += 1) { const dcCount = rsBlocks[r].dataCount; const ecCount = rsBlocks[r].totalCount - dcCount; maxDcCount = Math.max(maxDcCount, dcCount); maxEcCount = Math.max(maxEcCount, ecCount); dcdata[r] = new Array(dcCount); for (let i = 0; i < dcdata[r].length; i += 1) { dcdata[r][i] = 255 & buffer.getBuffer()[i + offset]; } offset += dcCount; const rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); const rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1); const modPoly = rawPoly.mod(rsPoly); ecdata[r] = new Array(rsPoly.getLength() - 1); for (let i = 0; i < ecdata[r].length; i += 1) { const modIndex = i + modPoly.getLength() - ecdata[r].length; ecdata[r][i] = modIndex >= 0 ? modPoly.getAt(modIndex) : 0; } } let totalCodeCount = 0; for (let i = 0; i < rsBlocks.length; i += 1) { totalCodeCount += rsBlocks[i].totalCount; } const data = new Array(totalCodeCount); let index = 0; for (let i = 0; i < maxDcCount; i += 1) { for (let r = 0; r < rsBlocks.length; r += 1) { if (i < dcdata[r].length) { data[index] = dcdata[r][i]; index += 1; } } } for (let i = 0; i < maxEcCount; i += 1) { for (let r = 0; r < rsBlocks.length; r += 1) { if (i < ecdata[r].length) { data[index] = ecdata[r][i]; index += 1; } } } return data; }; const createData = function(typeNumber2, errorCorrectionLevel2, dataList) { const rsBlocks = QRRSBlock.getRSBlocks(typeNumber2, errorCorrectionLevel2); const buffer = qrBitBuffer(); for (let i = 0; i < dataList.length; i += 1) { const data = dataList[i]; buffer.put(data.getMode(), 4); buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber2)); data.write(buffer); } let totalDataCount = 0; for (let i = 0; i < rsBlocks.length; i += 1) { totalDataCount += rsBlocks[i].dataCount; } if (buffer.getLengthInBits() > totalDataCount * 8) { throw "code length overflow. (" + buffer.getLengthInBits() + ">" + totalDataCount * 8 + ")"; } if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { buffer.put(0, 4); } while (buffer.getLengthInBits() % 8 != 0) { buffer.putBit(false); } while (true) { if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } buffer.put(PAD0, 8); if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } buffer.put(PAD1, 8); } return createBytes(buffer, rsBlocks); }; _this.addData = function(data, mode) { mode = mode || "Byte"; let newData = null; switch (mode) { case "Numeric": newData = qrNumber(data); break; case "Alphanumeric": newData = qrAlphaNum(data); break; case "Byte": newData = qr8BitByte(data); break; case "Kanji": newData = qrKanji(data); break; default: throw "mode:" + mode; } _dataList.push(newData); _dataCache = null; }; _this.isDark = function(row, col) { if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) { throw row + "," + col; } return _modules[row][col]; }; _this.getModuleCount = function() { return _moduleCount; }; _this.make = function() { if (_typeNumber < 1) { let typeNumber2 = 1; for (; typeNumber2 < 40; typeNumber2++) { const rsBlocks = QRRSBlock.getRSBlocks(typeNumber2, _errorCorrectionLevel); const buffer = qrBitBuffer(); for (let i = 0; i < _dataList.length; i++) { const data = _dataList[i]; buffer.put(data.getMode(), 4); buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber2)); data.write(buffer); } let totalDataCount = 0; for (let i = 0; i < rsBlocks.length; i++) { totalDataCount += rsBlocks[i].dataCount; } if (buffer.getLengthInBits() <= totalDataCount * 8) { break; } } _typeNumber = typeNumber2; } makeImpl(false, getBestMaskPattern()); }; _this.createTableTag = function(cellSize, margin) { cellSize = cellSize || 2; margin = typeof margin == "undefined" ? cellSize * 4 : margin; let qrHtml = ""; qrHtml += '' + escapeXml(title.text) + "" : ""; qrSvg += alt.text ? '' + escapeXml(alt.text) + "" : ""; qrSvg += ''; qrSvg += '": escaped += ">"; break; case "&": escaped += "&"; break; case '"': escaped += """; break; default: escaped += c; break; } } return escaped; }; const _createHalfASCII = function(margin) { const cellSize = 1; margin = typeof margin == "undefined" ? cellSize * 2 : margin; const size = _this.getModuleCount() * cellSize + margin * 2; const min = margin; const max = size - margin; let y, x, r1, r2, p; const blocks = { "\u2588\u2588": "\u2588", "\u2588 ": "\u2580", " \u2588": "\u2584", " ": " " }; const blocksLastLineNoMargin = { "\u2588\u2588": "\u2580", "\u2588 ": "\u2580", " \u2588": " ", " ": " " }; let ascii = ""; for (y = 0; y < size; y += 2) { r1 = Math.floor((y - min) / cellSize); r2 = Math.floor((y + 1 - min) / cellSize); for (x = 0; x < size; x += 1) { p = "\u2588"; if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) { p = " "; } if (min <= x && x < max && min <= y + 1 && y + 1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) { p += " "; } else { p += "\u2588"; } ascii += margin < 1 && y + 1 >= max ? blocksLastLineNoMargin[p] : blocks[p]; } ascii += "\n"; } if (size % 2 && margin > 0) { return ascii.substring(0, ascii.length - size - 1) + Array(size + 1).join("\u2580"); } return ascii.substring(0, ascii.length - 1); }; _this.createASCII = function(cellSize, margin) { cellSize = cellSize || 1; if (cellSize < 2) { return _createHalfASCII(margin); } cellSize -= 1; margin = typeof margin == "undefined" ? cellSize * 2 : margin; const size = _this.getModuleCount() * cellSize + margin * 2; const min = margin; const max = size - margin; let y, x, r, p; const white = Array(cellSize + 1).join("\u2588\u2588"); const black = Array(cellSize + 1).join(" "); let ascii = ""; let line = ""; for (y = 0; y < size; y += 1) { r = Math.floor((y - min) / cellSize); line = ""; for (x = 0; x < size; x += 1) { p = 1; if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) { p = 0; } line += p ? white : black; } for (r = 0; r < cellSize; r += 1) { ascii += line + "\n"; } } return ascii.substring(0, ascii.length - 1); }; _this.renderTo2dContext = function(context, cellSize) { cellSize = cellSize || 2; const length = _this.getModuleCount(); for (let row = 0; row < length; row++) { for (let col = 0; col < length; col++) { context.fillStyle = _this.isDark(row, col) ? "black" : "white"; context.fillRect(col * cellSize, row * cellSize, cellSize, cellSize); } } }; return _this; }; qrcode.stringToBytes = function(s) { const bytes = []; for (let i = 0; i < s.length; i += 1) { const c = s.charCodeAt(i); bytes.push(c & 255); } return bytes; }; qrcode.createStringToBytes = function(unicodeData, numChars) { const unicodeMap = (function() { const bin = base64DecodeInputStream(unicodeData); const read = function() { const b = bin.read(); if (b == -1) throw "eof"; return b; }; let count = 0; const unicodeMap2 = {}; while (true) { const b0 = bin.read(); if (b0 == -1) break; const b1 = read(); const b2 = read(); const b3 = read(); const k = String.fromCharCode(b0 << 8 | b1); const v = b2 << 8 | b3; unicodeMap2[k] = v; count += 1; } if (count != numChars) { throw count + " != " + numChars; } return unicodeMap2; })(); const unknownChar = "?".charCodeAt(0); return function(s) { const bytes = []; for (let i = 0; i < s.length; i += 1) { const c = s.charCodeAt(i); if (c < 128) { bytes.push(c); } else { const b = unicodeMap[s.charAt(i)]; if (typeof b == "number") { if ((b & 255) == b) { bytes.push(b); } else { bytes.push(b >>> 8); bytes.push(b & 255); } } else { bytes.push(unknownChar); } } } return bytes; }; }; var QRMode = { MODE_NUMBER: 1 << 0, MODE_ALPHA_NUM: 1 << 1, MODE_8BIT_BYTE: 1 << 2, MODE_KANJI: 1 << 3 }; var QRErrorCorrectionLevel = { L: 1, M: 0, Q: 3, H: 2 }; var QRMaskPattern = { PATTERN000: 0, PATTERN001: 1, PATTERN010: 2, PATTERN011: 3, PATTERN100: 4, PATTERN101: 5, PATTERN110: 6, PATTERN111: 7 }; var QRUtil = (function() { const PATTERN_POSITION_TABLE = [ [], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170] ]; const G15 = 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0; const G18 = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0; const G15_MASK = 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1; const _this = {}; const getBCHDigit = function(data) { let digit = 0; while (data != 0) { digit += 1; data >>>= 1; } return digit; }; _this.getBCHTypeInfo = function(data) { let d = data << 10; while (getBCHDigit(d) - getBCHDigit(G15) >= 0) { d ^= G15 << getBCHDigit(d) - getBCHDigit(G15); } return (data << 10 | d) ^ G15_MASK; }; _this.getBCHTypeNumber = function(data) { let d = data << 12; while (getBCHDigit(d) - getBCHDigit(G18) >= 0) { d ^= G18 << getBCHDigit(d) - getBCHDigit(G18); } return data << 12 | d; }; _this.getPatternPosition = function(typeNumber) { return PATTERN_POSITION_TABLE[typeNumber - 1]; }; _this.getMaskFunction = function(maskPattern) { switch (maskPattern) { case QRMaskPattern.PATTERN000: return function(i, j) { return (i + j) % 2 == 0; }; case QRMaskPattern.PATTERN001: return function(i, j) { return i % 2 == 0; }; case QRMaskPattern.PATTERN010: return function(i, j) { return j % 3 == 0; }; case QRMaskPattern.PATTERN011: return function(i, j) { return (i + j) % 3 == 0; }; case QRMaskPattern.PATTERN100: return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; }; case QRMaskPattern.PATTERN101: return function(i, j) { return i * j % 2 + i * j % 3 == 0; }; case QRMaskPattern.PATTERN110: return function(i, j) { return (i * j % 2 + i * j % 3) % 2 == 0; }; case QRMaskPattern.PATTERN111: return function(i, j) { return (i * j % 3 + (i + j) % 2) % 2 == 0; }; default: throw "bad maskPattern:" + maskPattern; } }; _this.getErrorCorrectPolynomial = function(errorCorrectLength) { let a = qrPolynomial([1], 0); for (let i = 0; i < errorCorrectLength; i += 1) { a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0)); } return a; }; _this.getLengthInBits = function(mode, type2) { if (1 <= type2 && type2 < 10) { switch (mode) { case QRMode.MODE_NUMBER: return 10; case QRMode.MODE_ALPHA_NUM: return 9; case QRMode.MODE_8BIT_BYTE: return 8; case QRMode.MODE_KANJI: return 8; default: throw "mode:" + mode; } } else if (type2 < 27) { switch (mode) { case QRMode.MODE_NUMBER: return 12; case QRMode.MODE_ALPHA_NUM: return 11; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 10; default: throw "mode:" + mode; } } else if (type2 < 41) { switch (mode) { case QRMode.MODE_NUMBER: return 14; case QRMode.MODE_ALPHA_NUM: return 13; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 12; default: throw "mode:" + mode; } } else { throw "type:" + type2; } }; _this.getLostPoint = function(qrcode2) { const moduleCount = qrcode2.getModuleCount(); let lostPoint = 0; for (let row = 0; row < moduleCount; row += 1) { for (let col = 0; col < moduleCount; col += 1) { let sameCount = 0; const dark = qrcode2.isDark(row, col); for (let r = -1; r <= 1; r += 1) { if (row + r < 0 || moduleCount <= row + r) { continue; } for (let c = -1; c <= 1; c += 1) { if (col + c < 0 || moduleCount <= col + c) { continue; } if (r == 0 && c == 0) { continue; } if (dark == qrcode2.isDark(row + r, col + c)) { sameCount += 1; } } } if (sameCount > 5) { lostPoint += 3 + sameCount - 5; } } } ; for (let row = 0; row < moduleCount - 1; row += 1) { for (let col = 0; col < moduleCount - 1; col += 1) { let count = 0; if (qrcode2.isDark(row, col)) count += 1; if (qrcode2.isDark(row + 1, col)) count += 1; if (qrcode2.isDark(row, col + 1)) count += 1; if (qrcode2.isDark(row + 1, col + 1)) count += 1; if (count == 0 || count == 4) { lostPoint += 3; } } } for (let row = 0; row < moduleCount; row += 1) { for (let col = 0; col < moduleCount - 6; col += 1) { if (qrcode2.isDark(row, col) && !qrcode2.isDark(row, col + 1) && qrcode2.isDark(row, col + 2) && qrcode2.isDark(row, col + 3) && qrcode2.isDark(row, col + 4) && !qrcode2.isDark(row, col + 5) && qrcode2.isDark(row, col + 6)) { lostPoint += 40; } } } for (let col = 0; col < moduleCount; col += 1) { for (let row = 0; row < moduleCount - 6; row += 1) { if (qrcode2.isDark(row, col) && !qrcode2.isDark(row + 1, col) && qrcode2.isDark(row + 2, col) && qrcode2.isDark(row + 3, col) && qrcode2.isDark(row + 4, col) && !qrcode2.isDark(row + 5, col) && qrcode2.isDark(row + 6, col)) { lostPoint += 40; } } } let darkCount = 0; for (let col = 0; col < moduleCount; col += 1) { for (let row = 0; row < moduleCount; row += 1) { if (qrcode2.isDark(row, col)) { darkCount += 1; } } } const ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; lostPoint += ratio * 10; return lostPoint; }; return _this; })(); var QRMath = (function() { const EXP_TABLE = new Array(256); const LOG_TABLE = new Array(256); for (let i = 0; i < 8; i += 1) { EXP_TABLE[i] = 1 << i; } for (let i = 8; i < 256; i += 1) { EXP_TABLE[i] = EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8]; } for (let i = 0; i < 255; i += 1) { LOG_TABLE[EXP_TABLE[i]] = i; } const _this = {}; _this.glog = function(n) { if (n < 1) { throw "glog(" + n + ")"; } return LOG_TABLE[n]; }; _this.gexp = function(n) { while (n < 0) { n += 255; } while (n >= 256) { n -= 255; } return EXP_TABLE[n]; }; return _this; })(); var qrPolynomial = function(num, shift) { if (typeof num.length == "undefined") { throw num.length + "/" + shift; } const _num = (function() { let offset = 0; while (offset < num.length && num[offset] == 0) { offset += 1; } const _num2 = new Array(num.length - offset + shift); for (let i = 0; i < num.length - offset; i += 1) { _num2[i] = num[i + offset]; } return _num2; })(); const _this = {}; _this.getAt = function(index) { return _num[index]; }; _this.getLength = function() { return _num.length; }; _this.multiply = function(e) { const num2 = new Array(_this.getLength() + e.getLength() - 1); for (let i = 0; i < _this.getLength(); i += 1) { for (let j = 0; j < e.getLength(); j += 1) { num2[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i)) + QRMath.glog(e.getAt(j))); } } return qrPolynomial(num2, 0); }; _this.mod = function(e) { if (_this.getLength() - e.getLength() < 0) { return _this; } const ratio = QRMath.glog(_this.getAt(0)) - QRMath.glog(e.getAt(0)); const num2 = new Array(_this.getLength()); for (let i = 0; i < _this.getLength(); i += 1) { num2[i] = _this.getAt(i); } for (let i = 0; i < e.getLength(); i += 1) { num2[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i)) + ratio); } return qrPolynomial(num2, 0).mod(e); }; return _this; }; var QRRSBlock = (function() { const RS_BLOCK_TABLE = [ // L // M // Q // H // 1 [1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], // 2 [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], // 3 [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], // 4 [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], // 5 [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], // 6 [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], // 7 [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], // 8 [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], // 9 [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], // 10 [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], // 11 [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], // 12 [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], // 13 [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], // 14 [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], // 15 [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12, 7, 37, 13], // 16 [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], // 17 [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], // 18 [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], // 19 [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], // 20 [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], // 21 [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], // 22 [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], // 23 [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], // 24 [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], // 25 [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], // 26 [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], // 27 [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], // 28 [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], // 29 [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], // 30 [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], // 31 [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], // 32 [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], // 33 [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], // 34 [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], // 35 [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], // 36 [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], // 37 [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], // 38 [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], // 39 [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], // 40 [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16] ]; const qrRSBlock = function(totalCount, dataCount) { const _this2 = {}; _this2.totalCount = totalCount; _this2.dataCount = dataCount; return _this2; }; const _this = {}; const getRsBlockTable = function(typeNumber, errorCorrectionLevel) { switch (errorCorrectionLevel) { case QRErrorCorrectionLevel.L: return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; case QRErrorCorrectionLevel.M: return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; case QRErrorCorrectionLevel.Q: return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; case QRErrorCorrectionLevel.H: return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; default: return void 0; } }; _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) { const rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel); if (typeof rsBlock == "undefined") { throw "bad rs block @ typeNumber:" + typeNumber + "/errorCorrectionLevel:" + errorCorrectionLevel; } const length = rsBlock.length / 3; const list = []; for (let i = 0; i < length; i += 1) { const count = rsBlock[i * 3 + 0]; const totalCount = rsBlock[i * 3 + 1]; const dataCount = rsBlock[i * 3 + 2]; for (let j = 0; j < count; j += 1) { list.push(qrRSBlock(totalCount, dataCount)); } } return list; }; return _this; })(); var qrBitBuffer = function() { const _buffer = []; let _length = 0; const _this = {}; _this.getBuffer = function() { return _buffer; }; _this.getAt = function(index) { const bufIndex = Math.floor(index / 8); return (_buffer[bufIndex] >>> 7 - index % 8 & 1) == 1; }; _this.put = function(num, length) { for (let i = 0; i < length; i += 1) { _this.putBit((num >>> length - i - 1 & 1) == 1); } }; _this.getLengthInBits = function() { return _length; }; _this.putBit = function(bit) { const bufIndex = Math.floor(_length / 8); if (_buffer.length <= bufIndex) { _buffer.push(0); } if (bit) { _buffer[bufIndex] |= 128 >>> _length % 8; } _length += 1; }; return _this; }; var qrNumber = function(data) { const _mode = QRMode.MODE_NUMBER; const _data = data; const _this = {}; _this.getMode = function() { return _mode; }; _this.getLength = function(buffer) { return _data.length; }; _this.write = function(buffer) { const data2 = _data; let i = 0; while (i + 2 < data2.length) { buffer.put(strToNum(data2.substring(i, i + 3)), 10); i += 3; } if (i < data2.length) { if (data2.length - i == 1) { buffer.put(strToNum(data2.substring(i, i + 1)), 4); } else if (data2.length - i == 2) { buffer.put(strToNum(data2.substring(i, i + 2)), 7); } } }; const strToNum = function(s) { let num = 0; for (let i = 0; i < s.length; i += 1) { num = num * 10 + chatToNum(s.charAt(i)); } return num; }; const chatToNum = function(c) { if ("0" <= c && c <= "9") { return c.charCodeAt(0) - "0".charCodeAt(0); } throw "illegal char :" + c; }; return _this; }; var qrAlphaNum = function(data) { const _mode = QRMode.MODE_ALPHA_NUM; const _data = data; const _this = {}; _this.getMode = function() { return _mode; }; _this.getLength = function(buffer) { return _data.length; }; _this.write = function(buffer) { const s = _data; let i = 0; while (i + 1 < s.length) { buffer.put( getCode(s.charAt(i)) * 45 + getCode(s.charAt(i + 1)), 11 ); i += 2; } if (i < s.length) { buffer.put(getCode(s.charAt(i)), 6); } }; const getCode = function(c) { if ("0" <= c && c <= "9") { return c.charCodeAt(0) - "0".charCodeAt(0); } else if ("A" <= c && c <= "Z") { return c.charCodeAt(0) - "A".charCodeAt(0) + 10; } else { switch (c) { case " ": return 36; case "$": return 37; case "%": return 38; case "*": return 39; case "+": return 40; case "-": return 41; case ".": return 42; case "/": return 43; case ":": return 44; default: throw "illegal char :" + c; } } }; return _this; }; var qr8BitByte = function(data) { const _mode = QRMode.MODE_8BIT_BYTE; const _data = data; const _bytes = qrcode.stringToBytes(data); const _this = {}; _this.getMode = function() { return _mode; }; _this.getLength = function(buffer) { return _bytes.length; }; _this.write = function(buffer) { for (let i = 0; i < _bytes.length; i += 1) { buffer.put(_bytes[i], 8); } }; return _this; }; var qrKanji = function(data) { const _mode = QRMode.MODE_KANJI; const _data = data; const stringToBytes2 = qrcode.stringToBytes; !(function(c, code) { const test = stringToBytes2(c); if (test.length != 2 || (test[0] << 8 | test[1]) != code) { throw "sjis not supported."; } })("\u53CB", 38726); const _bytes = stringToBytes2(data); const _this = {}; _this.getMode = function() { return _mode; }; _this.getLength = function(buffer) { return ~~(_bytes.length / 2); }; _this.write = function(buffer) { const data2 = _bytes; let i = 0; while (i + 1 < data2.length) { let c = (255 & data2[i]) << 8 | 255 & data2[i + 1]; if (33088 <= c && c <= 40956) { c -= 33088; } else if (57408 <= c && c <= 60351) { c -= 49472; } else { throw "illegal char at " + (i + 1) + "/" + c; } c = (c >>> 8 & 255) * 192 + (c & 255); buffer.put(c, 13); i += 2; } if (i < data2.length) { throw "illegal char at " + (i + 1); } }; return _this; }; var byteArrayOutputStream = function() { const _bytes = []; const _this = {}; _this.writeByte = function(b) { _bytes.push(b & 255); }; _this.writeShort = function(i) { _this.writeByte(i); _this.writeByte(i >>> 8); }; _this.writeBytes = function(b, off, len) { off = off || 0; len = len || b.length; for (let i = 0; i < len; i += 1) { _this.writeByte(b[i + off]); } }; _this.writeString = function(s) { for (let i = 0; i < s.length; i += 1) { _this.writeByte(s.charCodeAt(i)); } }; _this.toByteArray = function() { return _bytes; }; _this.toString = function() { let s = ""; s += "["; for (let i = 0; i < _bytes.length; i += 1) { if (i > 0) { s += ","; } s += _bytes[i]; } s += "]"; return s; }; return _this; }; var base64EncodeOutputStream = function() { let _buffer = 0; let _buflen = 0; let _length = 0; let _base64 = ""; const _this = {}; const writeEncoded = function(b) { _base64 += String.fromCharCode(encode(b & 63)); }; const encode = function(n) { if (n < 0) { throw "n:" + n; } else if (n < 26) { return 65 + n; } else if (n < 52) { return 97 + (n - 26); } else if (n < 62) { return 48 + (n - 52); } else if (n == 62) { return 43; } else if (n == 63) { return 47; } else { throw "n:" + n; } }; _this.writeByte = function(n) { _buffer = _buffer << 8 | n & 255; _buflen += 8; _length += 1; while (_buflen >= 6) { writeEncoded(_buffer >>> _buflen - 6); _buflen -= 6; } }; _this.flush = function() { if (_buflen > 0) { writeEncoded(_buffer << 6 - _buflen); _buffer = 0; _buflen = 0; } if (_length % 3 != 0) { const padlen = 3 - _length % 3; for (let i = 0; i < padlen; i += 1) { _base64 += "="; } } }; _this.toString = function() { return _base64; }; return _this; }; var base64DecodeInputStream = function(str) { const _str = str; let _pos = 0; let _buffer = 0; let _buflen = 0; const _this = {}; _this.read = function() { while (_buflen < 8) { if (_pos >= _str.length) { if (_buflen == 0) { return -1; } throw "unexpected end of file./" + _buflen; } const c = _str.charAt(_pos); _pos += 1; if (c == "=") { _buflen = 0; return -1; } else if (c.match(/^\s$/)) { continue; } _buffer = _buffer << 6 | decode(c.charCodeAt(0)); _buflen += 6; } const n = _buffer >>> _buflen - 8 & 255; _buflen -= 8; return n; }; const decode = function(c) { if (65 <= c && c <= 90) { return c - 65; } else if (97 <= c && c <= 122) { return c - 97 + 26; } else if (48 <= c && c <= 57) { return c - 48 + 52; } else if (c == 43) { return 62; } else if (c == 47) { return 63; } else { throw "c:" + c; } }; return _this; }; var gifImage = function(width, height) { const _width = width; const _height = height; const _data = new Array(width * height); const _this = {}; _this.setPixel = function(x, y, pixel) { _data[y * _width + x] = pixel; }; _this.write = function(out) { out.writeString("GIF87a"); out.writeShort(_width); out.writeShort(_height); out.writeByte(128); out.writeByte(0); out.writeByte(0); out.writeByte(0); out.writeByte(0); out.writeByte(0); out.writeByte(255); out.writeByte(255); out.writeByte(255); out.writeString(","); out.writeShort(0); out.writeShort(0); out.writeShort(_width); out.writeShort(_height); out.writeByte(0); const lzwMinCodeSize = 2; const raster = getLZWRaster(lzwMinCodeSize); out.writeByte(lzwMinCodeSize); let offset = 0; while (raster.length - offset > 255) { out.writeByte(255); out.writeBytes(raster, offset, 255); offset += 255; } out.writeByte(raster.length - offset); out.writeBytes(raster, offset, raster.length - offset); out.writeByte(0); out.writeString(";"); }; const bitOutputStream = function(out) { const _out = out; let _bitLength = 0; let _bitBuffer = 0; const _this2 = {}; _this2.write = function(data, length) { if (data >>> length != 0) { throw "length over"; } while (_bitLength + length >= 8) { _out.writeByte(255 & (data << _bitLength | _bitBuffer)); length -= 8 - _bitLength; data >>>= 8 - _bitLength; _bitBuffer = 0; _bitLength = 0; } _bitBuffer = data << _bitLength | _bitBuffer; _bitLength = _bitLength + length; }; _this2.flush = function() { if (_bitLength > 0) { _out.writeByte(_bitBuffer); } }; return _this2; }; const getLZWRaster = function(lzwMinCodeSize) { const clearCode = 1 << lzwMinCodeSize; const endCode = (1 << lzwMinCodeSize) + 1; let bitLength = lzwMinCodeSize + 1; const table = lzwTable(); for (let i = 0; i < clearCode; i += 1) { table.add(String.fromCharCode(i)); } table.add(String.fromCharCode(clearCode)); table.add(String.fromCharCode(endCode)); const byteOut = byteArrayOutputStream(); const bitOut = bitOutputStream(byteOut); bitOut.write(clearCode, bitLength); let dataIndex = 0; let s = String.fromCharCode(_data[dataIndex]); dataIndex += 1; while (dataIndex < _data.length) { const c = String.fromCharCode(_data[dataIndex]); dataIndex += 1; if (table.contains(s + c)) { s = s + c; } else { bitOut.write(table.indexOf(s), bitLength); if (table.size() < 4095) { if (table.size() == 1 << bitLength) { bitLength += 1; } table.add(s + c); } s = c; } } bitOut.write(table.indexOf(s), bitLength); bitOut.write(endCode, bitLength); bitOut.flush(); return byteOut.toByteArray(); }; const lzwTable = function() { const _map = {}; let _size = 0; const _this2 = {}; _this2.add = function(key) { if (_this2.contains(key)) { throw "dup key:" + key; } _map[key] = _size; _size += 1; }; _this2.size = function() { return _size; }; _this2.indexOf = function(key) { return _map[key]; }; _this2.contains = function(key) { return typeof _map[key] != "undefined"; }; return _this2; }; return _this; }; var createDataURL = function(width, height, getPixel) { const gif = gifImage(width, height); for (let y = 0; y < height; y += 1) { for (let x = 0; x < width; x += 1) { gif.setPixel(x, y, getPixel(x, y)); } } const b = byteArrayOutputStream(); gif.write(b); const base64 = base64EncodeOutputStream(); const bytes = b.toByteArray(); for (let i = 0; i < bytes.length; i += 1) { base64.writeByte(bytes[i]); } base64.flush(); return "data:image/gif;base64," + base64; }; var stringToBytes = qrcode.stringToBytes; var METHODS = { alipay: { name: "\u652F\u4ED8\u5B9D", mark: "\u652F" }, wxpay: { name: "\u5FAE\u4FE1", mark: "\u5FAE" } }; var METHOD_KEY = "drip7boi:pay-method"; var POLL_MS = 2e3; var POLL_HIDDEN_MS = 5e3; var LATE_CHECK_MS = 2 * 6e4; var SVG_NS2 = "http://www.w3.org/2000/svg"; function mountPanelPay(panel, logo, callbacks = {}) { const doc = panel.ownerDocument; const win = doc.defaultView; const drawer = panel.querySelector(".drip-recharge-content"); const recharge = panel.querySelector(".drip-recharge"); if (!drawer || !recharge || !callbacks.createPayOrder || !callbacks.getPayOrder) return; const h = (tag, className = "", text = "", ...children) => { const el = doc.createElement(tag); if (className) el.className = className; if (text) el.textContent = text; el.append(...children.filter(Boolean)); return el; }; const button = (className, text, ...children) => { const el = h("button", className, text, ...children); el.type = "button"; return el; }; const yuan = (value) => `\xA5${Number(value || 0).toFixed(2)}`; const shortYuan = (value) => `\xA5${Number(value || 0).toFixed(Number.isInteger(Number(value)) ? 0 : 2)}`; let config = { enabled: false, methods: [], packages: [] }; let shopUrl = ""; let method = "alipay"; try { method = win.localStorage.getItem(METHOD_KEY) || "alipay"; } catch (e) { } const pickMethod = () => config.methods.includes(method) ? method : config.methods[0] || "alipay"; const rememberMethod = (value) => { method = value; try { win.localStorage.setItem(METHOD_KEY, value); } catch (e) { } }; const fit = (need) => config.packages.find((pkg) => pkg.points >= need) || config.packages[config.packages.length - 1]; let activeFlow = null; const qrSvg = (text, mark) => { var _a; const qr = qrcode(0, "H"); qr.addData(text); qr.make(); const count = qr.getModuleCount(); const svg = doc.createElementNS(SVG_NS2, "svg"); svg.setAttribute("viewBox", `0 0 ${count} ${count}`); svg.setAttribute("shape-rendering", "crispEdges"); svg.setAttribute("role", "img"); svg.setAttribute("aria-label", "\u4ED8\u6B3E\u4E8C\u7EF4\u7801"); let d = ""; for (let r = 0; r < count; r += 1) for (let c = 0; c < count; c += 1) if (qr.isDark(r, c)) d += `M${c} ${r}h1v1h-1z`; const path = doc.createElementNS(SVG_NS2, "path"); path.setAttribute("d", d); path.setAttribute("fill", "#1f1d18"); svg.append(path); const box = h("div", "lt-pay-qr"); box.append(svg, h("span", `lt-pay-qr-mark is-${mark}`, ((_a = METHODS[mark]) == null ? void 0 : _a.mark) || "")); return box; }; const methodRow = (onPick) => { const row = h("div", "lt-pay-methods"); row.setAttribute("role", "radiogroup"); row.setAttribute("aria-label", "\u652F\u4ED8\u65B9\u5F0F"); for (const key of config.methods) { const item = button("lt-pay-method", "", h("i", `is-${key}`, METHODS[key].mark), doc.createTextNode(METHODS[key].name)); item.setAttribute("role", "radio"); item.setAttribute("aria-checked", String(pickMethod() === key)); item.addEventListener("click", () => { rememberMethod(key); onPick(); }); row.append(item); } return row; }; function createFlow(host, { mode, onPaid, onBack }) { const flow = { host, mode, pkg: null, order: null, timer: 0, view: "", need: 0, more: false }; const stop = () => { win.clearTimeout(flow.timer); flow.timer = 0; }; const show = (...nodes) => { host.replaceChildren(...nodes); }; flow.reset = (need = 0) => { stop(); flow.order = null; flow.need = need; flow.more = false; flow.pkg = need ? fit(need) : flow.pkg && config.packages.find((pkg) => pkg.id === flow.pkg.id) || config.packages[Math.min(1, config.packages.length - 1)]; render(mode === "drawer" ? "pick" : "offer"); }; flow.stop = stop; function render(view, extra = {}) { flow.view = view; host.dataset.view = view; if (["qr", "paid", "failed"].includes(view)) win.requestAnimationFrame(() => host.scrollIntoView({ block: "nearest", behavior: "smooth" })); if (view === "pick") return show(pickView()); if (view === "offer") return show(offerView()); if (view === "qr" || view === "expired") return show(qrView(view === "expired")); if (view === "paid") return show(paidView()); if (view === "failed") return show(failedView(extra.message)); if (view === "loading") return show(h("div", "lt-pay-loading", "\u6B63\u5728\u751F\u6210\u4ED8\u6B3E\u7801\u2026")); } function pickView() { var _a; const wrap = h("div", "lt-pay-pick"); const head = h("div", "lt-pay-label", "\u9009\u4E2A\u5957\u9910", h("small", "", "\u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206")); const grid = h("div", "lt-pay-packages"); grid.setAttribute("role", "radiogroup"); grid.setAttribute("aria-label", "\u79EF\u5206\u5957\u9910"); for (const pkg of config.packages) { const item = button("lt-pay-package", "", h("strong", "", String(pkg.points), h("small", "", "\u79EF\u5206")), h("span", "", shortYuan(pkg.priceYuan))); item.setAttribute("role", "radio"); item.setAttribute("aria-checked", String(pkg === flow.pkg)); item.addEventListener("click", () => { var _a2; flow.pkg = pkg; render("pick"); (_a2 = host.querySelector('[aria-checked="true"]')) == null ? void 0 : _a2.focus(); }); grid.append(item); } const go = button("lt-button lt-button--primary lt-pay-go", `${METHODS[pickMethod()].name}\u626B\u7801\u4ED8 ${yuan((_a = flow.pkg) == null ? void 0 : _a.priceYuan)}`); go.addEventListener("click", () => start()); wrap.append(head, grid, methodRow(() => render("pick")), go, h("p", "lt-pay-fine", "\u4ED8\u6B3E\u540E\u79EF\u5206\u7ACB\u5373\u5230\u8D26\uFF0C\u4E0D\u7528\u5361\u5BC6")); return wrap; } function offerView() { const pkg = flow.pkg; const wrap = h("div", "lt-pay-offer"); const go = button("lt-button lt-button--primary", `${METHODS[pickMethod()].name} ${shortYuan(pkg.priceYuan)}`); go.addEventListener("click", () => start()); const enough = pkg.points >= flow.need; wrap.append(h( "div", "lt-pay-offer-row", "", h( "div", "lt-pay-offer-amt", "", h("b", "", `\u8865 ${pkg.points} \u79EF\u5206 \xB7 ${shortYuan(pkg.priceYuan)}`), h("small", "", enough ? `\u591F\u7B54\u5B8C\u5269\u4E0B\u7684 ${flow.need} \u9898` : `\u8FD8\u5DEE ${flow.need - pkg.points} \u9898`) ), go )); if (flow.more) { const list = h("div", "lt-pay-mini"); list.setAttribute("role", "radiogroup"); list.setAttribute("aria-label", "\u79EF\u5206\u5957\u9910"); for (const item of config.packages) { const choice = button("", "", h("b", "", shortYuan(item.priceYuan)), doc.createTextNode(String(item.points))); choice.setAttribute("role", "radio"); choice.setAttribute("aria-checked", String(item === pkg)); choice.addEventListener("click", () => { flow.pkg = item; render("offer"); }); list.append(choice); } wrap.append(list); } const more = button("lt-pay-link", flow.more ? "\u6536\u8D77" : "\u6362\u4E2A\u5957\u9910 \u203A"); more.addEventListener("click", () => { flow.more = !flow.more; render("offer"); }); const actions = h("div", "lt-pay-offer-more", "", more); const other = config.methods.find((key) => key !== pickMethod()); if (other) { const swap = button("lt-pay-link", `\u6539\u7528${METHODS[other].name}`); swap.addEventListener("click", () => { rememberMethod(other); render("offer"); }); actions.append(swap); } wrap.append(actions); return wrap; } function qrView(expired) { var _a; const order = flow.order; const box = h("div", "lt-pay-qrbox"); const head = h("div", "lt-pay-qrhead", "", h("strong", "", yuan(order.amountYuan)), h("small", "", `${order.points} \u79EF\u5206`)); const code = qrSvg(order.payInfo || " ", order.method); if (expired) { const renew = button("lt-button lt-button--primary", "\u6362\u4E2A\u65B0\u7801"); renew.addEventListener("click", () => start()); code.append(h("div", "lt-pay-qr-mask", "", h("span", "", "\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F"), renew)); } const scan = h("div", "lt-pay-scan", "\u6253\u5F00", h("b", "", ((_a = METHODS[order.method]) == null ? void 0 : _a.name) || ""), doc.createTextNode("\u626B\u4E00\u626B")); const wait = h("div", "lt-pay-wait", "", h("i"), h("span", "", "")); const tick = () => { const left = Math.max(0, Math.round((Date.parse(order.expiresAt) - Date.now()) / 1e3)); wait.lastChild.textContent = expired ? "\u5DF2\u7ECF\u4ED8\u8FC7\u6B3E\u7684\u8BDD\uFF0C\u5230\u8D26\u4F1A\u81EA\u52A8\u663E\u793A" : `\u7B49\u5F85\u4ED8\u6B3E \xB7 ${Math.floor(left / 60)}:${String(left % 60).padStart(2, "0")} \u5185\u6709\u6548`; }; tick(); flow.tick = tick; const foot = h("div", "lt-pay-qrfoot"); const back = button("lt-pay-link", mode === "drawer" ? "\u2039 \u6362\u5957\u9910" : "\u2039 \u8FD4\u56DE"); back.addEventListener("click", () => { stop(); flow.order = null; render(mode === "drawer" ? "pick" : "offer"); onBack == null ? void 0 : onBack(); }); foot.append(back); const other = config.methods.find((key) => key !== order.method); if (other) { const swap = button("lt-pay-link", `\u6539\u7528${METHODS[other].name}`); swap.addEventListener("click", () => { rememberMethod(other); start(); }); foot.append(swap); } box.append(head, code, scan, wait, foot); return box; } function paidView() { const order = flow.order; const wrap = h("div", "lt-pay-done"); const tickIcon = h("span", "lt-pay-done-tick", "\u2713"); tickIcon.setAttribute("aria-hidden", "true"); wrap.append(tickIcon, h("b", "", `+${order.points} \u79EF\u5206\u5DF2\u5230\u8D26`), h("small", "", `${yuan(order.amountYuan)} \xB7 \u8BA2\u5355 ${order.orderNo}`)); if (flow.resumeText) wrap.append(h("span", "lt-pay-resume", "", h("i"), doc.createTextNode(flow.resumeText))); return wrap; } function failedView(message) { const wrap = h("div", "lt-pay-failed"); wrap.append(h("b", "", "\u73B0\u5728\u4E0B\u4E0D\u4E86\u5355"), h("small", "", message || "\u652F\u4ED8\u901A\u9053\u6682\u65F6\u8FDE\u4E0D\u4E0A\uFF0C\u94B1\u6CA1\u6709\u6263\u3002")); const retry = button("lt-button lt-button--secondary", "\u518D\u8BD5\u4E00\u6B21"); retry.addEventListener("click", () => start()); const row = h("div", "lt-pay-failed-actions", "", retry); if (shopUrl && mode === "inline") { const shop = button("lt-button lt-button--ghost", "\u53BB\u5E97\u94FA\u4E70\u5361\u5BC6 \u2197"); shop.addEventListener("click", () => win.open(shopUrl, "_blank", "noopener,noreferrer")); row.append(shop); } wrap.append(row); return wrap; } async function start() { if (activeFlow && activeFlow !== flow) activeFlow.stop(); activeFlow = flow; stop(); const chosen = pickMethod(); render("loading"); try { flow.order = await callbacks.createPayOrder(flow.pkg.id, chosen); render("qr"); poll(); } catch (error) { render("failed", { message: (error == null ? void 0 : error.code) === "RATE_LIMITED" ? "\u4E0B\u5355\u592A\u9891\u7E41\u4E86\uFF0C\u8FC7\u4E00\u4F1A\u513F\u518D\u8BD5\u3002" : error == null ? void 0 : error.message }); } } function poll() { stop(); const order = flow.order; if (!order) return; const expiredFor = Date.now() - Date.parse(order.expiresAt); if (expiredFor > LATE_CHECK_MS) return; if (expiredFor > 0 && flow.view === "qr") render("expired"); flow.timer = win.setTimeout(async () => { var _a; if (flow.order !== order) return; try { const status = await callbacks.getPayOrder(order.orderNo); if (flow.order !== order) return; if (status.status === "paid") { flow.order = { ...order, ...status }; flow.resumeText = await (onPaid == null ? void 0 : onPaid(flow.order)) || ""; render("paid"); return; } if (status.status === "failed") { render("failed"); return; } } catch (e) { } (_a = flow.tick) == null ? void 0 : _a.call(flow); poll(); }, doc.hidden ? POLL_HIDDEN_MS : POLL_MS); } return flow; } const payBox = h("section", "lt-pay"); payBox.hidden = true; drawer.prepend(payBox); const alt = h("div", "lt-pay-alt"); const redeemToggle = button("lt-pay-link", "\u5DF2\u6709\u5361\u5BC6\uFF1F\u5151\u6362 \u203A"); const shopLink = button("lt-pay-link", "\u53BB\u5E97\u94FA\u8D2D\u4E70 \u2197"); alt.append(redeemToggle, shopLink); payBox.after(alt); alt.hidden = true; redeemToggle.addEventListener("click", () => { var _a; const open = !drawer.classList.contains("lt-pay-redeem-open"); drawer.classList.toggle("lt-pay-redeem-open", open); redeemToggle.textContent = open ? "\u6536\u8D77\u5361\u5BC6\u5151\u6362" : "\u5DF2\u6709\u5361\u5BC6\uFF1F\u5151\u6362 \u203A"; if (open) (_a = panel.querySelector("#cxds-card-code")) == null ? void 0 : _a.focus(); }); shopLink.addEventListener("click", () => { if (shopUrl) win.open(shopUrl, "_blank", "noopener,noreferrer"); }); const drawerFlow = createFlow(payBox, { mode: "drawer", onPaid: async (order) => { var _a; await ((_a = callbacks.payCompleted) == null ? void 0 : _a.call(callbacks, order)); return ""; } }); recharge.addEventListener("toggle", () => { if (!config.enabled) return; if (recharge.open) { if (!drawerFlow.order || drawerFlow.view === "paid" || drawerFlow.view === "failed") drawerFlow.reset(); win.requestAnimationFrame(() => { var _a; return (_a = payBox.querySelector(".lt-pay-go")) == null ? void 0 : _a.focus(); }); } }); const short = h("section", "lt-pay-short"); short.hidden = true; short.setAttribute("aria-live", "polite"); const shortHead = h("div", "lt-pay-short-head"); const shortTitle = h("b"); const shortDesc = h("small"); const shortClose = button("lt-pay-short-close", "\xD7"); shortClose.setAttribute("aria-label", "\u5173\u95ED"); shortHead.append(h("div", "", "", shortTitle, shortDesc), shortClose); const shortHost = h("div", "lt-pay-short-flow"); const partial = button("lt-button lt-button--ghost lt-pay-partial", ""); const fallback = h("div", "lt-pay-short-fallback"); short.append(shortHead, shortHost, partial, fallback); const anchor = panel.querySelector(".lt-v4-cta") || panel.querySelector(".lt-v4-hero"); (anchor ? anchor.after.bind(anchor) : panel.querySelector(".cxds-body").prepend.bind(panel.querySelector(".cxds-body")))(short); let shortDetail = null; const decide = (action) => { if ((shortDetail == null ? void 0 : shortDetail.phase) !== "before" || shortDetail.decided) return; shortDetail.decided = true; win.dispatchEvent(new CustomEvent("drip7boi:balance-short-decision", { detail: { id: shortDetail.id, action } })); }; const hideShort = () => { short.hidden = true; shortFlow.stop(); bubble.hidden = true; shortDetail = null; }; const shortFlow = createFlow(shortHost, { mode: "inline", onPaid: async (order) => { var _a, _b; const detail = shortDetail; await ((_a = callbacks.payCompleted) == null ? void 0 : _a.call(callbacks, order)); short.classList.add("is-paid"); partial.hidden = true; bubble.hidden = true; if ((detail == null ? void 0 : detail.phase) === "before") decide("paid"); else if ((detail == null ? void 0 : detail.phase) === "during") (_b = callbacks.resumeAnswering) == null ? void 0 : _b.call(callbacks); win.setTimeout(() => { if (shortDetail === detail) hideShort(); }, 3500); return (detail == null ? void 0 : detail.phase) === "during" && detail.current ? `AI \u5DF2\u7EE7\u7EED\uFF0C\u6B63\u5728\u7B54\u7B2C ${detail.current} \u9898` : (detail == null ? void 0 : detail.phase) === "before" ? "AI \u5F00\u59CB\u4F5C\u7B54" : ""; } }); partial.addEventListener("click", () => { decide("partial"); hideShort(); }); shortClose.addEventListener("click", () => { decide("partial"); hideShort(); }); const renderFallback = () => { fallback.replaceChildren(); if (config.enabled) return; const open = button("lt-button lt-button--primary", "\u5151\u6362\u5361\u5BC6"); open.addEventListener("click", () => { var _a; recharge.open = true; (_a = panel.querySelector("#cxds-card-code")) == null ? void 0 : _a.focus(); }); fallback.append(open); if (shopUrl) { const shop = button("lt-button lt-button--ghost", "\u53BB\u5E97\u94FA\u4E70 \u2197"); shop.addEventListener("click", () => win.open(shopUrl, "_blank", "noopener,noreferrer")); fallback.append(shop); } }; win.addEventListener("drip7boi:balance-short", (event) => { const detail = event.detail || {}; const need = Math.max(1, Number(detail.need) || 1); shortDetail = { ...detail, need }; bubbleDismissed = false; short.classList.remove("is-paid"); if (detail.phase === "before") { shortTitle.textContent = `\u79EF\u5206\u53EA\u591F\u7B54 ${detail.balance} \u9898`; shortDesc.textContent = `\u672C\u9875\u8FD8\u6709 ${detail.total} \u9898\u6CA1\u7B54\uFF0C\u8FD8\u5DEE ${need} \u79EF\u5206`; partial.textContent = `\u5148\u7B54\u524D ${detail.balance} \u9898`; partial.hidden = false; } else { shortTitle.textContent = detail.current && detail.total ? `\u7B2C ${detail.current} / ${detail.total} \u9898 \xB7 \u79EF\u5206\u7528\u5B8C\u4E86` : "\u79EF\u5206\u7528\u5B8C\u4E86"; shortDesc.textContent = detail.current > 1 ? `\u5DF2\u6682\u505C\uFF0C\u524D ${detail.current - 1} \u9898\u5DF2\u7ECF\u586B\u597D` : "AI \u4F5C\u7B54\u5DF2\u6682\u505C"; partial.hidden = true; } renderFallback(); shortHost.hidden = !config.enabled; if (config.enabled) shortFlow.reset(need); short.hidden = false; if (panel.classList.contains("cxds-hidden")) showBubble(); }); win.addEventListener("drip7boi:balance-short-clear", () => { if (shortDetail && !short.classList.contains("is-paid")) hideShort(); }); const bubble = h("button", "lt-ui lt-pay-bubble"); bubble.type = "button"; bubble.dataset.theme = "golden-wing"; bubble.hidden = true; const bubbleTitle = h("b"); const bubbleAction = h("span"); bubble.append(bubbleTitle, bubbleAction); const bubbleClose = button("lt-ui lt-pay-bubble-close", ""); bubbleClose.dataset.theme = "golden-wing"; bubbleClose.setAttribute("aria-label", "\u5173\u95ED\u63D0\u793A"); bubbleClose.title = "\u5173\u95ED\u63D0\u793A"; bubbleClose.innerHTML = ''; bubbleClose.hidden = true; doc.body.append(bubble, bubbleClose); new win.MutationObserver(() => { bubbleClose.hidden = bubble.hidden; }).observe(bubble, { attributes: true, attributeFilter: ["hidden"] }); let bubbleDismissed = false; bubbleClose.addEventListener("click", () => { bubbleDismissed = true; bubble.hidden = true; }); function showBubble() { if (!shortDetail || bubbleDismissed) return; bubbleTitle.textContent = shortDetail.phase === "during" && shortDetail.current ? `\u79EF\u5206\u7528\u5B8C\u4E86\uFF0C\u505C\u5728\u7B2C ${shortDetail.current} \u9898` : `\u79EF\u5206\u53EA\u591F\u7B54 ${shortDetail.balance} \u9898`; const pkg = config.enabled ? fit(shortDetail.need) : null; bubbleAction.textContent = pkg ? `\u8865 ${shortYuan(pkg.priceYuan)} \u63A5\u7740\u7B54 \u203A` : "\u70B9\u8FD9\u91CC\u5145\u503C \u203A"; const rect = logo.getBoundingClientRect(); bubble.hidden = false; const width = bubble.offsetWidth || 220; const height = bubble.offsetHeight || 52; const top = rect.top - height - 8 >= 8 ? rect.top - height - 8 : rect.bottom + 8; bubble.style.left = `${Math.max(8, Math.min(rect.right - width, win.innerWidth - width - 8))}px`; bubble.style.top = `${Math.max(8, Math.min(top, win.innerHeight - height - 8))}px`; bubbleClose.style.left = `${parseFloat(bubble.style.left) + width - 25}px`; bubbleClose.style.top = `${parseFloat(bubble.style.top) + 5}px`; } bubble.addEventListener("click", () => { bubble.hidden = true; if (panel.classList.contains("cxds-hidden")) logo.click(); win.requestAnimationFrame(() => short.scrollIntoView({ block: "nearest", behavior: "smooth" })); }); new win.MutationObserver(() => { if (!panel.classList.contains("cxds-hidden")) bubble.hidden = true; else if (!short.hidden && !short.classList.contains("is-paid")) showBubble(); }).observe(panel, { attributes: true, attributeFilter: ["class"] }); const applyConfig = (detail) => { const pay = (detail == null ? void 0 : detail.panelPay) || {}; const packages = Array.isArray(pay.packages) ? pay.packages.map((pkg) => ({ id: Number(pkg.id), points: Number(pkg.points), priceYuan: Number(pkg.priceYuan) })).filter((pkg) => pkg.id > 0 && pkg.points > 0 && pkg.priceYuan > 0) : []; const methods = Array.isArray(pay.methods) ? pay.methods.filter((key) => METHODS[key]) : []; config = { enabled: Boolean(pay.enabled) && packages.length > 0 && methods.length > 0, methods, packages }; try { const url = new URL(String((detail == null ? void 0 : detail.shopUrl) || "")); shopUrl = url.protocol === "https:" && !url.username && !url.password ? url.href : ""; } catch (e) { shopUrl = ""; } panel.dataset.ltPay = String(config.enabled); drawer.classList.toggle("lt-pay-on", config.enabled); payBox.hidden = alt.hidden = !config.enabled; shopLink.hidden = !shopUrl; if (config.enabled && (!drawerFlow.order || drawerFlow.view === "pick")) drawerFlow.reset(); }; win.addEventListener("drip7boi:config", (event) => applyConfig(event.detail)); if (win.__dripLastConfig) applyConfig(win.__dripLastConfig); } function mountPanelClose(panel) { const doc = panel.ownerDocument; const node = (tag, className, text = "") => { const el = doc.createElement(tag); el.className = className; if (text) el.textContent = text; return el; }; const icon = (name) => { const template = doc.createElement("template"); template.innerHTML = iconSvg[name]; const svg = template.content.firstElementChild; svg.classList.add("lt-icon"); svg.setAttribute("aria-hidden", "true"); return svg; }; const closeButton = (label) => { const button = node("button", "lt-close"); button.type = "button"; button.append(icon("x")); button.setAttribute("aria-label", label); button.title = label; return button; }; const recharge = panel.querySelector(".drip-recharge"); const rechargeEntry = panel.querySelector(".lt-v3-recharge"); const [billingEntry, recordsEntry] = panel.querySelectorAll(".lt-v4-links .lt-v4-link"); const invite = panel.querySelector(".lt-invite-card"); const inviteEntry = panel.querySelector(".lt-invite-entry"); const layers = []; let order = []; const opened = (layer) => { order = order.filter((item) => item !== layer); if (layer.isOpen()) { order.push(layer); for (const other of layers) if (other !== layer && other.isOpen()) other.shut(); } syncRechargeEntry(); }; const close = (layer) => { var _a, _b; layer.shut(); (_a = layer.entry) == null ? void 0 : _a.focus({ preventScroll: true }); (_b = layer.entry) == null ? void 0 : _b.scrollIntoView({ block: "nearest", behavior: "smooth" }); }; const addLayer = (layer) => { layers.push(layer); layer.close.addEventListener("click", () => close(layer)); }; const addDetails = (details, entry, title, host) => { if (!details) return; const head = node("div", "lt-sheet-head"); const button = closeButton(`\u6536\u8D77${title}`); head.append(node("b", "", title), button); if (host) host.prepend(head); else details.querySelector("summary").after(head); const layer = { entry, close: button, isOpen: () => details.open, shut: () => { details.open = false; } }; addLayer(layer); details.addEventListener("toggle", () => opened(layer)); }; addDetails(recharge, rechargeEntry, "\u5145\u503C\u79EF\u5206", recharge == null ? void 0 : recharge.querySelector(".drip-recharge-content")); addDetails(panel.querySelector(".lt-billing-details"), billingEntry, "\u8BA1\u8D39\u8BF4\u660E"); addDetails(panel.querySelector(".lt-record-details"), recordsEntry, "\u5168\u90E8\u8BB0\u5F55"); if (invite && inviteEntry) { const button = closeButton("\u6536\u8D77\u9080\u8BF7\u5361"); invite.querySelector(".lt-invite-head").append(button); const layer = { entry: inviteEntry, close: button, isOpen: () => !invite.hidden, shut: () => { if (!invite.hidden) inviteEntry.click(); } }; addLayer(layer); new doc.defaultView.MutationObserver(() => opened(layer)).observe(invite, { attributes: true, attributeFilter: ["hidden"] }); } for (const old of panel.querySelectorAll(".lt-pay-short-close, .lt-invite-nudge-close")) { old.classList.add("lt-close"); old.replaceChildren(icon("x")); } function syncRechargeEntry() { if (!rechargeEntry || !recharge) return; const label = recharge.open ? "\u6536\u8D77" : "\u5145\u503C"; if (rechargeEntry.textContent.trim() === label) return; rechargeEntry.replaceChildren(doc.createTextNode(label)); if (recharge.open) rechargeEntry.append(icon("chevron-down")); } syncRechargeEntry(); doc.addEventListener("keydown", (event) => { var _a, _b; if (event.key !== "Escape" || panel.classList.contains("cxds-hidden") || !panel.contains(doc.activeElement)) return; event.preventDefault(); const confirm = panel.querySelector(".lt-v3-clear-confirm"); if (confirm && !confirm.hidden) { (_a = confirm.querySelector("button:last-child")) == null ? void 0 : _a.click(); return; } const top = order.filter((layer) => layer.isOpen()).pop(); if (top) { close(top); return; } (_b = panel.querySelector('[data-action="hide"]')) == null ? void 0 : _b.click(); }); } var REMEMBER_KEY = "drip7boi:dialogue-rounds"; var QUICK = [3, 5, 8, 10]; function mountPanelRounds(panel) { const doc = panel.ownerDocument; const win = doc.defaultView; const h = (tag, className = "", text = "") => { const el = doc.createElement(tag); if (className) el.className = className; if (text) el.textContent = text; return el; }; const button = (className, text) => { const el = h("button", className, text); el.type = "button"; return el; }; const root = h("div", "lt-ui lt-rounds"); root.dataset.theme = "golden-wing"; root.hidden = true; const card = h("div", "lt-rounds-card"); card.setAttribute("role", "dialog"); card.setAttribute("aria-modal", "true"); card.setAttribute("aria-labelledby", "lt-rounds-title"); const eyebrow = h("p", "lt-rounds-eyebrow"); const title = h("h2", "lt-rounds-title", "\u8FD9\u6B21\u804A\u51E0\u8F6E\uFF1F"); title.id = "lt-rounds-title"; const desc = h("p", "lt-rounds-desc", "AI \u4EE5\u4F60\u7684\u8EAB\u4EFD\u53D1\u4E00\u6761\u6D88\u606F\u7B97\u4E00\u8F6E\uFF0C\u6BCF\u8F6E\u6263 1 \u79EF\u5206\u3002\u591A\u804A\u51E0\u8F6E\uFF0C\u8BA8\u8BBA\u66F4\u5145\u5206\u3002"); const stepper = h("div", "lt-rounds-stepper"); const minus = button("lt-rounds-step", "\u2212"); minus.setAttribute("aria-label", "\u5C11\u4E00\u8F6E"); const plus = button("lt-rounds-step", "+"); plus.setAttribute("aria-label", "\u591A\u4E00\u8F6E"); const value = h("output", "lt-rounds-value"); const count = h("b"); value.append(count, h("span", "", "\u8F6E")); stepper.append(minus, value, plus); const quick = h("div", "lt-rounds-quick"); const chips = QUICK.map((n) => { const chip = button("lt-rounds-chip", `${n} \u8F6E`); chip.dataset.rounds = String(n); quick.append(chip); return chip; }); const summary = h("div", "lt-rounds-summary"); const cost = h("span"); const balanceText = h("span", "lt-rounds-balance"); summary.append(cost, balanceText); const note = h("p", "lt-rounds-note"); const actions = h("div", "lt-rounds-actions"); const cancel = button("lt-button lt-button--ghost lt-rounds-cancel", "\u4E0D\u7528\u4E86"); const start = button("lt-button lt-button--primary lt-rounds-start", ""); actions.append(cancel, start); card.append(eyebrow, title, desc, stepper, quick, summary, note, actions); root.append(card); doc.body.append(root); let detail = null; let rounds = 5; const min = () => Math.max(1, ((detail == null ? void 0 : detail.selfCount) || 0) + 1); const max = () => Math.max(min(), Number(detail == null ? void 0 : detail.max) || 20); const render = () => { const done = (detail == null ? void 0 : detail.selfCount) || 0; const charge = Math.max(0, rounds - done); const balance = Number(detail == null ? void 0 : detail.balance); count.textContent = String(rounds); minus.disabled = rounds <= min(); plus.disabled = rounds >= max(); for (const chip of chips) { const n = Number(chip.dataset.rounds); chip.disabled = n < min() || n > max(); chip.classList.toggle("is-on", n === rounds); chip.setAttribute("aria-pressed", String(n === rounds)); } cost.textContent = `\u5171\u6263 ${charge} \u79EF\u5206`; const known = Number.isFinite(balance) && (detail == null ? void 0 : detail.balance) !== null && (detail == null ? void 0 : detail.balance) !== ""; balanceText.textContent = known ? `\u4F59\u989D ${balance} \u79EF\u5206` : ""; const short = known && balance < charge; summary.classList.toggle("is-short", short); note.textContent = short ? `\u4F59\u989D\u53EA\u591F\u518D\u804A ${Math.max(0, balance)} \u8F6E\uFF0C\u804A\u5230\u4E00\u534A\u79EF\u5206\u7528\u5B8C\u4F1A\u6682\u505C\uFF0C\u53EF\u4EE5\u5148\u5145\u503C\u6216\u5C11\u804A\u51E0\u8F6E` : done ? `\u5DF2\u7ECF\u804A\u4E86 ${done} \u8F6E\uFF0C\u8FD9\u6B21\u53EA\u6263\u65B0\u589E\u7684 ${charge} \u8F6E` : ""; note.hidden = !note.textContent; start.textContent = `\u5F00\u59CB\uFF0C\u6263 ${charge} \u79EF\u5206`; }; const set = (n) => { rounds = Math.min(max(), Math.max(min(), Math.round(n) || min())); render(); }; const close = () => { root.hidden = true; detail = null; win.removeEventListener("keydown", onKey, true); }; const decide = (chosen) => { if (!detail) return; const id = detail.id; if (chosen) { try { win.localStorage.setItem(REMEMBER_KEY, String(chosen)); } catch (e) { } } close(); win.dispatchEvent(new CustomEvent("drip7boi:dialogue-rounds-decision", { detail: { id, rounds: chosen } })); }; const trusted = (handler) => (event) => { if (event.isTrusted) handler(event); }; minus.addEventListener("click", trusted(() => set(rounds - 1))); plus.addEventListener("click", trusted(() => set(rounds + 1))); quick.addEventListener("click", trusted((event) => { var _a, _b; const chip = (_b = (_a = event.target).closest) == null ? void 0 : _b.call(_a, ".lt-rounds-chip"); if (chip && !chip.disabled) set(Number(chip.dataset.rounds)); })); start.addEventListener("click", trusted(() => decide(rounds))); cancel.addEventListener("click", trusted(() => decide(null))); root.addEventListener("click", trusted((event) => { if (event.target === root) decide(null); })); function onKey(event) { if (!event.isTrusted || root.hidden) return; if (event.key === "Escape") { event.preventDefault(); decide(null); } else if (event.key === "ArrowUp" || event.key === "ArrowRight") { event.preventDefault(); set(rounds + 1); } else if (event.key === "ArrowDown" || event.key === "ArrowLeft") { event.preventDefault(); set(rounds - 1); } } win.addEventListener("drip7boi:dialogue-rounds", (event) => { const next = event.detail; if (!(next == null ? void 0 : next.id)) return; detail = next; let remembered = NaN; try { remembered = Number(win.localStorage.getItem(REMEMBER_KEY)); } catch (e) { } eyebrow.textContent = next.agentName ? `AI \u5B9E\u8DF5 \xB7 \u548C\u201C${next.agentName}\u201D\u5BF9\u8BDD` : "AI \u5B9E\u8DF5\u5BF9\u8BDD"; title.textContent = next.selfCount ? "\u63A5\u7740\u804A\uFF0C\u4E00\u5171\u51E0\u8F6E\uFF1F" : "\u8FD9\u6B21\u804A\u51E0\u8F6E\uFF1F"; set(Number.isFinite(remembered) && remembered > 0 ? remembered : Number(next.rounds) || 5); root.hidden = false; win.addEventListener("keydown", onKey, true); start.focus({ preventScroll: true }); }); win.addEventListener("drip7boi:dialogue-rounds-clear", close); } function mountPanelUid(panel, callbacks = {}) { const doc = panel.ownerDocument; const win = doc.defaultView; const account = panel.querySelector(".cxds-license-box"); if (!account || !callbacks.getAccountSnapshot) return; const h = (tag, className = "", text = "") => { const el = doc.createElement(tag); if (className) el.className = className; if (text) el.textContent = text; return el; }; const line = h("div", "lt-uid-line"); const value = h("b"); line.append(h("span", "", "\u5B66\u4E60\u901A UID"), value); account.prepend(line); const snapshot = () => callbacks.getAccountSnapshot() || {}; const currentUid = () => { const uid = String(snapshot().chaoxingUid || ""); return /^\d{5,12}$/.test(uid) ? uid : ""; }; const render = () => { const uid = currentUid(); value.textContent = uid || "\u672A\u8BC6\u522B\uFF0C\u8BF7\u5237\u65B0\u6216\u91CD\u65B0\u767B\u5F55\u5B66\u4E60\u901A"; line.classList.toggle("is-missing", !uid); }; render(); for (const type2 of ["drip7boi:balance", "drip7boi:account-changed", "drip7boi:account-ready"]) win.addEventListener(type2, render); const root = h("div", "lt-ui lt-rounds lt-uid-notice"); root.dataset.theme = "golden-wing"; root.hidden = true; const card = h("div", "lt-rounds-card"); card.setAttribute("role", "dialog"); card.setAttribute("aria-modal", "true"); card.setAttribute("aria-labelledby", "lt-uid-notice-title"); const title = h("h2", "lt-rounds-title", "\u5B66\u4E60\u901A\u8D26\u53F7\u5DF2\u66F4\u6362"); title.id = "lt-uid-notice-title"; const desc = h("p", "lt-rounds-desc", "\u79EF\u5206\u6309\u5B66\u4E60\u901A\u8D26\u53F7\u5206\u5F00\u8BA1\u7B97\u3002\u73B0\u5728\u7528\u7684\u662F\u8FD9\u4E2A\u8D26\u53F7\u81EA\u5DF1\u7684\u79EF\u5206\uFF0C\u539F\u6765\u8D26\u53F7\u7684\u79EF\u5206\u4E0D\u53D7\u5F71\u54CD\uFF0C\u6362\u56DE\u53BB\u5C31\u80FD\u63A5\u7740\u7528\u3002"); const summary = h("div", "lt-rounds-summary"); const uidText = h("span"); const balanceText = h("span", "lt-rounds-balance"); summary.append(uidText, balanceText); const actions = h("div", "lt-rounds-actions"); const ok = h("button", "lt-button lt-button--ghost lt-rounds-cancel", "\u77E5\u9053\u4E86"); ok.type = "button"; const recharge = h("button", "lt-button lt-button--primary lt-rounds-start", "\u7ED9\u8FD9\u4E2A\u8D26\u53F7\u5145\u503C"); recharge.type = "button"; actions.append(ok, recharge); card.append(h("p", "lt-rounds-eyebrow", "\u5927\u9E1F\u52A9\u624B"), title, desc, summary, actions); root.append(card); doc.body.append(root); const fill = () => { uidText.textContent = `\u5F53\u524D UID ${currentUid() || "\u672A\u8BC6\u522B"}`; const balance = snapshot().balancePoints; balanceText.textContent = balance === null || balance === void 0 || balance === "" ? "" : `\u4F59\u989D ${balance} \u79EF\u5206`; }; const close = () => { root.hidden = true; win.removeEventListener("keydown", onKey, true); }; function onKey(event) { if (event.isTrusted && event.key === "Escape") { event.preventDefault(); close(); } } ok.addEventListener("click", (event) => { if (event.isTrusted) close(); }); root.addEventListener("click", (event) => { if (event.isTrusted && event.target === root) close(); }); recharge.addEventListener("click", (event) => { var _a, _b; if (!event.isTrusted) return; close(); if (panel.classList.contains("cxds-hidden")) (_a = doc.getElementById("cxds-logo")) == null ? void 0 : _a.click(); const drawer = panel.querySelector(".drip-recharge"); if (drawer && !drawer.open) (_b = panel.querySelector('[data-action="show-recharge"]')) == null ? void 0 : _b.click(); }); win.addEventListener("drip7boi:uid-switched", () => { fill(); root.hidden = false; win.addEventListener("keydown", onKey, true); ok.focus({ preventScroll: true }); }); win.addEventListener("drip7boi:balance", () => { if (!root.hidden) fill(); }); } var SVG_NS3 = "http://www.w3.org/2000/svg"; var serial = 0; var wingOutline = "M35 18 C54 43 94 63 120 82 C136 97 130 121 150 133 L165 135 C149 147 132 151 111 150 L73 148 L53 139 L40 126 L29 112 L32 97 C24 87 21 70 23 49 L33 58 C30 42 30 29 35 18 Z"; function svgNode(tag, attributes = {}) { const node = document.createElementNS(SVG_NS3, tag); for (const [name, value] of Object.entries(attributes)) node.setAttribute(name, value); return node; } function birdMark(logoUrl) { const prefix = `lt-bird-${++serial}`; const svg = svgNode("svg", { viewBox: "0 0 256 256", class: "lt-launcher-mark lt-bird-mark", "aria-hidden": "true", focusable: "false" }); const defs = svgNode("defs"); const wingClip = svgNode("clipPath", { id: `${prefix}-wing`, clipPathUnits: "userSpaceOnUse" }); wingClip.append(svgNode("path", { d: wingOutline })); const bodyClip = svgNode("clipPath", { id: `${prefix}-body`, clipPathUnits: "userSpaceOnUse" }); bodyClip.append(svgNode("path", { d: `M0 0H256V256H0Z ${wingOutline}`, "clip-rule": "evenodd" })); defs.append(wingClip, bodyClip); const image = () => svgNode("image", { href: logoUrl, width: "256", height: "256" }); const wing = svgNode("g", { class: "lt-bird-wing" }); const flap = svgNode("g", { class: "lt-bird-wing-flap" }); const clippedWing = svgNode("g", { "clip-path": `url(#${prefix}-wing)` }); clippedWing.append(image()); flap.append(clippedWing); wing.append(flap); const body = svgNode("g", { "clip-path": `url(#${prefix}-body)` }); body.append(image()); const facing = svgNode("g", { class: "lt-bird-facing" }); facing.append(wing, body); svg.append(defs, facing); return svg; } var birdCss = ` [data-lt-bird]{ --lt-duration-wing-open:150ms;--lt-duration-wing-close:180ms;--lt-duration-wing-flap:520ms; --lt-ease-wing-open:cubic-bezier(.2,0,0,1);--lt-ease-wing-flap:cubic-bezier(.42,0,.58,1); --lt-bird-wing-angle:-30deg;--lt-bird-wing-scale:1.2;--lt-bird-wing-origin:60% 53%; --lt-bird-wing-flap-up:-20deg;--lt-bird-wing-flap-down:14deg; --lt-bird-wing-flap-stretch:1.1;--lt-bird-wing-flap-compress:.94; } [data-lt-bird] .lt-bird-mark{overflow:visible;pointer-events:none} [data-lt-bird] .lt-bird-facing{transform-box:view-box;transform-origin:50% 50%;transform:scaleX(1)} [data-lt-bird][data-bird-facing="left"] .lt-bird-facing{transform:scaleX(-1)} [data-lt-bird] :is(.lt-bird-wing,.lt-bird-wing-flap){transform-box:view-box;transform-origin:var(--lt-bird-wing-origin);transform:rotate(0deg) scaleX(1)} [data-lt-bird] .lt-bird-wing{transition:transform var(--lt-duration-wing-close) var(--lt-ease-wing-open)} [data-lt-bird][data-bird-pose="spread"] .lt-bird-wing{transform:rotate(var(--lt-bird-wing-angle)) scaleX(var(--lt-bird-wing-scale));transition-duration:var(--lt-duration-wing-open)} #cxds-logo.drip-launcher[data-lt-bird]{overflow:visible} .lt-ui [data-lt-bird]>img,#cxds-logo.drip-launcher[data-lt-bird]>img{display:none} #cxds-logo.drip-launcher[data-lt-bird]>.lt-bird-mark{display:block;width:100%;height:100%} @media(prefers-reduced-motion:reduce){ [data-lt-bird] .lt-bird-wing,[data-lt-bird][data-bird-pose="spread"] .lt-bird-wing{transition:none} } `; function mountBirdMotion(logo, logoUrl, { bindEvents = true } = {}) { const doc = logo.ownerDocument; if (!doc.getElementById("lt-bird-motion-style")) { const style = doc.createElement("style"); style.id = "lt-bird-motion-style"; style.textContent = birdCss; (doc.head || doc.documentElement).append(style); } logo.append(birdMark(logoUrl)); logo.dataset.ltBird = ""; logo.dataset.birdPose = "rest"; logo.dataset.birdFacing = "right"; if (!logo.hasAttribute("aria-label")) logo.setAttribute("aria-label", logo.title || "\u663E\u793A/\u9690\u85CF\u5B66\u4E60\u52A9\u624B"); const flap = logo.querySelector(".lt-bird-wing-flap"); const win = doc.defaultView; const reducedMotion = win.matchMedia("(prefers-reduced-motion: reduce)"); const token = (name) => win.getComputedStyle(logo).getPropertyValue(name).trim(); let animation = null; let expanded = false; let pointer = null; let directionAnchor = 0; const setFacing = (direction) => { if (direction === "left" || direction === "right") logo.dataset.birdFacing = direction; }; const beginDirection = (x) => { directionAnchor = x; }; const trackDirection = (x) => { const dx = x - directionAnchor; if (Math.abs(dx) <= 4) return; setFacing(dx < 0 ? "left" : "right"); directionAnchor = x; }; const animateFlap = (open) => { const current = win.getComputedStyle(flap).transform; animation == null ? void 0 : animation.cancel(); animation = null; if (reducedMotion.matches || !flap.animate) return; if (open) { animation = flap.animate([ { transform: "rotate(0deg) scaleX(1)", offset: 0 }, { transform: `rotate(${token("--lt-bird-wing-flap-up")}) scaleX(${token("--lt-bird-wing-flap-stretch")})`, offset: 0.25 }, { transform: `rotate(${token("--lt-bird-wing-flap-down")}) scaleX(${token("--lt-bird-wing-flap-compress")})`, offset: 0.75 }, { transform: "rotate(0deg) scaleX(1)", offset: 1 } ], { duration: parseFloat(token("--lt-duration-wing-flap")), iterations: Infinity, easing: token("--lt-ease-wing-flap") }); } else { animation = flap.animate( [{ transform: current }, { transform: "rotate(0deg) scaleX(1)" }], { duration: parseFloat(token("--lt-duration-wing-close")), easing: token("--lt-ease-wing-open") } ); } }; const setPose = (open) => { if (expanded !== open) animateFlap(open); expanded = open; logo.dataset.birdPose = open ? "spread" : "rest"; }; reducedMotion.addEventListener("change", () => { if (expanded || animation) animateFlap(expanded); }); if (bindEvents) { logo.addEventListener("pointerdown", (event) => { if (event.button !== 0 || pointer !== null) return; pointer = event.pointerId; beginDirection(event.clientX); setPose(true); }); logo.addEventListener("pointermove", (event) => { if (event.pointerId === pointer) trackDirection(event.clientX); }); const finish = (event) => { if (event.pointerId !== pointer) return; pointer = null; setPose(false); }; for (const type2 of ["pointerup", "pointercancel", "lostpointercapture"]) logo.addEventListener(type2, finish); const reset = () => { pointer = null; setPose(false); }; logo.addEventListener("keydown", (event) => { if (event.key === " " || event.key === "Enter") setPose(true); }); logo.addEventListener("keyup", (event) => { if (event.key === " " || event.key === "Enter") setPose(false); }); logo.addEventListener("blur", reset); win.addEventListener("blur", reset); doc.addEventListener("visibilitychange", () => { if (doc.hidden) reset(); }); } return { setPose, beginDirection, trackDirection }; } function localIcon(doc, name) { const template = doc.createElement("template"); template.innerHTML = iconSvg[name]; const svg = template.content.firstElementChild; svg.classList.add("lt-icon"); svg.setAttribute("aria-hidden", "true"); return svg; } function decoratePanel(panel, logo, timeline, logger, callbacks) { panel.dataset.theme = logo.dataset.theme = "golden-wing"; applyPanelHints(panel); const doc = panel.ownerDocument; const node = (tag, className) => { const el = doc.createElement(tag); el.className = className; return el; }; const action = (name) => panel.querySelector(`[data-action="${name}"]`); const brand = panel.querySelector(".cxds-title"); brand.classList.add("lt-brand-lockup"); const mark = doc.createElement("img"); mark.src = logo.querySelector("img").src; mark.alt = ""; brand.prepend(mark); brand.querySelector("strong").firstChild.textContent = "\u5927\u9E1F\u52A9\u624B "; const styleButton = (button, variant, iconName) => { button.classList.add("lt-button", `lt-button--${variant}`); if (iconName) { const label2 = button.getAttribute("aria-label") || button.textContent.trim(); button.replaceChildren(localIcon(doc, iconName)); button.setAttribute("aria-label", label2); button.title = label2; } }; styleButton(action("hide"), "icon", "x"); action("hide").title = "\u6536\u8D77\u9762\u677F\uFF0C\u8FD0\u884C\u4FDD\u6301\u539F\u72B6\u6001"; action("hide").setAttribute("aria-label", "\u6536\u8D77\u9762\u677F\uFF0C\u8FD0\u884C\u4FDD\u6301\u539F\u72B6\u6001"); styleButton(action("courses"), "ghost"); action("courses").prepend(localIcon(doc, "list")); action("courses").classList.add("lt-course-entry"); styleButton(action("home-entry"), "secondary"); styleButton(action("redeem-card"), "primary"); styleButton(action("show-recharge"), "ghost"); styleButton(action("refresh-balance"), "icon", "refresh-cw"); styleButton(action("clear-log"), "ghost"); styleButton(action("log-detail"), "ghost"); panel.querySelector("#cxds-card-code").classList.add("lt-input"); const ai = action("ai-toggle"); ai.classList.add("lt-toggle"); ai.querySelector(".drip-toggle-track").classList.add("lt-toggle-track"); const recharge = panel.querySelector(".drip-recharge"); recharge.classList.add("lt-disclosure"); const rechargeSummary = recharge.querySelector("summary"); rechargeSummary.classList.add("lt-button", "lt-button--ghost"); rechargeSummary.querySelector("svg").replaceWith(localIcon(doc, "chevron-down")); const account = panel.querySelector(".cxds-license-box"); const accountRow = node("div", "lt-runtime-account-row"); accountRow.append(panel.querySelector(".cxds-license-top"), action("refresh-balance")); account.prepend(accountRow); accountRow.after(action("show-recharge")); const balanceRow = node("div", "lt-runtime-balance-row"); const creditLabel = node("span", "lt-runtime-credit-label"); creditLabel.textContent = "AI \u79EF\u5206"; const balance = account.querySelector("[data-balance]"); balance.parentElement.prepend(balanceRow); balanceRow.append(creditLabel, balance); const logs = panel.querySelector(".cxds-log-panel"); logs.hidden = false; const records = node("details", "lt-record-details lt-disclosure"); const summary = node("summary", "lt-button lt-button--ghost lt-log-summary"); const summaryCopy = node("span", "lt-record-summary-copy"); const label = node("span", ""); label.textContent = "AI \u4E0E\u79EF\u5206\u8BB0\u5F55\uFF08\u672C\u9875\uFF09"; const last = node("span", "lt-record-preview"); last.textContent = "\u672C\u9875\u6682\u65E0 AI \u4F5C\u7B54\u6216\u79EF\u5206\u64CD\u4F5C\u8BB0\u5F55"; summaryCopy.append(label, last); summary.append(summaryCopy, localIcon(doc, "chevron-down")); records.append(summary, logs); const body = panel.querySelector(".cxds-body"); const status = panel.querySelector(".cxds-status-banner"); body.prepend(status, panel.querySelector("[data-current-task]"), action("home-entry"), action("courses"), ai, panel.querySelector("#drip-ai-help"), panel.querySelector(".drip-current")); body.append(account, records); for (const selector of [".drip-start", ".cxds-main", ".cxds-actionbar"]) panel.querySelector(selector).classList.add("lt-runtime-empty"); const sync = () => { var _a; const entry = (_a = [...logs.querySelectorAll(".drip-timeline-entry")].findLast((row) => !row.hidden)) == null ? void 0 : _a.querySelector("strong"); const text = (entry == null ? void 0 : entry.textContent) || "\u672C\u9875\u6682\u65E0 AI \u4F5C\u7B54\u6216\u79EF\u5206\u64CD\u4F5C\u8BB0\u5F55"; if (last.textContent !== text) last.textContent = text; const home = action("home-entry"); const primary = home.dataset.running === "false"; if (home.classList.contains("lt-button--primary") !== primary) home.classList.toggle("lt-button--primary", primary); if (home.classList.contains("lt-button--secondary") === primary) home.classList.toggle("lt-button--secondary", !primary); logo.setAttribute("aria-expanded", String(!panel.classList.contains("cxds-hidden"))); }; new MutationObserver(sync).observe(panel, { subtree: true, childList: true, characterData: true, attributes: true, attributeFilter: ["aria-checked", "data-running", "class"] }); action("log-detail").addEventListener("click", () => { timeline.detailed = !timeline.detailed; action("log-detail").setAttribute("aria-pressed", String(timeline.detailed)); action("log-detail").textContent = timeline.detailed ? "\u6536\u8D77\u8BE6\u60C5" : "\u67E5\u770B\u8BE6\u7EC6\u8BB0\u5F55"; timeline.render(); }); action("clear-log").addEventListener("click", () => logger.clear()); const collapsedNote = node("p", "lt-ui lt-ux-collapse-toast"); collapsedNote.textContent = "\u5DF2\u6536\u8D77\uFF1B\u8BFE\u7A0B\u548C AI \u4ECD\u6309\u539F\u8BBE\u7F6E\u8FD0\u884C\u3002"; collapsedNote.dataset.theme = "golden-wing"; collapsedNote.hidden = true; doc.body.append(collapsedNote); let noteTimer; const showCollapsedNote = () => { if (!panel.classList.contains("cxds-hidden")) { collapsedNote.hidden = true; doc.defaultView.clearTimeout(noteTimer); return; } const rect = logo.getBoundingClientRect(); collapsedNote.style.left = Math.max(8, Math.min(rect.left - 200, doc.defaultView.innerWidth - 264)) + "px"; collapsedNote.style.top = Math.max(8, Math.min(rect.bottom + 8, doc.defaultView.innerHeight - 68)) + "px"; collapsedNote.hidden = false; doc.defaultView.clearTimeout(noteTimer); noteTimer = doc.defaultView.setTimeout(() => { collapsedNote.hidden = true; }, 3e3); }; action("hide").addEventListener("click", showCollapsedNote); logo.addEventListener("click", showCollapsedNote); sync(); mountPanelUx(panel, timeline, callbacks); const aiRow = node("div", "lt-runtime-ai-row"); ai.before(aiRow); aiRow.append(ai, panel.querySelector(".drip-current")); panel.querySelector("#drip-ai-help").innerHTML = "\u5F00\u542F\u540E\u81EA\u52A8\u9009\u586B\u53EF\u8BC6\u522B\u7684\u6D4B\u9A8C\u6216\u4F5C\u4E1A\u5E76\u5C1D\u8BD5\u63D0\u4EA4\u3002AI \u6BCF\u7B54 1 \u9898\u6263 1 \u79EF\u5206\uFF0C\u6263\u5206\u65E9\u4E8E\u586B\u5199\u6216\u63D0\u4EA4\u3002"; const billing = node("details", "lt-billing-details lt-disclosure"); const billingSummary = node("summary", "lt-button lt-button--ghost"); billingSummary.append(doc.createTextNode("\u8BA1\u8D39\u8BF4\u660E"), localIcon(doc, "chevron-down")); const billingContent = node("div", "lt-billing-content"); const [usage, payment] = panel.querySelectorAll(".drip-credit-help"); billingContent.append(usage); billing.append(billingSummary, billingContent); recharge.before(billing); recharge.querySelector(".drip-recharge-content").append(payment); rechargeSummary.firstChild.textContent = "\u5151\u6362\u5361\u5BC6\uFF08\u5F00\u901A / \u5145\u503C\uFF09 "; const essential = node("p", "lt-payment-essential"); essential.textContent = "\u5361\u5BC6\u9700\u53E6\u884C\u8D2D\u4E70\uFF1B\u6B64\u5904\u5151\u6362\u4E0D\u4F1A\u81EA\u52A8\u4ED8\u6B3E\u3002"; recharge.after(essential); mountPanelV3(panel, logo, callbacks); mountPanelMotion(panel, logo, timeline); mountPanelSimple(panel); mountPanelInvite(panel, callbacks); mountPanelPay(panel, logo, callbacks); mountPanelClose(panel); mountPanelRounds(panel); mountPanelUid(panel, callbacks); } return __toCommonJS(extension_ui_exports); })(); var ControlPanel = class { constructor(settingsStore, logger, callbacks = {}) { this.store = settingsStore; this.logger = logger; this.callbacks = callbacks; } mount() { var _a, _b, _c, _d; if (document.getElementById("cxds-panel")) return; this.injectStyle(); const logo = document.createElement("button"); logo.id = "cxds-logo"; logo.className = "drip-launcher lt-ui lt-launcher"; logo.dataset.theme = "golden-wing"; logo.type = "button"; logo.title = "\u663E\u793A/\u9690\u85CF \u5927\u9E1F\u5B66\u4E60\u901A\u52A9\u624B"; logo.innerHTML = `\u5927\u9E1F\u5B66\u4E60\u901A\u52A9\u624B`; document.body.appendChild(logo); LauncherBird.mountBirdMotion(logo, LOGO_DATA_URL); const panel = document.createElement("section"); panel.id = "cxds-panel"; panel.className = "drip-panel lt-ui lt-panel"; panel.dataset.theme = "golden-wing"; panel.innerHTML = this.template(); document.body.appendChild(panel); this.logger.bind(panel.querySelector(".cxds-logs"), { statusBadge: panel.querySelector("[data-status-badge]"), statusBanner: panel.querySelector("[data-status-banner]"), quickStatus: panel.querySelector("[data-quick-status]") }); this.timeline = new LogTimeline(panel); this.timeline.mount(); this.bind(panel, logo); LauncherBird.decoratePanel(panel, logo, this.timeline, this.logger, this.callbacks); this.placePanelNearLogo(panel, logo); this.updateLicenseState(panel); this.updateStatus(panel); if ((_b = (_a = this.callbacks).hasLicense) == null ? void 0 : _b.call(_a)) { (_d = (_c = this.callbacks).refreshBalance) == null ? void 0 : _d.call(_c).then(() => this.updateLicenseState(panel)).catch(() => this.updateLicenseState(panel)); } } template() { var _a, _b, _c, _d; const rawBalance = (_b = (_a = this.callbacks).getBalance) == null ? void 0 : _b.call(_a); const balance = Number(rawBalance || 0); const chaoxingIdentity = (_d = (_c = this.callbacks).getChaoxingIdentity) == null ? void 0 : _d.call(_c); const chaoxingUuid = (chaoxingIdentity == null ? void 0 : chaoxingIdentity.value) || "\u672A\u8BC6\u522B"; return `
\u5927\u9E1F\u5B66\u4E60\u901A\u52A9\u624B v${LICENSE_CONFIG.clientVersion}
\u51C6\u5907\u5C31\u7EEA

\u5F00\u542F\u540E\u81EA\u52A8\u8BC6\u522B\u5E76\u5904\u7406\u5F53\u524D\u6D4B\u9A8C\u6216\u4F5C\u4E1A\u3002

\u51C6\u5907\u5C31\u7EEA
AI \u4F5C\u7B54\u79EF\u5206
${this.formatTokens(balance)} \u6B63\u5728\u521D\u59CB\u5316
\u5151\u6362\u5361\u5BC6

\u53EA\u6709 AI \u7B54\u9898\u6263\u79EF\u5206\uFF0C\u6BCF\u9898 1 \u79EF\u5206\uFF0C\u660E\u7EC6\u89C1\u8FD0\u884C\u8BB0\u5F55\u3002

\u5361\u5BC6\u9700\u8D2D\u4E70\uFF1B\u5728\u8FD9\u91CC\u5151\u6362\u4E0D\u4F1A\u81EA\u52A8\u4ED8\u6B3E\u3002

`; } switchRow(name, title, description = "") { return ` `; } numberField(name, label, min, max, step) { return ` `; } bind(panel, logo) { var _a; const togglePanel = () => { const hidden = panel.classList.toggle("cxds-hidden"); logo.classList.toggle("cxds-active", !hidden); localStorage.setItem("drip7boi.panelHidden", hidden ? "true" : "false"); }; if (localStorage.getItem("drip7boi.panelHidden") === "true") { panel.classList.add("cxds-hidden"); } else { logo.classList.add("cxds-active"); } this.restoreLogoPosition(logo); const placePanel = () => this.placePanelNearLogo(panel, logo); placePanel(); this.makeLogoDraggable(logo, togglePanel, placePanel); window.addEventListener("resize", () => { this.restoreLogoPosition(logo); placePanel(); }); this.resizeObserver = new ResizeObserver(placePanel); this.resizeObserver.observe(panel); panel.querySelector('[data-action="hide"]').addEventListener("click", togglePanel); const syncTaskContext = () => { var _a2, _b; const target = findStudentWorkTarget(findSameOriginDocuments(document)); const task = panel.querySelector("[data-current-task]"); const title = target || /\/mycourse\/studentstudy$/.test(location.pathname) ? ((_a2 = target == null ? void 0 : target.ownerDocument.querySelector("h3")) == null ? void 0 : _a2.textContent.trim()) || ((_b = document.querySelector("h1")) == null ? void 0 : _b.textContent.trim()) : ""; const text = title ? `${target ? "\u5F53\u524D\u6D4B\u9A8C" : "\u5F53\u524D\u7AE0\u8282"} \xB7 ${title}` : ""; if (task.textContent !== text) task.textContent = text; task.title = title || ""; task.hidden = !text; this.timeline.syncTaskSummary(); placePanel(); }; syncTaskContext(); this.taskContextTimer = setInterval(() => { if (!document.hidden) syncTaskContext(); }, 1e3); document.addEventListener("visibilitychange", () => { if (!document.hidden) syncTaskContext(); }); panel.querySelector('[data-action="show-recharge"]').addEventListener("click", () => { panel.querySelector(".drip-recharge").open = true; panel.querySelector("#cxds-card-code").focus(); }); panel.querySelector(".drip-recharge").addEventListener("toggle", (event) => { if (!event.currentTarget.open) panel.querySelector(".cxds-body").scrollTop = 0; }); const COURSE_LIST_HASH = "#drip-courses"; const isPersonalSpace = location.hostname === "i.chaoxing.com" && location.pathname === "/base"; const openCourseMenu = () => { const item = Array.from(document.querySelectorAll('[id^="first"].label-item, [id^="first"]')).find((node) => node.textContent.replace(/\s+/g, "") === "\u8BFE\u7A0B") || document.getElementById("first3621803"); item == null ? void 0 : item.click(); return Boolean(item); }; if (isPersonalSpace && location.hash === COURSE_LIST_HASH) { let tries = 0; const pending = setInterval(() => { if (openCourseMenu() || ++tries >= 40) { clearInterval(pending); try { history.replaceState(history.state, "", location.pathname + location.search); } catch (e) { } } }, 300); } panel.querySelector('[data-action="courses"]').addEventListener("click", () => { if (isPersonalSpace) { if (!panel.classList.contains("cxds-hidden")) togglePanel(); openCourseMenu(); } else { window.open("https://i.chaoxing.com/base" + COURSE_LIST_HASH, "_blank", "noopener,noreferrer"); } }); const aiToggle = panel.querySelector('[data-action="ai-toggle"]'); const syncAiState = () => { const enabled = this.store.get("aiAnswerEnabled"); aiToggle.setAttribute("aria-checked", String(enabled)); aiToggle.querySelector("[data-ai-label]").textContent = enabled ? "\u5DF2\u5F00\u542F" : "\u5DF2\u5173\u95ED"; aiToggle.title = enabled ? "\u5173\u95ED AI \u81EA\u52A8\u7B54\u9898" : "\u5F00\u542F AI \u81EA\u52A8\u7B54\u9898"; this.timeline.render(); }; aiToggle.addEventListener("click", () => { var _a2, _b; return (_b = (_a2 = this.callbacks).setAiAnswerEnabled) == null ? void 0 : _b.call(_a2, !this.store.get("aiAnswerEnabled")); }); window.addEventListener("drip7boi:ai-answer-changed", syncAiState); syncAiState(); const homeButton = panel.querySelector('[data-action="home-entry"]'); if (/\/mycourse\/studentcourse$/.test(location.pathname)) { homeButton.hidden = false; let previousMessage = ""; const syncHomeState = () => { const { dripCourseHomeState: state, dripCourseHomeMessage: message } = document.documentElement.dataset; const running = state === "running"; homeButton.dataset.running = String(running); homeButton.textContent = running ? "\u505C\u6B62\u63A5\u7BA1" : "\u7EE7\u7EED\u63A5\u7BA1"; if (message && message !== previousMessage) { previousMessage = message; this.logger.log(message, state === "paused" ? "warn" : state === "running" ? "info" : "muted"); } }; window.addEventListener("drip-course-home-status", syncHomeState); syncHomeState(); } homeButton.addEventListener("click", () => { document.documentElement.dataset.dripCourseHomeAction = homeButton.dataset.running === "true" ? "stop" : "start"; window.dispatchEvent(new CustomEvent("drip-course-home-control")); }); panel.querySelector('[data-action="redeem-card"]').addEventListener("click", (event) => { if (!event.isTrusted) return; return this.withButtonLoading(event.currentTarget, "\u5151\u6362\u4E2D...", () => this.redeemCard(panel)); }); panel.querySelector('[data-action="refresh-balance"]').addEventListener("click", (event) => this.withButtonLoading(event.currentTarget, "\u5237\u65B0\u4E2D...", () => this.refreshBalance(panel))); panel.querySelectorAll("[data-setting]").forEach((input) => { input.addEventListener("change", () => { this.save(panel, false); this.updateStatus(panel); }); }); this.refreshConfigNotice(panel); window.addEventListener("drip7boi:balance", () => { this.updateLicenseState(panel); this.updateStatus(panel); }); window.addEventListener("drip7boi:account-changed", () => { this.updateLicenseState(panel); this.updateStatus(panel); }); window.addEventListener("drip7boi:config", (event) => { this.renderConfigNotice(panel, event.detail || {}); }); document.addEventListener("keydown", (event) => { if (event.key === "F9") togglePanel(); }); } async withButtonLoading(button, label, action) { if (!button || button.disabled) return; const original = button.innerHTML; button.disabled = true; button.setAttribute("aria-busy", "true"); button.textContent = button.classList.contains("lt-button--icon") ? "\u2026" : label; this.logger.setStatus("running", "\u8FD0\u884C\u4E2D", label.replace("...", "")); try { await (action == null ? void 0 : action()); } finally { setTimeout(() => { button.innerHTML = original; button.removeAttribute("aria-busy"); button.disabled = false; this.updateStatus(document.getElementById("cxds-panel")); }, 650); } } updateLicenseState(panel) { var _a2; var _a, _b, _c, _d, _e, _f; const rawBalance = (_b = (_a = this.callbacks).getBalance) == null ? void 0 : _b.call(_a); const balance = Number(rawBalance || 0); const hasLicense = Boolean((_d = (_c = this.callbacks).hasLicense) == null ? void 0 : _d.call(_c)); const account = ((_f = (_e = this.callbacks).getAccountSnapshot) == null ? void 0 : _f.call(_e)) || {}; const quotaExhausted = this.isDailyQuotaExhausted(account); const stateText = !hasLicense ? "\u6B63\u5728\u521D\u59CB\u5316" : rawBalance === null ? "\u6B63\u5728\u540C\u6B65\u79EF\u5206" : quotaExhausted ? "\u4ECA\u65E5\u989D\u5EA6\u5DF2\u7528\u5B8C" : balance > 0 ? "\u53EF\u7528" : "\u79EF\u5206\u4E0D\u8DB3"; panel.querySelectorAll("[data-balance],[data-balance-mini]").forEach((node) => { node.textContent = !hasLicense ? "\u521D\u59CB\u5316\u4E2D" : rawBalance === null ? "\u540C\u6B65\u4E2D" : this.formatTokens(balance); node.classList.toggle("is-ready", balance > 0); }); const state = panel.querySelector("[data-license-state]"); if (state) { state.textContent = stateText; state.classList.toggle("is-ready", hasLicense && balance > 0 && !quotaExhausted); state.classList.toggle("is-warning", hasLicense && (balance <= 0 || quotaExhausted)); } if (typeof CustomEvent !== "undefined") (_a2 = panel.dispatchEvent) == null ? void 0 : _a2.call(panel, new CustomEvent("drip-ux-refresh")); } updateStatus(panel) { var _a, _b, _c, _d, _e, _f, _g, _h; if (!panel) return; if (!((_b = (_a = this.callbacks).getChaoxingIdentity) == null ? void 0 : _b.call(_a))) { this.logger.setStatus("warning", "\u672A\u8BC6\u522B\u8D26\u53F7", "\u672A\u8BC6\u522B\u5B66\u4E60\u901A\u8D26\u53F7\uFF0C\u8BF7\u5237\u65B0\u6216\u91CD\u65B0\u767B\u5F55\u5B66\u4E60\u901A"); return; } if (!((_d = (_c = this.callbacks).hasLicense) == null ? void 0 : _d.call(_c))) { this.logger.setStatus("warning", "\u6B63\u5728\u521D\u59CB\u5316", "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"); return; } if (Number(((_f = (_e = this.callbacks).getBalance) == null ? void 0 : _f.call(_e)) || 0) <= 0) { this.logger.setStatus("warning", "\u79EF\u5206\u4E0D\u8DB3", "\u79EF\u5206\u4E0D\u8DB3\uFF0C\u8BF7\u8F93\u5165\u5361\u5BC6\u5151\u6362"); return; } const account = ((_h = (_g = this.callbacks).getAccountSnapshot) == null ? void 0 : _h.call(_g)) || {}; if (this.isDailyQuotaExhausted(account)) { this.logger.setStatus( "warning", "\u4ECA\u65E5\u989D\u5EA6\u5DF2\u7528\u5B8C", `\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u660E\u5929\u6062\u590D\uFF1B\u4F60\u7684\u79EF\u5206\u4F59\u989D\u4ECD\u4E3A ${this.formatTokens(account.balancePoints)} \u70B9` ); return; } this.logger.setStatus("ready", "\u51C6\u5907\u5C31\u7EEA", "\u51C6\u5907\u5C31\u7EEA"); } save(panel, announce = true) { var _a, _b; panel.querySelectorAll("[data-setting]").forEach((input) => { const key = input.dataset.setting; const fallback = DEFAULT_SETTINGS[key]; const value = input.type === "checkbox" ? input.checked : typeof fallback === "number" ? Number(input.value) : input.value; this.store.set(key, value); }); (_b = (_a = this.callbacks).settingsChanged) == null ? void 0 : _b.call(_a); this.updateLicenseState(panel); this.updateStatus(panel); if (announce) this.logger.log("\u8BBE\u7F6E\u5DF2\u4FDD\u5B58", "success"); } async redeemCard(panel) { var _a, _b, _c, _d, _e; const input = panel.querySelector("#cxds-card-code"); const cardCode = (_a = input == null ? void 0 : input.value) == null ? void 0 : _a.trim(); if (!cardCode) { this.logger.log("\u8BF7\u8F93\u5165\u5361\u5BC6", "warn"); return; } if (/^YQ[A-HJ-NP-Z2-9]{4}$/i.test(cardCode) && this.callbacks.bindInvite) { try { const bound = await this.callbacks.bindInvite(cardCode); if (input) input.value = ""; input == null ? void 0 : input.dispatchEvent(new Event("input")); this.updateLicenseState(panel); this.updateStatus(panel); this.logger.log((bound == null ? void 0 : bound.inviteePoints) > 0 ? `\u5DF2\u7ED1\u5B9A\u540C\u5B66\u7684\u9080\u8BF7\uFF0C\u591A\u5F97 ${bound.inviteePoints} \u79EF\u5206` : "\u5DF2\u7ED1\u5B9A\u540C\u5B66\u7684\u9080\u8BF7", "success"); panel.dispatchEvent(new CustomEvent("drip-invite-bound", { detail: bound })); } catch (error) { panel.dispatchEvent(new CustomEvent("drip-invite-failed", { detail: { message: this.licenseErrorMessage(error) } })); } return; } try { await ((_c = (_b = this.callbacks).redeemCard) == null ? void 0 : _c.call(_b, cardCode)); if (input) input.value = ""; this.updateLicenseState(panel); this.updateStatus(panel); this.logger.log("\u5151\u6362\u6210\u529F", "success"); } catch (error) { this.logger.log(this.licenseErrorMessage(error), "error"); } } async refreshBalance(panel) { var _a, _b; try { await ((_b = (_a = this.callbacks).refreshBalance) == null ? void 0 : _b.call(_a)); this.updateLicenseState(panel); this.updateStatus(panel); this.logger.log("\u79EF\u5206\u5DF2\u5237\u65B0", "success"); } catch (error) { this.logger.log(this.licenseErrorMessage(error), "error"); } } licenseErrorMessage(error) { var _a, _b, _c; if (["BINDING_REQUIRED", "PAIRING_INVALID"].includes(error == null ? void 0 : error.code)) return error.message; if ((error == null ? void 0 : error.code) === "INVALID_CARD") return "\u5361\u5BC6\u65E0\u6548"; if ((error == null ? void 0 : error.code) === "CARD_ALREADY_USED") return "\u5361\u5BC6\u5DF2\u88AB\u4F7F\u7528"; if ((error == null ? void 0 : error.code) === "CARD_DISABLED") return "\u5361\u5BC6\u5DF2\u7981\u7528"; if ((error == null ? void 0 : error.code) === "CARD_EXPIRED") return "\u5361\u5BC6\u5DF2\u8FC7\u671F"; if ((error == null ? void 0 : error.code) === "INSUFFICIENT_BALANCE") return "\u79EF\u5206\u4E0D\u8DB3\uFF0C\u8BF7\u8054\u7CFB\u5356\u5BB6\u8D2D\u4E70\u5361\u5BC6"; if ((error == null ? void 0 : error.code) === "DAILY_LIMIT_REACHED") { const balance = (_b = (_a = this.callbacks).getBalance) == null ? void 0 : _b.call(_a); return `\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u660E\u5929\u6062\u590D\uFF1B\u4F60\u7684\u79EF\u5206\u4F59\u989D\u4ECD\u4E3A ${this.formatTokens(balance)} \u70B9`; } if ((error == null ? void 0 : error.code) === "ACCOUNT_UNRECOGNIZED") return "\u672A\u8BC6\u522B\u5B66\u4E60\u901A\u8D26\u53F7\uFF0C\u8BF7\u5237\u65B0\u6216\u91CD\u65B0\u767B\u5F55\u5B66\u4E60\u901A"; if ((error == null ? void 0 : error.code) === "RATE_LIMITED") return `\u8BF7\u6C42\u592A\u5FEB\uFF0C\u8BF7\u7B49\u5F85 ${((_c = error.payload) == null ? void 0 : _c.retryAfterSeconds) || 30} \u79D2\u540E\u91CD\u8BD5`; if ((error == null ? void 0 : error.code) === "UNAUTHORIZED") return "\u4F7F\u7528\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5"; if ((error == null ? void 0 : error.code) === "DEVICE_BANNED") return "\u5F53\u524D\u8BBE\u5907\u5DF2\u88AB\u9650\u5236\uFF0C\u8BF7\u8054\u7CFB\u5356\u5BB6"; if ((error == null ? void 0 : error.code) === "AI_PROVIDER_ERROR") return "AI \u670D\u52A1\u6682\u65F6\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; if ((error == null ? void 0 : error.code) === "NOT_ACTIVATED") return "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; if ((error == null ? void 0 : error.code) === "MAINTENANCE") return "\u7CFB\u7EDF\u7EF4\u62A4\u4E2D\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"; if ((error == null ? void 0 : error.code) === "CLIENT_VERSION_TOO_OLD") return "\u5F53\u524D\u7248\u672C\u8FC7\u4F4E\uFF0C\u8BF7\u66F4\u65B0\u540E\u7EE7\u7EED\u4F7F\u7528"; return (error == null ? void 0 : error.message) || "\u8BF7\u6C42\u5931\u8D25"; } async refreshConfigNotice(panel, attempt = 0) { var _a, _b; try { const config = await ((_b = (_a = this.callbacks).refreshConfig) == null ? void 0 : _b.call(_a)); this.renderConfigNotice(panel, config || {}); } catch (e) { if (attempt < 3) setTimeout(() => this.refreshConfigNotice(panel, attempt + 1), 15e3 * (attempt + 1)); } } renderConfigNotice(panel, config) { const node = panel == null ? void 0 : panel.querySelector("[data-config-notice]"); if (!node) return; const text = config.maintenance && !config.maintenanceAllowed ? "\u7CFB\u7EDF\u7EF4\u62A4\u4E2D\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5" : config.clientNotice || config.notice || ""; node.textContent = text; node.hidden = !text; } formatTokens(value) { return new Intl.NumberFormat("zh-CN").format(Math.max(0, Number(value) || 0)); } isDailyQuotaExhausted(account = {}) { return Number(account.dailyLimitPoints || 0) > 0 && Number(account.dailyRemainingPoints || 0) <= 0; } restoreLogoPosition(logo) { try { const saved = JSON.parse(localStorage.getItem("drip7boi.logoPosition") || "null"); if (!saved || typeof saved.left !== "number" || typeof saved.top !== "number") return; const maxLeft = Math.max(0, document.documentElement.clientWidth - logo.offsetWidth); const maxTop = Math.max(0, window.innerHeight - logo.offsetHeight); logo.style.left = `${Math.min(Math.max(0, saved.left), maxLeft)}px`; logo.style.top = `${Math.min(Math.max(0, saved.top), maxTop)}px`; logo.style.right = "auto"; } catch (e) { } } placePanelNearLogo(panel, logo) { var _a; const gap = 12; const logoRect = logo.getBoundingClientRect(); const width = panel.offsetWidth || 620; panel.style.maxHeight = `${Math.max(280, Math.min(760, window.innerHeight - 104))}px`; let height = panel.offsetHeight || 500; const viewportWidth = document.documentElement.clientWidth; const catalog = (_a = document.getElementById("coursetree")) == null ? void 0 : _a.getBoundingClientRect(); const rightEdge = (catalog == null ? void 0 : catalog.width) > 0 && catalog.left > width + 24 ? Math.min(viewportWidth - 12, catalog.left - 12) : viewportWidth - 12; let left = logoRect.right - width; if (left + width > rightEdge) { left = rightEdge - width; } if (left < 12) left = Math.min(viewportWidth - width - 12, 12); let top = logoRect.top - height - gap; if (top < 12) { top = Math.max(12, Math.min(logoRect.bottom + gap, window.innerHeight - height - 12)); if (top < logoRect.bottom + gap) { if (logoRect.left - width - gap >= 12) left = logoRect.left - width - gap; else if (logoRect.right + gap + width <= rightEdge) left = logoRect.right + gap; else if (window.innerHeight - logoRect.bottom - gap - 12 >= 280) { panel.style.maxHeight = `${window.innerHeight - logoRect.bottom - gap - 12}px`; height = panel.offsetHeight; top = logoRect.bottom + gap; } } } panel.style.left = `${Math.max(12, Math.min(left, viewportWidth - width - 12))}px`; panel.style.top = `${Math.max(12, top)}px`; panel.style.right = "auto"; } makeLogoDraggable(logo, onClick, onMove) { let dragging = false; let moved = false; let startX = 0; let startY = 0; let startLeft = 0; let startTop = 0; const moveTo = (left, top) => { const maxLeft = Math.max(0, document.documentElement.clientWidth - logo.offsetWidth); const maxTop = Math.max(0, window.innerHeight - logo.offsetHeight); logo.style.left = `${Math.min(Math.max(0, left), maxLeft)}px`; logo.style.top = `${Math.min(Math.max(0, top), maxTop)}px`; logo.style.right = "auto"; onMove == null ? void 0 : onMove(); }; logo.addEventListener("pointerdown", (event) => { var _a; if (event.button !== 0) return; dragging = true; moved = false; const rect = logo.getBoundingClientRect(); startX = event.clientX; startY = event.clientY; startLeft = rect.left; startTop = rect.top; (_a = logo.setPointerCapture) == null ? void 0 : _a.call(logo, event.pointerId); logo.classList.add("cxds-dragging"); event.preventDefault(); }); logo.addEventListener("pointermove", (event) => { if (!dragging) return; const dx = event.clientX - startX; const dy = event.clientY - startY; if (Math.abs(dx) + Math.abs(dy) > 4) moved = true; moveTo(startLeft + dx, startTop + dy); }); const finish = (event) => { var _a; if (!dragging) return; dragging = false; (_a = logo.releasePointerCapture) == null ? void 0 : _a.call(logo, event.pointerId); logo.classList.remove("cxds-dragging"); const rect = logo.getBoundingClientRect(); localStorage.setItem("drip7boi.logoPosition", JSON.stringify({ left: rect.left, top: rect.top })); onMove == null ? void 0 : onMove(); if (!moved && event.type !== "pointercancel") onClick(); }; logo.addEventListener("pointerup", finish); logo.addEventListener("pointercancel", finish); logo.addEventListener("click", (event) => { if (event.detail === 0) onClick(); }); } injectStyle() { LauncherBird.installUiStyles(document); } escape(value) { return String(value).replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]); } }; function describeTimelineLog(row) { const raw = row.textContent || ""; const stamp = raw.match(/^\[([^\]]+)\]\s*/); const message = stamp ? raw.slice(stamp[0].length) : raw; const question = message.match(/第\s*(\d+)\s*\/\s*(\d+)\s*题/); const paused = /cxds-(?:warn|error)\b/.test(row.className) || /已暂停|已停止|停止答题|积分不足|请求失败/.test(message); const done = !paused && (/cxds-success\b/.test(row.className) || /已作答|使用本页已有答案/.test(message)); const running = !paused && !done && /请求\s*AI|正在|开始处理|等待|处理中/.test(message); const state = paused ? "paused" : done ? "done" : running ? "running" : "recorded"; let title; if (question) { const stage = paused ? /积分不足/.test(message) ? "\u79EF\u5206\u4E0D\u8DB3" : "\u7B49\u5F85\u5904\u7406" : done ? /已作答/.test(message) ? "\u5DF2\u4F5C\u7B54" : "\u7B54\u6848\u5DF2\u8FD4\u56DE" : running ? "\u6B63\u5728\u83B7\u53D6\u7B54\u6848" : "\u7B54\u9898\u8BB0\u5F55"; title = `\u7B2C ${question[1]} / ${question[2]} \u9898 \xB7 ${stage}`; } else if (/积分不足/.test(message)) title = "\u79EF\u5206\u4E0D\u8DB3"; else if (/平台已确认提交完成/.test(message)) title = "\u63D0\u4EA4\u5B8C\u6210"; else if (/识别到.*道.*题/.test(message)) title = "\u9898\u76EE\u8BC6\u522B\u5B8C\u6210"; else if (/本题消耗|本轮消耗/.test(message)) title = "\u79EF\u5206\u8BB0\u5F55"; else if (/^\[构建\]/.test(message)) title = "\u8FD0\u884C\u51C6\u5907"; else if (/当前页面/.test(message)) title = "\u9875\u9762\u72B6\u6001"; else title = message.split(/[::,,;;\n]/)[0].slice(0, 36) || "\u8FD0\u884C\u8BB0\u5F55"; return { message, time: (stamp == null ? void 0 : stamp[1]) || "", title, state, question: question ? { index: Number(question[1]), total: Number(question[2]) } : null }; } function timelineProgress(entries, previous = {}) { let total = previous.total || 0; let questions = new Map(previous.questions || []); let current = previous.current || 0; for (const entry of entries) { const scan = entry.message.match(/识别到\s*(\d+)\s*道.*?总题号\s*(\d+)/); if (scan) { const nextTotal = Number(scan[2]); if (nextTotal !== total || Number(scan[1]) === nextTotal) { questions = /* @__PURE__ */ new Map(); current = 0; } total = nextTotal; } if (entry.question) { if (total !== entry.question.total) { total = entry.question.total; questions = /* @__PURE__ */ new Map(); } current = entry.question.index; questions.set(current, entry.state); } else if (entry.state === "paused" && current && questions.get(current) === "running") { questions.set(current, "paused"); } } return { total, current, questions, completed: [...questions.values()].filter((state) => state === "done").length }; } function studentWorkVisible(node) { var _a, _b, _c, _d, _e; for (let current = node; current; current = (_b = (_a = current.ownerDocument) == null ? void 0 : _a.defaultView) == null ? void 0 : _b.frameElement) { if (!current.getClientRects().length || ((_e = (_d = (_c = current.ownerDocument) == null ? void 0 : _c.defaultView) == null ? void 0 : _d.getComputedStyle) == null ? void 0 : _e.call(_d, current).visibility) === "hidden") return false; } return Boolean(node); } function findStudentWorkTarget(documents) { for (const doc of documents) { const panel = doc.querySelector("#workPanel"); const frame = panel == null ? void 0 : panel.querySelector("#frame_content"); if (studentWorkVisible(panel) && (frame == null ? void 0 : frame.getAttribute("src"))) return panel; const question = doc.querySelector(".mark_table .questionLi, .questionLi, .zquestions .Py-mian1, .TiMu"); if (studentWorkVisible(question)) return question; } return null; } function studentVisibleLogIndexes(entries, detailed = false, limit = 3) { const indexes = entries.map((entry, index) => detailed || !studentTimelineEntry(entry).hidden ? index : -1).filter((index) => index >= 0); return new Set(detailed ? indexes : indexes.slice(-limit)); } function studentTimelineEntry(entry) { var _a, _b; const m = entry.message; const result = { ...entry, hidden: /^\[构建\]|当前页面|在\s*\d+\s*个框架中/.test(m) }; if (entry.origin === "course") { if (/正在检查当前章节后续标签页/.test(m)) result.hidden = true; else if (/开始刷章节测试/.test(m)) { result.title = "\u5DF2\u627E\u5230\u7AE0\u8282\u6D4B\u9A8C"; result.message = m.replace(/^开始刷章节测试[::]\s*/, ""); result.state = "recorded"; } else if (/正在加载作业框架/.test(m)) { result.title = "\u6D4B\u9A8C\u9875\u9762\u52A0\u8F7D\u8BB0\u5F55"; result.message = "\u5DF2\u8FDB\u5165\u6D4B\u9A8C\u9875\u9762\uFF0C\u51C6\u5907\u8BC6\u522B\u9898\u76EE\u3002"; result.state = "recorded"; } else if (/挂机功能不稳定/.test(m)) { result.title = "\u4FDD\u6301\u8BFE\u7A0B\u9875\u9762\u6253\u5F00"; result.message = "\u957F\u65F6\u95F4\u6700\u5C0F\u5316\u7A97\u53E3\u53EF\u80FD\u5F71\u54CD\u4EFB\u52A1\u68C0\u6D4B\u3002"; result.state = "recorded"; result.notice = true; } return result; } if (entry.question) { result.message = m.replace(/^第\s*\d+\s*\/\s*\d+\s*题\s*/, ""); if (/积分不足/.test(m)) result.message = "AI \u79EF\u5206\u4E0D\u8DB3\uFF0C\u672C\u9898\u5C1A\u672A\u5B8C\u6210\u3002\u8BF7\u5145\u503C\u540E\u7EE7\u7EED\u5904\u7406\u3002"; else if (/已作答.*跳过/.test(m)) result.message = "\u672C\u9898\u5DF2\u6709\u7B54\u6848\uFF0C\u7EE7\u7EED\u5904\u7406\u4E0B\u4E00\u9898\u3002"; else if (/请求\s*AI/.test(m)) result.message = "\u6B63\u5728\u83B7\u53D6\u672C\u9898\u7B54\u6848\uFF0C\u8BF7\u7A0D\u5019\u3002"; } else if (/收到挂机任务|\[自动答题\]/.test(m)) { result.title = "\u5F00\u59CB\u5904\u7406\u6D4B\u9A8C"; const task = m.match(/【([^】]+)】/); result.message = task ? task[1] : "\u5DF2\u53D1\u73B0\u672A\u5B8C\u6210\u7684\u6D4B\u9A8C\u6216\u4F5C\u4E1A\uFF0C\u5F00\u59CB\u8BC6\u522B\u9898\u76EE\u3002"; result.state = "running"; } else if (/识别到\s*\d+\s*道.*题/.test(m)) { result.title = "\u9898\u76EE\u5DF2\u8BC6\u522B"; result.message = `\u672C\u6B21\u5171 ${((_a = m.match(/总题号\s*(\d+)/)) == null ? void 0 : _a[1]) || ((_b = m.match(/识别到\s*(\d+)/)) == null ? void 0 : _b[1])} \u9898\uFF0C\u6309\u987A\u5E8F\u5904\u7406\u3002`; } else if (/^积分不足$/.test(m)) { result.hidden = true; } else if (/平台已确认提交完成/.test(m)) { result.title = "\u6D4B\u9A8C\u5DF2\u63D0\u4EA4"; result.message = "\u5DF2\u6536\u5230\u5E73\u53F0\u7684\u63D0\u4EA4\u6210\u529F\u786E\u8BA4\u3002"; } else if (/已点击提交|已确认提交/.test(m)) { result.title = "\u7B49\u5F85\u63D0\u4EA4\u7ED3\u679C"; result.message = "\u63D0\u4EA4\u64CD\u4F5C\u5DF2\u53D1\u51FA\uFF0C\u6B63\u5728\u7B49\u5F85\u5E73\u53F0\u786E\u8BA4\u3002"; result.state = "running"; } return result; } function studentTaskSummary(entries, enabled = true) { var _a; if (!enabled) return { state: "recorded", title: "AI \u4F5C\u7B54\u5DF2\u5173\u95ED", description: "\u53EF\u624B\u52A8\u4F5C\u7B54\uFF1B\u5F00\u542F AI \u5F00\u5173\u540E\u81EA\u52A8\u8BC6\u522B\u9898\u76EE\u3002", badge: "\u5DF2\u5173\u95ED" }; const relevant = entries.filter((entry) => !studentTimelineEntry(entry).hidden && !/本题消耗|本轮消耗|积分记录|积分已刷新|兑换成功/.test(entry.message) && !/^(卡密|请输入卡密|账户同步失败)/.test(entry.message)); const latest = relevant.at(-1); const question = (_a = entries.findLast((entry) => entry.question)) == null ? void 0 : _a.question; const blocker = entries.at(-1); if (blocker && /^积分不足$/.test(blocker.message) || latest && /积分不足/.test(latest.message)) { return { state: "paused", title: question ? `\u7B2C ${question.index} / ${question.total} \u9898 \xB7 AI \u79EF\u5206\u4E0D\u8DB3` : "AI \u79EF\u5206\u4E0D\u8DB3", description: "AI \u4F5C\u7B54\u5DF2\u6682\u505C\u3002\u8BF7\u5145\u503C\u79EF\u5206\uFF0C\u518D\u7EE7\u7EED\u5904\u7406\u672C\u6B21\u6D4B\u9A8C\u3002", recharge: true }; } if (latest && /^AI 实践对话/.test(latest.message)) return studentDialogueSummary(relevant, latest.message); if (latest && /平台已确认提交完成/.test(latest.message)) return { state: "done", title: "\u6D4B\u9A8C\u5DF2\u63D0\u4EA4", description: "\u5E73\u53F0\u5DF2\u786E\u8BA4\u63D0\u4EA4\u5B8C\u6210\uFF0C\u53EF\u67E5\u770B\u6D4B\u9A8C\u7ED3\u679C\u3002" }; if (latest && /AI 作答已开启/.test(latest.message)) return { state: "recorded", title: "\u7B49\u5F85\u6D4B\u9A8C\u6216\u4F5C\u4E1A", description: "AI \u4F5C\u7B54\u5DF2\u5F00\u542F\uFF0C\u8FDB\u5165\u6D4B\u9A8C\u6216\u4F5C\u4E1A\u9875\u9762\u540E\u81EA\u52A8\u8BC6\u522B\u9898\u76EE\u3002" }; if (latest && /识别到.*题.*开始处理|自动答题.*探测到/.test(latest.message)) return { state: "running", title: "\u5DF2\u8BC6\u522B\u9898\u76EE\uFF0C\u51C6\u5907\u4F5C\u7B54", description: "\u7B49\u5F85\u5141\u8BB8\u7684\u8BF7\u6C42\u95F4\u9694\u4E0E\u9898\u76EE\u5904\u7406\uFF1B\u5C1A\u672A\u786E\u8BA4\u5B8C\u6210\u6216\u63D0\u4EA4\u3002" }; if (latest) { const shown = studentTimelineEntry(latest); if (shown.state === "paused" && /请求失败|异常|失败/.test(latest.message)) return { state: "paused", title: "AI \u5904\u7406\u672A\u5B8C\u6210", badge: "\u9700\u68C0\u67E5", description: shown.message + "\uFF1B\u8BF7\u68C0\u67E5\u5F53\u524D\u6D4B\u9A8C\uFF0C\u5FC5\u8981\u65F6\u5237\u65B0\u9875\u9762\u91CD\u8BD5\u3002\u6263\u5206\u4EE5\u670D\u52A1\u56DE\u6267\u4E3A\u51C6\u3002" }; if (shown.state === "paused") return { state: "paused", title: shown.title, description: shown.message }; if (shown.state === "running") return { state: "running", title: shown.title, description: shown.message }; if (latest.question || /本页题目处理完成/.test(latest.message)) return { state: "recorded", title: "\u7B54\u6848\u5DF2\u8FD4\u56DE\uFF0C\u63D0\u4EA4\u5F85\u786E\u8BA4", badge: "\u5F85\u786E\u8BA4", description: "\u5DF2\u6709\u7B54\u6848\u4E0D\u4EE3\u8868\u5DF2\u63D0\u4EA4\uFF0C\u8BF7\u7B49\u5F85\u540E\u7EED\u5904\u7406\u548C\u5E73\u53F0\u786E\u8BA4\u3002" }; } return { state: "recorded", title: "\u7B49\u5F85\u6D4B\u9A8C\u6216\u4F5C\u4E1A", description: "\u8FDB\u5165\u6D4B\u9A8C\u6216\u4F5C\u4E1A\u9875\u9762\u540E\uFF0C\u81EA\u52A8\u8BC6\u522B\u9898\u76EE\u3002" }; } function studentDialogueSummary(entries, message) { var _a; const roles = entries.map((entry) => entry.message.match(/正在以“(.+?)”的身份回复“(.+?)”/)).findLast(Boolean); const agent = (roles == null ? void 0 : roles[2]) || "\u5BF9\u65B9"; const rounds = (_a = entries.map((entry) => entry.message.match(/^AI 实践对话已完成 (\d+) 轮/)).findLast(Boolean)) == null ? void 0 : _a[1]; const doneTitle = rounds ? `AI \u5B9E\u8DF5\u5BF9\u8BDD\u5DF2\u5B8C\u6210 ${rounds} \u8F6E` : "AI \u5B9E\u8DF5\u5BF9\u8BDD\u5DF2\u5B8C\u6210"; if (/已点击结束/.test(message)) return { state: "done", title: doneTitle, description: "\u5DF2\u70B9\u51FB\u7ED3\u675F\u6309\u94AE\uFF0C\u7B49\u5F85\u5E73\u53F0\u8BC4\u5206\u3002", badge: "\u5DF2\u5B8C\u6210" }; if (/未找到结束按钮/.test(message)) return { state: "done", title: doneTitle, description: "\u9700\u8981\u8BC4\u5206\u65F6\u8BF7\u81EA\u5DF1\u70B9\u9875\u9762\u4E0A\u7684\u7ED3\u675F\u6309\u94AE\u3002", badge: "\u5DF2\u5B8C\u6210" }; if (/^AI 实践对话已完成/.test(message)) return { state: "running", title: doneTitle, description: "\u6B63\u5728\u70B9\u51FB\u7ED3\u675F\u6309\u94AE\u3002" }; const round = message.match(/第 (\d+) \/ (\d+) 轮/); const title = round ? `AI \u5B9E\u8DF5\u5BF9\u8BDD \xB7 \u7B2C ${round[1]} / ${round[2]} \u8F6E` : "AI \u5B9E\u8DF5\u5BF9\u8BDD"; const reason = message.replace(/^AI 实践对话(?: 第 \d+ \/ \d+ 轮)?(?:请求失败)?[::]\s*/, ""); if (/已停止/.test(message)) return { state: "paused", title, description: reason }; if (/请求失败|超时|未能发送|异常/.test(message)) return { state: "paused", title: "AI \u5B9E\u8DF5\u5BF9\u8BDD\u5DF2\u6682\u505C", badge: "\u9700\u68C0\u67E5", description: reason }; if (/已发送/.test(message)) return { state: "running", title, description: `\u5DF2\u53D1\u9001\uFF0C\u7B49\u5F85\u201C${agent}\u201D\u56DE\u590D\u2026` }; if (roles && /正在以/.test(message)) return { state: "running", title, description: `\u6B63\u5728\u4EE5\u201C${roles[1]}\u201D\u7684\u8EAB\u4EFD\u56DE\u590D\u201C${roles[2]}\u201D\uFF0C\u6BCF\u8F6E\u6263 1 \u79EF\u5206` }; return { state: "running", title, description: reason }; } function studentCurrentTaskRows(rows, contexts, key) { return rows.filter((row) => { if (!contexts.has(row)) contexts.set(row, key); return key !== null && contexts.get(row) === key; }); } function studentSubmissionState(entries, total) { const confirmed = entries.findLastIndex((entry) => /平台已确认提交完成/.test(entry.message)); const newTask = entries.findLastIndex((entry) => /收到挂机任务|\[自动答题\]|识别到\s*\d+\s*道.*总题号/.test(entry.message)); const submitted = confirmed >= 0 && confirmed > newTask; return { confirmed: submitted, text: submitted ? "\u5E73\u53F0\u5DF2\u786E\u8BA4\u63D0\u4EA4\u5B8C\u6210" : total ? "\u672C\u6B21\u6D4B\u9A8C \xB7 \u5C1A\u672A\u786E\u8BA4\u63D0\u4EA4" : "\u7B49\u5F85\u8BC6\u522B\u672C\u6B21\u6D4B\u9A8C" }; } function studentCourseLogRows(documents) { return documents.flatMap((doc) => { var _a; return [...((_a = doc.querySelector("#log")) == null ? void 0 : _a.querySelectorAll("[data-legacy-log]")) || []]; }).filter((row) => !row.hasAttribute("data-ai-log-id")); } function studentLogEntry(row, isAI) { var _a; if (isAI) return describeTimelineLog(row); const color = ((_a = row.querySelector("span")) == null ? void 0 : _a.style.color) || ""; const entry = describeTimelineLog({ textContent: row.textContent, className: /red/.test(color) ? "cxds-error" : /green/.test(color) ? "cxds-success" : "" }); return { ...entry, origin: "course", question: null, state: entry.state === "running" ? "recorded" : entry.state }; } function studentLogOrder(rows, now = /* @__PURE__ */ new Date()) { const seconds = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds(); const age = (row) => { const match = (row.textContent || "").match(/^\[(\d{1,2}):(\d{2}):(\d{2})\]/); return match ? (seconds - (+match[1] * 3600 + +match[2] * 60 + +match[3]) + 86400) % 86400 : 0; }; return [...rows].sort((a, b) => age(b) - age(a)); } var LogTimeline = class { constructor(panel) { this.panel = panel; this.source = panel.querySelector(".cxds-logs"); this.logRoot = panel.querySelector(".cxds-log-panel"); this.view = this.logRoot.querySelector(".drip-timeline"); this.nodes = /* @__PURE__ */ new Map(); this.seen = /* @__PURE__ */ new WeakMap(); this.summaryContexts = /* @__PURE__ */ new WeakMap(); } mount() { this.render(); this.observer = new MutationObserver((records) => { if (records.some((record) => record.target === this.source && record.type === "childList" && record.removedNodes.length && !record.addedNodes.length && !record.previousSibling && !record.nextSibling)) this.progress = {}; this.render(); }); this.observer.observe(this.source, { childList: true, subtree: true, characterData: true, attributes: true, attributeFilter: ["class"] }); } render() { const atEnd = this.view.scrollHeight - this.view.scrollTop - this.view.clientHeight < 40; const aiRows = [...this.source.children]; const rows = aiRows; const rawEntries = rows.map(describeTimelineLog); const entries = rawEntries.map((entry) => this.detailed ? { ...entry, hidden: false } : studentTimelineEntry(entry)); const visible = studentVisibleLogIndexes(rawEntries, this.detailed); const enabled = this.panel.querySelector('[data-action="ai-toggle"]').getAttribute("aria-checked") === "true"; this.view.dataset.emptyCopy = "\u672C\u9875\u6682\u65E0 AI \u4F5C\u7B54\u6216\u79EF\u5206\u64CD\u4F5C\u8BB0\u5F55"; this.logRoot.dataset.detailed = String(Boolean(this.detailed)); const lastPaused = entries.findLastIndex((entry) => entry.state === "paused"); const lastRunning = entries.findLastIndex((entry) => entry.state === "running"); const lastDone = entries.findLastIndex((entry) => entry.state === "done"); const active = lastRunning > Math.max(lastPaused, lastDone) && enabled ? lastRunning : -1; const retained = new Set(rows); for (const [row, node] of this.nodes) { if (!retained.has(row)) { node.remove(); this.nodes.delete(row); } } rows.forEach((row, index) => { var _a; const entry = entries[index]; if (entry.hidden || !visible.has(index)) { (_a = this.nodes.get(row)) == null ? void 0 : _a.remove(); this.nodes.delete(row); return; } const state = entry.state === "running" && index !== active ? "recorded" : entry.state; let node = this.nodes.get(row); if (!node) { node = document.createElement("article"); node.className = "drip-timeline-entry"; node.innerHTML = '

'; this.nodes.set(row, node); this.view.appendChild(node); } node.dataset.state = state; const setText = (selector, text) => { const target = node.querySelector(selector); if (target.textContent !== text) target.textContent = text; }; setText("strong", entry.title); setText(".drip-log-state", entry.notice ? "\u63D0\u793A" : state === "done" && /识别到\s*\d+\s*道.*题|本次共 \d+ 题/.test(entry.message) ? "\u8BC6\u522B\u6210\u529F" : entry.question && state === "done" ? /已作答/.test(entry.message) || /本题已有答案/.test(entry.message) ? "\u5DF2\u6709\u7B54\u6848" : "\u5DF2\u8FD4\u56DE" : { done: "\u5DF2\u5B8C\u6210", paused: "\u5DF2\u6682\u505C", running: "\u8FDB\u884C\u4E2D", recorded: "\u8BB0\u5F55" }[state]); const body = entry.message === entry.title || entry.message.startsWith(entry.title) && entry.message.length - entry.title.length < 12 ? "" : entry.message; setText("p", body); node.querySelector("p").hidden = !body; const courseRow = entry.origin === "course" || /课程|章节|目录|任务点|视频/.test(entry.message) && !/AI|题|积分/.test(entry.message); setText("time", `${courseRow ? "\u8BFE\u7A0B\u5B66\u4E60" : "AI \u4F5C\u7B54"} \xB7 ${entry.time}`); }); let previous = null; for (const row of rows) { const node = this.nodes.get(row); if (!node) continue; if (previous ? previous.nextElementSibling !== node : this.view.firstElementChild !== node) this.view.insertBefore(node, previous ? previous.nextElementSibling : this.view.firstElementChild); previous = node; } const meaningful = rawEntries.filter((entry) => !studentTimelineEntry(entry).hidden).length; const count = this.detailed ? rawEntries.length : meaningful; this.logRoot.querySelector("[data-log-count]").textContent = count ? `${count} \u6761` : ""; this.logRoot.querySelector('[data-action="log-detail"]').hidden = !rawEntries.length; this.logRoot.querySelector('[data-action="clear-log"]').hidden = !rawEntries.length; this.logRoot.querySelector("[data-log-history]").hidden = true; const changes = aiRows.map(describeTimelineLog).filter((entry, index) => { const row = aiRows[index]; const signature = `${row.className}|${row.textContent}`; if (this.seen.get(row) === signature) return false; this.seen.set(row, signature); return true; }); this.progress = timelineProgress(changes, aiRows.length ? this.progress : {}); this.renderProgress(this.progress); this.syncTaskSummary(); if (atEnd) this.view.scrollTop = this.view.scrollHeight; } renderProgress({ total, current, questions, completed }) { const segments = this.logRoot.querySelector("[data-question-segments]"); const label = this.logRoot.querySelector("[data-progress-label]"); const count = this.logRoot.querySelector("[data-question-progress]"); this.logRoot.querySelector(".drip-progress").hidden = !total; label.textContent = total ? "\u672C\u6B21\u6D4B\u9A8C \xB7 \u5DF2\u6709\u7B54\u6848" : ""; count.textContent = total ? `${completed} / ${total}` : ""; const signature = JSON.stringify([total, current, [...questions]]); if (signature === this.progressSignature) return; this.progressSignature = signature; segments.replaceChildren(); for (let index = 1; index <= total; index++) { const state = questions.get(index) || "pending"; const segment = document.createElement("span"); segment.dataset.state = state; const status = { done: "\u7B54\u6848\u5DF2\u8FD4\u56DE\u6216\u5DF2\u4F5C\u7B54", paused: "\u5DF2\u6682\u505C", running: "\u8FDB\u884C\u4E2D", recorded: "\u5F85\u68C0\u67E5", pending: "\u5F85\u5904\u7406" }[state]; segment.title = `\u7B2C ${index} \u9898 \xB7 ${status}`; segment.setAttribute("aria-label", segment.title); if (index === current) segment.setAttribute("aria-current", "step"); segments.appendChild(segment); } } syncTaskSummary() { const work = findStudentWorkTarget(findSameOriginDocuments(document)); const url = new URL(location.href); const study = /\/mycourse\/studentstudy$/.test(url.pathname); const key = study && !work ? null : `${url.pathname}:${url.searchParams.get("chapterId") || url.searchParams.get("workId") || ""}`; const rows = studentCurrentTaskRows([...this.source.children], this.summaryContexts, key); this.renderSummary(rows.map(describeTimelineLog)); } renderSummary(entries) { var _a, _b, _c, _d; const summary = studentTaskSummary(entries, this.panel.querySelector('[data-action="ai-toggle"]').getAttribute("aria-checked") === "true"); const root = this.panel.querySelector(".drip-current"); root.dataset.state = summary.state; root.hidden = false; const setText = (selector, text) => { const node = this.panel.querySelector(selector) || this.logRoot.querySelector(selector); if (node.textContent !== text) node.textContent = text; }; setText("[data-current-title]", summary.title); setText("[data-current-description]", summary.description); setText("[data-current-state]", summary.badge || { recorded: "\u7B49\u5F85\u9898\u76EE", running: "\u8FDB\u884C\u4E2D", paused: "\u5DF2\u6682\u505C", done: "\u5DF2\u63D0\u4EA4" }[summary.state]); this.panel.querySelector('[data-action="show-recharge"]').hidden = !summary.recharge; const submission = studentSubmissionState(entries, (_a = this.progress) == null ? void 0 : _a.total); this.logRoot.querySelector("[data-submission-state]").hidden = !((_b = this.progress) == null ? void 0 : _b.total) && !submission.confirmed; setText("[data-submission-state]", submission.text); this.logRoot.querySelector("[data-submission-state]").dataset.confirmed = String(submission.confirmed); if (typeof CustomEvent !== "undefined") (_d = (_c = this.panel).dispatchEvent) == null ? void 0 : _d.call(_c, new CustomEvent("drip-ux-refresh")); } }; function syncTaskLog(row) { if (!row || window.top !== window) return; try { for (const doc of findSameOriginDocuments(document)) { const target = doc.querySelector("#log"); if (!target) continue; const id = row.dataset.taskLogId || (row.dataset.taskLogId = "ai-" + Date.now() + "-" + Math.random().toString(36).slice(2)); let mirror = target.querySelector('[data-ai-log-id="' + id + '"]'); if (!mirror) { mirror = doc.createElement("div"); mirror.dataset.aiLogId = id; target.appendChild(mirror); } mirror.textContent = row.textContent; mirror.style.whiteSpace = "pre-wrap"; mirror.style.color = row.className.includes("error") ? "#f87171" : row.className.includes("warn") ? "#fbbf24" : row.className.includes("success") ? "#86efac" : "#cbd5e1"; while (target.children.length > 300) target.firstElementChild.remove(); target.scrollTop = target.scrollHeight; } } catch (e) { } } var Logger = class { constructor() { this.container = null; this.statusBadge = null; this.statusBanner = null; this.quickStatus = null; this.lastKey = ""; this.lastRow = null; this.repeatCount = 1; } bind(container, targets = {}) { this.container = container; this.statusBadge = targets.statusBadge || null; this.statusBanner = targets.statusBanner || null; this.quickStatus = targets.quickStatus || null; } log(message, level = "info") { var _a; const normalizedLevel = this.normalizeLevel(level); const displayMessage = this.sanitizeMessage(message); const key = this.repeatKey(displayMessage, normalizedLevel); console.log(`[drip7boi] ${displayMessage}`); if (!this.container) { this.updateStatusFromLog(displayMessage, normalizedLevel); return null; } if (key && key === this.lastKey && this.lastRow) { this.repeatCount += 1; this.lastRow.textContent = this.formatMessage(displayMessage, this.repeatCount); syncTaskLog(this.lastRow); this.container.scrollTop = this.container.scrollHeight; this.updateStatusFromLog(displayMessage, normalizedLevel); return this.lastRow; } this.repeatCount = 1; this.lastKey = key; const row = document.createElement("div"); row.className = `cxds-log cxds-${normalizedLevel}`; row.textContent = this.formatMessage(displayMessage); this.container.appendChild(row); syncTaskLog(row); while (this.container.childElementCount > 150) (_a = this.container.firstElementChild) == null ? void 0 : _a.remove(); this.container.scrollTop = this.container.scrollHeight; this.lastRow = row; this.updateStatusFromLog(displayMessage, normalizedLevel); return row; } update(row, message, level = "info") { if (!row) return this.log(message, level); const normalizedLevel = this.normalizeLevel(level); const displayMessage = this.sanitizeMessage(message); row.className = `cxds-log cxds-${normalizedLevel}`; row.textContent = this.formatMessage(displayMessage); this.updateStatusFromLog(displayMessage, normalizedLevel); syncTaskLog(row); return row; } clear() { if (!this.container) return; this.container.textContent = ""; this.lastKey = ""; this.lastRow = null; this.repeatCount = 1; } setStatus(type2 = "ready", badgeText = "\u51C6\u5907\u5C31\u7EEA", bannerText = "") { const config = this.statusConfig(type2, badgeText, bannerText); if (this.statusBadge) { this.statusBadge.textContent = config.badge; this.statusBadge.className = `cxds-status-badge cxds-status-${config.type}`; } if (this.quickStatus) { this.quickStatus.textContent = config.badge; this.quickStatus.className = `cxds-status-${config.type}`; } if (this.statusBanner) { this.statusBanner.className = `cxds-status-banner ${config.bannerClass}`; const text = this.statusBanner.querySelector("[data-status-text]"); if (text) text.textContent = config.banner; } } updateStatusFromLog(message, level) { if (/收到挂机任务|第.*题.*请求.*AI/.test(String(message))) { this.setStatus("running", "\u5904\u7406\u4E2D", "AI \u6B63\u5728\u5904\u7406\u4F5C\u4E1A"); return; } if (/平台已确认提交完成/.test(String(message))) { this.setStatus("ready", "\u5DF2\u63D0\u4EA4", "\u5E73\u53F0\u5DF2\u786E\u8BA4\u63D0\u4EA4\u5B8C\u6210"); return; } if (/尚未收到平台提交成功|作业框架仍有未作答/.test(String(message))) { this.setStatus("warning", "\u5F85\u68C0\u67E5", String(message)); return; } const text = String(message || ""); if (/卡密|未激活|NOT_ACTIVATED/.test(text)) { this.setStatus("warning", "\u6B63\u5728\u521D\u59CB\u5316", "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"); return; } if (/积分不足|INSUFFICIENT_BALANCE|积分积分不足/.test(text)) { this.setStatus("warning", "\u79EF\u5206\u4E0D\u8DB3", "\u79EF\u5206\u4E0D\u8DB3\uFF0C\u8BF7\u8F93\u5165\u5361\u5BC6\u5151\u6362"); return; } if (/今日.*额度.*用完|DAILY_LIMIT_REACHED/.test(text)) { this.setStatus("warning", "\u4ECA\u65E5\u989D\u5EA6\u5DF2\u7528\u5B8C", "\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u660E\u5929\u6062\u590D\uFF1B\u79EF\u5206\u4F59\u989D\u4ECD\u4FDD\u7559"); return; } if (/请求太快|RATE_LIMITED|请求限制/.test(text)) { this.setStatus("warning", "\u8BF7\u6C42\u8FC7\u5FEB", "\u8BF7\u6C42\u592A\u5FEB\uFF0C\u5DF2\u6682\u505C\u7247\u523B\u540E\u7EE7\u7EED"); return; } if (/未找到可接管的视频|No video|未找到视频/.test(text)) { this.setStatus("warning", "\u672A\u627E\u5230\u89C6\u9891", "\u5F53\u524D\u9875\u9762\u672A\u627E\u5230\u53EF\u63A5\u7BA1\u89C6\u9891"); return; } if (/内嵌页面/.test(text) && /未找到|受限|跨域|允许/.test(text)) { this.setStatus("warning", "\u672A\u627E\u5230\u89C6\u9891", "\u5F53\u524D\u9875\u9762\u4F4D\u4E8E\u5185\u5D4C\u9875\u9762\u4E2D\uFF0C\u90E8\u5206\u529F\u80FD\u53EF\u80FD\u53D7\u9650"); return; } if (level === "error") { this.setStatus("error", "\u9519\u8BEF", "\u51FA\u73B0\u9519\u8BEF\uFF0C\u8BF7\u67E5\u770B\u8FD0\u884C\u65E5\u5FD7"); return; } if (/开始|处理中|请求|扫描|接管|Running/i.test(text)) { this.setStatus("running", "\u8FD0\u884C\u4E2D", "\u6B63\u5728\u8FD0\u884C"); return; } if (level === "success") this.setStatus("ready", "\u51C6\u5907\u5C31\u7EEA", "\u51C6\u5907\u5C31\u7EEA"); } normalizeLevel(level) { if (level === "warn" || level === "warning") return "warn"; if (level === "success" || level === "error" || level === "muted") return level; return "info"; } repeatKey(message, level) { const text = String(message || "").replace(/\d+/g, "#").trim(); if (/iframe|内嵌页面|未找到可接管的视频|未找到视频|No video|未识别到题目|扫描/.test(text)) { return `${level}:${text}`; } return ""; } formatMessage(message, repeat = 1) { const time = (/* @__PURE__ */ new Date()).toLocaleTimeString(); const suffix = repeat > 1 ? `\uFF08\u91CD\u590D ${repeat} \u6B21\uFF09` : ""; return `[${time}] ${message}${suffix}`; } sanitizeMessage(message) { const text = String(message || "").replace(/DAILY_LIMIT_REACHED/gi, "\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C").replace(/RATE_LIMITED/gi, "\u8BF7\u6C42\u8FC7\u5FEB").replace(/INSUFFICIENT_BALANCE/gi, "\u79EF\u5206\u4E0D\u8DB3").replace(/DEVICE_BANNED/gi, "\u5F53\u524D\u8BBE\u5907\u5DF2\u88AB\u9650\u5236").replace(/UNAUTHORIZED/gi, "\u767B\u5F55\u72B6\u6001\u5931\u6548").replace(/AI_PROVIDER_ERROR/gi, "AI \u670D\u52A1\u6682\u65F6\u5F02\u5E38").replace(/NOT_ACTIVATED/gi, "\u6B63\u5728\u521D\u59CB\u5316").replace(/Failed to fetch/gi, "\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5").replace(/NetworkError/gi, "\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25").replace(/AbortError/gi, "\u8BF7\u6C42\u8D85\u65F6").replace(/HTTP_\d+/gi, formatHttpFailure).replace(/\biframe\b/gi, "\u5185\u5D4C\u9875\u9762").replace(/\bNo video\b/gi, "\u672A\u627E\u5230\u89C6\u9891").replace(/\bRunning\b/gi, "\u8FD0\u884C\u4E2D").replace(/\bReady\b/gi, "\u51C6\u5907\u5C31\u7EEA").replace(/\bError\b/gi, "\u9519\u8BEF"); if (/\b(TypeError|ReferenceError|SyntaxError)\b/i.test(text)) { return "\u811A\u672C\u8FD0\u884C\u5F02\u5E38\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u540E\u91CD\u8BD5"; } return text; } statusConfig(type2, badgeText, bannerText) { if (type2 === "missing") return { type: "missing", badge: badgeText, banner: bannerText || "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5", bannerClass: "is-error" }; if (type2 === "error") return { type: "error", badge: badgeText, banner: bannerText || "\u51FA\u73B0\u9519\u8BEF", bannerClass: "is-error" }; if (type2 === "warning") return { type: "warning", badge: badgeText, banner: bannerText || "\u9700\u8981\u6CE8\u610F", bannerClass: "is-warning" }; if (type2 === "running") return { type: "running", badge: badgeText, banner: bannerText || "\u6B63\u5728\u8FD0\u884C", bannerClass: "is-running" }; return { type: "ready", badge: badgeText || "\u51C6\u5907\u5C31\u7EEA", banner: bannerText || "\u51C6\u5907\u5C31\u7EEA", bannerClass: "is-success" }; } }; var SettingsStore = class { constructor(storage = window.localStorage) { this.storage = storage; this.aiPreferenceRevision = 0; this.aiPendingWrites = 0; if (typeof window !== "undefined") window.addEventListener("drip7boi:ai-preference", (event) => { if (this.aiPendingWrites) return; this.aiPreferenceRevision++; this.storage.setItem(this.key("aiAnswerEnabled"), String(event.detail.enabled)); }); } async initializeAiAnswer() { if (!this.aiPreferenceReady) this.aiPreferenceReady = (async () => { const revision = this.aiPreferenceRevision; if (typeof GM_getValue !== "function") return; try { const value = await GM_getValue(this.key("aiAnswerEnabled"), this.get("aiAnswerEnabled")); if (this.aiPreferenceRevision === revision) this.storage.setItem(this.key("aiAnswerEnabled"), String(value === true || value === "true")); } catch (e) { } })(); return this.aiPreferenceReady; } key(name) { return `${STORAGE_PREFIX}${name}`; } get(name) { if (["autoClick", "fuzzyMatch", "alterTitle"].includes(name)) return true; const fallback = DEFAULT_SETTINGS[name]; const raw = this.storage.getItem(this.key(name)); if (raw === null) return fallback; if (typeof fallback === "boolean") return raw === "true"; if (typeof fallback === "number") { const n = Number(raw); return Number.isFinite(n) ? n : fallback; } return raw; } set(name, value) { this.storage.setItem(this.key(name), String(value)); if (name === "aiAnswerEnabled") { this.aiPreferenceRevision++; if (typeof GM_setValue === "function") { this.aiPendingWrites++; try { Promise.resolve(GM_setValue(this.key(name), Boolean(value))).catch(() => { }).finally(() => { this.aiPendingWrites--; }); } catch (e) { this.aiPendingWrites--; } } } } all() { return Object.fromEntries(Object.keys(DEFAULT_SETTINGS).map((key) => [key, this.get(key)])); } }; var SITUATIONAL_DIALOGUE_PATH = /\/situationalDialogue\/chat/i; var DIALOGUE_DEFAULT_ROUNDS = 5; var DIALOGUE_MAX_ROUNDS = 20; var DIALOGUE_CANCELLED_MESSAGE = "\u5DF2\u53D6\u6D88\u672C\u6B21 AI \u5B9E\u8DF5\u5BF9\u8BDD\uFF0C\u6CA1\u6709\u6263\u79EF\u5206\uFF1B\u60F3\u8BA9 AI \u4F5C\u7B54\u65F6\uFF0C\u628A AI \u4F5C\u7B54\u5F00\u5173\u5173\u6389\u518D\u6253\u5F00"; var DIALOGUE_REPLY_TIMEOUT_MS = 12e4; var DIALOGUE_REPLY_STABLE_MS = 1500; var DIALOGUE_SCENARIO_WAIT_MS = 6e3; var DIALOGUE_NO_SCENARIO_MESSAGE = "AI \u5B9E\u8DF5\u5BF9\u8BDD\uFF1A\u9875\u9762\u60C5\u666F\u672A\u52A0\u8F7D\uFF08\u76F4\u63A5\u5237\u65B0\u9875\u9762\u4F1A\u4E22\u5931\uFF09\uFF0C\u5E73\u53F0\u65E0\u6CD5\u5F00\u59CB\u5BF9\u8BDD\uFF0C\u672A\u6263\u79EF\u5206\u3002\u8BF7\u56DE\u5230\u4EFB\u52A1\u5217\u8868\u91CD\u65B0\u70B9\u8FDB\u672C\u6B21 AI\u5B9E\u8DF5"; var DIALOGUE_MAX_RATE_LIMIT_RETRIES = 3; var DIALOGUE_PROMPT_BUDGET = 6500; function isSituationalDialoguePage(loc = typeof location !== "undefined" ? location : null) { return SITUATIONAL_DIALOGUE_PATH.test(String((loc == null ? void 0 : loc.pathname) || "")); } function dialogueText(node) { var _a; if (!node) return ""; const clone = node.cloneNode ? node.cloneNode(true) : node; (_a = clone.querySelectorAll) == null ? void 0 : _a.call(clone, ".message-bubble__loading").forEach((item) => item.remove()); return String(clone.textContent || "").replace(/\s+/g, " ").trim(); } function clipText(text, limit) { const value = String(text || "").trim(); return value.length > limit ? `${value.slice(0, limit)}\u2026` : value; } function readDialogueContext(doc = document) { const text = (selector) => { var _a; return String(((_a = doc.querySelector(selector)) == null ? void 0 : _a.textContent) || "").replace(/\s+/g, " ").trim(); }; const roleName = (kind) => text(`.task-detail__role-avatar--${kind} ~ .task-detail__role-info .task-detail__role-name`); const names = Array.from(doc.querySelectorAll(".task-detail__role-name")).map((node) => String(node.textContent || "").trim()); const selfName = roleName("self") || names[0] || "\u6211"; const agentName = roleName("agent") || names[1] || "\u5BF9\u65B9"; const rows = Array.from(doc.querySelectorAll(".message-list .message-row")); const messages = rows.map((row) => { const self = row.classList.contains("message-row--user"); const bubble = row.querySelector(".message-bubble") || row; return { role: self ? "self" : "agent", text: dialogueText(bubble), loading: Boolean(row.querySelector(".message-bubble__loading")) }; }); return { title: text(".task-detail__title"), description: text(".task-detail__description"), scenario: text(".task-detail__scenario-text"), selfName, agentName, messages, selfCount: messages.filter((message) => message.role === "self").length }; } function buildDialoguePrompt(context, round, total) { const head = [ "\u4F60\u6B63\u5728\u5B66\u4E60\u901A\u201CAI\u5B9E\u8DF5\u201D\u60C5\u666F\u5BF9\u8BDD\u7EC3\u4E60\u4E2D\u626E\u6F14\u4E00\u4E2A\u89D2\u8272\uFF0C\u4E0E\u667A\u80FD\u4F53\u626E\u6F14\u7684\u53E6\u4E00\u65B9\u591A\u8F6E\u5BF9\u8BDD\uFF0C\u5E73\u53F0\u4F1A\u6309\u5BF9\u8BDD\u8D28\u91CF\u8BC4\u5206\u3002", context.title ? `\u4EFB\u52A1\uFF1A${clipText(context.title, 200)}` : "", context.description ? `\u4EFB\u52A1\u8BF4\u660E\uFF1A${clipText(context.description, 1500)}` : "", context.scenario ? `\u60C5\u666F\uFF1A${clipText(context.scenario, 1500)}` : "", `\u4F60\u626E\u6F14\uFF1A${context.selfName}\uFF1B\u5BF9\u65B9\uFF08\u667A\u80FD\u4F53\uFF09\uFF1A${context.agentName}` ].filter(Boolean); const tail = [ `\u73B0\u5728\u662F\u4F60\u7684\u7B2C ${round} / ${total} \u6B21\u53D1\u8A00\u3002${round >= total ? "\u8FD9\u662F\u6700\u540E\u4E00\u6B21\u53D1\u8A00\uFF0C\u8BF7\u5BF9\u524D\u9762\u7684\u8BA8\u8BBA\u505A\u603B\u7ED3\uFF0C\u7ED9\u51FA\u660E\u786E\u7684\u7ED3\u8BBA\u548C\u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3002" : "\u8BF7\u56DE\u5E94\u5BF9\u65B9\u6700\u540E\u8BF4\u7684\u8BDD\uFF0C\u63A8\u8FDB\u95EE\u9898\u89E3\u51B3\uFF0C\u5FC5\u8981\u65F6\u8FFD\u95EE\u5173\u952E\u4E8B\u5B9E\u3002"}`, `\u8981\u6C42\uFF1A\u4EE5\u201C${context.selfName}\u201D\u7684\u8EAB\u4EFD\u7528\u7B2C\u4E00\u4EBA\u79F0\u76F4\u63A5\u5BF9\u201C${context.agentName}\u201D\u8BF4\u8BDD\uFF1B\u53E3\u8BED\u5316\u3001\u4E13\u4E1A\u3001\u6709\u9488\u5BF9\u6027\uFF0C\u7D27\u6263\u4EFB\u52A1\u8BF4\u660E\u6D89\u53CA\u7684\u77E5\u8BC6\u70B9\uFF08\u5FC5\u8981\u65F6\u8BF4\u660E\u4F9D\u636E\uFF0C\u5982\u76F8\u5173\u6CD5\u5F8B\u6761\u6587\u6216\u539F\u7406\uFF09\uFF1B200 \u5B57\u4EE5\u5185\uFF1B\u53EA\u8F93\u51FA\u8981\u53D1\u9001\u7684\u8FD9\u6BB5\u8BDD\uFF0C\u4E0D\u8981\u52A0\u89D2\u8272\u540D\u3001\u5F15\u53F7\u3001\u52A8\u4F5C\u63CF\u5199\u6216\u4EFB\u4F55\u89E3\u91CA\u3002` ]; const lines = context.messages.filter((message) => message.text).map((message) => `${message.role === "self" ? context.selfName : context.agentName}\uFF1A${clipText(message.text, 1200)}`); const fixed = head.join("\n").length + tail.join("\n").length + 20; while (lines.length > 1 && fixed + lines.join("\n").length > DIALOGUE_PROMPT_BUDGET) lines.shift(); return [...head, "\u5BF9\u8BDD\u8BB0\u5F55\uFF1A", ...lines, ...tail].join("\n"); } function cleanDialogueReply(answer, context) { let reply = String(answer || "").trim(); const prefix = new RegExp(`^(?:${[context.selfName, "\u6211"].filter(Boolean).map((name) => name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")})\\s*[\uFF1A:]\\s*`); reply = reply.replace(prefix, "").trim(); if (/^[“"「].*[”"」]$/s.test(reply)) reply = reply.slice(1, -1).trim(); return reply; } function dialogueErrorMessage(error) { const code = error == null ? void 0 : error.code; if (code === "NOT_ACTIVATED") return "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; if (code === "INSUFFICIENT_BALANCE") return "\u79EF\u5206\u4E0D\u8DB3\uFF0C\u8BF7\u8F93\u5165\u5361\u5BC6\u5151\u6362"; if (code === "DAILY_LIMIT_REACHED") return "\u4ECA\u65E5\u7B54\u9898\u989D\u5EA6\u5DF2\u7528\u5B8C\uFF0C\u660E\u5929\u6062\u590D\uFF1B\u79EF\u5206\u4F59\u989D\u4ECD\u4FDD\u7559"; if (code === "RATE_LIMITED") return `\u8BF7\u6C42\u592A\u5FEB\uFF0C\u6682\u505C ${error.retryAfterSeconds || 30} \u79D2\u540E\u7EE7\u7EED`; if (code === "DEVICE_BANNED") return "\u5F53\u524D\u8BBE\u5907\u5DF2\u88AB\u9650\u5236\uFF0C\u8BF7\u8054\u7CFB\u5356\u5BB6"; if (code === "AI_PROVIDER_ERROR") return "AI \u670D\u52A1\u6682\u65F6\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; if (code === "UNAUTHORIZED") return "\u4F7F\u7528\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u91CD\u8BD5"; if (code === "AI_EMPTY_ANSWER") return "AI \u672A\u8FD4\u56DE\u53EF\u53D1\u9001\u7684\u56DE\u590D\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"; if (code === "ORIGIN_NOT_ALLOWED") return "\u5F53\u524D\u6269\u5C55\u6765\u6E90\u672A\u88AB AI \u670D\u52A1\u653E\u884C\uFF0C\u8BF7\u66F4\u65B0\u670D\u52A1\u7AEF\u540E\u91CD\u8BD5"; return (error == null ? void 0 : error.message) || "\u8BF7\u6C42\u5F02\u5E38"; } var SituationalDialogueRunner = class { // chooseRounds:开聊前问用户聊几轮(每轮扣 1 积分),返回轮数或 null(不聊);不传时按默认轮数直接开始。 constructor({ aiService, settingsStore, logger, doc = document, wait = sleep, now = () => Date.now(), rounds = DIALOGUE_DEFAULT_ROUNDS, chooseRounds = null }) { this.aiService = aiService; this.settingsStore = settingsStore; this.logger = logger; this.doc = doc; this.wait = wait; this.now = now; this.rounds = rounds; this.chooseRounds = chooseRounds; this.roundsChosen = !chooseRounds; this.running = false; this.finished = false; this.halted = false; } // 完成或出错后不再自动重试;开关重新打开、账户就绪时由 App 调用 reset。 reset() { if (this.halted && this.chooseRounds) this.roundsChosen = false; this.halted = false; if (this.finished && readDialogueContext(this.doc).selfCount < this.rounds) this.finished = this.completedLogged = false; } async run(shouldContinue = () => true) { if (this.running || this.finished || this.halted) return false; this.running = true; try { return await this.loop(shouldContinue); } finally { this.running = false; } } async loop(shouldContinue) { var _a; let rateLimitRetries = 0; while (shouldContinue()) { if (!await this.waitForAgentReply(shouldContinue)) return false; if (!await this.waitForScenario(shouldContinue)) return false; const context = readDialogueContext(this.doc); if (!this.roundsChosen && this.doc.querySelector(".chat-footer textarea.input-textarea, textarea.input-textarea")) { const chosen = Math.floor(Number(await this.chooseRounds({ rounds: this.rounds, selfCount: context.selfCount, max: DIALOGUE_MAX_ROUNDS, agentName: context.agentName }))); if (!shouldContinue()) return false; if (!Number.isFinite(chosen) || chosen < 1) { this.halt(DIALOGUE_CANCELLED_MESSAGE); return false; } this.rounds = Math.min(DIALOGUE_MAX_ROUNDS, Math.max(context.selfCount + 1, chosen)); this.roundsChosen = true; this.logger.log(`AI \u5B9E\u8DF5\u5BF9\u8BDD\uFF1A\u672C\u6B21\u5171\u804A ${this.rounds} \u8F6E\uFF0C\u6BCF\u8F6E\u6263 1 \u79EF\u5206`, "info"); continue; } if (context.selfCount >= this.rounds) return this.complete(context, shouldContinue); const round = context.selfCount + 1; const prefix = `AI \u5B9E\u8DF5\u5BF9\u8BDD \u7B2C ${round} / ${this.rounds} \u8F6E`; const row = this.logger.log(`${prefix}\uFF1A\u6B63\u5728\u4EE5\u201C${context.selfName}\u201D\u7684\u8EAB\u4EFD\u56DE\u590D\u201C${context.agentName}\u201D`, "info"); let result; try { result = await this.aiService.askAI(buildDialoguePrompt(context, round, this.rounds), { type: "dialogue", index: round, total: this.rounds }, { returnFull: true, shouldContinue }); } catch (error) { if (error.code === "AI_DISABLED") { this.logger.update(row, `${prefix}\uFF1AAI \u4F5C\u7B54\u5DF2\u505C\u6B62`, "info"); return false; } this.logger.update(row, `${prefix}\u8BF7\u6C42\u5931\u8D25\uFF1A${dialogueErrorMessage(error)}`, "error"); if (error.code === "RATE_LIMITED" && rateLimitRetries < DIALOGUE_MAX_RATE_LIMIT_RETRIES) { rateLimitRetries++; await this.wait((error.retryAfterSeconds || 30) * 1e3); continue; } this.halted = true; return false; } rateLimitRetries = 0; this.logReceipt(result, prefix); const reply = cleanDialogueReply(result == null ? void 0 : result.answer, context); if (!reply) { this.logger.update(row, `${prefix}\u8BF7\u6C42\u5931\u8D25\uFF1A${dialogueErrorMessage({ code: "AI_EMPTY_ANSWER" })}`, "error"); this.halted = true; return false; } if (!shouldContinue()) { this.logger.update(row, `${prefix}\uFF1AAI \u4F5C\u7B54\u5DF2\u505C\u6B62\uFF0C\u56DE\u590D\u672A\u53D1\u9001`, "info"); return false; } if (!await this.send(reply, context.selfCount)) { const initFailed = /初始化对话失败/.test(String(((_a = this.doc.querySelector(".el-message")) == null ? void 0 : _a.textContent) || "")); this.logger.update(row, initFailed ? `${prefix}\uFF1A\u5E73\u53F0\u521D\u59CB\u5316\u5BF9\u8BDD\u5931\u8D25\uFF0C\u56DE\u590D\u672A\u53D1\u51FA\u3002\u8BF7\u56DE\u5230\u4EFB\u52A1\u5217\u8868\u91CD\u65B0\u70B9\u8FDB\u672C\u6B21 AI\u5B9E\u8DF5` : `${prefix}\uFF1A\u672A\u80FD\u53D1\u9001\u56DE\u590D\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u6846\u540E\u4ECE\u4EFB\u52A1\u5217\u8868\u91CD\u65B0\u8FDB\u5165`, "error"); this.halted = true; return false; } this.logger.update(row, `${prefix}\u5DF2\u53D1\u9001\uFF1A${clipText(reply, 30)}`, "success"); } return false; } logReceipt(result, prefix) { var _a; const chargedPoints = (_a = result == null ? void 0 : result.usage) == null ? void 0 : _a.consumedPoints; const remainingPoints = result == null ? void 0 : result.balancePoints; if (!Number.isSafeInteger(chargedPoints) || chargedPoints < 0 || !Number.isFinite(remainingPoints) || remainingPoints < 0) return; const cached = result.usage.cached === true; const receiptRow = this.logger.log(cached ? `\u79EF\u5206\u8BB0\u5F55\uFF1A\u672C\u8F6E\u4F7F\u7528\u539F\u8BF7\u6C42\u7ED3\u679C\uFF0C\u672A\u91CD\u590D\u6263\u5206\uFF1B\u4F59\u989D ${remainingPoints} \u79EF\u5206` : `\u672C\u8F6E\u6D88\u8017 ${chargedPoints} \u79EF\u5206\uFF0C\u5269\u4F59 ${remainingPoints} \u79EF\u5206`, "muted"); if (receiptRow == null ? void 0 : receiptRow.dataset) Object.assign(receiptRow.dataset, { chargePoints: String(chargedPoints), chargeBalance: String(remainingPoints), chargeCached: String(cached), chargeQuestion: prefix }); if (!cached && chargedPoints > 0 && typeof window !== "undefined") window.dispatchEvent(new CustomEvent("drip7boi:ai-charged", { detail: { points: chargedPoints } })); } // 最后一条是智能体、已无加载动画、文字 3 秒不再变化,才算对方说完。 async waitForAgentReply(shouldContinue) { const deadline = this.now() + DIALOGUE_REPLY_TIMEOUT_MS; let signature = ""; let stableSince = 0; while (shouldContinue()) { const context = readDialogueContext(this.doc); const last = context.messages.at(-1); const ready = last && last.role === "agent" && !last.loading && last.text; const nextSignature = `${context.messages.length}:${(last == null ? void 0 : last.text) || ""}`; if (nextSignature !== signature) { signature = nextSignature; stableSince = this.now(); } if (ready && this.now() - stableSince >= DIALOGUE_REPLY_STABLE_MS) return true; if (this.now() >= deadline) { this.halt(`AI \u5B9E\u8DF5\u5BF9\u8BDD\uFF1A\u7B49\u5F85\u201C${context.agentName}\u201D\u56DE\u590D\u8D85\u65F6\uFF0C\u5DF2\u6682\u505C\uFF0C\u53EF\u4ECE\u4EFB\u52A1\u5217\u8868\u91CD\u65B0\u8FDB\u5165\u540E\u7EE7\u7EED`); return false; } await this.wait(500); } return false; } // 还没有我方发言时,情景为空就不请求 AI(平台初始化必然失败,白扣积分)。 async waitForScenario(shouldContinue) { const deadline = this.now() + DIALOGUE_SCENARIO_WAIT_MS; while (shouldContinue()) { const context = readDialogueContext(this.doc); if (context.scenario || context.selfCount > 0) return true; if (this.now() >= deadline) { this.halt(DIALOGUE_NO_SCENARIO_MESSAGE); return false; } await this.wait(500); } return false; } async send(reply, selfCountBefore) { var _a, _b, _c; const input = this.doc.querySelector(".chat-footer textarea.input-textarea, textarea.input-textarea"); if (!input) return false; (_a = input.focus) == null ? void 0 : _a.call(input); setNativeValue(input, reply); const button = () => this.doc.querySelector(".chat-footer .send-button, .send-button"); for (let attempt = 0; attempt < 10 && ((_b = button()) == null ? void 0 : _b.disabled); attempt++) await this.wait(300); const sendButton = button(); if (sendButton && !sendButton.disabled) clickElement(sendButton); else { const KeyboardEventClass = ((_c = this.doc.defaultView) == null ? void 0 : _c.KeyboardEvent) || KeyboardEvent; input.dispatchEvent(new KeyboardEventClass("keydown", { key: "Enter", code: "Enter", keyCode: 13, which: 13, bubbles: true })); } for (let attempt = 0; attempt < 20; attempt++) { if (readDialogueContext(this.doc).selfCount > selfCountBefore) return true; await this.wait(500); } return false; } async complete(context, shouldContinue) { if (!this.completedLogged) this.logger.log(`AI \u5B9E\u8DF5\u5BF9\u8BDD\u5DF2\u5B8C\u6210 ${this.rounds} \u8F6E`, "success"); this.completedLogged = true; for (let attempt = 0; attempt < 20 && shouldContinue(); attempt++) { const finish = this.doc.querySelector(".finish-button"); if (finish && !finish.disabled) { clickElement(finish); await this.wait(800); const confirm = this.doc.querySelector(".el-message-box__wrapper .el-message-box__btns .el-button--primary"); if (confirm) clickElement(confirm); this.finished = true; this.logger.log("AI \u5B9E\u8DF5\u5BF9\u8BDD\u5DF2\u70B9\u51FB\u7ED3\u675F\uFF0C\u7B49\u5F85\u5E73\u53F0\u8BC4\u5206", "success"); return true; } await this.wait(500); } if (!shouldContinue()) return false; this.finished = true; this.logger.log("AI \u5B9E\u8DF5\u5BF9\u8BDD\u672A\u627E\u5230\u7ED3\u675F\u6309\u94AE\uFF0C\u9700\u8981\u8BC4\u5206\u65F6\u8BF7\u81EA\u5DF1\u70B9\u9875\u9762\u4E0A\u7684\u7ED3\u675F\u6309\u94AE", "warn"); return true; } halt(message) { this.halted = true; this.logger.log(message, "warn"); } }; var App = class { constructor() { this.store = new SettingsStore(); this.logger = new Logger(); this.licenseClient = new LicenseClient(); this.provider = new PaidProxyProvider({ licenseClient: this.licenseClient, timeout: this.store.get("requestTimeout"), maxRetries: this.store.get("maxRetries"), logger: this.logger }); this.aiService = new AIService(this.provider, this.store, this.logger); this.answerEngine = new AnswerEngine({ aiService: this.aiService, settingsStore: this.store, logger: this.logger }); this.detector = new PageDetector(); this.aiRunEpoch = 0; } start() { const isTop = window.top === window; const pageType = this.detector.currentInTree(); this.aiAnswerEnabled = this.store.get("aiAnswerEnabled"); window.addEventListener("drip7boi:ai-preference", (event) => { if (this.store.get("aiAnswerEnabled") === event.detail.enabled) this.setAiAnswerEnabled(event.detail.enabled, false); }); let panel = null; if (isTop) { panel = new ControlPanel(this.store, this.logger, { setAiAnswerEnabled: (enabled) => this.setAiAnswerEnabled(enabled), redeemCard: (cardCode) => this.licenseClient.redeemCard(cardCode), getInvite: () => this.licenseClient.getInvite(), bindInvite: (code) => this.licenseClient.bindInvite(code), createPayOrder: (packageId, method) => this.licenseClient.createPayOrder(packageId, method), getPayOrder: (orderNo) => this.licenseClient.getPayOrder(orderNo), payCompleted: () => this.licenseClient.refreshMe().catch(() => null), resumeAnswering: () => { var _a; return (_a = this.resumeAiDetection) == null ? void 0 : _a.call(this); }, refreshBalance: () => this.licenseClient.refreshMe(), refreshConfig: () => this.licenseClient.getRemoteConfig({ force: true }), getBalance: () => this.licenseClient.getCachedBalance(), getUxContext: () => { const documents = findSameOriginDocuments(document); const work = findStudentWorkTarget(documents); return { path: location.pathname, documents, readOnly: this.answerEngine.isReadOnlyWork((work == null ? void 0 : work.ownerDocument) || document) }; }, getAccountSnapshot: () => this.licenseClient.getAccountSnapshot(), getChaoxingIdentity: () => this.licenseClient.getChaoxingIdentity(), hasLicense: () => this.licenseClient.hasToken(), settingsChanged: () => this.refreshProvider() }); panel.mount(); } this.refreshProvider(); if (isTop) { this.logger.log(pageType === "unknown" ? "\u5F53\u524D\u9875\u9762\u6682\u672A\u8BC6\u522B\u9898\u76EE\uFF0C\u53EF\u624B\u52A8\u6253\u5F00\u9762\u677F\u64CD\u4F5C" : `\u5F53\u524D\u9875\u9762\u7C7B\u578B\uFF1A${pageType}`, "muted"); this.logger.log("[\u6784\u5EFA] \u65E5\u5FD7\u540C\u6B65 0916-c\uFF1A\u5171\u4EAB\u8FDB\u5EA6 / \u4EFB\u52A1\u7ED3\u679C\u5173\u8054", "info"); } const legacyAutoSubmitEnabled = async () => { try { return String(await GM_getValue("courseAutoSubmit", "1")) !== "0"; } catch (e) { return true; } }; const handleAiWorkCall = async (event) => { if (!isTop || this.store.get("aiAnswerEnabled") === false || this.workCallRunning) return; this.workCallRunning = true; const detail = event && event.detail || event && event.data && event.data.detail || {}; this.logger.log(`[\u81EA\u52A8\u8054\u52A8] \u6536\u5230\u6302\u673A\u4EFB\u52A1\u3010${detail.name || "\u7AE0\u8282\u6D4B\u9A8C"}\u3011\uFF0CAI \u667A\u80FD\u505A\u9898\u6A21\u5757\u5F00\u59CB\u5904\u7406...`, "info"); try { const success = await this.run({ autoSubmit: await legacyAutoSubmitEnabled() }); const targetWins = [window, window.parent, window.top].filter(Boolean); targetWins.forEach((w) => { try { w.dispatchEvent(new CustomEvent("drip-ai-work-completed", { detail: { success: Boolean(success), name: detail.name, requestId: detail.requestId } })); } catch (e) { } try { w.postMessage({ type: "drip-ai-work-completed", detail: { success: Boolean(success), name: detail.name, requestId: detail.requestId } }, "*"); } catch (e) { } }); } catch (err) { this.logger.log(`[\u81EA\u52A8\u8054\u52A8] AI \u7B54\u9898\u5F02\u5E38: ${err.message}`, "error"); const targetWins = [window, window.parent, window.top].filter(Boolean); targetWins.forEach((w) => { try { w.dispatchEvent(new CustomEvent("drip-ai-work-completed", { detail: { success: false, error: err.message, name: detail.name, requestId: detail.requestId } })); } catch (e) { } try { w.postMessage({ type: "drip-ai-work-completed", detail: { success: false, error: err.message, name: detail.name, requestId: detail.requestId } }, "*"); } catch (e) { } }); } finally { this.workCallRunning = false; } }; window.addEventListener("drip-call-ai-work", handleAiWorkCall); document.addEventListener("drip-call-ai-work", handleAiWorkCall); const isTrustedWorkCaller = (msg) => { if (!msg.source || msg.origin !== location.origin) return false; try { return findSameOriginDocuments(document).some((doc) => doc.defaultView === msg.source); } catch (e) { return false; } }; window.addEventListener("message", (msg) => { if (msg.data && msg.data.type === "drip-call-ai-work" && isTrustedWorkCaller(msg)) { handleAiWorkCall(msg); } }); let autoAnswerDebounce = false; let attemptedDocuments = /* @__PURE__ */ new WeakSet(); const HIDDEN_CHECK_INTERVAL_MS = 2e4; let lastHiddenCheckAt = 0; window.addEventListener("drip7boi:account-ready", () => { var _a; this.accountInitialized = true; if (["BINDING_REQUIRED", "UNAUTHORIZED"].includes(this.answerEngine.lastErrorCode)) this.answerEngine.lastErrorCode = ""; attemptedDocuments = /* @__PURE__ */ new WeakSet(); autoAnswerDebounce = false; (_a = this.dialogue) == null ? void 0 : _a.reset(); }); const autoCheckQuestions = async () => { if (!isTop || this.store.get("aiAnswerEnabled") === false || !this.accountInitialized || !this.licenseClient.hasToken() || this.runPromise || this.answerEngine.running || autoAnswerDebounce || this.answerEngine.lastErrorCode) return; if (document.hidden) { if (Date.now() - lastHiddenCheckAt < HIDDEN_CHECK_INTERVAL_MS) return; lastHiddenCheckAt = Date.now(); } try { const docs = findSameOriginDocuments(document); const targetDoc = docs.find((d) => this.answerEngine.hasQuestions(d)); if (targetDoc && !attemptedDocuments.has(targetDoc)) { attemptedDocuments.add(targetDoc); autoAnswerDebounce = true; this.logger.log("[\u81EA\u52A8\u7B54\u9898] \u63A2\u6D4B\u5230\u5F53\u524D\u6846\u67B6\u5B58\u5728\u672A\u5B8C\u6210\u6D4B\u9A8C/\u4F5C\u4E1A\uFF0CAI \u6A21\u5757\u542F\u52A8...", "info"); const success = await this.run({ autoSubmit: await legacyAutoSubmitEnabled() }); const targetWins = [window, window.parent, window.top].filter(Boolean); targetWins.forEach((w) => { try { w.dispatchEvent(new CustomEvent("drip-ai-work-completed", { detail: { success: Boolean(success), name: "\u7AE0\u8282\u6D4B\u9A8C" } })); } catch (e) { } try { w.postMessage({ type: "drip-ai-work-completed", detail: { success: Boolean(success), name: "\u7AE0\u8282\u6D4B\u9A8C" } }, "*"); } catch (e) { } }); if (this.answerEngine.lastErrorCode === "ORIGIN_NOT_ALLOWED") { this.logger.log("[\u81EA\u52A8\u7B54\u9898] AI \u670D\u52A1\u672A\u653E\u884C\u5F53\u524D\u6269\u5C55\uFF0C\u5DF2\u505C\u6B62\u81EA\u52A8\u91CD\u8BD5\u548C\u63D0\u4EA4", "error"); } else { setTimeout(() => { autoAnswerDebounce = false; }, 8e3); } } } catch (e) { } }; this.resumeAiDetection = () => { var _a; attemptedDocuments = /* @__PURE__ */ new WeakSet(); autoAnswerDebounce = false; this.answerEngine.lastErrorCode = ""; autoCheckQuestions(); (_a = this.dialogue) == null ? void 0 : _a.reset(); this.runDialogue(); }; if (isTop) { setTimeout(autoCheckQuestions, 2500); setInterval(autoCheckQuestions, 4e3); } if (isTop) { const checkDialogue = () => { if (!this.dialogue && this.onDialoguePage()) this.dialogue = new SituationalDialogueRunner({ aiService: this.aiService, settingsStore: this.store, logger: this.logger, chooseRounds: (info) => this.askDialogueRounds(info) }); this.runDialogue(); }; setTimeout(checkDialogue, 1e3); setInterval(checkDialogue, 2e3); } this.initialization = this.licenseClient.initialize(); this.initialization.then((identity) => { this.accountInitialized = true; if (!identity.recognized) { this.logger.setStatus("warning", "\u672A\u8BC6\u522B\u8D26\u53F7", "\u672A\u8BC6\u522B\u5B66\u4E60\u901A\u8D26\u53F7\uFF0C\u8BF7\u5237\u65B0\u6216\u91CD\u65B0\u767B\u5F55\u5B66\u4E60\u901A"); return; } if (panel) { const panelRoot = document.getElementById("cxds-panel"); panel.updateLicenseState(panelRoot); panel.updateStatus(panelRoot); } }).catch((error) => { this.logger.setStatus("warning", "\u540C\u6B65\u5931\u8D25", "\u8D26\u6237\u540C\u6B65\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u540E\u91CD\u8BD5"); this.logger.log(`\u8D26\u6237\u540C\u6B65\u5931\u8D25\uFF1A${error.message || "\u8BF7\u6C42\u5F02\u5E38"}`, "warn"); }); return true; } refreshProvider() { this.provider.setConfig({ timeout: this.store.get("requestTimeout"), maxRetries: this.store.get("maxRetries") }); } run(options = {}) { if (this.store.get("aiAnswerEnabled") === false) return Promise.resolve(false); if (this.runPromise) return this.runPromise; const epoch = this.aiRunEpoch; this.runPromise = this.runOnce(options, epoch).finally(() => { var _a; this.runPromise = null; if (epoch !== this.aiRunEpoch && this.store.get("aiAnswerEnabled") !== false) (_a = this.resumeAiDetection) == null ? void 0 : _a.call(this); }); return this.runPromise; } async runOnce(options = {}, epoch = this.aiRunEpoch) { var _a; const cancelled = () => epoch !== this.aiRunEpoch || this.store.get("aiAnswerEnabled") === false; if (cancelled()) return false; try { await this.initialization; } catch (e) { this.logger.setStatus("warning", "\u540C\u6B65\u5931\u8D25", "\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u540E\u91CD\u8BD5"); return false; } if (cancelled()) return false; if (!this.licenseClient.hasToken()) { this.logger.setStatus("warning", "\u6B63\u5728\u521D\u59CB\u5316", "\u6B63\u5728\u521D\u59CB\u5316\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"); const panelRoot = document.getElementById("cxds-panel"); panelRoot == null ? void 0 : panelRoot.classList.remove("cxds-hidden"); return false; } this.refreshProvider(); let targets = []; for (let attempt = 0; attempt < 12; attempt++) { if (cancelled()) return false; const documents = findSameOriginDocuments(document); targets = documents.filter((doc) => this.answerEngine.hasQuestions(doc)); if (targets.length > 0) break; await sleep(1e3); } if (cancelled()) return false; if (!targets.length) { this.logger.log("\u672A\u5728\u9875\u9762\u53CA\u6240\u6709\u5B50\u6846\u67B6\u4E2D\u8BC6\u522B\u5230\u9898\u76EE", "muted"); return false; } this.logger.log(`\u5728 ${targets.length} \u4E2A\u6846\u67B6\u4E2D\u8BC6\u522B\u5230\u9898\u76EE\uFF0C\u5F00\u59CB\u4F5C\u7B54...`, "info"); await ((_a = this.checkBalanceBefore) == null ? void 0 : _a.call(this, targets)); if (cancelled()) return false; let allSucceeded = true; for (const target of targets) { if (cancelled()) return false; const ok = await this.answerEngine.scan(target, options); if (ok === false) allSucceeded = false; } return !cancelled() && allSucceeded; } onDialoguePage() { var _a; return /\/situationalDialogue\/chat/i.test(((_a = window.location) == null ? void 0 : _a.pathname) || ""); } runDialogue() { if (!this.dialogue || !this.onDialoguePage() || this.store.get("aiAnswerEnabled") === false || !this.accountInitialized || !this.licenseClient.hasToken()) return; const epoch = this.aiRunEpoch; this.refreshProvider(); this.dialogue.run(() => epoch === this.aiRunEpoch && this.store.get("aiAnswerEnabled") !== false && this.onDialoguePage()).catch((error) => this.logger.log(`AI \u5B9E\u8DF5\u5BF9\u8BDD\u5F02\u5E38\uFF1A${error.message}`, "error")); } // AI实践开聊前弹窗问聊几轮(面板层 panel-rounds.mjs 负责显示);AI 开关关掉就收起弹窗、按“不聊”处理。 askDialogueRounds(info) { const id = Array.from(crypto.getRandomValues(new Uint8Array(12)), (x) => x.toString(16).padStart(2, "0")).join(""); return new Promise((resolve) => { const done = (rounds) => { window.removeEventListener("drip7boi:dialogue-rounds-decision", onDecision); window.removeEventListener("drip7boi:ai-answer-changed", onSwitch); resolve(rounds); }; const onDecision = (event) => { var _a; if (((_a = event.detail) == null ? void 0 : _a.id) === id) done(Number(event.detail.rounds) || null); }; const onSwitch = () => { if (this.store.get("aiAnswerEnabled") !== false) return; window.dispatchEvent(new CustomEvent("drip7boi:dialogue-rounds-clear")); done(null); }; window.addEventListener("drip7boi:dialogue-rounds-decision", onDecision); window.addEventListener("drip7boi:ai-answer-changed", onSwitch); window.dispatchEvent(new CustomEvent("drip7boi:dialogue-rounds", { detail: { id, ...info, balance: this.licenseClient.getCachedBalance() } })); }); } // 开答前算一下余额够不够答完本页:不够就在面板里先问一句(补积分,或先答能答的),最多等 2 分钟。 // 只在开了扫码付款、余额大于 0 时问;余额为 0 时第一题就会停下,走答题中积分不足的提示。同一页只问一次。 async checkBalanceBefore(targets) { var _a, _b; if (!((_b = (_a = this.licenseClient.remoteConfig) == null ? void 0 : _a.panelPay) == null ? void 0 : _b.enabled)) return; const balance = Number(this.licenseClient.getCachedBalance()); if (!Number.isFinite(balance) || balance <= 0) return; const pending = targets.reduce((sum, doc) => sum + this.answerEngine.countPending(doc), 0); if (pending <= balance) return; const key = targets.map((doc) => { try { return doc.location.href; } catch (e) { return ""; } }).join("|"); if (this.balancePromptKey === key) return; this.balancePromptKey = key; const id = `${Date.now()}`; await new Promise((resolve) => { const done = () => { clearTimeout(timer); window.removeEventListener("drip7boi:balance-short-decision", onDecision); window.removeEventListener("drip7boi:ai-answer-changed", done); resolve(); }; const onDecision = (event) => { var _a2; if (((_a2 = event.detail) == null ? void 0 : _a2.id) === id) done(); }; const timer = setTimeout(done, 12e4); window.addEventListener("drip7boi:balance-short-decision", onDecision); window.addEventListener("drip7boi:ai-answer-changed", done); window.dispatchEvent(new CustomEvent("drip7boi:balance-short", { detail: { id, phase: "before", balance, total: pending, need: pending - balance } })); }); } setAiAnswerEnabled(enabled, persist = true) { var _a; enabled = Boolean(enabled); if (persist) this.store.set("aiAnswerEnabled", enabled); if (this.aiAnswerEnabled === enabled) return; this.aiAnswerEnabled = enabled; this.aiRunEpoch++; if (!enabled) { this.stopAnswer(); window.dispatchEvent(new CustomEvent("drip7boi:balance-short-clear")); } this.logger.log(enabled ? "AI \u4F5C\u7B54\u5DF2\u5F00\u542F\uFF0C\u81EA\u52A8\u8BC6\u522B\u6D4B\u9A8C\u4E0E\u4F5C\u4E1A" : "AI \u4F5C\u7B54\u5DF2\u5173\u95ED\uFF0C\u505C\u6B62\u5F53\u524D\u7B54\u9898\u4E0E\u540E\u7EED\u81EA\u52A8\u4F5C\u7B54", "info"); window.dispatchEvent(new CustomEvent("drip7boi:ai-answer-changed")); if (enabled) (_a = this.resumeAiDetection) == null ? void 0 : _a.call(this); } stopAnswer() { const stopped = this.answerEngine.stop(); if (stopped) this.logger.log("\u6B63\u5728\u505C\u6B62\u7B54\u9898\u4EFB\u52A1", "info"); return stopped; } }; async function bootstrap() { if (!/chaoxing\.com|edu\.cn/i.test(location.hostname)) return; if (window.top !== window) return; if (window.__drip7boiAppStarted) return; const app = window.__drip7boiApp || new App(); window.__drip7boiApp = app; await app.store.initializeAiAnswer(); if (app.start()) window.__drip7boiAppStarted = true; } var bootstrapTries = 0; async function bootstrapUntilReady() { await bootstrap(); if (!window.__drip7boiAppStarted && bootstrapTries < 60) { bootstrapTries += 1; setTimeout(bootstrapUntilReady, 1e3); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bootstrapUntilReady, { once: true }); } else { bootstrapUntilReady(); } })(); })();