primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 5.21 kB
JavaScript
this.primevue=this.primevue||{},this.primevue.steps=function(e,t){"use strict";var n={name:"Steps",props:{id:{type:String,default:e.UniqueComponentId()},model:{type:Array,default:null},readonly:{type:Boolean,default:!0},exact:{type:Boolean,default:!0}},mounted(){this.findFirstItem().tabIndex="0"},methods:{onItemClick(e,t,n){this.disabled(t)||this.readonly?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),t.to&&n&&n(e))},onItemKeydown(e,t,n){switch(e.code){case"ArrowRight":this.navigateToNextItem(e.target),e.preventDefault();break;case"ArrowLeft":this.navigateToPrevItem(e.target),e.preventDefault();break;case"Home":this.navigateToFirstItem(e.target),e.preventDefault();break;case"End":this.navigateToLastItem(e.target),e.preventDefault();break;case"Tab":break;case"Enter":case"Space":this.onItemClick(e,t,n),e.preventDefault()}},navigateToNextItem(e){const t=this.findNextItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToPrevItem(e){const t=this.findPrevItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToFirstItem(e){const t=this.findFirstItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToLastItem(e){const t=this.findLastItem(e);t&&this.setFocusToMenuitem(e,t)},findNextItem(e){const t=e.parentElement.nextElementSibling;return t?t.children[0]:null},findPrevItem(e){const t=e.parentElement.previousElementSibling;return t?t.children[0]:null},findFirstItem(){const t=e.DomHandler.findSingle(this.$refs.list,".p-steps-item");return t?t.children[0]:null},findLastItem(){const t=e.DomHandler.find(this.$refs.list,".p-steps-item");return t?t[t.length-1].children[0]:null},setFocusToMenuitem(e,t){e.tabIndex="-1",t.tabIndex="0",t.focus()},isActive(e){return!!e.to&&this.$router.resolve(e.to).path===this.$route.path},getItemClass(e){return["p-steps-item",e.class,{"p-highlight p-steps-current":this.isActive(e),"p-disabled":this.isItemDisabled(e)}]},linkClass(e){return["p-menuitem-link",{"router-link-active":e&&e.isActive,"router-link-active-exact":this.exact&&e&&e.isExactActive}]},isItemDisabled(e){return this.disabled(e)||this.readonly&&!this.isActive(e)},visible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,disabled:e=>"function"==typeof e.disabled?e.disabled():e.disabled,label:e=>"function"==typeof e.label?e.label():e.label},computed:{containerClass(){return["p-steps p-component",{"p-readonly":this.readonly}]}}};const s=["id"],i={ref:"list",class:"p-steps-list"},l=["href","aria-current","onClick","onKeydown"],a={class:"p-steps-number"},o={class:"p-steps-title"},r=["onKeydown"],c={class:"p-steps-number"},p={class:"p-steps-title"};return function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&s.firstChild?s.insertBefore(i,s.firstChild):s.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-steps {\n position: relative;\n}\n.p-steps .p-steps-list {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: flex;\n}\n.p-steps-item {\n position: relative;\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\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.p-steps.p-steps-readonly .p-steps-item {\n cursor: auto;\n}\n.p-steps-item.p-steps-current .p-menuitem-link {\n cursor: default;\n}\n.p-steps-title {\n white-space: nowrap;\n}\n.p-steps-number {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-steps-title {\n display: block;\n}\n"),n.render=function(e,n,m,d,u,h){const f=t.resolveComponent("router-link");return t.openBlock(),t.createElementBlock("nav",{id:m.id,class:t.normalizeClass(h.containerClass)},[t.createElementVNode("ol",i,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(m.model,((n,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:n.to},[h.visible(n)?(t.openBlock(),t.createElementBlock("li",{key:0,class:t.normalizeClass(h.getItemClass(n)),style:t.normalizeStyle(n.style)},[e.$slots.item?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.$slots.item),{key:1,item:n},null,8,["item"])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[h.isItemDisabled(n)?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass(h.linkClass()),onKeydown:e=>h.onItemKeydown(e,n)},[t.createElementVNode("span",c,t.toDisplayString(s+1),1),t.createElementVNode("span",p,t.toDisplayString(h.label(n)),1)],42,r)):(t.openBlock(),t.createBlock(f,{key:0,to:n.to,custom:""},{default:t.withCtx((({navigate:e,href:i,isActive:r,isExactActive:c})=>[t.createElementVNode("a",{href:i,class:t.normalizeClass(h.linkClass({isActive:r,isExactActive:c})),tabindex:-1,"aria-current":c?"step":void 0,onClick:t=>h.onItemClick(t,n,e),onKeydown:t=>h.onItemKeydown(t,n,e)},[t.createElementVNode("span",a,t.toDisplayString(s+1),1),t.createElementVNode("span",o,t.toDisplayString(h.label(n)),1)],42,l)])),_:2},1032,["to"]))],64))],6)):t.createCommentVNode("",!0)],64)))),128))],512)],10,s)},n}(primevue.utils,Vue);