UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 4.85 kB
import{UniqueComponentId as e,DomHandler as t}from"primevue/utils";import{resolveComponent as n,openBlock as s,createElementBlock as i,normalizeClass as a,createElementVNode as l,Fragment as o,renderList as r,normalizeStyle as p,createBlock as c,withCtx as d,toDisplayString as m,resolveDynamicComponent as u,createCommentVNode as f}from"vue";var h={name:"Steps",props:{id:{type:String,default:e()},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 e=t.findSingle(this.$refs.list,".p-steps-item");return e?e.children[0]:null},findLastItem(){const e=t.find(this.$refs.list,".p-steps-item");return e?e[e.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 v=["id"],y={ref:"list",class:"p-steps-list"},b=["href","aria-current","onClick","onKeydown"],I={class:"p-steps-number"},g={class:"p-steps-title"},k=["onKeydown"],x={class:"p-steps-number"},T={class:"p-steps-title"};!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"),h.render=function(e,t,h,C,w,A){const E=n("router-link");return s(),i("nav",{id:h.id,class:a(A.containerClass)},[l("ol",y,[(s(!0),i(o,null,r(h.model,((t,n)=>(s(),i(o,{key:t.to},[A.visible(t)?(s(),i("li",{key:0,class:a(A.getItemClass(t)),style:p(t.style)},[e.$slots.item?(s(),c(u(e.$slots.item),{key:1,item:t},null,8,["item"])):(s(),i(o,{key:0},[A.isItemDisabled(t)?(s(),i("span",{key:1,class:a(A.linkClass()),onKeydown:e=>A.onItemKeydown(e,t)},[l("span",x,m(n+1),1),l("span",T,m(A.label(t)),1)],42,k)):(s(),c(E,{key:0,to:t.to,custom:""},{default:d((({navigate:e,href:s,isActive:i,isExactActive:o})=>[l("a",{href:s,class:a(A.linkClass({isActive:i,isExactActive:o})),tabindex:-1,"aria-current":o?"step":void 0,onClick:n=>A.onItemClick(n,t,e),onKeydown:n=>A.onItemKeydown(n,t,e)},[l("span",I,m(n+1),1),l("span",g,m(A.label(t)),1)],42,b)])),_:2},1032,["to"]))],64))],6)):f("",!0)],64)))),128))],512)],10,v)};export{h as default};