{"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\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Subscribe\");t.b(\"\\n\" + i);t.b(\" Get the best criminal justice news and analysis, in your inbox.\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" More about our emails\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);if(t.s(t.f(\"newsletters\",c,p,1),c,p,0,566,1414,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"tagline\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);});c.pop();}t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");if(t.s(t.f(\"banner_tagline\",c,p,1),c,p,0,1628,1648,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.t(t.f(\"banner_tagline\",c,p,0)));});c.pop();}t.b(\"\\n\" + i);t.b(\" \");if(!t.s(t.f(\"banner_tagline\",c,p,1),c,p,1,0,0,\"\")){t.b(\"We drill down on one topic in this week’s news.\");};t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");if(t.s(t.f(\"button_text\",c,p,1),c,p,0,2228,2245,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.t(t.f(\"button_text\",c,p,0)));});c.pop();}t.b(\"\\n\" + i);t.b(\" \");if(!t.s(t.f(\"button_text\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Subscribe\");};t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Thank you for subscribing. Please consider becoming a member today.\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n\\n \\n \\n Subscribe\\n Get the best criminal justice news and analysis, in your inbox.\\n \\n More about our emails\\n \\n \\n\\n \\n {{#newsletters}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{tagline}}\\n \\n \\n {{/newsletters}}\\n \\n \\n \\n\\n\\n \\n \\n {{#banner_tagline}}{{{banner_tagline}}}{{/banner_tagline}}\\n {{^banner_tagline}}We drill down on one topic in this week’s news.{{/banner_tagline}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{#button_text}}{{{button_text}}}{{/button_text}}\\n {{^button_text}}Subscribe{{/button_text}}\\n \\n \\n \\n\\n \\n Thank you for subscribing. Please consider becoming a member today.\\n \\n\\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\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"tagline\",c,p,0)));if(!t.s(t.f(\"tagline\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Stay up to date on criminal justice, immigration and our analysis.\");};t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);if(t.s(t.f(\"newsletters\",c,p,1),c,p,0,293,1513,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\"\\n\" + i);if(t.s(t.f(\"sample_email_url\",c,p,1),c,p,0,1121,1240,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" Example\");t.b(\"\\n\" + i);});c.pop();}t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"frequency\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"description\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);});c.pop();}t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Subscribe\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Email list managed by Mailchimp\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"successMessage\",c,p,0)));if(!t.s(t.f(\"successMessage\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Welcome to our community!\");};t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Donate\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n \\n {{tagline}}{{^tagline}}Stay up to date on criminal justice, immigration and our analysis.{{/tagline}}\\n \\n {{#newsletters}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{name}}\\n {{#sample_email_url}}\\n Example\\n {{/sample_email_url}}\\n \\n \\n {{frequency}}\\n \\n \\n {{description}}\\n \\n \\n \\n {{/newsletters}}\\n \\n \\n \\n \\n \\n \\n Subscribe\\n \\n \\n \\n Email list managed by Mailchimp\\n \\n \\n \\n\\n \\n {{successMessage}}{{^successMessage}}Welcome to our community!{{/successMessage}}\\n \\n Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\\n \\n Donate\\n \\n\\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\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"tagline\",c,p,0)));if(!t.s(t.f(\"tagline\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Sign up for the latest news and analysis.\");};t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);if(t.s(t.f(\"newsletters\",c,p,1),c,p,0,344,1236,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"short_description\",c,p,0)));t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);});c.pop();}t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"button_text\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Email list managed by Mailchimp\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Welcome to our community!\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" Donate\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"{{#custom_css}}\\n \\n{{/custom_css}}\\n\\n \\n {{tagline}}{{^tagline}}Sign up for the latest news and analysis.{{/tagline}}\\n \\n {{#newsletters}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{short_description}}\\n \\n \\n \\n {{/newsletters}}\\n \\n \\n \\n \\n \\n \\n {{ button_text }}\\n \\n \\n \\n Email list managed by Mailchimp\\n \\n \\n \\n\\n \\n Welcome to our community!\\n \\n Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\\n \\n Donate\\n \\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":""}
Get the best criminal justice news and analysis, in your inbox.
\");t.b(\"\\n\" + i);t.b(\" More about our emails\");t.b(\"\\n\" + i);t.b(\"
\\n More about our emails\\n
\");t.b(\"\\n\" + i);t.b(\" Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\");t.b(\"\\n\" + i);t.b(\"
\\n Thanks for trusting us to be your source for urgent investigations and compelling narratives about criminal justice. Readers like you help to make our work possible. Please consider taking the next step and become a member today.\\n