UNPKG

@legion-ui-kit/react-core

Version:

<div align="center"> <img height="108" width="116" src="https://legion.digitaltelkom.id/favicon.svg?v=4643a71fb65fa61a5f2b266b769ea7b1" /> <h1 align="center">Legion UI Kit - React Core</h1> </div>

1 lines 3.42 kB
{"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"}