{"version":3,"file":"govx-desktop.blogpostpage.1aa3cc8a98bc07e67950.js","mappings":"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","sources":["webpack://@govx/govx-shop/./node_modules/@material-ui/icons/Person.js","webpack://@govx/govx-shop/./node_modules/date-fns/esm/parseISO/index.js","webpack://@govx/govx-shop/./src/desktop/components/Blogs/Comments/Reply.js","webpack://@govx/govx-shop/./src/desktop/components/Blogs/Comments/Comment.js","webpack://@govx/govx-shop/./src/desktop/components/Blogs/Comments/LeaveAComment.js","webpack://@govx/govx-shop/./src/desktop/components/Blogs/Comments/index.js","webpack://@govx/govx-shop/./src/desktop/components/Blogs/BlogPostPage/index.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');\n\nexports.default = _default;","import toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n  dateTimeDelimiter: /[T ]/,\n  timeZoneDelimiter: /[Z ]/i,\n  timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   parse('2016-01-01')\n *\n *   // v2.0.0 onward\n *   parseISO('2016-01-01')\n *   ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n *   and returns `Invalid Date` if the date is invalid.\n *\n *   ```javascript\n *   parseISO('2018-13-32')\n *   //=> Invalid Date\n *   ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n *   if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n  if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n    throw new RangeError('additionalDigits must be 0, 1 or 2');\n  }\n\n  if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n    return new Date(NaN);\n  }\n\n  var dateStrings = splitDateString(argument);\n  var date;\n\n  if (dateStrings.date) {\n    var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n    date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n  }\n\n  if (isNaN(date) || !date) {\n    return new Date(NaN);\n  }\n\n  var timestamp = date.getTime();\n  var time = 0;\n  var offset;\n\n  if (dateStrings.time) {\n    time = parseTime(dateStrings.time);\n\n    if (isNaN(time) || time === null) {\n      return new Date(NaN);\n    }\n  }\n\n  if (dateStrings.timezone) {\n    offset = parseTimezone(dateStrings.timezone);\n\n    if (isNaN(offset)) {\n      return new Date(NaN);\n    }\n  } else {\n    var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n    // but we need it to be parsed in our timezone\n    // so we use utc values to build date in our timezone.\n    // Year values from 0 to 99 map to the years 1900 to 1999\n    // so set year explicitly with setFullYear.\n\n    var result = new Date(0);\n    result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n    result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n    return result;\n  }\n\n  return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n  var dateStrings = {};\n  var array = dateString.split(patterns.dateTimeDelimiter);\n  var timeString; // The regex match should only return at maximum two array elements.\n  // [date], [time], or [date, time].\n\n  if (array.length > 2) {\n    return dateStrings;\n  }\n\n  if (/:/.test(array[0])) {\n    dateStrings.date = null;\n    timeString = array[0];\n  } else {\n    dateStrings.date = array[0];\n    timeString = array[1];\n\n    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n      timeString = dateString.substr(dateStrings.date.length, dateString.length);\n    }\n  }\n\n  if (timeString) {\n    var token = patterns.timezone.exec(timeString);\n\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], '');\n      dateStrings.timezone = token[1];\n    } else {\n      dateStrings.time = timeString;\n    }\n  }\n\n  return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n  var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n  var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n  if (!captures) return {\n    year: null\n  };\n  var year = captures[1] && parseInt(captures[1]);\n  var century = captures[2] && parseInt(captures[2]);\n  return {\n    year: century == null ? year : century * 100,\n    restDateString: dateString.slice((captures[1] || captures[2]).length)\n  };\n}\n\nfunction parseDate(dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) return null;\n  var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n  if (!captures) return null;\n  var isWeekDate = !!captures[4];\n  var dayOfYear = parseDateUnit(captures[1]);\n  var month = parseDateUnit(captures[2]) - 1;\n  var day = parseDateUnit(captures[3]);\n  var week = parseDateUnit(captures[4]);\n  var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n  if (isWeekDate) {\n    if (!validateWeekDate(year, week, dayOfWeek)) {\n      return new Date(NaN);\n    }\n\n    return dayOfISOWeekYear(year, week, dayOfWeek);\n  } else {\n    var date = new Date(0);\n\n    if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n      return new Date(NaN);\n    }\n\n    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n    return date;\n  }\n}\n\nfunction parseDateUnit(value) {\n  return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n  var captures = timeString.match(timeRegex);\n  if (!captures) return null; // Invalid ISO-formatted time\n\n  var hours = parseTimeUnit(captures[1]);\n  var minutes = parseTimeUnit(captures[2]);\n  var seconds = parseTimeUnit(captures[3]);\n\n  if (!validateTime(hours, minutes, seconds)) {\n    return NaN;\n  }\n\n  return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n  return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n  if (timezoneString === 'Z') return 0;\n  var captures = timezoneString.match(timezoneRegex);\n  if (!captures) return 0;\n  var sign = captures[1] === '+' ? -1 : 1;\n  var hours = parseInt(captures[2]);\n  var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n  if (!validateTimezone(hours, minutes)) {\n    return NaN;\n  }\n\n  return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n  var date = new Date(0);\n  date.setUTCFullYear(isoWeekYear, 0, 4);\n  var fourthOfJanuaryDay = date.getUTCDay() || 7;\n  var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n  return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n  return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n  if (hours === 24) {\n    return minutes === 0 && seconds === 0;\n  }\n\n  return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n  return minutes >= 0 && minutes <= 59;\n}","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Button from '../../common/Button'\nimport CancelButton from '../../common/Button/Cancel'\nimport { TextField } from '@material-ui/core'\nimport { compose, withState, withHandlers } from 'recompose'\n\nexport const Reply = ({\n  isReplying,\n  setIsReplying,\n  comment,\n  replyText,\n  setReplyText,\n  saveReply,\n}) => (\n  <div\n    style={{\n      paddingLeft: '15px',\n      marginTop: '10px',\n    }}\n  >\n    {isReplying ? (\n      <div>\n        <div style={{ margin: '5px 0' }}>\n          <TextField\n            id={`blogReply-${comment.id}`}\n            multiline\n            rowsMax='4'\n            value={replyText}\n            onChange={(e) => setReplyText(e.target.value)}\n            fullWidth\n            variant='outlined'\n          />\n        </div>\n        <div>\n          <Button onClick={saveReply}>Reply</Button>&nbsp;\n          <CancelButton onClick={() => setIsReplying(false)}>\n            Cancel\n          </CancelButton>\n        </div>\n      </div>\n    ) : (\n      <Button onClick={() => setIsReplying(true)} variant='text'>\n        Reply\n      </Button>\n    )}\n  </div>\n)\n\nReply.propTypes = {\n  isReplying: PropTypes.bool.isRequired,\n  setIsReplying: PropTypes.func.isRequired,\n  comment: PropTypes.object.isRequired,\n  saveReply: PropTypes.func.isRequired,\n}\n\nconst enhance = compose(\n  withState('isReplying', 'setIsReplying', false),\n  withState('replyText', 'setReplyText', ''),\n  withHandlers({\n    saveReply: (props) => () => {\n      props\n        .createComment({\n          commentText: props.replyText,\n          parentId: props.comment.id,\n        })\n        .then((comment) => {\n          props.setIsReplying(false)\n        })\n    },\n  }),\n)\n\nexport default enhance(Reply)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport format from 'date-fns/format'\nimport parseISO from 'date-fns/parseISO'\nimport Reply from './Reply'\nimport PersonIcon from '@material-ui/icons/Person'\n\nexport const Comment = ({\n  comment,\n  replies = [],\n  canComment,\n  createComment,\n  includeBorder = true,\n}) => (\n  <div\n    style={{\n      borderTop: includeBorder ? '1px solid #d6d6d6' : 'none',\n      paddingTop: '10px',\n    }}\n  >\n    <Grid container justify='space-between'>\n      <Grid item xs={6} style={{ fontWeight: 'bold' }}>\n        <PersonIcon style={{ color: '#cf5928', fontSize: '1.33em' }} />{' '}\n        {comment.authorName}\n      </Grid>\n      <Grid item xs={6} style={{ color: '#999', textAlign: 'right' }}>\n        {format(parseISO(comment.createdOnUtc), 'MM/d/yyyy')}\n      </Grid>\n    </Grid>\n    <Typography variant='body1' style={{ margin: '0 0 0 20px' }}>\n      {comment.commentText}\n    </Typography>\n    {canComment && <Reply createComment={createComment} comment={comment} />}\n    <div style={{ padding: '0 0 0 20px' }}>\n      {replies.map((reply) => (\n        <Comment\n          includeBorder={false}\n          canComment={false}\n          key={reply.id}\n          comment={reply}\n        />\n      ))}\n    </div>\n  </div>\n)\n\nComment.propTypes = {\n  comment: PropTypes.object.isRequired,\n  replies: PropTypes.array,\n  canComment: PropTypes.bool.isRequired,\n  createComment: PropTypes.func,\n}\n\nexport default Comment\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\nimport Button from '../../common/Button'\nimport { compose, withState, withHandlers } from 'recompose'\n\nexport const LeaveAComment = ({\n  canComment,\n  saveComment,\n  commentText,\n  setCommentText,\n  message,\n}) => (\n  <div>\n    <Typography\n      variant='h6'\n      style={{ fontFamily: 'geomanist-regular', fontSize: '20px' }}\n    >\n      Leave a comment:\n    </Typography>\n    <div style={{ marginTop: '10px' }}>\n      {canComment ? (\n        <div>\n          <TextField\n            id='blogComment'\n            multiline\n            rowsMax='4'\n            variant='outlined'\n            value={commentText}\n            onChange={(e) => setCommentText(e.target.value)}\n            fullWidth\n          />\n          {message && (\n            <Typography variant='body1' style={{ color: '#360' }}>\n              {message}\n            </Typography>\n          )}\n          <div style={{ margin: '8px 0' }}>\n            <Button onClick={saveComment}>Post Comment</Button>\n          </div>\n        </div>\n      ) : (\n        <Typography variant='body1'>\n          You must be a member of GOVX to comment.\n        </Typography>\n      )}\n    </div>\n  </div>\n)\n\nLeaveAComment.propTypes = {\n  canComment: PropTypes.bool.isRequired,\n  saveComment: PropTypes.func.isRequired,\n  commentText: PropTypes.string.isRequired,\n  message: PropTypes.string.isRequired,\n}\n\nconst enhance = compose(\n  withState('commentText', 'setCommentText', ''),\n  withState('message', 'setMessage', ''),\n  withHandlers({\n    saveComment: (props) => () => {\n      props\n        .createComment({ commentText: props.commentText, parentId: 0 })\n        .then((comment) => {\n          props.setCommentText('')\n          props.setMessage('Blog comment successfully added.')\n        })\n    },\n  }),\n)\n\nexport default enhance(LeaveAComment)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Comment from './Comment'\nimport LeaveAComment from './LeaveAComment'\n\nexport const Comments = ({ comments, canComment, createComment }) => (\n  <div>\n    <LeaveAComment canComment={canComment} createComment={createComment} />\n    <div style={{ marginTop: '30px' }}>\n      {comments\n        .filter((c) => c.parentId === 0)\n        .map((c, i) => (\n          <Comment\n            includeBorder={i > 0}\n            canComment={canComment}\n            key={c.id}\n            comment={c}\n            createComment={createComment}\n            replies={comments.filter((c2) => c2.parentId === c.id)}\n          />\n        ))}\n    </div>\n  </div>\n)\n\nComments.propTypes = {\n  comments: PropTypes.array.isRequired,\n  canComment: PropTypes.bool.isRequired,\n  createComment: PropTypes.func.isRequired,\n}\n\nexport default Comments\n","import React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { compose } from 'recompose'\nimport {\n  selectBlog,\n  selectBlogComments,\n  selectUser,\n} from '../../../../redux/selectors'\nimport { createBlogComment, fetchBlogComments } from '../../../../redux/actions'\nimport { buildPictureUrl } from '../../../../utilities/picture-util'\nimport Typography from '@material-ui/core/Typography'\nimport RouteLink from '../../common/links/RouteLink'\nimport format from 'date-fns/format'\nimport parseISO from 'date-fns/parseISO'\nimport Comments from '../Comments'\nimport { withRouter } from 'react-router'\n\nexport const BlogPostPage = ({ blog, comments, canComment, createComment }) =>\n  blog ? (\n    <div\n      style={{ maxWidth: '800px', margin: '20px auto 30px', padding: '15px' }}\n    >\n      <div style={{ borderBottom: '9px solid #cf5928', margin: '0 -20px 0' }}>\n        <img\n          src={buildPictureUrl(blog.image, '', blog.image.width)}\n          width={blog.image.width}\n          height={blog.image.height}\n          alt={blog.title}\n          style={{ verticalAlign: 'middle', width: '100%' }}\n        />\n      </div>\n      <div>\n        <Typography\n          variant='h5'\n          style={{ margin: '30px 0 0', textAlign: 'center' }}\n        >\n          {blog.title}\n        </Typography>\n      </div>\n      <div\n        style={{\n          fontSize: '16px',\n          margin: '30px 0',\n          color: '#999',\n          textAlign: 'center',\n        }}\n      >\n        {format(parseISO(blog.publishDate), 'eeee, MMMM d, yyyy')} | By{' '}\n        {blog.authorName}\n      </div>\n      <div\n        style={{ fontSize: '16px' }}\n        dangerouslySetInnerHTML={{ __html: blog.body }}\n      ></div>\n      <div style={{ margin: '15px 0', fontSize: '16px' }}>\n        TAGS:&nbsp;\n        {blog.tags.map((t, i) => (\n          <Fragment key={t}>\n            {i > 0 ? ', ' : ''}\n            <RouteLink style={{ color: '#00a1df' }} to={`/blog/tag/${t}`}>\n              {t}\n            </RouteLink>\n          </Fragment>\n        ))}\n      </div>\n\n      {blog.allowComments && (\n        <Comments\n          createComment={createComment}\n          canComment={canComment}\n          comments={comments}\n        />\n      )}\n    </div>\n  ) : (\n    <div>Blog not found</div>\n  )\n\nBlogPostPage.propTypes = {\n  blog: PropTypes.object,\n  comments: PropTypes.array,\n  canComment: PropTypes.bool.isRequired,\n  createComment: PropTypes.func.isRequired,\n}\n\nconst mapStateToProps = (state, ownProps) => {\n  const user = selectUser(state)\n\n  return {\n    blog: selectBlog(ownProps.match.params.id)(state),\n    comments: selectBlogComments(ownProps.match.params.id)(state),\n    canComment: !!(user && user.isApproved),\n  }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n  createComment: (comment) =>\n    dispatch(\n      createBlogComment({\n        ...comment,\n        blogPostId: parseInt(ownProps.match.params.id),\n      }),\n    ),\n})\n\nconst enhance = compose(\n  withRouter,\n  connect(mapStateToProps, mapDispatchToProps)\n)\n\nexport default enhance(BlogPostPage)\n"],"names":["_interopRequireDefault","require","_interopRequireWildcard","exports","React","_default","createElement","d","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","DEFAULT_ADDITIONAL_DIGITS","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","argument","dirtyOptions","requiredArgs","arguments","options","additionalDigits","toInteger","RangeError","Object","prototype","toString","call","Date","NaN","date","dateStrings","dateString","timeString","array","split","length","test","substr","token","exec","time","replace","splitDateString","parseYearResult","regex","RegExp","captures","match","year","parseInt","century","restDateString","slice","parseYear","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","setUTCFullYear","diff","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","Math","max","parseDate","isNaN","offset","timestamp","getTime","hours","parseTimeUnit","minutes","seconds","validateTime","parseTime","dirtyDate","result","setFullYear","getUTCFullYear","getUTCMonth","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","sign","_hours","validateTimezone","parseTimezone","value","parseFloat","Reply","_ref","isReplying","setIsReplying","comment","replyText","setReplyText","saveReply","style","paddingLeft","marginTop","margin","TextField","id","concat","multiline","rowsMax","onChange","e","target","fullWidth","variant","Button","onClick","CancelButton","propTypes","PropTypes","isRequired","compose","withState","withHandlers","props","createComment","commentText","parentId","then","Comment","_ref$replies","replies","canComment","_ref$includeBorder","includeBorder","borderTop","paddingTop","Grid","container","justify","item","xs","fontWeight","PersonIcon","color","fontSize","authorName","textAlign","format","createdOnUtc","Typography","padding","map","reply","_Comment","key","LeaveAComment","saveComment","setCommentText","message","fontFamily","setMessage","Comments","comments","filter","c","i","c2","BlogPostPage","blog","maxWidth","borderBottom","src","buildPictureUrl","image","width","height","alt","title","verticalAlign","publishDate","dangerouslySetInnerHTML","__html","body","tags","t","Fragment","RouteLink","to","allowComments","withRouter","connect","state","ownProps","user","selectUser","selectBlog","params","selectBlogComments","isApproved","dispatch","createBlogComment","_objectSpread","blogPostId"],"sourceRoot":""}