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) 12.4 kB
import*as e from"react";import t from"react";import{PrimeReactContext as r}from"primereact/api";import{ComponentBase as n,useHandleStyle as a}from"primereact/componentbase";import{CSSTransition as i}from"primereact/csstransition";import{useMergeProps as p,useMountEffect as o}from"primereact/hooks";import{classNames as l,UniqueComponentId as c}from"primereact/utils";function s(e){return s="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},s(e)}function u(e,t){if("object"!==s(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function d(e){var t=u(e,"string");return"symbol"===s(t)?t:String(t)}function f(e,t,r){return(t=d(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(){return m=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},m.apply(this,arguments)}function b(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,a,i,p,o=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=r.return&&(p=r.return(),Object(p)!==p))return}finally{if(c)throw a}}return o}}function h(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 y(e,t){if(e){if("string"==typeof e)return h(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)?h(e,t):void 0}}function g(){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 b(e)||v(e,t)||y(e,t)||g()}var x=n.extend({defaultProps:{__TYPE:"Stepper",activeStep:0,orientation:"horizontal",linear:!1},css:{classes:{root:function(e){var t=e.props;return l("p-stepper p-component",{"p-stepper-horizontal":"horizontal"===t.orientation,"p-stepper-vertical":"vertical"===t.orientation,"p-readonly":t.linear})},nav:"p-stepper-nav",stepper:{header:function(e){var t=e.isItemDisabled,r=e.index;return l("p-stepper-header",{"p-highlight":(0,e.isStepActive)(r),"p-disabled":t(r)})},action:"p-stepper-action p-component",number:"p-stepper-number",title:"p-stepper-title",separator:"p-stepper-separator",toggleableContent:"p-stepper-toggleable-content",content:function(e){return l("p-stepper-content",{"p-toggleable-content":"vertical"===e.props.orientation})}},panelContainer:"p-stepper-panels",panel:function(e){return l("p-stepper-panel",{"p-stepper-panel-active":"vertical"===e.props.orientation&&(0,e.isStepActive)(e.index)})}},styles:"\n@layer primereact {\n .p-stepper .p-stepper-nav {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow-x: auto;\n }\n \n .p-stepper-vertical .p-stepper-nav {\n flex-direction: column;\n }\n \n .p-stepper-header {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n \n &:last-of-type {\n flex: initial;\n }\n }\n \n .p-stepper-header .p-stepper-action {\n border: 0 none;\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n cursor: pointer;\n \n &:focus-visible {\n @include focused();\n }\n }\n \n .p-stepper.p-stepper-readonly .p-stepper-header {\n cursor: auto;\n }\n \n .p-stepper-header.p-highlight .p-stepper-action {\n cursor: default;\n }\n \n .p-stepper-title {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n \n .p-stepper-number {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .p-stepper-separator {\n flex: 1 1 0;\n }\n}\n"}});function S(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 j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=e.memo(e.forwardRef((function(t,r){var n=p(),a=t.ptm,i=n(j(j(j({ref:r,id:t.id,className:(0,t.cx)("stepper.content",{stepperpanel:t.stepperpanel,index:t.index}),role:"tabpanel","aria-labelledby":t.ariaLabelledby},t.getStepPT(t.stepperpanel,"root",t.index)),t.getStepPT(t.stepperpanel,"content",t.index)),{},{"data-p-active":t.active}),a("stepperpanel"));return e.createElement("div",i,t.template?e.createElement(t.template,{index:t.index,active:t.active,highlighted:t.highlighted,clickCallback:function(e){return t.onItemClick(e,t.index)},prevCallback:function(e){return t.prevCallback(e,t.index)},nextCallback:function(e){return t.nextCallback(e,t.index)}}):t.stepperpanel)})));P.displayName="StepperContent";var w=e.memo(e.forwardRef((function(t,r){var n=p(),a=t.cx,i=n({ref:r,id:t.id,className:a("stepper.action"),role:"tab",type:"button",tabIndex:t.disabled?-1:void 0,"aria-controls":t.ariaControls,onClick:function(e){return t.clickCallback(e,t.index)}});return t.template?t.template():e.createElement("button",i,e.createElement("span",{className:a("stepper.number")},t.index+1),e.createElement("span",{className:a("stepper.title")},t.getStepProp(t.stepperpanel,"header")))})));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 E(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}w.displayName="StepperHeader";var k=e.memo(e.forwardRef((function(t,r){var n=p()(E({ref:r,"aria-hidden":!0,className:t.separatorClass},t.getStepPT(t.stepperpanel,"separator",t.index)));return t.template?t.template():e.createElement("span",n)})));function N(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 A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?N(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}k.displayName="StepperSeparator";var D=t.memo(t.forwardRef((function(e,n){var s=p(),u=t.useContext(r),d=x.getProps(e,u),f=x.setMetaData({props:d}),b=f.ptm,v=f.cx,h=f.isUnstyled,y=f.ptmo,g=O(t.useState(d.id),2),S=g[0],j=g[1],C=O(t.useState(d.activeStep),2),E=C[0],N=C[1],D=t.useRef();a(x.css.styles,h,{name:"stepper"}),o((function(){S||j(c())}));var T=function(e,t){var r;return null==e||null===(r=e.props)||void 0===r?void 0:r[t]},I=function(e,t){return T(e,"header")||t},R=function(e){return"StepperPanel"===e.type.displayName},_=function(e){return E===e},z=function(e){return d.linear&&!_(e)},L=function(e,t){N(t),d.onChangeStep&&d.onChangeStep({originalEvent:e,index:t})},H=function(e){return"".concat(S,"_").concat(e,"_header_action")},M=function(e){return"".concat(S,"_").concat(e,"content")},U=function(){return t.Children.toArray(d.children).reduce((function(e,r){return R(r)?e.push(r):r&&Array.isArray(r)&&t.Children.toArray(r.props.children).forEach((function(t){R(t)&&e.push(t)})),e}),[])},B=function(e,t){0!==t&&L(e,t-1)},F=function(e,t){t!==U().length-1&&L(e,t+1)},Y=function(e,t,r){var n=U().length,a={props:e.props,parent:{props:d},context:{index:r,count:n,first:0===r,last:r===n-1,active:_(r),highlighted:r<E,disabled:z(r)}};return s(b("stepperpanel.".concat(t),{stepperpanel:a}),b("stepperpanel.".concat(t),a),y(T(e,"pt"),t,a))},$=function(e,t){d.linear?e.preventDefault():t!==E&&L(e,t)};t.useImperativeHandle(n,(function(){return{getElement:function(){return D.current},getActiveStep:function(){return E},setActiveStep:function(e){return N(e)},nextCallback:function(e){return F(e,E)},prevCallback:function(e){return B(e,E)}}}));var q,G,J,K=s({className:l(v("root")),role:"tablist"},x.getOtherProps(d),b("root"));return t.createElement("div",K,d.start&&d.start(),"horizontal"===d.orientation&&(q=U().map((function(e,r){var n,a,i=s({className:l(v("stepper.header",{isStepActive:_,isItemDisabled:z,step:e,index:r})),"aria-current":_(r)&&"step",role:"presentation","data-p-highlight":_(r),"data-p-disabled":z(r),"data-p-active":_(r)},b("stepperpanel"));return t.createElement("li",m({key:I(e,r)},i),t.createElement(w,{id:H(r),template:null===(n=e.children)||void 0===n?void 0:n.header,stepperpanel:e,index:r,disabled:z(r),active:_(r),highlighted:r<E,ariaControls:M(r),clickCallback:$,getStepPT:Y,getStepProp:T,cx:v}),r!==U().length-1&&t.createElement(k,{template:null===(a=e.children)||void 0===a?void 0:a.separator,separatorClass:v("stepper.separator"),stepperpanel:e,index:r,active:_(r),highlighted:r<E,getStepPT:Y}))})),G=s({className:l(v("nav")),ref:D},b("nav")),J=s({className:v("panelContainer")},b("panelContainer")),t.createElement(t.Fragment,null,t.createElement("ul",G,q),t.createElement("div",J,U().map((function(e,r){var n;return _(r)?t.createElement(P,{key:M(r),id:M(r),tempate:null==e||null===(n=e.children)||void 0===n?void 0:n.content,stepperpanel:e,index:r,active:_(r),highlighted:r<E,clickCallback:$,prevCallback:B,nextCallback:F,getStepPT:Y,ariaLabelledby:H(r),ptm:b,cx:v}):null}))))),"vertical"===d.orientation&&U().map((function(e,r){var n,a,p,o=t.createRef(null),l=s(A(A(A({ref:D,className:v("panel",{props:d,index:r,isStepActive:_}),"aria-current":_(r)&&"step"},Y(e,"root",r)),Y(e,"panel",r)),{},{"data-p-highlight":_(r),"data-p-disabled":z(r),"data-p-active":_(r)}),b("nav")),c=s(A({className:v("stepper.header",{step:e,isStepActive:_,isItemDisabled:z,index:r})},Y(e,"header",r))),u=s(A(A({classNames:v("stepper.content")},Y(e,"transition",r)),{},{timeout:{enter:1e3,exit:450},in:_(r),unmountOnExit:!0})),f=s(A({ref:o,className:v("stepper.toggleableContent")},Y(e,"toggleableContent",r)));return t.createElement("div",m({key:I(e,r)},l),t.createElement("div",c,t.createElement(w,{id:H(r),template:null===(n=e.children)||void 0===n?void 0:n.header,stepperpanel:e,index:r,disabled:z(r),active:_(r),highlighted:r<E,ariaControls:M(r),clickCallback:$,getStepPT:Y,getStepProp:T,cx:v})),t.createElement(i,m({nodeRef:o},u),t.createElement("div",f,r!==U().length-1&&t.createElement(k,{template:null===(a=e.children)||void 0===a?void 0:a.separator,separatorClass:v("stepper.separator"),stepperpanel:e,index:r,active:_(r),highlighted:r<E,getStepPT:Y}),t.createElement(P,{key:M(r),id:M(r),tempate:null==e||null===(p=e.children)||void 0===p?void 0:p.content,stepperpanel:e,index:r,active:_(r),highlighted:r<E,clickCallback:$,prevCallback:B,nextCallback:F,getStepPT:Y,ariaLabelledby:H(r),ptm:b,cx:v}))))})),d.end&&d.end())})));x.displayName="StepperBase";export{D as Stepper};