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.82 kB
import{DomHandler as e}from"primevue/utils";import{mergeProps as t,resolveComponent as n,openBlock as i,createElementBlock as s,createElementVNode as a,Fragment as o,renderList as r,createBlock as l,withCtx as c,toDisplayString as u,resolveDynamicComponent as m,createCommentVNode as d}from"vue";import p from"primevue/basecomponent";import f from"primevue/steps/style";var v={name:"Steps",extends:{name:"BaseSteps",extends:p,props:{id:{type:String},model:{type:Array,default:null},readonly:{type:Boolean,default:!0},exact:{type:Boolean,default:!0}},style:f,provide:function(){return{$parentInstance:this}}},beforeMount:function(){this.$slots.item||console.warn("In future versions, vue-router support will be removed. Item templating should be used.")},mounted:function(){this.findFirstItem().tabIndex="0"},methods:{getPTOptions:function(e,t,n){return this.ptm(e,{context:{item:t,index:n,active:this.isActive(t),disabled:this.isItemDisabled(t)}})},onItemClick:function(e,t,n){this.disabled(t)||this.readonly?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),t.to&&n&&n(e))},onItemKeydown:function(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:function(e){var t=this.findNextItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToPrevItem:function(e){var t=this.findPrevItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToFirstItem:function(e){var t=this.findFirstItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToLastItem:function(e){var t=this.findLastItem(e);t&&this.setFocusToMenuitem(e,t)},findNextItem:function(e){var t=e.parentElement.nextElementSibling;return t?t.children[0]:null},findPrevItem:function(e){var t=e.parentElement.previousElementSibling;return t?t.children[0]:null},findFirstItem:function(){var t=e.findSingle(this.$refs.list,'[data-pc-section="menuitem"]');return t?t.children[0]:null},findLastItem:function(){var t=e.find(this.$refs.list,'[data-pc-section="menuitem"]');return t?t[t.length-1].children[0]:null},setFocusToMenuitem:function(e,t){e.tabIndex="-1",t.tabIndex="0",t.focus()},isActive:function(e){return!!e.to&&this.$router.resolve(e.to).path===this.$route.path},isItemDisabled:function(e){return this.disabled(e)||this.readonly&&!this.isActive(e)},visible:function(e){return"function"==typeof e.visible?e.visible():!1!==e.visible},disabled:function(e){return"function"==typeof e.disabled?e.disabled():e.disabled},label:function(e){return"function"==typeof e.label?e.label():e.label},getMenuItemProps:function(e,n){var i=this;return{action:t({class:this.cx("action"),onClick:function(t){return i.onItemClick(t,e)},onKeyDown:function(t){return i.onItemKeydown(t,e)}},this.getPTOptions("action",e,n)),step:t({class:this.cx("step")},this.getPTOptions("step",e,n)),label:t({class:this.cx("label")},this.getPTOptions("label",e,n))}}}},h=["id"],b=["data-p-highlight","data-p-disabled"],g=["href","aria-current","onClick","onKeydown"],I=["onKeydown"];v.render=function(e,p,f,v,x,y){var T=n("router-link");return i(),s("nav",t({id:e.id,class:e.cx("root")},e.ptm("root"),{"data-pc-name":"steps"}),[a("ol",t({ref:"list",class:e.cx("menu")},e.ptm("menu")),[(i(!0),s(o,null,r(e.model,(function(n,r){return i(),s(o,{key:n.to},[y.visible(n)?(i(),s("li",t({key:0,class:[e.cx("menuitem",{item:n}),n.class],style:n.style},y.getPTOptions("menuitem",n,r),{"data-p-highlight":y.isActive(n),"data-p-disabled":y.isItemDisabled(n)}),[e.$slots.item?(i(),l(m(e.$slots.item),{key:1,item:n,index:r,label:y.label(n),props:y.getMenuItemProps(n,r)},null,8,["item","index","label","props"])):(i(),s(o,{key:0},[y.isItemDisabled(n)?(i(),s("span",t({key:1,class:e.cx("action"),onKeydown:function(e){return y.onItemKeydown(e,n)}},y.getPTOptions("action",n,r)),[a("span",t({class:e.cx("step")},y.getPTOptions("step",n,r)),u(r+1),17),a("span",t({class:e.cx("label")},y.getPTOptions("label",n,r)),u(y.label(n)),17)],16,I)):(i(),l(T,{key:0,to:n.to,custom:""},{default:c((function(i){var s=i.navigate,o=i.isExactActive;return[a("a",t({href:i.href,class:e.cx("action",{isActive:i.isActive,isExactActive:o}),tabindex:-1,"aria-current":o?"step":void 0,onClick:function(e){return y.onItemClick(e,n,s)},onKeydown:function(e){return y.onItemKeydown(e,n,s)}},y.getPTOptions("action",n,r)),[a("span",t({class:e.cx("step")},y.getPTOptions("step",n,r)),u(r+1),17),a("span",t({class:e.cx("label")},y.getPTOptions("label",n,r)),u(y.label(n)),17)],16,g)]})),_:2},1032,["to"]))],64))],16,b)):d("",!0)],64)})),128))],16)],16,h)};export{v as default};