{"version":3,"file":"donation-popup.js","sources":["../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../../js/components/donation-popup.js"],"sourcesContent":["/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import Cookies from 'js-cookie';\r\nimport $ from 'jquery';\r\nimport \"magnific-popup\";\r\n\r\nlet DonationPopup = function( options ) {\r\n this.options = Object.assign( {}, DonationPopup.defaultOptions, options );\r\n \r\n this.timeout;\r\n this.timesSeen = 0;\r\n this.previousState;\r\n\r\n this.popup = document.querySelector( '.donationpopup' );\r\n\r\n if ( !this.popup || this.popup.classList.contains( 'donationpopup--initialised' ) ) {\r\n return;\r\n }\r\n\r\n const userHasDonated = Cookies.get( 'bchc__lastDonationDate' );\r\n\r\n if ( userHasDonated ) {\r\n return;\r\n }\r\n\r\n const userHasSeenPopup = Cookies.get( 'bchc__donationPopupSeen' );\r\n\r\n if ( userHasSeenPopup ) {\r\n return;\r\n }\r\n\r\n for ( let i = 0; i < this.options.denyURLs.length; i++ ) {\r\n const urlToTest = this.options.denyURLs[ i ];\r\n\r\n const pattern = new RegExp( urlToTest, );\r\n\r\n if ( pattern.test( window.location.href ) ) {\r\n return;\r\n }\r\n }\r\n\r\n const hasValidDisplayConfig = (\r\n this.options.minPageViews > 0 ||\r\n ( this.options.useTimer && this.options.timerDurationInSeconds > 0 )\r\n );\r\n\r\n if ( !this.options.enabled || !hasValidDisplayConfig ) {\r\n return;\r\n }\r\n\r\n this.previousState = this.getState();\r\n\r\n this.state = Object.assign( {}, this.previousState, {\r\n pageViews: this.previousState.pageViews + 1,\r\n } );\r\n\r\n this.updateState( this.state );\r\n\r\n this.init();\r\n}\r\n\r\nDonationPopup.prototype.init = function() {\r\n const useTimer = ( this.options.useTimer && this.options.timerDurationInSeconds > 0 );\r\n\r\n if ( useTimer ) {\r\n this.timeout = window.setTimeout( this.show.bind( this ), this.options.timerDurationInSeconds * 1000 );\r\n }\r\n\r\n if ( !useTimer && this.state.pageViews >= this.options.minPageViews ) {\r\n window.setTimeout( this.show.bind( this ), 500 );\r\n }\r\n\r\n this.popup.classList.add( 'donationpopup--initialised' );\r\n};\r\n\r\nDonationPopup.prototype.show = function() {\r\n $.magnificPopup.open( {\r\n items: {\r\n src: '.donationpopup',\r\n type: 'inline',\r\n },\r\n callbacks: {\r\n open: () => {\r\n this.open();\r\n }\r\n },\r\n closeOnBgClick: false,\r\n showCloseBtn: true,\r\n closeOnContentClick: false,\r\n enableEscapeKey: false,\r\n fixedContentPos: true,\r\n } );\r\n};\r\n\r\nDonationPopup.prototype.open = function() {\r\n this.timesSeen++;\r\n\r\n this.state = Object.assign( {}, this.previousState, {\r\n timesSeen: this.timesSeen,\r\n } );\r\n\r\n this.updateState( this.state );\r\n\r\n const now = new Date();\r\n\r\n const currentDate = `${now.getUTCDay()}/${now.getUTCMonth()}/${now.getUTCFullYear()}`;\r\n\r\n Cookies.set( 'bchc__donationPopupSeen', currentDate, {\r\n secure: true,\r\n expires: this.options.cookieExpirationInDays,\r\n } );\r\n};\r\n\r\nDonationPopup.prototype.getState = function() {\r\n const previousStateJSON = window.sessionStorage.getItem( 'donationPopupState' ) || '';\r\n\r\n if ( previousStateJSON.length > 0 ) {\r\n return JSON.parse( previousStateJSON );\r\n } \r\n\r\n return DonationPopup.defaultState;\r\n}\r\n\r\nDonationPopup.prototype.updateState = function( state ) {\r\n window.sessionStorage.setItem( 'donationPopupState', JSON.stringify( state ) );\r\n}\r\n\r\nDonationPopup.defaultState = {\r\n pageViews: 0,\r\n};\r\n\r\nDonationPopup.defaultOptions = {\r\n enabled: false,\r\n minPageViews: 0,\r\n timerDurationInSeconds: 0,\r\n useTimer: false,\r\n cookieExpirationInDays: 365,\r\n denyURLs: []\r\n};\r\n\r\n// Donation popup\r\nif ( document.body.classList.contains( 'bchc' ) ) {\r\n new DonationPopup( window.donationPopupConfig || {} );\r\n}\r\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","foundKey","api","DonationPopup","options","Cookies","urlToTest","hasValidDisplayConfig","useTimer","$","now","currentDate","previousStateJSON","state"],"mappings":"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","x_google_ignoreList":[0]}