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:
authorRohit Sharma <rohit2sharma95@gmail.com>2020-11-11 09:37:04 +0300
committerXhmikosR <xhmikosr@gmail.com>2020-11-14 08:09:15 +0300
commite530118117af509ffb97029cd250a23ee08120b6 (patch)
treebb541e3d3c692df4391359001a7e679c146bb14c
parenta7f04e9595205ed091a5bba71cedc4a80fc4da47 (diff)
Get only bs prefixed data attributes
-rw-r--r--js/src/dom/manipulator.js8
-rw-r--r--js/tests/unit/dom/manipulator.spec.js20
2 files changed, 5 insertions, 23 deletions
diff --git a/js/src/dom/manipulator.js b/js/src/dom/manipulator.js
index 04b9543c8a..faab54b5ef 100644
--- a/js/src/dom/manipulator.js
+++ b/js/src/dom/manipulator.js
@@ -43,16 +43,14 @@ const Manipulator = {
return {}
}
- const attributes = {
- ...element.dataset
- }
+ const attributes = {}
- Object.keys(attributes)
+ Object.keys(element.dataset)
.filter(key => key.startsWith('bs'))
.forEach(key => {
let pureKey = key.replace(/^bs/, '')
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)
- attributes[pureKey] = normalizeData(attributes[key])
+ attributes[pureKey] = normalizeData(element.dataset[key])
})
return attributes
diff --git a/js/tests/unit/dom/manipulator.spec.js b/js/tests/unit/dom/manipulator.spec.js
index 747e8bfd74..4f5ef715e8 100644
--- a/js/tests/unit/dom/manipulator.spec.js
+++ b/js/tests/unit/dom/manipulator.spec.js
@@ -60,32 +60,16 @@ describe('Manipulator', () => {
expect().nothing()
})
- it('should get all data attributes, without bs prefixed as well', () => {
- fixtureEl.innerHTML = '<div data-bs-toggle="tabs" data-bs-target="#element" data-another="value"></div>'
+ it('should get only bs prefixed data attributes without bs namespace', () => {
+ fixtureEl.innerHTML = '<div data-bs-toggle="tabs" data-bs-target="#element" data-another="value" data-target-bs="#element" data-in-bs-out="in-between"></div>'
const div = fixtureEl.querySelector('div')
expect(Manipulator.getDataAttributes(div)).toEqual({
- bsToggle: 'tabs',
- bsTarget: '#element',
- another: 'value',
toggle: 'tabs',
target: '#element'
})
})
-
- it('should remove just prefixed bs keyword from the attributes and override original attribute with bs prefixed', () => {
- fixtureEl.innerHTML = '<div data-bs-toggle="tabs" data-toggle="override" data-target-bs="#element" data-in-bs-out="in-between"></div>'
-
- const div = fixtureEl.querySelector('div')
-
- expect(Manipulator.getDataAttributes(div)).toEqual({
- bsToggle: 'tabs',
- targetBs: '#element',
- inBsOut: 'in-between',
- toggle: 'tabs'
- })
- })
})
describe('getDataAttribute', () => {