@midscene/web 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/README.md +7 -0
  2. package/dist/es/index.js +306 -170
  3. package/dist/es/playwright-report.js +22 -15
  4. package/dist/lib/index.js +320 -188
  5. package/dist/lib/playwright-report.js +31 -28
  6. package/dist/script/htmlElement.js +30 -18
  7. package/dist/script/types/htmlElement.d.ts +5 -5
  8. package/dist/types/index.d.ts +18 -12
  9. package/dist/types/playwright-report.d.ts +2 -2
  10. package/dist/visualizer-report/index.html +1 -1
  11. package/dist/visualizer-report/static/css/index.eccd04e1.css +1 -0
  12. package/dist/visualizer-report/static/css/index.eccd04e1.css.map +1 -0
  13. package/dist/visualizer-report/static/js/160.5ac2287a.js +6 -0
  14. package/dist/visualizer-report/static/js/160.5ac2287a.js.map +1 -0
  15. package/dist/visualizer-report/static/js/index.e71be3a2.js +1 -0
  16. package/dist/visualizer-report/static/js/index.e71be3a2.js.map +1 -0
  17. package/dist/visualizer-report/static/js/lib-antd.583c9200.js +141 -0
  18. package/dist/visualizer-report/static/js/lib-antd.583c9200.js.map +1 -0
  19. package/package.json +7 -6
  20. package/dist/visualizer-report/static/css/index.c7751597.css +0 -1
  21. package/dist/visualizer-report/static/css/index.c7751597.css.map +0 -1
  22. package/dist/visualizer-report/static/js/915.d3f73af1.js +0 -6
  23. package/dist/visualizer-report/static/js/915.d3f73af1.js.map +0 -1
  24. package/dist/visualizer-report/static/js/index.ae9a86c5.js +0 -1
  25. package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +0 -1
  26. package/dist/visualizer-report/static/js/lib-antd.55d65804.js +0 -189
  27. package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +0 -1
  28. /package/dist/visualizer-report/static/js/{915.d3f73af1.js.LICENSE.txt → 160.5ac2287a.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/index.e71be3a2.js","sources":["webpack://@midscene/visualizer-report/./src/pages/Home.module.css?7174","webpack://@midscene/visualizer-report/./src/pages/Home.tsx","webpack://@midscene/visualizer-report/../visualizer/dist/es/utils.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/color.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/misc.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/panel-title.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/store.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-side.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/assets/logo-plain2.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/sidebar.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/assets/logo-plain.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/blackboard.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-panel.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/global-hover-preview.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/timeline.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/index.js","webpack://@midscene/visualizer-report/./src/pages/Report.tsx","webpack://@midscene/visualizer-report/./src/App.tsx","webpack://@midscene/visualizer-report/./src/modern.runtime.ts","webpack://@midscene/visualizer-report/"],"sourcesContent":["// extracted by css-extract-rspack-plugin\nexport default {\"nav\":\"nav-u66WwU\",\"container\":\"container-Hq9bKt\",\"test-result\":\"test-result-pnK7ny\",\"testResult\":\"test-result-pnK7ny\",\"test-details\":\"test-details-UpOFMM\",\"testDetails\":\"test-details-UpOFMM\",\"test-info\":\"test-info-AphlaH\",\"testInfo\":\"test-info-AphlaH\",\"test-name\":\"test-name-us3J87\",\"testName\":\"test-name-us3J87\",\"failed\":\"failed-LIeQqO\",\"test-file-path\":\"test-file-path-BdYiH4\",\"testFilePath\":\"test-file-path-BdYiH4\"};","import { useNavigate } from '@modern-js/runtime/router';\nimport { Collapse, Menu } from 'antd';\nimport type { CollapseProps, MenuProps } from 'antd';\nimport type React from 'react';\nimport { useEffect, useState } from 'react';\nimport styeld from './Home.module.css';\nimport './TestResult.css';\n\ntype TestStatus = 'passed' | 'failed' | 'flaky' | 'skipped';\n\ntype TestData = {\n testId: string;\n title: string;\n status: string;\n duration: number;\n location: {\n file: string;\n line: number;\n column: number;\n };\n dumpPath: string;\n};\n\ntype MenuItem = Required<MenuProps>['items'][number];\nexport type Stats = {\n total: number;\n passed: number;\n failed: number;\n flaky: number;\n skipped: number;\n ok: boolean;\n};\n\nconst statusIcon = (status: TestStatus) => {\n switch (status) {\n case 'failed':\n return <span className=\"failed\">❌</span>;\n case 'flaky':\n return <span className=\"flaky\">⚠️</span>;\n default:\n return '';\n }\n};\n\nconst TestResult = (props: {\n status: string;\n statusDataList: {\n [status: string]: TestData[];\n };\n}) => {\n const navigator = useNavigate();\n const onChange = (key: string | string[]) => {\n console.log(key);\n };\n\n const testDataList =\n props.status === 'all'\n ? Object.keys(props.statusDataList).reduce((res, status) => {\n res.push(...props.statusDataList[status]);\n return res;\n }, [] as TestData[])\n : props.statusDataList[props.status];\n const groupTestDataWithFileName =\n testDataList?.reduce(\n (res, next) => {\n if (!res[next.location.file]) {\n res[next.location.file] = [];\n }\n res[next.location.file].push(next);\n return res;\n },\n {} as {\n [fileName: string]: TestData[];\n },\n ) || {};\n\n const items: CollapseProps['items'] = Object.keys(\n groupTestDataWithFileName,\n ).map((fileName, key) => {\n return {\n key,\n label: fileName,\n children: groupTestDataWithFileName[fileName].map((testData, key) => {\n const timeMinutes = Math.floor(testData.duration / 1000 / 60);\n const timeSeconds = Math.floor((testData.duration / 1000) % 60);\n return (\n <div\n className={styeld['test-details']}\n key={key}\n onClick={() => {\n navigator(`/report?dumpId=${testData.dumpPath.split('/').pop()}`);\n }}\n >\n <div className={styeld['test-info']}>\n <span className={styeld['test-name']}>\n {statusIcon(testData.status as TestStatus)}\n {testData.title}\n </span>\n <span>\n duration: {timeMinutes !== 0 && `${timeMinutes}m`}{' '}\n {timeSeconds && `${timeSeconds}s`}\n </span>\n </div>\n <div className={styeld['test-file-path']}>\n {testData.location.file}:{testData.location.line}\n </div>\n </div>\n );\n }),\n };\n });\n return (\n <Collapse\n className={styeld['test-result']}\n activeKey={[...Array(items.length).keys()]}\n items={items}\n onChange={onChange}\n />\n );\n};\n\nexport const StatsNavView: React.FC<{\n stats: Stats;\n statusDataList: {\n [stats: string]: TestData[];\n };\n}> = ({ stats, statusDataList }) => {\n // eslint-disable-next-line node/prefer-global/url-search-params\n const searchParams = new URLSearchParams(window.location.search);\n const navigate = useNavigate();\n const q = searchParams.get('status')?.toString() || '';\n const items: MenuItem[] = [\n {\n label: `All (${stats.total - stats.skipped})`,\n key: 'all',\n },\n {\n label: `Passed (${stats.passed})`,\n key: 'passed',\n },\n {\n label: `Failed (${stats.failed})`,\n key: 'failed',\n icon: statusIcon('failed'),\n },\n {\n label: `Flaky (${stats.flaky})`,\n key: 'flaky',\n icon: statusIcon('flaky'),\n },\n {\n label: `Skipped (${stats.skipped})`,\n key: 'skipped',\n icon: statusIcon('skipped'),\n },\n ];\n\n const [status, setStatus] = useState(q || 'all');\n\n const onClick: MenuProps['onClick'] = (e) => {\n navigate(`?status=${e.key}`);\n setStatus(e.key);\n };\n\n return (\n <>\n <div className={styeld.nav}>\n <Menu\n onClick={onClick}\n selectedKeys={[status]}\n mode=\"horizontal\"\n items={items}\n />\n </div>\n <TestResult status={status} statusDataList={statusDataList} />\n </>\n );\n};\n\nexport function Home() {\n const [testDataList, setTestDataJson] = useState<Array<TestData>>([]);\n const [isLoading, setLoading] = useState<any>(true);\n useEffect(() => {\n fetch('/public/test-data-list.json')\n .then((response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n return response.json();\n })\n .then((data) => {\n setTestDataJson(data['test-list']);\n console.log('data', data, data['test-list']); // 在此处处理 JSON 数据\n })\n .catch((error) => console.error('Error:', error))\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n function TestResultReport(props: { testDataList: TestData[] }) {\n const { testDataList } = props;\n const statusDataList = testDataList?.reduce(\n (res, next) => {\n res[next.status] = [...(res[next.status] || []), next];\n return res;\n },\n {} as {\n [stats: string]: Array<TestData>;\n },\n );\n console.log('statusDataList', testDataList, statusDataList);\n const total = testDataList.length;\n const passed = statusDataList.passed?.length || 0;\n const failed = statusDataList.failed?.length || 0;\n const flaky = statusDataList.flaky?.length || 0;\n const skipped = statusDataList.skipped?.length || 0;\n const ok = Boolean(total === passed);\n\n return (\n <div className={styeld.container}>\n <StatsNavView\n stats={{ total, passed, failed, flaky, skipped, ok }}\n statusDataList={statusDataList}\n />\n </div>\n );\n }\n return <>{!isLoading && <TestResultReport testDataList={testDataList} />}</>;\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport dayjs from \"dayjs\";\nfunction insightDumpToExecutionDump(insightDump) {\n const insightToTask = (insightDump2) => {\n var _a, _b;\n const task = {\n type: \"Insight\",\n subType: insightDump2.type === \"locate\" ? \"Locate\" : \"Query\",\n status: insightDump2.error ? \"fail\" : \"success\",\n param: __spreadProps(__spreadValues(__spreadValues({}, insightDump2.userQuery.element ? { query: insightDump2.userQuery } : {}), insightDump2.userQuery.dataDemand ? { dataDemand: insightDump2.userQuery.dataDemand } : {}), {\n insight: {}\n }),\n log: {\n dump: insightDump2\n },\n timing: {\n end: insightDump2.logTime,\n cost: (_a = insightDump2.taskInfo) == null ? void 0 : _a.durationMs,\n start: insightDump2.logTime - ((_b = insightDump2.taskInfo) == null ? void 0 : _b.durationMs)\n },\n executor: () => {\n }\n };\n return task;\n };\n if (!Array.isArray(insightDump)) {\n const result2 = {\n sdkVersion: insightDump.sdkVersion,\n logTime: insightDump.logTime,\n name: \"Insight\",\n tasks: [insightToTask(insightDump)]\n };\n return result2;\n }\n const result = {\n sdkVersion: insightDump[0].sdkVersion,\n logTime: insightDump[0].logTime,\n name: \"Insight\",\n tasks: insightDump.map(insightToTask)\n };\n return result;\n}\nfunction timeStr(timestamp) {\n return timestamp ? dayjs(timestamp).format(\"YYYY-MM-DD HH:mm:ss\") : \"-\";\n}\nfunction typeStr(task) {\n return task.subType ? `${task.type} / ${task.subType || \"\"}` : task.type;\n}\nfunction filterBase64Value(input) {\n return input.replace(/data:image\\/[^\"]+\"/g, 'data:image...\"');\n}\nexport {\n filterBase64Value,\n insightDumpToExecutionDump,\n timeStr,\n typeStr\n};\n","const sectionColor = [\"#028391\"];\nconst elementColor = [\"#fb6107\"];\nconst highlightColorForSection = \"#01204E\";\nconst highlightColorForElement = \"#F56824\";\nfunction djb2Hash(str) {\n if (!str) {\n console.warn(\"djb2Hash: empty string\");\n str = \"unnamed\";\n }\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) + hash + str.charCodeAt(i);\n }\n return hash >>> 0;\n}\nfunction colorForName(type, name) {\n const hashNumber = djb2Hash(name);\n if (type === \"section\") {\n return sectionColor[hashNumber % sectionColor.length];\n }\n return elementColor[hashNumber % elementColor.length];\n}\nfunction highlightColorForType(type) {\n if (type === \"section\") {\n return highlightColorForSection;\n }\n return highlightColorForElement;\n}\nexport {\n colorForName,\n highlightColorForType\n};\n","import { jsx } from \"react/jsx-runtime\";\nfunction timeCostStrElement(timeCost) {\n let str;\n if (typeof timeCost !== \"number\") {\n str = \"- ms\";\n } else if (timeCost > 1e3) {\n str = `${(timeCost / 1e3).toFixed(2)}s`;\n } else {\n str = `${timeCost}ms`;\n }\n return /* @__PURE__ */ jsx(\n \"span\",\n {\n style: {\n fontVariantNumeric: \"tabular-nums\",\n fontFeatureSettings: \"tnum\"\n },\n children: str\n }\n );\n}\nexport {\n timeCostStrElement\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport \"./panel-title.css\";\nconst PanelTitle = (props) => {\n return /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\"div\", { className: \"task-list-name\", children: props.title }) });\n};\nvar panel_title_default = PanelTitle;\nexport {\n panel_title_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { create } from \"zustand\";\nconst useBlackboardPreference = create((set) => ({\n bgVisible: false,\n textsVisible: true,\n setBgVisible: (visible) => {\n set({ bgVisible: visible });\n },\n setTextsVisible: (visible) => {\n set({ textsVisible: visible });\n }\n}));\nconst useExecutionDump = create((set, get) => {\n const initData = {\n dump: null,\n activeTask: null,\n hoverTask: null,\n hoverTimestamp: null,\n hoverPreviewConfig: null\n };\n const syncToInsightDump = (dump) => {\n const { loadData } = useInsightDump.getState();\n loadData(dump);\n };\n const resetInsightDump = () => {\n const { reset } = useInsightDump.getState();\n reset();\n };\n return __spreadProps(__spreadValues({}, initData), {\n setGroupedDump: (dump) => {\n console.log(\"will set ExecutionDump\", dump);\n set({\n dump\n });\n for (const item of dump) {\n if (item.executions.length > 0 && item.executions[0].tasks.length > 0) {\n get().setActiveTask(item.executions[0].tasks[0]);\n break;\n }\n }\n },\n setActiveTask(task) {\n var _a;\n set({ activeTask: task });\n console.log(\"task set\", task);\n if (task.type === \"Insight\") {\n syncToInsightDump((_a = task.log) == null ? void 0 : _a.dump);\n } else {\n resetInsightDump();\n }\n },\n setHoverTask(task, timestamp) {\n set({ hoverTask: task, hoverTimestamp: timestamp || null });\n },\n setHoverPreviewConfig(config) {\n if (config) {\n set({\n hoverPreviewConfig: {\n x: Math.floor(config.x),\n y: Math.floor(config.y)\n }\n });\n } else {\n set({ hoverPreviewConfig: null });\n }\n },\n reset: () => {\n set(initData);\n resetInsightDump();\n }\n });\n});\nconst useAllCurrentTasks = () => {\n const groupedDumps = useExecutionDump((store) => store.dump);\n const allTasks = (groupedDumps == null ? void 0 : groupedDumps.reduce((acc, group) => {\n const tasksInside = group.executions.reduce(\n (acc2, execution) => acc2.concat(execution.tasks),\n []\n );\n return acc.concat(tasksInside);\n }, [])) || [];\n return allTasks;\n};\nconst useInsightDump = create((set) => {\n let loadId = 0;\n const initData = {\n _loadId: 0,\n highlightSectionNames: [],\n highlightElements: [],\n data: null\n };\n return __spreadProps(__spreadValues({}, initData), {\n loadData: (data) => {\n set({\n _loadId: ++loadId,\n data,\n highlightSectionNames: [],\n highlightElements: []\n });\n },\n setHighlightSectionNames: (sections) => {\n set({ highlightSectionNames: sections });\n },\n setHighlightElements: (elements) => {\n set({ highlightElements: elements });\n },\n reset: () => {\n set(initData);\n }\n });\n});\nexport {\n useAllCurrentTasks,\n useBlackboardPreference,\n useExecutionDump,\n useInsightDump\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./detail-side.css\";\nimport { timeStr, typeStr } from \"../utils\";\nimport { RadiusSettingOutlined } from \"@ant-design/icons\";\nimport { Tag, Timeline, Tooltip } from \"antd\";\nimport { highlightColorForType } from \"./color\";\nimport { timeCostStrElement } from \"./misc\";\nimport PanelTitle from \"./panel-title\";\nimport { useExecutionDump, useInsightDump } from \"./store\";\nconst noop = () => {\n};\nconst Card = (props) => {\n const {\n highlightWithColor,\n title,\n subtitle,\n onMouseEnter,\n onMouseLeave,\n content,\n characteristic\n } = props;\n const titleTag = props.characteristic ? /* @__PURE__ */ jsx(\"div\", { className: \"item-extra\", children: /* @__PURE__ */ jsx(\"div\", { className: \"title-tag\", children: /* @__PURE__ */ jsx(\n Tooltip,\n {\n placement: \"bottomRight\",\n title: characteristic,\n mouseEnterDelay: 0,\n children: /* @__PURE__ */ jsx(\"span\", { children: /* @__PURE__ */ jsx(RadiusSettingOutlined, {}) })\n }\n ) }) }) : null;\n const titleRightPaddingClass = props.characteristic ? \"title-right-padding\" : \"\";\n const modeClass = props.liteMode ? \"item-lite\" : \"\";\n const highlightStyle = highlightWithColor ? { backgroundColor: highlightWithColor } : {};\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: `item ${modeClass} ${highlightWithColor ? \"item-highlight\" : \"\"}`,\n style: __spreadValues({}, highlightStyle),\n onMouseEnter,\n onMouseLeave,\n children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: `title ${titleRightPaddingClass}`,\n style: { display: title ? \"block\" : \"none\" },\n children: [\n title,\n titleTag\n ]\n }\n ),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: `subtitle ${titleRightPaddingClass}`,\n style: { display: subtitle ? \"block\" : \"none\" },\n children: subtitle\n }\n ),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: \"description\",\n style: { display: content ? \"block\" : \"none\" },\n children: content\n }\n )\n ]\n }\n );\n};\nconst MetaKV = (props) => {\n return /* @__PURE__ */ jsx(\"div\", { className: \"meta-kv\", children: props.data.map((item, index) => {\n return /* @__PURE__ */ jsxs(\"div\", { className: \"meta\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"meta-key\", children: item.key }),\n /* @__PURE__ */ jsx(\"div\", { className: \"meta-value\", children: item.content })\n ] }, index);\n }) });\n};\nconst objectWithoutKeys = (obj, keys) => Object.keys(obj).reduce((acc, key) => {\n if (!keys.includes(key)) {\n acc[key] = obj[key];\n }\n return acc;\n}, {});\nconst DetailSide = () => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const task = useExecutionDump((store) => store.activeTask);\n const dump = useInsightDump((store) => store.data);\n const { matchedSection: sections, matchedElement: elements } = dump || {};\n const highlightSectionNames = useInsightDump(\n (store) => store.highlightSectionNames\n );\n const highlightElements = useInsightDump((store) => store.highlightElements);\n const setHighlightSectionNames = useInsightDump(\n (store) => store.setHighlightSectionNames\n );\n const setHighlightElements = useInsightDump(\n (store) => store.setHighlightElements\n );\n const setHighlightSectionName = (name) => {\n setHighlightSectionNames([name]);\n };\n const setHighlightElement = (element) => {\n setHighlightElements([element]);\n };\n const unhighlightSection = () => {\n setHighlightSectionNames([]);\n };\n const unhighlightElement = () => {\n setHighlightElements([]);\n };\n const kv = (data) => {\n const isElementItem = (value) => Boolean(value) && typeof value === \"object\" && typeof value.content !== \"undefined\" && Boolean(value.center) && Boolean(value.rect);\n const isSectionItem = (value) => Boolean(value) && typeof (value == null ? void 0 : value.sectionCharacteristics) !== \"undefined\" && typeof (value == null ? void 0 : value.rect) !== \"undefined\";\n const elementEl = (value) => /* @__PURE__ */ jsx(\n \"span\",\n {\n onMouseEnter: () => {\n setHighlightElement(value);\n },\n onMouseLeave: unhighlightElement,\n children: /* @__PURE__ */ jsx(Tag, { bordered: false, color: \"orange\", className: \"element-button\", children: \"Element\" })\n }\n );\n const sectionEl = (value) => /* @__PURE__ */ jsx(\n \"span\",\n {\n onMouseEnter: () => {\n setHighlightSectionName(value.name);\n },\n onMouseLeave: unhighlightSection,\n children: /* @__PURE__ */ jsx(Tag, { bordered: false, color: \"blue\", className: \"section-button\", children: \"Section\" })\n }\n );\n if (Array.isArray(data) || typeof data !== \"object\") {\n return /* @__PURE__ */ jsx(\"pre\", { className: \"description-content\", children: JSON.stringify(data, void 0, 2) });\n }\n return Object.keys(data).map((key) => {\n const value = data[key];\n let content;\n if (typeof value === \"object\" && isElementItem(value)) {\n content = elementEl(value);\n } else if (Array.isArray(value) && value.some((item) => isElementItem(item))) {\n content = value.map((item, index) => /* @__PURE__ */ jsx(\"span\", { children: elementEl(item) }, index));\n } else if (typeof value === \"object\" && isSectionItem(value)) {\n content = sectionEl(value);\n } else if (Array.isArray(value) && value.some((item) => isSectionItem(item))) {\n content = value.map((item, index) => /* @__PURE__ */ jsx(\"span\", { children: sectionEl(item) }, index));\n } else {\n content = typeof value === \"string\" ? value : JSON.stringify(value, void 0, 2);\n }\n return /* @__PURE__ */ jsxs(\"pre\", { className: \"description-content\", children: [\n key,\n \": \",\n content\n ] }, key);\n });\n };\n const metaKVElement = MetaKV({\n data: [\n {\n key: \"status\",\n content: (task == null ? void 0 : task.status) || \"\"\n },\n {\n key: \"start\",\n content: timeStr((_a = task == null ? void 0 : task.timing) == null ? void 0 : _a.start)\n },\n {\n key: \"end\",\n content: timeStr((_b = task == null ? void 0 : task.timing) == null ? void 0 : _b.end)\n },\n {\n key: \"time cost\",\n content: timeCostStrElement((_c = task == null ? void 0 : task.timing) == null ? void 0 : _c.cost)\n },\n {\n key: \"cache\",\n content: (task == null ? void 0 : task.cache) ? JSON.stringify(task == null ? void 0 : task.cache) : \"false\"\n }\n ]\n });\n let taskParam = null;\n if ((task == null ? void 0 : task.type) === \"Planning\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n {\n key: \"param\",\n content: (_d = task == null ? void 0 : task.param) == null ? void 0 : _d.userPrompt\n }\n ]\n });\n } else if ((task == null ? void 0 : task.type) === \"Insight\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n {\n key: \"param\",\n content: JSON.stringify(\n ((_e = task == null ? void 0 : task.param) == null ? void 0 : _e.prompt) || ((_f = task == null ? void 0 : task.param) == null ? void 0 : _f.dataDemand) || ((_g = task == null ? void 0 : task.param) == null ? void 0 : _g.assertion)\n )\n }\n ]\n });\n } else if ((task == null ? void 0 : task.type) === \"Action\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n {\n key: \"value\",\n content: JSON.stringify(\n (_h = task == null ? void 0 : task.param) == null ? void 0 : _h.value,\n void 0,\n 2\n )\n }\n ]\n });\n }\n const matchedSectionsEl = (sections == null ? void 0 : sections.length) ? sections.map((section) => {\n const { name } = section;\n const ifHighlight = highlightSectionNames.includes(name);\n const kvToShow = objectWithoutKeys(section, [\n \"name\",\n \"description\",\n \"texts\",\n \"rect\",\n \"sectionCharacteristics\"\n ]);\n const sectionKV = Object.keys(kvToShow).length ? kv(kvToShow) : null;\n const highlightColor = ifHighlight ? highlightColorForType(\"section\") : void 0;\n return /* @__PURE__ */ jsx(\n Card,\n {\n title: section.name,\n highlightWithColor: highlightColor,\n subtitle: section.description,\n characteristic: section.sectionCharacteristics,\n onMouseEnter: setHighlightSectionName.bind(void 0, name),\n onMouseLeave: unhighlightSection,\n content: sectionKV\n },\n name\n );\n }) : null;\n const matchedElementsEl = (elements == null ? void 0 : elements.length) ? elements.map((element, idx) => {\n const ifHighlight = highlightElements.includes(element);\n const highlightColor = ifHighlight ? highlightColorForType(\"element\") : void 0;\n const elementKV = kv(\n objectWithoutKeys(element, [\n \"content\",\n \"rect\",\n \"center\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"locator\"\n ])\n );\n return /* @__PURE__ */ jsx(\n Card,\n {\n title: element.content,\n highlightWithColor: highlightColor,\n subtitle: \"\",\n onMouseEnter: setHighlightElement.bind(void 0, element),\n onMouseLeave: unhighlightElement,\n content: elementKV\n },\n idx\n );\n }) : null;\n const errorSection = (task == null ? void 0 : task.error) ? /* @__PURE__ */ jsx(\n Card,\n {\n liteMode: true,\n title: \"Error\",\n onMouseEnter: noop,\n onMouseLeave: noop,\n content: /* @__PURE__ */ jsx(\"pre\", { className: \"description-content\", style: { color: \"#F00\" }, children: task.error })\n }\n ) : null;\n const dataCard = (dump == null ? void 0 : dump.data) ? /* @__PURE__ */ jsx(\n Card,\n {\n liteMode: true,\n onMouseEnter: noop,\n onMouseLeave: noop,\n content: /* @__PURE__ */ jsx(\"pre\", { children: JSON.stringify(dump.data, void 0, 2) })\n }\n ) : null;\n let assertionCard = null;\n if ((task == null ? void 0 : task.type) === \"Insight\" && task.subType === \"Assert\") {\n assertionCard = /* @__PURE__ */ jsx(\n Card,\n {\n liteMode: true,\n title: \"Assert\",\n onMouseEnter: noop,\n onMouseLeave: noop,\n content: /* @__PURE__ */ jsx(\"pre\", { className: \"description-content\", children: JSON.stringify(\n task.output,\n void 0,\n 2\n ) })\n }\n );\n }\n const plans = (_i = task == null ? void 0 : task.output) == null ? void 0 : _i.plans;\n let timelineData = [];\n if (plans) {\n timelineData = timelineData.concat(\n plans.map((item) => {\n return {\n color: \"#06B1AB\",\n children: /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\"p\", { children: /* @__PURE__ */ jsx(\"b\", { children: typeStr(item) }) }),\n /* @__PURE__ */ jsx(\"p\", { children: item.thought }),\n /* @__PURE__ */ jsx(\"p\", { children: item.param ? JSON.stringify(item.param || {}, void 0, 2) : null })\n ] })\n };\n })\n );\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"detail-side\", children: [\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Task Meta\" }),\n metaKVElement,\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Param\" }),\n taskParam,\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Output\" }),\n /* @__PURE__ */ jsxs(\"div\", { className: \"item-list item-list-space-up\", children: [\n errorSection,\n dataCard,\n assertionCard,\n matchedSectionsEl,\n matchedElementsEl,\n /* @__PURE__ */ jsx(Timeline, { items: timelineData })\n ] })\n ] });\n};\nvar detail_side_default = DetailSide;\nexport {\n detail_side_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nconst SvgLogoPlain2 = (props) => /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", xmlSpace: \"preserve\", width: 535.041, height: 203.6, style: {\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n imageRendering: \"optimizeQuality\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, viewBox: \"0 0 16897.65 6430.11\" }, props), { children: [\n /* @__PURE__ */ jsxs(\"defs\", { children: [\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id0\", x1: 11103.21, x2: 10930.41, y1: 5027.34, y2: 1211.98, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#0a77d4\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#00b1e0\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"linearGradient\", { xlinkHref: \"#logo-plain2_svg__id0\", id: \"logo-plain2_svg__id1\", x1: 11407.32, x2: 11286.4, y1: 5023.83, y2: 1215.5, gradientUnits: \"userSpaceOnUse\" }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id2\", x1: 6311.87, x2: 3547.5, y1: 4699.25, y2: 1677.39, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#f65926\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#f0ab1f\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id3\", x1: 3105.35, x2: 2612.67, y1: 5075.61, y2: 1311.04, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#e52652\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#ff4956\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id4\", x1: 14599.77, x2: 12e3, y1: 4808.34, y2: 1573.25, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#02c0a7\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#02e097\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"style\", { children: \".logo-plain2_svg__fil8{fill:#fefefe}\" })\n ] }),\n /* @__PURE__ */ jsx(\"g\", { id: \"logo-plain2_svg__\\\\u56FE\\\\u5C42_x0020_1\", children: /* @__PURE__ */ jsxs(\"g\", { id: \"logo-plain2_svg___1978240863120\", children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z\", style: {\n fill: \"none\",\n stroke: \"#e62129\",\n strokeWidth: 23.87,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z\", style: {\n fill: \"#332c2b\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z\", style: {\n fill: \"#f63d55\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z\", style: {\n fill: \"url(#logo-plain2_svg__id3)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z\", style: {\n fill: \"url(#logo-plain2_svg__id1)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3266.42, cy: 4767.17, r: 119.53, style: {\n fill: \"#f3a04e\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z\", style: {\n fill: \"url(#logo-plain2_svg__id0)\",\n stroke: \"#06b1ab\",\n strokeWidth: 9.1,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z\", style: {\n fill: \"url(#logo-plain2_svg__id4)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13725.89, cy: 2247.09, r: 867.65, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 11745.99, cy: 4944.33, r: 119.53, style: {\n fill: \"#52c2f1\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z\", style: {\n fill: \"url(#logo-plain2_svg__id2)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z\", style: {\n fill: \"#f9483e\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5652.09, cy: 2247.09, r: 867.65, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5669.32, cy: 4261.82, r: 86.65, style: {\n fill: \"#f7b873\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3775.08, cy: 4120.55, r: 174.77, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z\", style: {\n fill: \"#06b1ab\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12254.65, cy: 4297.71, r: 174.77, className: \"logo-plain2_svg__fil8\" })\n ] }) })\n] }));\nvar logo_plain2_default = SvgLogoPlain2;\nexport {\n logo_plain2_default as default\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./sidebar.css\";\nimport { useAllCurrentTasks, useExecutionDump } from \"./store\";\nimport { typeStr } from \"../utils\";\nimport {\n ArrowRightOutlined,\n CheckOutlined,\n ClockCircleOutlined,\n CloseOutlined,\n LogoutOutlined,\n MinusOutlined\n} from \"@ant-design/icons\";\nimport { Button } from \"antd\";\nimport { useEffect } from \"react\";\nimport Logo from \"./assets/logo-plain2.js\";\nimport { timeCostStrElement } from \"./misc\";\nimport PanelTitle from \"./panel-title\";\nconst SideItem = (props) => {\n var _a, _b, _c;\n const { task, onClick, selected } = props;\n const selectedClass = selected ? \"selected\" : \"\";\n let statusIcon = /* @__PURE__ */ jsx(MinusOutlined, {});\n if (task.status === \"success\") {\n statusIcon = /* @__PURE__ */ jsx(CheckOutlined, {});\n } else if (task.status === \"fail\") {\n statusIcon = /* @__PURE__ */ jsx(CloseOutlined, {});\n } else if (task.status === \"pending\") {\n statusIcon = /* @__PURE__ */ jsx(ClockCircleOutlined, {});\n } else if (task.status === \"cancelled\") {\n statusIcon = /* @__PURE__ */ jsx(LogoutOutlined, {});\n } else if (task.status === \"running\") {\n statusIcon = /* @__PURE__ */ jsx(ArrowRightOutlined, {});\n }\n let statusText = task.status;\n if ((_a = task.timing) == null ? void 0 : _a.cost) {\n statusText = timeCostStrElement(task.timing.cost);\n }\n let contentRow;\n if (task.type === \"Planning\") {\n contentRow = /* @__PURE__ */ jsx(\"div\", { className: \"side-item-content\", children: (_b = task.param) == null ? void 0 : _b.userPrompt });\n } else if (task.type === \"Insight\" && task.subType === \"Query\") {\n const demand = (_c = task.param) == null ? void 0 : _c.dataDemand;\n const contentToShow = typeof demand === \"string\" ? demand : JSON.stringify(demand);\n contentRow = /* @__PURE__ */ jsx(\"div\", { className: \"side-item-content\", children: contentToShow });\n } else {\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: `side-item ${selectedClass}`,\n onClick,\n onMouseEnter: (event) => {\n var _a2;\n const rect = event.currentTarget.getBoundingClientRect();\n const x = rect.left + rect.width;\n const y = rect.top;\n (_a2 = props.onItemHover) == null ? void 0 : _a2.call(props, task, x, y);\n },\n onMouseLeave: () => {\n var _a2;\n (_a2 = props.onItemHover) == null ? void 0 : _a2.call(props, null);\n },\n children: [\n \" \",\n /* @__PURE__ */ jsxs(\"div\", { className: \"side-item-name\", children: [\n /* @__PURE__ */ jsx(\"span\", { className: `status-icon status-icon-${task.status}`, children: statusIcon }),\n /* @__PURE__ */ jsx(\"div\", { className: \"title\", children: typeStr(task) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"status-text\", children: statusText })\n ] }),\n contentRow\n ]\n }\n );\n};\nconst Sidebar = (props) => {\n const groupedDumps = useExecutionDump((store) => store.dump);\n const setActiveTask = useExecutionDump((store) => store.setActiveTask);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const setHoverTask = useExecutionDump((store) => store.setHoverTask);\n const setHoverPreviewConfig = useExecutionDump(\n (store) => store.setHoverPreviewConfig\n );\n const reset = useExecutionDump((store) => store.reset);\n const allTasks = useAllCurrentTasks();\n const currentSelectedIndex = allTasks == null ? void 0 : allTasks.findIndex(\n (task) => task === activeTask\n );\n useEffect(() => {\n const handleKeyDown = (e) => {\n if (!(allTasks == null ? void 0 : allTasks.length) || (allTasks == null ? void 0 : allTasks.length) <= 1) {\n return;\n }\n if (e.key === \"ArrowUp\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n const nextIndex = currentSelectedIndex - 1;\n if (nextIndex < 0) {\n return;\n }\n const nextTask = allTasks[nextIndex];\n setActiveTask(nextTask);\n } else if (e.key === \"ArrowDown\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n const nextIndex = currentSelectedIndex + 1;\n if (nextIndex >= allTasks.length) {\n return;\n }\n const nextTask = allTasks[nextIndex];\n setActiveTask(nextTask);\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [currentSelectedIndex, allTasks, setActiveTask]);\n const sideList = (groupedDumps == null ? void 0 : groupedDumps.length) ? groupedDumps.map((group, groupIndex) => {\n const executions = group.executions.map((execution, indexOfExecution) => {\n const { tasks } = execution;\n const taskList = tasks.map((task, index) => {\n return /* @__PURE__ */ jsx(\n SideItem,\n {\n task,\n selected: task === activeTask,\n onClick: () => {\n setActiveTask(task);\n },\n onItemHover: (hoverTask, x, y) => {\n if (hoverTask && x && y) {\n setHoverPreviewConfig({ x, y });\n setHoverTask(hoverTask);\n } else {\n setHoverPreviewConfig(null);\n setHoverTask(null);\n }\n }\n },\n index\n );\n });\n let seperator;\n switch (indexOfExecution) {\n case 0:\n seperator = /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-space-up\" });\n break;\n default:\n seperator = /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-line side-seperator-space-up side-seperator-space-down\" });\n break;\n }\n return /* @__PURE__ */ jsxs(\"div\", { children: [\n seperator,\n /* @__PURE__ */ jsx(\"div\", { className: \"side-sub-title\", children: execution.name }),\n taskList\n ] }, indexOfExecution);\n });\n return /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(PanelTitle, { title: group.groupName }),\n executions\n ] }, groupIndex);\n }) : /* @__PURE__ */ jsx(\"span\", { children: \"no tasks\" });\n return /* @__PURE__ */ jsxs(\"div\", { className: \"side-bar\", children: [\n /* @__PURE__ */ jsxs(\"div\", { className: \"top-controls\", children: [\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: \"brand\",\n onClick: reset,\n style: { display: (props == null ? void 0 : props.hideLogo) ? \"none\" : \"flex\" },\n children: /* @__PURE__ */ jsx(\n Logo,\n {\n style: { width: 70, height: 70, margin: \"auto\" },\n onClick: () => {\n if (props.logoAction) {\n props.logoAction();\n } else {\n location.reload();\n }\n }\n }\n )\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { className: \"task-list\", children: sideList }),\n /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-line side-seperator-space-up\" }),\n /* @__PURE__ */ jsx(\"div\", { className: \"task-meta-section\", children: /* @__PURE__ */ jsx(\"div\", { className: \"task-meta\", children: \"switch: Command + Up / Down\" }) })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: \"bottom-controls\", children: /* @__PURE__ */ jsx(Button, { onClick: reset, type: \"text\", className: \"unload_btn\", children: \"Unload\" }) })\n ] });\n};\nvar sidebar_default = Sidebar;\nexport {\n sidebar_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nconst SvgLogoPlain = (props) => /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", xmlSpace: \"preserve\", width: 535.041, height: 203.6, style: {\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n imageRendering: \"optimizeQuality\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, viewBox: \"0 0 16897.65 6430.11\" }, props), { children: [\n /* @__PURE__ */ jsxs(\"defs\", { children: [\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id0\", x1: 11103.21, x2: 10930.41, y1: 5027.34, y2: 1211.98, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#0a77d4\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#00b1e0\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"linearGradient\", { xlinkHref: \"#logo-plain_svg__id0\", id: \"logo-plain_svg__id1\", x1: 11407.32, x2: 11286.4, y1: 5023.83, y2: 1215.5, gradientUnits: \"userSpaceOnUse\" }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id2\", x1: 6311.87, x2: 3547.5, y1: 4699.25, y2: 1677.39, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#f65926\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#f0ab1f\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id3\", x1: 3105.35, x2: 2612.67, y1: 5075.61, y2: 1311.04, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#e52652\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#ff4956\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id4\", x1: 14599.77, x2: 12e3, y1: 4808.34, y2: 1573.25, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#02c0a7\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#02e097\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"style\", { children: \".logo-plain_svg__fil8{fill:#fefefe}\" })\n ] }),\n /* @__PURE__ */ jsx(\"g\", { id: \"logo-plain_svg__\\\\u56FE\\\\u5C42_x0020_1\", children: /* @__PURE__ */ jsxs(\"g\", { id: \"logo-plain_svg___1978240863120\", children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z\", style: {\n fill: \"none\",\n stroke: \"#e62129\",\n strokeWidth: 23.87,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z\", style: {\n fill: \"#332c2b\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z\", style: {\n fill: \"#f63d55\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z\", style: {\n fill: \"url(#logo-plain_svg__id3)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z\", style: {\n fill: \"url(#logo-plain_svg__id1)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3266.42, cy: 4767.17, r: 119.53, style: {\n fill: \"#f3a04e\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z\", style: {\n fill: \"url(#logo-plain_svg__id0)\",\n stroke: \"#06b1ab\",\n strokeWidth: 9.1,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z\", style: {\n fill: \"url(#logo-plain_svg__id4)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13725.89, cy: 2247.09, r: 867.65, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 11745.99, cy: 4944.33, r: 119.53, style: {\n fill: \"#52c2f1\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z\", style: {\n fill: \"url(#logo-plain_svg__id2)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z\", style: {\n fill: \"#f9483e\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5652.09, cy: 2247.09, r: 867.65, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5669.32, cy: 4261.82, r: 86.65, style: {\n fill: \"#f7b873\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3775.08, cy: 4120.55, r: 174.77, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z\", style: {\n fill: \"#06b1ab\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12254.65, cy: 4297.71, r: 174.77, className: \"logo-plain_svg__fil8\" })\n ] }) })\n] }));\nvar logo_plain_default = SvgLogoPlain;\nexport {\n logo_plain_default as default\n};\n","\"use client\";\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport { Checkbox } from \"antd\";\nimport * as PIXI from \"pixi.js\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { colorForName, highlightColorForType } from \"./color\";\nimport \"./blackboard.css\";\nimport { useBlackboardPreference, useInsightDump } from \"./store\";\nconst itemFillAlpha = 0.3;\nconst bgOnAlpha = 0.8;\nconst bgOffAlpha = 0.3;\nconst noop = () => {\n};\nconst BlackBoard = () => {\n const dump = useInsightDump((store) => store.data);\n const setHighlightSectionNames = useInsightDump(\n (store) => store.setHighlightSectionNames\n );\n const setHighlightElements = useInsightDump(\n (store) => store.setHighlightElements\n );\n const highlightSectionNames = useInsightDump(\n (store) => store.highlightSectionNames\n );\n const highlightElements = useInsightDump((store) => store.highlightElements);\n const { context, matchedSection: sections, matchedElement: elements } = dump;\n const { size, screenshotBase64 } = context;\n const screenWidth = size.width;\n const screenHeight = size.height;\n const domRef = useRef(null);\n const app = useMemo(() => new PIXI.Application(), []);\n const [appInitialed, setAppInitialed] = useState(false);\n const itemMarkContainer = useMemo(() => new PIXI.Container(), []);\n const textContainer = useMemo(() => new PIXI.Container(), []);\n const pixiBgRef = useRef();\n const { bgVisible, setBgVisible, textsVisible, setTextsVisible } = useBlackboardPreference();\n useEffect(() => {\n Promise.resolve(\n (() => __async(void 0, null, function* () {\n if (!domRef.current || !screenWidth) {\n return;\n }\n yield app.init({\n width: screenWidth,\n height: screenHeight,\n background: 16777215\n });\n const canvasEl = domRef.current;\n domRef.current.appendChild(app.canvas);\n const { clientWidth } = domRef.current.parentElement;\n const targetHeight = window.innerHeight * 0.7;\n const viewportRatio = clientWidth / targetHeight;\n if (screenWidth / screenHeight <= viewportRatio) {\n const ratio = targetHeight / screenHeight;\n canvasEl.style.width = `${Math.floor(screenWidth * ratio)}px`;\n canvasEl.style.height = `${Math.floor(screenHeight * ratio)}px`;\n }\n app.stage.addChild(itemMarkContainer);\n app.stage.addChild(textContainer);\n setAppInitialed(true);\n }))()\n );\n return () => {\n console.log(\"will destroy\");\n try {\n app.destroy(true, { children: true, texture: true });\n } catch (e) {\n console.warn(\"destroy failed\", e);\n }\n };\n }, [app, screenWidth, screenHeight]);\n useEffect(() => {\n if (!appInitialed) {\n return;\n }\n const img = new Image();\n img.src = screenshotBase64;\n img.onload = () => {\n const screenshotTexture = PIXI.Texture.from(img);\n const screenshotSprite = new PIXI.Sprite(screenshotTexture);\n screenshotSprite.x = 0;\n screenshotSprite.y = 0;\n screenshotSprite.width = screenWidth;\n screenshotSprite.height = screenHeight;\n app.stage.addChildAt(screenshotSprite, 0);\n pixiBgRef.current = screenshotSprite;\n screenshotSprite.alpha = bgVisible ? bgOnAlpha : bgOffAlpha;\n };\n }, [app.stage, appInitialed]);\n const rectMarkForItem = (rect, name, themeColor, alpha, onPointOver, onPointerOut) => {\n const { left, top, width, height } = rect;\n const graphics = new PIXI.Graphics();\n graphics.beginFill(themeColor, alpha);\n graphics.lineStyle(1, themeColor, 1);\n graphics.drawRect(left, top, width, height);\n graphics.endFill();\n graphics.interactive = true;\n graphics.on(\"pointerover\", onPointOver);\n graphics.on(\"pointerout\", onPointerOut);\n const nameFontSize = 18;\n const texts = new PIXI.Text(name, {\n fontSize: nameFontSize,\n fill: 0\n });\n texts.x = left;\n texts.y = Math.max(top - (nameFontSize + 4), 0);\n return [graphics, texts];\n };\n const { highlightSectionRects, highlightElementRects } = useMemo(() => {\n const highlightSectionRects2 = [];\n const highlightElementRects2 = [];\n itemMarkContainer.removeChildren();\n textContainer.removeChildren();\n sections.forEach((section) => {\n const ifHighlight = highlightSectionNames.includes(section.name);\n if (ifHighlight) {\n highlightSectionRects2.push(section.rect);\n }\n const [graphics, texts] = rectMarkForItem(\n section.rect,\n section.name,\n ifHighlight ? highlightColorForType(\"section\") : colorForName(\"section\", section.name),\n ifHighlight ? 1 : itemFillAlpha,\n () => {\n setHighlightSectionNames([section.name]);\n },\n () => {\n setHighlightSectionNames([]);\n }\n );\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n highlightElements.forEach((element) => {\n const { rect } = element;\n highlightElementRects2.push(rect);\n if (elements.includes(element)) {\n return;\n }\n const [graphics, texts] = rectMarkForItem(\n rect,\n \"\",\n highlightColorForType(\"element\"),\n 1,\n noop,\n noop\n );\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n elements.forEach((element) => {\n const { rect, content } = element;\n const ifHighlight = highlightElements.includes(element);\n const [graphics, texts] = rectMarkForItem(\n rect,\n content,\n ifHighlight ? highlightColorForType(\"element\") : colorForName(\"element\", content),\n ifHighlight ? 1 : itemFillAlpha,\n () => {\n setHighlightElements([element]);\n },\n () => {\n setHighlightElements([]);\n }\n );\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n sections.forEach((section) => {\n const { content } = section;\n const ifHighlight = highlightSectionNames.includes(section.name);\n const sectionTheme = ifHighlight ? \"#FFFFFF\" : colorForName(\"section\", section.name);\n content.forEach((text) => {\n const { content: content2, rect } = text;\n const { left, top } = rect;\n const style = new PIXI.TextStyle({\n wordWrap: true,\n wordWrapWidth: rect.width,\n fontSize: 18,\n fill: sectionTheme\n });\n const textElement = new PIXI.Text(content2, style);\n textElement.x = left;\n textElement.y = top;\n textContainer.addChild(textElement);\n const textBorder = new PIXI.Graphics();\n textBorder.beginFill(11184810, 0.2);\n textBorder.lineStyle(1, 0, 1);\n textBorder.drawRect(left, top, rect.width, rect.height);\n textBorder.endFill();\n textContainer.addChild(textBorder);\n });\n });\n textContainer.visible = textsVisible;\n return {\n highlightSectionRects: highlightSectionRects2,\n highlightElementRects: highlightElementRects2\n };\n }, [\n app,\n appInitialed,\n sections,\n highlightSectionNames,\n highlightElements\n // bgVisible,\n // textsVisible,\n ]);\n const onSetBg = (e) => {\n setBgVisible(e.target.checked);\n if (pixiBgRef.current) {\n pixiBgRef.current.alpha = e.target.checked ? bgOnAlpha : bgOffAlpha;\n }\n };\n const onSetTextsVisible = (e) => {\n setTextsVisible(e.target.checked);\n textContainer.visible = e.target.checked;\n };\n let bottomTipA = null;\n if (highlightElementRects.length === 1) {\n bottomTipA = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Element: \",\n JSON.stringify(highlightElementRects[0])\n ] }) });\n } else if (highlightElementRects.length > 1) {\n bottomTipA = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Element: \",\n JSON.stringify(highlightElementRects)\n ] }) });\n }\n let bottomTipB = null;\n if (highlightSectionRects.length === 1) {\n bottomTipB = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Section: \",\n JSON.stringify(highlightSectionRects[0])\n ] }) });\n } else if (highlightSectionRects.length > 1) {\n bottomTipB = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Sections: \",\n JSON.stringify(highlightSectionRects)\n ] }) });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"blackboard\", children: [\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: \"blackboard-main-content\",\n style: { width: \"100%\" },\n ref: domRef\n }\n ),\n /* @__PURE__ */ jsx(\"div\", { className: \"blackboard-filter\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"overlay-control\", children: [\n /* @__PURE__ */ jsx(Checkbox, { checked: bgVisible, onChange: onSetBg, children: \"Screenshot\" }),\n /* @__PURE__ */ jsx(Checkbox, { checked: textsVisible, onChange: onSetTextsVisible, children: \"Text Mark\" })\n ] }) }),\n /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip\", children: [\n bottomTipA,\n bottomTipB\n ] })\n ] });\n};\nvar blackboard_default = BlackBoard;\nexport {\n blackboard_default as default\n};\n","\"use client\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./detail-panel.css\";\nimport { useExecutionDump, useInsightDump } from \"./store\";\nimport { filterBase64Value, timeStr } from \"../utils\";\nimport {\n CameraOutlined,\n FileTextOutlined,\n ScheduleOutlined\n} from \"@ant-design/icons\";\nimport { ConfigProvider, Segmented } from \"antd\";\nimport { useEffect, useState } from \"react\";\nimport BlackBoard from \"./blackboard\";\nconst ScreenshotItem = (props) => {\n return /* @__PURE__ */ jsxs(\"div\", { className: \"screenshot-item\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"screenshot-item-title\", children: props.time }),\n /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\"img\", { src: props.img, alt: \"screenshot\" }) })\n ] });\n};\nconst VIEW_TYPE_BLACKBOARD = \"blackboard\";\nconst VIEW_TYPE_SCREENSHOT = \"screenshot\";\nconst VIEW_TYPE_JSON = \"json\";\nconst DetailPanel = () => {\n var _a;\n const dumpContext = useInsightDump((store) => store.data);\n const dumpId = useInsightDump((store) => store._loadId);\n const blackboardViewAvailable = Boolean(dumpContext);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const [preferredViewType, setViewType] = useState(VIEW_TYPE_BLACKBOARD);\n const viewType = preferredViewType === VIEW_TYPE_BLACKBOARD && !blackboardViewAvailable ? VIEW_TYPE_SCREENSHOT : preferredViewType;\n let content;\n if (!activeTask) {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"please select a task\" });\n } else if (viewType === VIEW_TYPE_JSON) {\n content = /* @__PURE__ */ jsx(\"div\", { className: \"json-content\", children: filterBase64Value(JSON.stringify(activeTask, void 0, 2)) });\n } else if (viewType === VIEW_TYPE_BLACKBOARD) {\n if (blackboardViewAvailable) {\n content = /* @__PURE__ */ jsx(BlackBoard, {}, `${dumpId}`);\n } else {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"invalid view\" });\n }\n } else if (viewType === VIEW_TYPE_SCREENSHOT) {\n if ((_a = activeTask.recorder) == null ? void 0 : _a.length) {\n content = /* @__PURE__ */ jsx(\"div\", { children: activeTask.recorder.filter((item) => item.screenshot).map((item, index) => {\n const fullTime = timeStr(item.ts);\n const str = item.timing ? `${fullTime} / ${item.timing}` : fullTime;\n return /* @__PURE__ */ jsx(ScreenshotItem, { time: str, img: item.screenshot }, index);\n }) });\n } else {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"no screenshot\" });\n }\n }\n useEffect(() => {\n const handleKeyDown = (e) => {\n if (e.key === \"Tab\") {\n if (viewType === VIEW_TYPE_BLACKBOARD) {\n setViewType(VIEW_TYPE_SCREENSHOT);\n } else if (viewType === VIEW_TYPE_SCREENSHOT) {\n setViewType(VIEW_TYPE_JSON);\n } else {\n setViewType(\n blackboardViewAvailable ? VIEW_TYPE_BLACKBOARD : VIEW_TYPE_SCREENSHOT\n );\n }\n e.preventDefault();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n });\n const options = [\n {\n label: \"Screenshots\",\n value: VIEW_TYPE_SCREENSHOT,\n icon: /* @__PURE__ */ jsx(CameraOutlined, {})\n },\n { label: \"JSON View\", value: VIEW_TYPE_JSON, icon: /* @__PURE__ */ jsx(FileTextOutlined, {}) }\n ];\n if (blackboardViewAvailable) {\n options.unshift({\n label: \"Visualization\",\n value: VIEW_TYPE_BLACKBOARD,\n icon: /* @__PURE__ */ jsx(ScheduleOutlined, {})\n });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"detail-panel\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"view-switcher\", children: /* @__PURE__ */ jsx(\n ConfigProvider,\n {\n theme: {\n components: {\n Segmented: {\n itemSelectedBg: \"#bfc4da50\",\n itemSelectedColor: \"#000000\"\n // itemHoverColor: '#ffffff',\n // itemHoverBg: '#A3D6D2',\n }\n }\n },\n children: /* @__PURE__ */ jsx(\n Segmented,\n {\n options,\n value: viewType,\n onChange: (value) => {\n setViewType(value);\n }\n }\n )\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"detail-content\", children: content })\n ] });\n};\nvar detail_panel_default = DetailPanel;\nexport {\n detail_panel_default as default\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useRef, useState } from \"react\";\nimport { useExecutionDump } from \"./store\";\nimport \"./global-hover-preview.css\";\nconst size = 400;\nconst GlobalHoverPreview = () => {\n var _a;\n const wrapperRef = useRef(null);\n const hoverTask = useExecutionDump((store) => store.hoverTask);\n const hoverTimestamp = useExecutionDump((store) => store.hoverTimestamp);\n const hoverPreviewConfig = useExecutionDump(\n (store) => store.hoverPreviewConfig\n );\n const [imageW, setImageW] = useState(size);\n const [imageH, setImageH] = useState(size);\n const images = (_a = hoverTask == null ? void 0 : hoverTask.recorder) == null ? void 0 : _a.filter((item) => {\n let valid = Boolean(item.screenshot);\n if (hoverTimestamp) {\n valid = valid && item.ts >= hoverTimestamp;\n }\n return valid;\n }).map((item) => item.screenshot);\n const { x, y } = hoverPreviewConfig || {};\n let left = 0;\n let top = 0;\n const shouldShow = (images == null ? void 0 : images.length) && typeof x !== \"undefined\" && typeof y !== \"undefined\";\n if (shouldShow) {\n const { clientWidth, clientHeight } = document.body;\n const widthInPractice = imageW >= imageH ? size : size * (imageW / imageH);\n const heightInPractice = imageW >= imageH ? size * (imageH / imageW) : size;\n left = x + widthInPractice > clientWidth ? clientWidth - widthInPractice : x;\n top = y + heightInPractice > clientHeight ? clientHeight - heightInPractice : y;\n }\n return shouldShow ? /* @__PURE__ */ jsx(\n \"div\",\n {\n className: \"global-hover-preview\",\n style: { left, top },\n ref: wrapperRef,\n children: (images == null ? void 0 : images.length) ? (\n // biome-ignore lint/a11y/useAltText: <explanation>\n /* @__PURE__ */ jsx(\n \"img\",\n {\n src: images[0],\n onLoad: (img) => {\n const imgElement = img.target;\n const width = imgElement.naturalWidth;\n const height = imgElement.naturalHeight;\n setImageW(width);\n setImageH(height);\n }\n }\n )\n ) : null\n }\n ) : null;\n};\nvar global_hover_preview_default = GlobalHoverPreview;\nexport {\n global_hover_preview_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { jsx } from \"react/jsx-runtime\";\nimport * as PIXI from \"pixi.js\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport \"./timeline.css\";\nimport { useAllCurrentTasks, useExecutionDump } from \"./store\";\nfunction cloneSprite(sprite) {\n const clonedSprite = new PIXI.Sprite(sprite.texture);\n clonedSprite.position.copyFrom(sprite.position);\n clonedSprite.scale.copyFrom(sprite.scale);\n clonedSprite.rotation = sprite.rotation;\n clonedSprite.alpha = sprite.alpha;\n clonedSprite.visible = sprite.visible;\n return clonedSprite;\n}\nconst TimelineWidget = (props) => {\n var _a, _b, _c, _d;\n const domRef = useRef(null);\n const app = useMemo(() => new PIXI.Application(), []);\n const gridsContainer = useMemo(() => new PIXI.Container(), []);\n const screenshotsContainer = useMemo(() => new PIXI.Container(), []);\n const highlightMaskContainer = useMemo(() => new PIXI.Container(), []);\n const containerUpdaterRef = useRef(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (_s, _e, _hs, _he) => {\n }\n );\n const indicatorContainer = useMemo(() => new PIXI.Container(), []);\n const allScreenshots = props.screenshots || [];\n const maxTime = allScreenshots[allScreenshots.length - 1].timeOffset;\n const sizeRatio = 2;\n const titleBg = 16316664;\n const sideBg = 16777215;\n const gridTextColor = 0;\n const shotBorderColor = 7829367;\n const gridLineColor = 15066597;\n const gridHighlightColor = 12567770;\n const highlightMaskAlpha = 0.6;\n const timeContentFontSize = 20;\n const commonPadding = 12;\n const timeTextTop = commonPadding;\n const timeTitleBottom = timeTextTop * 2 + timeContentFontSize;\n const hoverMaskColor = 14474460;\n const hoverMaskAlpha = 0.3;\n const closestScreenshotItemOnXY = (x, _y) => {\n let closestScreenshot;\n let closestIndex = -1;\n for (let i = 0; i < allScreenshots.length; i++) {\n const shot = allScreenshots[i];\n if (shot.x <= x) {\n closestScreenshot = allScreenshots[i];\n closestIndex = i;\n } else {\n break;\n }\n }\n return {\n closestScreenshot,\n closestIndex\n };\n };\n useMemo(() => {\n const { startMs, endMs } = props.highlightMask || {};\n const { startMs: hoverStartMs, endMs: hoverEndMs } = props.hoverMask || {};\n const fn = containerUpdaterRef.current;\n fn(startMs, endMs, hoverStartMs, hoverEndMs);\n }, [\n (_a = props.highlightMask) == null ? void 0 : _a.startMs,\n (_b = props.highlightMask) == null ? void 0 : _b.endMs,\n (_c = props.hoverMask) == null ? void 0 : _c.startMs,\n (_d = props.hoverMask) == null ? void 0 : _d.endMs\n ]);\n useEffect(() => {\n Promise.resolve(\n (() => __async(void 0, null, function* () {\n var _a2, _b2;\n if (!domRef.current) {\n return;\n }\n const { clientWidth, clientHeight } = domRef.current;\n const canvasWidth = clientWidth * sizeRatio;\n const canvasHeight = clientHeight * sizeRatio;\n let singleGridWidth = 100 * sizeRatio;\n let gridCount = Math.floor(canvasWidth / singleGridWidth);\n const stepCandidate = [\n 50,\n 100,\n 200,\n 300,\n 500,\n 1e3,\n 2e3,\n 3e3,\n 5e3,\n 6e3,\n 8e3,\n 9e3,\n 1e4,\n 2e4,\n 3e4,\n 4e4,\n 6e4,\n 9e4,\n 12e3,\n 3e5\n ];\n let timeStep = stepCandidate[0];\n for (let i = stepCandidate.length - 1; i >= 0; i--) {\n if (gridCount * stepCandidate[i] >= maxTime) {\n timeStep = stepCandidate[i];\n }\n }\n const gridRatio = maxTime / (gridCount * timeStep);\n if (gridRatio <= 0.8) {\n singleGridWidth = Math.floor(singleGridWidth * (1 / gridRatio) * 0.9);\n gridCount = Math.floor(canvasWidth / singleGridWidth);\n }\n const leftForTimeOffset = (timeOffset) => {\n return Math.floor(singleGridWidth * timeOffset / timeStep);\n };\n const timeOffsetForLeft = (left) => {\n return Math.floor(left * timeStep / singleGridWidth);\n };\n yield app.init({\n width: canvasWidth,\n height: canvasHeight,\n backgroundColor: sideBg\n });\n if (!domRef.current) {\n app.destroy();\n return;\n }\n domRef.current.replaceChildren(app.canvas);\n const pixiTextForNumber = (num) => {\n const textContent = `${num}ms`;\n const text = new PIXI.Text(`${textContent}`, {\n fontSize: timeContentFontSize,\n fill: gridTextColor\n });\n return text;\n };\n gridsContainer.removeChildren();\n const titleBgSection = new PIXI.Graphics();\n titleBgSection.beginFill(titleBg);\n titleBgSection.drawRect(0, 0, canvasWidth, timeTitleBottom);\n titleBgSection.endFill();\n gridsContainer.addChild(titleBgSection);\n const titleBottomBorder = new PIXI.Graphics();\n titleBottomBorder.beginFill(gridLineColor);\n titleBottomBorder.drawRect(0, timeTitleBottom, canvasWidth, sizeRatio);\n titleBottomBorder.endFill();\n gridsContainer.addChild(titleBottomBorder);\n const gridHeight = canvasHeight;\n for (let i = 1; i <= gridCount; i++) {\n const gridLine = new PIXI.Graphics();\n const gridLineLeft = leftForTimeOffset(i * timeStep);\n gridLine.beginFill(gridLineColor);\n gridLine.drawRect(gridLineLeft, 0, sizeRatio, gridHeight);\n gridLine.endFill();\n gridsContainer.addChild(gridLine);\n const text = pixiTextForNumber(i * timeStep);\n const textLeft = gridLineLeft - text.width - commonPadding;\n text.x = textLeft;\n text.y = timeTextTop;\n gridsContainer.addChild(text);\n }\n app.stage.addChild(gridsContainer);\n if (!allScreenshots.length) {\n console.warn(\"No screenshots found\");\n return;\n }\n const shotContainers = [];\n screenshotsContainer.removeChildren();\n const screenshotTop = timeTitleBottom + commonPadding * 1.5;\n const screenshotMaxHeight = canvasHeight - screenshotTop - commonPadding * 1.5;\n allScreenshots.forEach((screenshot, index) => {\n const container = new PIXI.Container();\n shotContainers.push(container);\n app.stage.addChild(container);\n const img = new Image();\n img.src = screenshot.img;\n img.onload = () => {\n const screenshotTexture = PIXI.Texture.from(img);\n const screenshotSprite = new PIXI.Sprite(screenshotTexture);\n const originalWidth = img.width;\n const originalHeight = img.height;\n const screenshotHeight = screenshotMaxHeight;\n const screenshotWidth = Math.floor(\n screenshotHeight / originalHeight * originalWidth\n );\n const screenshotX = leftForTimeOffset(screenshot.timeOffset);\n allScreenshots[index].x = screenshotX;\n allScreenshots[index].y = screenshotTop;\n allScreenshots[index].width = screenshotWidth;\n allScreenshots[index].height = screenshotMaxHeight;\n const border = new PIXI.Graphics();\n border.lineStyle(sizeRatio, shotBorderColor, 1);\n border.drawRect(\n screenshotX,\n screenshotTop,\n screenshotWidth,\n screenshotMaxHeight\n );\n border.endFill();\n container.addChild(border);\n screenshotSprite.x = screenshotX;\n screenshotSprite.y = screenshotTop;\n screenshotSprite.width = screenshotWidth;\n screenshotSprite.height = screenshotMaxHeight;\n container.addChild(screenshotSprite);\n };\n });\n const highlightMaskUpdater = (start, end, hoverStart, hoverEnd) => {\n highlightMaskContainer.removeChildren();\n const mask = (start2, end2, color, alpha) => {\n if (typeof start2 === \"undefined\" || typeof end2 === \"undefined\" || end2 === 0) {\n return;\n }\n const leftBorder = new PIXI.Graphics();\n leftBorder.beginFill(gridHighlightColor, 1);\n leftBorder.drawRect(\n leftForTimeOffset(start2),\n 0,\n sizeRatio,\n canvasHeight\n );\n leftBorder.endFill();\n highlightMaskContainer.addChild(leftBorder);\n const rightBorder = new PIXI.Graphics();\n rightBorder.beginFill(gridHighlightColor, 1);\n rightBorder.drawRect(\n leftForTimeOffset(end2),\n 0,\n sizeRatio,\n canvasHeight\n );\n rightBorder.endFill();\n highlightMaskContainer.addChild(rightBorder);\n const mask2 = new PIXI.Graphics();\n mask2.beginFill(gridHighlightColor, alpha);\n mask2.drawRect(\n leftForTimeOffset(start2),\n 0,\n leftForTimeOffset(end2) - leftForTimeOffset(start2),\n canvasHeight\n );\n mask2.endFill();\n highlightMaskContainer.addChild(mask2);\n };\n mask(start, end, gridHighlightColor, highlightMaskAlpha);\n mask(hoverStart, hoverEnd, hoverMaskColor, hoverMaskAlpha);\n };\n highlightMaskUpdater(\n (_a2 = props.highlightMask) == null ? void 0 : _a2.startMs,\n (_b2 = props.highlightMask) == null ? void 0 : _b2.endMs,\n 0,\n 0\n );\n containerUpdaterRef.current = highlightMaskUpdater;\n app.stage.interactive = true;\n const onPointerMove = (event) => {\n var _a3, _b3;\n const x = event.offsetX * sizeRatio;\n const y = event.offsetY * sizeRatio;\n indicatorContainer.removeChildren();\n const { closestScreenshot, closestIndex } = closestScreenshotItemOnXY(\n x,\n y\n );\n if (closestIndex < 0) {\n (_a3 = props.onUnhighlight) == null ? void 0 : _a3.call(props);\n return;\n }\n const closestContainer = shotContainers[closestIndex];\n closestContainer.children.forEach((child) => {\n if (child instanceof PIXI.Sprite) {\n const newSpirit = new PIXI.Graphics();\n newSpirit.lineStyle(2, gridHighlightColor, 1);\n newSpirit.drawRect(\n x,\n // follow mouse\n closestScreenshot == null ? void 0 : closestScreenshot.y,\n closestScreenshot == null ? void 0 : closestScreenshot.width,\n closestScreenshot == null ? void 0 : closestScreenshot.height\n );\n newSpirit.endFill();\n indicatorContainer.addChild(newSpirit);\n const screenshotSpirit = cloneSprite(child);\n screenshotSpirit.x = x;\n indicatorContainer.addChild(screenshotSpirit);\n }\n });\n const indicator = new PIXI.Graphics();\n indicator.beginFill(gridHighlightColor, 1);\n indicator.drawRect(x - 1, 0, 3, canvasHeight);\n indicator.endFill();\n indicatorContainer.addChild(indicator);\n const text = pixiTextForNumber(timeOffsetForLeft(x));\n text.x = x + 5;\n text.y = timeTextTop;\n const textBg = new PIXI.Graphics();\n textBg.beginFill(titleBg, 1);\n textBg.drawRect(text.x, text.y, text.width + 10, text.height);\n textBg.endFill();\n indicatorContainer.addChild(textBg);\n indicatorContainer.addChild(text);\n (_b3 = props.onHighlight) == null ? void 0 : _b3.call(props, {\n mouseX: x / sizeRatio,\n mouseY: y / sizeRatio,\n item: closestScreenshot\n });\n };\n const onPointerOut = () => {\n var _a3;\n indicatorContainer.removeChildren();\n (_a3 = props.onUnhighlight) == null ? void 0 : _a3.call(props);\n };\n const onPointerTap = (event) => {\n var _a3;\n const x = event.offsetX * sizeRatio;\n const y = event.offsetY * sizeRatio;\n const { closestScreenshot } = closestScreenshotItemOnXY(x, y);\n if (closestScreenshot) {\n (_a3 = props.onTap) == null ? void 0 : _a3.call(props, closestScreenshot);\n }\n };\n app.stage.addChild(screenshotsContainer);\n app.stage.addChild(highlightMaskContainer);\n app.stage.addChild(indicatorContainer);\n const canvas = app.view;\n canvas.addEventListener(\"pointermove\", onPointerMove);\n canvas.addEventListener(\"pointerout\", onPointerOut);\n canvas.addEventListener(\"pointerdown\", onPointerTap);\n }))()\n );\n }, []);\n return /* @__PURE__ */ jsx(\"div\", { className: \"timeline-canvas-wrapper\", ref: domRef });\n};\nconst Timeline = () => {\n const allTasks = useAllCurrentTasks();\n const wrapper = useRef(null);\n const setActiveTask = useExecutionDump((store) => store.setActiveTask);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const hoverTask = useExecutionDump((store) => store.hoverTask);\n const setHoverTask = useExecutionDump((store) => store.setHoverTask);\n const setHoverPreviewConfig = useExecutionDump(\n (store) => store.setHoverPreviewConfig\n );\n let startingTime = -1;\n let idCount = 1;\n const idTaskMap = {};\n const allScreenshots = allTasks.reduce((acc, current) => {\n var _a;\n const recorders = current.recorder || [];\n recorders.forEach((item) => {\n if (startingTime === -1 || startingTime > item.ts) {\n startingTime = item.ts;\n }\n });\n if (((_a = current.timing) == null ? void 0 : _a.start) && (startingTime === -1 || startingTime > current.timing.start)) {\n startingTime = current.timing.start;\n }\n const recorderItemWithId = recorders.map((item) => {\n const idStr = `id_${idCount++}`;\n idTaskMap[idStr] = current;\n return __spreadProps(__spreadValues({}, item), {\n id: idStr\n });\n });\n return acc.concat(recorderItemWithId || []);\n }, []).filter((item) => {\n return item.screenshot;\n }).map((recorderItem) => {\n return {\n id: recorderItem.id,\n img: recorderItem.screenshot,\n timeOffset: recorderItem.ts - startingTime\n };\n }).sort((a, b) => a.timeOffset - b.timeOffset);\n const itemOnTap = (item) => {\n const task = idTaskMap[item.id];\n if (task) {\n setActiveTask(task);\n }\n };\n const onHighlightItem = (param) => {\n var _a;\n const { mouseX, item } = param;\n const refBounding = (_a = wrapper.current) == null ? void 0 : _a.getBoundingClientRect();\n const task = idTaskMap[item.id];\n if (task) {\n setHoverTask(task, item.timeOffset + startingTime);\n setHoverPreviewConfig({\n x: mouseX + ((refBounding == null ? void 0 : refBounding.left) || 0),\n y: ((refBounding == null ? void 0 : refBounding.bottom) || 1) - 1\n });\n } else {\n setHoverTask(null);\n setHoverPreviewConfig(null);\n }\n };\n const unhighlight = () => {\n setHoverTask(null);\n setHoverPreviewConfig(null);\n };\n const maskConfigForTask = (task) => {\n var _a, _b;\n if (!task) {\n return void 0;\n }\n return ((_a = task.timing) == null ? void 0 : _a.start) && ((_b = task.timing) == null ? void 0 : _b.end) ? {\n startMs: task.timing.start - startingTime || 0,\n endMs: task.timing.end - startingTime || 0\n } : void 0;\n };\n const highlightMaskConfig = maskConfigForTask(activeTask);\n const hoverMaskConfig = maskConfigForTask(hoverTask);\n return /* @__PURE__ */ jsx(\"div\", { className: \"timeline-wrapper\", ref: wrapper, children: /* @__PURE__ */ jsx(\n TimelineWidget,\n {\n screenshots: allScreenshots,\n onTap: itemOnTap,\n onHighlight: onHighlightItem,\n onUnhighlight: unhighlight,\n highlightMask: highlightMaskConfig,\n hoverMask: hoverMaskConfig\n }\n ) });\n};\nvar timeline_default = Timeline;\nexport {\n timeline_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./index.css\";\nimport DetailSide from \"./component/detail-side\";\nimport Sidebar from \"./component/sidebar\";\nimport { useExecutionDump } from \"./component/store\";\nimport { Helmet } from \"@modern-js/runtime/head\";\nimport { Button, ConfigProvider, Upload, message } from \"antd\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Panel, PanelGroup, PanelResizeHandle } from \"react-resizable-panels\";\nimport Logo from \"./component/assets/logo-plain.js\";\nimport DetailPanel from \"./component/detail-panel\";\nimport GlobalHoverPreview from \"./component/global-hover-preview\";\nimport Timeline from \"./component/timeline\";\nimport demoDump from \"./demo-dump.json\";\nconst { Dragger } = Upload;\nlet globalRenderCount = 1;\nfunction Visualizer(props) {\n const { dump } = props;\n const executionDump = useExecutionDump((store) => store.dump);\n const setGroupedDump = useExecutionDump((store) => store.setGroupedDump);\n const reset = useExecutionDump((store) => store.reset);\n const [mainLayoutChangeFlag, setMainLayoutChangeFlag] = useState(0);\n const mainLayoutChangedRef = useRef(false);\n useEffect(() => {\n if (dump) {\n setGroupedDump(dump);\n }\n return () => {\n reset();\n };\n }, []);\n useEffect(() => {\n const onResize = () => {\n setMainLayoutChangeFlag((prev) => prev + 1);\n };\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n const uploadProps = {\n name: \"file\",\n multiple: false,\n capture: false,\n customRequest: () => {\n },\n beforeUpload(file) {\n const ifValidFile = file.name.endsWith(\"web-dump.json\");\n if (!ifValidFile) {\n message.error(\"invalid file extension\");\n return false;\n }\n const reader = new FileReader();\n reader.readAsText(file);\n reader.onload = (e) => {\n var _a;\n const result = (_a = e.target) == null ? void 0 : _a.result;\n if (typeof result === \"string\") {\n try {\n const data = JSON.parse(result);\n setGroupedDump(data);\n } catch (e2) {\n console.error(e2);\n message.error(\"failed to parse dump data\", e2.message);\n }\n } else {\n message.error(\"Invalid dump file\");\n }\n };\n return false;\n }\n };\n const loadDemoDump = () => {\n setGroupedDump(demoDump);\n };\n let mainContent;\n if (!executionDump) {\n mainContent = /* @__PURE__ */ jsxs(\"div\", { className: \"main-right uploader-wrapper\", children: [\n /* @__PURE__ */ jsxs(Dragger, __spreadProps(__spreadValues({ className: \"uploader\" }, uploadProps), { children: [\n /* @__PURE__ */ jsx(\"p\", { className: \"ant-upload-drag-icon\", children: /* @__PURE__ */ jsx(Logo, { style: { width: 100, height: 100, margin: \"auto\" } }) }),\n /* @__PURE__ */ jsxs(\"p\", { className: \"ant-upload-text\", children: [\n \"Click or drag the\",\n \" \",\n /* @__PURE__ */ jsx(\"b\", { children: /* @__PURE__ */ jsx(\"i\", { children: \".web-dump.json\" }) }),\n \" \",\n \"file into this area.\"\n ] }),\n /* @__PURE__ */ jsxs(\"p\", { className: \"ant-upload-text\", children: [\n \"The latest dump file is usually placed in\",\n \" \",\n /* @__PURE__ */ jsx(\"b\", { children: /* @__PURE__ */ jsx(\"i\", { children: \"./midscene_run/report\" }) })\n ] }),\n /* @__PURE__ */ jsx(\"p\", { className: \"ant-upload-text\", children: \"All data will be processed locally by the browser. No data will be sent to the server.\" })\n ] })),\n /* @__PURE__ */ jsx(\"div\", { className: \"demo-loader\", children: /* @__PURE__ */ jsx(Button, { type: \"link\", onClick: loadDemoDump, children: \"Load Demo\" }) })\n ] });\n } else {\n mainContent = /* @__PURE__ */ jsxs(\n PanelGroup,\n {\n autoSaveId: \"main-page-layout\",\n direction: \"horizontal\",\n onLayout: () => {\n if (!mainLayoutChangedRef.current) {\n setMainLayoutChangeFlag((prev) => prev + 1);\n }\n },\n children: [\n /* @__PURE__ */ jsx(Panel, { maxSize: 95, defaultSize: 20, children: /* @__PURE__ */ jsx(Sidebar, { hideLogo: props == null ? void 0 : props.hideLogo, logoAction: props == null ? void 0 : props.logoAction }) }),\n /* @__PURE__ */ jsx(\n PanelResizeHandle,\n {\n onDragging: (isChanging) => {\n if (mainLayoutChangedRef.current && !isChanging) {\n setMainLayoutChangeFlag((prev) => prev + 1);\n }\n mainLayoutChangedRef.current = isChanging;\n }\n }\n ),\n /* @__PURE__ */ jsx(Panel, { defaultSize: 80, maxSize: 95, children: /* @__PURE__ */ jsxs(\"div\", { className: \"main-right\", children: [\n /* @__PURE__ */ jsx(Timeline, {}, mainLayoutChangeFlag),\n /* @__PURE__ */ jsx(\"div\", { className: \"main-content\", children: /* @__PURE__ */ jsxs(\n PanelGroup,\n {\n autoSaveId: \"page-detail-layout\",\n direction: \"horizontal\",\n children: [\n /* @__PURE__ */ jsx(Panel, { maxSize: 95, children: /* @__PURE__ */ jsx(\"div\", { className: \"main-side\", children: /* @__PURE__ */ jsx(DetailSide, {}) }) }),\n /* @__PURE__ */ jsx(PanelResizeHandle, {}),\n /* @__PURE__ */ jsx(Panel, { defaultSize: 75, maxSize: 95, children: /* @__PURE__ */ jsx(\"div\", { className: \"main-canvas-container\", children: /* @__PURE__ */ jsx(DetailPanel, {}) }) })\n ]\n }\n ) })\n ] }) })\n ]\n }\n );\n }\n const [containerHeight, setContainerHeight] = useState(\"100%\");\n useEffect(() => {\n const ifInRspressPage = document.querySelector(\".rspress-nav\");\n const navHeightKey = \"--rp-nav-height\";\n const originalNavHeight = getComputedStyle(\n document.documentElement\n ).getPropertyValue(navHeightKey);\n if (ifInRspressPage) {\n const newNavHeight = \"42px\";\n setContainerHeight(`calc(100vh - ${newNavHeight})`);\n document.documentElement.style.setProperty(navHeightKey, newNavHeight);\n }\n return () => {\n if (ifInRspressPage) {\n document.documentElement.style.setProperty(\n navHeightKey,\n originalNavHeight\n );\n }\n };\n }, []);\n useEffect(() => {\n return () => {\n globalRenderCount += 1;\n };\n }, []);\n return /* @__PURE__ */ jsxs(\n ConfigProvider,\n {\n theme: {\n components: {\n Layout: {\n headerHeight: 60,\n headerPadding: \"0 30px\",\n headerBg: \"#FFF\",\n bodyBg: \"#FFF\"\n }\n }\n },\n children: [\n /* @__PURE__ */ jsx(Helmet, { children: /* @__PURE__ */ jsx(\"title\", { children: \"Midscene.js - Visualization Tool\" }) }),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: \"page-container\",\n style: { height: containerHeight },\n children: mainContent\n },\n `render-${globalRenderCount}`\n ),\n /* @__PURE__ */ jsx(GlobalHoverPreview, {})\n ]\n }\n );\n}\nvar src_default = Visualizer;\nexport {\n Visualizer,\n src_default as default\n};\n","import { Visualizer } from '@midscene/visualizer';\nimport { useNavigate } from '@modern-js/runtime/router';\nimport React, { useEffect, useState } from 'react';\n\ndeclare module '@midscene/visualizer' {\n export function Visualizer(dumpInfo: any): any;\n}\n\nexport function Report() {\n const navigation = useNavigate();\n const [dumpJson, setDumpJson] = useState<any>(null);\n const [isLoading, setLoading] = useState<any>(true);\n // eslint-disable-next-line node/prefer-global/url-search-params\n const searchParams = new URLSearchParams(window.location.search);\n const dumpId = searchParams.get('dumpId')?.toString() || '';\n\n useEffect(() => {\n fetch(`/public/${dumpId}`)\n .then((response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n return response.json();\n })\n .then((data) => {\n setDumpJson(data);\n console.log('data', data); // 在此处处理 JSON 数据\n })\n .catch((error) => console.error('Error:', error))\n .finally(() => {\n setLoading(false);\n });\n }, [dumpId]);\n return (\n <div className=\"container-box\">\n <div>\n <main>\n {!isLoading && (\n <Visualizer\n dump={dumpJson}\n logoAction={() => {\n navigation('/');\n }}\n />\n )}\n </main>\n <div />\n </div>\n </div>\n );\n}\n","import { BrowserRouter, Route, Routes } from '@modern-js/runtime/router';\nimport { Home } from './pages/Home';\nimport { Report } from './pages/Report';\n\nexport default () => {\n return (\n <BrowserRouter>\n <Routes>\n <Route index element={<Home />} />\n <Route path=\"report\" element={<Report />} />\n </Routes>\n </BrowserRouter>\n );\n};\n","import { defineRuntimeConfig } from '@modern-js/runtime';\n\nexport default defineRuntimeConfig({});\n","import \"core-js\";"],"names":["statusIcon","status","className","TestResult","props","navigator","useNavigate","testDataList","Object","keys","statusDataList","reduce","res","push","groupTestDataWithFileName","next","location","file","items","map","fileName","key","label","children","testData","timeMinutes","Math","floor","duration","timeSeconds","onClick","concat","dumpPath","split","pop","title","line","Collapse","activeKey","Array","length","onChange","console","log","StatsNavView","_searchParams_get","stats","searchParams","URLSearchParams","window","search","navigate","q","get","toString","total","skipped","passed","failed","icon","flaky","setStatus","useState","Menu","e","selectedKeys","mode","Home","setTestDataJson","isLoading","setLoading","useEffect","fetch","then","response","ok","Error","json","data","catch","error","finally","_statusDataList_passed","_statusDataList_failed","_statusDataList_flaky","_statusDataList_skipped","TestResultReport","timeStr","timestamp","format","typeStr","task","subType","type","prototype","hasOwnProperty","propertyIsEnumerable","sectionColor","elementColor","colorForName","name","hashNumber","djb2Hash","str","warn","hash","i","charCodeAt","highlightColorForType","timeCostStrElement","timeCost","toFixed","jsx","style","fontVariantNumeric","fontFeatureSettings","panel_title_default","defineProperty","defineProperties","getOwnPropertyDescriptors","getOwnPropertySymbols","obj","value","enumerable","configurable","writable","a","b","prop","call","useBlackboardPreference","set","bgVisible","textsVisible","setBgVisible","visible","setTextsVisible","useExecutionDump","initData","dump","activeTask","hoverTask","hoverTimestamp","hoverPreviewConfig","syncToInsightDump","loadData","useInsightDump","getState","resetInsightDump","reset","setGroupedDump","item","executions","tasks","setActiveTask","_a","setHoverTask","setHoverPreviewConfig","config","x","y","useAllCurrentTasks","groupedDumps","store","acc","group","tasksInside","acc2","execution","loadId","_loadId","highlightSectionNames","highlightElements","setHighlightSectionNames","sections","setHighlightElements","elements","noop","Card","highlightWithColor","subtitle","onMouseEnter","onMouseLeave","content","characteristic","titleTag","placement","mouseEnterDelay","titleRightPaddingClass","modeClass","liteMode","jsxs","backgroundColor","display","MetaKV","index","objectWithoutKeys","includes","detail_side_default","_b","_c","_d","_e","_f","_g","_h","_i","matchedSection","matchedElement","setHighlightSectionName","setHighlightElement","element","unhighlightSection","unhighlightElement","kv","isElementItem","Boolean","center","rect","isSectionItem","sectionCharacteristics","elementEl","bordered","color","sectionEl","isArray","JSON","stringify","some","metaKVElement","timing","start","end","cost","cache","taskParam","param","userPrompt","prompt","dataDemand","assertion","matchedSectionsEl","section","ifHighlight","kvToShow","sectionKV","highlightColor","description","bind","matchedElementsEl","idx","elementKV","errorSection","dataCard","assertionCard","output","plans","timelineData","Fragment","thought","logo_plain2_default","xmlns","xmlnsXlink","xmlSpace","width","height","shapeRendering","textRendering","imageRendering","fillRule","clipRule","viewBox","id","x1","x2","y1","y2","gradientUnits","offset","stopOpacity","stopColor","xlinkHref","d","fill","stroke","strokeWidth","strokeMiterlimit","cx","cy","r","SideItem","contentRow","selected","statusText","demand","contentToShow","event","_a2","currentTarget","getBoundingClientRect","left","top","onItemHover","sidebar_default","allTasks","currentSelectedIndex","findIndex","handleKeyDown","metaKey","ctrlKey","preventDefault","nextIndex","document","addEventListener","removeEventListener","sideList","groupIndex","indexOfExecution","seperator","taskList","groupName","hideLogo","margin","logoAction","reload","logo_plain_default","__async","__this","__arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","throw","done","apply","blackboard_default","context","size","screenshotBase64","screenWidth","screenHeight","domRef","useRef","app","useMemo","appInitialed","setAppInitialed","itemMarkContainer","textContainer","pixiBgRef","current","init","background","canvasEl","appendChild","canvas","clientWidth","parentElement","targetHeight","innerHeight","ratio","stage","addChild","destroy","texture","img","Image","src","onload","screenshotTexture","screenshotSprite","addChildAt","alpha","rectMarkForItem","themeColor","onPointOver","onPointerOut","graphics","beginFill","lineStyle","drawRect","endFill","interactive","on","texts","fontSize","max","nameFontSize","highlightSectionRects","highlightElementRects","highlightSectionRects2","highlightElementRects2","removeChildren","forEach","sectionTheme","text","content2","wordWrap","wordWrapWidth","textElement","textBorder","bottomTipA","bottomTipB","ref","checked","target","ScreenshotItem","time","alt","VIEW_TYPE_BLACKBOARD","VIEW_TYPE_SCREENSHOT","VIEW_TYPE_JSON","detail_panel_default","dumpContext","dumpId","blackboardViewAvailable","preferredViewType","setViewType","viewType","input","replace","recorder","filter","screenshot","fullTime","ts","options","unshift","theme","components","Segmented","itemSelectedBg","itemSelectedColor","global_hover_preview_default","wrapperRef","imageW","setImageW","imageH","setImageH","images","valid","shouldShow","clientHeight","body","widthInPractice","heightInPractice","onLoad","imgElement","naturalWidth","naturalHeight","TimelineWidget","gridsContainer","screenshotsContainer","highlightMaskContainer","containerUpdaterRef","_s","_hs","_he","indicatorContainer","allScreenshots","screenshots","maxTime","timeOffset","timeTitleBottom","timeTextTop","closestScreenshotItemOnXY","_y","closestScreenshot","closestIndex","shot","startMs","endMs","highlightMask","hoverStartMs","hoverEndMs","hoverMask","fn","_b2","canvasWidth","canvasHeight","singleGridWidth","gridCount","stepCandidate","timeStep","gridRatio","leftForTimeOffset","timeOffsetForLeft","replaceChildren","pixiTextForNumber","num","textContent","titleBgSection","titleBottomBorder","gridLine","gridLineLeft","textLeft","shotContainers","screenshotTop","commonPadding","screenshotMaxHeight","container","originalWidth","screenshotWidth","screenshotHeight","screenshotX","border","highlightMaskUpdater","hoverStart","hoverEnd","mask","start2","end2","leftBorder","rightBorder","mask2","view","_a3","_b3","offsetX","offsetY","onUnhighlight","closestContainer","child","newSpirit","screenshotSpirit","cloneSprite","sprite","clonedSprite","position","copyFrom","scale","rotation","indicator","textBg","onHighlight","mouseX","mouseY","onTap","timeline_default","wrapper","startingTime","idCount","idTaskMap","recorders","recorderItemWithId","idStr","recorderItem","sort","maskConfigForTask","highlightMaskConfig","hoverMaskConfig","refBounding","bottom","Dragger","globalRenderCount","Visualizer","mainContent","executionDump","mainLayoutChangeFlag","setMainLayoutChangeFlag","mainLayoutChangedRef","onResize","prev","autoSaveId","direction","onLayout","maxSize","defaultSize","onDragging","isChanging","multiple","capture","customRequest","beforeUpload","endsWith","reader","FileReader","readAsText","result","parse","e2","message","containerHeight","setContainerHeight","ifInRspressPage","querySelector","navHeightKey","originalNavHeight","getComputedStyle","documentElement","getPropertyValue","newNavHeight","setProperty","Layout","headerHeight","headerPadding","headerBg","bodyBg","Report","navigation","dumpJson","setDumpJson","BrowserRouter","Routes","Route","path","defineRuntimeConfig","__assetPrefix__"],"mappings":"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"}