android-midscene-automation 0.1.30 → 0.1.32
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/CHANGELOG.md +16 -26
- package/README.md +16 -26
- package/bin/sync-readme-docs.mjs +49 -0
- package/index.html +1 -1
- package/package.json +8 -8
- package/remote-agent/index.ts +1 -1
- package/server/appium-recorder/appium-runner.ts +97 -43
- package/server/appium-recorder/bounded-loop.ts +118 -0
- package/server/appium-recorder/history-capture.ts +34 -0
- package/server/appium-recorder/report.ts +1 -1
- package/server/appium-recorder/repository.ts +9 -0
- package/server/appium-recorder/routes.ts +29 -5
- package/server/appium-recorder/run-history.ts +34 -0
- package/src/appium-recorder/AppiumPage.vue +114 -54
- package/src/appium-recorder/RunHistoryDialog.vue +153 -0
- package/src/appium-recorder/bounded-loop.ts +66 -0
- package/src/appium-recorder/components/BreakLoopSettings.vue +29 -0
- package/src/appium-recorder/components/ComponentInspector.vue +26 -0
- package/src/appium-recorder/components/ComponentTree.vue +24 -4
- package/src/appium-recorder/components/FlowCanvas.vue +19 -1
- package/src/appium-recorder/components/FlowNodeCard.vue +6 -3
- package/src/appium-recorder/components/FlowNodeSearch.vue +62 -0
- package/src/appium-recorder/components/FlowStepEditor.vue +9 -4
- package/src/appium-recorder/components/LoopSettings.vue +37 -0
- package/src/appium-recorder/components/NestedConditionBranches.vue +11 -3
- package/src/appium-recorder/components/NodeDetail.vue +30 -6
- package/src/appium-recorder/components/RecordedSteps.vue +24 -4
- package/src/appium-recorder/components/RecorderWorkspace.vue +132 -0
- package/src/appium-recorder/components/VisualChangeEndPicker.vue +21 -0
- package/src/appium-recorder/flow-copy.ts +1 -0
- package/src/appium-recorder/flow-graph.ts +4 -9
- package/src/appium-recorder/flow-labels.ts +7 -0
- package/src/appium-recorder/flow-merge.ts +3 -2
- package/src/appium-recorder/flow-normalize.ts +1 -0
- package/src/appium-recorder/flow-search.ts +29 -0
- package/src/appium-recorder/node-locators.ts +25 -0
- package/src/appium-recorder/run-history.ts +50 -0
- package/src/appium-recorder/tree.ts +2 -5
- package/src/appium-recorder/types.ts +7 -0
- package/src/appium-recorder/visual-change-pairs.ts +16 -10
- package/src/components/device/DevicePreviewPanel.vue +62 -10
- package/src/style.css +24 -7
- package/src/ui-refresh.css +40 -0
package/src/style.css
CHANGED
|
@@ -1401,6 +1401,7 @@ select {
|
|
|
1401
1401
|
|
|
1402
1402
|
.appium-replay-dialog.el-dialog {
|
|
1403
1403
|
display: flex;
|
|
1404
|
+
padding: 16px;
|
|
1404
1405
|
width: min(820px, calc(100vw - 32px)) !important;
|
|
1405
1406
|
height: min(620px, calc(100vh - 64px));
|
|
1406
1407
|
min-width: 420px;
|
|
@@ -1421,8 +1422,16 @@ select {
|
|
|
1421
1422
|
flex: 1 1 auto;
|
|
1422
1423
|
min-height: 0;
|
|
1423
1424
|
overflow: hidden;
|
|
1424
|
-
padding
|
|
1425
|
-
|
|
1425
|
+
padding: 8px 0 0;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
.appium-replay-dialog > .el-dialog__header {
|
|
1429
|
+
padding: 0 0 16px;
|
|
1430
|
+
border-bottom: 0;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.appium-replay-dialog > .el-dialog__footer {
|
|
1434
|
+
padding: 16px 0 0;
|
|
1426
1435
|
}
|
|
1427
1436
|
|
|
1428
1437
|
.appium-replay-dialog .appium-replay-output {
|
|
@@ -2882,6 +2891,11 @@ select {
|
|
|
2882
2891
|
width: 340px;
|
|
2883
2892
|
}
|
|
2884
2893
|
|
|
2894
|
+
.appium-flow-graph-node--search-highlighted .appium-flow-step-card {
|
|
2895
|
+
outline: 3px solid #168aad;
|
|
2896
|
+
outline-offset: 4px;
|
|
2897
|
+
}
|
|
2898
|
+
|
|
2885
2899
|
.appium-flow-graph-node--insert {
|
|
2886
2900
|
width: 34px;
|
|
2887
2901
|
height: 34px;
|
|
@@ -2913,12 +2927,15 @@ select {
|
|
|
2913
2927
|
bottom: 0;
|
|
2914
2928
|
}
|
|
2915
2929
|
|
|
2916
|
-
|
|
2930
|
+
/* Invisible split handles share one point; Vue Flow's 5px minimum creates a gap. */
|
|
2931
|
+
.appium-flow-graph-node--split .appium-flow-handle {
|
|
2932
|
+
width: 0;
|
|
2933
|
+
height: 0;
|
|
2934
|
+
min-width: 0;
|
|
2935
|
+
min-height: 0;
|
|
2917
2936
|
top: 50%;
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
.appium-flow-graph-node--split .appium-flow-handle--bottom {
|
|
2921
|
-
bottom: 50%;
|
|
2937
|
+
bottom: auto;
|
|
2938
|
+
transform: translate(-50%, -50%);
|
|
2922
2939
|
}
|
|
2923
2940
|
|
|
2924
2941
|
.appium-flow-start-card {
|
package/src/ui-refresh.css
CHANGED
|
@@ -530,6 +530,28 @@ body {
|
|
|
530
530
|
background: #111827;
|
|
531
531
|
}
|
|
532
532
|
|
|
533
|
+
.el-button.recorder-panel-tool {
|
|
534
|
+
--el-button-text-color: #606266;
|
|
535
|
+
--el-button-border-color: #dcdfe6;
|
|
536
|
+
--el-button-disabled-text-color: #a8abb2;
|
|
537
|
+
--el-button-disabled-border-color: #e4e7ed;
|
|
538
|
+
--el-color-primary: #409eff;
|
|
539
|
+
--el-color-primary-light-3: #79bbff;
|
|
540
|
+
--el-color-primary-light-5: #a0cfff;
|
|
541
|
+
--el-color-primary-light-7: #c6e2ff;
|
|
542
|
+
--el-color-primary-light-9: #ecf5ff;
|
|
543
|
+
--el-color-primary-dark-2: #337ecc;
|
|
544
|
+
width: 30px;
|
|
545
|
+
min-width: 30px;
|
|
546
|
+
height: 32px;
|
|
547
|
+
min-height: 32px;
|
|
548
|
+
padding: 0;
|
|
549
|
+
margin: 0;
|
|
550
|
+
border-radius: 3px;
|
|
551
|
+
font-size: 12px;
|
|
552
|
+
font-weight: 400;
|
|
553
|
+
}
|
|
554
|
+
|
|
533
555
|
/* Keep the Appium flow editor on its original Element Plus theme. */
|
|
534
556
|
.appium-recorded-steps-panel,
|
|
535
557
|
.appium-flow-dialog,
|
|
@@ -559,6 +581,10 @@ body {
|
|
|
559
581
|
}
|
|
560
582
|
|
|
561
583
|
.appium-flow-dialog.el-dialog {
|
|
584
|
+
display: flex;
|
|
585
|
+
flex-direction: column;
|
|
586
|
+
height: 86dvh;
|
|
587
|
+
max-height: calc(100dvh - 32px);
|
|
562
588
|
overflow: visible;
|
|
563
589
|
padding: 16px;
|
|
564
590
|
border: 0;
|
|
@@ -567,6 +593,7 @@ body {
|
|
|
567
593
|
}
|
|
568
594
|
|
|
569
595
|
.appium-flow-dialog .el-dialog__header {
|
|
596
|
+
flex: none;
|
|
570
597
|
padding: 0 0 16px;
|
|
571
598
|
border-bottom: 0;
|
|
572
599
|
}
|
|
@@ -577,9 +604,22 @@ body {
|
|
|
577
604
|
}
|
|
578
605
|
|
|
579
606
|
.appium-flow-dialog .el-dialog__body {
|
|
607
|
+
display: flex;
|
|
608
|
+
flex-direction: column;
|
|
609
|
+
flex: 1;
|
|
610
|
+
min-height: 0;
|
|
580
611
|
padding: 8px 0 0;
|
|
581
612
|
}
|
|
582
613
|
|
|
614
|
+
.appium-flow-dialog__toolbar { flex: none; }
|
|
615
|
+
|
|
616
|
+
/* Keep the canvas within the centered dialog even on short viewports. */
|
|
617
|
+
.appium-flow-dialog .appium-flow-canvas--dialog.appium-flow-canvas--vue {
|
|
618
|
+
flex: 1;
|
|
619
|
+
height: auto;
|
|
620
|
+
min-height: 0;
|
|
621
|
+
}
|
|
622
|
+
|
|
583
623
|
.appium-flow-dialog .el-dialog__footer {
|
|
584
624
|
padding: 16px 0 0;
|
|
585
625
|
}
|