{"version":3,"sources":["modal.js"],"names":["primeModal","modal","_classCallCheck","this","$","data","dataset","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","snooze","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":"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","sourcesContent":["/* globals jQuery, pxlCookie */ \n/* exported primeModal */\n\nclass primeModal {\n constructor( modal ) {\n this.$ = modal;\n this.data = modal.dataset;\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 = parseInt(this.data.snooze),\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}"]}