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) 6.58 kB
import*as e from"react";import{ariaLabel as t}from"primereact/api";import{CSSTransition as r}from"primereact/csstransition";import{useMountEffect as n}from"primereact/hooks";import{ObjectUtils as o,UniqueComponentId as a,classNames as l,IconUtils as i}from"primereact/utils";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}function u(e){return u="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},u(e)}function s(e,t){if("object"!==u(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function p(e){var t=s(e,"string");return"symbol"===u(t)?t:String(t)}function f(e,t,r){return(t=p(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function m(e){if(Array.isArray(e))return d(e)}function b(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function y(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}function g(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e){if(Array.isArray(e))return e}function v(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,l,i=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=a.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(u)throw o}}return i}}function P(){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 O(e,t){return h(e)||v(e,t)||y(e,t)||P()}var S={defaultProps:{__TYPE:"Accordion",id:null,activeIndex:null,className:null,style:null,multiple:!1,expandIcon:"pi pi-chevron-right",collapseIcon:"pi pi-chevron-down",transitionOptions:null,onTabOpen:null,onTabClose:null,onTabChange:null,children:void 0},getProps:function(e){return o.getMergedProps(e,S.defaultProps)},getOtherProps:function(e){return o.getDiffProps(e,S.defaultProps)}},j={defaultProps:{__TYPE:"AccordionTab",className:null,contentClassName:null,contentStyle:null,disabled:!1,header:null,headerClassName:null,headerStyle:null,headerTemplate:null,style:null,tabIndex:0,children:void 0},getCProp:function(e,t){return o.getComponentProp(e,t,j.defaultProps)},getCProps:function(e){return o.getComponentProps(e,j.defaultProps)},getCOtherProps:function(e){return o.getComponentDiffProps(e,j.defaultProps)}};function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var E=function(){},T=e.forwardRef((function(u,s){var p=S.getProps(u),f=O(e.useState(p.id),2),d=f[0],h=f[1],v=O(e.useState(p.activeIndex),2),P=v[0],C=v[1],E=e.useRef(null),T=p.onTabChange?p.activeIndex:P,w=function(e,t){return j.getCProp(e,t)},x=function(e,t,r){if(!w(t,"disabled")){var n=I(r),o=null;if(p.multiple){var a=T||[];o=n?a.filter((function(e){return e!==r})):[].concat(m(i=a)||b(i)||y(i)||g(),[r])}else o=n?null:r;var l=n?p.onTabClose:p.onTabOpen;l&&l({originalEvent:e,index:r}),p.onTabChange?p.onTabChange({originalEvent:e,index:o}):C(o)}var i;e.preventDefault()},I=function(e){return p.multiple?T&&T.some((function(t){return t===e})):T===e};if(e.useImperativeHandle(s,(function(){return{props:p,getElement:function(){return E.current}}})),n((function(){d||h(a())})),!d)return null;var A=function(r,n,a){var c=N(N({},w(r,"style")||{}),w(r,"headerStyle")||{}),u=l("p-accordion-header",{"p-highlight":n,"p-disabled":w(r,"disabled")},w(r,"headerClassName"),w(r,"className")),s=d+"_header_"+a,f=d+"_content_"+a,m=w(r,"disabled")?-1:w(r,"tabIndex"),b=w(r,"headerTemplate")?o.getJSXElement(w(r,"headerTemplate"),j.getCProps(r)):e.createElement("span",{className:"p-accordion-header-text"},w(r,"header")),y=i.getJSXIcon(n?p.collapseIcon:p.expandIcon,{className:"p-accordion-toggle-icon"},{props:p,selected:n}),g=t(n?"collapseLabel":"expandLabel");return e.createElement("div",{className:u,style:c},e.createElement("a",{href:"#"+f,id:s,className:"p-accordion-header-link","aria-controls":f,role:"tab","aria-expanded":n,onClick:function(e){return x(e,r,a)},tabIndex:m,"aria-label":g},y,b))},_=function(t,n,o){var a=N(N({},w(t,"style")||{}),w(t,"contentStyle")||{}),i=l("p-toggleable-content",w(t,"contentClassName"),w(t,"className")),c=d+"_content_"+o,u=d+"_header_"+o,s=e.createRef();return e.createElement(r,{nodeRef:s,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:n,unmountOnExit:!0,options:p.transitionOptions},e.createElement("div",{ref:s,id:c,className:i,style:a,role:"region","aria-labelledby":u},e.createElement("div",{className:"p-accordion-content"},w(t,"children"))))},D=function(t,r){if(o.isValidChild(t,"AccordionTab")){var n=d+"_"+r,a=I(r),i=j.getCOtherProps(t),u=A(t,a,r),s=_(t,a,r),p=l("p-accordion-tab",{"p-accordion-tab-active":a});return e.createElement("div",c({key:n,className:p},i),u,s)}return null},k=S.getOtherProps(p),R=l("p-accordion p-component",p.className),J=e.Children.map(p.children,D);return e.createElement("div",c({id:d,ref:E,className:R,style:p.style},k),J)}));E.displayName="AccordionTab",T.displayName="Accordion";export{T as Accordion,E as AccordionTab};