@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.
- package/README.md +7 -0
- package/dist/es/index.js +306 -170
- package/dist/es/playwright-report.js +22 -15
- package/dist/lib/index.js +320 -188
- package/dist/lib/playwright-report.js +31 -28
- package/dist/script/htmlElement.js +30 -18
- package/dist/script/types/htmlElement.d.ts +5 -5
- package/dist/types/index.d.ts +18 -12
- package/dist/types/playwright-report.d.ts +2 -2
- package/dist/visualizer-report/index.html +1 -1
- package/dist/visualizer-report/static/css/index.eccd04e1.css +1 -0
- package/dist/visualizer-report/static/css/index.eccd04e1.css.map +1 -0
- package/dist/visualizer-report/static/js/160.5ac2287a.js +6 -0
- package/dist/visualizer-report/static/js/160.5ac2287a.js.map +1 -0
- package/dist/visualizer-report/static/js/index.e71be3a2.js +1 -0
- package/dist/visualizer-report/static/js/index.e71be3a2.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-antd.583c9200.js +141 -0
- package/dist/visualizer-report/static/js/lib-antd.583c9200.js.map +1 -0
- package/package.json +7 -6
- package/dist/visualizer-report/static/css/index.c7751597.css +0 -1
- package/dist/visualizer-report/static/css/index.c7751597.css.map +0 -1
- package/dist/visualizer-report/static/js/915.d3f73af1.js +0 -6
- package/dist/visualizer-report/static/js/915.d3f73af1.js.map +0 -1
- package/dist/visualizer-report/static/js/index.ae9a86c5.js +0 -1
- package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +0 -1
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js +0 -189
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +0 -1
- /package/dist/visualizer-report/static/js/{915.d3f73af1.js.LICENSE.txt → 160.5ac2287a.js.LICENSE.txt} +0 -0
|
@@ -2243,23 +2243,22 @@ __export(reporter_exports, {
|
|
|
2243
2243
|
module.exports = __toCommonJS(reporter_exports);
|
|
2244
2244
|
|
|
2245
2245
|
// src/playwright/reporter/util.ts
|
|
2246
|
-
var
|
|
2247
|
-
var
|
|
2248
|
-
var
|
|
2249
|
-
var import_fs_extra = __toESM(require_lib());
|
|
2246
|
+
var import_node_assert2 = __toESM(require("assert"));
|
|
2247
|
+
var import_node_os = __toESM(require("os"));
|
|
2248
|
+
var import_node_path2 = __toESM(require("path"));
|
|
2250
2249
|
|
|
2251
2250
|
// src/common/utils.ts
|
|
2252
|
-
var
|
|
2253
|
-
var
|
|
2254
|
-
var
|
|
2251
|
+
var import_node_assert = __toESM(require("assert"));
|
|
2252
|
+
var import_node_fs = __toESM(require("fs"));
|
|
2253
|
+
var import_node_path = __toESM(require("path"));
|
|
2255
2254
|
var import_image = require("@midscene/core/image");
|
|
2256
2255
|
var import_utils = require("@midscene/core/utils");
|
|
2257
2256
|
function findNearestPackageJson(dir) {
|
|
2258
|
-
const packageJsonPath =
|
|
2259
|
-
if (
|
|
2257
|
+
const packageJsonPath = import_node_path.default.join(dir, "package.json");
|
|
2258
|
+
if (import_node_fs.default.existsSync(packageJsonPath)) {
|
|
2260
2259
|
return dir;
|
|
2261
2260
|
}
|
|
2262
|
-
const parentDir =
|
|
2261
|
+
const parentDir = import_node_path.default.dirname(dir);
|
|
2263
2262
|
if (parentDir === dir) {
|
|
2264
2263
|
return null;
|
|
2265
2264
|
}
|
|
@@ -2267,19 +2266,22 @@ function findNearestPackageJson(dir) {
|
|
|
2267
2266
|
}
|
|
2268
2267
|
|
|
2269
2268
|
// src/playwright/reporter/util.ts
|
|
2269
|
+
var import_fs_extra = __toESM(require_lib());
|
|
2270
2270
|
function generateTestData(testDataList2) {
|
|
2271
|
-
const filterDataList = testDataList2.reduce(
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2271
|
+
const filterDataList = testDataList2.reduce(
|
|
2272
|
+
(res, testData) => {
|
|
2273
|
+
if (res.find((item) => item.testId === testData.testId)) {
|
|
2274
|
+
return res;
|
|
2275
|
+
}
|
|
2275
2276
|
return [...res, testData];
|
|
2276
|
-
}
|
|
2277
|
-
|
|
2277
|
+
},
|
|
2278
|
+
[]
|
|
2279
|
+
);
|
|
2278
2280
|
const reportDir = findNearestPackageJson(__dirname);
|
|
2279
|
-
(0,
|
|
2280
|
-
const targetReportDir =
|
|
2281
|
-
const reportHtmlDir =
|
|
2282
|
-
const tempDir =
|
|
2281
|
+
(0, import_node_assert2.default)(reportDir, `can't get reportDir from ${__dirname}`);
|
|
2282
|
+
const targetReportDir = import_node_path2.default.join(process.cwd(), "midscene_run", "report");
|
|
2283
|
+
const reportHtmlDir = import_node_path2.default.join(reportDir, "dist/visualizer-report");
|
|
2284
|
+
const tempDir = import_node_path2.default.join(import_node_os.default.tmpdir(), "temp-folder");
|
|
2283
2285
|
try {
|
|
2284
2286
|
import_fs_extra.default.copySync(reportHtmlDir, tempDir);
|
|
2285
2287
|
import_fs_extra.default.moveSync(tempDir, targetReportDir, { overwrite: true });
|
|
@@ -2287,7 +2289,7 @@ function generateTestData(testDataList2) {
|
|
|
2287
2289
|
console.error("An error occurred while copying the folder.", err);
|
|
2288
2290
|
}
|
|
2289
2291
|
try {
|
|
2290
|
-
import_fs_extra.default.removeSync(
|
|
2292
|
+
import_fs_extra.default.removeSync(import_node_path2.default.join(targetReportDir, "public"));
|
|
2291
2293
|
} catch (err) {
|
|
2292
2294
|
console.error("An error occurred while deleting the folder.", err);
|
|
2293
2295
|
}
|
|
@@ -2295,14 +2297,14 @@ function generateTestData(testDataList2) {
|
|
|
2295
2297
|
const { dumpPath } = testData;
|
|
2296
2298
|
if (dumpPath) {
|
|
2297
2299
|
const srcFile = dumpPath.split("/").pop();
|
|
2298
|
-
(0,
|
|
2299
|
-
const destFile =
|
|
2300
|
+
(0, import_node_assert2.default)(srcFile, `Failed to get source file name from ${dumpPath}`);
|
|
2301
|
+
const destFile = import_node_path2.default.join(targetReportDir, "public", srcFile);
|
|
2300
2302
|
import_fs_extra.default.copySync(dumpPath, destFile);
|
|
2301
2303
|
}
|
|
2302
2304
|
}
|
|
2303
2305
|
try {
|
|
2304
2306
|
import_fs_extra.default.outputFileSync(
|
|
2305
|
-
|
|
2307
|
+
import_node_path2.default.join(targetReportDir, "public", "test-data-list.json"),
|
|
2306
2308
|
JSON.stringify({ "test-list": filterDataList })
|
|
2307
2309
|
);
|
|
2308
2310
|
} catch (err) {
|
|
@@ -2317,7 +2319,7 @@ function logger(...message) {
|
|
|
2317
2319
|
console.log("Midscene e2e report:", ...message);
|
|
2318
2320
|
}
|
|
2319
2321
|
}
|
|
2320
|
-
var
|
|
2322
|
+
var MidsceneReporter = class {
|
|
2321
2323
|
async onBegin(config, suite) {
|
|
2322
2324
|
const suites = suite.allTests();
|
|
2323
2325
|
logger(`Starting the run with ${suites.length} tests`);
|
|
@@ -2333,7 +2335,7 @@ var MidSceneReporter = class {
|
|
|
2333
2335
|
return false;
|
|
2334
2336
|
});
|
|
2335
2337
|
aiActionTestData.forEach((testData) => {
|
|
2336
|
-
const parseData = JSON.parse(testData.description);
|
|
2338
|
+
const parseData = JSON.parse((testData == null ? void 0 : testData.description) || "{}");
|
|
2337
2339
|
if (parseData.testId === test.id && !testDataList.find((item) => item.testId === test.id)) {
|
|
2338
2340
|
testDataList.push({
|
|
2339
2341
|
testId: test.id,
|
|
@@ -2352,8 +2354,9 @@ var MidSceneReporter = class {
|
|
|
2352
2354
|
generateTestData(testDataList);
|
|
2353
2355
|
console.log(
|
|
2354
2356
|
"\x1B[32m%s\x1B[0m",
|
|
2355
|
-
`
|
|
2357
|
+
`Midscene report has been generated.
|
|
2358
|
+
Run "npx http-server ./midscene_run/report -o -s -c-1" to view.`
|
|
2356
2359
|
);
|
|
2357
2360
|
}
|
|
2358
2361
|
};
|
|
2359
|
-
var reporter_default =
|
|
2362
|
+
var reporter_default = MidsceneReporter;
|
|
@@ -580,6 +580,20 @@ var midscene_element_inspector = (() => {
|
|
|
580
580
|
extractTextWithPositionDFS: () => extractTextWithPositionDFS
|
|
581
581
|
});
|
|
582
582
|
|
|
583
|
+
// src/extractor/constants.ts
|
|
584
|
+
var TEXT_SIZE_THRESHOLD = 9;
|
|
585
|
+
|
|
586
|
+
// src/extractor/dom-util.ts
|
|
587
|
+
function isInputElement(node) {
|
|
588
|
+
return node instanceof HTMLElement && node.tagName.toLowerCase() === "input";
|
|
589
|
+
}
|
|
590
|
+
function isButtonElement(node) {
|
|
591
|
+
return node instanceof HTMLElement && node.tagName.toLowerCase() === "button";
|
|
592
|
+
}
|
|
593
|
+
function isImgElement(node) {
|
|
594
|
+
return node instanceof HTMLElement && node.tagName.toLowerCase() === "img";
|
|
595
|
+
}
|
|
596
|
+
|
|
583
597
|
// src/extractor/util.ts
|
|
584
598
|
var import_js_sha256 = __toESM(require_sha256());
|
|
585
599
|
function logger(..._msg) {
|
|
@@ -701,20 +715,6 @@ var midscene_element_inspector = (() => {
|
|
|
701
715
|
}
|
|
702
716
|
window.generateHash = generateHash;
|
|
703
717
|
|
|
704
|
-
// src/extractor/constants.ts
|
|
705
|
-
var TEXT_SIZE_THRESHOLD = 9;
|
|
706
|
-
|
|
707
|
-
// src/extractor/dom-util.ts
|
|
708
|
-
function isInputElement(node) {
|
|
709
|
-
return node instanceof HTMLElement && node.tagName.toLowerCase() === "input";
|
|
710
|
-
}
|
|
711
|
-
function isButtonElement(node) {
|
|
712
|
-
return node instanceof HTMLElement && node.tagName.toLowerCase() === "button";
|
|
713
|
-
}
|
|
714
|
-
function isImgElement(node) {
|
|
715
|
-
return node instanceof HTMLElement && node.tagName.toLowerCase() === "img";
|
|
716
|
-
}
|
|
717
|
-
|
|
718
718
|
// src/extractor/extractor.ts
|
|
719
719
|
var container = document.body;
|
|
720
720
|
function generateId(numberId) {
|
|
@@ -758,7 +758,10 @@ var midscene_element_inspector = (() => {
|
|
|
758
758
|
}),
|
|
759
759
|
content: attributes.placeholder || "",
|
|
760
760
|
rect,
|
|
761
|
-
center: [
|
|
761
|
+
center: [
|
|
762
|
+
Math.round(rect.left + rect.width / 2),
|
|
763
|
+
Math.round(rect.top + rect.height / 2)
|
|
764
|
+
]
|
|
762
765
|
});
|
|
763
766
|
return;
|
|
764
767
|
}
|
|
@@ -778,7 +781,10 @@ var midscene_element_inspector = (() => {
|
|
|
778
781
|
}),
|
|
779
782
|
content,
|
|
780
783
|
rect,
|
|
781
|
-
center: [
|
|
784
|
+
center: [
|
|
785
|
+
Math.round(rect.left + rect.width / 2),
|
|
786
|
+
Math.round(rect.top + rect.height / 2)
|
|
787
|
+
]
|
|
782
788
|
});
|
|
783
789
|
return;
|
|
784
790
|
}
|
|
@@ -796,7 +802,10 @@ var midscene_element_inspector = (() => {
|
|
|
796
802
|
}),
|
|
797
803
|
content: "",
|
|
798
804
|
rect,
|
|
799
|
-
center: [
|
|
805
|
+
center: [
|
|
806
|
+
Math.round(rect.left + rect.width / 2),
|
|
807
|
+
Math.round(rect.top + rect.height / 2)
|
|
808
|
+
]
|
|
800
809
|
});
|
|
801
810
|
return;
|
|
802
811
|
}
|
|
@@ -817,7 +826,10 @@ var midscene_element_inspector = (() => {
|
|
|
817
826
|
nodeType: "TEXT Node" /* TEXT */
|
|
818
827
|
}),
|
|
819
828
|
locator: selector,
|
|
820
|
-
center: [
|
|
829
|
+
center: [
|
|
830
|
+
Math.round(rect.left + rect.width / 2),
|
|
831
|
+
Math.round(rect.top + rect.height / 2)
|
|
832
|
+
],
|
|
821
833
|
// attributes,
|
|
822
834
|
content: text,
|
|
823
835
|
rect
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
declare enum NodeType {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
INPUT = "INPUT Node",
|
|
3
|
+
BUTTON = "BUTTON Node",
|
|
4
|
+
IMG = "IMG Node",
|
|
5
|
+
TEXT = "TEXT Node"
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
interface ElementInfo {
|
|
9
9
|
id: string;
|
|
10
10
|
indexId: string;
|
|
11
11
|
nodeHashId: string;
|
|
12
|
-
locator: string |
|
|
12
|
+
locator: string | undefined;
|
|
13
13
|
attributes: {
|
|
14
14
|
nodeType: NodeType;
|
|
15
15
|
[key: string]: string;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Page } from 'playwright';
|
|
2
1
|
import { TestInfo } from '@playwright/test';
|
|
3
|
-
import
|
|
2
|
+
import { Page } from 'playwright';
|
|
4
3
|
import { Page as Page$1 } from 'puppeteer';
|
|
4
|
+
import Insight, { BaseElement, Rect, UIContext, PlanningAction, AIElementParseResponse, ExecutionDump, InsightExtractParam, InsightAssertionResponse, GroupedActionDump } from '@midscene/core';
|
|
5
|
+
|
|
6
|
+
type WebPage = Page | Page$1;
|
|
5
7
|
|
|
6
8
|
declare enum NodeType {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
INPUT = "INPUT Node",
|
|
10
|
+
BUTTON = "BUTTON Node",
|
|
11
|
+
IMG = "IMG Node",
|
|
12
|
+
TEXT = "TEXT Node"
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
type WebPage = Page | Page$1;
|
|
14
|
-
|
|
15
15
|
declare class WebElementInfo implements BaseElement {
|
|
16
16
|
content: string;
|
|
17
17
|
locator: string;
|
|
@@ -20,7 +20,7 @@ declare class WebElementInfo implements BaseElement {
|
|
|
20
20
|
page: WebPage;
|
|
21
21
|
id: string;
|
|
22
22
|
attributes: {
|
|
23
|
-
|
|
23
|
+
nodeType: NodeType;
|
|
24
24
|
[key: string]: string;
|
|
25
25
|
};
|
|
26
26
|
constructor({ content, rect, page, locator, id, attributes, }: {
|
|
@@ -30,7 +30,7 @@ declare class WebElementInfo implements BaseElement {
|
|
|
30
30
|
locator: string;
|
|
31
31
|
id: string;
|
|
32
32
|
attributes: {
|
|
33
|
-
|
|
33
|
+
nodeType: NodeType;
|
|
34
34
|
[key: string]: string;
|
|
35
35
|
};
|
|
36
36
|
});
|
|
@@ -119,6 +119,7 @@ declare class PageTaskExecutor {
|
|
|
119
119
|
private convertPlanToExecutable;
|
|
120
120
|
action(userPrompt: string): Promise<void>;
|
|
121
121
|
query(demand: InsightExtractParam): Promise<any>;
|
|
122
|
+
assert(assertion: string): Promise<InsightAssertionResponse>;
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
declare const PlaywrightAiFixture: () => {
|
|
@@ -131,6 +132,9 @@ declare const PlaywrightAiFixture: () => {
|
|
|
131
132
|
aiQuery: ({ page }: {
|
|
132
133
|
page: Page;
|
|
133
134
|
}, use: any, testInfo: TestInfo) => Promise<void>;
|
|
135
|
+
aiAssert: ({ page }: {
|
|
136
|
+
page: Page;
|
|
137
|
+
}, use: any, testInfo: TestInfo) => Promise<void>;
|
|
134
138
|
};
|
|
135
139
|
type PlayWrightAiFixtureType = {
|
|
136
140
|
ai: <T = any>(prompt: string, opts?: {
|
|
@@ -138,6 +142,7 @@ type PlayWrightAiFixtureType = {
|
|
|
138
142
|
}) => Promise<T>;
|
|
139
143
|
aiAction: (taskPrompt: string) => ReturnType<PageTaskExecutor['action']>;
|
|
140
144
|
aiQuery: <T = any>(demand: any) => Promise<T>;
|
|
145
|
+
aiAssert: (assertion: string, errorMsg?: string) => Promise<void>;
|
|
141
146
|
};
|
|
142
147
|
|
|
143
148
|
declare class PageAgent {
|
|
@@ -145,8 +150,8 @@ declare class PageAgent {
|
|
|
145
150
|
dumps: GroupedActionDump[];
|
|
146
151
|
testId: string;
|
|
147
152
|
dumpFile?: string;
|
|
148
|
-
|
|
149
|
-
constructor(page: WebPage, opts
|
|
153
|
+
taskExecutor: PageTaskExecutor;
|
|
154
|
+
constructor(page: WebPage, opts?: {
|
|
150
155
|
testId?: string;
|
|
151
156
|
taskFile?: string;
|
|
152
157
|
cache?: AiTaskCache;
|
|
@@ -155,6 +160,7 @@ declare class PageAgent {
|
|
|
155
160
|
writeOutActionDumps(): void;
|
|
156
161
|
aiAction(taskPrompt: string): Promise<void>;
|
|
157
162
|
aiQuery(demand: any): Promise<any>;
|
|
163
|
+
aiAssert(assertion: string, msg?: string): Promise<void>;
|
|
158
164
|
ai(taskPrompt: string, type?: string): Promise<any>;
|
|
159
165
|
}
|
|
160
166
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Reporter, FullConfig, Suite, TestCase, TestResult, FullResult } from '@playwright/test/reporter';
|
|
2
2
|
|
|
3
|
-
declare class
|
|
3
|
+
declare class MidsceneReporter implements Reporter {
|
|
4
4
|
onBegin(config: FullConfig, suite: Suite): Promise<void>;
|
|
5
5
|
onTestBegin(test: TestCase, _result: TestResult): void;
|
|
6
6
|
onTestEnd(test: TestCase, result: TestResult): void;
|
|
7
7
|
onEnd(result: FullResult): void;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export {
|
|
10
|
+
export { MidsceneReporter as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html><head><title></title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,viewport-fit=cover,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="renderer" content="webkit"><meta name="layoutmode" content="standard"><meta name="imagemode" content="force"><meta name="wap-font-scale" content="no"><meta name="format-detection" content="telephone=no"><script defer="defer">(()=>{"use strict";var e={},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.m=e,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(n,o){if(1&o&&(n=this(n)),8&o||"object"==typeof n&&n&&(4&o&&n.__esModule||16&o&&"function"==typeof n.then))return n;var u=Object.create(null);r.r(u);var i={};e=e||[null,t({}),t([]),t(t)];for(var a=2&o&&n;"object"==typeof a&&!~e.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((function(e){i[e]=function(){return n[e]}}));return i.default=function(){return n},r.d(u,i),u}})(),r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(t,n){return r.f[n](e,t),t}),[]))},r.u=function(e){return"static/js/async/"+e+"."+{16:"8b96d0ce",212:"b25a2c30",353:"78fcb703",399:"84fa60a7",453:"782b249a",544:"ee973964",983:"ef821e39"}[e]+".js"},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},(()=>{var e={},t="@midscene/visualizer-report:";r.l=function(n,o,u,i){if(e[n])e[n].push(o);else{if(void 0!==u)for(var a,c,f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var s=f[l];if(s.getAttribute("src")==n||s.getAttribute("data-webpack")==t+u){a=s;break}}!a&&(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",t+u),a.src=n),e[n]=[o];var d=function(t,r){a.onerror=a.onload=null,clearTimeout(p);var o=e[n];if(delete e[n],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(r)})),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e=[];r.O=function(t,n,o,u){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],o=e[l][1],u=e[l][2];for(var a=!0,c=0;c<n.length;c++)(!1&u||i>=u)&&Object.keys(r.O).every((function(e){return r.O[e](n[c])}))?n.splice(c--,1):(a=!1,u<i&&(i=u));if(a){e.splice(l--,1);var f=o();void 0!==f&&(t=f)}}return t}u=u||0;for(var l=e.length;l>0&&e[l-1][2]>u;l--)e[l]=e[l-1];e[l]=[n,o,u]}})(),r.p="/",r.rv=function(){return"1.0.0-alpha.5"},(()=>{var e={242:0};r.f.j=function(t,n){var o=r.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else if(242!=t){var u=new Promise((function(r,n){o=e[t]=[r,n]}));n.push(o[2]=u);var i=r.p+r.u(t),a=Error();r.l(i,(function(n){if(r.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var u=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+u+": "+i+")",a.name="ChunkLoadError",a.type=u,a.request=i,o[1](a)}}),"chunk-"+t,t)}else e[t]=0},r.O.j=function(t){return 0===e[t]};var t=function(t,n){var o,u,i=n[0],a=n[1],c=n[2],f=0;if(i.some((function(t){return 0!==e[t]}))){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var l=c(r)}for(t&&t(n);f<i.length;f++)u=i[f],r.o(e,u)&&e[u]&&e[u][0](),e[u]=0;return r.O(l)},n=self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),r.ruid="bundler=rspack@1.0.0-alpha.5"})()</script><script defer="defer" src="/static/js/lib-react.c011fc71.js"></script><script defer="defer" src="/static/js/lib-polyfill.3da3e38e.js"></script><script defer="defer" src="/static/js/lib-antd.
|
|
1
|
+
<!doctype html><html><head><title></title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,viewport-fit=cover,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="renderer" content="webkit"><meta name="layoutmode" content="standard"><meta name="imagemode" content="force"><meta name="wap-font-scale" content="no"><meta name="format-detection" content="telephone=no"><script defer="defer">(()=>{"use strict";var e={},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.m=e,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(n,o){if(1&o&&(n=this(n)),8&o||"object"==typeof n&&n&&(4&o&&n.__esModule||16&o&&"function"==typeof n.then))return n;var u=Object.create(null);r.r(u);var i={};e=e||[null,t({}),t([]),t(t)];for(var a=2&o&&n;"object"==typeof a&&!~e.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((function(e){i[e]=function(){return n[e]}}));return i.default=function(){return n},r.d(u,i),u}})(),r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(t,n){return r.f[n](e,t),t}),[]))},r.u=function(e){return"static/js/async/"+e+"."+{16:"8b96d0ce",212:"b25a2c30",353:"78fcb703",399:"84fa60a7",453:"782b249a",544:"ee973964",983:"ef821e39"}[e]+".js"},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},(()=>{var e={},t="@midscene/visualizer-report:";r.l=function(n,o,u,i){if(e[n])e[n].push(o);else{if(void 0!==u)for(var a,c,f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var s=f[l];if(s.getAttribute("src")==n||s.getAttribute("data-webpack")==t+u){a=s;break}}!a&&(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",t+u),a.src=n),e[n]=[o];var d=function(t,r){a.onerror=a.onload=null,clearTimeout(p);var o=e[n];if(delete e[n],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(r)})),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e=[];r.O=function(t,n,o,u){if(!n){var i=1/0;for(l=0;l<e.length;l++){n=e[l][0],o=e[l][1],u=e[l][2];for(var a=!0,c=0;c<n.length;c++)(!1&u||i>=u)&&Object.keys(r.O).every((function(e){return r.O[e](n[c])}))?n.splice(c--,1):(a=!1,u<i&&(i=u));if(a){e.splice(l--,1);var f=o();void 0!==f&&(t=f)}}return t}u=u||0;for(var l=e.length;l>0&&e[l-1][2]>u;l--)e[l]=e[l-1];e[l]=[n,o,u]}})(),r.p="/",r.rv=function(){return"1.0.0-alpha.5"},(()=>{var e={242:0};r.f.j=function(t,n){var o=r.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else if(242!=t){var u=new Promise((function(r,n){o=e[t]=[r,n]}));n.push(o[2]=u);var i=r.p+r.u(t),a=Error();r.l(i,(function(n){if(r.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var u=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+u+": "+i+")",a.name="ChunkLoadError",a.type=u,a.request=i,o[1](a)}}),"chunk-"+t,t)}else e[t]=0},r.O.j=function(t){return 0===e[t]};var t=function(t,n){var o,u,i=n[0],a=n[1],c=n[2],f=0;if(i.some((function(t){return 0!==e[t]}))){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var l=c(r)}for(t&&t(n);f<i.length;f++)u=i[f],r.o(e,u)&&e[u]&&e[u][0](),e[u]=0;return r.O(l)},n=self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),r.ruid="bundler=rspack@1.0.0-alpha.5"})()</script><script defer="defer" src="/static/js/lib-react.c011fc71.js"></script><script defer="defer" src="/static/js/lib-polyfill.3da3e38e.js"></script><script defer="defer" src="/static/js/lib-antd.583c9200.js"></script><script defer="defer" src="/static/js/lib-router.226970ff.js"></script><script defer="defer" src="/static/js/160.5ac2287a.js"></script><script defer="defer" src="/static/js/index.e71be3a2.js"></script><link href="/static/css/index.eccd04e1.css" rel="stylesheet"></head><body><div id="root"><!--<?- html ?>--></div><!--<?- chunksMap.js ?>--><!--<?- SSRDataScript ?>--></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.nav-u66WwU{margin:20px 0;max-width:680px}.container-Hq9bKt{margin:0 auto;max-width:980px}.test-result-pnK7ny{margin-top:40px}.test-details-UpOFMM{border-top:1px solid #ccc;cursor:pointer;margin-top:-1px;padding:20px}.test-details-UpOFMM:hover{background-color:#d3d3d3}.test-info-AphlaH{display:flex}.test-name-us3J87{flex-grow:1;font-size:medium;font-weight:700}.failed-LIeQqO{font-size:small}.test-file-path-BdYiH4{color:#6e7781;margin-top:10px}.test-result{background-color:#f9f9f9;border:1px solid #ccc;border-radius:8px;font-family:Arial,sans-serif;margin:20px;padding:20px}.test-summary{margin-bottom:20px}.test-summary div{margin:5px 0}.test-file,.test-project,.test-status,.test-time{font-weight:700}.test-status.failed{color:red}.test-details{margin-top:20px}.test-name{font-size:1.2em;margin-bottom:10px}.test-duration{color:#555}.ant-collapse-content-box{padding:0!important}body,html{margin:0;padding:0}.rspress-nav{transition:.2s}:root{--modern-sidebar-width:0!important;--modern-aside-width:0!important;--modern-preview-padding:0!important}.modern-doc,.modern-doc-layout{height:100vh;margin:0!important;padding:0!important;width:100%!important}.modern-sidebar,header.w-full{display:none!important}.modern-doc-container{padding:0!important}footer.mt-8{display:none}.page-container{border-bottom:1px solid #e5e5e5;border-top:1px solid #e5e5e5;color:#3b3b3b;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;height:100%}.ant-layout{flex-grow:1;height:100%}.main-right{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.main-right .main-content{background:#fff;display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.main-right.uploader-wrapper{box-sizing:border-box;flex-direction:column;justify-content:center;margin:auto;max-width:800px}.main-right.uploader-wrapper .uploader{width:100%}.main-right.uploader-wrapper .demo-loader{margin-top:10px;text-align:center;width:100%}.main-right .main-canvas-container{background:#fff;border-left:1px solid #e5e5e5;flex-grow:1;height:100%;overflow-x:hidden;overflow-y:scroll}.main-right .main-side{box-sizing:border-box;overflow-y:scroll}.main-right .json-content{word-wrap:break-word;white-space:pre-wrap}.detail-side h2{margin-bottom:4px;margin-top:0;padding-top:0}.detail-side .ant-tag{margin-top:2px}.detail-side .meta-kv{padding:10px 10px 14px}.detail-side .meta-kv .meta{box-sizing:border-box;display:flex;flex-direction:row;line-height:1.5;padding:2px 0;width:100%}.detail-side .meta-kv .meta .meta-key{padding-right:16px;text-align:right;width:100px}.detail-side .meta-kv .meta .meta-value{flex:1 1}.detail-side .item-list{cursor:default;margin-bottom:10px;padding:10px 10px}.detail-side .item-list .item{border:1px solid #ddd;border-radius:5px;margin-bottom:10px;padding:16px 10px 10px;position:relative;transition:.1s}.detail-side .item-list .item.item-lite{border:none;padding:0}.detail-side .item-list .item-highlight{color:#fff}.detail-side .item-list .item-highlight .subtitle{color:#ccc}.detail-side .item-list .item-extra{color:#777;position:absolute;right:10px;top:10px}.detail-side .item-list .title-right-padding{padding-right:15px}.detail-side .item-list .title{font-size:18px;font-weight:700;margin-bottom:5px}.detail-side .item-list .title .title-tag{color:#777;display:inline-block;font-size:14px;line-height:18px;margin-left:6px}.detail-side .item-list .subtitle{color:#777;font-size:14px;font-weight:400}.detail-side .item-list .description{margin-top:5px}.detail-side .item-list .description-content{font-size:14px;margin-top:10px;white-space:break-spaces;word-wrap:break-word;margin:0}.detail-side .item-list .element-button:hover{background:#f9483e;color:#fff}.detail-side .item-list .section-button:hover{background:#01204e;color:#fff}.detail-side pre{text-wrap:balance}.detail-side .item-list-space-up{margin-top:10px}.task-list-name{background:#f8f8f8;border-bottom:1px solid #e5e5e5;border-top:1px solid #e5e5e5;font-weight:700;margin-top:-1px;padding:2px 10px}.side-bar{background:#f8f8f8;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;height:100%;justify-content:space-between;overflow:auto;width:100%}.side-bar .brand{cursor:pointer;display:flex;padding:10px 5px}.side-bar .task-meta-section{margin-top:6px}.side-bar .task-meta{color:#777;font-weight:400;padding-left:10px}.side-bar .side-seperator{border-top:1px none}.side-bar .side-seperator.side-seperator-line{border-top:1px solid #e5e5e5}.side-bar .side-seperator.side-seperator-space-up{margin-top:10px}.side-bar .side-seperator.side-seperator-space-down{margin-bottom:10px}.side-bar .side-sub-title{margin-bottom:6px;padding:0 10px}.side-bar .side-item{cursor:pointer;padding:2px 0;transition:.1s}.side-bar .side-item:hover{background:#dcdcdc80}.side-bar .side-item.selected{background:#bfc4da80}.side-bar .side-item .side-item-content{padding:0 10px 0 26px}.side-bar .side-item-name{display:flex;justify-content:space-between;padding:0 10px 0 26px;position:relative}.side-bar .side-item-name .status-icon{color:#aaa;display:inline-block;font-size:10px;left:10px;line-height:10px;margin-top:-5px;position:absolute;top:50%}.side-bar .side-item-name .status-icon-success{color:#2b8243}.side-bar .side-item-name .status-icon-fail{color:#ff0a0a}.side-bar .side-item-name .status-text{color:#777}.side-bar .bottom-controls{padding:10px 10px;text-align:left;text-align:center}.detail-panel{background:#fff;display:flex;flex-direction:column;height:100%;padding:10px}.detail-panel .ant-segmented{padding:0}.detail-panel .view-switcher{flex-shrink:0;margin-bottom:10px}.detail-panel .detail-content{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center}.detail-panel .blackboard{margin:0 auto}.detail-panel .screenshot-item{margin-bottom:10px}.detail-panel .screenshot-item .screenshot-item-title{margin-bottom:5px}.detail-panel .screenshot-item img{border:1px solid #888;max-width:100%}.blackboard .footer{color:#aaa}.blackboard ul{padding-left:0}.blackboard li{list-style:none}.blackboard .bottom-tip{height:30px}.blackboard .bottom-tip-item{color:#aaa;max-width:500px;text-overflow:ellipsis;word-wrap:break-word}.blackboard-filter{margin:10px 0}.blackboard-main-content canvas{border:1px solid #888;width:100%}.global-hover-preview{background:#f8f8f8;border:1px solid #e5e5e5;box-shadow:1px 1px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;display:block;max-height:400px;max-width:400px;overflow:hidden;position:fixed;text-align:center;z-index:10}.global-hover-preview img{height:auto;max-height:400px;max-width:400px;width:auto}.timeline-wrapper{border-bottom:1px solid #e5e5e5;box-sizing:border-box;flex-basis:110px;flex-grow:0;flex-shrink:0;position:relative}.timeline-wrapper,.timeline-wrapper .timeline-canvas-wrapper,.timeline-wrapper canvas{height:100%;width:100%}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/index.eccd04e1.css","sources":["webpack://@midscene/visualizer-report/./src/pages/Home.module.css","webpack://@midscene/visualizer-report/./src/pages/TestResult.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/index.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-side.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/panel-title.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/sidebar.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-panel.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/blackboard.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/global-hover-preview.css","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/timeline.css"],"sourcesContent":[".nav {\n /* display: flex;\n justify-content: center; */\n max-width: 680px;\n margin: 20px 0;\n}\n\n.container {\n max-width: 980px;\n margin: 0 auto;\n}\n\n.test-result {\n margin-top: 40px;\n}\n\n\n.test-details {\n margin-top: -1px;\n cursor: pointer;\n padding: 20px;\n border-top: 1px solid #ccc;\n}\n.test-details:hover {\n background-color: #d3d3d3;\n}\n\n.test-info {\n display: flex;\n}\n.test-name{\n flex-grow: 1;\n font-weight: bold;\n font-size: medium;\n}\n\n.failed{\n font-size: small;\n}\n.test-file-path {\n color: #6e7781;\n margin-top: 10px;\n}",".test-result {\n font-family: Arial, sans-serif;\n margin: 20px;\n padding: 20px;\n border: 1px solid #ccc;\n border-radius: 8px;\n background-color: #f9f9f9;\n}\n\n.test-summary {\n margin-bottom: 20px;\n}\n\n.test-summary div {\n margin: 5px 0;\n}\n\n.test-project,\n.test-file,\n.test-status,\n.test-time {\n font-weight: bold;\n}\n\n.test-status.failed {\n color: red;\n}\n\n.test-details {\n margin-top: 20px;\n}\n\n.test-name {\n font-size: 1.2em;\n margin-bottom: 10px;\n}\n\n.test-duration {\n color: #555;\n}\n\n.ant-collapse-content-box {\n padding: 0!important;\n}","html,\nbody {\n padding: 0;\n margin: 0;\n}\n.rspress-nav {\n transition: 0.2s;\n}\n:root {\n --modern-sidebar-width: 0 !important;\n --modern-aside-width: 0 !important;\n --modern-preview-padding: 0 !important;\n}\n.modern-doc-layout,\n.modern-doc {\n width: 100% !important;\n margin: 0 !important;\n padding: 0 !important;\n height: 100vh;\n}\n.modern-sidebar,\nheader.w-full {\n display: none !important;\n}\n.modern-doc-container {\n padding: 0 !important;\n}\nfooter.mt-8 {\n display: none;\n}\n.page-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n color: #3b3b3b;\n font-family:\n -apple-system,\n BlinkMacSystemFont,\n \"Segoe UI\",\n \"Noto Sans\",\n Helvetica,\n Arial,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\";\n font-size: 14px;\n border-top: 1px solid #E5E5E5;\n border-bottom: 1px solid #E5E5E5;\n}\n.ant-layout {\n flex-grow: 1;\n height: 100%;\n}\n.main-right {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n.main-right .main-content {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n overflow: hidden;\n background: #FFF;\n}\n.main-right.uploader-wrapper {\n box-sizing: border-box;\n margin: auto;\n max-width: 800px;\n flex-direction: column;\n justify-content: center;\n}\n.main-right.uploader-wrapper .uploader {\n width: 100%;\n}\n.main-right.uploader-wrapper .demo-loader {\n width: 100%;\n text-align: center;\n margin-top: 10px;\n}\n.main-right .main-canvas-container {\n flex-grow: 1;\n height: 100%;\n background: #ffffff;\n overflow-x: hidden;\n overflow-y: scroll;\n border-left: 1px solid #E5E5E5;\n}\n.main-right .main-side {\n box-sizing: border-box;\n overflow-y: scroll;\n}\n.main-right .json-content {\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n",".detail-side h2 {\n padding-top: 0;\n margin-top: 0;\n margin-bottom: 4px;\n}\n.detail-side .ant-tag {\n margin-top: 2px;\n}\n.detail-side .meta-kv {\n padding: 10px 10px calc(10px + 4px);\n}\n.detail-side .meta-kv .meta {\n box-sizing: border-box;\n padding: 2px 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n line-height: 1.5;\n}\n.detail-side .meta-kv .meta .meta-key {\n width: 100px;\n text-align: right;\n padding-right: 16px;\n}\n.detail-side .meta-kv .meta .meta-value {\n flex: 1 1;\n}\n.detail-side .item-list {\n padding: 10px 10px;\n cursor: default;\n margin-bottom: 10px;\n}\n.detail-side .item-list .item {\n padding: 16px 10px 10px;\n transition: 0.1s;\n border: 1px solid #DDD;\n border-radius: 5px;\n margin-bottom: 10px;\n position: relative;\n}\n.detail-side .item-list .item.item-lite {\n border: none;\n padding: 0;\n}\n.detail-side .item-list .item-highlight {\n color: #FFF;\n}\n.detail-side .item-list .item-highlight .subtitle {\n color: #CCC;\n}\n.detail-side .item-list .item-extra {\n position: absolute;\n right: 10px;\n top: 10px;\n color: #777;\n}\n.detail-side .item-list .title-right-padding {\n padding-right: 15px;\n}\n.detail-side .item-list .title {\n font-size: 18px;\n font-weight: bold;\n margin-bottom: 5px;\n}\n.detail-side .item-list .title .title-tag {\n display: inline-block;\n margin-left: 6px;\n color: #777;\n font-size: 14px;\n line-height: 18px;\n}\n.detail-side .item-list .subtitle {\n font-weight: normal;\n font-size: 14px;\n color: #777;\n}\n.detail-side .item-list .description {\n margin-top: 5px;\n}\n.detail-side .item-list .description-content {\n font-size: 14px;\n margin-top: 10px;\n white-space: break-spaces;\n word-wrap: break-word;\n margin: 0;\n}\n.detail-side .item-list .element-button:hover {\n color: #fff;\n background: #F9483E;\n}\n.detail-side .item-list .section-button:hover {\n color: #fff;\n background: #01204E;\n}\n.detail-side pre {\n text-wrap: balance;\n}\n.detail-side .item-list-space-up {\n margin-top: 10px;\n}\n",".task-list-name {\n padding: 2px 10px;\n font-weight: bold;\n background: #F8F8F8;\n border-top: 1px solid #E5E5E5;\n border-bottom: 1px solid #E5E5E5;\n margin-top: -1px;\n}\n",".side-bar {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n border-right: 1px solid #E5E5E5;\n overflow: auto;\n background: #F8F8F8;\n}\n.side-bar .brand {\n padding: 10px 5px;\n cursor: pointer;\n display: flex;\n}\n.side-bar .task-meta-section {\n margin-top: 6px;\n}\n.side-bar .task-meta {\n color: #777;\n font-weight: normal;\n padding-left: 10px;\n}\n.side-bar .side-seperator {\n border-top: 1px solid none;\n}\n.side-bar .side-seperator.side-seperator-line {\n border-top: 1px solid #E5E5E5;\n}\n.side-bar .side-seperator.side-seperator-space-up {\n margin-top: 10px;\n}\n.side-bar .side-seperator.side-seperator-space-down {\n margin-bottom: 10px;\n}\n.side-bar .side-sub-title {\n padding: 0 10px;\n margin-bottom: 6px;\n}\n.side-bar .side-item {\n cursor: pointer;\n transition: 0.1s;\n padding: 2px 0;\n}\n.side-bar .side-item:hover {\n background: #dcdcdc80;\n}\n.side-bar .side-item.selected {\n background: #bfc4da80;\n}\n.side-bar .side-item .side-item-content {\n padding: 0 10px 0 calc(10px + 16px);\n}\n.side-bar .side-item-name {\n padding: 0 10px 0 calc(10px + 16px);\n position: relative;\n display: flex;\n justify-content: space-between;\n}\n.side-bar .side-item-name .status-icon {\n position: absolute;\n left: 10px;\n display: inline-block;\n color: #AAA;\n font-size: 10px;\n line-height: 10px;\n top: 50%;\n margin-top: -5px;\n}\n.side-bar .side-item-name .status-icon-success {\n color: #2B8243;\n}\n.side-bar .side-item-name .status-icon-fail {\n color: #ff0a0a;\n}\n.side-bar .side-item-name .status-text {\n color: #777;\n}\n.side-bar .bottom-controls {\n padding: 10px 10px;\n text-align: left;\n text-align: center;\n}\n",".detail-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 10px;\n background: #FFF;\n}\n.detail-panel .ant-segmented {\n padding: 0;\n}\n.detail-panel .view-switcher {\n margin-bottom: 10px;\n flex-shrink: 0;\n}\n.detail-panel .detail-content {\n box-sizing: border-box;\n justify-content: center;\n flex-direction: column;\n display: flex;\n flex-grow: 1;\n}\n.detail-panel .blackboard {\n margin: 0 auto;\n}\n.detail-panel .screenshot-item {\n margin-bottom: 10px;\n}\n.detail-panel .screenshot-item .screenshot-item-title {\n margin-bottom: 5px;\n}\n.detail-panel .screenshot-item img {\n border: 1px solid #888;\n max-width: 100%;\n}\n",".blackboard .footer {\n color: #aaa;\n}\n.blackboard ul {\n padding-left: 0px;\n}\n.blackboard li {\n list-style: none;\n}\n.blackboard .bottom-tip {\n height: 30px;\n}\n.blackboard .bottom-tip-item {\n max-width: 500px;\n color: #AAA;\n text-overflow: ellipsis;\n word-wrap: break-word;\n}\n.blackboard-filter {\n margin: 10px 0;\n}\n.blackboard-main-content canvas {\n width: 100%;\n border: 1px solid #888;\n}\n",".global-hover-preview {\n position: fixed;\n display: block;\n max-width: 400px;\n max-height: 400px;\n overflow: hidden;\n z-index: 10;\n text-align: center;\n border: 1px solid #E5E5E5;\n box-sizing: border-box;\n background: #F8F8F8;\n box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.2);\n}\n.global-hover-preview img {\n max-width: 400px;\n max-height: 400px;\n width: auto;\n height: auto;\n}\n",".timeline-wrapper {\n flex-basis: 110px;\n flex-grow: 0;\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n border-bottom: 1px solid #E5E5E5;\n position: relative;\n box-sizing: border-box;\n}\n.timeline-wrapper .timeline-canvas-wrapper {\n width: 100%;\n height: 100%;\n}\n.timeline-wrapper canvas {\n width: 100%;\n height: 100%;\n}\n"],"names":[],"mappings":"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"}
|