import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{ComponentBase as n,useHandleStyle as r}from"primereact/componentbase";import{useMergeProps as o}from"primereact/hooks";import{BanIcon as a}from"primereact/icons/ban";import{StarIcon as i}from"primereact/icons/star";import{StarFillIcon as l}from"primereact/icons/starfill";import{Tooltip as c}from"primereact/tooltip";import{classNames as u,ObjectUtils as s,IconUtils as p}from"primereact/utils";function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ng.stars?1:g.value+1)}},T=function(e,t){I(t)},U=function(e){"Enter"===e.key&&R(e)};e.useImperativeHandle(m,(function(){return{props:g,getElement:function(){return j.current}}}));var J=s.isNotEmpty(g.tooltip),K=y({ref:j,id:g.id,className:u(g.className,x("root")),style:g.style},w.getOtherProps(g),D("root")),M=function(){if(g.cancel){var t=y({className:x("cancelIcon")},D("cancelIcon")),n=p.getJSXIcon(g.cancelIcon||e.createElement(a,t),E(E({},t),g.cancelIconProps),{props:g}),r=y({className:x("cancelItem"),onClick:R,tabIndex:k,onKeyDown:U},D("cancelItem"));return e.createElement("div",r,n)}return null}(),V=Array.from({length:g.stars},(function(e,t){return t+1})).map((function(t){var n=t<=g.value,r=y({className:x("onIcon")},A(g.value,"onIcon")),o=y({className:x("onIcon")},A(g.value,"offIcon")),a=p.getJSXIcon((n?{type:g.onIcon||e.createElement(l,r)}:{type:g.offIcon||e.createElement(i,o)}).type,E({},n?r:o),{props:g}),c=y({className:x("item",{active:n,focusedOptionIndex:b,isFocusVisibleItem:h,value:t}),"data-p-focused":t===b,tabIndex:k,onClick:function(e){return C(e,t)},onKeyDown:function(e){return F(e,t)},onFocus:function(e){return T(0,t)},onBlur:function(e){I(-1)}},A(g.value,"item"));return e.createElement("div",f({},c,{key:t}),a)}));return e.createElement(e.Fragment,null,e.createElement("div",K,M,V),J&&e.createElement(c,f({target:j,content:g.tooltip,pt:D("tooltip")},g.tooltipOptions)))})));S.displayName="Rating";export{S as Rating};