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) • 9.7 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/hooks"),r=require("primereact/overlayservice"),o=require("primereact/tooltip"),l=require("primereact/utils"),a=require("primereact/csstransition"),i=require("primereact/portal");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var s=c(e),f=u(n);function p(){return p=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},p.apply(this,arguments)}function d(e){if(Array.isArray(e))return e}function m(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,l,a,i=[],u=!0,c=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}}function h(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function g(e,n){if(e){if("string"==typeof e)return h(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?h(e,n):void 0}}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e,n){return d(e)||m(e,n)||g(e,n)||b()}var y={defaultProps:{__TYPE:"ColorPicker",appendTo:null,className:null,defaultColor:"ff0000",disabled:!1,format:"hex",id:null,inline:!1,inputId:null,inputRef:null,onChange:null,onHide:null,onShow:null,panelClassName:null,panelStyle:null,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,transitionOptions:null,value:null,children:void 0},getProps:function(e){return l.ObjectUtils.getMergedProps(e,y.defaultProps)},getOtherProps:function(e){return l.ObjectUtils.getDiffProps(e,y.defaultProps)}},E=s.forwardRef((function(e,n){var t,r=(t=l.classNames("p-colorpicker-panel",e.panelClassName,{"p-colorpicker-overlay-panel":!e.inline,"p-disabled":e.disabled,"p-input-filled":"filled"===f.default.inputStyle,"p-ripple-disabled":!1===f.default.ripple}),s.createElement(a.CSSTransition,{nodeRef:n,classNames:"p-connected-overlay",in:e.in,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:e.onEnter,onEntered:e.onEntered,onExit:e.onExit,onExited:e.onExited},s.createElement("div",{ref:n,className:t,style:e.panelStyle,onClick:e.onClick},e.children)));return e.inline?r:s.createElement(i.Portal,{element:r,appendTo:e.appendTo})}));E.displayName="ColorPickerPanel";var O=s.memo(s.forwardRef((function(e,n){var a=y.getProps(e),i=v(s.useState(!1),2),u=i[0],c=i[1],d=s.useRef(null),m=s.useRef(null),h=s.useRef(a.inputRef),g=s.useRef(null),b=s.useRef(null),O=s.useRef(null),x=s.useRef(null),M=s.useRef(!1),k=s.useRef(null),C=s.useRef(!1),w=v(t.useOverlayListener({target:d,overlay:m,listener:function(e,n){n.valid&&ee()},when:u}),2),T=w[0],N=w[1],P=v(t.useEventListener({type:"mousemove",listener:function(e){C.current&&B(e),M.current&&q(e)}}),2),S=P[0],j=P[1],R=v(t.useEventListener({type:"mouseup",listener:function(){C.current=M.current=!1,l.DomHandler.removeClass(d.current,"p-colorpicker-dragging"),j(),I()}}),2),D=R[0],I=R[1],U=function(e){a.disabled||(Z(),H(e))},H=function(e){a.disabled||(M.current=!0,q(e),l.DomHandler.addClass(d.current,"p-colorpicker-dragging"))},q=function(e){var n=x.current.getBoundingClientRect().top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0);k.current=oe({h:Math.floor(360*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-n)))/150),s:100,b:100}),G(),Q(),X()},Y=function(e){a.disabled||(Z(),A(e))},A=function(e){a.disabled||(C.current=!0,B(e),l.DomHandler.addClass(d.current,"p-colorpicker-dragging"),e.preventDefault())},_=function(e){C.current&&(B(e),e.preventDefault()),M.current&&(q(e),e.preventDefault())},L=function(){C.current=!1,M.current=!1,l.DomHandler.removeClass(d.current,"p-colorpicker-dragging"),z()},Z=function(){S(),D()},z=function(){j(),I()},B=function(e){var n=g.current.getBoundingClientRect(),t=n.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),r=n.left+document.body.scrollLeft,o=Math.floor(100*Math.max(0,Math.min(150,(e.pageX||e.changedTouches[0].pageX)-r))/150),l=Math.floor(100*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-t)))/150);k.current=oe({h:k.current.h,s:o,b:l}),J(),V(),X()},X=function(){switch(a.format){case"hex":$(se(k.current));break;case"rgb":$(ue(k.current));break;case"hsb":$(k.current)}},F=function(e){var n;if(e)switch(a.format){case"hex":n=ae(e);break;case"rgb":n=ie(e);break;case"hsb":n=e}else n=ae(a.defaultColor);return n},K=function(e){k.current=F(e)},$=function(e){a.onChange&&a.onChange({value:e,stopPropagation:function(){},preventDefault:function(){},target:{name:a.name,id:a.id,value:e}})},G=function(){if(g.current){var e=oe({h:k.current.h,s:100,b:100});g.current.style.backgroundColor="#"+se(e)}},J=function(){b.current&&(b.current.style.left=Math.floor(150*k.current.s/100)+"px",b.current.style.top=Math.floor(150*(100-k.current.b)/100)+"px")},Q=function(){O.current&&(O.current.style.top=Math.floor(150-150*k.current.h/360)+"px")},V=function(){h.current&&(h.current.style.backgroundColor="#"+se(k.current))},W=function(){c(!0)},ee=function(){c(!1)},ne=function(){te()},te=function(){u?ee():W()},re=function(e){switch(e.which){case 32:te(),e.preventDefault();break;case 27:case 9:ee()}},oe=function(e){return{h:Math.min(360,Math.max(0,e.h)),s:Math.min(100,Math.max(0,e.s)),b:Math.min(100,Math.max(0,e.b))}},le=function(e){var n=parseInt(e.indexOf("#")>-1?e.substring(1):e,16);return{r:n>>16,g:(65280&n)>>8,b:255&n}},ae=function(e){return ie(le(e))},ie=function(e){var n={h:0,s:0,b:0},t=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),o=r-t;return n.b=r,n.s=0!==r?255*o/r:0,n.h=0!==n.s?e.r===r?(e.g-e.b)/o:e.g===r?2+(e.b-e.r)/o:4+(e.r-e.g)/o:-1,n.h*=60,n.h<0&&(n.h+=360),n.s*=100/255,n.b*=100/255,n},ue=function(e){var n={r:null,g:null,b:null},t=Math.round(e.h),r=Math.round(255*e.s/100),o=Math.round(255*e.b/100);if(0===r)n={r:o,g:o,b:o};else{var l=o,a=(255-r)*o/255,i=t%60*(l-a)/60;360===t&&(t=0),t<60?(n.r=l,n.b=a,n.g=a+i):t<120?(n.g=l,n.b=a,n.r=l-i):t<180?(n.g=l,n.r=a,n.b=a+i):t<240?(n.b=l,n.r=a,n.g=l-i):t<300?(n.b=l,n.g=a,n.r=a+i):t<360?(n.r=l,n.g=a,n.b=l-i):(n.r=0,n.g=0,n.b=0)}return{r:Math.round(n.r),g:Math.round(n.g),b:Math.round(n.b)}},ce=function(e){var n=[e.r.toString(16),e.g.toString(16),e.b.toString(16)];for(var t in n)1===n[t].length&&(n[t]="0"+n[t]);return n.join("")},se=function(e){return ce(ue(e))},fe=function(){Q(),J(),V(),G()},pe=function(){h.current&&l.DomHandler.alignOverlay(m.current,h.current.parentElement,a.appendTo||f.default.appendTo)};s.useImperativeHandle(n,(function(){return{props:a,show:W,hide:ee,focus:function(){return l.DomHandler.focus(h.current)},getElement:function(){return d.current},getOverlay:function(){return m.current},getInput:function(){return h.current}}})),s.useEffect((function(){l.ObjectUtils.combinedRefs(h,a.inputRef)}),[h,a.inputRef]),t.useMountEffect((function(){K(a.value),fe()})),t.useUpdateEffect((function(){C.current||M.current||K(a.value)}),[a.value]),t.useUpdateEffect((function(){fe()})),t.useUnmountEffect((function(){l.ZIndexUtils.clear(m.current)}));var de=l.ObjectUtils.isNotEmpty(a.tooltip),me=y.getOtherProps(a),he=l.classNames("p-colorpicker p-component",{"p-colorpicker-overlay":!a.inline},a.className),ge=s.createElement("div",{className:"p-colorpicker-content"},s.createElement("div",{ref:g,className:"p-colorpicker-color-selector",onMouseDown:Y,onTouchStart:A,onTouchMove:_,onTouchEnd:L},s.createElement("div",{className:"p-colorpicker-color"},s.createElement("div",{ref:b,className:"p-colorpicker-color-handle"}))),s.createElement("div",{ref:x,className:"p-colorpicker-hue",onMouseDown:U,onTouchStart:H,onTouchMove:_,onTouchEnd:L},s.createElement("div",{ref:O,className:"p-colorpicker-hue-handle"}))),be=function(){if(!a.inline){var e=l.classNames("p-colorpicker-preview p-inputtext",{"p-disabled":a.disabled}),n=y.getOtherProps(a);return s.createElement("input",p({ref:h,type:"text",className:e,readOnly:!0,id:a.inputId,tabIndex:a.tabIndex,disabled:a.disabled,onClick:ne,onKeyDown:re},n))}return null}();return s.createElement(s.Fragment,null,s.createElement("div",p({ref:d,id:a.id,style:a.style,className:he},me),be,s.createElement(E,{ref:m,appendTo:a.appendTo,inline:a.inline,disabled:a.disabled,panelStyle:a.panelStyle,panelClassName:a.panelClassName,onClick:function(e){a.inline||r.OverlayService.emit("overlay-click",{originalEvent:e,target:d.current})},in:a.inline||u,onEnter:function(){l.ZIndexUtils.set("overlay",m.current,f.default.autoZIndex,f.default.zIndex.overlay),pe()},onEntered:function(){T(),a.onShow&&a.onShow()},onExit:function(){N()},onExited:function(){l.ZIndexUtils.clear(m.current),a.onHide&&a.onHide()},transitionOptions:a.transitionOptions},ge)),de&&s.createElement(o.Tooltip,p({target:d,content:a.tooltip},a.tooltipOptions)))})));O.displayName="ColorPicker",exports.ColorPicker=O;