Skip to content

Commit dad6a97

Browse files
authored
fix(popper): [tooltip,popover] fix popper doms in custom element, cant get zindex (#3125)
* fix(popper): fix popper doms in custom element, cant get zindex * fix(utils): update packages's versions
1 parent 64423ee commit dad6a97

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

packages/renderless/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/vue-renderless",
3-
"version": "3.21.1",
3+
"version": "3.21.2",
44
"private": true,
55
"description": "An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.",
66
"author": "OpenTiny Team",
@@ -36,8 +36,8 @@
3636
"release": "esno ./scripts/postbuild.ts && shx cp README.md dist"
3737
},
3838
"dependencies": {
39-
"color": "4.2.3",
40-
"@opentiny/utils": "workspace:~"
39+
"@opentiny/utils": "workspace:~",
40+
"color": "4.2.3"
4141
},
4242
"devDependencies": {
4343
"esno": "^4.7.0",

packages/renderless/src/common/deps/popper.ts

+4
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ const isFixed = (el: HTMLElement) => {
7777
return true
7878
}
7979

80+
// 处理遇到 shadowRoot的情况
81+
if (el.host) {
82+
el = el.host
83+
}
8084
return el.parentNode ? isFixed(el.parentNode as HTMLElement) : false
8185
}
8286

packages/renderless/src/common/deps/vue-popper.ts

+5
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ const getReferMaxZIndex = (reference) => {
5959
do {
6060
reference = reference.parentNode
6161

62+
// 处理遇到shadowRoot的情况
63+
if (reference && reference instanceof ShadowRoot && reference.host) {
64+
reference = reference.host
65+
}
66+
6267
if (reference) {
6368
z = getZIndex(reference)
6469
} else {

packages/renderless/src/grid/utils/dom.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,15 @@ export const colToVisible = ($table, column, move) => {
180180
}
181181

182182
export const hasDataTag = (el, value) => {
183-
// el可能为shadow-root,shadow-root没有getAttribute方法
184-
if (!el || !value || !el.getAttribute) {
183+
if (!el || !value) {
185184
return false
186185
}
187186

187+
// 处理遇到 shadowRoot的情况
188+
if (el.host) {
189+
el = el.host
190+
}
191+
188192
return (' ' + el.getAttribute('data-tag') + ' ').includes(' ' + value + ' ')
189193
}
190194

0 commit comments

Comments
 (0)