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) 7.77 kB
import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{ComponentBase as n,useHandleStyle as r}from"primereact/componentbase";import{useMergeProps as i,useMountEffect as a}from"primereact/hooks";import{ObjectUtils as o,classNames as l,UniqueComponentId as c,IconUtils as s,DomHandler as u}from"primereact/utils";function p(){return p=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},p.apply(null,arguments)}function m(e){return m="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},m(e)}function f(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=m(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function d(e){var t=f(e,"string");return"symbol"==m(t)?t:t+""}function b(e,t,n){return(t=d(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e){if(Array.isArray(e))return e}function v(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}function g(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 h(e,t){if(e){if("string"==typeof e)return g(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)?g(e,t):void 0}}function O(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var x=n.extend({defaultProps:{__TYPE:"Steps",id:null,model:null,activeIndex:0,readOnly:!0,style:null,className:null,onSelect:null,children:void 0},css:{classes:{icon:function(e){return l("p-menuitem-icon",e.item.icon)},label:"p-steps-title",step:"p-steps-number",action:"p-menuitem-link",menuitem:function(e){return l("p-steps-item",e.item.className,{"p-highlight p-steps-current":e.active,"p-disabled":e.disabled})},root:function(e){return l("p-steps p-component",{"p-readonly":e.props.readOnly})}},styles:"\n@layer primereact {\n .p-steps {\n position: relative;\n }\n\n .p-steps ol {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: flex;\n }\n\n .p-steps-item {\n position: relative;\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\n }\n\n .p-steps-item .p-menuitem-link {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n text-decoration: none;\n }\n\n .p-steps.p-readonly .p-steps-item {\n cursor: auto;\n }\n\n .p-steps-item.p-steps-current .p-menuitem-link {\n cursor: default;\n }\n\n .p-steps-title {\n white-space: nowrap;\n }\n\n .p-steps-number {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .p-steps-title {\n display: block;\n }\n}\n"},getCProp:function(e,t){return o.getComponentProp(e,t,x.defaultProps)}});function S(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 j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var E=e.memo(e.forwardRef((function(n,m){var f,d,b=i(),g=e.useContext(t),S=x.getProps(n,g),E=e.useState(S.id),P=(d=2,y(f=E)||v(f,d)||h(f,d)||O()),w=P[0],I=P[1],N=e.useRef(null),k=e.useRef(null),D=e.Children.count(S.children),C={props:S,state:{id:w,activeIndex:S.activeIndex}},A=x.setMetaData(j({},C)),T=A.ptm,R=A.ptmo,_=A.cx;r(x.css.styles,A.isUnstyled,{name:"steps"});var F=function(e,t,n){var r={parent:C,context:{index:n,count:D,first:0===n,last:n===D-1,active:n===S.activeIndex,disabled:H(e,"disabled")}};return b(T("step.".concat(t),{step:r}),T("steps.".concat(t),{steps:r}),T("steps.".concat(t),r),R(H(e,"pt"),t,r))},H=function(e,t){return x.getCProp(e,t)},J=function(e,t,n){S.readOnly||t.disabled?e.preventDefault():(S.onSelect&&S.onSelect({originalEvent:e,item:t,index:n}),t.command&&t.command({originalEvent:e,item:t,index:n}),t.url||(e.preventDefault(),e.stopPropagation()))},M=function(e,t,n){if(!S.readOnly)switch(e.code){case"ArrowRight":U(e.target),e.preventDefault();break;case"ArrowLeft":X(e.target),e.preventDefault();break;case"Home":B(e.target),e.preventDefault();break;case"End":K(e.target),e.preventDefault();break;case"Tab":break;case"Enter":case"NumpadEnter":case"Space":J(e,t,n),e.preventDefault()}},U=function(e){var t=L(e);t&&z(e,t)},X=function(e){var t=Y(e);t&&z(e,t)},B=function(e){var t=$();t&&z(e,t)},K=function(e){var t=q();t&&z(e,t)},L=function(e){var t=e.parentElement.nextElementSibling;return t?t.children[0]:null},Y=function(e){var t=e.parentElement.previousElementSibling;return t?t.children[0]:null},$=function(){var e=u.findSingle(k.current,'[data-pc-section="menuitem"]');return e?e.children[0]:null},q=function(){var e=u.find(k.current,'[data-pc-section="menuitem"]');return e?e[e.length-1].children[0]:null},z=function(e,t){e.tabIndex="-1",t.tabIndex="0",setTimeout((function(){return t.focus()}),0)},G=function(){var e=$();e.tabIndex="0",e.focus()},Q=function(t,n){if(!1===t.visible)return null;var r=t.id||w+"_"+n,i=n===S.activeIndex,a=t.disabled||n!==S.activeIndex&&S.readOnly,c=l("p-menuitem-icon",t.icon),u=b({className:_("icon",{item:t})},F(t,"icon",n)),m=s.getJSXIcon(t.icon,j({},u),{props:S}),f=b({className:_("label")},F(t,"label",n)),d=t.label&&e.createElement("span",f,t.label),y=b({className:_("step")},F(t,"step",n)),v=b({href:t.url||"#",className:_("action"),tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},target:t.target,onKeyDown:function(e){return M(e,t,n)},onClick:function(e){return J(e,t,n)}},F(t,"action",n)),g=e.createElement("a",v,e.createElement("span",y,n+1),m,d);t.template&&(g=o.getJSXElement(t.template,t,{onClick:function(e){return J(e,t,n)},className:"p-menuitem-link",labelClassName:"p-steps-title",numberClassName:"p-steps-number",iconClassName:c,"aria-current":i,element:g,props:S,active:i,disabled:a}));var h=b({id:r,className:_("menuitem",{active:i,disabled:a,item:t}),style:t.style},T("menuitem"));return e.createElement("li",p({},h,{key:r}),g)};a((function(){w||I(c())})),e.useImperativeHandle(m,(function(){return{props:S,getElement:function(){return N.current}}}));var V=b({id:S.id,ref:N,className:l(S.className,_("root")),style:S.style},x.getOtherProps(S),T("root")),W=function(){var t=b({ref:k,tabIndex:S.readOnly?null:"0",onFocus:function(){S.readOnly||G()},onBlur:function(){return G}},T("menu"));if(S.model){var n=S.model.map(Q);return e.createElement("ol",t,n)}return null}();return e.createElement("nav",V,W)})));E.displayName="Steps";export{E as Steps};