{"version":3,"file":"component---src-pages-news-js-1ce0d2d0cc24aef70f0c.js","mappings":"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","sources":["webpack://gears-of-war-website/./node_modules/tcweb-material-components/core/section/index.js","webpack://gears-of-war-website/./src/components/common/searchable.js","webpack://gears-of-war-website/./src/pages/news.js","webpack://gears-of-war-website/./node_modules/lodash/_baseMap.js","webpack://gears-of-war-website/./node_modules/lodash/_baseOrderBy.js","webpack://gears-of-war-website/./node_modules/lodash/_baseSortBy.js","webpack://gears-of-war-website/./node_modules/lodash/_compareAscending.js","webpack://gears-of-war-website/./node_modules/lodash/_compareMultiple.js","webpack://gears-of-war-website/./node_modules/lodash/head.js","webpack://gears-of-war-website/./node_modules/lodash/orderBy.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _isString = _interopRequireDefault(require(\"lodash/isString\"));\nvar _trim = _interopRequireDefault(require(\"lodash/trim\"));\nvar _styles = require(\"@material-ui/core/styles\");\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\nvar _box = _interopRequireDefault(require(\"../box\"));\nvar _count = _interopRequireDefault(require(\"../poly/count\"));\nvar _reactMap = _interopRequireDefault(require(\"../poly/reactMap\"));\nconst _excluded = [\"children\", \"className\", \"isSubSection\", \"itemMargins\"];\nconst useClasses = (0, _styles.makeStyles)(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'left',\n width: '100%'\n },\n defaultItem: {\n marginTop: 0,\n marginBottom: 0\n },\n item: ({\n itemMargins\n }) => ({\n marginTop: 0,\n marginBottom: itemMargins.mobile || '30px',\n [theme.breakpoints.up('sm')]: {\n marginBottom: itemMargins.tablet || '30px'\n },\n [theme.breakpoints.up('md')]: {\n marginBottom: itemMargins.desktop || '50px'\n }\n }),\n subSection: {\n padding: 0,\n [theme.breakpoints.up('md')]: {\n padding: 0\n }\n }\n}), {\n classNamePrefix: 'TCUISection'\n});\nconst Section = _ref => {\n let {\n children,\n className,\n isSubSection,\n itemMargins\n } = _ref,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const _classes = useClasses({\n itemMargins\n });\n return /*#__PURE__*/_react.default.createElement(_box.default, (0, _extends2.default)({}, rest, {\n className: (0, _clsx.default)(_classes.root, {\n [_classes.subSection]: isSubSection\n }, className)\n }), (0, _reactMap.default)((child, i, flattenedChildren) => {\n if (!(0, _isString.default)(child)) {\n return /*#__PURE__*/_react.default.cloneElement(child, {\n className: (0, _clsx.default)(_classes.defaultItem, {\n [_classes.item]: i + 1 !== _react.default.Children.count(flattenedChildren),\n [_classes.subSection]: child.type === Section\n }, child.props.className)\n });\n }\n if ((0, _count.default)((0, _trim.default)(child)) > 0) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _clsx.default)({\n [_classes.item]: i + 1 !== _react.default.Children.count(flattenedChildren)\n })\n }, child);\n }\n return null;\n }, children));\n};\nSection.propTypes = {\n children: _propTypes.default.node,\n className: _propTypes.default.string,\n isSubSection: _propTypes.default.bool,\n itemMargins: _propTypes.default.shape({\n mobile: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n tablet: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n desktop: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])\n })\n};\nSection.defaultProps = {\n children: null,\n className: null,\n isSubSection: false,\n itemMargins: {\n mobile: '30px',\n tablet: '30px',\n desktop: '50px'\n }\n};\nvar _default = exports.default = Section;","import React, { useEffect, useReducer } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport pipe from 'lodash/fp/pipe'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Section from 'tcweb-material-components/core/section'\r\nimport { encodeQueryData } from 'tcweb-material-components/core/utilities/helpers'\r\nimport filter from 'tcweb-material-components/core/poly/filter'\r\nimport count from 'tcweb-material-components/core/poly/count'\r\n\r\nconst useClasses = makeStyles(({ breakpoints }) => ({\r\n showMoreContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center'\r\n },\r\n showMoreButton: {\r\n marginTop: '1em',\r\n [breakpoints.up('md')]: { width: 'calc(100vw / 3)' }\r\n }\r\n}))\r\n\r\nconst updateQuerystring = (params, enablePagination, page) => {\r\n const stringData = { ...params }\r\n\r\n if (enablePagination && page > 1) {\r\n stringData.page = page\r\n }\r\n\r\n {\r\n const cleanStringData = pipe(filter(Boolean), encodeQueryData)(stringData)\r\n if (cleanStringData.length) {\r\n window.history.replaceState(null, null, `?${cleanStringData}`)\r\n } else {\r\n window.history.replaceState(null, null, window.location.pathname)\r\n }\r\n\r\n }\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'set':\r\n return { ...state, ...action.payload }\r\n case 'search': {\r\n const { data, page, perPage, onSearch, initialized, enablePagination, enableQuerystring } = state\r\n const { params, initialPerPage } = action.payload\r\n const filteredData = onSearch(data, params)\r\n const currentPage = initialized ? 1 : page\r\n const currentPageData = enablePagination ? filteredData.slice(0, initialPerPage + perPage * (currentPage - 1)) : filteredData\r\n\r\n if (enableQuerystring) {\r\n updateQuerystring(params, enablePagination, currentPage)\r\n }\r\n\r\n return {\r\n ...state,\r\n params,\r\n page: currentPage,\r\n filteredData,\r\n currentPageData,\r\n loading: false,\r\n initialized: true\r\n }\r\n }\r\n case 'nextPage': {\r\n const { page, params, perPage, filteredData, initialPerPage, enablePagination, enableQuerystring } = state\r\n const currentPage = page + 1\r\n\r\n if (enableQuerystring) {\r\n updateQuerystring(params, enablePagination, currentPage)\r\n }\r\n\r\n return {\r\n ...state,\r\n page: currentPage,\r\n currentPageData: enablePagination ? filteredData.slice(0, initialPerPage + perPage * page) : filteredData\r\n }\r\n }\r\n default:\r\n throw new Error(`Invalid action type passed to reducer: ${action.type}`)\r\n }\r\n}\r\n\r\nconst Searchable = ({\r\n data,\r\n params,\r\n children,\r\n enablePagination,\r\n perPage,\r\n nextPageComponent,\r\n page = 1,\r\n initialPerPage = perPage,\r\n enableQuerystring = true,\r\n emptyComponent = null,\r\n loadingComponent = null,\r\n onSearch = (data) => data,\r\n ...rest\r\n}) => {\r\n const _classes = useClasses()\r\n const { t } = useTranslation()\r\n const [state, dispatch] = useReducer(reducer, {\r\n data,\r\n page,\r\n perPage,\r\n onSearch,\r\n initialPerPage,\r\n enablePagination,\r\n enableQuerystring,\r\n loading: true,\r\n initialized: false\r\n })\r\n const onNextPage = () => {\r\n dispatch({ type: 'nextPage' })\r\n }\r\n const totalNumItems = count(state.filteredData)\r\n const hasItems = totalNumItems != 0\r\n const numItems = count(state.currentPageData)\r\n\r\n // Params updated\r\n useEffect(() => {\r\n if (JSON.stringify(params) !== JSON.stringify(state.params)) {\r\n dispatch({ type: 'set', payload: { loading: true } })\r\n dispatch({ type: 'search', payload: { params, initialPerPage } })\r\n }\r\n }, [params, initialPerPage])\r\n\r\n // Update state with new prop values\r\n useEffect(() => {\r\n dispatch({\r\n type: 'set',\r\n payload: {\r\n data,\r\n page,\r\n perPage,\r\n enableQuerystring,\r\n enablePagination\r\n }\r\n })\r\n }, [data, enableQuerystring, enablePagination, perPage, page])\r\n\r\n if (state.loading) return loadingComponent\r\n\r\n return (\r\n
\r\n {children({ data: state.currentPageData, params, page: state.page, total: totalNumItems, products: state.data })}\r\n
\r\n \r\n {!hasItems && emptyComponent}\r\n {hasItems && t('slug:showing-1-to-post-of-total', { post: numItems.toString(), total: totalNumItems })}\r\n \r\n {hasItems && numItems < totalNumItems &&\r\n React.cloneElement(nextPageComponent, {\r\n className: _classes.showMoreButton,\r\n onClick: onNextPage\r\n })}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Searchable\r\n","import React, { useContext, useReducer, useEffect } from 'react'\r\nimport moment from 'moment'\r\nimport debounce from 'lodash/debounce'\r\nimport trim from 'lodash/trim'\r\nimport orderBy from 'lodash/orderBy'\r\nimport forEach from 'lodash/forEach'\r\nimport range from 'lodash/range'\r\nimport head from 'lodash/head'\r\nimport { graphql } from 'gatsby'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport InputAdornment from '@material-ui/core/InputAdornment'\r\nimport filter from 'tcweb-material-components/core/poly/filter'\r\nimport find from 'tcweb-material-components/core/poly/find'\r\nimport count from 'tcweb-material-components/core/poly/count'\r\nimport map from 'tcweb-material-components/core/poly/map'\r\nimport Button from 'tcweb-material-components/core/button'\r\nimport Section from 'tcweb-material-components/core/section'\r\n//import Tabs from 'tcweb-material-components/core/tabs'\r\n//import Tab from 'tcweb-material-components/core/tab'\r\nimport get from 'tcweb-material-components/core/poly/get'\r\nimport Helmet from 'react-helmet'\r\nimport { useTranslation } from 'react-i18next'\r\nimport loadable from '@loadable/component'\r\nimport { normalizePosts, normalizeGearsPosts } from '../utilities/helpers'\r\n\r\nimport { getLocaleFromWPMLLocale } from '../utilities/locale'\r\nimport Searchable from '../components/common/searchable'\r\nimport useLocation from '../hooks/useLocation'\r\nimport LocaleContext from '../components/context/localeContext'\r\nimport LayoutContent from '../components/layout/layoutContent'\r\n\r\nconst Skeleton = loadable(() => import('@material-ui/lab/Skeleton'))\r\nconst Grid = loadable(() => import('tcweb-material-components/core/grid'))\r\n\r\nconst SPECIAL_CHAR_REGEXP = /[^\\w\\s\\d]/\r\nconst INITIAL_POSTS_TO_SHOW = 5\r\nconst POSTS_TO_GET = 6\r\nconst NUM_DAYS_PER_WEEK = 7\r\n\r\nconst useStyles = makeStyles(({ breakpoints, palette, spacing, accessibility: { highContrast } }) => ({\r\n heading: {\r\n paddingTop: '30px',\r\n [breakpoints.up('md')]: {\r\n paddingTop: '100px'\r\n }\r\n },\r\n section: {\r\n position: 'relative',\r\n paddingBottom: '30px',\r\n [breakpoints.up('md')]: {\r\n paddingBottom: '100px'\r\n }\r\n },\r\n root: {\r\n paddingBottom: '3em',\r\n [breakpoints.up('md')]: {\r\n paddingTop: '4em',\r\n paddingBottom: '4em'\r\n }\r\n },\r\n searchable: {\r\n [breakpoints.up('md')]: {\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: '50vw'\r\n }\r\n },\r\n noPostsTitle: { margin: 0 },\r\n input: {\r\n display: 'flex',\r\n width: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n [breakpoints.up('md')]: { maxWidth: '50vw' }\r\n },\r\n categoryTab: {\r\n '&:hover': {\r\n backgroundColor: palette.secondary.light,\r\n color: palette.text.primary\r\n }\r\n },\r\n searchTextField: {\r\n [breakpoints.up('md')]: {\r\n display: 'flex',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n width: 'calc(100vw / 3)'\r\n },\r\n textTransform: 'uppercase',\r\n fontWeight: 'bold',\r\n fontStretch: 'condensed',\r\n letterSpacing: '.6px'\r\n },\r\n searchTextInput: {\r\n border: `1px solid ${palette.border.primary}`,\r\n borderRadius: 10,\r\n backgroundColor: palette.background.default,\r\n padding: spacing(1),\r\n '&:hover, &:focus': {\r\n [highContrast.mediaQuery('active')]: {\r\n border: `1px solid Highlight`\r\n }\r\n }\r\n },\r\n searchFocusVisible: {\r\n [highContrast.mediaQuery('active')]: {\r\n border: `1px solid Highlight`\r\n }\r\n },\r\n skeleton: { background: 'rgba(0, 0, 0, 0.2)' },\r\n searchIcon: {\r\n [highContrast.mediaQuery('active')]: {\r\n color: 'WindowText'\r\n }\r\n }\r\n}))\r\n\r\nconst getTranslation = (localeContext, post) =>\r\n localeContext.isImplicit ? post : find((t) => getLocaleFromWPMLLocale(t.locale.locale) === localeContext.locale, post.translated) || post\r\n\r\nconst getQueryRegExp = (query) =>\r\n new RegExp(\r\n String(query)\r\n .toLowerCase()\r\n .replace(SPECIAL_CHAR_REGEXP, '')\r\n .split(' ')\r\n .filter(Boolean)\r\n .map((i) => `(?=.*${i})`)\r\n .join(''),\r\n 'gm'\r\n )\r\n\r\nconst getCategories = (posts) => {\r\n const categories = new Set()\r\n\r\n forEach(posts, (post) => categories.add(post.node.wordpress_site))\r\n\r\n return [...categories].sort()\r\n}\r\n\r\nconst onSearch = (localeContext) => (data, params) => {\r\n let filteredPosts = [...data]\r\n\r\n if (params.category) {\r\n filteredPosts = filteredPosts.filter(post => post.node.wordpress_site === params.category)\r\n }\r\n\r\n if (trim(params.query)) {\r\n const query = getQueryRegExp(params.query)\r\n\r\n filteredPosts = filter((item) => {\r\n const post = getTranslation(localeContext, item.node)\r\n return (\r\n [post.title, ...map((tag) => tag.name, item.node.tags.nodes)].join(' ').toLowerCase().replace(SPECIAL_CHAR_REGEXP, '').search(query) >\r\n -1\r\n )\r\n }, filteredPosts)\r\n }\r\n\r\n return filteredPosts\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'set':\r\n return { ...state, ...action.payload }\r\n default:\r\n throw new Error(`Invalid action type passed to reducer: ${action.type}`)\r\n }\r\n}\r\n\r\nconst NewsCard = loadable(() => import('../components/common/newsCard'))\r\n\r\nconst NewsPage = (props) => {\r\n const theme = useTheme()\r\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'))\r\n const classes = useStyles()\r\n const { querystring } = useLocation()\r\n const { t } = useTranslation()\r\n const localeContext = useContext(LocaleContext)\r\n const { sitePosts, siteData, /*esportsPosts = [], gears5Posts = [], tacticsPosts = [] */} = props.data\r\n\r\n const normalizedGOWPosts = normalizeGearsPosts(sitePosts.edges, 'gears-of-war')\r\n /*const normalizedEsportsPosts = normalizePosts(esportsPosts.posts.edges, 'gears-esports')\r\n const normalizedGears5Posts = normalizePosts(gears5Posts.posts.edges, 'gears-5')\r\n const normalizedTacticsPosts = normalizePosts(tacticsPosts.posts.edges, 'gears-tactics')\r\n\r\n let normalizedPosts = [...normalizedEsportsPosts, ...normalizedGears5Posts, ...normalizedTacticsPosts].filter(\r\n (post) => post.node.wpml_current_locale === localeContext.locale\r\n )*/\r\n\r\n const allPosts = [...normalizedGOWPosts/*, ...normalizedPosts*/]\r\n\r\n const [state, dispatch] = useReducer(reducer, {\r\n query: querystring.query || '',\r\n category: querystring.category || '',\r\n categories: getCategories(allPosts),\r\n posts: orderBy(allPosts, 'node.date', 'desc')\r\n })\r\n\r\n useEffect(() => {\r\n const timeSpans = {\r\n s: 'second',\r\n ss: 'seconds',\r\n m: 'minute',\r\n mm: 'minutes',\r\n h: 'hour',\r\n hh: 'hours',\r\n d: 'day',\r\n dd: 'days',\r\n w: 'week',\r\n ww: 'weeks',\r\n M: 'month',\r\n MM: 'months',\r\n y: 'year',\r\n yy: 'years'\r\n }\r\n\r\n const _relativeTimeParser = (number, _, key) => {\r\n if ((key === 'dd' || key === 'd') && number >= NUM_DAYS_PER_WEEK) {\r\n const weeks = Math.floor(number / NUM_DAYS_PER_WEEK)\r\n if (weeks === 4) {\r\n return t('slug:number-span-ago', { number: 1, span: timeSpans['M'] })\r\n } else {\r\n return t('slug:number-span-ago', { number: weeks, span: timeSpans[weeks === 1 ? 'w' : 'ww'] })\r\n }\r\n } else {\r\n return t('slug:number-span-ago', { number, span: timeSpans[key] })\r\n }\r\n }\r\n\r\n moment.relativeTimeRounding(Math.floor)\r\n moment.relativeTimeThreshold('s', 60)\r\n moment.relativeTimeThreshold('m', 60)\r\n moment.relativeTimeThreshold('h', 24)\r\n moment.relativeTimeThreshold('d', 31)\r\n moment.relativeTimeThreshold('w', 4)\r\n moment.relativeTimeThreshold('M', 12)\r\n moment.updateLocale('en', {\r\n relativeTime: {\r\n s: _relativeTimeParser,\r\n ss: _relativeTimeParser,\r\n m: _relativeTimeParser,\r\n mm: _relativeTimeParser,\r\n h: _relativeTimeParser,\r\n hh: _relativeTimeParser,\r\n d: _relativeTimeParser,\r\n dd: _relativeTimeParser,\r\n w: _relativeTimeParser,\r\n ww: _relativeTimeParser,\r\n M: _relativeTimeParser,\r\n MM: _relativeTimeParser,\r\n y: _relativeTimeParser,\r\n yy: _relativeTimeParser\r\n }\r\n })\r\n }, [])\r\n\r\n // If category is not ALL, show an even number of posts\r\n const POSTS_TO_SHOW = state.category === '' ? INITIAL_POSTS_TO_SHOW : INITIAL_POSTS_TO_SHOW + 1\r\n\r\n const handleSearchTextChangeWithDebounce = debounce((value) => {\r\n dispatch({ type: 'set', payload: { query: value } })\r\n }, 300)\r\n\r\n const handleCategoryChange = (_, category) => {\r\n dispatch({ type: 'set', payload: { category } })\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {t('News')}\r\n \r\n
\r\n handleSearchTextChangeWithDebounce(e.target.value)}\r\n InputProps={{\r\n disableUnderline: true,\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n classes: { root: classes.searchTextInput, focused: classes.searchFocusVisible }\r\n }}\r\n />\r\n\r\n {/* Disabling News filter Pills for All / Gears / Gears 5 / Tactics */\r\n /*!!count(state.categories) && (\r\n \r\n \r\n {map(\r\n (category) => (\r\n \r\n ),\r\n state.categories\r\n )}\r\n \r\n )*/}\r\n\r\n \r\n {t('No News, check back soon')}\r\n \r\n }\r\n loadingComponent={\r\n \r\n {range(POSTS_TO_SHOW).map((i) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n ))}\r\n
\r\n }\r\n nextPageComponent={\r\n \r\n }\r\n >\r\n {({ data, page }) => {\r\n const expectedNumPosts = POSTS_TO_GET * (page - 1) + POSTS_TO_SHOW\r\n const focusedPost = count(data) === expectedNumPosts ? count(data) - POSTS_TO_GET : expectedNumPosts - POSTS_TO_GET\r\n\r\n return (\r\n
\r\n {map((edge, i) => {\r\n const post = edge.node\r\n const locPost = getTranslation(localeContext, edge.node)\r\n\r\n return (\r\n {\r\n if (node && i === focusedPost && page !== 1) {\r\n setTimeout(() => node.focus(), 500)\r\n }\r\n }}\r\n />\r\n )\r\n }, data)}\r\n
\r\n )\r\n }}\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport const pageQuery = graphql`\r\n query NewsQuery {\r\n siteData: site {\r\n siteMetadata {\r\n title\r\n }\r\n }\r\n sitePosts: allWpSitePost(filter: { locale: { locale: { eq: \"en_US\" } } }) {\r\n totalCount\r\n edges {\r\n node {\r\n title\r\n excerpt\r\n slug\r\n link\r\n date\r\n isSticky\r\n # wordpress_site\r\n categories {\r\n nodes {\r\n id\r\n name\r\n slug\r\n }\r\n }\r\n tags {\r\n nodes {\r\n id\r\n name\r\n }\r\n }\r\n formattedDate: date(formatString: \"MMM D, YYYY\")\r\n featuredImage {\r\n node {\r\n sourceUrl\r\n altText\r\n localFile {\r\n childImageSharp {\r\n gatsbyImageData(placeholder: NONE, layout: FULL_WIDTH)\r\n }\r\n }\r\n translated {\r\n title\r\n # excerpt\r\n slug\r\n link\r\n date\r\n formattedDate: date(formatString: \"MMM D, YYYY\")\r\n locale {\r\n locale\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n # esportsPosts: esportsGraphql {\r\n # ...allWordpressEsportsGraphqlPostsFragment\r\n # }\r\n\r\n # gears5Posts: gears5Graphql {\r\n # ...allWordpressGears5GraphqlPostsFragment\r\n # }\r\n\r\n # tacticsPosts: tacticsGraphql {\r\n # ...allWordpressTacticsGraphqlPostsFragment\r\n # }\r\n }\r\n`\r\n\r\nexport default NewsPage\r\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n"],"names":["_interopRequireDefault","exports","_extends2","_objectWithoutPropertiesLoose2","_react","_propTypes","_isString","_trim","_styles","_clsx","_box","_count","_reactMap","_excluded","useClasses","makeStyles","theme","root","display","flexDirection","textAlign","width","defaultItem","marginTop","marginBottom","item","itemMargins","mobile","breakpoints","up","tablet","desktop","subSection","padding","classNamePrefix","Section","_ref","children","className","isSubSection","rest","default","_classes","createElement","child","i","flattenedChildren","Children","count","cloneElement","type","props","propTypes","node","string","bool","shape","oneOfType","number","defaultProps","showMoreContainer","alignItems","showMoreButton","updateQuerystring","params","enablePagination","page","stringData","_objectSpread","cleanStringData","pipe","filter","Boolean","encodeQueryData","length","window","history","replaceState","location","pathname","reducer","state","action","payload","data","perPage","onSearch","initialized","enableQuerystring","initialPerPage","filteredData","currentPage","currentPageData","slice","loading","Error","nextPageComponent","emptyComponent","loadingComponent","_objectWithoutProperties","t","useTranslation","dispatch","useReducer","totalNumItems","hasItems","numItems","useEffect","JSON","stringify","React","total","products","Typography","align","post","toString","onClick","onNextPage","Skeleton","loadable","Grid","SPECIAL_CHAR_REGEXP","useStyles","palette","spacing","accessibility","highContrast","heading","paddingTop","section","position","paddingBottom","searchable","marginLeft","marginRight","noPostsTitle","margin","input","maxWidth","categoryTab","backgroundColor","secondary","light","color","text","primary","searchTextField","textTransform","fontWeight","fontStretch","letterSpacing","searchTextInput","border","borderRadius","background","mediaQuery","searchFocusVisible","skeleton","searchIcon","getTranslation","localeContext","isImplicit","find","getLocaleFromWPMLLocale","locale","translated","getCategories","posts","categories","Set","forEach","add","wordpress_site","_toConsumableArray","sort","filteredPosts","category","trim","query","RegExp","String","toLowerCase","replace","split","map","join","getQueryRegExp","title","concat","tag","name","tags","nodes","search","NewsCard","useTheme","isDesktop","useMediaQuery","classes","querystring","useLocation","useContext","LocaleContext","sitePosts","siteData","normalizedGOWPosts","normalizeGearsPosts","edges","allPosts","orderBy","timeSpans","s","ss","m","mm","h","hh","d","dd","w","ww","M","MM","y","yy","_relativeTimeParser","_","key","weeks","Math","floor","span","moment","relativeTime","POSTS_TO_SHOW","INITIAL_POSTS_TO_SHOW","handleSearchTextChangeWithDebounce","debounce","value","LayoutContent","_extends","setBackgroundImage","Helmet","siteMetadata","variant","TextField","id","label","defaultValue","onChange","e","target","InputProps","disableUnderline","startAdornment","InputAdornment","FontAwesomeIcon","icon","focused","Searchable","cols","xs","md","range","height","Button","expectedNumPosts","focusedPost","edge","locPost","slug","wordpressSite","date","formattedDate","excerpt","featuredMedia","get","headerVariant","linkRefCallback","setTimeout","focus","baseEach","isArrayLike","module","collection","iteratee","index","result","Array","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","isArray","iteratees","orders","object","other","array","comparer","isSymbol","valIsDefined","undefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","baseOrderBy","guard"],"sourceRoot":""}