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) • 26 kB
JavaScript
import*as e from"react";import t,{PrimeReactContext as n}from"primereact/api";import{Button as r}from"primereact/button";import{ComponentBase as o,useHandleStyle as i}from"primereact/componentbase";import{useMergeProps as u,useUpdateEffect as a,useMatchMedia as l,useEventListener as c,useResizeListener as s,useMountEffect as p,useUnmountEffect as m,useDisplayOrder as d,useGlobalOnEscapeKey as f,ESC_KEY_HANDLING_PRIORITIES as b}from"primereact/hooks";import{ChevronDownIcon as y}from"primereact/icons/chevrondown";import{OverlayService as v}from"primereact/overlayservice";import{CSSTransition as g}from"primereact/csstransition";import{Portal as h}from"primereact/portal";import{classNames as x,DomHandler as I,ObjectUtils as E,IconUtils as O,UniqueComponentId as w,ZIndexUtils as k}from"primereact/utils";import{AngleRightIcon as S}from"primereact/icons/angleright";import{Ripple as P}from"primereact/ripple";import{Tooltip as N}from"primereact/tooltip";function j(){return j=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},j.apply(null,arguments)}function D(e){return D="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},D(e)}function T(e,t){if("object"!=D(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function C(e){var t=T(e,"string");return"symbol"==D(t)?t:t+""}function K(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}function M(e){if(Array.isArray(e))return e}function _(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function B(e,t){if(e){if("string"==typeof e)return A(e,t);var n={}.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)?A(e,t):void 0}}function L(){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 H(e,t){return M(e)||_(e,t)||B(e,t)||L()}var R=o.extend({defaultProps:{__TYPE:"TieredMenu",__parentMetadata:null,id:null,model:null,popup:!1,style:null,className:null,autoZIndex:!0,baseZIndex:0,breakpoint:void 0,scrollHeight:"400px",appendTo:null,transitionOptions:null,onShow:null,onFocus:null,onBlur:null,onHide:null,submenuIcon:null,children:void 0},css:{classes:{root:function(e){var n=e.context;return x("p-tieredmenu p-component",{"p-tieredmenu-overlay":e.props.popup,"p-input-filled":n&&"filled"===n.inputStyle||"filled"===t.inputStyle,"p-ripple-disabled":n&&!1===n.ripple||!1===t.ripple})},separator:"p-menuitem-separator",icon:function(e){return x("p-menuitem-icon",e._icon)},content:"p-menuitem-content",label:"p-menuitem-text",submenuIcon:"p-submenu-icon",action:"p-menuitem-link",menuitem:function(e){return x("p-menuitem",{"p-menuitem-active p-highlight":e.active,"p-focus":e.focused,"p-disabled":e.disabled},e.itemClassName)},menu:"p-tieredmenu-root-list",submenu:"p-submenu-list",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-tieredmenu-overlay {\n position: absolute;\n }\n\n .p-tieredmenu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-tieredmenu .p-submenu-list {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n display: none;\n }\n\n .p-tieredmenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n\n .p-tieredmenu .p-menuitem-text {\n line-height: 1;\n }\n\n .p-tieredmenu .p-menuitem {\n position: relative;\n }\n\n .p-tieredmenu .p-menuitem-link .p-submenu-icon {\n margin-left: auto;\n }\n\n .p-tieredmenu .p-menuitem-active > .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n\n .p-tieredmenu .p-menuitem-active > .p-submenu-list-flipped {\n left: -100%;\n }\n}\n",inlineStyles:{submenu:function(e){var t=e.subProps;return{display:!t.root&&t.parentActive?"block":"none"}}}}});function z(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 Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?z(Object(n),!0).forEach((function(t){K(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var F=e.memo(e.forwardRef((function(t,n){var r=e.useRef(null),o=u(),i=t.ptm,l=t.cx,c=t.sx,s=function(e,n){return i(n,{hostName:t.hostName,context:{active:b(e)}})},p=function(){if(r.current){var e=r.current.parentElement,t=I.getOffset(e),n=I.getViewport(),o=r.current.offsetParent?r.current.offsetWidth:I.getHiddenElementOuterWidth(r.current),i=I.getOuterWidth(e.children[0]),u=parseInt(t.top,10)+r.current.offsetHeight-I.getWindowScrollTop();r.current.style.top=u>n.height?n.height-u+"px":"0px",parseInt(t.left,10)+i+o>n.width-I.calculateScrollbarWidth()&&I.addClass(r.current,"p-submenu-list-flipped")}},m=function(e,n){var r=n.item;v(n)?e.preventDefault():(r.command&&r.command({originalEvent:e,item:r}),t.onItemClick&&t.onItemClick({originalEvent:e,processedItem:n}),r.url||(e.preventDefault(),e.stopPropagation()))},d=function(e){return"".concat(t.menuId,"_").concat(e.key)},f=function(e,t,n){return e&&e.item?E.getItemValue(e.item[t],n):void 0},b=function(e){return t.activeItemPath.some((function(t){return t.key===e.key}))},y=function(e){return!1!==f(e,"visible")},v=function(e){return f(e,"disabled")},g=function(e){return t.focusedItemId===d(e)},h=function(e){return E.isNotEmpty(e.items)},w=function(e,n){t.onItemMouseEnter&&t.onItemMouseEnter({originalEvent:e,processedItem:n})},k=function(e){return e-t.model.slice(0,e).filter((function(e){return y(e)&&f(e,"separator")})).length+1};a((function(){t.root||!t.parentActive||t.isMobileMode||p()}),[t.parentActive]),e.useImperativeHandle(n,(function(){return{getElement:function(){return r.current}}}));var N=function(n){var r=o({key:"separator_"+n,className:l("separator"),role:"separator"},i("separator",{hostName:t.hostName}));return e.createElement("li",r)},j=function(n,r){return h(n)?e.createElement(F,{id:t.id+"_"+r,menuProps:t.menuProps,model:n.items,menuId:t.menuId,ariaLabelledby:d(n),focusedItemId:t.focusedItemId,activeItemPath:t.activeItemPath,level:t.level+1,onItemClick:t.onItemClick,popup:t.popup,onItemMouseEnter:t.onItemMouseEnter,parentActive:b(n),isMobileMode:t.isMobileMode,submenuIcon:t.submenuIcon,ptm:t.ptm,cx:l,sx:c}):null},D=function(n,r){if(!1===y(n))return null;var i=n.item,u=f(n,"style"),a=f(n,"className"),c=f(n,"icon"),p=f(n,"target"),I=f(n,"url"),N=d(n),D=g(n),T=b(n),C=v(n),K=h(n),M=x("p-menuitem-link"),_=x("p-menuitem-icon",c),A=o({className:x(i.icon,"p-menuitem-icon","icon")},s(n,"icon")),B=O.getJSXIcon(c,Z({},A),{props:t.menuProps}),L=o({className:l("label")},s(n,"label")),H=i.label&&e.createElement("span",L,i.label),R=o({className:l("submenuIcon")},s(n,"submenuIcon")),z=K&&O.getJSXIcon(t.submenuIcon||e.createElement(S,R),Z({},R),{props:t.menuProps}),F=j(n,r),W=o({href:I||"#",tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:l("action"),target:p},s(n,"action")),U=e.createElement("a",W,B,H,z,e.createElement(P,null));i.template&&(U=E.getJSXElement(i.template,i,{className:M,labelClassName:"p-menuitem-text",iconClassName:_,submenuIconClassName:"p-submenu-icon",element:U,props:t,active:T,disabled:C}));var V=o({onClick:function(e){return m(e,n)},onMouseEnter:function(e){return w(e,n)},className:l("content")},s(n,"content")),J=o({key:N,id:N,"aria-label":i.label,"aria-disabled":C,"aria-expanded":K?T:void 0,"aria-haspopup":K&&!I?"menu":void 0,"aria-setsize":t.model.filter((function(e){return y(e)&&!f(e,"separator")})).length,"aria-posinset":k(r),"data-p-highlight":T,"data-p-disabled":C,"data-p-visited":D,className:l("menuitem",{itemClassName:a,active:T,focused:D,disabled:C}),style:u,onMouseEnter:function(e){return w(e,i)},role:"menuitem"},s(n,"menuitem"));return e.createElement("li",J,e.createElement("div",V,U),F)},T=t.model?t.model.map((function(e,t){return!1===e.visible?null:f(e,"separator")?N(t):D(e,t)})):null,C=t.root?"menu":"submenu",K=o({ref:r,id:t.id,tabIndex:t.tabIndex,onFocus:t.onFocus,onBlur:t.onBlur,onKeyDown:t.onKeyDown,className:l(C,{subProps:t}),style:c(C,{subProps:t}),role:t.root?"menubar":"menu","aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-orientation":t.ariaOrientation,"aria-activedescendant":t.focusedItemId},i(C,{hostName:t.hostName}));return e.createElement("ul",K,T)})));function W(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 U(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){K(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}F.displayName="TieredMenuSub";var V=e.memo(e.forwardRef((function(r,o){var d=u(),f=e.useContext(n),b=R.getProps(r,f),y=H(e.useState(b.id),2),O=y[0],S=y[1],P=H(e.useState(!b.popup),2),N=P[0],D=P[1],T=H(e.useState([]),2),C=T[0],K=T[1],M=H(e.useState(!1),2),_=M[0],A=M[1],B=H(e.useState(null),2),L=B[0],z=B[1],Z=H(e.useState({index:-1,level:0,parentKey:""}),2),W=Z[0],V=Z[1],J=H(e.useState(!1),2),X=J[0],Y=J[1],$=H(e.useState([]),2),q=$[0],G=$[1],Q=H(e.useState([]),2),ee=Q[0],te=Q[1],ne=H(e.useState(!1),2),re=ne[0],oe=ne[1],ie=H(e.useState(null),2),ue=ie[0],ae=ie[1],le=U(U({props:b},b.__parentMetadata),{},{state:{id:O,visible:N,attributeSelector:ue}}),ce=R.setMetaData(le),se=ce.ptm,pe=ce.cx,me=ce.sx;i(R.css.styles,ce.isUnstyled,{name:"tieredmenu"});var de=e.useRef(null),fe=e.useRef(null),be=e.useRef(null),ye=e.useRef(null),ve=e.useRef(null),ge=e.useRef(null),he=e.useRef(null),xe=l("screen and (max-width: ".concat(b.breakpoint,")"),!!b.breakpoint),Ie=H(c({type:"click",listener:function(e){var t=de.current&&!de.current.contains(e.target),n=!b.popup||!(be.current&&(be.current===e.target||be.current.contains(e.target)));t&&n&&De(e,!b.popup)}}),2),Ee=Ie[0],Oe=Ie[1],we=H(s({listener:function(){!xe&&De(event,!0)}}),2),ke=we[0],Se=we[1],Pe=function(e){b.popup&&v.emit("overlay-click",{originalEvent:e,target:be.current})},Ne=function(e){b.popup&&(N?De(e):je(e))},je=function(e){b.popup&&(be.current=e.currentTarget,D(!0),b.onShow&&b.onShow(e),ye.current=e.relatedTarget||null),V({index:at(),level:0,parentKey:""})},De=function(e,t){b.popup&&(D(!1),b.onHide&&b.onHide(e));var n=Je();K([]),V({index:-1,level:0,parentKey:""}),t&&I.focus(ye.current||be.current||n),Y(!1)},Te=function(e){A(!0),V(-1!==W.index?W:{index:at(),level:0,parentKey:""}),b.onFocus&&b.onFocus(e)},Ce=function(e){A(!1),V({index:-1,level:0,parentKey:""}),ge.current="",Y(!1),b.onBlur&&b.onBlur(e)},Ke=function(e){var t=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":Be(e);break;case"ArrowUp":Le(e);break;case"ArrowLeft":He(e);break;case"ArrowRight":Re(e);break;case"Home":ze(e);break;case"End":Ze(e);break;case"Space":We(e);break;case"Enter":case"NumpadEnter":Fe(e);break;case"Escape":b.popup&&I.focus(be.current),Ue(e);break;case"Tab":Ve(e);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!t&&E.isPrintableCharacter(e.key)&&ct(e.key)}},Me=function(e){var t=e.processedItem,n=e.isFocus;if(!E.isEmpty(t)){var r=t.index,o=t.key,i=t.level,u=t.parentKey,a=E.isNotEmpty(t.items),l=C.filter((function(e){return e.parentKey!==u&&e.parentKey!==o}));a&&l.push(t),V({index:r,level:i,parentKey:u}),K(l),a&&Y(!0),n&&I.focus(Je())}},_e=function(e){var t=e.originalEvent,n=e.processedItem;if(!Ye(n)&&!b.isMobileMode){var r=qe(n),o=E.isEmpty(n.parent),i=tt(n),u=Je();if(i){var a=n.index,l=n.key,c=n.level,s=n.parentKey;K(C.filter((function(e){return l!==e.key&&l.startsWith(e.key)}))),V({index:a,level:c,parentKey:s}),r||Y(!o),setTimeout((function(){I.focus(u),r&&Y(!0)}),0)}else if(r)I.focus(u),Me(e);else{var p=o?n:C.find((function(e){return""===e.parentKey})),m=p?p.index:-1;De(t,!0),V({index:m,parentKey:p?p.parentKey:""})}}},Ae=function(e){var t=e.originalEvent;Ye(e.processedItem)||b.isMobileMode?t.preventDefault():X&&!b.popup&&Me(e)},Be=function(e){var t=-1!==W.index?ot(W.index):at();st(t),e.preventDefault()},Le=function(e){if(e.altKey){if(b.popup&&I.focus(be.current),-1!==W.index){var t=ee[W.index];!qe(t)&&Me({originalEvent:e,processedItem:t})}b.popup&&De(e,!0),e.preventDefault()}else{var n=-1!==W.index?it(W.index):lt();st(n),e.preventDefault()}},He=function(e){var t=ee[W.index],n=C.find((function(e){return e.key===t.parentKey}));E.isEmpty(t.parent)||(V({index:-1,parentKey:n?n.parentKey:""}),ge.current="",setTimeout((function(){return oe(!0)}),0)),K(C.filter((function(e){return e.parentKey!==W.parentKey}))),e.preventDefault()},Re=function(e){var t=ee[W.index];qe(t)&&(Me({originalEvent:e,processedItem:t}),V({index:-1,parentKey:t.key}),ge.current="",setTimeout((function(){return oe(!0)}),0)),e.preventDefault()},ze=function(e){st(nt()),e.preventDefault()},Ze=function(e){st(rt()),e.preventDefault()},Fe=function(e){if(-1!==W.index){var t=I.findSingle(Je(),'li[id="'.concat("".concat(L),'"]')),n=t&&I.findSingle(t,'[data-pc-section="action"]');b.popup&&I.focus(be.current),n?n.click():t&&t.click()}e.preventDefault()},We=function(e){Fe(e)},Ue=function(e){De(e,!0),!b.popup&&V(U(U({},W),{},{index:at()})),e.preventDefault()},Ve=function(e){if(-1!==W.index){var t=ee[W.index];!qe(t)&&Me({originalEvent:e,processedItem:t})}De(e)},Je=function(){return fe.current.getElement()||null},Xe=function(e,t){return e?E.getItemValue(e[t]):void 0},Ye=function(e){return Xe(e,"disabled")},$e=function(e){return e?Xe(e.item,"label"):void 0},qe=function(e){return e&&E.isNotEmpty(e.items)},Ge=function(e){return Qe(e)&&$e(e).toLocaleLowerCase().startsWith(ge.current.toLocaleLowerCase())},Qe=function(e){return!!e&&!Ye(e.item)&&!Xe(e.item,"separator")},et=function(e){return Qe(e)&&tt(e)},tt=function(e){return C.some((function(t){return t.key===e.key}))},nt=function(){return ee.findIndex((function(e){return Qe(e)}))},rt=function(){return E.findLastIndex(ee,(function(e){return Qe(e)}))},ot=function(e){var t=e<ee.length-1?ee.slice(e+1).findIndex((function(e){return Qe(e)})):-1;return t>-1?t+e+1:e},it=function(e){var t=e>0?E.findLastIndex(ee.slice(0,e),(function(e){return Qe(e)})):-1;return t>-1?t:e},ut=function(){return ee.findIndex((function(e){return et(e)}))},at=function(){var e=ut();return e<0?nt():e},lt=function(){var e=ut();return e<0?rt():e},ct=function(e){ge.current=(ge.current||"")+e;var t=-1,n=!1;return-1!==(t=-1!==W.index?-1===(t=ee.slice(W.index).findIndex((function(e){return Ge(e)})))?ee.slice(0,W.index).findIndex((function(e){return Ge(e)})):t+W.index:ee.findIndex((function(e){return Ge(e)})))&&(n=!0),-1===t&&-1===W.index&&(t=at()),-1!==t&&st(t),he.current&&clearTimeout(he),he.current=setTimeout((function(){ge.current="",he.current=null}),500),n},st=function(e){W.index!==e&&(V(U(U({},W),{},{index:e})),pt())},pt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=-1!==e?"".concat(O,"_").concat(e):L,n=I.findSingle(Je(),'li[id="'.concat(t,'"]'));n&&n.scrollIntoView&&n.scrollIntoView({block:"nearest",inline:"start"})},mt=e.useCallback((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=[];return e&&e.forEach((function(e,i){var u=(""!==r?r+"_":"")+i,a={item:e,index:i,level:t,key:u,parent:n,parentKey:r};a.items=mt(e.items,t+1,a,u),o.push(a)})),o}),[]),dt=function(){if(!ve.current){ve.current=I.createInlineStyle(f&&f.nonce||t.nonce,f&&f.styleContainer);var e="".concat(ue),n="\n@media screen and (max-width: ".concat(b.breakpoint,") {\n .p-tieredmenu[").concat(e,"] > ul {\n max-height: ").concat(b.scrollHeight,";\n overflow: ").concat(b.scrollHeight?"auto":"",";\n }\n\n .p-tieredmenu[").concat(e,"] .p-submenu-list {\n position: relative;\n }\n\n .p-tieredmenu[").concat(e,"] .p-menuitem-active > .p-submenu-list {\n left: 0;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-tieredmenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-tieredmenu[").concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n }\n\n ').concat(b.popup?"":".p-tieredmenu[".concat(e,"] { width: 100%; }"),"\n}\n");ve.current.innerHTML=n}},ft=function(){ve.current=I.removeInlineStyle(ve.current)},bt=function(){var e;b.autoZIndex&&k.set("menu",de.current,f&&f.autoZIndex||t.autoZIndex,b.baseZIndex||f&&f.zIndex.menu||t.zIndex.menu),I.addStyles(de.current,{position:"absolute",top:"0",left:"0"}),e=I.getOuterWidth(be.current)>I.getOuterWidth(de.current),I.alignOverlay(de.current,be.current,b.appendTo,e),I.focus(fe.current.getElement()),pt(),ue&&b.breakpoint&&(de.current.setAttribute(ue,""),dt())},yt=function(){Ee(),ke()},vt=function(){be.current=null,Oe(),Se()},gt=function(){k.clear(de.current),ft()};p((function(){var e=w();!O&&S(e),b.breakpoint&&!ue&&ae(e)})),e.useEffect((function(){var e=mt(b.model||[]);G(e)}),[b.model,mt]),a((function(){var e=C.find((function(e){return e.key===W.parentKey}));te(e?e.items:q)}),[C,W,q]),a((function(){var e=-1!==W.index?"".concat(O).concat(E.isNotEmpty(W.parentKey)?"_"+W.parentKey:"","_").concat(W.index):null;z(e)}),[W]),a((function(){b.popup||(E.isNotEmpty(C)?(Ee(),ke()):(Oe(),Se()))}),[C]),a((function(){if(re){var e=-1!==W.index?ot(W.index):at();st(e),K(C.filter((function(e){return e.parentKey!==W.parentKey}))),oe(!1)}}),[re]),a((function(){return ue&&de.current&&(de.current.setAttribute(ue,""),dt()),function(){ft()}}),[ue,b.breakpoint]),m((function(){k.clear(de.current)})),e.useImperativeHandle(o,(function(){return{props:b,toggle:Ne,show:je,hide:De,getElement:function(){return de.current}}}));var ht,xt,It=(ht=d({ref:de,id:b.id,className:x(b.className,pe("root")),style:b.style,onClick:Pe},R.getOtherProps(b),se("root")),xt=d({classNames:pe("transition"),in:N,timeout:{enter:120,exit:100},options:b.transitionOptions,unmountOnExit:!0,onEnter:bt,onEntered:yt,onExit:vt,onExited:gt},se("transition")),e.createElement(g,j({nodeRef:de},xt),e.createElement("div",ht,e.createElement(F,{id:O+"_list",ref:fe,hostName:"TieredMenu",menuProps:b,tabIndex:0,model:q,ariaLabel:b.ariaLabel,ariaLabelledBy:b.ariaLabelledBy,ariaOrientation:"vertical",ariaActiveDescendant:_?L:void 0,menuId:O,level:0,focusedItemId:L,activeItemPath:C,onFocus:Te,onBlur:Ce,onKeyDown:Ke,onItemClick:_e,onItemMouseEnter:Ae,root:!0,popup:b.popup,onHide:De,isMobileMode:xe,submenuIcon:b.submenuIcon,ptm:se,cx:pe,sx:me}))));return b.popup?e.createElement(h,{element:It,appendTo:b.appendTo}):It})));V.displayName="TieredMenu";var J=o.extend({defaultProps:{__TYPE:"SplitButton",id:null,label:null,icon:null,autoZIndex:!0,baseZIndex:0,loading:!1,loadingIcon:null,model:null,disabled:null,style:null,className:null,buttonClassName:null,menuStyle:null,menuClassName:null,menuButtonClassName:null,buttonProps:null,menuButtonProps:null,tabIndex:null,severity:null,rounded:!1,raised:!1,outlined:!1,text:!1,size:null,appendTo:null,tooltip:null,tooltipOptions:null,buttonTemplate:null,transitionOptions:null,dropdownIcon:null,onClick:null,onShow:null,onHide:null,children:void 0},css:{classes:{icon:"p-button-icon p-c",root:function(e){var t=e.props,n=e.size;return x("p-splitbutton p-component",K(K(K(K(K(K({"p-disabled":t.disabled,"p-button-loading-label-only":t.loading&&!t.icon&&t.label},"p-button-".concat(t.severity),t.severity),"p-button-raised",t.raised),"p-button-rounded",t.rounded),"p-button-text",t.text),"p-button-outlined",t.outlined),"p-button-".concat(n),n))},button:"p-splitbutton-defaultbutton",menuButton:"p-splitbutton-menubutton",menu:function(e){return x("p-menu p-menu-overlay p-component",e.props.menuClassName)},menuList:"p-menu-list p-reset",separator:"p-menu-separator",menuIcon:"p-menuitem-icon",menuLabel:"p-menuitem-text",anchor:function(e){return x("p-menuitem-link",e._className,{"p-disabled":e.disabled})},menuItem:"p-menuitem",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-splitbutton {\n display: inline-flex;\n position: relative;\n }\n\n .p-splitbutton .p-splitbutton-defaultbutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button-outlined.p-button:hover {\n flex: 1 1 auto;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n }\n\n .p-splitbutton-menubutton,\n .p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n .p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .p-splitbutton .p-menu {\n min-width: 100%;\n }\n\n .p-fluid .p-splitbutton {\n display: flex;\n }\n}\n"}});function X(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 Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){K(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var $=e.memo(e.forwardRef((function(o,a){var l=u(),c=e.useContext(n),s=J.getProps(o,c),g=H(e.useState(s.id),2),h=g[0],S=g[1],P=H(e.useState(!1),2),D=P[0],T=P[1],C=e.useRef(null),K=e.useRef(null),M=e.useRef(null),_=e.useRef(null),A=d("split-button-tooltip",D),B={props:s,state:{id:h,overlayVisible:D}},L=J.setMetaData(B),R=L.ptm,z=L.cx;i(J.css.styles,L.isUnstyled,{name:"splitbutton"}),f({callback:function(){W()},when:D&&A,priority:[b.SPLIT_BUTTON,A]});var Z=function(e){D?W(e):F(e)},F=function(e){T(!0),K.current&&K.current.show(e)},W=function(e){T(!1),K.current&&K.current.hide(e)};if(p((function(){h||S(w()),I.alignOverlay(_.current,M.current.parentElement,s.appendTo||c&&c.appendTo||t.appendTo)})),m((function(){k.clear(_.current)})),e.useImperativeHandle(a,(function(){return{props:s,show:F,hide:W,getElement:function(){return C.current}}})),!1===s.visible)return null;var U=E.isNotEmpty(s.tooltip),X={large:"lg",small:"sm"}[s.size],$=s.buttonTemplate?E.getJSXElement(s.buttonTemplate,s):null,q=h+"_overlay",G=l({ref:C,id:h,className:x(s.className,z("root",{size:X})),style:s.style},J.getOtherProps(s),R("root"));return e.createElement(e.Fragment,null,e.createElement("div",G,e.createElement(r,j({ref:M,type:"button",className:x(s.buttonClassName,z("button")),icon:s.icon,loading:s.loading,loadingIcon:s.loadingIcon,severity:s.severity,label:s.label,"aria-label":s.label,raised:s.raised,onClick:s.onClick,disabled:s.disabled,tabIndex:s.tabIndex,size:s.size,outlined:s.outlined,text:s.text},s.buttonProps,{pt:R("button"),__parentMetadata:{parent:B},unstyled:s.unstyled}),$),e.createElement(r,j({type:"button",className:x(s.menuButtonClassName,z("menuButton")),icon:function(){var t=l({className:z("icon")},R("icon")),n=O.getJSXIcon(s.dropdownIcon||e.createElement(y,t),Y({},t),{props:s});return n},onClick:Z,disabled:s.disabled,"aria-expanded":D,"aria-haspopup":"true","aria-controls":q},s.menuButtonProps,{size:s.size,severity:s.severity,outlined:s.outlined,text:s.text,raised:s.raised,pt:R("menuButton"),__parentMetadata:{parent:B},onKeyDown:function(e){"ArrowDown"!==e.code&&"ArrowUp"!==e.code||(Z(e),e.preventDefault())},unstyled:s.unstyled})),e.createElement(V,{ref:K,popup:!0,unstyled:s.unstyled,model:s.model,appendTo:s.appendTo,id:q,style:s.menuStyle,autoZIndex:s.autoZIndex,baseZIndex:s.baseZIndex,className:x(s.menuClassName,z("menu")),onClick:function(e){v.emit("overlay-click",{originalEvent:e,target:C.current})},onShow:function(){s.onShow&&s.onShow()},onHide:function(){T(!1),s.onHide&&s.onHide()},pt:R("menu"),__parentMetadata:{parent:B}})),U&&e.createElement(N,j({target:C,content:s.tooltip,pt:R("tooltip")},s.tooltipOptions)))})));$.displayName="SplitButton";export{$ as SplitButton};