UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 80+ 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.2 kB
"use strict";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"),i=require("primereact/utils"),a=require("primereact/csstransition"),u=require("primereact/portal");function l(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=l(n);function d(){return d=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},d.apply(this,arguments)}function p(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,i=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(i.push(r.value),!n||i.length!==n);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==t.return||t.return()}finally{if(u)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 b(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 g(){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 p(e)||m(e,n)||b(e,n)||g()}var y=s.forwardRef((function(e,n){var t,r=(t=i.classNames("p-colorpicker-panel",{"p-colorpicker-overlay-panel":!e.inline,"p-disabled":e.disabled}),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,onClick:e.onClick},e.children)));return e.inline?r:s.createElement(u.Portal,{element:r,appendTo:e.appendTo})}));y.displayName="ColorPickerPanel";var E=s.memo(s.forwardRef((function(e,n){var a=v(s.useState(!1),2),u=a[0],l=a[1],c=s.useRef(null),p=s.useRef(null),m=s.useRef(e.inputRef),h=s.useRef(null),b=s.useRef(null),g=s.useRef(null),x=s.useRef(null),M=s.useRef(!1),k=s.useRef(null),O=s.useRef(!1),w=v(t.useOverlayListener({target:c,overlay:p,listener:function(e,n){n.valid&&W()},when:u}),2),T=w[0],C=w[1],R=v(t.useEventListener({type:"mousemove",listener:function(e){O.current&&K(e),M.current&&H(e)}}),2),j=R[0],N=R[1],S=v(t.useEventListener({type:"mouseup",listener:function(){O.current=M.current=!1,i.DomHandler.removeClass(c.current,"p-colorpicker-dragging"),N(),I()}}),2),D=S[0],I=S[1],P=function(n){e.disabled||(L(),U(n))},U=function(n){e.disabled||(M.current=!0,H(n),i.DomHandler.addClass(c.current,"p-colorpicker-dragging"))},H=function(e){var n=x.current.getBoundingClientRect().top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0);k.current=re({h:Math.floor(360*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-n)))/150),s:100,b:100}),$(),J(),z()},q=function(n){e.disabled||(L(),Y(n))},Y=function(n){e.disabled||(O.current=!0,K(n),i.DomHandler.addClass(c.current,"p-colorpicker-dragging"),n.preventDefault())},A=function(e){O.current&&(K(e),e.preventDefault()),M.current&&(H(e),e.preventDefault())},_=function(){O.current=!1,M.current=!1,i.DomHandler.removeClass(c.current,"p-colorpicker-dragging"),Z()},L=function(){j(),D()},Z=function(){N(),I()},K=function(e){var n=h.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),i=Math.floor(100*(150-Math.max(0,Math.min(150,(e.pageY||e.changedTouches[0].pageY)-t)))/150);k.current=re({h:k.current.h,s:o,b:i}),G(),Q(),z()},z=function(){switch(e.format){case"hex":F(ce(k.current));break;case"rgb":F(ue(k.current));break;case"hsb":F(k.current)}},B=function(n){var t;if(n)switch(e.format){case"hex":t=ie(n);break;case"rgb":t=ae(n);break;case"hsb":t=n}else t=ie(e.defaultColor);return t},X=function(e){k.current=B(e)},F=function(n){e.onChange&&e.onChange({value:n,stopPropagation:function(){},preventDefault:function(){},target:{name:e.name,id:e.id,value:n}})},$=function(){if(h.current){var e=re({h:k.current.h,s:100,b:100});h.current.style.backgroundColor="#"+ce(e)}},G=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")},J=function(){g.current&&(g.current.style.top=Math.floor(150-150*k.current.h/360)+"px")},Q=function(){m.current&&(m.current.style.backgroundColor="#"+ce(k.current))},V=function(){l(!0)},W=function(){l(!1)},ee=function(){ne()},ne=function(){u?W():V()},te=function(e){switch(e.which){case 32:ne(),e.preventDefault();break;case 27:case 9:W()}},re=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))}},oe=function(e){var n=parseInt(e.indexOf("#")>-1?e.substring(1):e,16);return{r:n>>16,g:(65280&n)>>8,b:255&n}},ie=function(e){return ae(oe(e))},ae=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 i=o,a=(255-r)*o/255,u=t%60*(i-a)/60;360===t&&(t=0),t<60?(n.r=i,n.b=a,n.g=a+u):t<120?(n.g=i,n.b=a,n.r=i-u):t<180?(n.g=i,n.r=a,n.b=a+u):t<240?(n.b=i,n.r=a,n.g=i-u):t<300?(n.b=i,n.g=a,n.r=a+u):t<360?(n.r=i,n.g=a,n.b=i-u):(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)}},le=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("")},ce=function(e){return le(ue(e))},se=function(){J(),G(),Q(),$()},fe=function(){m.current&&i.DomHandler.alignOverlay(p.current,m.current.parentElement,e.appendTo||f.default.appendTo)};s.useImperativeHandle(n,(function(){return{props:e,show:V,hide:W,getElement:function(){return c.current},getOverlay:function(){return p.current},getInput:function(){return m.current}}})),s.useEffect((function(){i.ObjectUtils.combinedRefs(m,e.inputRef)}),[m,e.inputRef]),t.useMountEffect((function(){X(e.value),se()})),t.useUpdateEffect((function(){O.current||M.current||X(e.value)}),[e.value]),t.useUpdateEffect((function(){se()})),t.useUnmountEffect((function(){i.ZIndexUtils.clear(p.current)}));var de=i.ObjectUtils.isNotEmpty(e.tooltip),pe=i.ObjectUtils.findDiffKeys(e,E.defaultProps),me=i.classNames("p-colorpicker p-component",{"p-colorpicker-overlay":!e.inline},e.className),he=s.createElement("div",{className:"p-colorpicker-content"},s.createElement("div",{ref:h,className:"p-colorpicker-color-selector",onMouseDown:q,onTouchStart:Y,onTouchMove:A,onTouchEnd:_},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:P,onTouchStart:U,onTouchMove:A,onTouchEnd:_},s.createElement("div",{ref:g,className:"p-colorpicker-hue-handle"}))),be=function(){if(!e.inline){var n=i.classNames("p-colorpicker-preview p-inputtext",{"p-disabled":e.disabled}),t=i.ObjectUtils.findDiffKeys(e,E.defaultProps);return s.createElement("input",d({ref:m,type:"text",className:n,readOnly:!0,id:e.inputId,tabIndex:e.tabIndex,disabled:e.disabled,onClick:ee,onKeyDown:te},t))}return null}();return s.createElement(s.Fragment,null,s.createElement("div",d({ref:c,id:e.id,style:e.style,className:me},pe),be,s.createElement(y,{ref:p,appendTo:e.appendTo,inline:e.inline,disabled:e.disabled,onClick:function(n){e.inline||r.OverlayService.emit("overlay-click",{originalEvent:n,target:c.current})},in:e.inline||u,onEnter:function(){i.ZIndexUtils.set("overlay",p.current,f.default.autoZIndex,f.default.zIndex.overlay),fe()},onEntered:function(){T(),e.onShow&&e.onShow()},onExit:function(){C()},onExited:function(){i.ZIndexUtils.clear(p.current),e.onHide&&e.onHide()},transitionOptions:e.transitionOptions},he)),de&&s.createElement(o.Tooltip,d({target:c,content:e.tooltip},e.tooltipOptions)))})));E.displayName="ColorPicker",E.defaultProps={__TYPE:"ColorPicker",id:null,inputRef:null,value:null,style:null,className:null,defaultColor:"ff0000",inline:!1,format:"hex",appendTo:null,disabled:!1,tabIndex:null,inputId:null,tooltip:null,tooltipOptions:null,transitionOptions:null,onChange:null,onShow:null,onHide:null},exports.ColorPicker=E;