Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouismaxime.piton <louismaxime.piton@orange.com>2022-03-08 14:34:21 +0300
committerMark Otto <otto@github.com>2022-03-09 01:37:44 +0300
commit6c40476af9b2d54fc8029294be1d9e4e8a246482 (patch)
tree4288602e55b80b29bbaa15c3309f5c5b49cc70df /js/src/dropdown.js
parent2d11c1c28a1617d61421e73e8d48692204083148 (diff)
Fix dropdowns
Diffstat (limited to 'js/src/dropdown.js')
-rw-r--r--js/src/dropdown.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index c93739b523..65b3aa372a 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -48,6 +48,8 @@ const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_DROPUP = 'dropup'
const CLASS_NAME_DROPEND = 'dropend'
const CLASS_NAME_DROPSTART = 'dropstart'
+const CLASS_NAME_DROPUP_CENTER = 'dropup-center'
+const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'
const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`
@@ -62,6 +64,8 @@ const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'
const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'
const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'
const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'
+const PLACEMENT_TOPCENTER = 'top'
+const PLACEMENT_BOTTOMCENTER = 'bottom'
const Default = {
offset: [0, 2],
@@ -248,6 +252,14 @@ class Dropdown extends BaseComponent {
return PLACEMENT_LEFT
}
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
+ return PLACEMENT_TOPCENTER
+ }
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
+ return PLACEMENT_BOTTOMCENTER
+ }
+
// We need to trim the value because custom properties can also include spaces
const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'
@@ -400,8 +412,12 @@ class Dropdown extends BaseComponent {
const instance = Dropdown.getOrCreateInstance(getToggleButton)
if (isEscapeEvent) {
- instance.hide()
- getToggleButton.focus()
+ if (getToggleButton.classList.contains(CLASS_NAME_SHOW)) {
+ instance.hide()
+ getToggleButton.focus()
+ event.stopPropagation()
+ }
+
return
}