{"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"]}