{"version":3,"file":"index.cjs","sources":["../../../../src/components/Rating/index.tsx"],"sourcesContent":["// Modules\r\nimport cn from 'classnames';\r\n\r\n// Types\r\nimport type { TRatingProps } from './Rating.type';\r\n\r\n// Styles\r\nimport styles from './styles.module.scss';\r\n\r\n// Helpers\r\nimport { isFunction } from '../../helpers/typeChecker';\r\n\r\n// Constant\r\nimport { RATING_DEFAULT_PROPS } from './Rating.constant';\r\n\r\nconst Rating = (props: TRatingProps) => {\r\n  const {\r\n    activeColor,\r\n    className,\r\n    defaultColor,\r\n    hoverColor,\r\n    maxRating = RATING_DEFAULT_PROPS.maxRating,\r\n    onChange,\r\n    readonly,\r\n    starClassName,\r\n    starStyle,\r\n    style,\r\n    value = RATING_DEFAULT_PROPS.value,\r\n    ...restProps\r\n  } = props;\r\n  const validMaxRating = Math.max(maxRating!, 1)\r\n\r\n  const ratingCN = cn(styles.legion_rating, className)\r\n\r\n  const handleChange = (rating: number) => () => {\r\n    if (isFunction(onChange)) onChange(rating)\r\n  }\r\n\r\n  return (\r\n    <div className={ratingCN} style={{...style}} {...restProps}>\r\n      {Array.from(Array(validMaxRating).keys()).map(ratingStar => {\r\n        const ratingPercentage = (value! - ratingStar) * 100;\r\n        const starCN = cn(styles.rating_star, starClassName, {\r\n          [styles.active]: ratingPercentage > 0,\r\n          [styles.readonly]: readonly,\r\n        })\r\n\r\n        return (\r\n          <div\r\n            key={`rating_${ratingStar}`}\r\n            className={starCN}\r\n            onClick={handleChange(ratingStar + 1)}\r\n            style={{\r\n              ...starStyle,\r\n              ...(activeColor ? { ['--rating-custom-color-active']: activeColor } : {}),\r\n              ...(defaultColor ? { ['--rating-custom-color-default']: defaultColor } : {}),\r\n              ...(hoverColor ? { ['--rating-custom-color-hover']: hoverColor } : {}),\r\n              ...(ratingPercentage ? { ['--rating-percentage']: `${ratingPercentage}%` } : {})\r\n            }}\r\n          >\r\n            ★\r\n          </div>\r\n        )\r\n      })}\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default Rating;\r\n"],"names":["props","activeColor","className","defaultColor","hoverColor","maxRating","RATING_DEFAULT_PROPS","onChange","readonly","starClassName","starStyle","style","value","restProps","validMaxRating","Math","max","ratingCN","cn","styles","legion_rating","_jsx","children","Array","from","keys","map","ratingStar","ratingPercentage","starCN","rating_star","active","onClick","rating","isFunction"],"mappings":"iUAegBA,IACd,MAAMC,YACJA,EAAWC,UACXA,EAASC,aACTA,EAAYC,WACZA,EAAUC,UACVA,EAAYC,EAAAA,qBAAqBD,UAASE,SAC1CA,EAAQC,SACRA,EAAQC,cACRA,EAAaC,UACbA,EAASC,MACTA,EAAKC,MACLA,EAAQN,EAAAA,qBAAqBM,SAC1BC,GACDb,EACEc,EAAiBC,KAAKC,IAAIX,EAAY,GAEtCY,EAAWC,EAAAA,QAAGC,UAAOC,cAAelB,GAM1C,OACEmB,EAAAA,IAAA,MAAA,CAAKnB,UAAWe,EAAUN,MAAO,IAAIA,MAAYE,EAASS,SACvDC,MAAMC,KAAKD,MAAMT,GAAgBW,QAAQC,IAAIC,IAC5C,MAAMC,EAA2C,KAAvBhB,EAASe,GAC7BE,EAASX,EAAAA,QAAGC,UAAOW,YAAarB,EAAe,CACnD,CAACU,EAAAA,QAAOY,QAASH,EAAmB,EACpC,CAACT,EAAAA,QAAOX,UAAWA,IAGrB,OACEa,MAAA,MAAA,CAEEnB,UAAW2B,EACXG,SAjBYC,EAiBUN,EAAa,EAjBJ,KACnCO,EAAAA,WAAW3B,IAAWA,EAAS0B,KAiB3BtB,MAAO,IACFD,KACCT,EAAc,CAAE,+BAAkCA,GAAgB,CAAA,KAClEE,EAAe,CAAE,gCAAmCA,GAAiB,CAAA,KACrEC,EAAa,CAAE,8BAAiCA,GAAe,CAAA,KAC/DwB,EAAmB,CAAE,sBAAyB,GAAGA,MAAwB,CAAA,GAC9EN,SAAA,KATI,UAAUK,KAfJ,IAACM"}