{"version":3,"file":"Modal.js","names":["namespace","defaultConfig","animationDuration","parentElement","document","body","displayHeader","backdropClose","scrollLock","focusTrap","width","ariaDescribedby","ariaLabelledby","previouslyActiveElement","frameStyle","Modal","config","_","defaults","_modalRootEl","undefined","_modalBackdropEl","_modalFrameEl","_modalContentWrapEl","_modalCloseBtnEl","_deactivateTrap","isAnimating","isNotTheOnlyModalInTheVillage","querySelector","_htmlEl","_eventListeners","initScaffold","initEventListeners","createElement","$","addClass","style","display","header","frameInlineCss","html","_setYPosition","appendChild","topPos","maxHeight","window","innerHeight","maxWidth","top","initCloseEventListeners","on","throttle","bind","callback","_onCloseBtnClick","push","element","events","onBackdropCallback","_onBackdropClick","selector","callbackBtnEl","onClick","e","type","which","css","hide","Promise","resolve","reject","requestAnimationFrame","classList","add","_disableScroll","activateFocusTrap","setTimeout","remove","then","_enableScroll","forEach","off","parentNode","removeChild","firstChild"],"sources":["components/Modal.js"],"sourcesContent":["import _ from 'lodash';\r\nimport $ from 'jquery';\r\nimport activateFocusTrap from '../utils/focusTrap';\r\n\r\nconst namespace = 'ar-modal';\r\n\r\nvar defaultConfig = {\r\n animationDuration: 150,\r\n parentElement: document.body,\r\n displayHeader: true,\r\n backdropClose: true,\r\n scrollLock: true,\r\n focusTrap: false,\r\n width: 500,\r\n ariaDescribedby: null,\r\n ariaLabelledby: null,\r\n previouslyActiveElement: null,\r\n frameStyle: null,\r\n};\r\n\r\nexport class Modal {\r\n constructor(config) {\r\n this.config = _.defaults(config || {}, defaultConfig);\r\n this._modalRootEl = undefined;\r\n this._modalBackdropEl = undefined;\r\n this._modalFrameEl = undefined;\r\n this._modalContentWrapEl = undefined;\r\n this._modalCloseBtnEl = undefined;\r\n this._deactivateTrap = undefined;\r\n this.isAnimating = false;\r\n this.isNotTheOnlyModalInTheVillage = !!document.querySelector('.' + namespace);\r\n this._htmlEl = document.querySelector('html');\r\n this._eventListeners = [];\r\n }\r\n\r\n init() {\r\n this.initScaffold();\r\n this.initEventListeners();\r\n return this;\r\n }\r\n\r\n initScaffold() {\r\n this._modalRootEl = document.createElement('div');\r\n $(this._modalRootEl).addClass(namespace);\r\n this._modalRootEl.style.display = 'none';\r\n\r\n var header = `\r\n