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.18 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/tooltip"),n=require("primereact/utils");function r(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 o=r(e);function i(){return i=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},i.apply(this,arguments)}function a(e){return a="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},a(e)}function l(e,t){if("object"!==a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=l(e,"string");return"symbol"===a(t)?t:String(t)}function u(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p={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 n.ObjectUtils.getMergedProps(e,p.defaultProps)},getOtherProps:function(e){return n.ObjectUtils.getDiffProps(e,p.defaultProps)}};function s(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 f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=o.memo(o.forwardRef((function(e,r){var a=p.getProps(e),l=o.useRef(null),c=!a.disabled&&!a.readOnly,u=c?0:null,s=function(e,t){c&&a.onChange&&a.onChange({originalEvent:e,value:t,stopPropagation:function(){},preventDefault:function(){},target:{name:a.name,id:a.id,value:t}}),e.preventDefault()},g=function(e){c&&a.onChange&&a.onChange({originalEvent:e,value:null,stopPropagation:function(){},preventDefault:function(){},target:{name:a.name,id:a.id,value:null}}),e.preventDefault()},y=function(e,t){"Enter"===e.key&&s(e,t)},m=function(e){"Enter"===e.key&&g(e)};o.useImperativeHandle(r,(function(){return{props:a,getElement:function(){return l.current}}}));var b=n.ObjectUtils.isNotEmpty(a.tooltip),d=p.getOtherProps(a),v=n.classNames("p-rating",{"p-disabled":a.disabled,"p-readonly":a.readOnly},a.className),O=function(){if(a.cancel){var e=n.IconUtils.getJSXIcon(a.cancelIcon,f({className:"p-rating-icon p-rating-cancel"},a.cancelIconProps),{props:a});return o.createElement("div",{className:"p-rating-item p-rating-cancel-item",onClick:g,tabIndex:u,onKeyDown:m},e)}return null}(),P=Array.from({length:a.stars},(function(e,t){return t+1})).map((function(e){var t=e<=a.value,r=n.classNames("p-rating-item",{"p-rating-item-active":t}),i=t?{type:a.onIcon,props:a.onIconProps}:{type:a.offIcon,props:a.offIconProps},l=n.IconUtils.getJSXIcon(i.type,f({className:"p-rating-icon"},i.props),{props:a});return o.createElement("div",{key:e,className:r,tabIndex:u,onClick:function(t){return s(t,e)},onKeyDown:function(t){return y(t,e)}},l)}));return o.createElement(o.Fragment,null,o.createElement("div",i({ref:l,id:a.id,className:v,style:a.style},d),O,P),b&&o.createElement(t.Tooltip,i({target:l,content:a.tooltip},a.tooltipOptions)))})));g.displayName="Rating",exports.Rating=g;
;