feat(components): [el-dropdown] add new "popper-class" prop (#4909)

Co-authored-by: João Gonçalves <joaogoncalves@pixelmatters.com>
This commit is contained in:
João Gonçalves
2021-12-21 01:44:37 +00:00
committed by GitHub
parent 9207a615a7
commit 0a43be5939
3 changed files with 37 additions and 5 deletions

View File

@@ -19,10 +19,10 @@ Toggleable menu for displaying lists of links and actions.
cursor: pointer;
color: var(--el-color-primary);
}
.el-icon--right {
font-size: 12px;
vertical-align: middle;
}
.el-icon--right {
font-size: 12px;
vertical-align: middle;
}
}
.block-col-2 {
@@ -122,6 +122,7 @@ dropdown/sizes
| show-timeout | Delay time before show a dropdown (only works when trigger is `hover`) | number | — | 250 |
| hide-timeout | Delay time before hide a dropdown (only works when trigger is `hover`) | number | — | 150 |
| tabindex | [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of Dropdown | number | — | 0 |
| popper-class | custom class name for Dropdown's dropdown | string | — | — |
## Dropdown Slots

View File

@@ -364,4 +364,31 @@ describe('Dropdown', () => {
await sleep(TIMEOUT)
expect(content.visible).toBe(true)
})
test('popperClass', async () => {
const wrapper = await _mount(
`
<el-dropdown ref="b" max-height="60px" popper-class="custom-popper-class">
<span class="el-dropdown-link" ref="a">
dropdown<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>Apple</el-dropdown-item>
<el-dropdown-item>Orange</el-dropdown-item>
<el-dropdown-item>Cherry</el-dropdown-item>
<el-dropdown-item disabled>Peach</el-dropdown-item>
<el-dropdown-item divided>Pear</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
`,
() => ({})
)
const content = wrapper.findComponent({ ref: 'b' }) as any
const popperId = content?.componentVM?.triggerVnode?.popperId
const popperElement = document.getElementById(popperId)
expect(popperElement.classList.contains('custom-popper-class')).toBe(true)
})
})

View File

@@ -9,7 +9,7 @@
pure
:manual-mode="true"
:trigger="[trigger]"
popper-class="el-dropdown__popper"
:popper-class="`el-dropdown__popper ${popperClass}`"
append-to-body
transition="el-zoom-in-top"
:stop-popper-mouse-event="false"
@@ -127,6 +127,10 @@ export default defineComponent({
type: [Number, String],
default: '',
},
popperClass: {
type: String,
default: '',
},
},
emits: ['visible-change', 'click', 'command'],
setup(props, { emit }) {