File tree Expand file tree Collapse file tree 3 files changed +26
-3
lines changed Expand file tree Collapse file tree 3 files changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ const wrapperClasses = [
61
61
tabindex = { item .href || item .disabled ? undefined : 0 }
62
62
data-value = { item .value }
63
63
data-name = { item .name }
64
- data-disabled = { item .disabled }
64
+ data-disabled = { item .disabled ? ' true ' : undefined }
65
65
data-selected = { item .selected }
66
66
>
67
67
<ConditionalWrapper condition = { !! item .href } >
@@ -99,7 +99,7 @@ const wrapperClasses = [
99
99
const handleClick = (list: Element, items: Element[], event: Event) => {
100
100
const target = event.target as HTMLElement
101
101
102
- if (target.dataset.value) {
102
+ if (target.dataset.value && !target.dataset.disabled ) {
103
103
dispatch('listOnSelect', {
104
104
value: target.dataset.value,
105
105
name: target.dataset.name,
Original file line number Diff line number Diff line change 9
9
@include typography (primary);
10
10
@include border-radius (md);
11
11
@include size (w300px);
12
+ @include position (' t-100%' );
12
13
13
14
transform : translateY (-5px );
14
15
pointer-events : none ;
Original file line number Diff line number Diff line change @@ -14,20 +14,30 @@ export type PopoverPosition = 'top'
14
14
| 'bottom-start'
15
15
| 'bottom-end'
16
16
17
+ type Callback = {
18
+ trigger : HTMLElement
19
+ popover : HTMLElement
20
+ position : PopoverPosition | undefined
21
+ }
22
+
17
23
type Popover = {
18
24
trigger : string
19
25
popover : string
20
26
position ?: PopoverPosition
21
27
offset ?: number
22
28
closeOnBlur ?: boolean
29
+ onOpen ?: ( args : Callback ) => unknown
30
+ onClose ?: ( args : Callback ) => unknown
23
31
}
24
32
25
33
export const popover = ( {
26
34
trigger,
27
35
popover,
28
36
position,
29
37
offset = 10 ,
30
- closeOnBlur = true
38
+ closeOnBlur = true ,
39
+ onOpen,
40
+ onClose
31
41
} : Popover ) => {
32
42
const triggerDOM = document . querySelector ( trigger ) as HTMLElement
33
43
const popoverDOM = document . querySelector ( popover ) as HTMLElement
@@ -143,6 +153,12 @@ export const popover = ({
143
153
popoverDOM . removeAttribute ( 'data-show' )
144
154
}
145
155
} , 300 )
156
+
157
+ onOpen ?.( {
158
+ trigger : triggerDOM ,
159
+ popover : popoverDOM ,
160
+ position
161
+ } )
146
162
}
147
163
148
164
const handleClose = ( event : MouseEvent ) => {
@@ -153,6 +169,12 @@ export const popover = ({
153
169
154
170
if ( hidePopover ) {
155
171
popoverDOM . dataset . show = ''
172
+
173
+ onClose ?.( {
174
+ trigger : triggerDOM ,
175
+ popover : popoverDOM ,
176
+ position
177
+ } )
156
178
}
157
179
158
180
setTimeout ( ( ) => {
You canāt perform that action at this time.
0 commit comments