{"version":3,"file":"js/6243-8d05736df4383e2e87e3.js","mappings":"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","sources":["webpack://endrun/./app/javascript/app/analytics/ga.js","webpack://endrun/./app/javascript/app/analytics/helpers.js","webpack://endrun/./app/javascript/app/subscribe/basesignup.js","webpack://endrun/./app/javascript/app/subscribe/fullsignup.js","webpack://endrun/./app/javascript/app/subscribe/bannersignup.js","webpack://endrun/./app/javascript/app/subscribe/inlinesignup.js","webpack://endrun/./app/javascript/app/subscribe/toastsignup.js","webpack://endrun/./app/javascript/app/subscribe/emailsignupservice.js","webpack://endrun/./app/javascript/app/util/events.js","webpack://endrun/./app/javascript/shared/http.js","webpack://endrun/./app/javascript/app/subscribe/bannersignup.mustache","webpack://endrun/./app/javascript/app/subscribe/fullsignup.mustache","webpack://endrun/./app/javascript/app/subscribe/inlinesignup.mustache"],"sourcesContent":["// We set up the ga object here so that any code depending on the presence of\n// ga can import this file and forever assume that they can use it normally,\n// without checking whether its really running all the time. This decouples the\n// decision of \"Do we want analytics right now?\" from everywhere we actually\n// use analytics.\nwindow.dataLayer = window.dataLayer || [];\nexport const gtag =\n window.gtag ||\n function () {\n window.dataLayer.push(arguments);\n };\n\nexport const ga = (window.ga =\n window.ga ||\n function () {\n (ga.q = ga.q || []).push(arguments);\n });\n","// packages\nimport delay from 'underscore/modules/delay.js';\n\n// local\nimport { gtag } from './ga.js';\n\n/**\n * Track a user interaction in GA.\n */\nexport function trackEvent(eventName, eventData = {}) {\n // Convert legacy event format to GA4 format\n if (typeof eventData === 'string') {\n eventData = convertLegacyEvent(...arguments);\n eventName = eventData.event_name;\n }\n\n try {\n gtag('event', eventName, eventData);\n } catch (e) {\n console.warn('error reporting event', eventData);\n }\n}\n\n/**\n * Convert a Universal analytics style event into GA4 format.\n */\nfunction convertLegacyEvent(\n category,\n action,\n label = '',\n value = undefined,\n options = {}\n) {\n return {\n event_name: `${category}_${action}`,\n event_category: category,\n event_action: action,\n event_label: label,\n event_value: value,\n };\n}\n\n/**\n * Track a non-interactive event in GA.\n */\nexport function trackPassiveEvent(\n category,\n action,\n label = '',\n value = undefined\n) {\n const passiveOptions = { nonInteraction: 1 };\n return trackEvent(category, action, label, value, passiveOptions);\n}\n\nexport const trackParselyConversion = (function () {\n // make a queue for conversion events\n const parselyConversionEventQueue = [];\n\n // wrapper function safely handles either case\n const capture = (type, label) => {\n if (window.PARSELY && window.PARSELY.loaded) {\n report(type, label);\n } else {\n parselyConversionEventQueue.push([type, label]);\n }\n };\n\n const report = function (type, label) {\n try {\n window.PARSELY.conversions[type](label);\n // console.log('reported', type, label)\n } catch (e) {\n console.log(\n `Error reporting Parsely conversion. type: ${type}, label: ${label}, error: ${e}`\n );\n }\n };\n\n // Preload an event if it's present in the bootstrap\n if (window.TMPBootstrapData && window.TMPBootstrapData.parselyConversion) {\n const conversion = window.TMPBootstrapData.parselyConversion;\n capture(conversion.type, conversion.label);\n }\n\n // flush the queue when the tracker loads\n window.PARSELY = window.PARSELY || {\n onload: function () {\n delay(() => {\n parselyConversionEventQueue.forEach((event) => {\n report(event[0], event[1]);\n });\n });\n },\n };\n\n return capture;\n})();\n\nexport function trackParselyNewsletterConversion(label) {\n trackParselyConversion('trackNewsletterSignup', label);\n}\n\nexport function trackParselyMonthlyDonationConversion(label) {\n trackParselyConversion('trackSubscription', label);\n}\n\nexport function trackParselyDonationConversion(label) {\n trackParselyConversion('trackPurchase', label);\n}\n\nexport function trackParselyCustomConversion(label) {\n trackParselyConversion('trackCustom', label);\n}\n\n// Make this available site-wide for graphics\nwindow.TMPAnalytics = window.TMPAnalytics || {};\nwindow.TMPAnalytics.trackConversion = trackParselyCustomConversion;\nwindow.TMPAnalytics.trackEvent = trackEvent;\n// For backwards compatibility with old graphics.\nwindow.report = trackEvent;\n","// local\nimport { createEvent } from '../util/events.js';\nimport http from '$shared/http.js';\nimport { ensure } from '$shared/utils.js';\nimport {\n trackEvent,\n trackParselyNewsletterConversion,\n} from '../analytics/helpers.js';\n\nexport default class BaseSignup {\n constructor(options) {\n ensure(this.constructor.name, options, ['el']);\n /** @type {HTMLElement} */\n this.el = options.el;\n this.options = options;\n }\n\n render() {\n this.el.innerHTML = this.template()(this.templateData());\n this.initializeListeners();\n }\n\n templateData() {\n return {\n newsletters: this.options.newsletters,\n email: this.options.initialEmail,\n tagline: this.options.tagline,\n donateCampaign: this.options.donateCampaign,\n custom_css: this.options.customCSS,\n successMessage: this.options.successMessage,\n };\n }\n\n initializeListeners() {\n this.el.addEventListener('click', (event) => {\n if (event.target.matches('.subscribe-button-js')) {\n this.subscribe();\n }\n });\n\n this.el.addEventListener('keydown', (event) => {\n const target = event.target;\n\n if (target.matches('.subscribe-button')) {\n this.handleEnterPressed(event);\n }\n\n if (target.matches('.subscribe-email-input')) {\n this.handleEnterPressed(event);\n }\n\n if (target.matches('.newsletter-option-item')) {\n this.handleSpacePressed(event);\n }\n });\n }\n\n handleEnterPressed(event) {\n if (event.keyCode === 13) {\n // Enter\n this.subscribe();\n event.preventDefault();\n }\n }\n\n handleSpacePressed(event) {\n if (event.keyCode === 32) {\n // Spacebar\n const input = event.target.querySelector('input');\n input.checked = !input.checked;\n event.preventDefault();\n }\n }\n\n subscribe() {\n const data = this.getData();\n this.updateValidation(this.validate(data));\n\n if (this.valid) {\n this.sendData(data);\n }\n }\n\n getData() {\n return this.serializeForm();\n }\n\n serializeForm() {\n const values = { newsletters: [] };\n const inputs = this.el.querySelectorAll('input');\n\n inputs.forEach((input) => {\n if (input.type === 'checkbox') {\n if (input.checked) {\n values.newsletters.push(input.value);\n }\n } else {\n values[input.name] = input.value;\n }\n });\n\n return values;\n }\n\n updateValidation(validation) {\n this.valid = validation.valid;\n if (this.valid) {\n this.clearErrors();\n } else {\n this.displayErrors(validation.errors);\n }\n }\n\n validate(data) {\n let valid = true;\n const errors = [];\n const htmlValidation = this.getEmailElement().validationMessage;\n\n data.email = data.email.trim();\n\n if (htmlValidation) {\n valid = false;\n errors.push(htmlValidation);\n } else if (!data.newsletters || data.newsletters.length === 0) {\n valid = false;\n errors.push('At least one newsletter must be selected.');\n } else if (!data.email) {\n valid = false;\n errors.push('Email cannot be blank.');\n } else if (data.email.search(/\\s/) !== -1) {\n valid = false;\n errors.push('Email addresses cannot contain spaces.');\n } else if (data.email.indexOf('@') === -1) {\n valid = false;\n errors.push('Email addresses must contain an \"@\".');\n }\n\n if (valid) {\n return { valid };\n } else {\n return { valid, errors };\n }\n }\n\n clearErrors() {\n this.el.classList.remove('error');\n this.el.querySelector('.subscribe-error-container').innerHTML = '';\n }\n\n displayErrors(errors) {\n this.el.classList.add('error');\n this.el.querySelector('.subscribe-error-container').innerHTML =\n errors.join(' ');\n }\n\n // This should be overridden so that an unminified identifer of the class can\n // be saved with each signup.\n getClassName() {\n return this.constructor.name;\n }\n\n sendData(data) {\n this.setWorking(true);\n\n // Leaving this here for aid in testing without submitting to the server.\n // Uncomment this block to test locally.\n // window.setTimeout(() => {\n // this.handleSuccess({});\n // this.setWorking(false);\n // }, 1500);\n // return;\n\n const payload = {\n signup: Object.assign({}, data, {\n placement: this.options.placement,\n signup_ref: this.options.signupRef,\n style: this.getClassName(),\n url: window.location.href,\n referer: document.referrer,\n t: window.readCookie('t'),\n _utpv: window.readCookie('_utpv'),\n user_agent: window.navigator.userAgent,\n }),\n };\n\n http\n .post('/api/v3/email/subscribe', {\n json: payload,\n })\n .json()\n .then((data) => {\n this.handleSuccess(data);\n })\n .catch(async (error) => {\n this.handleFailure(await error.response.json());\n })\n .finally(() => {\n this.setWorking(false);\n });\n }\n\n handleSuccess(data) {\n this.trackSuccess();\n\n if (data.status === 'redirect' && data.redirect_url) {\n window.location.assign(data.redirect_url);\n }\n\n window.dispatchEvent(createEvent('tmp_email_signup_success'));\n\n this.renderSuccess();\n }\n\n handleFailure(errorData) {\n const message =\n errorData.error?.message ||\n 'Something went wrong saving your subscription. Please try again.';\n this.updateValidation({\n valid: false,\n errors: [message],\n });\n }\n\n trackSuccess() {\n // See https://developers.google.com/analytics/devguides/collection/ga4/reference/events?sjid=8256709344012883295-NA&client_type=gtag#sign_up\n trackEvent('sign_up', {\n method: `${this.options.placement}|${this.getClassName()}`,\n placement: this.options.placement,\n style: this.getClassName(),\n newsletter_sign_up: true,\n });\n trackParselyNewsletterConversion(this.options.placement);\n }\n\n maybeScrollToTop() {\n if (window.innerWidth < 768) {\n window.scrollTo({\n top: this.el.offsetTop - 128 /** header padding */,\n behavior: 'smooth',\n });\n }\n }\n\n renderSuccess() {}\n\n setWorking(workingState) {\n this.working = workingState;\n const subscribeButton = this.el.querySelector('.subscribe-button-js');\n\n if (subscribeButton) {\n if (workingState) {\n subscribeButton.textContent = 'Saving...';\n } else {\n subscribeButton.textContent = 'Subscribe';\n }\n }\n }\n\n getEmailElement() {\n return this.el.querySelector('[name=\"email\"]');\n }\n}\n","import BaseSignup from './basesignup';\nimport template from './fullsignup.mustache';\n\nexport default class FullSignup extends BaseSignup {\n template() {\n return template;\n }\n\n render() {\n super.render();\n if (this.options.successMessage) {\n this.renderSuccess(0);\n }\n if (this.customSuccessHTML) {\n this.renderCustomSuccessHTML();\n }\n }\n\n getClassName() {\n return 'FullSignup';\n }\n\n get successContainer() {\n return this.el.querySelector('.full-signup-success-container');\n }\n\n get customSuccessHTML() {\n return document.querySelector('#email-signup-success-html')?.content;\n }\n\n renderCustomSuccessHTML() {\n this.successContainer.replaceChildren(\n this.customSuccessHTML.cloneNode(true)\n );\n }\n\n async renderSuccess(duration = 200) {\n const formContainer = this.el.querySelector('.full-signup-form-container');\n\n formContainer.style.opacity = 0;\n await formContainer.animate({ opacity: [1, 0] }, duration).finished;\n formContainer.style.display = 'none';\n\n this.successContainer.style.display = 'block';\n this.successContainer.style.opacity = 1;\n await this.successContainer.animate({ opacity: [0, 1] }, duration).finished;\n\n if (window.innerWidth < 768) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }\n}\n","import BaseSignup from './basesignup';\nimport template from './bannersignup.mustache';\n\nconst ANIMATION_DURATION = 200;\n\nexport default class BannerSignup extends BaseSignup {\n template() {\n return template;\n }\n\n getClassName() {\n return 'BannerSignup';\n }\n\n renderSuccess() {\n const successContainer = this.el.querySelector(\n '.banner-signup-success-container'\n );\n const formContainer = this.el.querySelector(\n '.banner-signup-form-container'\n );\n const signupEl = this.el.querySelector('.banner-signup');\n const button = this.el.querySelector('.subscribe-button');\n\n const a = document.createElement('a');\n a.textContent = 'donate';\n a.classList.add('subscribe-button');\n a.href = `/donate?via=${this.options.donateCampaign}`;\n\n button.replaceWith(a);\n\n const collapsedHeight = successContainer.offsetHeight;\n const currentHeight = signupEl.getBoundingClientRect().height;\n\n this.el.classList.add('success-state');\n signupEl.style.height = `${currentHeight}px`;\n formContainer.style.position = 'absolute';\n\n signupEl.addEventListener(\n 'transitionend',\n async () => {\n await signupEl.animate(\n { height: [`${currentHeight}px`, `${collapsedHeight}px`] },\n ANIMATION_DURATION\n ).finished;\n\n signupEl.style.height = 'auto';\n\n this.maybeScrollToTop();\n },\n { once: true }\n );\n }\n\n initializeListeners() {\n super.initializeListeners();\n\n this.el.addEventListener('click', (event) => {\n if (event.target.matches('.subscribe-intro-button-js')) {\n this.expand();\n }\n });\n\n this.el.addEventListener('keydown', (event) => {\n if (event.target.matches('.subscribe-intro-button-js')) {\n this.handleIntroEnterPressed();\n }\n });\n }\n\n handleIntroEnterPressed(event) {\n if (event.keyCode === 13) {\n event.preventDefault();\n this.expand();\n }\n }\n\n async expand() {\n const formContainer = this.el.querySelector(\n '.banner-signup-form-container'\n );\n const displayContainer = this.el.querySelector(\n '.banner-signup-display-container'\n );\n const signupEl = this.el.querySelector('.banner-signup');\n\n const button = this.el.querySelector('.subscribe-button');\n button.classList.remove('subscribe-intro-button-js');\n button.classList.add('subscribe-button-js');\n\n const expandedHeight = formContainer.offsetHeight;\n const currentHeight = signupEl.getBoundingClientRect().height;\n\n displayContainer.style.opacity = 0;\n await displayContainer.animate({ opacity: [1, 0] }, ANIMATION_DURATION)\n .finished;\n this.el.classList.add('expanded');\n\n await signupEl.animate(\n { height: [`${currentHeight}px`, `${expandedHeight}px`] },\n ANIMATION_DURATION\n ).finished;\n formContainer.style.position = 'static';\n signupEl.style.height = 'auto';\n }\n}\n","import BaseSignup from './basesignup';\nimport template from './inlinesignup.mustache';\n\nexport default class InlineSignup extends BaseSignup {\n constructor(options) {\n super(options);\n if (this.options.newsletters.length <= 1) {\n this.state = 'no-options';\n } else {\n this.state = 'display';\n }\n }\n\n templateData() {\n const data = super.templateData();\n data.display_options = this.state !== 'no-options';\n data.button_text = 'Sign Up';\n return data;\n }\n\n template() {\n return template;\n }\n\n getClassName() {\n return 'InlineSignup';\n }\n\n initializeListeners() {\n super.initializeListeners();\n\n this.el.addEventListener('focus', (event) => {\n if (event.target.matches('.subscribe-email-input')) {\n this.showOptions();\n }\n });\n\n this.el.addEventListener('click', () => {\n this.showOptions();\n });\n }\n\n async showOptions() {\n if (this.state === 'display') {\n this.state = 'options';\n const options = this.el.querySelector('.newsletter-options-list');\n this.el.classList.add('expanded');\n const optionsHeight = options.getBoundingClientRect().height;\n\n await options.animate({ height: ['0', `${optionsHeight}px`] }, 200)\n .finished;\n options.style.height = 'auto';\n options.style.opacity = 1;\n\n await options.animate({ opacity: [0, 1] }, 200).finished;\n\n const emailInput = this.el.querySelector('.subscribe-email-input');\n emailInput.focus();\n emailInput.style.pointerEvents = 'all';\n }\n }\n\n async renderSuccess() {\n const container = this.el.querySelector('.inline-signup');\n const formContainer = this.el.querySelector(\n '.inline-signup-form-container'\n );\n const successContainer = this.el.querySelector(\n '.inline-signup-success-container'\n );\n const currentHeight = container.offsetHeight;\n const heightAdjustment = currentHeight - formContainer.offsetHeight;\n container.style.height = `${currentHeight}px`;\n\n // hide the form container\n formContainer.style.opacity = 0;\n await formContainer.animate({ opacity: [1, 0] }, 200).finished;\n formContainer.style.display = 'none';\n\n // then unhide the success container\n successContainer.style.display = 'block';\n successContainer.style.opacity = 1;\n\n const newHeight = successContainer.offsetHeight;\n\n await Promise.all([\n successContainer.animate({ opacity: [0, 1] }, 200).finished,\n container.animate(\n { height: [`${currentHeight}px`, `${newHeight + heightAdjustment}px`] },\n 200\n ).finished,\n ]);\n\n container.style.height = 'auto';\n\n if (window.innerWidth < 768) {\n window.scrollTo({\n top: this.el.getBoundingClientRect().top,\n behavior: 'smooth',\n });\n }\n }\n}\n","import BannerSignup from './bannersignup.js';\n\nexport default class ToastSignup extends BannerSignup {\n getClassName() {\n return 'ToastSignup';\n }\n\n templateData() {\n const data = super.templateData();\n data.button_text =\n 'Subscribe to our newsletters';\n data.banner_tagline = 'We drill down on one topic in this week’s news.';\n return data;\n }\n\n // Disable the scrolling behavior on success\n maybeScrollToTop() {}\n}\n","import { ensure, getBootstrapData, getUrlParameter } from '$shared/utils.js';\nimport FullSignup from './fullsignup.js';\nimport BannerSignup from './bannersignup.js';\nimport InlineSignup from './inlinesignup.js';\nimport ToastSignup from './toastsignup.js';\n\n/**\n * The element containers for services that have already been rendered.\n *\n * @type {WeakSet}\n */\nconst populatedElements = new WeakSet();\n\nexport default class EmailSignupService {\n constructor(options) {\n ensure('EmailSignup', options, ['el']);\n /** @type {HTMLElement} */\n const el = options.el;\n\n // if this element has already been populated, don't do it again\n if (populatedElements.has(el)) {\n return;\n }\n\n populatedElements.add(el);\n\n /** @type {HTMLElement} */\n this.el = el;\n this.dataset = this.el.dataset;\n\n const viewType = this.dataset.signupStyle;\n const viewOptions = { el: this.el };\n\n viewOptions.placement = this.dataset.placement;\n viewOptions.signupRef = this.getParameter('signup-ref');\n viewOptions.donateCampaign = this.getParameter('donate-campaign');\n viewOptions.newsletters = this.getNewsletterData(viewType);\n viewOptions.tagline = this.dataset.tagline;\n viewOptions.customCSS = this.dataset.customCss;\n viewOptions.initialEmail = getUrlParameter('email').replace(' ', '+');\n viewOptions.successMessage = getUrlParameter('success_message');\n this.view = this.constructView(viewType, viewOptions);\n }\n\n render() {\n if (this.view) {\n this.view.render();\n }\n }\n\n getParameter(name) {\n return getUrlParameter(name) || this.el.getAttribute(`data-${name}`);\n }\n\n getNewsletterData(viewType) {\n let newsletterBase = getBootstrapData('newsletters');\n\n if (this.el.dataset.newsletterList) {\n try {\n newsletterBase = JSON.parse(this.el.dataset.newsletterList);\n } catch (e) {\n console.warn(`Encountered error parsing newsletter list: ${e.message}`);\n }\n }\n\n // Initially, the newsletter-override attribute would specify which\n // newsletters to display and would default all of them to checked. With\n // custom Newsletter Signup Pages, we can define which newsletters to display and\n // check only a subset of them. We give precedence to the\n // newsletter-override URL param to allow legacy URLs with that param to\n // function as they did previously.\n const newsletterList =\n this.getParameter('newsletter-override') ||\n this.getParameter('displayed-newsletters');\n const checkedList =\n this.getParameter('newsletter-override') ||\n this.getParameter('checked-newsletters');\n\n if (newsletterList) {\n const newsletterIds = newsletterList.split(',');\n newsletterBase = newsletterBase\n .filter((x) => newsletterIds.includes(x.id))\n .sort((a, b) => {\n return newsletterIds.indexOf(a.id) - newsletterIds.indexOf(b.id);\n });\n } else if (viewType === 'inline') {\n newsletterBase = newsletterBase.filter((x) => x.inline_signup);\n } else {\n newsletterBase = newsletterBase.filter((x) => !x.project_specific);\n }\n\n const newsletterData = this.adjustDefaultChecked(\n newsletterBase,\n checkedList\n );\n\n return newsletterData;\n }\n\n adjustDefaultChecked(newsletterData, checkedNewsletters) {\n const defaultCheckedOverride = this.getParameter('newsletters') || '';\n\n // If specific newsletters are identified, they should be default checked\n const overrideNewsletters = checkedNewsletters || '';\n\n if (defaultCheckedOverride || overrideNewsletters) {\n const newsletterIds = defaultCheckedOverride\n .split(',')\n .concat(overrideNewsletters.split(','));\n newsletterData.forEach((newsletter) => {\n if (newsletterIds.includes(newsletter.id)) {\n newsletter.default_subscribe = true;\n } else {\n newsletter.default_subscribe = false;\n }\n });\n }\n return newsletterData;\n }\n\n constructView(viewType, viewOptions) {\n if (viewType === 'full') {\n return new FullSignup(viewOptions);\n } else if (viewType === 'banner') {\n return new BannerSignup(viewOptions);\n } else if (viewType === 'inline') {\n return new InlineSignup(viewOptions);\n } else if (viewType === 'toast') {\n return new ToastSignup(viewOptions);\n }\n\n console.error(`Unrecognized view type: ${viewType}.`);\n }\n}\n","/**\n * A constant to track whether custom events are supported.\n *\n * @private\n * @type {boolean}\n */\nconst supportsCustomEvent = typeof window.CustomEvent === 'function';\n\n/**\n * A wrapper around CustomEvent (for modern browers) and document.createEvent\n * (for older browsers). Can be removed in favor of CustomEvent when we drop\n * support for IE11.\n *\n * @template T\n * @param {string} type The type of event to create.\n * @param {CustomEventInit} init The params to pass to the event.\n * @returns {CustomEvent} The created event.\n */\nexport function createEvent(type, init) {\n if (supportsCustomEvent) {\n return new window.CustomEvent(type, init);\n }\n\n const event = document.createEvent('Event');\n\n if (init) {\n event.initEvent(type, init.bubbles, init.cancelable);\n event.detail = init.detail;\n } else {\n event.initEvent(type, false, false);\n }\n\n return event;\n}\n","// packages\nimport ky from 'ky';\n\n/**\n * Returns the CSRF token from the meta tag. This is injected by Rails using\n * the `csrf_meta_tags` helper.\n *\n * @returns {string}\n */\nexport function getCsrfToken() {\n return document\n .querySelector(\"meta[name='csrf-token']\")\n ?.getAttribute('content');\n}\n\n/**\n * Audits whether a given URL is on the same origin as the current page. We do\n * not want to send the CSRF token to different origins because sometimes third-party\n * services will throw errors if they receive a header they don't expect.\n *\n * @private\n * @param {string} url\n * @returns {boolean}\n */\nfunction isUrlSameOrigin(url) {\n // it is a relative URL so same origin\n if (!url.startsWith('http')) {\n return true;\n }\n\n try {\n // if the hostname matches, it's the same origin\n return new URL(url).hostname === window.location.hostname;\n } catch (_) {\n // if something goes wrong with the URL parsing we err on the side of\n // caution and assume it's the same origin\n return true;\n }\n}\n\n/**\n * @param {Request} request\n */\nfunction applyCsrfTokenToRequest(request) {\n // only need the CSRF token for non-GET requests\n if (request.method !== 'GET') {\n // send CSRF token only with same origin requests\n if (isUrlSameOrigin(request.url)) {\n request.headers.set('X-CSRF-Token', getCsrfToken());\n }\n }\n}\n\nexport default ky.create({\n hooks: { beforeRequest: [applyCsrfTokenToRequest] },\n});\n","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n\", H);return T.render.apply(T, arguments); };","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n\", H);return T.render.apply(T, arguments); };","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"custom_css\",c,p,1),c,p,0,15,56,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"{{#custom_css}}\\n \\n{{/custom_css}}\\n\\n\", H);return T.render.apply(T, arguments); };"],"names":["window","dataLayer","gtag","push","arguments","ga","q","trackEvent","eventName","eventData","category","action","label","value","options","event_name","event_category","event_action","event_label","event_value","convertLegacyEvent","e","console","warn","trackParselyConversion","parselyConversionEventQueue","capture","type","PARSELY","loaded","report","conversions","log","TMPBootstrapData","parselyConversion","conversion","onload","forEach","event","trackParselyNewsletterConversion","TMPAnalytics","trackConversion","BaseSignup","constructor","this","name","el","render","innerHTML","template","templateData","initializeListeners","newsletters","email","initialEmail","tagline","donateCampaign","custom_css","customCSS","successMessage","addEventListener","target","matches","subscribe","handleEnterPressed","handleSpacePressed","keyCode","preventDefault","input","querySelector","checked","data","getData","updateValidation","validate","valid","sendData","serializeForm","values","querySelectorAll","validation","clearErrors","displayErrors","errors","htmlValidation","getEmailElement","validationMessage","trim","length","search","indexOf","classList","remove","add","join","getClassName","setWorking","payload","signup","Object","assign","placement","signup_ref","signupRef","style","url","location","href","referer","document","referrer","t","readCookie","_utpv","user_agent","navigator","userAgent","http","json","then","handleSuccess","catch","async","error","handleFailure","response","finally","trackSuccess","status","redirect_url","dispatchEvent","renderSuccess","errorData","message","method","newsletter_sign_up","maybeScrollToTop","innerWidth","scrollTo","top","offsetTop","behavior","workingState","working","subscribeButton","textContent","FullSignup","super","customSuccessHTML","renderCustomSuccessHTML","successContainer","content","replaceChildren","cloneNode","duration","formContainer","opacity","animate","finished","display","BannerSignup","signupEl","button","a","createElement","replaceWith","collapsedHeight","offsetHeight","currentHeight","getBoundingClientRect","height","position","once","expand","handleIntroEnterPressed","displayContainer","expandedHeight","InlineSignup","state","display_options","button_text","showOptions","optionsHeight","emailInput","focus","pointerEvents","container","heightAdjustment","newHeight","Promise","all","ToastSignup","banner_tagline","populatedElements","WeakSet","EmailSignupService","has","dataset","viewType","signupStyle","viewOptions","getParameter","getNewsletterData","customCss","replace","view","constructView","getAttribute","newsletterBase","newsletterList","JSON","parse","checkedList","newsletterIds","split","filter","x","includes","id","sort","b","inline_signup","project_specific","adjustDefaultChecked","newsletterData","checkedNewsletters","defaultCheckedOverride","overrideNewsletters","concat","newsletter","default_subscribe","supportsCustomEvent","CustomEvent","createEvent","init","initEvent","bubbles","cancelable","detail","getCsrfToken","hooks","beforeRequest","request","startsWith","URL","hostname","_","isUrlSameOrigin","headers","set","H","module","exports","T","Template","code","c","p","i","s","f","rs","v","pop","fl","partials","subs","apply"],"sourceRoot":""}