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) • 7.34 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/button"),n=require("primereact/hooks"),r=require("primereact/ripple"),i=require("primereact/utils");function a(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 l=a(e);function o(){return o=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},o.apply(this,arguments)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){if(Array.isArray(e))return e}function u(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],l=!0,o=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);l=!0);}catch(e){o=!0,i=e}finally{try{l||null==n.return||n.return()}finally{if(o)throw i}}return a}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function d(){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 m(e,t){return s(e)||u(e,t)||f(e,t)||d()}function b(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 h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=l.memo(l.forwardRef((function(e,a){var s,u=m(l.useState(!1),2),p=u[0],f=u[1],d=l.useRef(!1),b=l.useRef(null),v=l.useRef(null),g=e.onVisibleChange?e.visible:p,O=m(n.useEventListener({type:"click",listener:function(e){!d.current&&C(e)&&S(),d.current=!1},when:p}),2),j=O[0],w=O[1],N=function(){e.onVisibleChange?e.onVisibleChange(!0):f(!0),e.onShow&&e.onShow()},S=function(){e.onVisibleChange?e.onVisibleChange(!1):f(!1),e.onHide&&e.onHide()},I=function(t){g?S():N(),e.onClick&&e.onClick(t),d.current=!0},k=function(e,t){t.command&&t.command({originalEvent:e,item:t}),S(),d.current=!0,e.preventDefault()},C=function(e){return b.current&&!(b.current.isSameNode(e.target)||b.current.contains(e.target))},x=function(t){return(g?t:e.model.length-t-1)*e.transitionDelay},P=function(t){var n=e.type;if("linear"!==n){var r=e.model.length,i=e.radius||20*r;if("circle"===n){var a=2*Math.PI/r;return{left:"calc(".concat(i*Math.cos(a*t),"px + var(--item-diff-x, 0px))"),top:"calc(".concat(i*Math.sin(a*t),"px + var(--item-diff-y, 0px))")}}if("semi-circle"===n){var l=e.direction,o=Math.PI/(r-1),c="calc(".concat(i*Math.cos(o*t),"px + var(--item-diff-x, 0px))"),s="calc(".concat(i*Math.sin(o*t),"px + var(--item-diff-y, 0px))");if("up"===l)return{left:c,bottom:s};if("down"===l)return{left:c,top:s};if("left"===l)return{right:s,top:c};if("right"===l)return{left:s,top:c}}else if("quarter-circle"===n){var u=e.direction,p=Math.PI/(2*(r-1)),f="calc(".concat(i*Math.cos(p*t),"px + var(--item-diff-x, 0px))"),d="calc(".concat(i*Math.sin(p*t),"px + var(--item-diff-y, 0px))");if("up-left"===u)return{right:f,bottom:d};if("up-right"===u)return{left:f,bottom:d};if("down-left"===u)return{right:d,top:f};if("down-right"===u)return{left:d,top:f}}}return{}},E=function(e){var t=x(e),n=P(e);return h({transitionDelay:"".concat(t,"ms")},n)};n.useMountEffect((function(){if("linear"!==e.type){var t=i.DomHandler.findSingle(b.current,".p-speeddial-button"),n=i.DomHandler.findSingle(v.current,".p-speeddial-item");if(t&&n){var r=Math.abs(t.offsetWidth-n.offsetWidth),a=Math.abs(t.offsetHeight-n.offsetHeight);v.current.style.setProperty("--item-diff-x","".concat(r/2,"px")),v.current.style.setProperty("--item-diff-y","".concat(a/2,"px"))}}})),n.useUpdateEffect((function(){return p&&e.hideOnClickOutside&&j(),function(){e.hideOnClickOutside&&w()}}),[p]),l.useImperativeHandle(a,(function(){return{props:e,show:N,hide:S,getElement:function(){return b.current}}}));var D,M=function(t,n){if(!1===t.visible)return null;var a=E(n),o=t.icon,c=t.label,s=t.template,u=t.url,p=t.target,f=i.classNames("p-speeddial-action",{"p-disabled":t.disabled}),d=i.classNames("p-speeddial-action-icon",o),m=i.IconUtils.getJSXIcon(o,{className:"p-speeddial-action-icon"},{props:e}),b=l.createElement("a",{href:u||"#",role:"menuitem",className:f,target:p,"data-pr-tooltip":c,onClick:function(e){return k(e,t)}},m,l.createElement(r.Ripple,null));s&&(b=i.ObjectUtils.getJSXElement(s,t,{onClick:function(e){return k(e,t)},className:f,iconClassName:d,element:b,props:e,visible:g}));return l.createElement("li",{key:n,className:"p-speeddial-item",style:a,role:"none"},b)},A=i.ObjectUtils.findDiffKeys(e,y.defaultProps),H=i.classNames("p-speeddial p-component p-speeddial-".concat(e.type),(c(s={},"p-speeddial-direction-".concat(e.direction),"circle"!==e.type),c(s,"p-speeddial-opened",g),c(s,"p-disabled",e.disabled),s),e.className),U=function(){var n,r=!g&&!!e.showIcon||!e.hideIcon,a=g&&!!e.hideIcon,o=i.classNames("p-speeddial-button p-button-rounded",{"p-speeddial-rotate":e.rotateAnimation&&!e.hideIcon},e.buttonClassName),s=i.classNames((c(n={},"".concat(e.showIcon),!g&&!!e.showIcon||!e.hideIcon),c(n,"".concat(e.hideIcon),g&&!!e.hideIcon),n)),u=i.IconUtils.getJSXIcon(r?e.showIcon:a?e.hideIcon:null,void 0,{props:e}),p=l.createElement(t.Button,{type:"button",style:e.buttonStyle,className:o,icon:u,onClick:I,disabled:e.disabled,"aria-label":e["aria-label"]});return e.buttonTemplate?i.ObjectUtils.getJSXElement(e.buttonTemplate,{onClick:I,className:o,iconClassName:s,element:p,props:e,visible:g}):p}(),q=(D=e.model?e.model.map(M):null,l.createElement("ul",{ref:v,className:"p-speeddial-list",role:"menu"},D)),V=function(){if(e.mask){var t=i.classNames("p-speeddial-mask",{"p-speeddial-mask-visible":g},e.maskClassName);return l.createElement("div",{className:t,style:e.maskStyle})}return null}();return l.createElement(l.Fragment,null,l.createElement("div",o({ref:b,id:e.id,className:H,style:e.style},A),U,q),V)})));y.displayName="SpeedDial",y.defaultProps={__TYPE:"SpeedDial",id:null,model:null,visible:!1,style:null,className:null,direction:"up",transitionDelay:30,type:"linear",radius:0,mask:!1,disabled:!1,hideOnClickOutside:!0,buttonStyle:null,buttonClassName:null,buttonTemplate:null,"aria-label":null,maskStyle:null,maskClassName:null,showIcon:"pi pi-plus",hideIcon:null,rotateAnimation:!0,onVisibleChange:null,onClick:null,onShow:null,onHide:null},exports.SpeedDial=y;