MDL-68833 theme_boost: Stop overriding popover triggers
authorAndrew Nicols <andrew@nicols.co.uk>
Wed, 27 May 2020 06:53:22 +0000 (14:53 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Wed, 3 Jun 2020 01:21:07 +0000 (09:21 +0800)
The trigger specified in JS overrides any `data-trigger` in the DOM,
which changed the behaviour of Popovers.

theme/boost/amd/build/loader.min.js
theme/boost/amd/build/loader.min.js.map
theme/boost/amd/src/loader.js

index e762a98..8d040cd 100644 (file)
Binary files a/theme/boost/amd/build/loader.min.js and b/theme/boost/amd/build/loader.min.js differ
index 2317b9b..9549e86 100644 (file)
Binary files a/theme/boost/amd/build/loader.min.js.map and b/theme/boost/amd/build/loader.min.js.map differ
index b70eda4..5d1d08d 100644 (file)
@@ -27,7 +27,6 @@
 import $ from 'jquery';
 import Aria from './aria';
 import Bootstrap from './bootstrap/index';
-import CustomEvents from 'core/custom_interaction_events';
 import Pending from 'core/pending';
 import Scroll from './scroll';
 import setupBootstrapPendingChecks from './pending';
@@ -56,16 +55,15 @@ const rememberTabs = () => {
  */
 const enablePopovers = () => {
     $('body').popover({
+        container: 'body',
         selector: '[data-toggle="popover"]',
-        trigger: 'focus hover',
-        placement: 'auto'
+        trigger: 'focus',
     });
 
-    CustomEvents.define($('body'), [
-        CustomEvents.events.escape,
-    ]);
-    $('body').on(CustomEvents.events.escape, '[data-toggle=popover]', function() {
-        $(this).trigger('blur');
+    document.addEventListener('keydown', e => {
+        if (e.key === 'Escape' && e.target.closest('[data-toggle="popover"]')) {
+            $(e.target).popover('hide');
+        }
     });
 };
 
@@ -76,7 +74,7 @@ const enablePopovers = () => {
 const enableTooltips = () => {
     $('body').tooltip({
         container: 'body',
-        selector: '[data-toggle="tooltip"]'
+        selector: '[data-toggle="tooltip"]',
     });
 };