diff --git a/client/web/divkit/src/components/tooltip/Tooltip.svelte b/client/web/divkit/src/components/tooltip/Tooltip.svelte
index d1f0176e3..c683a5d8c 100644
--- a/client/web/divkit/src/components/tooltip/Tooltip.svelte
+++ b/client/web/divkit/src/components/tooltip/Tooltip.svelte
@@ -172,7 +172,15 @@
event.stopPropagation();
event.preventDefault();
- rootCtx.onTooltipClose(internalId);
+ if (componentContext.getJsonWithVars(data.close_by_tap_outside) !== false) {
+ rootCtx.onTooltipClose(internalId);
+ }
+
+ if (data.tap_outside_actions) {
+ componentContext.execAnyActions(data.tap_outside_actions, {
+ processUrls: true
+ });
+ }
}
function onWindowResize(): void {
@@ -205,10 +213,13 @@
+
+
{#if visible && modal}
diff --git a/client/web/divkit/src/types/base.d.ts b/client/web/divkit/src/types/base.d.ts
index 7c876fdfe..4478d896e 100644
--- a/client/web/divkit/src/types/base.d.ts
+++ b/client/web/divkit/src/types/base.d.ts
@@ -121,6 +121,8 @@ export interface Tooltip {
animation_out?: Animation;
mode?: TooltipMode;
+ tap_outside_actions?: Action[];
+ close_by_tap_outside?: boolean;
}
export interface DivLayoutProvider {
diff --git a/schema/div-tooltip.json b/schema/div-tooltip.json
index d1449ee95..5637f66fa 100644
--- a/schema/div-tooltip.json
+++ b/schema/div-tooltip.json
@@ -72,7 +72,8 @@
},
"$description": "translations.json#/div_tooltip_tap_outside_actions",
"platforms": [
- "ios"
+ "ios",
+ "web"
]
},
"close_by_tap_outside": {
@@ -81,7 +82,8 @@
"default_value": "true",
"platforms": [
"android",
- "ios"
+ "ios",
+ "web"
]
},
"background_accessibility_description": {