{"version":3,"sources":["modal.js"],"names":["primeModal","modal","_classCallCheck","this","$","data","dataset","snooze","actions","trigger","_this","jQuery","document","bind","id","pxlCookie","create","on","e","attr","preventDefault","magnificPopup","close","open","el","arguments","length","undefined","options","args","Object","assign","showCloseBtn","mainClass","removalDelay","fixedContentPos","items","src","type","callbacks","beforeOpen","mobile","startWindowScroll","window","scrollY","currItem","inlineElement","querySelector","eval","innerHTML","scrollTo","completed","read","parseInt","snoozing","leave","addEventListener","toElement","relatedTarget","pop","distance","desktop","measurement","mMeasurement","dMeasurement","viewportHeight","Math","max","documentElement","clientHeight","innerHeight","pageHeight","scrollHeight","pos","scrollTop","body","timeout","setTimeout","wait","navigator","userAgent","match"],"mappings":"0cAGMA,sBACJ,SAAAA,WAAaC,GAAQC,gBAAAC,KAAAH,YACnBG,KAAKC,EAAOH,EACZE,KAAKE,KAAOJ,EAAMK,QAEZH,KAAKE,KAAKE,SAASJ,KAAKE,KAAKE,OAAS,GAE5CJ,KAAKK,UACLL,KAAKM,+DAEP,WACE,IAAIC,EAAQP,KAEZQ,OAAOC,UAAUC,KAAK,6BAA6B,WACjD,IAAIC,EAAK,SAASJ,EAAML,KAAKS,GAC7BC,UAAUC,OAAOF,EAAI,gBAGvBH,OAAO,gBAAgBM,GAAG,SAAS,SAASC,GAG1C,GAFkC,KAA7BP,OAAOR,MAAMgB,KAAK,SAAiBD,EAAEE,iBAC1CT,OAAOU,cAAcC,QACa,KAA7BX,OAAOR,MAAMgB,KAAK,QAAiB,OAAO,yBAGnD,SAAAI,OAAiC,IAA3BC,GAA2BC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAAfG,QAAeH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAL,GACtBf,MAAQP,KAAM0B,KAAOC,OAAOC,OAAO,CACrCC,cAAc,EACdC,UAAW,WACXC,aAAc,IACdC,iBAAiB,EACjBC,MAAO,CACLC,IAAK,IAAIlC,KAAKC,EAAEU,GAChBwB,KAAM,UAERC,UAAW,CACTC,WAAY,WACL9B,MAAM+B,WAAW/B,MAAMgC,kBAAoBC,OAAOC,UAEzDrB,KAAM,SAAAA,OACCpB,KAAK0C,SAASC,cAAc,GAAGC,cAAc,aAChDC,KAAK7C,KAAK0C,SAASC,cAAc,GAAGC,cAAc,YAAYE,YAElE3B,MAAO,WACAZ,MAAM+B,UAAWE,OAAOO,SAAS,EAAGxC,MAAMgC,mBAC/ChC,MAAMH,YAGTqB,SAEEJ,GAAKb,OAAOa,IAAIH,cAAcQ,MAC9BlB,OAAOU,cAAcE,KAAKM,6BAEjC,WACE,IAAInB,EAAYP,KACZgD,EAAYpC,UAAUqC,KAAK,SAASjD,KAAKE,KAAKS,IAC9CP,EAAYJ,KAAKE,KAAKE,OAAS8C,SAASlD,KAAKE,KAAKE,QAAU,EAC5D+C,EAAYvC,UAAUqC,KAAK,SAASjD,KAAKE,KAAKS,GAAG,WAErD,GAAkB,aAAbqC,IAAyC,IAAX5C,IAA6B,IAAb+C,GAAsBA,GAAY/C,GACnF,OAAQJ,KAAKE,KAAKI,SAChB,IAAK,QACHN,KAAKoB,KAAK,YAAcpB,KAAKC,EAAEU,GAAK,MACtC,MACA,IAAK,cAAeX,KAAKoB,OAAQ,MACjC,IAAK,QACH,IAAIgC,GAAQ,EACPpD,KAAKsC,UAIR7B,SAAS4C,iBAAiB,cAAc,SAAStC,GACzB,OAAhBA,EAAEuC,WAA0C,OAApBvC,EAAEwC,eAA2BH,IAAW5C,OAAO,WAAWe,SACtF6B,GAAQ,EACR7C,EAAMa,WAEP,GAEP,MACA,IAAK,SACH,IAAIoC,GAAiB,EACjBC,EAAiBzD,KAAKsC,SAAWtC,KAAKE,KAAKoC,OAAStC,KAAKE,KAAKwD,QAC9DC,EAAiB3D,KAAKsC,SAAWtC,KAAKE,KAAK0D,aAAe5D,KAAKE,KAAK2D,aACpEC,EAAiBC,KAAKC,IAAIvD,SAASwD,gBAAgBC,aAAc1B,OAAO2B,aAAe,GACvFC,EAAiB3D,SAASwD,gBAAgBI,aAAeP,EAE7DtB,OAAOa,iBAAiB,UAAU,WAChC,GAAKG,EAAM,CACT,IAAIc,EAAO7D,SAASwD,gBAAgBM,WAAW9D,SAAS+D,KAAKD,UAE7D,GAAKD,EAAM,EACT,OAAQX,GACN,IAAK,IACgBW,EAAMF,EAAc,KACpBX,IAAalD,EAAMa,OAAQoC,GAAM,GACtD,MACA,IAAK,KACEc,GAAOb,IAAalD,EAAMa,OAAQoC,GAAM,GAC/C,MACA,IAAK,KACuBc,EAAMR,GAAxBL,EAAS,MACDlD,EAAMa,OAAQoC,GAAM,QAOhD,MACA,IAAK,OACH,IAAIiB,EAAUzE,KAAKsC,SAAWtC,KAAKE,KAAKoC,OAAStC,KAAKE,KAAKwD,QAC3DgB,YAAW,WAAanE,EAAMa,SAAWqD,QAKrCtB,GAAY/C,GAASJ,KAAKI,+BAEtC,WACE,GAA0B,MAArBJ,KAAKE,KAAKE,OAAiB,CAC9B,IAAIO,EAAO,SAASX,KAAKE,KAAKS,GAAG,UAC7BgE,EAAO/D,UAAUqC,KAAKtC,GAErBgE,GACHA,EAAOzB,SAASyB,GAAQ,GACZ3E,KAAKE,KAAKE,SAASuE,EAAO,GAEnCA,EAAO,EAEZ/D,UAAUC,OAAOF,EAAIgE,EAAM,0BAK7B,WACE,SAASC,UAAUC,UAAUC,MAAM,aAC/BF,UAAUC,UAAUC,MAAM,WAC1BF,UAAUC,UAAUC,MAAM,YAC1BF,UAAUC,UAAUC,MAAM,UAC1BF,UAAUC,UAAUC,MAAM,UAC1BF,UAAUC,UAAUC,MAAM,gBAC1BF,UAAUC,UAAUC,MAAM","sourcesContent":["/* globals jQuery, pxlCookie */ \n/* exported primeModal */\n\nclass primeModal {\n constructor( modal ) {\n this.$ = modal;\n this.data = modal.dataset;\n \n if ( !this.data.snooze ) this.data.snooze = 0;\n \n this.actions();\n this.trigger();\n }\n actions() {\n var _this = this;\n \n jQuery(document).bind('gform_confirmation_loaded', function() {\n var id = 'modal-'+_this.data.id;\n pxlCookie.create(id, 'completed');\n });\n \n jQuery('.closebutton').on('click', function(e) {\n if ( jQuery(this).attr('href') == '#' ) e.preventDefault();\n jQuery.magnificPopup.close();\n if ( jQuery(this).attr('href') == '#' ) return false;\n });\n }\n open( el = false, options = {} ) {\n var _this = this, args = Object.assign({\n showCloseBtn: false,\n mainClass: 'mfp-fade',\n removalDelay: 300,\n fixedContentPos: true,\n items: {\n src: '#'+this.$.id,\n type: 'inline'\n },\n callbacks: {\n beforeOpen: function() {\n if ( _this.mobile() ) _this.startWindowScroll = window.scrollY;\n },\n open: function() {\n if ( this.currItem.inlineElement[0].querySelector('.scripts') )\n eval(this.currItem.inlineElement[0].querySelector('.scripts').innerHTML);\n },\n close: function() {\n if ( _this.mobile() ) window.scrollTo(0, _this.startWindowScroll);\n _this.snooze();\n }\n }\n }, options);\n \n if ( el ) jQuery(el).magnificPopup(args);\n else jQuery.magnificPopup.open(args);\n }\n trigger() {\n var _this = this,\n completed = pxlCookie.read('modal-'+this.data.id),\n snooze = this.data.snooze ? parseInt(this.data.snooze) : 0,\n snoozing = pxlCookie.read('modal-'+this.data.id+'-snooze');\n \n if ( completed != 'completed' && ( snooze === 0 || snoozing === false || snoozing >= snooze ) ) {\n switch (this.data.trigger) {\n case 'click':\n this.open('a[href=\"#' + this.$.id + '\"]');\n break;\n case 'immediately': this.open(); break;\n case 'leave':\n var leave = true;\n if ( this.mobile() ) {\n // No good way to do this yet\n }\n else {\n document.addEventListener('mouseleave', function(e) {\n if ( (e.toElement === null && e.relatedTarget === null) && leave && ! jQuery('.mfp-bg').length ) {\n leave = false;\n _this.open();\n }\n }, false);\n }\n break;\n case 'scroll':\n var pop = true,\n distance = this.mobile() ? this.data.mobile : this.data.desktop,\n measurement = this.mobile() ? this.data.mMeasurement : this.data.dMeasurement,\n viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n pageHeight = document.documentElement.scrollHeight - viewportHeight;\n \n window.addEventListener('scroll', function() {\n if ( pop ) {\n var pos = (document.documentElement.scrollTop||document.body.scrollTop);\n \n if ( pos > 0 ) {\n switch (measurement) {\n case '%':\n var percentage = ( pos / pageHeight) * 100;\n if ( percentage >= distance ) { _this.open(); pop = false; }\n break;\n case 'px':\n if ( pos >= distance ) { _this.open(); pop = false; }\n break;\n case 'vh':\n var d = distance/100, p = pos / viewportHeight;\n if ( p >= d ) { _this.open(); pop = false; }\n break;\n default:\n }\n }\n }\n });\n break;\n case 'time': \n var timeout = this.mobile() ? this.data.mobile : this.data.desktop;\n setTimeout(function() { _this.open(); }, timeout);\n break;\n default:\n }\n }\n else if ( snoozing <= snooze ) this.snooze();\n }\n snooze() {\n if ( this.data.snooze !== '0' ) {\n var id = 'modal-'+this.data.id+'-snooze',\n wait = pxlCookie.read(id);\n \n if ( wait ) {\n wait = parseInt(wait) + 1;\n if ( wait > this.data.snooze ) wait = 1;\n }\n else wait = 1\n \n pxlCookie.create(id, wait, 7);\n }\n }\n \n // Mobile Detection\n mobile() {\n return ( navigator.userAgent.match(/Android/i)\n || navigator.userAgent.match(/webOS/i)\n || navigator.userAgent.match(/iPhone/i)\n || navigator.userAgent.match(/iPad/i)\n || navigator.userAgent.match(/iPod/i)\n || navigator.userAgent.match(/BlackBerry/i)\n || navigator.userAgent.match(/Windows Phone/i)\n ? true : false\n )\n }\n}"]}