{"version":3,"file":"rating-stars-8c93246a.js","sources":["../../../../src/scripts/react-components/rating-stars.tsx"],"sourcesContent":["import React from 'react';\n\ntype RatingStarsProps = {\n  rating: number;\n  total?: number;\n  link?: string;\n  hideRating?: boolean;\n  additionalClasses?: string;\n};\n\nfunction RatingStars({\n  rating,\n  total,\n  link,\n  hideRating,\n  additionalClasses\n}: RatingStarsProps) {\n  const stars = Array.from(Array(5).keys());\n\n  const addTrailingZero = (number: number) => {\n    const numberString = number.toString();\n\n    if (numberString.indexOf('.') === -1) {\n      return numberString + '.0';\n    } else {\n      return numberString;\n    }\n  };\n\n  return (\n    <div\n      className={`rating-stars ${additionalClasses}`}\n      data-module=\"rating-stars\"\n      data-rating=\"4.9\"\n    >\n      <div className=\"rating-stars__stars\">\n        {stars.map(i => {\n          const starValue = Number((rating - i).toFixed(2));\n\n          if (starValue >= 0.8) {\n            return (\n              <div key={i} className=\"rating-star rating-star--filled\"></div>\n            );\n          }\n\n          if (starValue >= 0.3) {\n            return (\n              <div\n                key={i}\n                className=\"rating-star rating-star--half-filled\"\n              ></div>\n            );\n          }\n\n          return <div key={i} className=\"rating-star\"></div>;\n        })}\n      </div>\n      {!hideRating && (\n        <span className=\"rating-stars__average\">{addTrailingZero(rating)}</span>\n      )}\n      {total && <span className=\"rating-stars__total\">({total})</span>}\n      {link && (\n        <a\n          href=\"#unique-contractor-reviews-id\"\n          rel=\"noopener noreferrer\"\n          className=\"rating-stars__link\"\n          data-layer='[{\"event\":\"view_reviews_click\",\"event_action\":\"view reviews click\",\"event_label\":\"\",\"event_attributes\":{\"contractor_id\":null,\"contractor_name\":null,\"contractor_certificates_count\":0,\"contractor_rating\":0,\"contractor_reviews_count\":0,\"contractor_type\":null,\"contractor_certificate_name\":null},\"event_category\":\"contractor interactions\"}]'\n        >\n          <span className=\"sr-only\">See reviews</span>\n        </a>\n      )}\n    </div>\n  );\n}\n\nexport default RatingStars;\n"],"names":["RatingStars","rating","total","link","hideRating","additionalClasses","stars","addTrailingZero","number","numberString","React","i","starValue"],"mappings":"yCAUA,SAASA,EAAY,CACnB,OAAAC,EACA,MAAAC,EACA,KAAAC,EACA,WAAAC,EACA,kBAAAC,CACF,EAAqB,CACnB,MAAMC,EAAQ,MAAM,KAAK,MAAM,CAAC,EAAE,MAAM,EAElCC,EAAmBC,GAAmB,CACpC,MAAAC,EAAeD,EAAO,WAE5B,OAAIC,EAAa,QAAQ,GAAG,IAAM,GACzBA,EAAe,KAEfA,CACT,EAIA,OAAAC,EAAA,cAAC,MAAA,CACC,UAAW,gBAAgBL,IAC3B,cAAY,eACZ,cAAY,KAAA,kBAEX,MAAI,CAAA,UAAU,qBACZ,EAAAC,EAAM,IAASK,GAAA,CACd,MAAMC,EAAY,QAAQX,EAASU,GAAG,QAAQ,CAAC,CAAC,EAEhD,OAAIC,GAAa,GAEZF,EAAA,cAAA,MAAA,CAAI,IAAKC,EAAG,UAAU,iCAAkC,CAAA,EAIzDC,GAAa,GAEbF,EAAA,cAAC,MAAA,CACC,IAAKC,EACL,UAAU,sCAAA,CAAA,EAKRD,EAAA,cAAA,MAAA,CAAI,IAAKC,EAAG,UAAU,aAAc,CAAA,CAAA,CAC7C,CACH,EACC,CAACP,GACCM,EAAA,cAAA,OAAA,CAAK,UAAU,uBAAyB,EAAAH,EAAgBN,CAAM,CAAE,EAElEC,GAAUQ,EAAA,cAAA,OAAA,CAAK,UAAU,uBAAsB,IAAER,EAAM,GAAC,EACxDC,GACCO,EAAA,cAAC,IAAA,CACC,KAAK,gCACL,IAAI,sBACJ,UAAU,qBACV,aAAW,kVAAA,EAEVA,EAAA,cAAA,OAAA,CAAK,UAAU,SAAA,EAAU,aAAW,CACvC,CAAA,CAIR"}