Jelajahi Sumber

Add check for target in event's composed path

yanasang 5 tahun lalu
induk
melakukan
6eb5df2cd4
2 mengubah file dengan 5 tambahan dan 4 penghapusan
  1. 3 2
      packages/ckeditor5-ui/src/bindings/clickoutsidehandler.js
  2. 2 2
      yarn.lock

+ 3 - 2
packages/ckeditor5-ui/src/bindings/clickoutsidehandler.js

@@ -25,13 +25,14 @@
  * @param {Function} options.callback An action executed by the handler.
  */
 export default function clickOutsideHandler( { emitter, activator, callback, contextElements } ) {
-	emitter.listenTo( document, 'mousedown', ( evt, { target } ) => {
+	emitter.listenTo( document, 'mousedown', ( evt, domEvt ) => {
 		if ( !activator() ) {
 			return;
 		}
 
 		for ( const contextElement of contextElements ) {
-			if ( contextElement.contains( target ) ) {
+			if ( contextElement.contains( domEvt.target ) ||
+						( 'composedPath' in domEvt && domEvt.composedPath().includes( contextElement ) ) ) {
 				return;
 			}
 		}

+ 2 - 2
yarn.lock

@@ -6509,7 +6509,7 @@ jsbn@~0.1.0:
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
   integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
 
-"jsdoc@github:ckeditor/jsdoc#fixed-trailing-comment-doclets":
+jsdoc@ckeditor/jsdoc#fixed-trailing-comment-doclets:
   version "3.6.4"
   resolved "https://codeload.github.com/ckeditor/jsdoc/tar.gz/cb34eb2c1b4051103bbb2e802f8319633d820f56"
   dependencies:
@@ -6528,7 +6528,7 @@ jsbn@~0.1.0:
     taffydb "2.6.2"
     underscore "~1.10.2"
 
-"jsdoc@github:ckeditor/jsdoc#node12":
+jsdoc@ckeditor/jsdoc#node12:
   version "3.4.3"
   resolved "https://codeload.github.com/ckeditor/jsdoc/tar.gz/e6c213ab53c20457d2778953a6d3fc54311f9a67"
   dependencies: