@@ -97,13 +97,14 @@ const CPopover = defineComponent({
9797 } )
9898 }
9999
100- const handleToggle = ( ) => {
100+ const handleToggle = ( event : Event ) => {
101+ togglerRef . value = event . target
101102 visible . value = ! visible . value
102103 }
103104
104105 const initPopper = ( ) => {
105106 if ( togglerRef . value ) {
106- popper . value = createPopper ( togglerRef . value . firstChild , popoverRef . value , {
107+ popper . value = createPopper ( togglerRef . value , popoverRef . value , {
107108 placement : props . placement ,
108109 modifiers : [
109110 {
@@ -167,28 +168,16 @@ const CPopover = defineComponent({
167168 ) ,
168169 ) ,
169170 ) ,
170- h (
171- 'span' ,
172- {
173- style : {
174- display : 'contents' ,
171+ slots . toggler &&
172+ slots . toggler ( {
173+ on : {
174+ click : ( event : Event ) => props . trigger . includes ( 'click' ) && handleToggle ( event ) ,
175+ blur : ( event : Event ) => props . trigger . includes ( 'focus' ) && handleToggle ( event ) ,
176+ focus : ( event : Event ) => props . trigger . includes ( 'focus' ) && handleToggle ( event ) ,
177+ mouseenter : ( event : Event ) => props . trigger . includes ( 'hover' ) && handleToggle ( event ) ,
178+ mouseleave : ( event : Event ) => props . trigger . includes ( 'hover' ) && handleToggle ( event ) ,
175179 } ,
176- ref : togglerRef ,
177- } ,
178- {
179- default : ( ) =>
180- slots . toggler &&
181- slots . toggler ( {
182- on : {
183- click : ( ) => props . trigger . includes ( 'click' ) && handleToggle ( ) ,
184- blur : ( ) => props . trigger . includes ( 'focus' ) && handleToggle ( ) ,
185- focus : ( ) => props . trigger . includes ( 'focus' ) && handleToggle ( ) ,
186- mouseenter : ( ) => props . trigger . includes ( 'hover' ) && handleToggle ( ) ,
187- mouseleave : ( ) => props . trigger . includes ( 'hover' ) && handleToggle ( ) ,
188- } ,
189- } ) ,
190- } ,
191- ) ,
180+ } ) ,
192181 ]
193182 } ,
194183} )
0 commit comments