{
  "version": 3,
  "sources": ["../../client/styles/layout.ts", "footer.ts"],
  "sourcesContent": ["// All changes must also be made to the _layout.scss file in this same directory.\nconst pageMaxWidth = 1140;\n\nexport const totalColumns = 12;\n\nconst mediumLine = 840;\nconst largeLine = 1440;\n\nexport const belowMedium = `(min-width: 0px) and (max-width: ${mediumLine}px)`;\nexport const aboveMedium = `(min-width: ${mediumLine + 1}px)`;\nconst belowLargeLine = `(max-width: ${largeLine}px)`;\nconst aboveLargeLine = `(min-width: ${largeLine + 1}px)`;\n\nconst gridGap = 26;\n", "/**\n * Run `npm run build:static-scripts` to build this script. It's not done automatically.\n */\nimport * as layout from \"../../client/styles/layout\";\n\nconst listColumns = () => {\n    return document.querySelectorAll<HTMLDivElement>(\".js-rl-footer-column\");\n};\n\nconst getColumnElems = (column: HTMLDivElement) => {\n    return {\n        checkbox: column.querySelector<HTMLInputElement>(\n            \"input.js-rl-footer-column-checkbox\",\n        ),\n        title: column.querySelector<HTMLElement>(\".js-rl-footer-column-label\"),\n        content: column.querySelector<HTMLElement>(\n            \".js-rl-footer-column-content\",\n        ),\n    };\n};\n\nconst setColumnAttributes = ({\n    column,\n    title,\n    content,\n    isExpanded,\n    isMobile,\n}: {\n    column: HTMLElement;\n    title: HTMLElement;\n    content: HTMLElement;\n    isExpanded: boolean;\n    isMobile: boolean;\n}) => {\n    const isCollapsible = column.classList.contains(\n        \"js-rl-footer-column--collapsable\",\n    );\n    if (isMobile && isCollapsible) {\n        title.tabIndex = 0;\n        title.setAttribute(\"aria-expanded\", isExpanded ? \"true\" : \"false\");\n        content.hidden = !isExpanded;\n    } else {\n        title.removeAttribute(\"tabIndex\");\n        title.removeAttribute(\"aria-expanded\");\n        content.removeAttribute(\"hidden\");\n    }\n};\n\nconst initColumn = (column: HTMLDivElement) => {\n    const belowMedium = window.matchMedia(layout.belowMedium);\n    const { checkbox, title, content } = getColumnElems(column);\n    if (!checkbox || !title || !content) {\n        console.error(\n            \"Footer column is missing one or more expected elements.\",\n        );\n        return;\n    }\n\n    const updateAttrs = () => {\n        setColumnAttributes({\n            column: column,\n            title: title,\n            content: content,\n            isExpanded: checkbox.checked,\n            isMobile: belowMedium.matches,\n        });\n    };\n\n    // Set initial aria attributes\n    updateAttrs();\n\n    // Watch the window width since accordions should only exist at mobile size.\n    belowMedium.addEventListener(\"change\", () => {\n        updateAttrs();\n    });\n\n    // Update the aria attributes when the expand / collapse status changes.\n    checkbox.addEventListener(\"change\", (e) => {\n        updateAttrs();\n    });\n\n    // Detect pressing ENTER when a label (column title) is focused. When this\n    // happens, toggle the checkbox value.\n    title.addEventListener(\"keyup\", (event) => {\n        if (event.key === \"Enter\") {\n            checkbox.checked = !checkbox.checked;\n        }\n    });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (event) => {\n    listColumns().forEach((column) => {\n        initColumn(column);\n    });\n});\n"],
  "mappings": "mBAQO,IAAMA,EAAc,0CCH3B,IAAMC,EAAc,IACT,SAAS,iBAAiC,sBAAsB,EAGrEC,EAAkBC,IACb,CACH,SAAUA,EAAO,cACb,oCACJ,EACA,MAAOA,EAAO,cAA2B,4BAA4B,EACrE,QAASA,EAAO,cACZ,8BACJ,CACJ,GAGEC,EAAsB,CAAC,CACzB,OAAAD,EACA,MAAAE,EACA,QAAAC,EACA,WAAAC,EACA,SAAAC,CACJ,IAMM,CACF,IAAMC,EAAgBN,EAAO,UAAU,SACnC,kCACJ,EACIK,GAAYC,GACZJ,EAAM,SAAW,EACjBA,EAAM,aAAa,gBAAiBE,EAAa,OAAS,OAAO,EACjED,EAAQ,OAAS,CAACC,IAElBF,EAAM,gBAAgB,UAAU,EAChCA,EAAM,gBAAgB,eAAe,EACrCC,EAAQ,gBAAgB,QAAQ,EAExC,EAEMI,EAAcP,GAA2B,CAC3C,IAAMQ,EAAc,OAAO,WAAkBA,CAAW,EAClD,CAAE,SAAAC,EAAU,MAAAP,EAAO,QAAAC,CAAQ,EAAIJ,EAAeC,CAAM,EAC1D,GAAI,CAACS,GAAY,CAACP,GAAS,CAACC,EAAS,CACjC,QAAQ,MACJ,yDACJ,EACA,MACJ,CAEA,IAAMO,EAAc,IAAM,CACtBT,EAAoB,CAChB,OAAQD,EACR,MAAOE,EACP,QAASC,EACT,WAAYM,EAAS,QACrB,SAAUD,EAAY,OAC1B,CAAC,CACL,EAGAE,EAAY,EAGZF,EAAY,iBAAiB,SAAU,IAAM,CACzCE,EAAY,CAChB,CAAC,EAGDD,EAAS,iBAAiB,SAAWE,GAAM,CACvCD,EAAY,CAChB,CAAC,EAIDR,EAAM,iBAAiB,QAAUU,GAAU,CACnCA,EAAM,MAAQ,UACdH,EAAS,QAAU,CAACA,EAAS,QAErC,CAAC,CACL,EAEA,SAAS,iBAAiB,mBAAqBG,GAAU,CACrDd,EAAY,EAAE,QAASE,GAAW,CAC9BO,EAAWP,CAAM,CACrB,CAAC,CACL,CAAC",
  "names": ["belowMedium", "listColumns", "getColumnElems", "column", "setColumnAttributes", "title", "content", "isExpanded", "isMobile", "isCollapsible", "initColumn", "belowMedium", "checkbox", "updateAttrs", "e", "event"]
}
