*/
import EventHandler from '../dom/event-handler'
-import { emulateTransitionEnd, execute, getTransitionDurationFromElement, reflow, typeCheckConfig } from './index'
+import { emulateTransitionEnd, execute, getElement, getTransitionDurationFromElement, reflow, typeCheckConfig } from './index'
const Default = {
isVisible: true, // if false, we use the backdrop helper without adding any element to the dom
isAnimated: false,
- rootElement: document.body, // give the choice to place backdrop under different elements
+ rootElement: 'body', // give the choice to place backdrop under different elements
clickCallback: null
}
const DefaultType = {
isVisible: 'boolean',
isAnimated: 'boolean',
- rootElement: 'element',
+ rootElement: '(element|string)',
clickCallback: '(function|null)'
}
const NAME = 'backdrop'
...(typeof config === 'object' ? config : {})
}
- config.rootElement = config.rootElement || document.body
+ // use getElement() with the default "body" to get a fresh Element on each instantiation
+ config.rootElement = getElement(config.rootElement)
typeCheckConfig(NAME, config, DefaultType)
return config
}
})
})
- it('Should default parent element to "document.body" when config value is null', done => {
+ it('Should find the rootElement if passed as a string', done => {
const instance = new Backdrop({
isVisible: true,
- rootElement: null
+ rootElement: 'body'
})
const getElement = () => document.querySelector(CLASS_BACKDROP)
instance.show(() => {