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
path: root/js/src
diff options
context:
space:
mode:
authorRohit Sharma <rohit2sharma95@gmail.com>2021-02-22 10:01:04 +0300
committerGitHub <noreply@github.com>2021-02-22 10:01:04 +0300
commitdc5e3328c12058de7fb6404edbe5dcee61f3400f (patch)
treeef141013ee4df32fbd3e581d9647e71f713bb043 /js/src
parentd983744d12be0937bb1aaef06057385d9b553e0c (diff)
Allow constructors to accept a CSS selector (#32245)
Co-authored-by: XhmikosR <xhmikosr@gmail.com> Co-authored-by: Mark Otto <otto@github.com>
Diffstat (limited to 'js/src')
-rw-r--r--js/src/base-component.js4
-rw-r--r--js/src/collapse.js6
-rw-r--r--js/src/modal.js2
-rw-r--r--js/src/scrollspy.js2
4 files changed, 8 insertions, 6 deletions
diff --git a/js/src/base-component.js b/js/src/base-component.js
index 9de274bd09..989a641561 100644
--- a/js/src/base-component.js
+++ b/js/src/base-component.js
@@ -17,12 +17,14 @@ const VERSION = '5.0.0-beta2'
class BaseComponent {
constructor(element) {
+ element = typeof element === 'string' ? document.querySelector(element) : element
+
if (!element) {
return
}
this._element = element
- Data.setData(element, this.constructor.DATA_KEY, this)
+ Data.setData(this._element, this.constructor.DATA_KEY, this)
}
dispose() {
diff --git a/js/src/collapse.js b/js/src/collapse.js
index 0a1b475470..f861667659 100644
--- a/js/src/collapse.js
+++ b/js/src/collapse.js
@@ -72,8 +72,8 @@ class Collapse extends BaseComponent {
this._isTransitioning = false
this._config = this._getConfig(config)
this._triggerArray = SelectorEngine.find(
- `${SELECTOR_DATA_TOGGLE}[href="#${element.id}"],` +
- `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${element.id}"]`
+ `${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` +
+ `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`
)
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
@@ -82,7 +82,7 @@ class Collapse extends BaseComponent {
const elem = toggleList[i]
const selector = getSelectorFromElement(elem)
const filterElement = SelectorEngine.find(selector)
- .filter(foundElem => foundElem === element)
+ .filter(foundElem => foundElem === this._element)
if (selector !== null && filterElement.length) {
this._selector = selector
diff --git a/js/src/modal.js b/js/src/modal.js
index 79a2f143a3..4f42e733eb 100644
--- a/js/src/modal.js
+++ b/js/src/modal.js
@@ -83,7 +83,7 @@ class Modal extends BaseComponent {
super(element)
this._config = this._getConfig(config)
- this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)
+ this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)
this._backdrop = null
this._isShown = false
this._isBodyOverflowing = false
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
index 43a91e5e93..0c51eab0fe 100644
--- a/js/src/scrollspy.js
+++ b/js/src/scrollspy.js
@@ -68,7 +68,7 @@ const METHOD_POSITION = 'position'
class ScrollSpy extends BaseComponent {
constructor(element, config) {
super(element)
- this._scrollElement = element.tagName === 'BODY' ? window : element
+ this._scrollElement = this._element.tagName === 'BODY' ? window : this._element
this._config = this._getConfig(config)
this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`
this._offsets = []