primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 4.21 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.rating=function(e,t,n,r){"use strict";function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=o(t);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function c(e,t){if("object"!==l(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function u(e){var t=c(e,"string");return"symbol"===l(t)?t:String(t)}function p(e,t,n){return(t=u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s={defaultProps:{__TYPE:"Rating",id:null,value:null,disabled:!1,readOnly:!1,stars:5,cancel:!0,style:null,className:null,tooltip:null,tooltipOptions:null,onChange:null,onIcon:"pi pi-star-fill",offIcon:"pi pi-star",cancelIcon:"pi pi-ban",cancelIconProps:null,onIconProps:null,offIconProps:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,s.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,s.defaultProps)}};function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=i.memo(i.forwardRef((function(e,t){var o=s.getProps(e),l=i.useRef(null),c=!o.disabled&&!o.readOnly,u=c?0:null,p=function(e,t){c&&o.onChange&&o.onChange({originalEvent:e,value:t,stopPropagation:function(){},preventDefault:function(){},target:{name:o.name,id:o.id,value:t}}),e.preventDefault()},f=function(e){c&&o.onChange&&o.onChange({originalEvent:e,value:null,stopPropagation:function(){},preventDefault:function(){},target:{name:o.name,id:o.id,value:null}}),e.preventDefault()},g=function(e,t){"Enter"===e.key&&p(e,t)},y=function(e){"Enter"===e.key&&f(e)};i.useImperativeHandle(t,(function(){return{props:o,getElement:function(){return l.current}}}));var b=r.ObjectUtils.isNotEmpty(o.tooltip),d=s.getOtherProps(o),v=r.classNames("p-rating",{"p-disabled":o.disabled,"p-readonly":o.readOnly},o.className),O=function(){if(o.cancel){var e=r.IconUtils.getJSXIcon(o.cancelIcon,m({className:"p-rating-icon p-rating-cancel"},o.cancelIconProps),{props:o});return i.createElement("div",{className:"p-rating-item p-rating-cancel-item",onClick:f,tabIndex:u,onKeyDown:y},e)}return null}(),P=Array.from({length:o.stars},(function(e,t){return t+1})).map((function(e){var t=e<=o.value,n=r.classNames("p-rating-item",{"p-rating-item-active":t}),a=t?{type:o.onIcon,props:o.onIconProps}:{type:o.offIcon,props:o.offIconProps},l=r.IconUtils.getJSXIcon(a.type,m({className:"p-rating-icon"},a.props),{props:o});return i.createElement("div",{key:e,className:n,tabIndex:u,onClick:function(t){return p(t,e)},onKeyDown:function(t){return g(t,e)}},l)}));return i.createElement(i.Fragment,null,i.createElement("div",a({ref:l,id:o.id,className:v,style:o.style},d),O,P),b&&i.createElement(n.Tooltip,a({target:l,content:o.tooltip},o.tooltipOptions)))})));return g.displayName="Rating",e.Rating=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.tooltip,primereact.utils);