import*as e from"react";import{PrimeReactContext as t,ariaLabel as n}from"primereact/api";import{ComponentBase as r,useHandleStyle as a}from"primereact/componentbase";import{useMergeProps as o,useMountEffect as l,useUpdateEffect as i}from"primereact/hooks";import{ChevronLeftIcon as c}from"primereact/icons/chevronleft";import{ChevronRightIcon as u}from"primereact/icons/chevronright";import{TimesIcon as s}from"primereact/icons/times";import{Ripple as p}from"primereact/ripple";import{ObjectUtils as d,classNames as f,UniqueComponentId as b,DomHandler as v,IconUtils as m}from"primereact/utils";function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]&&arguments[1]?e:e.nextElementSibling;return t?v.getAttribute(t,"data-p-disabled")||"inkbar"===v.getAttribute(t,"data-pc-section")?we(t):v.findSingle(t,'[data-pc-section="headeraction"]'):null},Ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e:e.previousElementSibling;return t?v.getAttribute(t,"data-p-disabled")||"inkbar"===v.getAttribute(t,"data-pc-section")?Ce(t):v.findSingle(t,'[data-pc-section="headeraction"]'):null},xe=function(){return we(Y.current.firstElementChild,!0)},Se=function(){return Ce(Y.current.lastElementChild,!0)},Pe=function(e){e&&(v.focus(e),Ee({element:e}))},Ee=function(e){var t=e.element||F.current["tab_".concat(e.index)];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})},Oe=function(){var e=M.current,t=e.scrollLeft,n=e.scrollWidth,r=v.getWidth(M.current);k(0===t),L(parseInt(t)===n-r)},Ne=function(e){P.scrollable&&Oe(),e.preventDefault()},Ie=function(){return[q.current,z.current].reduce((function(e,t){return t?e+v.getWidth(t):e}),0)},Te=function(){k(!0),L(!1),J([]),P.onTabChange?P.onTabChange({index:G}):K(P.activeIndex)};e.useEffect((function(){var e;e=F.current["tab_".concat(G)],$.current.style.width=v.getWidth(e)+"px",$.current.style.left=v.getOffset(e).left-v.getOffset(Y.current).left+"px",Oe()})),l((function(){O||N(b())})),i((function(){if(d.isNotEmpty(W)){var t=(n=W[W.length-1],(r=e.Children.map(P.children,(function(e,t){if(ce(e))return{tab:e,index:t}}))).find((function(e){var t=e.index;return!ie(e.tab,"disabled")&&t>=n}))||r.reverse().find((function(e){var t=e.index;return!ie(e.tab,"disabled")&&n>t})));t&&se(null,t.tab,t.index)}var n,r}),[W]),i((function(){P.activeIndex!==V&&Ee({index:P.activeIndex})}),[P.activeIndex]),e.useImperativeHandle(h,(function(){return{props:P,reset:Te,getElement:function(){return H.current}}}));var je,ke,De,Ae,_e,Be,Re,Le,Ue,We=function(e,t){switch(e.preventDefault(),e.stopPropagation(),e.code){case"Space":case"NumpadEnter":case"Enter":ue(e,t)}},Je=function(t,r){var a=le(r),o=A.getCProps(t),l=o.headerStyle,i=o.headerClassName,c=o.style,u=o.className,f=o.disabled,b=o.leftIcon,v=o.rightIcon,h=o.header,y=o.headerTemplate,g=o.closable,w=o.closeIcon,C=O+"_header_"+r,S=O+r+"_content",E=f||!a?-1:0,N=b&&m.getJSXIcon(b,void 0,{props:P}),I=x({className:re("tab.headertitle")},oe(t,"headertitle",r)),T=e.createElement("span",I,h),j=v&&m.getJSXIcon(v,void 0,{props:P}),k=x({className:re("tab.closeIcon"),onClick:function(e){return ue(e,r)},onKeyDown:function(e){return We(e,r)},tabIndex:0,"aria-label":n("close")||"Close"},oe(t,"closeIcon",r)),D=g?m.getJSXIcon(w||e.createElement(s,k),B({},k),{props:P}):null,_=x({id:C,role:"tab",className:re("tab.headeraction"),tabIndex:E,"aria-controls":S,"aria-selected":a,"aria-disabled":f,onClick:function(e){return se(e,t,r)},onKeyDown:function(e){return de(e,t,r)}},oe(t,"headeraction",r)),R=e.createElement("a",_,N,T,j,D,e.createElement(p,null));y&&(R=d.getJSXElement(y,{className:"p-tabview-nav-link",titleClassName:"p-tabview-title",onClick:function(e){return se(e,t,r)},onKeyDown:function(e){return de(e,t,r)},leftIconElement:N,titleElement:T,rightIconElement:j,element:R,props:P,index:r,selected:a,ariaControls:S}));var L=x({ref:function(e){return F.current["tab_".concat(r)]=e},className:re("tab.header",{selected:a,disabled:f,headerClassName:i,_className:u}),style:ae("tab.header",{headerStyle:l,_style:c}),role:"presentation"},oe(t,"root",r),oe(t,"header",r));return e.createElement("li",L,R)},Xe=x({id:O,ref:H,style:P.style,className:f(P.className,re("root"))},D.getOtherProps(P),te("root")),Ve=x({className:re("navcontainer")},te("navcontainer")),Ke=(je=e.Children.map(P.children,(function(e,t){if(ce(e))return Je(e,t)})),ke=x({id:O+"_navcontent",ref:M,className:re("navcontent"),style:P.style,onScroll:Ne},te("navcontent")),De=x({ref:Y,className:re("nav"),role:"tablist"},te("nav")),Ae=x({ref:$,"aria-hidden":"true",role:"presentation",className:re("inkbar")},te("inkbar")),e.createElement("div",ke,e.createElement("ul",De,je,e.createElement("li",Ae)))),He=(_e=x({className:re("panelcontainer"),style:P.panelContainerStyle},te("panelcontainer")),Be=e.Children.map(P.children,(function(t,n){if(ce(t)&&(!P.renderActiveOnly||le(n))){var r=le(n),a=O+"_header_"+n,o=x({id:O+n+"_content",className:re("tab.content",{props:P,selected:r,getTabProp:ie,tab:t,isSelected:le,shouldUseTab:ce,index:n}),style:ae("tab.content",{props:P,getTabProp:ie,tab:t,isSelected:le,shouldUseTab:ce,index:n}),role:"tabpanel","aria-labelledby":a},A.getCOtherProps(t),oe(t,"root",n),oe(t,"content",n));return e.createElement("div",o,P.renderActiveOnly?r&&ie(t,"children"):ie(t,"children"))}})),e.createElement("div",_e,Be)),Me=(Re=x({"aria-hidden":"true"},te("previcon")),Le=m.getJSXIcon(P.prevButton||e.createElement(c,Re),B({},Re),{props:P}),Ue=x({ref:q,type:"button",className:re("prevbutton"),"aria-label":n("prevPageLabel"),onClick:function(e){return t=v.getWidth(M.current)-Ie(),void(M.current.scrollLeft=(n=M.current.scrollLeft-t)<=0?0:n);var t,n}},te("prevbutton")),P.scrollable&&!j?e.createElement("button",Ue,Le,e.createElement(p,null)):null),Ye=function(){var t=x({"aria-hidden":"true"},te("nexticon")),r=m.getJSXIcon(P.nextButton||e.createElement(u,t),B({},t),{props:P}),a=x({ref:z,type:"button",className:re("nextbutton"),"aria-label":n("nextPageLabel"),onClick:function(e){return t=v.getWidth(M.current)-Ie(),void(M.current.scrollLeft=(n=M.current.scrollLeft+t)>=(r=M.current.scrollWidth-t)?r:n);var t,n,r}},te("nextbutton"));if(P.scrollable&&!R)return e.createElement("button",a,r,e.createElement(p,null))}();return e.createElement("div",Xe,e.createElement("div",Ve,Me,Ke,Ye),He)}));R.displayName="TabPanel",L.displayName="TabView";export{R as TabPanel,L as TabView};