{"version":3,"sources":["webpack:///./src/components/elements/Tabs/Tab.module.css","webpack:///./node_modules/ramda/es/internal/_clone.js","webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js","webpack:///./node_modules/ramda/es/internal/_xreduceBy.js","webpack:///./node_modules/ramda/es/reduceBy.js","webpack:///./node_modules/ramda/es/groupBy.js","webpack:///./src/components/elements/Tabs/TabList.module.css","webpack:///./node_modules/ramda/es/internal/_xfind.js","webpack:///./node_modules/ramda/es/find.js","webpack:///./src/templates/PressOfficeTemplate/PressOfficeTemplate.js","webpack:///./src/components/Layout/LayoutFullWidth.js","webpack:///./src/templates/PressOfficeTemplate/PressOfficeTemplate.module.css","webpack:///./src/components/elements/Tabs/Tab.js","webpack:///./src/components/elements/Tabs/TabList.js","webpack:///./src/components/elements/Tabs/TabPanel.module.css","webpack:///./src/components/elements/Tabs/TabPanel.js"],"names":["module","exports","_clone","value","refFrom","refTo","deep","pattern","copy","copiedValue","len","length","idx","key","type","Date","valueOf","RegExp","source","global","ignoreCase","multiline","sticky","unicode","XReduceBy","valueFn","valueAcc","keyFn","xf","this","inputs","prototype","_xfBase","init","result","_has","input","_curryN","_dispatchable","list","_reduce","acc","elt","groupBy","_curry2","_checkForMethod","item","push","XFind","f","found","_reduced","fn","groupByYear","pipe","release","format","publishedDate","pageQuery","PressOfficePage","data","header","page","frontmatter","pressReleases","releases","flattenNodes","edges","releasesByYear","LayoutFullWidth","className","Item","to","thickness","tag","styles","reverse","Object","keys","map","year","releasesByMonth","months","eachMonthOfInterval","start","end","firstMonth","find","month","formattedDate","undefined","releasesSortedByDate","sortBy","yearGroup","initialValue","tabsHeader","yearLabel","TabList","tabList","formattedMonth","Tab","identifier","kind","TabPanel","title","externalUrl","releaseTitle","href","target","rel","slug","children","useSiteMetadata","description","headerProps","image","backgroundUrl","onClick","tabClassNames","classNames","tab","isButton","link","tabContext","useContext","TabContext","activeTab","active","event","changeTab","tabListClassNames","tabPanelClassNames"],"mappings":"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","file":"component---src-templates-press-office-template-press-office-template-js-e0a0b7d271abbc23785d.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"tab\":\"Tab-module--tab--1KaJ6\",\"isButton\":\"Tab-module--is-button--2GGyB\",\"active\":\"Tab-module--active--1aiAs\",\"link\":\"Tab-module--link--2RL_e\"};","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n default:\n return value;\n }\n}","import \"core-js/modules/es6.regexp.constructor\";\nexport default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XReduceBy = /*#__PURE__*/function () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy = /*#__PURE__*/_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy = /*#__PURE__*/_curryN(4, [], /*#__PURE__*/_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\nexport default reduceBy;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('groupBy', /*#__PURE__*/reduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\nexport default groupBy;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabList\":\"TabList-module--tab-list---GMgF\"};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind = /*#__PURE__*/function () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { graphql } from 'gatsby'\nimport { pipe, groupBy, reverse, find, sortBy } from 'ramda'\nimport { eachMonthOfInterval, format } from 'date-fns'\n\nimport LayoutFullWidth from '../../components/Layout/LayoutFullWidth'\nimport headerProps from '../../components/propTypes/headerProps'\nimport {\n Divider,\n Breadcrumbs,\n Typography,\n TransitionLink,\n Tabs,\n} from '../../components'\nimport styles from './PressOfficeTemplate.module.css'\nimport Tab from '../../components/elements/Tabs/Tab'\nimport TabList from '../../components/elements/Tabs/TabList'\nimport TabPanel from '../../components/elements/Tabs/TabPanel'\nimport { flattenNodes } from '../../utils'\n\nconst groupByYear = pipe(\n groupBy(release => format(new Date(release.publishedDate), 'yyyy')),\n)\n\nconst PressOfficePage = ({ data }) => {\n const {\n page: {\n frontmatter: { header },\n },\n pressReleases,\n } = data\n\n const releases = flattenNodes(pressReleases.edges)\n const releasesByYear = groupByYear(releases)\n\n return (\n \n
\n \n \n About Us\n \n \n Press Office\n \n \n\n \n \n Press Office\n \n \n Press Releases, Op Eds, Radio and TV Clips\n \n\n
\n {reverse(Object.keys(releasesByYear)).map(year => {\n const releasesByMonth = groupBy(release =>\n format(new Date(release.publishedDate), 'MMM'),\n )(releasesByYear[year])\n\n const months = eachMonthOfInterval({\n start: new Date(2019, 12, 1),\n end: new Date(2020, 11, 1),\n })\n\n const firstMonth = find(month => {\n const formattedDate = format(new Date(month), 'MMM')\n return releasesByMonth[formattedDate] !== undefined\n })(months)\n\n const releasesSortedByDate = sortBy(release =>\n format(new Date(release.publishedDate), 'dd'),\n )\n\n return (\n
\n \n
\n \n {year}\n \n\n \n {months.map(month => {\n const formattedMonth = format(new Date(month), 'MMM')\n return (\n releasesByMonth[formattedMonth] && (\n \n {formattedMonth}\n \n )\n )\n })}\n \n
\n\n {months.map(month => {\n const formattedMonth = format(new Date(month), 'MMM')\n return (\n releasesByMonth[formattedMonth] && (\n \n {reverse(\n releasesSortedByDate(\n releasesByMonth[formattedMonth],\n ),\n ).map(release => {\n const title = (\n \n {release.title}{' '}\n \n {format(\n new Date(release.publishedDate),\n 'dd MMMM yyyy',\n )}\n \n \n )\n const link = release.externalUrl ? (\n \n {title}\n \n ) : (\n \n {title}\n \n )\n return link\n })}\n \n )\n )\n })}\n
\n
\n )\n })}\n
\n
\n
\n )\n}\n\nPressOfficePage.propTypes = {\n data: PropTypes.shape({\n page: PropTypes.shape({\n frontmatter: PropTypes.shape({\n header: headerProps,\n }),\n }),\n pressReleases: PropTypes.arrayOf(PropTypes.any),\n }),\n}\n\nexport default PressOfficePage\n\nexport const pageQuery = graphql`\n query PressOfficePageTemplate {\n page: mdx(frontmatter: { title: { eq: \"About Us\" } }) {\n frontmatter {\n ...headerFields\n }\n }\n pressReleases: allMdx(\n filter: { fields: { contentType: { eq: \"pressReleases\" } } }\n ) {\n edges {\n node {\n fields {\n slug\n }\n frontmatter {\n title\n publishedDate\n externalUrl\n featuredImage {\n childCloudinaryMediaImage {\n fixed(width: 100) {\n aspectRatio\n height\n src\n srcSet\n width\n }\n }\n }\n }\n }\n }\n }\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Navbar from '../partials/NavBar/Navbar'\nimport useSiteMetadata from '../graphqlFragments/SiteMetadata'\nimport { Footer } from '..'\nimport Head from './Head'\nimport headerProps from '../propTypes/headerProps'\nimport PrimaryHeader from '../elements/PrimaryHeader/PrimaryHeader'\n\nconst LayoutFullWidth = ({ header, children }) => {\n const { title, description } = useSiteMetadata()\n const headerProps = {\n ...header,\n image: header.backgroundUrl,\n }\n\n return (\n <>\n \n \n \n {children}\n