{"version":3,"sources":["modal.js"],"names":["window","addEventListener","modal","document","getElementById","evt","target","classList","contains","preventDefault","trigger","data","forEach","call","attributes","attr","test","name","camelCaseName","substr","replace","$0","$1","toUpperCase","value","template","postData","adny","adminAjax","action","nonce","sfApiNonce","then","querySelector","innerHTML","html","launchModal","catch","error","env","console","initTemplateModal","video","container","createElement","add","iframe","id","src","frameborder","appendChild","initVideoModal","local","closeModal","key","toLowerCase","remove"],"mappings":"aAQAA,OAAOC,iBAAiB,oBAAoB,WACxC,IAAMC,EAAQC,SAASC,eAAe,cACtC,GAAK,OAASF,EAAd,CAIAC,SAASF,iBAAiB,SAAS,SAAAI,GAC/B,GAAOA,EAAIC,OAAOC,UAAUC,SAAS,oBAArC,CACAH,EAAII,iBAEJ,IAAMC,EAAUL,EAAIC,OACdK,EAAU,IAEL,EAGX,GAAGC,QAAQC,KAAKH,EAAQI,YAAY,SAASC,GACzC,GAAI,SAASC,KAAKD,EAAKE,MAAO,CAC1B,IAAIC,EAAgBH,EAAKE,KAAKE,OAAO,GAAGC,QAAQ,SAAS,SAAUC,EAAIC,GACnE,OAAOA,EAAGC,iBAEdZ,EAAKO,GAAiBH,EAAKS,UAI9Bb,EAAKc,UAqCd,SAA2Bd,GACvBe,SAASC,KAAKC,UAAW,CACrBC,OAAQ,wBACRJ,SAAUd,EAAKc,SACfK,MAAOH,KAAKI,aAEXC,MAAK,SAACrB,GACHT,EAAM+B,cAAc,uBAAuBC,UAAYvB,EAAKwB,MACjD,EAEXC,OAEHC,OAAM,SAACC,GACa,cAAZX,KAAKY,KACNC,QAAQF,MAAM,SAAUA,IAEjB,KArDIG,CAAkB9B,GACpCA,EAAK+B,OAqBd,SAAwB/B,GACpB,IAAIgC,EAAYxC,SAASyC,cAAc,OACvCD,EAAUpC,UAAUsC,IAAI,yBAExB,IAAIC,EAAS3C,SAASyC,cAAc,UACpCE,EAAOC,GAAK,oBACZD,EAAOE,IAAM,GACbF,EAAOG,YAAc,EAErBN,EAAUO,YAAYJ,GACtB5C,EAAM+B,cAAc,uBAAuBiB,YAAYP,GAEvDP,IAjCuBe,GAClBxC,EAAKyC,UAGdjD,SAASF,iBAAiB,SAAS,SAAAI,GACxBA,EAAIC,OAAOC,UAAUC,SAAS,uBACrCH,EAAII,iBACJ4C,QAGJlD,SAASF,iBAAiB,SAAS,SAAAI,GACxBA,EAAIC,OAAOC,UAAUC,SAAS,gBACrCH,EAAII,iBACJ4C,QAGJlD,SAASF,iBAAiB,WAAW,SAAAI,GACF,WAA1BA,EAAIiD,IAAIC,eACbF,OAyCJ,SAASjB,IACLjC,SAAS8B,cAAc,QAAQ1B,UAAUsC,IAAI,aAC7C3C,EAAMK,UAAUsC,IAAI,uBAGxB,SAASQ,IACLlD,SAAS8B,cAAc,QAAQ1B,UAAUiD,OAAO,aAChDtD,EAAMK,UAAUiD,OAAO","sourcesContent":["/*\nSite-wide modal triggers. Image gallery modals are handled by a WP plugin.\n\n`data-video` => video modal\n`data-template` => static content in separate file\n`data-local` => static content hidden on-page\n */\n\nwindow.addEventListener('DOMContentLoaded', () => {\n const modal = document.getElementById('adny-modal');\n if ( null === modal ) { return; }\n\n var loadLock = false;\n\n document.addEventListener('click', evt => {\n if ( ! evt.target.classList.contains('js-modal-trigger') ) { return; }\n evt.preventDefault();\n\n const trigger = evt.target;\n const data = {};\n\n loadLock = true;\n\n // Get our data-attributes in easy-to-access object\n [].forEach.call(trigger.attributes, function(attr) {\n if (/^data-/.test(attr.name)) {\n var camelCaseName = attr.name.substr(5).replace(/-(.)/g, function ($0, $1) {\n return $1.toUpperCase();\n });\n data[camelCaseName] = attr.value;\n }\n });\n\n if ( data.template ) { initTemplateModal(data); }\n if ( data.video ) { initVideoModal(data); }\n if ( data.local ) { initLocalModal(data); }\n });\n\n document.addEventListener('click', evt => {\n if ( ! evt.target.classList.contains('adny-modal__close') ) { return; }\n evt.preventDefault();\n closeModal();\n });\n\n document.addEventListener('click', evt => {\n if ( ! evt.target.classList.contains('adny-modal') ) { return; }\n evt.preventDefault();\n closeModal();\n });\n\n document.addEventListener('keydown', evt => {\n if ( evt.key.toLowerCase() !== 'escape' ) { return; }\n closeModal();\n });\n\n function initVideoModal(data) {\n var container = document.createElement('div');\n container.classList.add('iframe-mobile-wrapper');\n\n var iframe = document.createElement('iframe');\n iframe.id = 'adny-modal-player';\n iframe.src = '';\n iframe.frameborder = 0;\n\n container.appendChild(iframe);\n modal.querySelector('#adny-modal-content').appendChild(container);\n\n launchModal();\n }\n\n function initTemplateModal(data) {\n postData(adny.adminAjax, {\n action: 'adny_template_handler',\n template: data.template,\n nonce: adny.sfApiNonce,\n })\n .then((data) => {\n modal.querySelector('#adny-modal-content').innerHTML = data.html;\n loadLock = false;\n toggleLoading();\n launchModal();\n })\n .catch((error) => {\n if ( adny.env != 'production' ) {\n console.error('Error:', error);\n }\n loadLock = false;\n toggleLoading();\n });\n }\n\n function initLocalModal(data) {}\n\n function launchModal() {\n document.querySelector('body').classList.add('no-scroll');\n modal.classList.add('adny-modal--visible');\n }\n\n function closeModal() {\n document.querySelector('body').classList.remove('no-scroll');\n modal.classList.remove('adny-modal--visible');\n }\n\n function toggleLoading() {}\n});\n\n\n\n// var videoModal = document.getElementById('videoModal');\n// var videoModalClose = document.getElementById('videoModal__close');\n// var videoModalPlayer = document.getElementById('videoModalPlayer');\n// var videoModalTriggers = document.querySelectorAll('.js-video-modal-trigger');\n\n// videoModalClose.addEventListener('click', function(evt) {\n// videoModal.classList.remove('video-modal--visible');\n// });\n\n// [].slice.call(videoModalTriggers).forEach(function(trigger) {\n// trigger.addEventListener('click', function(evt) {\n// evt.preventDefault();\n// var videoId = this.getAttribute('data-video-id');\n// var videoType = this.getAttribute('data-video-type');\n// var videoUrl = (videoType === 'vimeo')\n// ? 'https://player.vimeo.com/video/' + videoId\n// : 'https://www.youtube.com/embed/' + videoId;\n\n// videoModal.classList.add('video-modal--visible');\n// videoModalPlayer.setAttribute('src', videoUrl);\n// });\n// });\n"]}