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:
authorGeoSot <geo.sotis@gmail.com>2021-07-08 18:23:54 +0300
committerXhmikosR <xhmikosr@gmail.com>2021-07-22 17:54:48 +0300
commit99161913115fa4637cb7ab723bbae3fd552d0d09 (patch)
tree2d169ca25e4a2ed13a0285fca9ce8407b3533acd /js/src/dropdown.js
parentb1dad0943f4fc8c6eb6bf58f5e38a5615dd78e5b (diff)
extract createPopper method
Diffstat (limited to 'js/src/dropdown.js')
-rw-r--r--js/src/dropdown.js50
1 files changed, 27 insertions, 23 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index 95752d9988..60a27dbb0d 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -129,7 +129,6 @@ class Dropdown extends BaseComponent {
return
}
- const parent = Dropdown.getParentFromElement(this._element)
const relatedTarget = {
relatedTarget: this._element
}
@@ -140,32 +139,12 @@ class Dropdown extends BaseComponent {
return
}
+ const parent = Dropdown.getParentFromElement(this._element)
// Totally disable Popper for Dropdowns in Navbar
if (this._inNavbar) {
Manipulator.setDataAttribute(this._menu, 'popper', 'none')
} else {
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)')
- }
-
- let referenceElement = this._element
-
- if (this._config.reference === 'parent') {
- referenceElement = parent
- } else if (isElement(this._config.reference)) {
- referenceElement = getElement(this._config.reference)
- } else if (typeof this._config.reference === 'object') {
- referenceElement = this._config.reference
- }
-
- const popperConfig = this._getPopperConfig()
- const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)
-
- this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)
-
- if (isDisplayStatic) {
- Manipulator.setDataAttribute(this._menu, 'popper', 'static')
- }
+ this._createPopper(parent)
}
// If this is a touch-enabled device we add extra
@@ -258,6 +237,31 @@ class Dropdown extends BaseComponent {
return config
}
+ _createPopper(parent) {
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)')
+ }
+
+ let referenceElement = this._element
+
+ if (this._config.reference === 'parent') {
+ referenceElement = parent
+ } else if (isElement(this._config.reference)) {
+ referenceElement = getElement(this._config.reference)
+ } else if (typeof this._config.reference === 'object') {
+ referenceElement = this._config.reference
+ }
+
+ const popperConfig = this._getPopperConfig()
+ const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)
+
+ this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)
+
+ if (isDisplayStatic) {
+ Manipulator.setDataAttribute(this._menu, 'popper', 'static')
+ }
+ }
+
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW)
}