{"version":3,"file":"Rating-Cx_6f7N9.js","sources":["../../../app/javascript/components/supplier_shared/supplier_icon/PlaceholderIcon.tsx","../../../app/javascript/components/supplier_shared/supplier_icon/SupplierIcon.tsx","../../../app/javascript/components/common/rating/classifyRating.ts","../../../node_modules/lodash-es/_createRound.js","../../../node_modules/lodash-es/round.js","../../../app/javascript/components/common/rating/ratingUtils.ts","../../../app/javascript/components/common/rating/Rating.tsx","../../../app/javascript/components/common/rating/NpsRating.tsx","../../../app/javascript/components/common/rating/RatingNa.tsx","../../../app/javascript/components/common/rating/ReviewCount.tsx","../../../app/javascript/components/Consts.tsx","../../../app/javascript/components/review_ratings/StarRating.tsx","../../../app/javascript/components/review_ratings/OptionalRatingStars.tsx","../../../app/javascript/components/review_ratings/IndividualRating.tsx","../../../app/javascript/components/review_ratings/OverallRating.tsx","../../../app/javascript/components/review_ratings/Rating.tsx"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface PlaceholderIconProps {\n id: string | number // prefer string, but number is provided for backwards compatibility\n name: string\n}\n\nfunction colorCssClass (id: string | number): string {\n const idStr = id.toString()\n const numericSupplierId = parseInt(idStr, 10)\n // If id was non-numeric, use the length of the string to achieve a bit of deterministic randomness\n const validNumericSupplierId = isNaN(numericSupplierId) ? idStr.length : numericSupplierId\n const cssClasses = ['', 'green', 'orange']\n const index = validNumericSupplierId % cssClasses.length\n return cssClasses[index]\n}\n\nexport default function PlaceholderIcon ({ id, name }: PlaceholderIconProps): React.ReactElement {\n const colorClass = colorCssClass(id)\n const missingIconName = name.length > 0 ? name.trim()[0].toUpperCase() : '?'\n\n return (\n
\n {missingIconName}\n
\n )\n}\n\nPlaceholderIcon.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.string.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport PlaceholderIcon from './PlaceholderIcon'\n\ninterface BaseSupplierIconProps {\n id: string | number // prefer string, but number is provided for backwards compatibility\n name: string\n logoUrl?: string\n}\n\ninterface SupplierImageProps extends BaseSupplierIconProps {}\n\nfunction SupplierImage ({ id, name, logoUrl }: SupplierImageProps): React.ReactElement {\n if (logoUrl == null) {\n return \n }\n\n return (\n \n )\n}\n\nSupplierImage.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.string.isRequired,\n logoUrl: PropTypes.string\n}\n\nexport enum IconVariant {\n XSMALL = 'x-small',\n SMALL = 'small',\n LARGE = 'large pro-closest-shadow',\n XLARGE = 'x-large pro-closest-shadow'\n}\n\ninterface SupplierIconProps extends BaseSupplierIconProps {\n variant: IconVariant\n}\n\nexport default function SupplierIcon ({ variant = IconVariant.SMALL, ...imageProps }: SupplierIconProps): React.ReactElement {\n return (\n
\n \n
\n )\n}\n\nSupplierIcon.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.string.isRequired,\n logoUrl: PropTypes.string,\n isLarge: PropTypes.bool\n}\n","export const classifyRating = (rating: number | null | undefined): string => {\n if (rating == null) {\n return 'no-rating'\n } else if (rating >= 4.0) {\n return 'good-rating'\n } else if (rating >= 3.1) {\n return 'medium-rating'\n } else {\n return 'poor-rating'\n }\n}\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nexport default createRound;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n","import { round } from 'lodash-es'\n\n// Clone of ruby's divmod\nconst divmod = (score: number, divisor: number): number[] => {\n const quotient = Math.floor(score / divisor)\n const remainder = score % divisor\n\n return [quotient, remainder]\n}\n\n// Calculates a value that fills stars more accurately than raw score\nconst adjustDecimalScore = (decimalScore: number): number => {\n if (decimalScore > 0.165 && decimalScore <= 0.415) {\n return 0.4\n } else if (decimalScore > 0.415 && decimalScore <= 0.585) {\n return 0.5\n } else if (decimalScore > 0.585 && decimalScore <= 0.835) {\n return 0.6\n } else if (decimalScore > 0.835) {\n return 1.0\n } else {\n return 0.0\n }\n}\n\n// See rating_util.rb for the file of which this is meant to be a clone\nexport const RatingUtil: { round: Function, roundForStars: Function } = {\n round: (score: number): number => {\n return round(score, 1)\n },\n\n roundForStars: (score: number): number => {\n const [integerScore, decimalScore] = divmod(score, 1)\n const adjustedDecimalScore = adjustDecimalScore(decimalScore)\n\n return round(integerScore + adjustedDecimalScore, 1) * 10\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { RatingUtil } from './ratingUtils'\nimport { classifyRating } from './classifyRating'\n\nconst RatingPropTypes = {\n rating: PropTypes.number\n}\n\ntype RatingProps = PropTypes.InferType\n\nconst renderRating = (rating: number): React.ReactElement => {\n const roundedRating = RatingUtil.round(rating)\n\n return (\n <>\n {roundedRating}\n /5\n \n )\n}\n\nconst renderNoRating = (): React.ReactElement => (\n N/A\n)\n\nconst renderContent = (rating: number): React.ReactElement => {\n if (rating == null) {\n return renderNoRating()\n } else {\n return renderRating(rating)\n }\n}\n\nexport const Rating = ({ rating }: RatingProps): React.ReactElement => {\n return (\n \n {renderContent(rating)}\n \n )\n}\n\nRating.propTypes = RatingPropTypes\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { classifyRating } from './classifyRating'\n\nconst NpsRatingPropTypes = {\n rating: PropTypes.number\n}\n\ntype NpsRatingProps = PropTypes.InferType\n\nconst renderRating = (rating: number): React.ReactElement => (\n <>\n {rating}\n \n)\n\nconst renderNoRating = (): React.ReactElement => (\n N/A\n)\n\nconst renderContent = (rating: number): React.ReactElement => {\n if (rating == null) {\n return renderNoRating()\n } else {\n return renderRating(rating)\n }\n}\n\nexport const NpsRating = ({ rating }: NpsRatingProps): React.ReactElement => {\n return (\n \n {renderContent(rating)}\n \n )\n}\n\nNpsRating.propTypes = NpsRatingPropTypes\n","import React from 'react'\n\nexport const RatingNa: React.FC = () => {\n return N/A\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { RatingNa } from 'components/common/rating/RatingNa'\n\nconst ReviewCountPropTypes = {\n reviewCount: PropTypes.number,\n url: PropTypes.string,\n children: PropTypes.node,\n noReviewContent: PropTypes.node\n}\n\ntype ReviewCountProps = PropTypes.InferProps\n\nconst plainReviewCount = (reviewCount: number): React.ReactElement => (\n \n  \n ({reviewCount.toString()})\n \n)\n\nconst linkedReviewCount = (reviewCount: number, url: string): React.ReactElement => (\n \n  \n ({reviewCount.toString()})\n \n)\n\nexport const ReviewCount = ({ reviewCount, url, children, noReviewContent }: ReviewCountProps): React.ReactElement => {\n noReviewContent = noReviewContent ?? \n if (reviewCount == null) {\n return <>{noReviewContent}\n }\n\n return (\n <>\n {children}\n {(url != null) ? linkedReviewCount(reviewCount, url) : plainReviewCount(reviewCount)}\n \n )\n}\n","export interface Colors {\n proSteelGrey400: string\n proSteelGrey600: string\n proSteelGrey700: string\n proBlue400: string\n}\n\nconst COLORS: Colors = {\n proSteelGrey400: '#ABB8C5',\n proSteelGrey600: '#546372',\n proSteelGrey700: '#2A353F',\n proBlue400: '#4B7FD5'\n}\n\nexport interface OtherRatingTypes {\n service_rating: string\n price_rating: string\n quality_rating: string\n timeliness_rating: string\n}\n\nconst OTHER_RATING_TYPES: OtherRatingTypes = {\n service_rating: 'Customer Service',\n price_rating: 'Pricing/Value',\n quality_rating: 'Quality',\n timeliness_rating: 'Timeliness'\n}\n\nexport interface RatingTypes extends OtherRatingTypes {\n overall_rating: string\n}\n\nconst RATING_TYPES: RatingTypes = {\n ...OTHER_RATING_TYPES,\n overall_rating: 'Overall'\n}\n\nconst Const = {\n COLORS,\n RATING_TYPES,\n OTHER_RATING_TYPES\n}\n\nexport default Const\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface StarRatingProps {\n blurred?: boolean\n className?: string\n rating: number // TODO: Make this stricter\n}\n\nexport const StarRating = ({ blurred = false, className = '', rating }: StarRatingProps): React.ReactElement => {\n if (blurred) {\n return
\n }\n\n return (\n
\n
\n
\n )\n}\n\nStarRating.propTypes = {\n rating: PropTypes.number.isRequired,\n blurred: PropTypes.bool,\n className: PropTypes.string\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport { StarRating } from './StarRating'\n\nexport interface OptionalRatingStarsProps {\n rating?: number\n}\n\nexport function OptionalRatingStars ({ rating }: OptionalRatingStarsProps): React.ReactElement {\n if (typeof rating === 'number' && rating >= 0 && rating <= 50) {\n return \n }\n return Not Available\n}\n\nOptionalRatingStars.propTypes = {\n rating: PropTypes.number\n}\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport { OptionalRatingStars } from './OptionalRatingStars'\n\nexport interface OptionalRatingStarsProps {\n title: string\n value: number\n}\n\nexport const IndividualRating = ({ title, value }: OptionalRatingStarsProps): React.ReactElement => (\n
\n {title}
\n \n
\n)\n\nIndividualRating.propTypes = {\n title: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface OverallRatingProps {\n ratingLabel: string // This should be stricter, but requires refactoring Const.RATING_TYPES\n value: number\n}\n\nexport const OverallRating = ({ ratingLabel, value }: OverallRatingProps): React.ReactElement => {\n const displayRatingValue = Math.round(value) / 10\n\n const ratingLabelDisplay = `${ratingLabel} Rating`\n\n return (\n
\n
{ratingLabelDisplay}
\n
\n
\n
\n
\n {displayRatingValue} out of 5\n
\n
\n )\n}\n\nOverallRating.propTypes = {\n ratingLabel: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { StarRating } from './StarRating'\nimport { ReviewCount } from 'components/common/rating'\n\nexport interface RatingProps {\n rating: number // TODO: Make this stricter\n reviewCount: number\n}\n\nexport function Rating ({ rating, reviewCount }: RatingProps): React.ReactElement {\n const starRating = rating * 10\n return (\n
\n {rating.toFixed(1)}\n \n \n \n
\n )\n}\n\nRating.propTypes = {\n rating: PropTypes.number.isRequired,\n reviewCount: PropTypes.number.isRequired\n}\n"],"names":["colorCssClass","id","idStr","numericSupplierId","validNumericSupplierId","cssClasses","index","PlaceholderIcon","name","colorClass","missingIconName","jsx","PropTypes","SupplierImage","logoUrl","IconVariant","SupplierIcon","variant","imageProps","classifyRating","rating","nativeIsFinite","root","nativeMin","createRound","methodName","func","number","precision","toNumber","toInteger","pair","toString","value","round","divmod","score","divisor","quotient","remainder","adjustDecimalScore","decimalScore","RatingUtil","integerScore","adjustedDecimalScore","RatingPropTypes","renderRating","roundedRating","jsxs","Fragment","renderNoRating","renderContent","Rating","NpsRatingPropTypes","NpsRating","RatingNa","plainReviewCount","reviewCount","linkedReviewCount","url","ReviewCount","children","noReviewContent","COLORS","OTHER_RATING_TYPES","RATING_TYPES","Const","StarRating","blurred","className","OptionalRatingStars","IndividualRating","title","OverallRating","ratingLabel","displayRatingValue","ratingLabelDisplay","starRating"],"mappings":"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","x_google_ignoreList":[3,4]}