if (!this._config.scroll) {
scrollBarHide()
+ this._enforceFocusOnElement(this._element)
}
this._element.removeAttribute('aria-hidden')
const completeCallBack = () => {
EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })
- this._enforceFocusOnElement(this._element)
}
const transitionDuration = getTransitionDurationFromElement(this._element)
offCanvas.show()
})
+
+ it('should not enforce focus if focus scroll is allowed', done => {
+ fixtureEl.innerHTML = '<div class="offcanvas"></div>'
+
+ const offCanvasEl = fixtureEl.querySelector('.offcanvas')
+ const offCanvas = new Offcanvas(offCanvasEl, {
+ scroll: true
+ })
+
+ spyOn(offCanvas, '_enforceFocusOnElement')
+
+ offCanvasEl.addEventListener('shown.bs.offcanvas', () => {
+ expect(offCanvas._enforceFocusOnElement).not.toHaveBeenCalled()
+ done()
+ })
+
+ offCanvas.show()
+ })
})
describe('toggle', () => {
expect(instance).not.toBeNull()
expect(Offcanvas.prototype.show).toHaveBeenCalled()
})
+
+ it('should enforce focus', done => {
+ fixtureEl.innerHTML = '<div class="offcanvas"></div>'
+
+ const offCanvasEl = fixtureEl.querySelector('.offcanvas')
+ const offCanvas = new Offcanvas(offCanvasEl)
+
+ spyOn(offCanvas, '_enforceFocusOnElement')
+
+ offCanvasEl.addEventListener('shown.bs.offcanvas', () => {
+ expect(offCanvas._enforceFocusOnElement).toHaveBeenCalled()
+ done()
+ })
+
+ offCanvas.show()
+ })
})
describe('hide', () => {