From 6fd59e04ea3d1452312f981fdb6bd694fe0fa1b3 Mon Sep 17 00:00:00 2001 From: avmushtukov Date: Fri, 27 Sep 2024 18:00:15 +0300 Subject: [PATCH] add scroll actions and change item actions in gallery commit_hash:87014adfd73ebb2d79314c9119fc534c54902f75 --- .mapping.json | 62 ++ .../actions/DivActionTypedScrollHandler.kt | 75 ++ .../div/core/dagger/DivActionTypedModule.kt | 8 + .../view2/items/DivItemChangeActionHandler.kt | 140 ++-- .../div/core/view2/items/DivViewWithItems.kt | 66 +- .../view2/items/DivViewWithItemsController.kt | 71 ++ .../div-gallery/typed-actions/step0.png | Bin 0 -> 2516 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 2020 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 2416 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 2333 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 2019 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 2305 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 3443 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 2698 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 3248 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 3101 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 2696 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 3090 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 3361 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 2688 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 3259 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 3061 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 2682 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 3032 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 3353 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 2685 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 3247 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 3055 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 2684 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 3049 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 3361 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 2688 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 3259 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 3061 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 2682 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 3032 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 2398 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 1906 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 2200 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 2116 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 1904 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 2204 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 2404 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 1908 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 2192 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 2114 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 1906 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 2200 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 2398 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 1906 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 2200 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 2116 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 1904 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 2204 bytes .../div-gallery/typed-actions/step0.png | Bin 0 -> 2404 bytes .../div-gallery/typed-actions/step1.png | Bin 0 -> 1908 bytes .../div-gallery/typed-actions/step2.png | Bin 0 -> 2192 bytes .../div-gallery/typed-actions/step4.png | Bin 0 -> 2114 bytes .../div-gallery/typed-actions/step7.png | Bin 0 -> 1906 bytes .../div-gallery/typed-actions/step9.png | Bin 0 -> 2200 bytes schema/div-action-scroll-base.json | 13 + schema/div-action-scroll-by.json | 45 ++ schema/div-action-scroll-destination.json | 89 +++ schema/div-action-scroll-to.json | 31 + schema/div-action-typed.json | 6 + schema/translations.json | 60 ++ .../div-gallery/typed-actions.json | 217 ++++++ .../gallery/gallery-item-actions-typed.json | 718 ++++++++++++++++++ test_data/regression_test_data/index.json | 18 + 69 files changed, 1524 insertions(+), 95 deletions(-) create mode 100644 client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt create mode 100644 client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png create mode 100644 client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png create mode 100644 schema/div-action-scroll-base.json create mode 100644 schema/div-action-scroll-by.json create mode 100644 schema/div-action-scroll-destination.json create mode 100644 schema/div-action-scroll-to.json create mode 100644 test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json create mode 100644 test_data/regression_test_data/gallery/gallery-item-actions-typed.json diff --git a/.mapping.json b/.mapping.json index dae2139df..e64858c38 100644 --- a/.mapping.json +++ b/.mapping.json @@ -1032,6 +1032,7 @@ "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerCombiner.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerCombiner.kt", "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerProxy.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerProxy.kt", "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHideTooltipHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHideTooltipHandler.kt", + "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt", "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStateHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStateHandler.kt", "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStoredValueHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStoredValueHandler.kt", "client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetVariableHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetVariableHandler.kt", @@ -1297,6 +1298,7 @@ "client/android/div/src/main/java/com/yandex/div/core/view2/errors/ErrorVisualMonitor.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/errors/ErrorVisualMonitor.kt", "client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt", "client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt", + "client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt", "client/android/div/src/main/java/com/yandex/div/core/view2/items/OverflowItemStrategy.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/OverflowItemStrategy.kt", "client/android/div/src/main/java/com/yandex/div/core/view2/logging/EventMessageBuilder.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/logging/EventMessageBuilder.kt", "client/android/div/src/main/java/com/yandex/div/core/view2/logging/bind/BindingEventReporter.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/logging/bind/BindingEventReporter.kt", @@ -1958,6 +1960,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -2862,6 +2870,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -3766,6 +3780,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -4670,6 +4690,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -5574,6 +5600,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -6478,6 +6510,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -7382,6 +7420,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -8286,6 +8330,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -9190,6 +9240,12 @@ "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png", + "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png", "client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png", @@ -16825,6 +16881,10 @@ "schema/div-action-download.json":"divkit/public/schema/div-action-download.json", "schema/div-action-focus-element.json":"divkit/public/schema/div-action-focus-element.json", "schema/div-action-hide-tooltip.json":"divkit/public/schema/div-action-hide-tooltip.json", + "schema/div-action-scroll-base.json":"divkit/public/schema/div-action-scroll-base.json", + "schema/div-action-scroll-by.json":"divkit/public/schema/div-action-scroll-by.json", + "schema/div-action-scroll-destination.json":"divkit/public/schema/div-action-scroll-destination.json", + "schema/div-action-scroll-to.json":"divkit/public/schema/div-action-scroll-to.json", "schema/div-action-set-state.json":"divkit/public/schema/div-action-set-state.json", "schema/div-action-set-stored-value.json":"divkit/public/schema/div-action-set-stored-value.json", "schema/div-action-set-variable.json":"divkit/public/schema/div-action-set-variable.json", @@ -17164,6 +17224,7 @@ "test_data/interactive_snapshot_test_data/div-gallery/scroll-actions.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/scroll-actions.json", "test_data/interactive_snapshot_test_data/div-gallery/select-elements.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/select-elements.json", "test_data/interactive_snapshot_test_data/div-gallery/specific-properties.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/specific-properties.json", + "test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json", "test_data/interactive_snapshot_test_data/div-gallery/visibility.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/visibility.json", "test_data/interactive_snapshot_test_data/div-image/blur.json":"divkit/public/test_data/interactive_snapshot_test_data/div-image/blur.json", "test_data/interactive_snapshot_test_data/div-indicator/shapes.json":"divkit/public/test_data/interactive_snapshot_test_data/div-indicator/shapes.json", @@ -17324,6 +17385,7 @@ "test_data/regression_test_data/gallery/gallery-bottom-multiline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-bottom-multiline.json", "test_data/regression_test_data/gallery/gallery-bottom-singleline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-bottom-singleline.json", "test_data/regression_test_data/gallery/gallery-columns.json":"divkit/public/test_data/regression_test_data/gallery/gallery-columns.json", + "test_data/regression_test_data/gallery/gallery-item-actions-typed.json":"divkit/public/test_data/regression_test_data/gallery/gallery-item-actions-typed.json", "test_data/regression_test_data/gallery/gallery-item-actions.json":"divkit/public/test_data/regression_test_data/gallery/gallery-item-actions.json", "test_data/regression_test_data/gallery/gallery-items-posing.json":"divkit/public/test_data/regression_test_data/gallery/gallery-items-posing.json", "test_data/regression_test_data/gallery/gallery-top-multiline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-top-multiline.json", diff --git a/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt b/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt new file mode 100644 index 000000000..42cf9022f --- /dev/null +++ b/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt @@ -0,0 +1,75 @@ +package com.yandex.div.core.actions + +import com.yandex.div.core.view2.Div2View +import com.yandex.div.core.view2.items.DivViewWithItemsController +import com.yandex.div.json.expressions.ExpressionResolver +import com.yandex.div2.DivActionScrollBy +import com.yandex.div2.DivActionScrollDestination +import com.yandex.div2.DivActionScrollTo +import com.yandex.div2.DivActionTyped +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +internal class DivActionTypedScrollHandler @Inject constructor() : DivActionTypedHandler { + + override fun handleAction( + scopeId: String?, + action: DivActionTyped, + view: Div2View, + resolver: ExpressionResolver + ): Boolean = when(action) { + is DivActionTyped.ScrollBy -> { + handleAction(action.value, view, resolver) + true + } + is DivActionTyped.ScrollTo -> { + handleAction(action.value, view, resolver) + true + } + else -> false + } + + private fun handleAction( + action: DivActionScrollBy, + view: Div2View, + resolver: ExpressionResolver + ) { + val id = action.id.evaluate(resolver) + val offset = action.offset.evaluate(resolver).toInt() + val step = action.itemCount.evaluate(resolver).toInt() + val overflow = DivActionScrollBy.Overflow.toString(action.overflow.evaluate(resolver)) + val animated = action.animated.evaluate(resolver) + + val viewController = DivViewWithItemsController.create(id, view, resolver) ?: return + viewController.changeCurrentItemByStep(overflow, step, animated) + viewController.scrollByOffset(overflow, offset, animated) + } + + private fun handleAction( + action: DivActionScrollTo, + view: Div2View, + resolver: ExpressionResolver + ) { + val id = action.id.evaluate(resolver) + val animated = action.animated.evaluate(resolver) + val viewController = DivViewWithItemsController.create(id, view, resolver) ?: return + + when(val destination = action.destination) { + is DivActionScrollDestination.Offset -> { + val offset = destination.value.value.evaluate(resolver).toInt() + viewController.scrollTo(offset, animated) + } + is DivActionScrollDestination.Index -> { + val index = destination.value.value.evaluate(resolver).toInt() + viewController.setCurrentItem(index, animated) + } + is DivActionScrollDestination.End -> { + viewController.scrollToEnd(animated) + } + is DivActionScrollDestination.Start -> { + viewController.scrollToStart(animated) + } + } + } +} diff --git a/client/android/div/src/main/java/com/yandex/div/core/dagger/DivActionTypedModule.kt b/client/android/div/src/main/java/com/yandex/div/core/dagger/DivActionTypedModule.kt index e732ea797..5b8371f6d 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/dagger/DivActionTypedModule.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/dagger/DivActionTypedModule.kt @@ -7,6 +7,7 @@ import com.yandex.div.core.actions.DivActionTypedDictSetValueHandler import com.yandex.div.core.actions.DivActionTypedFocusElementHandler import com.yandex.div.core.actions.DivActionTypedHandler import com.yandex.div.core.actions.DivActionTypedHideTooltipHandler +import com.yandex.div.core.actions.DivActionTypedScrollHandler import com.yandex.div.core.actions.DivActionTypedSetStateHandler import com.yandex.div.core.actions.DivActionTypedSetStoredValueHandler import com.yandex.div.core.actions.DivActionTypedSetVariableHandler @@ -39,6 +40,7 @@ internal interface DivActionTypedModule { impl: DivActionTypedClearFocusHandler ): DivActionTypedHandler + @Binds @IntoSet fun provideCopyToClipboardActionHandler( @@ -63,6 +65,12 @@ internal interface DivActionTypedModule { impl: DivActionTypedHideTooltipHandler ): DivActionTypedHandler + @Binds + @IntoSet + fun provideScrollActionHandler( + impl: DivActionTypedScrollHandler + ): DivActionTypedHandler + @Binds @IntoSet fun provideSetStateActionHandler( diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt index ce5e5554e..d9238426d 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt @@ -1,12 +1,9 @@ package com.yandex.div.core.view2.items import android.net.Uri -import android.util.DisplayMetrics -import android.view.View import com.yandex.div.core.DivViewFacade import com.yandex.div.internal.KAssert import com.yandex.div.json.expressions.ExpressionResolver -import com.yandex.div2.DivSizeUnit private const val AUTHORITY_SET_CURRENT_ITEM = "set_current_item" private const val AUTHORITY_NEXT_ITEM = "set_next_item" @@ -49,103 +46,86 @@ internal object DivItemChangeActionHandler { KAssert.fail { "$PARAM_ID param is required to set item" } return false } - val targetView = view.view.findViewWithTag(id) ?: return false val authority = uri.authority - val viewWithItems = DivViewWithItems.create(targetView, resolver) { direction(authority) } ?: return false + val viewController = DivViewWithItemsController.create(id, view, resolver, direction(authority)) ?: return false return when (authority) { AUTHORITY_SET_CURRENT_ITEM -> - handleSetCurrentItem(uri, viewWithItems) + handleSetCurrentItem(uri, viewController) AUTHORITY_NEXT_ITEM -> - handleNextItem(uri, viewWithItems) + handleNextItem(uri, viewController) AUTHORITY_PREVIOUS_ITEM -> - handlePreviousItem(uri, viewWithItems) + handlePreviousItem(uri, viewController) AUTHORITY_SCROLL_BACKWARD -> - handleScrollBackward(uri, viewWithItems) + handleScrollBackward(uri, viewController) AUTHORITY_SCROLL_FORWARD -> - handleScrollForward(uri, viewWithItems) + handleScrollForward(uri, viewController) AUTHORITY_SCROLL_TO_POSITION -> - handleScrollTo(uri, viewWithItems) + handleScrollTo(uri, viewController) AUTHORITY_SCROLL_TO_END -> - handleScrollToTheEnd(viewWithItems) + handleScrollToTheEnd(viewController) AUTHORITY_SCROLL_TO_START -> - handleScrollToTheStart(viewWithItems) + handleScrollToTheStart(viewController) else -> false } } - private fun handleSetCurrentItem(uri: Uri, view: DivViewWithItems): Boolean { - val item = uri.getQueryParameter(PARAM_ITEM) - if (item == null) { + private fun handleSetCurrentItem(uri: Uri, viewController: DivViewWithItemsController): Boolean { + val rawItem = uri.getQueryParameter(PARAM_ITEM) + if (rawItem == null) { KAssert.fail { "$PARAM_ITEM is required to set current item" } return false } - return try { - view.currentItem = item.toInt() - true + val item = try { + rawItem.toInt() } catch (e: NumberFormatException) { - KAssert.fail { "$item is not a number" } - false + KAssert.fail { "$rawItem is not a number" } + return false } - } - - private fun handleNextItem(uri: Uri, view: DivViewWithItems): Boolean { - return handleItemNavigation(uri, view) { strategy, step -> - view.currentItem = strategy.nextItem(step) - } - } - - private fun handlePreviousItem(uri: Uri, view: DivViewWithItems): Boolean { - return handleItemNavigation(uri, view) { strategy, step -> - view.currentItem = strategy.previousItem(step) - } - } - - - private fun handleScrollForward(uri: Uri, view: DivViewWithItems): Boolean { - return handleItemNavigation(uri, view) { strategy, step -> - view.scrollTo(strategy.positionAfterScrollBy(step)) - } - } - - private fun handleScrollBackward(uri: Uri, view: DivViewWithItems): Boolean { - return handleItemNavigation(uri, view) { strategy, step -> - view.scrollTo(strategy.positionAfterScrollBy(-step)) - } - } - - private fun handleScrollTo(uri: Uri, view: DivViewWithItems): Boolean { - return handleItemNavigation(uri, view) { _, step -> - view.scrollTo(step, DivSizeUnit.DP) - } - } - - private fun handleScrollToTheEnd(view: DivViewWithItems): Boolean { - view.scrollToTheEnd() + viewController.setCurrentItem(item) return true } - private fun handleScrollToTheStart(view: DivViewWithItems): Boolean { - view.currentItem = 0 - return true + private fun handleNextItem(uri: Uri, viewController: DivViewWithItemsController): Boolean { + return withOverflowAndStep(uri, viewController::changeCurrentItemByStep) } - private inline fun handleItemNavigation( - uri: Uri, - view: DivViewWithItems, - navigate: (strategy: OverflowItemStrategy, step: Int) -> Unit - ): Boolean { - val strategy = overflowStrategy(uri, view.currentItem, view.itemCount, view.scrollRange, - view.scrollOffset, view.metrics) + private fun handlePreviousItem(uri: Uri, viewController: DivViewWithItemsController): Boolean { + return withOverflowAndStep(uri) { overflow, step -> + viewController.changeCurrentItemByStep(overflow, -step) + } + } + + private fun handleScrollForward(uri: Uri, viewController: DivViewWithItemsController): Boolean { + return withOverflowAndStep(uri, viewController::scrollByOffset) + } + + private fun handleScrollBackward(uri: Uri, viewController: DivViewWithItemsController): Boolean { + return withOverflowAndStep(uri) { overflow, step -> + viewController.scrollByOffset(overflow, -step) + } + } + + private fun handleScrollTo(uri: Uri, viewController: DivViewWithItemsController): Boolean { val step = uri.getStepParam() - navigate(strategy, step) + viewController.scrollTo(step) + return true + } + + private fun handleScrollToTheEnd(viewController: DivViewWithItemsController): Boolean { + viewController.scrollToEnd() + return true + } + + private fun handleScrollToTheStart(viewController: DivViewWithItemsController): Boolean { + viewController.scrollToStart() return true } @@ -158,18 +138,22 @@ internal object DivItemChangeActionHandler { default } } -} -private fun overflowStrategy(uri: Uri, currentItem: Int, itemCount: Int, scrollRange: Int, - scrollOffset: Int, metrics: DisplayMetrics): OverflowItemStrategy { - val overflow = uri.getQueryParameter(PARAM_OVERFLOW) - return OverflowItemStrategy.create(overflow, currentItem, itemCount, scrollRange, scrollOffset, metrics) -} + private inline fun withOverflowAndStep( + uri: Uri, + actionOnViewController: (String?, Int) -> Unit + ): Boolean { + val step = uri.getStepParam() + val overflow = uri.getQueryParameter(PARAM_OVERFLOW) + actionOnViewController(overflow, step) + return true + } -private fun direction(authority: String?): Direction { - return when (authority) { - AUTHORITY_PREVIOUS_ITEM -> Direction.PREVIOUS - AUTHORITY_NEXT_ITEM -> Direction.NEXT - else -> Direction.NEXT + private fun direction(authority: String?): Direction { + return when (authority) { + AUTHORITY_PREVIOUS_ITEM -> Direction.PREVIOUS + AUTHORITY_NEXT_ITEM -> Direction.NEXT + else -> Direction.NEXT + } } } diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt index e71650db2..86c373489 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt @@ -49,12 +49,17 @@ internal sealed class DivViewWithItems { /** * Scroll to @param dp value. */ - open fun scrollTo(value: Int, sizeUnit: DivSizeUnit = DivSizeUnit.PX) = Unit + open fun scrollTo(value: Int, sizeUnit: DivSizeUnit = DivSizeUnit.PX, animated: Boolean = true) = Unit /** * Scroll to the end of recycler view. */ - open fun scrollToTheEnd() = Unit + open fun scrollToTheEnd(animated: Boolean = true) = Unit + + /** + * sets Current item without scroll animation + */ + open fun setCurrentItemNoAnimation(index: Int) = Unit /** * Implementation of [DivViewWithItems] specific for div gallery with `scroll_mode` "paging" @@ -75,9 +80,17 @@ internal sealed class DivViewWithItems { override val scrollRange get() = view.scrollRange() override val scrollOffset get() = view.scrollOffset() - override fun scrollTo(value: Int, sizeUnit: DivSizeUnit) = - view.scrollTo(value, sizeUnit, metrics) - override fun scrollToTheEnd() = view.scrollToTheEnd(metrics) + override fun scrollTo(value: Int, sizeUnit: DivSizeUnit, animated: Boolean) = + view.scrollTo(value, sizeUnit, metrics, animated) + override fun scrollToTheEnd(animated: Boolean) { + view.scrollToTheEnd(metrics, animated) + } + + override fun setCurrentItemNoAnimation(index: Int) { + checkItem(index, itemCount) { + view.scrollToPosition(index) + } + } } /** @@ -109,9 +122,15 @@ internal sealed class DivViewWithItems { override val scrollRange get() = view.scrollRange() override val scrollOffset get() = view.scrollOffset() - override fun scrollTo(value: Int, sizeUnit: DivSizeUnit) = - view.scrollTo(value, sizeUnit, metrics) - override fun scrollToTheEnd() = view.scrollToTheEnd(metrics) + override fun scrollTo(value: Int, sizeUnit: DivSizeUnit, animated: Boolean) = + view.scrollTo(value, sizeUnit, metrics, animated) + override fun scrollToTheEnd(animated: Boolean) = view.scrollToTheEnd(metrics, animated) + + override fun setCurrentItemNoAnimation(index: Int) { + checkItem(index, itemCount) { + view.scrollToPosition(index) + } + } } /** @@ -127,8 +146,14 @@ internal sealed class DivViewWithItems { override val itemCount: Int get() = view.viewPager.adapter?.itemCount ?: 0 - override fun scrollToTheEnd() { - view.viewPager.setCurrentItem(itemCount - 1, true) + override fun scrollToTheEnd(animated: Boolean) { + view.viewPager.setCurrentItem(itemCount - 1, animated) + } + + override fun setCurrentItemNoAnimation(index: Int) { + checkItem(index, itemCount) { + view.viewPager.setCurrentItem(index, false) + } } } @@ -145,8 +170,14 @@ internal sealed class DivViewWithItems { override val itemCount: Int get() = view.viewPager.adapter?.count ?: 0 - override fun scrollToTheEnd() { - view.viewPager.setCurrentItem(itemCount - 1, true) + override fun scrollToTheEnd(animated: Boolean) { + view.viewPager.setCurrentItem(itemCount - 1, animated) + } + + override fun setCurrentItemNoAnimation(index: Int) { + checkItem(index, itemCount) { + view.viewPager.setCurrentItem(index, false) + } } } @@ -206,16 +237,17 @@ private fun T.canScroll(): Boolean { } } -private fun T.scrollTo(value: Int, sizeUnit: DivSizeUnit, metrics: DisplayMetrics) { +private fun T.scrollTo(value: Int, sizeUnit: DivSizeUnit, metrics: DisplayMetrics, animated: Boolean = true) { val valuePx = when (sizeUnit) { DivSizeUnit.PX -> value DivSizeUnit.SP -> value.spToPx(metrics) DivSizeUnit.DP -> value.dpToPx(metrics) } val lm = linearLayoutManager ?: return + val scroll: (dx: Int, dy: Int) -> Unit = if (animated) this::smoothScrollBy else this::scrollBy when (lm.orientation) { - RecyclerView.HORIZONTAL -> smoothScrollBy(valuePx - computeHorizontalScrollOffset(), 0) - RecyclerView.VERTICAL -> smoothScrollBy(0, valuePx - computeVerticalScrollOffset()) + RecyclerView.HORIZONTAL -> scroll(valuePx - computeHorizontalScrollOffset(), 0) + RecyclerView.VERTICAL -> scroll(0, valuePx - computeVerticalScrollOffset()) } } @@ -229,8 +261,8 @@ private fun T.scrollOffset() = when (linearLayoutManager?.ori else -> computeVerticalScrollOffset() } -private fun T.scrollToTheEnd(metrics: DisplayMetrics) = - scrollTo(scrollRange(), DivSizeUnit.PX, metrics) +private fun T.scrollToTheEnd(metrics: DisplayMetrics, animated: Boolean = true) = + scrollTo(scrollRange(), DivSizeUnit.PX, metrics, animated) private fun LinearLayoutManager.visibleItemPosition(direction: Direction): Int { return when (direction) { diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt new file mode 100644 index 000000000..ee1b6b6b1 --- /dev/null +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt @@ -0,0 +1,71 @@ +package com.yandex.div.core.view2.items + +import android.view.View +import com.yandex.div.core.DivViewFacade +import com.yandex.div.json.expressions.ExpressionResolver +import com.yandex.div2.DivSizeUnit + +internal class DivViewWithItemsController private constructor(private val view: DivViewWithItems) { + fun setCurrentItem(index: Int, animated: Boolean = true) { + if (animated) { + view.currentItem = index + } else { + view.setCurrentItemNoAnimation(index) + } + } + + fun changeCurrentItemByStep(overflow: String?, step: Int = 1, animated: Boolean = true) { + val strategy = createStrategy(overflow) + val index = when { + step > 0 -> strategy.nextItem(step) + step < 0 -> strategy.previousItem(-step) + else -> return + } + setCurrentItem(index, animated) + } + + fun scrollByOffset(overflow: String? = null, offset: Int, animated: Boolean = true) { + if (offset == 0) return + val strategy = createStrategy(overflow) + view.scrollTo(strategy.positionAfterScrollBy(offset), animated = animated) + } + + fun scrollTo(offset: Int, animated: Boolean = true) { + view.scrollTo(offset, DivSizeUnit.DP, animated) + } + + fun scrollToEnd(animated: Boolean = false) { + view.scrollToTheEnd(animated) + } + + fun scrollToStart(animated: Boolean = false) { + setCurrentItem(0, animated) + } + + private fun createStrategy(overflow: String? = null): OverflowItemStrategy { + return OverflowItemStrategy.create( + overflow, + view.currentItem, + view.itemCount, + view.scrollRange, + view.scrollOffset, + view.metrics + ) + } + + companion object { + + fun create( + id: String, + view: DivViewFacade, + resolver: ExpressionResolver, + direction: Direction = Direction.NEXT + ): DivViewWithItemsController? { + val targetView = view.view.findViewWithTag(id) ?: return null + val viewWithItems = DivViewWithItems.create(targetView, resolver) { direction } ?: return null + return DivViewWithItemsController(viewWithItems) + } + + const val TAG = "DivViewWithItems" + } +} diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..323b9d375e9c7e9284d02c972afd07392ae9e341 GIT binary patch literal 2516 zcmd^B`8(9xAOBclB$ax)$X+Bwi*AH5CFKsHu~ulhsWi-;nUG=l*vb-RaGRzwsD!K) zW0~S6zM;|AHkNE-Z!(M_vls^7PrrZvgL|Iyob!I3bDr~hFR$}D=l%s(N0qI6w*mm5 zg8ak59ROstAUgu40F4ZJQw?a654A^n!k`unyPg67N@+-k)1DDD-e|0gmr%ELiQ4-x zqi{Ye;Mu-ltl^|fWr68#7o$=-Hk3(tiz@c4k>>M(5 z#imJVB4jAXpi5`)AqQ25L57}^W#v?zpFH!`GyL$h(+zY``; zI#-DR0GMv=FdRo`n+DO@FaVHl?y~}bxRVKT0Ptl0ztD_3Voey28^P5=-Ne+i8J?3e zDI^J(T6O0noIIb9kjmf8{a%a5V$mO^Kb`A}6voX*bQhF>MqW6dU7nC2dnYW+io8Wu zW_@+;4RnA93YE!@)jA~~jK>drPE#{PLM=5dO?mmjyqC8(ca%7$O>luW zPfkrya&q8KRkBCiY3?%no(#Oh&asB7gU_U2s=E2`fLrb%3TDMnI zlLC2Ylo##JU@%CN_l;;^>>AIKLZz10)Of3z`*poS{!PFBWmkh}DEOHjxSD}jeyC{~ zwzBvqvPb!FeHWiZS(<8{`>clU^+AIL@84Vde+WOXq@;8vMi-bkO#lMg3Y@8eeqa17 zCogtkIl|XByCWA~nqxx@nqg8*%*?!8TwK})>TXXZZP&JbHGq!w=ka(QQ|0C5)={D| zTOBg9y`7SosZVarhmcFEs#qFoF!^aAsXDMz2VCRTK06xFlJTA0+dGXdDkxB~3Kz`} zf_4_4WE|{Vi-CZ9og7x`9@B-Chr_(l4?a+N*6q;#{^j-c^>*)6%c`n8vMurb-T96} z(J)?o|KU{#xr3DUqAp}6wF-WN`ADW!0l{CEBuRCErsQ#8U)O%J?aNbo&r3>7IPX$Z zw?Z`JjPZ&*wkj(N*Z3cux$yOn@kSZ{I>PCgkLW9Je00c;%bZTC0k|$4um)Gd+Qb`^ zX@><6y@S_Rh1QWjUp>pt?i(2?V=|o#jf|YR4Wt8>mOfc@+^F@sfaUg65*>uadSWoe z%a;{*==2Kb29gC&@$C9p?2d2=|DMur`vpb45LK;4^$Tb;f28<00)a-yND6WzziWJM zZEc?k!SuXBGQWO()H;Q_cI~A>qTlB2_P{)_(9KTbU~%*71uVAgT0p?>u^Z8U4bi`7 zupsjPHC!{xazpe@kr5S7o~ScMaWm7?2N8%d4I*!-S|3arCq#_LD=KJdN^L*MjA+8P zU)^REKL5nv3k27kr1GBs&zgODw$<&IxuED0vZvUi$UZ$%GD8)%XyWfhn;RQ{8H|}N zpb8+qCuynGzdpW#dm*QErH!=qvVV9B`suN67lF+9v-yqcU0q#z#YFI|lM^#Tgu&sq zOI9GyM)`-A*7%!au^N{yU4rVcZrQ%FG?jcjc|)Xe$bCb?(G9dYaU%R1f6G3Lkb|r=QP0 z@!vrl2BSg1E>et}83T%OixZEw9#I&1zXS3n)s<$Y`h9RDXI!W+6bd1t&JnR7*idzz z0EiXRA@ZLJ3Mw&}9btra)V8yOCnqQA5lh#QJy7Y#ICSLOj~lDb2s_JU%#>RpI}^K7Ftus&?7z-JANK z%v3;YBw6v7e)m?v z-x}+k0>DW=@n*>1rs>({Oa54PR7eqFGp4Bu6DrQvcYr=u?y9_0xs2ZU-2#oGxN)4aLxug-g#Q8Nt8SkF literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png new file mode 100644 index 0000000000000000000000000000000000000000..17eaf9b34fa81675db021db8cffee42cae1c3cb4 GIT binary patch literal 2020 zcmdT_`&-gk8vh!VS*T6zc2S(Rtz^qdC@nQbEA=tPCR%mK(NG&NXv&~qa`A$>+h$iC zG%fRzmAS?UUQh;0f!uTjFPnW=N8%^eA`<{ipQF7l1W*fS zM{v>7Wk~Bn)|;oa8->gZA7O`cqXMu`1A8C-ch?bUL#FV89q z164OX2L}gFBazukr7|%wQ7$q)R5)2?5`NS<{a*=V!rO6!+~a7Hx{{~taFVrmm-)h} z-wUV4U>4Em4F&^$QEZ3#yt3N7vmZynjndVXIm)kHNJnuv+|=~67+;c_cZi`sm4BUt zW($mK!wIc6e4X;SL!>x&uM!G{%Da6L-!b1Wb-MDW-?A2Gd9pW+jVO&^BaNP%+|%2e z8_Q`tOCS*VYtt+>SpZrtkB9FnMompkwH3OMNkasl!nm&K8s?KXdW;^%-zI3|_u!|) zTOMvW9*TC$fY|;_Y|`0gxh-CD2M_nwTSB1`vZhp;PLWSu9iiZtlpW7p$jZ#F1vN*Y z1QY0lSh{74M5477&$||pplbz|6+t5D9p( zShu9gq8ob3FrkVfJOk0~OuZ`_zyRA*Wg8!#w!NTTTE(l(d)-_vx-;TZ88i_Uo5#Jx0l5n#w zsG*@@dZ?Z#D-No}Zs^v(fLC2T@d1^vsDE!VJIG#jUG5hW?s9S(>8# zot*2HVCpNxsRcR3bFKWe*H#mSWVYmR;l7Kh)YHntuB+&mLE>%l_BD zY~lcRrzSSSQndAtQHI4c5&n~;OP%D9* zE~>(>T04qSu1=%WaHc#5<9;xqy@)bO6HBfJ2L(+FIDyrFwe-->XHGo!s7Q>Co;=iV zc{%Nh)g5%0X0#FgxG1zbOqB8Wjw!X;I$?eM;{!~?eFdWDjX{HHL9GtwRQUTCOB5hW zt)*7!wRbVjVSAjZ^J9Wy^4otO;OK+{-toet@!H8x43z5S1N#$Id(wY)dA%j)yuZIc zGeVTHO*i%rOIzw00KQ~qdU?yP{q~ocGctj|I9mfe@`@K89MAGFIxE5%I2!Y)_1U-s z(kF)@5J-6>4tRCg`Ni#`K}p)$ai7PqHn5s(iY%39{A}(toc;W#hU0D3 z*8d#2)sLf1JaX!m$x2E~OJOLwqhQ0B3_hjW)b*8Lg6d8n8nxY2jYa%EvW2N*75L=a zpPo9h`47|+g6j!GSjI1vl_z<_BwuF4bZ^A~H^x5?5em{QZ{!^XzdARvvC7X9T-$y= z#{EnB_Or<=Gj2M0&MPZd;^_Otq$FiQEL+!Fy;)yutU55?6nS&gkC!w%$mMchgIomR z=FflFRU7^3*JYWzQenuS#dEcdC{;c!&9lwWL0O!OYaBWgM$Tq zeb`Wg#Y5Jq5q>$S7$xjG05HMwt9UqMqlfvK{Gm1B{}8kFy}W^T!j`3e5-8gM+WU$Z I`(jwe?*Kx)QUCw| literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png new file mode 100644 index 0000000000000000000000000000000000000000..060fec1c4413cca82d7b669387ab226ee2fbc7aa GIT binary patch literal 2416 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..43307d917c2371068e84b15134079b1f1b86034d GIT binary patch literal 2019 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 ZuD!BgNV*&v!JYG!{X+SN&Rhw2Up1S0GF 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png new file mode 100644 index 0000000000000000000000000000000000000000..58f96d90879ae4fd93028557ef32d1b023fcff37 GIT binary patch literal 3248 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 XUlns}6SGC2--leBPC1qxIdkPt(hOiU literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..59525b94237366cd3a8a2b36e4a118ab6d59ff51 GIT binary patch literal 2696 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 F{|2a|Up4>$ literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..2a376ddd1d121c8269b529a0509f476b3c4746cc GIT binary patch literal 3361 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png new file mode 100644 index 0000000000000000000000000000000000000000..61ec0b5f6fccdb650bc3482744d4d301de9ce8f0 GIT binary patch literal 2688 zcmeHJ>0eU$9zIH=mSYoTF1R(C*UGZo5(Blmq+^y_Zlz+QmXIb9l`<|+O_M9kjG1Yq zjZDjo6{QKHs4XfrDrQCG0;Y^xA_yk9;{AF5gZtvXoActF^Eu~x&UwDi?|Gi{%?%Fp zGg^aK13{3H|96;B2-1B6&Tkv&fxZ3b=yTw(inQN9%m8ee28lTkw8q09vo9>2F)5D2 z31^m{DN9}^M!}*(ecx7$|Eyi^nZFub7lB>%OKrhzr)`LzzU}dGEHkUQ;LI?!$3Lmu zXihGM?L=%A28&*A|Msy@b-#_iuOk~@b1a*XZH>Npcz|oeKTX#+XzKD-XvnUF^2|ks zrgVM60}e;?DvGrldiHmCObpt7AOjh(ugL@8ljc(OAnGbz1O%-&z(LS=n{Mksn=bxy z@qZ=ccue~2;8kW_9WpOJKS3?)nUe^9ciXjVU69vIn0jE4hLXS1T!&QgrvUHI##v0J zoi$}q`LQW0qlu&YbDA!K8dA$|qQ_k((}Pbxqu3an5U662~KJSZ3$Ihm%?(bB1Uo06wTIz4SnV%RB1-Q3+<=SC|k z_^~<+EE;BX$e_JsXBYYJPxt!>%}aG6LQl1QYW?_KN~}WByiD8KG;4b-I@+%2HO9}+ z@9VW|+YXq<8kb;yz=wr}wOsnju=4)>u{hDIM3*OL24Cdl)J?Mc;@{mp+*46oTibel zNAytp&gO!~3{6`FMQctP>Bya%9_4#!`ZtJTNS!$|*^5d(E;W^Qx{uvj?v*k0=C^+n z2d|j6EzV6RbXOh-!D6+n41f2m`7byeE~ho$l-^SYZMZ_!GaH%i@}Uc>B1ah`#P=6r z`nCY#kt0VsZlOF*B`4SXf-a-cXgN8^^r_NC z@7_(2So+Z{bHOd`$`fVo$wQ4A32N{>lPjxkujF!%qG1L5fsS7E)+RGK91p-d2}=M9 zkw_$P3QaTHcGV`^46I1}g_y7~B2?z33*qctZ_urh{n z9pXm?x0rGTXf?05w-*QAWA1tqbNKM#M3>UB@$p=_T)whw@vV6bPa`9v?*4wu!oos0 zJR~;ODw>m8C=dw7FD&5o)+hZivB=jV~<#@@VMdP|f3cGWtM)a9k|>C(UPHTs3l zI{4(|q_V@cE0JH5)I}?_@Ms$@i7O|GTTSCE>E81=pcYJcc=%He#}9*vjg3v|eY*AT zp;8q~p&YqM@WtctDgAZM2M-=Ro4q?pz=(Phf56z-c%>49kx3d+KuIQWIH7SSqCZ2? z=t(*l5Wobat}!%B=qz)G!=F%=wX^aD#nAi&Ynk4>8VYQ&!clW@DJdOXQp5Kze}XGB z9|SmYH)F}e#j@FVK|X~x*|Xoj*KFCgEe|X?1%tM!s;+iP>KBPjt0Gy}@Gkxyb$)`a z?H&}$Ppl8!^W6(8!cr&{-jcenhX{J<&z$abU_^$5z+F#vyrR*)P;==Kk7CU4+_}TV zx-KU33Ebi9_a8m7J};QE8`0C#^KG=I9P_bHwzJ})}K z&(O%NX6B1>Rf7(=?XmT4cLS}K@C~j4q+Jr)&F$O^jn1d$4R4revP3A{C=?32#p0|`(!#<5^N&Ba zHqDLPEE?DXNv{Kp*9@KNHl6G&E4E_AHtcpOJp_`&hB!Mlh$9f_B5cO#7ON3Q7S9En zH6xUzPkeYtoOsCb1p<x95geMI6Ai0CCtDnmSn$#Y>t2pP|~%pFfW&6m*c_IXPpK zlZC(*z;??Nu`49a2NeBy1o#Jpc$|uN>C&Zibx)F%N%ziEsZ>Sf9s~(5syRFBT5+*` zvjZfh|F=FW$_&8GZ;;nJdTVE;AGxHYMRgw`1f)D^R8W|gm&d57xVjSQUm2QUqNAgM zfq`>Zy72PyTA=``;7!L%cx2*BBM%IjOukl9g7QEdUtfB5DB$fEwc6Tz!d(Zt!2|z0 oKJRGI6+a~O&*bp`8KstC`C7jns9$S2U}S^*4+LT!?LU6$KVvw5z5oCK literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png new file mode 100644 index 0000000000000000000000000000000000000000..809bbfac4c0cdc8e4ebb019640255ff8e9727f9e GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..834074693766c8ada04cad23c9dd8740398f34f7 GIT binary patch literal 2682 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 bbywzbUoSsyk2?qc4TG~z?nuh1iz)vFJ%%}s literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..88fe5eb23750583592ad2e27eccc0eb8e80d4767 GIT binary patch literal 3353 zcmeHK`9IYA8vj~S=}59g;#?9DC252aCz6!q7)yjMvQ3eO#!hu)7|W4mELkE;h{lq2 zkY%RC*cxNs#+H3-W1YDl_dmF=`|Ft>X8F!%p4aodpZD^eaAQL~9&S-?2!eR@@96vq zLF`@NedaMP@GL!V?FC*qQGe(oj)6zOF-Hsp{nn+gqmA%+w={xu!A-Lo=|*npZ%f-R zVLv}Kk3X;0a+N3VJX}^zP%c9@=UlmQdv3DNT^^ki_j+_RI4|_QUd)V7Azew6`ODZq zB>hWQk7X{(jVZqW3p>`)T+E#D@+Ul6C2SE&{Ha@WOG}%C6=Yjm8@WZ=Yh$k4z*h}| z+^TLziJEPmF8x_Be*}UWDLPslkQO@|4+I_Oyaqw%Pk{;k*81n-{|3lBVv`+`%k~(n z$GdcAVK6RTnc8Bi&oUz{5Xy_g)ynk;TSJxvKW_mcq1&#mu2WM}I(u77+5U{>?qZwT zs+kmIfnPF&O9q^KzQu1)z&gbLgL%s1&SckPw4 zl-8nvT{&J

8ay^_8yQnMuWps|Pdp`|AV!FFmZfl5)-Uxrq5uS zoxm79>p+T*5>l{gN%g1~;o~#FDMqzog-LNnn!W?n-=0;2f?C7@|MZ~>r0{Dl9<`M) z&b^Ia{3EsK&PbViNvHA*({?+l$BZd}mVA78=gxG?Qb&EK{T_qMx&*&XvVXuQtBNe6 z49#RZIZfSRq3;uG`ZQbdF?P`q492oPz_(BJ^5vB*l$!T^yx;(6xOQrRy{f05g9mZq z^-UJ6MOIc8L-1!1=`>QdE>_5s zb->W07TaWlNxJh*ve(nIGc$iLYkiNT7SjiuGaipxHv|PTset+%9_C%P3Jt_K}=l(XmYMrdEj2f&!qDLzb#0Ww8 zt0gEDO5Ph;^M>c_ZE%RTx6%-UVPRMQ-TdaDp^xoZ4u2OkU1Up8BSxJSPQCuLV0HBU zt*|W6&`d|Fu!8lMNc31B3@Nd?vp7&DBPkhuPF+Y!FFJCd%-KTK34nor{3CIDwVBsp z>RYUm&+0e^qZ+vDbuab0!tEGwn}3rfg7^7`zC6XoXzt3s`Ay_>a~N-oRYeaAMgRHH z6z@hUXjhdc4wbvc9iO|OdR*r9F!&ijYJr)M05p`>J%6Z@b=tZ zo#3{c9jwPc`ufUeZ>dt520X7-eWi{ckOZ5Rl_jgF7~PQyBYn`1%X(1eluY9~DRw3m z=21VsYnZMfa!A}91Ke%U+95n9#>S^wTU$*K2!SIKkUWT-f=O?{_tQte1Z56UDZ zvw~SnynSm#e?xHap@_iJ>>ESa9-uDVPZ1!+NR$jqEM00i*s|{1PPBIaxG`MD5}H*L z*79~Zaa2nOSOW3yf8DxDQ(vx<(mdGc^%;M8v@{yoouym1J&BFQ;e_G-TaisoO&H9X zn?V5q%$?a;!nCzc3rQka?8c27hhtXlE!UQfBEj@iv$J|Y81|Db;XpM{hrak6Y*M8p z?PuDPA22GTG2gy_5BH=Ibq{tol`Avk<>VqVf_5)HN1@_^SimESJi!v=;gvxLyTTfv zMH=@tEuHoh75Rm>rAQHFxt8^T<(h@!!$zFyz|7mzI6K8{Wlc>MV>LN&RGv{z}t}5)}mV3Tx!&2!>ZPm?os?QhK|HejrDsuGn7x(u)!}+Q$ul&g@mRM%vL78J~uiq$*J2e?J%OVJXuLi1#* zjNv=X!5+h6!mYp%r)YDv1m-?$`B8>DF+RQpR8*#|G4NdZ(VW+eX%+4xYREd^269&V zlzCuaeLmA|3BqZnOpgQ{4t){F`Aqk8msZ7}Oq0QcYMJM87w%_)#7U;dUo@2)PR_pI zGFs=`2mkEckzzI>ouZtxXcl!?w?MypWQq{rYMNwZu-sG|w_!lCJ}cPJv~3R{FxS3 zmG0*}>gczfG=lcG&s=r9^JM6Y!l4!Cr>q&fykmh*! zV!4S8A@4o^Gu*;1PzBiWIX=FdtbLRQbDJg@?Y~?-D;H1#EQdau5ln0e=a-V4T%BlE za_#w$bj`IVxMoJa1AKM>C6m>kwYNq@bwo7(g>BHz^c2yNzjbyt%;5q2F(5si z;5}lQHUF)|Jl>d>?k5M*UI2tq1W1||8}x`EV;E&LH9f5hjI>j|0r0IG*s3K+NdW-? z9c^vx#i7c};Ql5X*g}d5Qiw5vwk!7-(*$ND1%p)%j=*ZPUvmM&m4N$gV5AKa59#Ls zBG|;-TnHFJH;6o+$#9u0kU(YxM97cj6d*oSu-cSe4I-xH2o!=bV6^lbv)8IN3!Z==3p{e=h#tfP7^^`MFwib4i)K;J*%}uWP7N{KunL{{b1O?lu4b literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png new file mode 100644 index 0000000000000000000000000000000000000000..940cfea9d80c574210974b688a003951e54cd283 GIT binary patch literal 2685 zcmeH}`#;nBAHY8@A?2_XCFUF|PGPzo#wKbwPN{r}H1{PsF0KRkEb z_@$)eZ$E_n*?qpj*Ad5)vN5g*)f>d^u{zBS<_}ahZey5a*BtFUS9fhc+PpIp_G6xx zS$@*#tIZbW4zjB{Kkvp7qtr{cMa;DstZA<;_X=a@Y82~io`bPY@ig}`pFNI}T}nnv z(VzMsdRE|6;}Q~RW0MfHU7V4TG2eXMaDyxW#OU{n>LCc)r2~S$?dYfiIVvk@LD0s3 zh5vIw?p=4jrRVJC=63h)-PXH5dd@e~36o=;*^<#)hzsjRdKPDIf8MP$*4CPWfYLZm z%gT1=T4MFGva)0WnvNqI!=c~$dwX?`-?PeET3Sj$YzXqw>3x~^ZeU=Wx;Fd`HH=+s zX?Iy3+dnwS>PEECKbJw7dzB5gd!EB$g$x$Fn<|~*n%+me?#wpBElv$c zIIhN_f_)YinLywg5fK6RQM*lMVl*77B9W-Fs;VnpJlR*ldg9+W`lNBLOV|aus4HnX zdgE|7)bht`47`9jlbn;2!yt-#@(zZb1oqZR8sSh){LF_t3!$&XC1i)XXuiRqe}X^U zXM^>N4=P%j8~1rX>fm0AaS06_N74k%$qBs6Qoa~15Rli6w6wG&`~-pXp6vA8+}w%T z*(^Y4yJbCZ%Yv9qBQ1!WJv=xh_MOi2qgT}76bePQAZAsRq!uW+Yl;<|bdFE>`0|Qv z>S`k0E^hCIH+eAWNHQKJpD5j*yfot^UKzg^7{a0&Nfc56i-BW3sIRw)Zj!Xm(4P~< z#R--VpEQhSeE2i?7;0@PF-&;E76J!SdR&1+O-%5sdMLyGMP$nLB3(OHIxiHVw;T8OYc zixEFNKCL?7RjO+)67az4%9^r$G^fA78aIPRG8^mo{Q~Cbil^N#idBv^a=8RCKJbVe0p}U z!>X&RZ#~A=2YhMxotHHIm=Q5(CE0APssviG^QTBkPft&Hcz6ei%q~WAxLo7}`*|Hc zQouw9B+u5)G*niadp`{@0x)vkzt@|coh3~4{$Ba`an`$c?`8;Whm}Y}yV&rKMaAM^ zphQ%NZwDl9Yiny`TzFg1asB{jWCR`+6$Kg=GEj8}Nd#345%&~%1O^(zV8?SU(wmc| zE&#n}wY6x zaK0Nsd-380g%TbSaSM3e-__lXn72`Sd80vDO9!^NxQO(L1_UddB&(vfavYn!mq4Bbxu>tMZvMXOKbw`wxRkFI!CSUm-kg zY_xB5H!%tM^!f&Yjh6bw1UNf8Z`IciV}ULlgRje{pSt?`a&NQfivHG>xkiK@A^qkh7O64brY3p>yf%-bSM`Q z2-h|Hu6cN_rrWA}hxX>peqV@CL*h4UBm3NgOvTdhO|-PC`bigaZen6P<8aabi|_t` z9WjH}sR)>|a0K6?0BS<2z10*7jYgX?3?Ub!56A=m$I|9Nz>w)BIOJjja7#XhrrLus z*h!(Qr*YoueHX-A5f>peH*G2{D+}$_Uw}St{$?n8lg}Llfpdn23RnY>_0Y!fAYS3& z2=AWdLOipx?-!_Ht44Ux3FL~$(BIF^<_{10>7GI_dc`-TD&$THA}H;k>LKfLKhk&( zQdnMI9{d(tbKY$!4sd1>&}5qmSPgzVJ2ywQ#MZUmF?Ic|8T5Y6%`eEV6i)EYirm04y(jmBy2F)PRzCP zHvsf>E@*0Mj+WgE$T;O7+XcA1iN=EpGA{O&=h-Jj&xa|;On%b`g~ox|Bk4V+-3CT8 z92_2*09kaod!e2UKi1RB%L_vwNJwHIZ}0Xd(n84kngVQGlk85AjM;pDG Z^z#$1OPcr}!Ceh|XM0I~s4%^w8vgd?H)meKOP^~zFL)xq{i_^Vk7S*1alO>uFZ+d@+fA1g z|D4a)JEhK2OK)iDr5nLusscd+j(3eneY1u|)Vygy{%4Zs#g6YEJJ?!?AV(7_Dl5&t z?klgTs4zJJg;*;SNhH#;mft<%vKR!?Zk3iK4oNyHssw?YJQf6je6LX?0?|nR_u>Cm zkXpu;C?wD4L%B0|dm{%ZcIgMd=K2$)SCL-hReVU)2k86a$vy;R%dT1HSzBIfd<^Ja(agwW>n;iy& zN#J%Wa6jBaT$^ddmOOucHbq)F=fM-vPbr?pkknM%-IzivT%wfXrBAI`hu+*+v@MuOy_U0ODQ`hD)t<)^yxADs1%?1h%P~+mG z!hKy_I%3AWiHiE3b&l4sK~jxIrn;3Sr;%OQ#b7X)Wzp<@XAh6l4<9~^6zsC;)%DYP zyFYhlpO5U6bKi+SQe6o0=+e>ANv)rb(^X5{`A3|a@G7LHQ>qrtg!eWNhWF#K!85vLWW^n3j%^OY$pbnIK!!Lx} zt69YPEy&8t3+C?}CpI@XFHSZ_gI3wu`U%8>`i@?1zv@=yA(N$z=#R^z<5rk&bi2E| zeFXg7!7>Et=_UW`=N>ClW0pr#Q_IO@!sEw}(Vt6+N-NZ`slPnx!@SM+SE$Z6Z=OWW zU{SWVAI8S$D<7%8L(lD{7x;qxHOf!#QqZ7Ptm*i*45)g-f0%E~qEPJBk5p~lyr!7t z*p7bb-*q|3;yYPv63&v`y0>IQ+jv{|^T(6lzzO&Z-Vq(J7g}nqC9H;ogv!6Wa{Pn9-uNSg& za%e-P4!+aP7#SI7FE5oIqJHM1M~{Sys%}%y(Fm&fMu7{xxz4w44cA)TG4yCnz>K2X zlSJSvlaNN1{PCnz9ew>wpdOeZXSyX`&*N3mTZLsH1G)OiCT1B-GBO4+ zOCQj488B9P31P1%TIi*{?Nwz-g^Tzsgr&(cRj3pYR`9)09XO5PU%k@T0$$9^E-$auw-lYXv zh;emw&7C+43;}Xh@V-Ad)30ofj*yj=^`lj~RR`ZcgsWlBf}|%FEun3l;XoM%ahr>F zY!!ZI3m8*&yzt{z{4X|+`ByF&S_*dNsMFVv4di_lRMh9$mWcf@IvPM5^NPNawGgv7 zaAuFUMp6v___}oPAphh%)at75$~a}P6+4HTP{nQz-k#gr+iSC69QrT{EeygY8+PW2 zcP~v`cW{{d^^}uw6Ruc!4*Y3DRo}ol zySpo#I_H?G-^Ra0T_u=tQh{6MBU~Zy9DNzl(CL~sL7tH%Z!-F@at`PpMvuBvb+FH) zcch)7s!gE!jK*y3?d^}di$#2D6a_`fqb7x_K_rh^n;x(ZoJ12y@#NG+zU zFfMq3$7C|WaO(Oe_zpomap#O3{`4Pm3;@Zyy?I6s=0`&FbO)^SQT--tzYME`&EdtV zCKSPK_>#~gb{R@?W+)CGjG$cH`g`rUz2zDPw;K}0kP9kuHQ8}x-oTuT0wa$_Qx5ON z2lnNS%)VC%eP4VnomEju?(T@@ai)CVKh|O?&K`nRyP7OK^?gkPmbsDV?&Vdm+frPt zX_u*{I#C}UJ~Rnr@)QiZs=IBipCv<+ftD0*l{sZhgf(5*@X1X+0;TP*wW%w3MO-Dg zLkFUc2{+_+oGJ+!Bj<8KysXNa)<;15cA=r6*+e286mWP}V#9=8khK-Ogs|K_d$IA; zZS7v>2>W_jWMY@(lj$dfL87i#znHg-? zL)V>*2jNp2bHoQ&4M19^;Lwl;ta_FK!uFoT9Uf4E28(sR{Wf^L`4+;$s1PUE)zQ;) zwA6+inv<=MR68M&$lgK=Gjj8KHyS`>4hV)Ylem8&j>l0gD~P%-1ek<`gdj=)=A`@s zap^}RmF{pb_=E^WSRKd;J1?vz_`SK!VMOKz!^#Q(v>1pfx-Xgt>7OB#QvI-E&012fB7%<2(e@U literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4a3f4b207f5284ee7a661ea163ddf1623401e1 GIT binary patch literal 3055 zcmeHJS6EZo8a)DngEAOJdT~V54@8CuO%%gufPtBdgQ&ES2mwq)q=b^txsDnHgF08b zfWb;AH%jj!Nq|sQniB|}NFXtZ3d9iZ=J7t>hx<0?;gtRDefIyaf35ZJ^xxfG)Kqm< zAqY}){RMdrf)ob9d&v%Ea5q`PWzQS6 zi;8a@T2Os=+D&v<aZ$WEW`!vBYFbE|SgmQ1#tY*GO+HCU8;q_; z`T6;%qVFL{Zn3_;e%t{gDJ)V0U$aV95Oi=ii21Igqax&}unmlU_xIrc21rS;rv(JRE{Q{e?+hp=cg&!+@@8Nu+)274l@bFMg=qSIaEu=4B8CtLC&H{~0%MF|3Y$G(Ziugl|m9pXRZmVzM}U&$)M??rie=H=of z8~9{vQd6q({&aKw|E}C}n)0=s@Q_~e%*>2gE8@!g=P4(X+1cinxWN)ykx;fS5pAq; zS^W=BlvY<;nVOnXYin&9V^?&Oq@UC88M`paFyjLV#Aeyz5p(l9bS%pm+1Yi^cvdoi z7?AxXm}tU+pV2Q56df@$%aBT?yvde?lcLVOqF(p_5`lWCCQ~aA^8PjiW zm4XfI;{=6y@QA5)TIKfC+4wF;3LbRuDiG)s#AZZN(3Bt5ravw z%sE{C;zjrTN9g7K6%zH)ipsmXmUQ)Ou98R53Fh$rfq|@#@1C(d z&pPb$Z;Va{1Y&gmd3csz)kZP-HM=vsZ6mgik7~SOe1Q7=`H@qyPj7I4)rK|8rF_e4 zoO<5-7oMnQqNRJG9n8eUL?mbuhERl~RhZtw4c!sPFfx zta&Ji-+`M#OgpPYlSrgpIzJt}5*iAE+JfohvtqRME;gHu?fBz64>Z~k1~YcfB;UV( zA2(9&vyjVHv_C)vDANPp+$4T_t+FX<&d{=;IAv%CGvl~Pap%3fST06M@2A#Ba(wF} z0*?AOTEQo4!~8TfG_0g>j6j^)e=#{Zx!kYr*iCh#qLW(twW16LZ929E1@z@x=MgDn z@0R#4*21z_{)oBeF;uQjilomr@-uHJ6m5(^AV#V%DZ@lcz4%NP&?-G*x`W0fAUiwL z_v&SunVMEMP_EWo88!_WC^Be@UAc{AQ5Y{gpUnVSY=x|CbJcsH9@r~!{(%>@y!`0l z(e1b^3c4jQYinz@ui9sGfBZpN-H^j;?&#>)s!oXPjXDA)S!*CH+DNY~v$^?p(Y(Rj zpMra=7da`L8*0qaZ#f;B=Dx^)fB+3mO(t)s6w4o}umtSmy?b_+6Eo^R^fH)TFKqo5 z*qdufkDO)Z+JyOr2mn=PTUIBVD)|bWt4dam#$Sb8qnMbOJkgqH_EmmPPR{71gkP|6 zmtLid*~KN6VIQh-KXXD=KgpH6}M{)qiir+=yg82VLUYA6)E5}Jg3nzfERhUCa&*`%l-Cs zMNil)aSxHL)Nz^r4tNs?3`sPbg>b%b;llgjVaAP}TGYlydx{al5D+w@j+=Z!d6)KX zK(;KxV*f@cV)2ex#4=)){Cqu-nW-aUXkm~*=Y_`!hx&^VMm04xTWSI-i^()}u>W4) z?rxsf`STiBW+uMlf#MwHSp-z~AluxJ2@DB4*-V1LL~M&T8FtKJl|%4KtODL8mq`Y^ zt8pGkWZ|hKdrb?pJ}`mSN1?6bvM-|;4-`tD!C?3pY|dm@FgXo`s2OFX0O0xfW=J*|7RIq#^?%Y#LU;_mV+A#m`c znAVe%KyA2*#xH6po%S}i0dA`H9hmRk5EY!MXL}6LStDUpa0eicth+Wr1qAl+_SO#j ztF~oH=27a*0If1`RWRY<>#O_Z$&*Ogn#hhM4k|nmcg#MTx4R`_l>%(bN>x>rT2eBF z5OH|P8&byM;>10{!NGKZs~z#vC4KwoBkm9F_kltTRr)vaKrufHxd_7)nMnIoBC#6( z?&*shwY!AAB|iVv<}WdtQD1ueAgJpGs>S1Lcx?pq_mS=Yb6l0H(1&}@CK$w5fD=6A N>g0~BJbme({{h8DIeq{D literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..edc8a53a6e2f7106897882ce9e11edf032e1f7c0 GIT binary patch literal 2684 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 PcX!AU?Sd*lb@k3)GzC+J literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..2a376ddd1d121c8269b529a0509f476b3c4746cc GIT binary patch literal 3361 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png new file mode 100644 index 0000000000000000000000000000000000000000..61ec0b5f6fccdb650bc3482744d4d301de9ce8f0 GIT binary patch literal 2688 zcmeHJ>0eU$9zIH=mSYoTF1R(C*UGZo5(Blmq+^y_Zlz+QmXIb9l`<|+O_M9kjG1Yq zjZDjo6{QKHs4XfrDrQCG0;Y^xA_yk9;{AF5gZtvXoActF^Eu~x&UwDi?|Gi{%?%Fp zGg^aK13{3H|96;B2-1B6&Tkv&fxZ3b=yTw(inQN9%m8ee28lTkw8q09vo9>2F)5D2 z31^m{DN9}^M!}*(ecx7$|Eyi^nZFub7lB>%OKrhzr)`LzzU}dGEHkUQ;LI?!$3Lmu zXihGM?L=%A28&*A|Msy@b-#_iuOk~@b1a*XZH>Npcz|oeKTX#+XzKD-XvnUF^2|ks zrgVM60}e;?DvGrldiHmCObpt7AOjh(ugL@8ljc(OAnGbz1O%-&z(LS=n{Mksn=bxy z@qZ=ccue~2;8kW_9WpOJKS3?)nUe^9ciXjVU69vIn0jE4hLXS1T!&QgrvUHI##v0J zoi$}q`LQW0qlu&YbDA!K8dA$|qQ_k((}Pbxqu3an5U662~KJSZ3$Ihm%?(bB1Uo06wTIz4SnV%RB1-Q3+<=SC|k z_^~<+EE;BX$e_JsXBYYJPxt!>%}aG6LQl1QYW?_KN~}WByiD8KG;4b-I@+%2HO9}+ z@9VW|+YXq<8kb;yz=wr}wOsnju=4)>u{hDIM3*OL24Cdl)J?Mc;@{mp+*46oTibel zNAytp&gO!~3{6`FMQctP>Bya%9_4#!`ZtJTNS!$|*^5d(E;W^Qx{uvj?v*k0=C^+n z2d|j6EzV6RbXOh-!D6+n41f2m`7byeE~ho$l-^SYZMZ_!GaH%i@}Uc>B1ah`#P=6r z`nCY#kt0VsZlOF*B`4SXf-a-cXgN8^^r_NC z@7_(2So+Z{bHOd`$`fVo$wQ4A32N{>lPjxkujF!%qG1L5fsS7E)+RGK91p-d2}=M9 zkw_$P3QaTHcGV`^46I1}g_y7~B2?z33*qctZ_urh{n z9pXm?x0rGTXf?05w-*QAWA1tqbNKM#M3>UB@$p=_T)whw@vV6bPa`9v?*4wu!oos0 zJR~;ODw>m8C=dw7FD&5o)+hZivB=jV~<#@@VMdP|f3cGWtM)a9k|>C(UPHTs3l zI{4(|q_V@cE0JH5)I}?_@Ms$@i7O|GTTSCE>E81=pcYJcc=%He#}9*vjg3v|eY*AT zp;8q~p&YqM@WtctDgAZM2M-=Ro4q?pz=(Phf56z-c%>49kx3d+KuIQWIH7SSqCZ2? z=t(*l5Wobat}!%B=qz)G!=F%=wX^aD#nAi&Ynk4>8VYQ&!clW@DJdOXQp5Kze}XGB z9|SmYH)F}e#j@FVK|X~x*|Xoj*KFCgEe|X?1%tM!s;+iP>KBPjt0Gy}@Gkxyb$)`a z?H&}$Ppl8!^W6(8!cr&{-jcenhX{J<&z$abU_^$5z+F#vyrR*)P;==Kk7CU4+_}TV zx-KU33Ebi9_a8m7J};QE8`0C#^KG=I9P_bHwzJ})}K z&(O%NX6B1>Rf7(=?XmT4cLS}K@C~j4q+Jr)&F$O^jn1d$4R4revP3A{C=?32#p0|`(!#<5^N&Ba zHqDLPEE?DXNv{Kp*9@KNHl6G&E4E_AHtcpOJp_`&hB!Mlh$9f_B5cO#7ON3Q7S9En zH6xUzPkeYtoOsCb1p<x95geMI6Ai0CCtDnmSn$#Y>t2pP|~%pFfW&6m*c_IXPpK zlZC(*z;??Nu`49a2NeBy1o#Jpc$|uN>C&Zibx)F%N%ziEsZ>Sf9s~(5syRFBT5+*` zvjZfh|F=FW$_&8GZ;;nJdTVE;AGxHYMRgw`1f)D^R8W|gm&d57xVjSQUm2QUqNAgM zfq`>Zy72PyTA=``;7!L%cx2*BBM%IjOukl9g7QEdUtfB5DB$fEwc6Tz!d(Zt!2|z0 oKJRGI6+a~O&*bp`8KstC`C7jns9$S2U}S^*4+LT!?LU6$KVvw5z5oCK literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png new file mode 100644 index 0000000000000000000000000000000000000000..809bbfac4c0cdc8e4ebb019640255ff8e9727f9e GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..834074693766c8ada04cad23c9dd8740398f34f7 GIT binary patch literal 2682 zcmeH}=UY?R7REPaq&P^Ck)jkufjc6oAWBE2ND)SH=%4}`AV^?B2MLT<1R{yb6_BbZ zBLX2qM~svq1EB?x5(uG%5}Jt#3Zccj{S)qUzs~t^&UyB8&faVN*1O(krTyY$D_6?yJU400O1et{kixact5u66#*Zj=nHn&#Nm}79*_!vK1|+(o>u+I(z}xYRH0n+RE;b``XtL=7+uR7msI}yX`A;qq(MK>etQ7BFr z0FQq4_BK5>70=gNYDxPSWdp`IeeK9|A)ua|vD;`$i7v6}S4W>Gljx*aH1)v`*(baXT)uococ)%y5bg%TLJE^p_SYtC z^73u>38GdA4LD;=Pu7X>cB!+6*5WXNO+>=_7-E14rl7Z!F>w{iOSMwsNw z;^HF*blhdEt*tvrHkz4f_xCE;SdmXOFy!(K?{o_)2!s>$A!Bky7(wjn#JjVJ-*z{0 z^btgODVueP; zn{Y_zp%`tiY)bS^p`JR$l2EumA-!cdI~vGu}bPxjn|1{GmI7l z0{$$%lt9SH%F4<)^_#guV7#JN@l$9MG9C+3EQl4tHyX zXd4t16vAjcWp8i)TcRO?n(toaXDu%;Zv{KR%4&7;y-60-uB!+B-PB ztgkne+`HGmFZYbBY!&94fWMH3V$zXBv$iQwknhPzPB9G%3F&={es{AyMV6cJ3ai_s z?HjjLvI>z{;5g0Op}ia0KmVK_J#{zQ%2e$QY#RiFMpGzvBdW^w+Zyw*{zr}&o0xPm z#K2Crcp&ATKp==&>pNRB3v+4Yb{xdNtAvekyEo^tidt+GFVMBpTdAa^#Gh)kh3rH% zE&WkiS*eQd8?fz_`tiqyMruIdAZjqzM!Swtxp(j07`NCO+ff%vuMGBeC|^>-`ESZXOtxc(3%!5rp&uhU8q!O zgkE^%Ed~@Vgrs7_I+PHO-I3{7tk%3SXywQLTZA`F$<+IfcdGfWhIx({$j|={^c*kn zZChL0;_`C$Y$!;Q7gpv?rysARC}DVATCsEq@W|e>T~uZFS2||*D=nOsA35R?4pocj zl#-Ita9RMs$q9O8;MSKVquKTK^>9M`++*8n3>q4h#-XCpK>d?;QLA zXu^~wj5(w=zmW=$F)qChsgc=5Mz!o7cp$BYgPX+6KXtQV+-%m+hKK*gshBWZlSNLQJEsUeWB``8prC*|V5{~wRLK{%wP947AE33?=^hOD=Tp@ywdV=Y-;M{?W8MTACm9hH%G&UIY1 zbZsS78YJQ{8LEPy4HZEh!W<$ch(o-0_aD5U_t!l?JkRsFpZjoquJ3hS-{;Qv?kM?# zY6k%T@@Kz8{s6$9KKNdCU_ZPc|JyGXKK5cyojrd5UWo@Tr2+6C@>!(g`S_y6Q9{_8 zX{{C!SuX3*QR!Rucl7+zbQenD{Ry+5_q_Ts{o+L@ofo=B1IFp5;l!`RI$p*^Ki z?T>+~vggmAqy4B8%~QMQl50*^RH;C4l}a-50DQ973;^9vA@sWr4zj>u&%cBJ8zG&S zYKFf_+_>sTl?BO1Y_^x%JbiprZ{NPnsq(9%1@!n{USAp&b)W2=l4_i|C3h&ZvLwMU zZefV?HXJTE*OiO#!)z>1nBtarJbyiHOl!(MQw%F@W3g`R-IYiHt~&cxW1M){Ufb#` zZ=N(tc(#4!=H?=nk_YSe)2Tlu#Q?BvEiW(ciAEQ14L4vz{Y>U+ufrYV1;sc_=iM(v zE4}uX)+P8IF&BI5kxO2?eraO={drk1t~*4(9-f_>J9Fd4wy1*^(0_SOxK&(AluCI1 zj*gD}9YKL-`I*1QTW?{Nl$DiZmd9JY(FOq2zGN3#c0B*74a0B5H#97bGEiP#Uc9)G z$c6@2y{tQM(X^gL6i*cbt!nTFAne>z@2YfykZI{n4Ja;DHw*jzyqA}gkk4G{VIz^N z^IVgI2M=D$DotARH9{x@@Q(lfFVe~qPV;1lYj>%=y)kpOKSV$yr_B!jac*^PK>x|p zr#jjX=yWSR*Ze-`*ZaVDshV|M1Ro(sWNa-l{A`G?emfqswOFSm7At7ls0JpAoSykq zYrhzdh!}oxTuohlGTn%h7EWo``r-tK%&`wPBu1L-)oi*bY5V4gYv(v8Dij~ z{clL7Id#!vs#dXKhgDRxt|R`iid#?}sBj~}85-iEHR5jn(+gC82P&Fjp{AzxejC>5 zGD!xE57H7PAM#HGJ3m7+Xv5VS)^SLS!VJlZ07cfcebCrwBP7J4YJy+qrlk$lgnGE% zH~W$gxeXBv4h|yS+}s)^Glixx?^&vl5G3-LRjffscfMklzDHCX8zR-5=Tgaa`~;(t zq_yGriQ6jLSrXi#VPiwXbl;kgm#QLE7t@7HL9Zy()&|P~5L!`iGPFHueUyu_u@tu* zvS+0!>U@-GhwXZ0>5X(-!Wv75Y|{_FdIbb%l2lAG+fom8{QQa1kG~2kD%^|J;Gxo( zUhCX&D$@eel&RjUh}ygQmr7s}uI02B0PaZxl^*2H%}pPubpCe#BbV}~rlw&Jm%8Z0 zjfqszdy>gad$BbxGcWMQx84;0qa(CP(&9*6$A!Qo<(!-xycXR~GL=;wHA)Yn2wQH- zdO{p7dBz#WXgZ5^M@grU-M+Rs5(JmsV}}H7Z;0?**Fp=#$CC9FeXFSG>Fs^wbuNNL zr_+aMk$%s7YxK^LHH&d>!NI``ql|TyGz<|x`+Mqr@iJ#BYT}!99(F~+%*4f_|;FTO;+t>Ev*7qJwro7ZEeiXrq~o#FD)(KmJnyN z+#-wT9#&R%!sGFW4+Vsn9-hs5@c8j;zF=EO+gvkGyA2>_;)ML9?iG(* ze+SDQRzuR(8ryw881ELbEys{SK|xVAv9o4zSWX20D8Vsw}|Le4L(zyI*)(5LflD~tNWIQ`1CFMxzmON-Fm~33>vHp^J&c`SIhX6tBJ;v?Hd1`Zy z+uGbfhb?TXq4herCIbV5G?gOJa`5d9|Nh_ML%o{7h$}-^Y zv$^uxT^J#g0oc}kDy+_XI@rm}0~O{Y1-E8S)P(kC!n~N)YtK-}b%z$nf~$Ye4OIv6 z>uI#LpDBce>W*v8(W7*8SQ`vv2ag0*QlStlT;f$W~WKq7UkREuOX2Uyn569hctN$jT3FDmW4(}MkI*l;{izIAeW1R&OPt# zEv*c+kN@s;`O04$p*L(Bbo^yEKHRn(!?LBBqa5%d&un1uCNPB|(&J9}zz zhc{T}cx(RCwM_~Ym!@huui4plWM8`5< z`n5$e4~#E-52bX5czSrZ5`?C9i#%iikm{AmfX{Cx?+3|y_oxBz*#Ri??>_%`@c$yD bbywzbUoSsyk2?qc4TG~z?nuh1iz)vFJ%%}s literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..ccedf593b95840a46c17dbccb8925b3ad8368b8f GIT binary patch literal 2398 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 jysNy$eb012(S{Nb3?Ul82Fq3Mm2+f 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8e55211d17242d0182f8b06d7436aed8777e1 GIT binary patch literal 1904 zcmchW3pCVe6u>{}u{o>hsk~K6Mo3@?XSH5r_joy*hmbN#Dg>{0xAxG)KQ4n2Y%)l3HyKMbO}csLRmvO z`4I02{DS?zU{X|A6qHjZ$;X66NVpGTb386uQcEI|j=#r-9(IAeJETe=5}*JQSV8=s z%HnN zSob>sGM)>KF3w#%i@#Z`8Z<`V|P=EnC5bXxLfF3Y{{ul@NG5~aq zYs`RZVKIJd5UY8Xf?z+<%n4!{(F;b5_3^A)3T@6vEW@JX%Se}uUwN~goHZ?NY;2Yt z(FX8s#ZaN*TaV>kqlL)Y_3yYv$5wY%gr7FK1>U4gWCQOITR{ z|Kd;mYxzq%#q+;?(-09(4KXfi7Sgx}ImmG?y}IS?>G_mwPLWS)9zh}VgnXrG7E1Sd zd813&8>h9^JG@StF)IYKL8&o~Pv z+HglX_wdbdQrle~X1+ItFjx>j!Q)Z`&M6{d+k;^7`m=&@p^X{GF^BfLYQ#4yxYZ@F zB+rm2{5f+}>{l}tUlh_Yy;id@3k6qBe(B;c{T`cXe{#F;>~X!etJRdImYCQO%^u}5 zPUm*QkD__qb?IgNn2$QWd-Yjcnqn)}6}^P=f^)hWW?E*&vBCDe!?yk$eWrd?oy-V) zqny5BD#^T$<1IK7Y){;XP{uimrg=v3*D{G#`>m4|#2&v4u$8(La1Gfy1X%eXb2DQu zuX)x-V}x!iWjc20AVbV~z5>S4GH7IImy_`OgC@Mk$TRN-?p~p0-=VTq3_3y?f+Rwv zm^WH@dl*E}%({t~Tl*M`(O}u__HT(6H9JU7$*&H5e{T`{b=8j!!^Yhv$tVn-QBBF{?k3#B zsIL+zeo)=lV}_e1C$%qkrcCO2;8EExE`sA+KE3qLL6Yk<4V0<+Cs6PE0r4un@kzp=yyZ@Mc0z zrKMGuHR@$NE*iUS#*{njW z=$cEoM$z=wRq@O@F_poeG|NTYp1F*x5?#$U6@+hP)GqzbjX*_^+n!06#y4qgF^U{9;f+y{i literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png new file mode 100644 index 0000000000000000000000000000000000000000..476e86ffd27b013ec46538c4aee3957a19c048f7 GIT binary patch literal 2204 zcmb`Fc~p~E7Qi3Yai$>BGoo0b0#$)lAcj>EmKFvuvPlq%0(KxkCYpr?!j@ndoDSzW zR#{RI0cA-d0V0KjAfN>!UlRiT(vFAz(ViL4>AmmX`}^*9-?{g_ z??a=!ycmB0;0sUplOZRMg=zx;OdxaI4rTyAd3c=Mw+(s(+xGqJKLCJ0OdzAZ-AzJI zpE1$o-by4UKJG35M$`ge`8j|*0DV@!@&13M-j9xn$3R81kR_0z<^X6#L#&Veg_AWL z^$TCtF!>bP1F9*3*aG`2j`|fRCB!8_HIFp)m^iYAhaq+*;3=A38qrL=Glm!(1jSIu zj6gg<18?9C@gFK%_em-P;MfuX?`3V}q6z?L_!@wHLtD8+B>?FC3jl#AE|MJi^Dx^X zzb!TvfcaYh=$-~(cP{|iVQ&ZB+Pn2Fe&?(v&>kb`oFquG01sk-2|xiNzyNEAY`{?f z2M*95;~TsK0GQ)LB&cCo!ECwhM0GA-0X!;Z4QBZQQfNrRS6PDBjeSXHse|?cr}0uw3i378)0-dYV0?@+ zU52~PhSteXQa^)_2jp|ZwfXbylUM388>kMvWV#4lheVd%7+_|_l;3)V)Z?S6Ngzy2S1)_#CXF_{lIW)f-TQm zk@(kBrJHLtblO*_uoyqW zfWHni!GE>iG$gXh%-#sQ6rExllhS-pd~L6PBOjX)zgy5<)oy9tfO;Nbf{W{8tTRo; zbA-Hlx=e?6-tbjNT~%}K(;mM>oKx3`Y*FNX;_!_5&MKwySxwHF8>6jL4UxNGL$~A1 z*!=7|oNJVX>+ExyZ7_>+y=FU>>QZkwv$Uh7T$hLO9;NU1l(u?^EcqP$h09uE0)Y`M zG4-M*CO-WW*;Lm6HD2L>eo*6WwjFBb<8KBB0u)1uc^5FXU>8T^GK3nA~i+r&bLgLomM~k5!C! zO75prDzwBL0>jFnFtH-L9-Y)=D%QohO*VM4dkv=wOvO5!@#Mt0#xmW;7d0N-Q?Mp{ z;p9V4?70UH6SeWeJ03*0VRcZzdVoP;Gx|~fpHIp7M5i!heZuvR1uMRI>Z8R5`10U6 zLPxRgtsY$bk5BUn=lc44jRrSAAt{v8tIB`mhBFaa-{)G^+rlVFIsIn-V(4va$?~`J z-glE*hnb&Z@WgG`?%uO6Nwv1umyf91XM(@W2fn5bkocW@T#bW@36-ME zUb&f-F-*2|A=?~x#BU-|ap|D*^vc{FYl{fgguPI&Qj9BN`!psGw)OJ@7&TJa`ZFZy zG0)0qV<=Sojq`WW{mbJ&xcjEZJvnP=DSXSjdeHM SO`+G)m+z#~%>d5Ed*CN*-+~eV literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..14af5e1412fe6bfce567f9b030d5c3b09590d3f6 GIT binary patch literal 2404 zcmc(fX;f257Jv)Hy?Y4KC?akHDiHxeO+b_kK|yGneN}>N32Pt(!XiROg~kPeMj?nS zO4wvyBpB9-f)Nr74%lH61(S#ZvSbWf2=mg8M`ybG^!%7}=Dv4teRbchSGTI}DO+<> zQ`hwXIGsdWJ6h{IZvX%sgcKjpg4SLxOX07D#nCjG?#+LZsjIVbWH6tvayC|I4{DQBi*9^ zoBS%9|48nZtuR-B>LO>Z9A5F0^oWZVtp3o!nMVtA<14dTIi{uM^{fsnw({}*^6`eC z74kK%`}0+INEj|@`TJ^7T5X}#^pXVX-43QnE;Pus2KJER=SW7GI~ZA*hKl(X2B+uG z`i61E4$0(Y?rL)E1<6r{XX_rd{gti}FG<|vje1EdRM=gFiuTpmq}m)aGkfi^Cw3$N0xsyu7(XwK?B&lPMOww&O& zr;pybOvK5{=erGSzp3deeL+Q)1Teqndj9gH+)#e)m4oDDdzoK`bKip1?HHflQ6AB$L1>GW7i?% zZ#0kt4_-FVsb$W*2+~dG^;5?Y=R-6^C;J+Y^LQ15)BF*5w@pa>9@IQqUtH}gbgH70 zdii58gAbfcb{`$tAM5v{b^ENHBJr-4{h_!U<%3PnnipLD-QYuYe zKg=&l;R|=)Q_-#^4dlu(VYGn+zPhNZWDOZlP<^1+#lItWN62)2Hi1E8+okqbQs{;p ze7v~@Z?TC*9hookpLUXC_G7c%L!UjgsP^4+A}4P;t(kq*CH$Q8I>byb&dqu&E@w5R z1QqE5D|s4&sjD{#XydMAJge#Kn?Wo*s*9YsqSY8G8HIq9OJ&- z7oVUhG?gT#9ahs$a7xiE%ll5MxF-FM7rl<2-^=2G1KdnKiQSPXlKA(#wFv$ac7 z8p(%Kn>KYi{>|HPO`Ai{6;}1VQ0sDWul0*LugeXmMcdG`(>oT#93cyZl@g<68b$>%;jt3vuq=grmamqp3IE3Tg-IKR8$-b2cTBSd*(B zhrfH2DWojeSrvx3oV0we#^5zq-}Hnpx3FH$+9gE_J3EA|2*b%aey_EGg!;%|gL`YD zh@jq-TzzvC3opHJ#22owaU(_-N0}5EOCp*=duvz+SZ866&l`c@@0nroEZ{ z@O$)7d8YbF(cRb^(f2TX|1YDTXV#ssf{b* z*IC#tX6>YbE1lvSYZu1jZwaH;_VVhj*7eIwIp~()eG*GJO5s))*{y^VFPUdhR=XYA zbq#T5N|_4F`j?ED?y;@j-2$rfD2Zf!;wTP3`e-a&#fE*f>pqZF$i9O z+=9x{Vt^olfEt*fARvJt0YpTJTmivc%F#bM3_4?{<4k9|JG=Y6ef#F^JJ6Pg4h60O z0Q0Mvy^Fm8RsjI83pV}LU>X2Rb8~xjS$GI!)!%zn0HC0VFtml478Z9@OPX6253lf$ zW&TW*0YJzBum^yx`d`Q2)L$2TJIGSCglN`jiA8e(!Hc2?N|vP3xTk`-=ISl}v`nsXEJ`CCnSyBPRN7$llT!9oixZilHSqCr9oGBXGeS0`_@M;A~me^?t0$F zj-TJAp;!S@RaBY21W6R$ zJpZ9}pUU#3{2x*E(^ftnIm~0eNJZ{?&7?W>5r0W;8|68#hmqS%7*w3Lv&~kz!bhYX z_|7)a>Q?%2so||^!K{t`Uwft)4lwTmvIO9-b2u~{=>-NFf3a>Hvs=sLvMl4T|K zbUsG4(8+hpbV$c@byn?tC2W1%?`LP@cXr>)>;pJnSD_KA-nj2uTp|BtQdOi%(`kLA zuiu3pB}{FDo?{V_rD)SI+m=`CO$iSrcyTfBYUVAjK0q<)@MetXi2+Yy6ID z7PI|MC$EO|y2Y@(Dp^PFRi-}4IC8v>M;k@$3vcfx#yA}DZ{Fa(xiRDovvjUYaCala zw3?8!DD1AC&bfBUmlU06a`v)>`4e&1n)8@bv3f|w*~1JuZ8GuprpfflfvNG$+T^%f zT!pILCjDI{{TH26lLOKvk2Y9?d1RT&m$-YcFsj=HPKVt9ZsO<18NeBw{QP=X3#KA}I8K zp5Mzop&}?aS1Y!9mUJq6a_fTx#vmV+hCZTQA~%AUHE;hezE){M1Du?t1Lb?Y)Y#T{y~10qyc0fjl3 zN^V*zp3ow2pohXhmxCM*xw1TCo5VW#ZVyA#DvO%kfpO~#Esln6;B!xWHINabgN$>@ zKvz(2vQwg`snOG%MwY9F~G?f`P_76O2xR|h$Dz)2XQwkev)}i=@BQBQ|K5Aw zd;jO*Z+q_z(IW0IUuH$OG`g_z%ASx6p@S;c=l*(jsKUSZH$qc7#E^7xx=q zRC35~{7)svdU@DEIRy|O!TpXye#c~D3=zudROW}q#433dV(Tb8Nx7F&lohLo6TCg4 z-VZWe5C=SfBd~?|e=6Je8T}9dixmKNrf0ntDe_0FkI3|bC>U1win>NsxeCJ1UOj!~SkV^>wUOGW=gmT-fj;*w z%H?|&DDx`y5W~F70GgUpPIuP&!5>^PJl%Jgu6N{FeW}eApEWFMpIU$I3k#>ZZ^{l6 zQ}Q*VeiFYO0O#vjJ?REX2xe^*w5GC63gQ%@=jyW+G@SiKvNUu3B~lTz@4Dk;@s|@x%xK&x!66uJ zGJkPGTk3OEzSbUR*~T~F&6M&9?6t`pjGr%hF;t(UxglPl4td_A#^p8>hF^`vrrU4e zYSAY)S|g;1vh;FVGsSYY)qZFEw_j&JCDo=_`Dmg(?#=Znv zId$Z-4<2y#z_K#X$J3t3@8&;|xi0TRWvkjSR{fLOuDH&&j80kg^+{Y-4IaBKoZILq zBHUR*cxFkz8=h_Y%G(H*EE-QSMRs1(!kjUV34r5qob_GEbek;k<>KYUCuRV>F~7jm zR>)sV3U_AX8N>)7bAuW=Pg^Inb|ugPGc?hf$;?1!$uy4Q-z1+ZA@i6m=1&7A1V<-L zNwPXpT965n&%*6NYDUJcjVa!uKg%f=cD{hUZMbmX?7LNzD8mTDLfy5O%vFY2@h)rv6(;u?3CvNLl->Qvz8{s~cxP%LScbJXb>XX0CdV}DbO)ag1f;lKUtHb$;H&nnUKGQ| zaj=Occ!m!bKZ75;d=DietWCJb-Kl8^xOvI8c0|sJkeyDR*?>9t$~+^(c@53shQhP4 z-OKts6PFTB&8-?&SfxbMD-vzidm#o>tCjF+8Z&E^HX=zkE$Ps^IVIjIOtWKoM~mgT zm6pb;R)OCl$D#le)JBy#sBc@~yh$?Yp{=COF$Kp)RXzApcG>;`A5 zTzD^g#hN{yhncMOM=Xrot3)%WYlhTk470E`TC431r58J^y>V635t;0XD*Y60Lt%EH zuVB+gjncN%)^YcCa@kgw^k7Mr*6Z?yOXEB2xJ!k%;Q1N_#HV|Z42;Ff+~aoZ7Id9G zS(j_xM5``N`kCUh#X{$=^^y0p+HT~`U7oRPS=nmV8%>@$89=BP6*uZqHY4{av?mq+ Q>X-BXl*%Z**$S0^1N8%qg8%>k literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png new file mode 100644 index 0000000000000000000000000000000000000000..843930cb9384156d50b3e150a30556904036aa70 GIT binary patch literal 2114 zcmc(d4OG%s6u@8FW_6aiD8rA`WtNs%=EM}xQ?8tAidm+XMhZx#U;%0>NbN-CEG=|( zj8H4eveZn$(3F~=XiYaqD)_NBMF|D-GZSHd>vU{q+u7MUJ7@R4d++am-+kxZ_x{h{ zd)F?vMF0fu+~K$1Z(Gn30KgW=TowW~0N$RSesDeL6X?O;dLsZxWE#caYll@(@Byp2 z+h_|hj<0?9iN!v@OOM} zjw$>6J)xRBh;4}cUHE>-Fp(hkJhvjE&6h-#~%K^<}~#WZpPkosD|i_0Fv@wnsvGVpfo< zgD!uOR*SU-D+DAbl8aLbN#=W0CLlqhyo9Q&!9Tmg_pQM2rM_S2Y#iCVFWH+c>-`Xf zfGOl@qaBMr`-6LbCI3@A`KN{!U3*>puT(9fe5;c;z<+D*I=DEHIHKkZR9MfPBSd@#3t}Vl< zWbD)jYRTATA2=$mM}bid=SZ|^#tbvB2pGAFyw9Qa_FV+gdbK6aoC0zS#Ws~92}BZ*bGKFu4QW3Gv88=-c`l!C}(P# zLC%|iRhssrQCo;Hg$C33g$R`w{#p~J^pYyxj!Tx!1Z^ZlDCRCCqhq{>6N>mv4p~Y3&-*W+h=<>v_ry5y$4PWlZiu7OF4EW#63+d9J9is)t97r6c0ACLUC^WoCKA3)2;8 zj-rg3xQq}kk6zTwzsBl%EIrh=p`R35Bw>_X&u3)w9+fro-6an)%kpR0JXC&jENv^* zPd0)cE??U(3@xJGwWYqfR-Bo2IbKNK{c+XMOXeYre@}OR;wC%u;&EikEz_^$7D@`q zEQH{Cqqp(t*@t;cTn|(8k%m)e@oTl^v(GkqH#%4B6^C`-ipH$FiJQ$qDA!ab6FU!b zjB7NV7C)6DP*QFMuc_qG@v~nYK>Bt`=;ZvBmQ&{l*6JA3JEF1MGz~MwEmxulqb1 zcf?m4T&myHT$)XCVQQb=bTX6=+6Cmj8gQR{Qe0^mJv;ddX2=EW&>rNJqwNn5=n~!b zBr>Rk0FHLjqHT2lCbtulGKYzZ?^Q=GOj{!O8*OWt@_0-oAV`sf#)Mb2V*~xJH)?e;)(3D$23B^k1+acPqeF+YcXgh zZowtW8_yh!)nb^HEt{vyM@FkfqJ-hBYt|9w)G5q)otoofUV3<_b^DD7a)oA^gr-F) l2QDTluHcM);fTW>ea-_O!U>VGJrk=5{8u_9Qhlq_`yGflO-KL$ literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..f0798b64dfcd360d80305225bcda8a81d2402cd0 GIT binary patch literal 1906 zcmchV2~d+)5P%;j*m4MJi&W4sRmW1)cybsD0e4Re}{`5WE6% z3o1tk0|Yq&YG8tbfCPdB5D_JE1q5>`NB`(B*cm&mGo9|v?tX9IzIpo&w8fDl{%Zih z{9Z@r2EfA1%uZbv9s*hQ4_*}jC@?$}ZEmWC#U0m@=9b0XGc0(S zKNDpD5OM(Q0buX?%=|y4zV^b0dBR0Au!V=hn*$)@1@kvPA30LW9v}Ii!XBS+M0jvGT+<@0_Y4k|@&L?+P{2v)UQ&^Etb`AAa)2WiHcb!)(7+s+!u+4g z%6$gq1E4PeU{&f$&Vvd-brJyT+?Cw6TmV$g06^~ub`N#`(9CMs%X)hQFnbdKWgGw- zIss5{S#ES??aEvH%~`eJHJb1_gJAUm0RRuQfCUHyo?tgj``}Nq7wE!2#%iY=07$(i zlx)Su=Fq>(!bxllieA8y`Bhs+{sI~uuk=-S?_D9?JI`iMoOhNbR3k2~1$ z3)?jm%R!19OwF=1na#MvnE;!4p{8~fO{OnF(#X7MElOl||3+Z@Ny3CdJ4Un(O?new z)gEBkf&{km;bAV_ENw2H&`*a@bf}+Bt`fZ~%Umoj-eFUmhRk0|eR>qVEoxZ2o8q7A zH?({U|4UR|_ish!ul?A~W4=g5L#oZhIrK3@t~pr9W!BvWVIW=raT{TlCaiJ9T)rI<6XqwtOuwK zbN$)up_4iT2lY$P%q;~j!={Veu^ivRtmxs+Sqmn~_IUh^#9@JmKn#_idUV#FO*afJ z{X>lr68W$xZ)B7oC!9}!4i!UAlJ(k!m(az8GlSU78S$=y30ZQ(8(-)K#Mqi?DfVzW zK{MCMbIq_%$8&X7?SCz7ebVo1YwdgPz^kl7I9^wQA*$Y}?^|2}Kao@!q0)3l59#B3 zu}2A0)1d267{gMuZkTP$E%Ks-g%CWsnD^E5=4F+G+JbfdVwUnVNjO%mRH!w6*CmtL zez%iXO?=a0P*$0&BlkK(k7yJzUdN-4q7H<$cgIBAAMm^+&$(wxdEe6mNEg zLfeVJyo|FlE*l-MTFu)Y&=OOH6N=KT{Ml1ucxog~yN%|0EoNfS9x>s?AAPrz;`7*e zie3~VD5!YERu^+!uR&F#IfRzW)!ggt`HnH!c--zvo>9v@=tTS1U%h;0NVhH=3pwh zX{l&Ji@<>%2?LxDb2#LRGU|4TRr0+ahNfjEEvp0L+80t31>MBwocd~j8m)tjbEcxp zX}8!ZQPZ@jX-*@{MZ;lyedJahwe%b@e^P?T#yMrpMD`*V&=m%hAmYe-&y5|3h1n!R zkz4zdUBTY5g-g-QpT}-u-m)7PM5Tpszq*SK-jXOxyssmR=>iO~!ON0Sn>4`R)W?Dr zdZ(6l_+!5plJX8(b~HF<@>m3xvs?Pf$RT0;#IvB6y;v~Z-s6x=$!K_WAED96M^!^q d<3Mrhll>ew(d_R_gh)e4Gx5tbNwJv-{sc1~;ynNW literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png new file mode 100644 index 0000000000000000000000000000000000000000..4d496d92145996ea7785b67ca540297dfb5aab11 GIT binary patch literal 2200 zcmb`Fc~q0f7QhFPbU}n3N{a>%UO8X{1O?eegvN*<1n_~#X25{7WHE$bSVCKuT2aJ? zJuFe#DT@M8w$N4(OUhD$fh0ii88#!k1P~J5hdmzpN0;Y0@7|evf8YJ?%-mVLU5_43 zeIEcnq%+zVZFA~F0Dw8vt+#<$09;*M&{~SnCs5RSW7Pq`;mIU#l(XI`|I>P#vA2Q= zizdG1Kk*6xNO=IV0B}wJLFrCm^a02gREkBH~RCC^kUq- zU;vm|x7n-TEULM+{fW-&>eZ5MiVB^nieCflF^pW3g%grz4-k$ye=p~LlFkC9kVLs4 zm3sxbm+$I>@woloy)%56Qvh~8zYvoG)>{{zTd@P{h#Gs zX8oI7=IiQr(pds}N%VZt@Svq6q~XkH9g1t&^>xyI(KV48PC$6fDsVr&a;Bo#^(H*Q z+zYdG=*xpACeARUC)nCNzP21oe*FU^8ec86i1`Srm>1;t`#$PCI0Ccv=>IKW^Eo?U{!92>)M) z^BTk*Z7qn$1PwKO0VAg*M%U24w&-K=cdqXlFUCLEsH<(U;z)7db77d|g4WR=O$YpA zIZ8cA`1#3@4x<5W_EH=?Dt7(iq8siv_@^@u+69am8qdPGcsi@hi;Og?_oD2wiNW8A z%qfN%8WBg{|LhyMm5H)oPO#v_*AQATo~|sUdf)%n?sl-?b}F{XuQ;N+%jY)^-p&8h z?d<%)X0txtY+B)e`lt@Icw2sZna^@_eqF44$2h?QJ2_82{+jPpVIDa4BDC0p+Oe3( zmcGh$zK>6zD%XhPvh5m`lDyJjydtLAj^^%jIUhM!uDRZfbqp|4HqQUtlo*yYsN`>+tnpHPwY?LDmA*_hBO1uq!$t6!q zd+CgDdS+vb6KbNu)Z(01Cv}x6$?7K!g}5IuQ_UJaA9G}vOqz%oti+`@L^HbBCfF0W zLAFIrv!$bo+L%ae-o|2;;prtOt4&8x%!bLZrXaT{y;V^ z!}OD-%eG9_Xg_}C@Tn=WVG}!d>{h?bg6{pxn*XD6_W31vaYl*tTskgGBUx(ls;%&1 z+R&G^2FNMj{2~+Mh&g|Dmc{66^Llv5D;TXtwbm2mn6wKiYICXXs?$V_BbBPwgnQui zKG&tWFAI|mxKe3>QP=sL&|r(v#?m(z&JzF7dM7HOXeoe%T>nb4GBtQMq3D-eKEHOr z0#VnQmNk^-7Dg!BcGT{|=TuDkeELy&ah6E+;f{h7`eUJL*;U-?SCWU8(Y>Y5I)wMA zWzz}+tGKkFa0aFPRu`Aps6UW5<$#?s@zJ`mC`grb^%I*N*M|D91SZX+jh`l04Tsyt z^Zf7O;0v$HLWcBXwP(B{4dlzUU5^lAd!_RJ%7AX(KGVF6tJBlp;mor4>4b?0L*YX` z#25FiI^>CbUvavhN3fuk#Z@S{QB9ycL6$3(H9zrgTIid|LnzxP+qI-taHJQi*LMVH zr_^@utzW!y(#=}ZU%l*}#uhWZUI;q^b54qzFiW)UBg1!zDyS4`-H2LPd9?e|BlWme zSI&T&9XCOY6dYG+7-q}g_e9a`tKi3%6Bk(6i!WrB9-N}US_)>0pLvZ+Yar3P;}^bA zF`}9CVm|Y%%&t$oV5y;^H$<7VlHhA(^UJcn_@>z*@_Ig_s)={SUYq)qqp}e(zESNZ O^Lr;<-tZ~k0N}q$;f#p@ literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..ccedf593b95840a46c17dbccb8925b3ad8368b8f GIT binary patch literal 2398 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 jysNy$eb012(S{Nb3?Ul82Fq3Mm2+f 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 literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8e55211d17242d0182f8b06d7436aed8777e1 GIT binary patch literal 1904 zcmchW3pCVe6u>{}u{o>hsk~K6Mo3@?XSH5r_joy*hmbN#Dg>{0xAxG)KQ4n2Y%)l3HyKMbO}csLRmvO z`4I02{DS?zU{X|A6qHjZ$;X66NVpGTb386uQcEI|j=#r-9(IAeJETe=5}*JQSV8=s z%HnN zSob>sGM)>KF3w#%i@#Z`8Z<`V|P=EnC5bXxLfF3Y{{ul@NG5~aq zYs`RZVKIJd5UY8Xf?z+<%n4!{(F;b5_3^A)3T@6vEW@JX%Se}uUwN~goHZ?NY;2Yt z(FX8s#ZaN*TaV>kqlL)Y_3yYv$5wY%gr7FK1>U4gWCQOITR{ z|Kd;mYxzq%#q+;?(-09(4KXfi7Sgx}ImmG?y}IS?>G_mwPLWS)9zh}VgnXrG7E1Sd zd813&8>h9^JG@StF)IYKL8&o~Pv z+HglX_wdbdQrle~X1+ItFjx>j!Q)Z`&M6{d+k;^7`m=&@p^X{GF^BfLYQ#4yxYZ@F zB+rm2{5f+}>{l}tUlh_Yy;id@3k6qBe(B;c{T`cXe{#F;>~X!etJRdImYCQO%^u}5 zPUm*QkD__qb?IgNn2$QWd-Yjcnqn)}6}^P=f^)hWW?E*&vBCDe!?yk$eWrd?oy-V) zqny5BD#^T$<1IK7Y){;XP{uimrg=v3*D{G#`>m4|#2&v4u$8(La1Gfy1X%eXb2DQu zuX)x-V}x!iWjc20AVbV~z5>S4GH7IImy_`OgC@Mk$TRN-?p~p0-=VTq3_3y?f+Rwv zm^WH@dl*E}%({t~Tl*M`(O}u__HT(6H9JU7$*&H5e{T`{b=8j!!^Yhv$tVn-QBBF{?k3#B zsIL+zeo)=lV}_e1C$%qkrcCO2;8EExE`sA+KE3qLL6Yk<4V0<+Cs6PE0r4un@kzp=yyZ@Mc0z zrKMGuHR@$NE*iUS#*{njW z=$cEoM$z=wRq@O@F_poeG|NTYp1F*x5?#$U6@+hP)GqzbjX*_^+n!06#y4qgF^U{9;f+y{i literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png new file mode 100644 index 0000000000000000000000000000000000000000..476e86ffd27b013ec46538c4aee3957a19c048f7 GIT binary patch literal 2204 zcmb`Fc~p~E7Qi3Yai$>BGoo0b0#$)lAcj>EmKFvuvPlq%0(KxkCYpr?!j@ndoDSzW zR#{RI0cA-d0V0KjAfN>!UlRiT(vFAz(ViL4>AmmX`}^*9-?{g_ z??a=!ycmB0;0sUplOZRMg=zx;OdxaI4rTyAd3c=Mw+(s(+xGqJKLCJ0OdzAZ-AzJI zpE1$o-by4UKJG35M$`ge`8j|*0DV@!@&13M-j9xn$3R81kR_0z<^X6#L#&Veg_AWL z^$TCtF!>bP1F9*3*aG`2j`|fRCB!8_HIFp)m^iYAhaq+*;3=A38qrL=Glm!(1jSIu zj6gg<18?9C@gFK%_em-P;MfuX?`3V}q6z?L_!@wHLtD8+B>?FC3jl#AE|MJi^Dx^X zzb!TvfcaYh=$-~(cP{|iVQ&ZB+Pn2Fe&?(v&>kb`oFquG01sk-2|xiNzyNEAY`{?f z2M*95;~TsK0GQ)LB&cCo!ECwhM0GA-0X!;Z4QBZQQfNrRS6PDBjeSXHse|?cr}0uw3i378)0-dYV0?@+ zU52~PhSteXQa^)_2jp|ZwfXbylUM388>kMvWV#4lheVd%7+_|_l;3)V)Z?S6Ngzy2S1)_#CXF_{lIW)f-TQm zk@(kBrJHLtblO*_uoyqW zfWHni!GE>iG$gXh%-#sQ6rExllhS-pd~L6PBOjX)zgy5<)oy9tfO;Nbf{W{8tTRo; zbA-Hlx=e?6-tbjNT~%}K(;mM>oKx3`Y*FNX;_!_5&MKwySxwHF8>6jL4UxNGL$~A1 z*!=7|oNJVX>+ExyZ7_>+y=FU>>QZkwv$Uh7T$hLO9;NU1l(u?^EcqP$h09uE0)Y`M zG4-M*CO-WW*;Lm6HD2L>eo*6WwjFBb<8KBB0u)1uc^5FXU>8T^GK3nA~i+r&bLgLomM~k5!C! zO75prDzwBL0>jFnFtH-L9-Y)=D%QohO*VM4dkv=wOvO5!@#Mt0#xmW;7d0N-Q?Mp{ z;p9V4?70UH6SeWeJ03*0VRcZzdVoP;Gx|~fpHIp7M5i!heZuvR1uMRI>Z8R5`10U6 zLPxRgtsY$bk5BUn=lc44jRrSAAt{v8tIB`mhBFaa-{)G^+rlVFIsIn-V(4va$?~`J z-glE*hnb&Z@WgG`?%uO6Nwv1umyf91XM(@W2fn5bkocW@T#bW@36-ME zUb&f-F-*2|A=?~x#BU-|ap|D*^vc{FYl{fgguPI&Qj9BN`!psGw)OJ@7&TJa`ZFZy zG0)0qV<=Sojq`WW{mbJ&xcjEZJvnP=DSXSjdeHM SO`+G)m+z#~%>d5Ed*CN*-+~eV literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png new file mode 100644 index 0000000000000000000000000000000000000000..14af5e1412fe6bfce567f9b030d5c3b09590d3f6 GIT binary patch literal 2404 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 Q>X-BXl*%Z**$S0^1N8%qg8%>k literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png new file mode 100644 index 0000000000000000000000000000000000000000..843930cb9384156d50b3e150a30556904036aa70 GIT binary patch literal 2114 zcmc(d4OG%s6u@8FW_6aiD8rA`WtNs%=EM}xQ?8tAidm+XMhZx#U;%0>NbN-CEG=|( zj8H4eveZn$(3F~=XiYaqD)_NBMF|D-GZSHd>vU{q+u7MUJ7@R4d++am-+kxZ_x{h{ zd)F?vMF0fu+~K$1Z(Gn30KgW=TowW~0N$RSesDeL6X?O;dLsZxWE#caYll@(@Byp2 z+h_|hj<0?9iN!v@OOM} zjw$>6J)xRBh;4}cUHE>-Fp(hkJhvjE&6h-#~%K^<}~#WZpPkosD|i_0Fv@wnsvGVpfo< zgD!uOR*SU-D+DAbl8aLbN#=W0CLlqhyo9Q&!9Tmg_pQM2rM_S2Y#iCVFWH+c>-`Xf zfGOl@qaBMr`-6LbCI3@A`KN{!U3*>puT(9fe5;c;z<+D*I=DEHIHKkZR9MfPBSd@#3t}Vl< zWbD)jYRTATA2=$mM}bid=SZ|^#tbvB2pGAFyw9Qa_FV+gdbK6aoC0zS#Ws~92}BZ*bGKFu4QW3Gv88=-c`l!C}(P# zLC%|iRhssrQCo;Hg$C33g$R`w{#p~J^pYyxj!Tx!1Z^ZlDCRCCqhq{>6N>mv4p~Y3&-*W+h=<>v_ry5y$4PWlZiu7OF4EW#63+d9J9is)t97r6c0ACLUC^WoCKA3)2;8 zj-rg3xQq}kk6zTwzsBl%EIrh=p`R35Bw>_X&u3)w9+fro-6an)%kpR0JXC&jENv^* zPd0)cE??U(3@xJGwWYqfR-Bo2IbKNK{c+XMOXeYre@}OR;wC%u;&EikEz_^$7D@`q zEQH{Cqqp(t*@t;cTn|(8k%m)e@oTl^v(GkqH#%4B6^C`-ipH$FiJQ$qDA!ab6FU!b zjB7NV7C)6DP*QFMuc_qG@v~nYK>Bt`=;ZvBmQ&{l*6JA3JEF1MGz~MwEmxulqb1 zcf?m4T&myHT$)XCVQQb=bTX6=+6Cmj8gQR{Qe0^mJv;ddX2=EW&>rNJqwNn5=n~!b zBr>Rk0FHLjqHT2lCbtulGKYzZ?^Q=GOj{!O8*OWt@_0-oAV`sf#)Mb2V*~xJH)?e;)(3D$23B^k1+acPqeF+YcXgh zZowtW8_yh!)nb^HEt{vyM@FkfqJ-hBYt|9w)G5q)otoofUV3<_b^DD7a)oA^gr-F) l2QDTluHcM);fTW>ea-_O!U>VGJrk=5{8u_9Qhlq_`yGflO-KL$ literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png new file mode 100644 index 0000000000000000000000000000000000000000..f0798b64dfcd360d80305225bcda8a81d2402cd0 GIT binary patch literal 1906 zcmchV2~d+)5P%;j*m4MJi&W4sRmW1)cybsD0e4Re}{`5WE6% z3o1tk0|Yq&YG8tbfCPdB5D_JE1q5>`NB`(B*cm&mGo9|v?tX9IzIpo&w8fDl{%Zih z{9Z@r2EfA1%uZbv9s*hQ4_*}jC@?$}ZEmWC#U0m@=9b0XGc0(S zKNDpD5OM(Q0buX?%=|y4zV^b0dBR0Au!V=hn*$)@1@kvPA30LW9v}Ii!XBS+M0jvGT+<@0_Y4k|@&L?+P{2v)UQ&^Etb`AAa)2WiHcb!)(7+s+!u+4g z%6$gq1E4PeU{&f$&Vvd-brJyT+?Cw6TmV$g06^~ub`N#`(9CMs%X)hQFnbdKWgGw- zIss5{S#ES??aEvH%~`eJHJb1_gJAUm0RRuQfCUHyo?tgj``}Nq7wE!2#%iY=07$(i zlx)Su=Fq>(!bxllieA8y`Bhs+{sI~uuk=-S?_D9?JI`iMoOhNbR3k2~1$ z3)?jm%R!19OwF=1na#MvnE;!4p{8~fO{OnF(#X7MElOl||3+Z@Ny3CdJ4Un(O?new z)gEBkf&{km;bAV_ENw2H&`*a@bf}+Bt`fZ~%Umoj-eFUmhRk0|eR>qVEoxZ2o8q7A zH?({U|4UR|_ish!ul?A~W4=g5L#oZhIrK3@t~pr9W!BvWVIW=raT{TlCaiJ9T)rI<6XqwtOuwK zbN$)up_4iT2lY$P%q;~j!={Veu^ivRtmxs+Sqmn~_IUh^#9@JmKn#_idUV#FO*afJ z{X>lr68W$xZ)B7oC!9}!4i!UAlJ(k!m(az8GlSU78S$=y30ZQ(8(-)K#Mqi?DfVzW zK{MCMbIq_%$8&X7?SCz7ebVo1YwdgPz^kl7I9^wQA*$Y}?^|2}Kao@!q0)3l59#B3 zu}2A0)1d267{gMuZkTP$E%Ks-g%CWsnD^E5=4F+G+JbfdVwUnVNjO%mRH!w6*CmtL zez%iXO?=a0P*$0&BlkK(k7yJzUdN-4q7H<$cgIBAAMm^+&$(wxdEe6mNEg zLfeVJyo|FlE*l-MTFu)Y&=OOH6N=KT{Ml1ucxog~yN%|0EoNfS9x>s?AAPrz;`7*e zie3~VD5!YERu^+!uR&F#IfRzW)!ggt`HnH!c--zvo>9v@=tTS1U%h;0NVhH=3pwh zX{l&Ji@<>%2?LxDb2#LRGU|4TRr0+ahNfjEEvp0L+80t31>MBwocd~j8m)tjbEcxp zX}8!ZQPZ@jX-*@{MZ;lyedJahwe%b@e^P?T#yMrpMD`*V&=m%hAmYe-&y5|3h1n!R zkz4zdUBTY5g-g-QpT}-u-m)7PM5Tpszq*SK-jXOxyssmR=>iO~!ON0Sn>4`R)W?Dr zdZ(6l_+!5plJX8(b~HF<@>m3xvs?Pf$RT0;#IvB6y;v~Z-s6x=$!K_WAED96M^!^q d<3Mrhll>ew(d_R_gh)e4Gx5tbNwJv-{sc1~;ynNW literal 0 HcmV?d00001 diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png new file mode 100644 index 0000000000000000000000000000000000000000..4d496d92145996ea7785b67ca540297dfb5aab11 GIT binary patch literal 2200 zcmb`Fc~q0f7QhFPbU}n3N{a>%UO8X{1O?eegvN*<1n_~#X25{7WHE$bSVCKuT2aJ? zJuFe#DT@M8w$N4(OUhD$fh0ii88#!k1P~J5hdmzpN0;Y0@7|evf8YJ?%-mVLU5_43 zeIEcnq%+zVZFA~F0Dw8vt+#<$09;*M&{~SnCs5RSW7Pq`;mIU#l(XI`|I>P#vA2Q= zizdG1Kk*6xNO=IV0B}wJLFrCm^a02gREkBH~RCC^kUq- zU;vm|x7n-TEULM+{fW-&>eZ5MiVB^nieCflF^pW3g%grz4-k$ye=p~LlFkC9kVLs4 zm3sxbm+$I>@woloy)%56Qvh~8zYvoG)>{{zTd@P{h#Gs zX8oI7=IiQr(pds}N%VZt@Svq6q~XkH9g1t&^>xyI(KV48PC$6fDsVr&a;Bo#^(H*Q z+zYdG=*xpACeARUC)nCNzP21oe*FU^8ec86i1`Srm>1;t`#$PCI0Ccv=>IKW^Eo?U{!92>)M) z^BTk*Z7qn$1PwKO0VAg*M%U24w&-K=cdqXlFUCLEsH<(U;z)7db77d|g4WR=O$YpA zIZ8cA`1#3@4x<5W_EH=?Dt7(iq8siv_@^@u+69am8qdPGcsi@hi;Og?_oD2wiNW8A z%qfN%8WBg{|LhyMm5H)oPO#v_*AQATo~|sUdf)%n?sl-?b}F{XuQ;N+%jY)^-p&8h z?d<%)X0txtY+B)e`lt@Icw2sZna^@_eqF44$2h?QJ2_82{+jPpVIDa4BDC0p+Oe3( zmcGh$zK>6zD%XhPvh5m`lDyJjydtLAj^^%jIUhM!uDRZfbqp|4HqQUtlo*yYsN`>+tnpHPwY?LDmA*_hBO1uq!$t6!q zd+CgDdS+vb6KbNu)Z(01Cv}x6$?7K!g}5IuQ_UJaA9G}vOqz%oti+`@L^HbBCfF0W zLAFIrv!$bo+L%ae-o|2;;prtOt4&8x%!bLZrXaT{y;V^ z!}OD-%eG9_Xg_}C@Tn=WVG}!d>{h?bg6{pxn*XD6_W31vaYl*tTskgGBUx(ls;%&1 z+R&G^2FNMj{2~+Mh&g|Dmc{66^Llv5D;TXtwbm2mn6wKiYICXXs?$V_BbBPwgnQui zKG&tWFAI|mxKe3>QP=sL&|r(v#?m(z&JzF7dM7HOXeoe%T>nb4GBtQMq3D-eKEHOr z0#VnQmNk^-7Dg!BcGT{|=TuDkeELy&ah6E+;f{h7`eUJL*;U-?SCWU8(Y>Y5I)wMA zWzz}+tGKkFa0aFPRu`Aps6UW5<$#?s@zJ`mC`grb^%I*N*M|D91SZX+jh`l04Tsyt z^Zf7O;0v$HLWcBXwP(B{4dlzUU5^lAd!_RJ%7AX(KGVF6tJBlp;mor4>4b?0L*YX` z#25FiI^>CbUvavhN3fuk#Z@S{QB9ycL6$3(H9zrgTIid|LnzxP+qI-taHJQi*LMVH zr_^@utzW!y(#=}ZU%l*}#uhWZUI;q^b54qzFiW)UBg1!zDyS4`-H2LPd9?e|BlWme zSI&T&9XCOY6dYG+7-q}g_e9a`tKi3%6Bk(6i!WrB9-N}US_)>0pLvZ+Yar3P;}^bA zF`}9CVm|Y%%&t$oV5y;^H$<7VlHhA(^UJcn_@>z*@_Ig_s)={SUYq)qqp}e(zESNZ O^Lr;<-tZ~k0N}q$;f#p@ literal 0 HcmV?d00001 diff --git a/schema/div-action-scroll-base.json b/schema/div-action-scroll-base.json new file mode 100644 index 000000000..2c8957721 --- /dev/null +++ b/schema/div-action-scroll-base.json @@ -0,0 +1,13 @@ +{ + "properties": { + "id": { + "$description": "translations.json#/div_action_scroll_id", + "type": "string" + }, + "animated": { + "$description": "translations.json#/div_action_scroll_animated", + "type": "boolean", + "default_value": "true" + } + } +} diff --git a/schema/div-action-scroll-by.json b/schema/div-action-scroll-by.json new file mode 100644 index 000000000..3a2cbe97b --- /dev/null +++ b/schema/div-action-scroll-by.json @@ -0,0 +1,45 @@ +{ + "allOf": [ + { + "$ref": "div-action-scroll-base.json" + }, + { + "type": "object", + "$description": "translations.json#/div_action_scroll_by", + "properties": { + "type": { + "type": "string", + "enum": [ + "scroll_by" + ] + }, + "overflow": { + "$description": "translations.json#/div_action_scroll_overflow", + "type": "string", + "enum": [ + "clamp", + "ring" + ], + "default_value": "clamp" + }, + "offset": { + "$description": "translations.json#/div_action_scroll_by_offset", + "type": "integer", + "default_value": "0" + }, + "item_count": { + "$description": "translations.json#/div_action_scroll_by_item_count", + "type": "integer", + "default_value": "0" + } + }, + "platforms": [ + "android" + ], + "required": [ + "type", + "id" + ] + } + ] +} diff --git a/schema/div-action-scroll-destination.json b/schema/div-action-scroll-destination.json new file mode 100644 index 000000000..af13c645d --- /dev/null +++ b/schema/div-action-scroll-destination.json @@ -0,0 +1,89 @@ +{ + "$description": "translations.json#/div_action_scroll_destination", + "definitions": { + "offset_destination": { + "$description": "translations.json#/div_action_scroll_destination_offset", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "offset" + ] + }, + "value": { + "$description": "translations.json#/div_action_scroll_destination_offset_value", + "$ref": "common.json#/non_negative_integer" + } + }, + "required": [ + "type", + "value" + ] + }, + "index_destination": { + "$description": "translations.json#/div_action_scroll_destination_index", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "index" + ] + }, + "value": { + "$description": "translations.json#/div_action_scroll_destination_index_value", + "$ref": "common.json#/non_negative_integer" + } + }, + "required": [ + "type", + "value" + ] + }, + "start_destination": { + "$description": "translations.json#/div_action_scroll_destination_start", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "start" + ] + } + }, + "required": [ + "type" + ] + }, + "end_destination": { + "$description": "translations.json#/div_action_scroll_destination_end", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "end" + ] + } + }, + "required": [ + "type" + ] + } + }, + "anyOf": [ + { + "$ref": "#/definitions/offset_destination" + }, + { + "$ref": "#/definitions/index_destination" + }, + { + "$ref": "#/definitions/start_destination" + }, + { + "$ref": "#/definitions/end_destination" + } + ] +} \ No newline at end of file diff --git a/schema/div-action-scroll-to.json b/schema/div-action-scroll-to.json new file mode 100644 index 000000000..f26c15644 --- /dev/null +++ b/schema/div-action-scroll-to.json @@ -0,0 +1,31 @@ +{ + "allOf": [ + { + "$ref": "div-action-scroll-base.json" + }, + { + "type": "object", + "$description": "translations.json#/div_action_scroll_to", + "properties": { + "type": { + "type": "string", + "enum": [ + "scroll_to" + ] + }, + "destination": { + "$description": "translations.json#/div_action_scroll_to_destination", + "$ref": "div-action-scroll-destination.json" + } + }, + "platforms": [ + "android" + ], + "required": [ + "type", + "id", + "destination" + ] + } + ] +} diff --git a/schema/div-action-typed.json b/schema/div-action-typed.json index 905a77912..0603f3c0b 100644 --- a/schema/div-action-typed.json +++ b/schema/div-action-typed.json @@ -33,6 +33,12 @@ { "$ref": "div-action-hide-tooltip.json" }, + { + "$ref": "div-action-scroll-by.json" + }, + { + "$ref": "div-action-scroll-to.json" + }, { "$ref": "div-action-set-state.json" }, diff --git a/schema/translations.json b/schema/translations.json index 55cb63033..e92aafa39 100644 --- a/schema/translations.json +++ b/schema/translations.json @@ -147,6 +147,66 @@ "en": "Context menu.", "ru": "Контекстное меню." }, + "div_action_scroll_animated": { + "en": "If `true` (default value) scroll will be animated, else not.", + "ru": "Если `true` (значение по умолчанию) то пролистывание будет анимировано, иначе без анимации." + }, + "div_action_scroll_by": { + "en": "Scrolls scrollable container from current position by `item_count` or by `offset`, if both provided scroll action will be combined, negative numbers associated with backward scroll.", + "ru": "Пролистывает контейнер со скроллом от текущей позиции на `item_count` или `offset`, если оба значения указаны, действие будет скомбинированным, отрицательные значения пролистывают назад." + }, + "div_action_scroll_by_offset": { + "en": "Distance to scroll measured in `dp` from current position, negative value is associated with backward scroll. Applicable only in `gallery`.", + "ru": "Расстояние для скроллинга измеряемое в `dp` от текущей позиции, отрицательные значения пролистывают назад. Применим только в `gallery`" + }, + "div_action_scroll_by_item_count": { + "en": "Count of container items to scroll, negative value is associated with backward scroll.", + "ru": "Количество элементов контейнера, которые надо пролистать, отрицательные значения пролистывают назад." + }, + "div_action_scroll_destination": { + "en": "Specifies the destination of scroll in a container.", + "ru": "Указывает кончную точку пролистывания в контейнере." + }, + "div_action_scroll_destination_end": { + "en": "Specifies container's end as scroll destination.", + "ru": "Указывает конец контейнера как кончную точку пролистывания." + }, + "div_action_scroll_destination_index": { + "en": "Specifies element with provided index as scroll destination.", + "ru": "Указывает элемент с заданным индексом как кончную точку пролистывания." + }, + "div_action_scroll_destination_index_value": { + "en": "Index of contaner's item.", + "ru": "Индекс элемента контейнера." + }, + "div_action_scroll_destination_offset": { + "en": "Specifies position measured in `dp` from container's start as scroll destination. Applicable only in `gallery`.", + "ru": "Указывает позицию измеренную в `dp` от начала контейнера как кончную точку пролистывания. Применм только в `gallery`" + }, + "div_action_scroll_destination_offset_value": { + "en": "Position in `dp`.", + "ru": "Позиция в `dp`." + }, + "div_action_scroll_destination_start": { + "en": "Specifies container's start as scroll destination.", + "ru": "Указывает начало контейнера как кончную точку пролистывания." + }, + "div_action_scroll_id": { + "en": "Identifier of the view that is going to be manipulated.", + "ru": "Идентификатор вью в котором нужно выполнить операцию." + }, + "div_action_scroll_overflow": { + "en": "Specifies how navigation will occur when the boundary elements are reached:

  • `clamp` — Transition will stop at the boundary element (default value);
  • `ring` — Transition will be to the beginning or the end depending on the current element.
  • ", + "ru": "Указывает, как будет происходить навигация при достижении граничных элементов:
  • `clamp` — переход остановится на граничном элементе (значение по умолчанию);
  • `ring` — произойдет переход в начало или конец в зависимости от текущего элемента.
  • " + }, + "div_action_scroll_to": { + "en": "Scrolls or switches container to given destination provided by `destination`.", + "ru": "Выполняет скролл к позиции или переключает элемент в контейнере на указанный папаметром`destiantion`." + }, + "div_action_scroll_to_destination": { + "en": "Specifies destination of scroll:
  • `index` - scroll or switch to item with index provided by `value`;
  • `offset` - scroll to position measured in `dp` from container's start and provided by `value`. Applicable only in `gallery`;
  • `start` - scrolls to start of container;
  • `end` - scrolls to end of container.
  • .", + "ru": "Указывает конечную точку пролистывания:
  • `index` - пролистывание до элемента с индексом, указанным в `value`;
  • `offset` - пролистывание до позиции измеренной в `dp` от начала контейнера, указанной в `value`. Применим только в `gallery`;
  • `start` - пролистывание в начало контейнера;
  • `end` - пролистывание в конец контейнера.
  • ." + }, "div_action_set_state": { "en": "Switches the appearance of content in `div-state`.", "ru": "Устанавливает новый внешний вид контента в `div-state`." diff --git a/test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json b/test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json new file mode 100644 index 000000000..39f027649 --- /dev/null +++ b/test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json @@ -0,0 +1,217 @@ +{ + "description": "Use typed actions for scroll and navigation in gallery", + "platforms": [ + "android" + ], + "div_data": { + "templates": { + "text_block": { + "type": "text", + "width": { + "type": "match_parent" + }, + "height": { + "type": "fixed", + "value": 80 + }, + "background": [ + { + "type": "solid", + "color": "#eeeeee" + } + ], + "font_size": 20, + "text_alignment_vertical": "center", + "text_alignment_horizontal": "center", + "text_color": "#000000", + "margins": { + "left": 10, + "right": 10 + } + } + }, + "card": { + "log_id": "card", + "states": [ + { + "state_id": 0, + "div": { + "type": "container", + "orientation": "vertical", + "items": [ + { + "type": "gallery", + "id": "gallery1", + "scroll_mode": "default", + "items": [ + { + "text": "Item 0", + "type": "text_block" + }, + { + "text": "Item 1", + "type": "text_block" + }, + { + "text": "Item 2", + "type": "text_block" + }, + { + "text": "Item 3", + "type": "text_block" + }, + { + "text": "Item 4", + "type": "text_block" + }, + { + "text": "Item 5", + "type": "text_block" + } + ] + } + ] + } + } + ] + } + }, + "steps": [ + { + "expected_screenshot": "step0.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/current", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "destination": { + "type": "index", + "value": 1 + } + } + } + ], + "expected_screenshot": "step1.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/next", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "item_count": 1 + } + } + ], + "expected_screenshot": "step2.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/prev", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "item_count": -1 + } + } + ], + "expected_screenshot": "step1.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/end", + "typed": { + "type": "scroll_to", + "destination": { + "type": "end" + }, + "id": "gallery1" + } + } + ], + "delay": 500, + "expected_screenshot": "step4.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/start", + "typed": { + "type": "scroll_to", + "destination": { + "type": "start" + }, + "id": "gallery1" + } + } + ], + "delay": 500, + "expected_screenshot": "step0.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/current 2", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "destination": { + "type": "index", + "value": 1 + } + } + } + ], + "expected_screenshot": "step1.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/forward", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "offset": 50 + } + } + ], + "expected_screenshot": "step7.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/backward", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "offset": -50 + } + } + ], + "expected_screenshot": "step1.png" + }, + { + "div_actions": [ + { + "log_id": "gallery1/to_position", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "destination": { + "type": "offset", + "value": 200 + } + } + } + ], + "expected_screenshot": "step9.png" + } + ] +} + diff --git a/test_data/regression_test_data/gallery/gallery-item-actions-typed.json b/test_data/regression_test_data/gallery/gallery-item-actions-typed.json new file mode 100644 index 000000000..92a2b11e0 --- /dev/null +++ b/test_data/regression_test_data/gallery/gallery-item-actions-typed.json @@ -0,0 +1,718 @@ +{ + "templates": { + "header": { + "type": "text", + "font_size": 18, + "paddings": { + "left": 10, + "right": 10, + "top": 10, + "bottom": 5 + } + }, + "button": { + "type": "text", + "height": { + "type": "fixed", + "value": 30 + }, + "width": { + "type": "fixed", + "value": 60 + }, + "text_alignment_horizontal": "center", + "text_alignment_vertical": "center", + "font_size": 18, + "font_weight": "bold", + "text_color": "#ffffff", + "background": [ + { + "color": "#D098D3", + "type": "solid" + } + ], + "margins": { + "left": 5, + "right": 5 + }, + "border": { + "corner_radius": 6 + } + }, + "text_block": { + "type": "text", + "$text": "header", + "width": { + "type": "match_parent" + }, + "height": { + "type": "fixed", + "value": 80 + }, + "border": { + "corner_radius": 6 + }, + "background": [ + { + "color": "#0e000000", + "type": "solid" + } + ], + "font_size": 20, + "text_alignment_vertical": "center", + "text_alignment_horizontal": "center", + "text_color": "#000000", + "margins": { + "left": 10, + "right": 10 + } + } + }, + "card": { + "log_id": "card", + "states": [ + { + "state_id": 0, + "div": { + "type": "container", + "orientation": "vertical", + "items": [ + { + "type": "header", + "text": "scroll_mode = default" + }, + { + "type": "gallery", + "id": "gallery1", + "scroll_mode": "default", + "default_item": 1, + "items": [ + { + "text": "Item 0", + "type": "text_block" + }, + { + "text": "Item 1", + "type": "text_block" + }, + { + "text": "Item 2", + "type": "text_block" + }, + { + "text": "Item 3", + "type": "text_block" + }, + { + "text": "Item 4", + "type": "text_block" + }, + { + "text": "Item 5", + "type": "text_block" + } + ] + }, + { + "type": "header", + "text": "scroll_mode = default. overflow=ring" + }, + { + "type": "gallery", + "id": "gallery4", + "scroll_mode": "default", + "default_item": 1, + "items": [ + { + "text": "Item 0", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 1", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 2", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 3", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 4", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 5", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + } + ] + }, + { + "type": "header", + "text": "scroll_mode = paging" + }, + { + "type": "gallery", + "id": "gallery2", + "scroll_mode": "paging", + "default_item": 1, + "items": [ + { + "text": "Item 0", + "type": "text_block" + }, + { + "text": "Item 1", + "type": "text_block" + }, + { + "text": "Item 2", + "type": "text_block" + }, + { + "text": "Item 3", + "type": "text_block" + }, + { + "text": "Item 4", + "type": "text_block" + }, + { + "text": "Item 5", + "type": "text_block" + } + ] + }, + { + "type": "header", + "text": "scroll_mode = paging. overflow=ring" + }, + { + "type": "gallery", + "id": "gallery3", + "scroll_mode": "paging", + "default_item": 1, + "items": [ + { + "text": "Item 0", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 1", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 2", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 3", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 4", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + }, + { + "text": "Item 5", + "type": "text_block", + "width": { + "type": "fixed", + "value": 600 + } + } + ] + }, + { + "type": "container", + "orientation": "horizontal", + "content_alignment_horizontal": "center", + "items": [ + { + "type": "button", + "text": "<<", + "actions": [ + { + "log_id": "gallery1/first", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "animated": false, + "destination": { + "type": "index", + "value": 0 + } + } + }, + { + "log_id": "gallery2/first", + "typed": { + "type": "scroll_to", + "id": "gallery2", + "destination": { + "type": "index", + "value": 0 + } + } + }, + { + "log_id": "gallery3/first", + "typed": { + "type": "scroll_to", + "id": "gallery3", + "animated": false, + "destination": { + "type": "index", + "value": 0 + } + } + }, + { + "log_id": "gallery4/first", + "typed": { + "type": "scroll_to", + "id": "gallery4", + "destination": { + "type": "index", + "value": 0 + } + } + } + ] + }, + { + "type": "button", + "text": "<", + "actions": [ + { + "log_id": "gallery1/prev", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "item_count": -1, + "animated": false + } + }, + { + "log_id": "gallery2/prev", + "typed": { + "type": "scroll_by", + "id": "gallery2", + "item_count": -1 + } + }, + { + "log_id": "gallery3/prev", + "typed": { + "type": "scroll_by", + "id": "gallery3", + "overflow": "ring", + "item_count": -1, + "animated": false + } + }, + { + "log_id": "gallery4/prev", + "typed": { + "type": "scroll_by", + "id": "gallery4", + "overflow": "ring", + "item_count": -1 + } + } + ] + }, + { + "type": "button", + "text": ">", + "actions": [ + { + "log_id": "gallery1/next", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "item_count": 1, + "animated": false + } + }, + { + "log_id": "gallery2/next", + "typed": { + "type": "scroll_by", + "id": "gallery2", + "item_count": 1 + } + }, + { + "log_id": "gallery3/next", + "typed": { + "type": "scroll_by", + "id": "gallery3", + "overflow": "ring", + "item_count": 1, + "animated": false + } + }, + { + "log_id": "gallery4/next", + "typed": { + "type": "scroll_by", + "id": "gallery4", + "overflow": "ring", + "item_count": 1 + } + } + ] + }, + { + "type": "button", + "text": ">>", + "actions": [ + { + "log_id": "gallery1/last", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "animated": false, + "destination": { + "type": "index", + "value": 5 + } + } + }, + { + "log_id": "gallery2/last", + "typed": { + "type": "scroll_to", + "id": "gallery2", + "destination": { + "type": "index", + "value": 5 + } + } + }, + { + "log_id": "gallery3/last", + "typed": { + "type": "scroll_to", + "id": "gallery3", + "animated": false, + "destination": { + "type": "index", + "value": 5 + } + } + }, + { + "log_id": "gallery4/last", + "typed": { + "type": "scroll_to", + "id": "gallery4", + "destination": { + "type": "index", + "value": 5 + } + } + } + ] + } + ], + "paddings": { + "top": 10 + } + }, + { + "type": "container", + "orientation": "horizontal", + "content_alignment_horizontal": "center", + "items": [ + { + "type": "button", + "text": "<<", + "actions": [ + { + "log_id": "gallery1/scroll_to_start", + "typed": { + "type": "scroll_to", + "destination": { + "type": "start" + }, + "id": "gallery1", + "animated": false + } + }, + { + "log_id": "gallery2/scroll_to_start", + "typed": { + "type": "scroll_to", + "destination": { + "type": "start" + }, + "id": "gallery2" + } + }, + { + "log_id": "gallery3/scroll_to_start", + "typed": { + "type": "scroll_to", + "destination": { + "type": "start" + }, + "id": "gallery3", + "animated": false + } + }, + { + "log_id": "gallery4/scroll_to_start", + "typed": { + "type": "scroll_to", + "destination": { + "type": "start" + }, + "id": "gallery4" + } + } + ] + }, + { + "type": "button", + "text": "<", + "actions": [ + { + "log_id": "gallery1/scroll_backward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "offset": -50, + "animated": false + } + }, + { + "log_id": "gallery2/scroll_backward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery2", + "offset": -50 + } + }, + { + "log_id": "gallery3/scroll_backward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery3", + "offset": -50, + "overflow": "ring", + "animated": false + } + }, + { + "log_id": "gallery4/scroll_backward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery4", + "offset": -50, + "overflow": "ring" + } + } + ] + }, + { + "type": "button", + "text": "*", + "actions": [ + { + "log_id": "gallery1/scroll to position 300dp", + "typed": { + "type": "scroll_to", + "id": "gallery1", + "animated": false, + "destination": { + "type": "offset", + "value": 300 + } + } + }, + { + "log_id": "gallery2/scroll to position 300dp", + "typed": { + "type": "scroll_to", + "id": "gallery2", + "destination": { + "type": "offset", + "value": 300 + } + } + }, + { + "log_id": "gallery3/scroll to position 300dp", + "typed": { + "type": "scroll_to", + "id": "gallery3", + "animated": false, + "destination": { + "type": "offset", + "value": 300 + } + } + }, + { + "log_id": "gallery4/scroll to position 300dp", + "typed": { + "type": "scroll_to", + "id": "gallery4", + "destination": { + "type": "offset", + "value": 300 + } + } + } + ] + }, + { + "type": "button", + "text": ">", + "actions": [ + { + "log_id": "gallery1/scroll_forward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery1", + "offset": 50, + "animated": false + } + }, + { + "log_id": "gallery2/scroll_forward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery2", + "offset": 50 + } + }, + { + "log_id": "gallery3/scroll_forward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery3", + "offset": 50, + "overflow": "ring", + "animated": false + } + }, + { + "log_id": "gallery4/scroll_forward by 50dp", + "typed": { + "type": "scroll_by", + "id": "gallery4", + "offset": 50, + "overflow": "ring" + } + } + ] + }, + { + "type": "button", + "text": ">>", + "actions": [ + { + "log_id": "gallery1/scroll_to_end", + "typed": { + "type": "scroll_to", + "destination": { + "type": "end" + }, + "id": "gallery1", + "animated": false + } + }, + { + "log_id": "gallery2/scroll_to_end", + "typed": { + "type": "scroll_to", + "destination": { + "type": "end" + }, + "id": "gallery2" + } + }, + { + "log_id": "gallery3/scroll_to_end", + "typed": { + "type": "scroll_to", + "destination": { + "type": "end" + }, + "id": "gallery3", + "animated": false + } + }, + { + "log_id": "gallery4/scroll_to_end", + "typed": { + "type": "scroll_to", + "destination": { + "type": "end" + }, + "id": "gallery4" + } + } + ] + } + ], + "paddings": { + "top": 10 + } + } + ] + } + } + ] + } +} + diff --git a/test_data/regression_test_data/index.json b/test_data/regression_test_data/index.json index 67678eafa..7e62ecab2 100644 --- a/test_data/regression_test_data/index.json +++ b/test_data/regression_test_data/index.json @@ -224,6 +224,24 @@ ], "file": "gallery/gallery-item-actions.json" }, + { + "title": "Gallery item actions typed", + "tags": [ + "DivGallery", + "TypedActions" + ], + "steps": [ + "Horizontal swipe to left", + "Horizontal swipe to right", + "Click on buttons" + ], + "expected_results": [ + "Content is changes depending on scroll direction or clicked buttons", + "Gallery scroll is logged", + "first and last galleries are scrolled without animation" + ], + "file": "gallery/gallery-item-actions-typed.json" + }, { "title": "Gallery default item states", "automated": [