UNPKG

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
import*as e from"react";import n,{PrimeReactContext as t}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 n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[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,n){if("object"!=D(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function C(e){var n=T(e,"string");return"symbol"==D(n)?n:n+""}function K(e,n,t){return(n=C(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function M(e){if(Array.isArray(e))return e}function _(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=i.call(t)).done)&&(a.push(r.value),a.length!==n);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}function A(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function B(e,n){if(e){if("string"==typeof e)return A(e,n);var t={}.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)?A(e,n):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,n){return M(e)||_(e,n)||B(e,n)||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 t=e.context;return x("p-tieredmenu p-component",{"p-tieredmenu-overlay":e.props.popup,"p-input-filled":t&&"filled"===t.inputStyle||"filled"===n.inputStyle,"p-ripple-disabled":t&&!1===t.ripple||!1===n.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 n=e.subProps;return{display:!n.root&&n.parentActive?"block":"none"}}}}});function z(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?z(Object(t),!0).forEach((function(n){K(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var F=e.memo(e.forwardRef((function(n,t){var r=e.useRef(null),o=u(),i=n.ptm,l=n.cx,c=n.sx,s=function(e,t){return i(t,{hostName:n.hostName,context:{active:b(e)}})},p=function(){if(r.current){var e=r.current.parentElement,n=I.getOffset(e),t=I.getViewport(),o=r.current.offsetParent?r.current.offsetWidth:I.getHiddenElementOuterWidth(r.current),i=I.getOuterWidth(e.children[0]),u=parseInt(n.top,10)+r.current.offsetHeight-I.getWindowScrollTop();r.current.style.top=u>t.height?t.height-u+"px":"0px",parseInt(n.left,10)+i+o>t.width-I.calculateScrollbarWidth()&&I.addClass(r.current,"p-submenu-list-flipped")}},m=function(e,t){var r=t.item;v(t)?e.preventDefault():(r.command&&r.command({originalEvent:e,item:r}),n.onItemClick&&n.onItemClick({originalEvent:e,processedItem:t}),r.url||(e.preventDefault(),e.stopPropagation()))},d=function(e){return"".concat(n.menuId,"_").concat(e.key)},f=function(e,n,t){return e&&e.item?E.getItemValue(e.item[n],t):void 0},b=function(e){return n.activeItemPath.some((function(n){return n.key===e.key}))},y=function(e){return!1!==f(e,"visible")},v=function(e){return f(e,"disabled")},g=function(e){return n.focusedItemId===d(e)},h=function(e){return E.isNotEmpty(e.items)},w=function(e,t){n.onItemMouseEnter&&n.onItemMouseEnter({originalEvent:e,processedItem:t})},k=function(e){return e-n.model.slice(0,e).filter((function(e){return y(e)&&f(e,"separator")})).length+1};a((function(){n.root||!n.parentActive||n.isMobileMode||p()}),[n.parentActive]),e.useImperativeHandle(t,(function(){return{getElement:function(){return r.current}}}));var N=function(t){var r=o({key:"separator_"+t,className:l("separator"),role:"separator"},i("separator",{hostName:n.hostName}));return e.createElement("li",r)},j=function(t,r){return h(t)?e.createElement(F,{id:n.id+"_"+r,menuProps:n.menuProps,model:t.items,menuId:n.menuId,ariaLabelledby:d(t),focusedItemId:n.focusedItemId,activeItemPath:n.activeItemPath,level:n.level+1,onItemClick:n.onItemClick,popup:n.popup,onItemMouseEnter:n.onItemMouseEnter,parentActive:b(t),isMobileMode:n.isMobileMode,submenuIcon:n.submenuIcon,ptm:n.ptm,cx:l,sx:c}):null},D=function(t,r){if(!1===y(t))return null;var i=t.item,u=f(t,"style"),a=f(t,"className"),c=f(t,"icon"),p=f(t,"target"),I=f(t,"url"),N=d(t),D=g(t),T=b(t),C=v(t),K=h(t),M=x("p-menuitem-link"),_=x("p-menuitem-icon",c),A=o({className:x(i.icon,"p-menuitem-icon","icon")},s(t,"icon")),B=O.getJSXIcon(c,Z({},A),{props:n.menuProps}),L=o({className:l("label")},s(t,"label")),H=i.label&&e.createElement("span",L,i.label),R=o({className:l("submenuIcon")},s(t,"submenuIcon")),z=K&&O.getJSXIcon(n.submenuIcon||e.createElement(S,R),Z({},R),{props:n.menuProps}),F=j(t,r),W=o({href:I||"#","aria-hidden":!0,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:l("action"),target:p},s(t,"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:n,active:T,disabled:C}));var V=o({onClick:function(e){return m(e,t)},onMouseEnter:function(e){return w(e,t)},className:l("content")},s(t,"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":n.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(t,"menuitem"));return e.createElement("li",J,e.createElement("div",V,U),F)},T=n.model?n.model.map((function(e,n){return!1===e.visible?null:f(e,"separator")?N(n):D(e,n)})):null,C=n.root?"menu":"submenu",K=o({ref:r,id:n.id,tabIndex:n.tabIndex,onFocus:n.onFocus,onBlur:n.onBlur,onKeyDown:n.onKeyDown,className:l(C,{subProps:n}),style:c(C,{subProps:n}),role:n.root?"menubar":"menu","aria-label":n.ariaLabel,"aria-labelledby":n.ariaLabelledby,"aria-orientation":n.ariaOrientation,"aria-activedescendant":n.focusedItemId},i(C,{hostName:n.hostName}));return e.createElement("ul",K,T)})));function W(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function U(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?W(Object(t),!0).forEach((function(n){K(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):W(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}F.displayName="TieredMenuSub";var V=e.memo(e.forwardRef((function(r,o){var d=u(),f=e.useContext(t),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],ne=Q[1],te=H(e.useState(!1),2),re=te[0],oe=te[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 n=de.current&&!de.current.contains(e.target),t=!b.popup||!(be.current&&(be.current===e.target||be.current.contains(e.target)));n&&t&&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:ln(),level:0,parentKey:""})},De=function(e,n){b.popup&&(D(!1),b.onHide&&b.onHide(e));var t=Je();K([]),V({index:-1,level:0,parentKey:""}),n&&I.focus(ye.current||be.current||t),Y(!1)},Te=function(e){A(!0),V(-1!==W.index?W:{index:ln(),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 n=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:!n&&E.isPrintableCharacter(e.key)&&sn(e.key)}},Me=function(e){var n=e.processedItem,t=e.isFocus;if(!E.isEmpty(n)){var r=n.index,o=n.key,i=n.level,u=n.parentKey,a=E.isNotEmpty(n.items),l=C.filter((function(e){return e.parentKey!==u&&e.parentKey!==o}));a&&l.push(n),V({index:r,level:i,parentKey:u}),K(l),a&&Y(!0),t&&I.focus(Je())}},_e=function(e){var n=e.originalEvent,t=e.processedItem;if(!Ye(t)&&!b.isMobileMode){var r=qe(t),o=E.isEmpty(t.parent),i=nn(t),u=Je();if(i){var a=t.index,l=t.key,c=t.level,s=t.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?t:C.find((function(e){return""===e.parentKey})),m=p?p.index:-1;De(n,!0),V({index:m,parentKey:p?p.parentKey:""})}}},Ae=function(e){var n=e.originalEvent;Ye(e.processedItem)||b.isMobileMode?n.preventDefault():X&&!b.popup&&Me(e)},Be=function(e){var n=-1!==W.index?on(W.index):ln();pn(n),e.preventDefault()},Le=function(e){if(e.altKey){if(b.popup&&I.focus(be.current),-1!==W.index){var n=ee[W.index];!qe(n)&&Me({originalEvent:e,processedItem:n})}b.popup&&De(e,!0),e.preventDefault()}else{var t=-1!==W.index?un(W.index):cn();pn(t),e.preventDefault()}},He=function(e){var n=ee[W.index],t=C.find((function(e){return e.key===n.parentKey}));E.isEmpty(n.parent)||(V({index:-1,parentKey:t?t.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 n=ee[W.index];qe(n)&&(Me({originalEvent:e,processedItem:n}),V({index:-1,parentKey:n.key}),ge.current="",setTimeout((function(){return oe(!0)}),0)),e.preventDefault()},ze=function(e){pn(tn()),e.preventDefault()},Ze=function(e){pn(rn()),e.preventDefault()},Fe=function(e){if(-1!==W.index){var n=I.findSingle(Je(),'li[id="'.concat("".concat(L),'"]')),t=n&&I.findSingle(n,'[data-pc-section="action"]');b.popup&&I.focus(be.current),t?t.click():n&&n.click()}e.preventDefault()},We=function(e){Fe(e)},Ue=function(e){De(e,!0),!b.popup&&V(U(U({},W),{},{index:ln()})),e.preventDefault()},Ve=function(e){if(-1!==W.index){var n=ee[W.index];!qe(n)&&Me({originalEvent:e,processedItem:n})}De(e)},Je=function(){return fe.current.getElement()||null},Xe=function(e,n){return e?E.getItemValue(e[n]):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")},en=function(e){return Qe(e)&&nn(e)},nn=function(e){return C.some((function(n){return n.key===e.key}))},tn=function(){return ee.findIndex((function(e){return Qe(e)}))},rn=function(){return E.findLastIndex(ee,(function(e){return Qe(e)}))},on=function(e){var n=e<ee.length-1?ee.slice(e+1).findIndex((function(e){return Qe(e)})):-1;return n>-1?n+e+1:e},un=function(e){var n=e>0?E.findLastIndex(ee.slice(0,e),(function(e){return Qe(e)})):-1;return n>-1?n:e},an=function(){return ee.findIndex((function(e){return en(e)}))},ln=function(){var e=an();return e<0?tn():e},cn=function(){var e=an();return e<0?rn():e},sn=function(e){ge.current=(ge.current||"")+e;var n=-1,t=!1;return-1!==(n=-1!==W.index?-1===(n=ee.slice(W.index).findIndex((function(e){return Ge(e)})))?ee.slice(0,W.index).findIndex((function(e){return Ge(e)})):n+W.index:ee.findIndex((function(e){return Ge(e)})))&&(t=!0),-1===n&&-1===W.index&&(n=ln()),-1!==n&&pn(n),he.current&&clearTimeout(he),he.current=setTimeout((function(){ge.current="",he.current=null}),500),t},pn=function(e){W.index!==e&&(V(U(U({},W),{},{index:e})),mn())},mn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=-1!==e?"".concat(O,"_").concat(e):L,t=I.findSingle(Je(),'li[id="'.concat(n,'"]'));t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest",inline:"start"})},dn=e.useCallback((function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=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:n,key:u,parent:t,parentKey:r};a.items=dn(e.items,n+1,a,u),o.push(a)})),o}),[]),fn=function(){if(!ve.current){ve.current=I.createInlineStyle(f&&f.nonce||n.nonce,f&&f.styleContainer);var e="".concat(ue),t="\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=t}},bn=function(){ve.current=I.removeInlineStyle(ve.current)},yn=function(){var e;b.autoZIndex&&k.set("menu",de.current,f&&f.autoZIndex||n.autoZIndex,b.baseZIndex||f&&f.zIndex.menu||n.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()),mn(),ue&&b.breakpoint&&(de.current.setAttribute(ue,""),fn())},vn=function(){Ee(),ke()},gn=function(){be.current=null,Oe(),Se()},hn=function(){k.clear(de.current),bn()};p((function(){var e=w();!O&&S(e),b.breakpoint&&!ue&&ae(e)})),e.useEffect((function(){var e=dn(b.model||[]);G(e)}),[b.model,dn]),a((function(){var e=C.find((function(e){return e.key===W.parentKey}));ne(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?on(W.index):ln();pn(e),K(C.filter((function(e){return e.parentKey!==W.parentKey}))),oe(!1)}}),[re]),a((function(){return ue&&de.current&&(de.current.setAttribute(ue,""),fn()),function(){bn()}}),[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 xn,In,En=(xn=d({ref:de,id:b.id,className:x(b.className,pe("root")),style:b.style,onClick:Pe},R.getOtherProps(b),se("root")),In=d({classNames:pe("transition"),in:N,timeout:{enter:120,exit:100},options:b.transitionOptions,unmountOnExit:!0,onEnter:yn,onEntered:vn,onExit:gn,onExited:hn},se("transition")),e.createElement(g,j({nodeRef:de},In),e.createElement("div",xn,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:En,appendTo:b.appendTo}):En})));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 n=e.props,t=e.size;return x("p-splitbutton p-component",K(K(K(K(K(K({"p-disabled":n.disabled,"p-button-loading-label-only":n.loading&&!n.icon&&n.label},"p-button-".concat(n.severity),n.severity),"p-button-raised",n.raised),"p-button-rounded",n.rounded),"p-button-text",n.text),"p-button-outlined",n.outlined),"p-button-".concat(t),t))},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,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Y(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?X(Object(t),!0).forEach((function(n){K(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):X(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var $=e.memo(e.forwardRef((function(o,a){var l=u(),c=e.useContext(t),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||n.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 n=l({className:z("icon")},R("icon")),t=O.getJSXIcon(s.dropdownIcon||e.createElement(y,n),Y({},n),{props:s});return t},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};