primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 5.54 kB
JavaScript
import e from"primevue/icons/chevronright";import t from"primevue/basecomponent";import{useStyle as n}from"primevue/usestyle";import{mergeProps as i,resolveComponent as a,openBlock as l,createElementBlock as r,Fragment as s,createBlock as m,withCtx as o,createElementVNode as c,resolveDynamicComponent as p,normalizeClass as u,createCommentVNode as d,toDisplayString as b,renderList as h,renderSlot as f,createVNode as x}from"vue";var y=n("\n.p-breadcrumb {\n overflow-x: auto;\n}\n\n.p-breadcrumb .p-breadcrumb-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n}\n\n.p-breadcrumb .p-menuitem-text {\n line-height: 1;\n}\n\n.p-breadcrumb .p-menuitem-link {\n text-decoration: none;\n display: flex;\n align-items: center;\n}\n\n.p-breadcrumb .p-menuitem-separator {\n display: flex;\n align-items: center;\n}\n\n.p-breadcrumb::-webkit-scrollbar {\n display: none;\n}\n",{name:"breadcrumb",manual:!0}),v={name:"BaseBreadcrumb",extends:t,props:{model:{type:Array,default:null},home:{type:null,default:null},exact:{type:Boolean,default:!0}},css:{classes:{root:"p-breadcrumb p-component",menu:"p-breadcrumb-list",home:"p-breadcrumb-home",separator:"p-menuitem-separator",menuitem:function(e){return["p-menuitem",{"p-disabled":e.instance.disabled()}]},action:function(e){return["p-menuitem-link",{"router-link-active":e.isActive,"router-link-active-exact":e.props.exact&&e.isExactActive}]},icon:"p-menuitem-icon",label:"p-menuitem-text"},loadStyle:y.load},provide:function(){return{$parentInstance:this}}},k={name:"BreadcrumbItem",hostName:"Breadcrumb",extends:t,props:{item:null,templates:null,exact:null,index:null},methods:{onClick:function(e,t){this.item.command&&this.item.command({originalEvent:e,item:this.item}),this.item.to&&t&&t(e)},visible:function(){return"function"==typeof this.item.visible?this.item.visible():!1!==this.item.visible},disabled:function(){return"function"==typeof this.item.disabled?this.item.disabled():this.item.disabled},label:function(){return"function"==typeof this.item.label?this.item.label():this.item.label},isCurrentUrl:function(){var e=this.item,t="undefined"!=typeof window?window.location.pathname:"";return e.to===t||e.url===t?"page":void 0}},computed:{ptmOptions:function(){return{context:{item:this.item,index:this.index}}},getMenuItemProps:function(){var e=this;return{action:i({class:this.cx("action"),"aria-current":this.isCurrentUrl(),onClick:function(t){return e.onClick(t)}},this.ptm("action",this.ptmOptions)),icon:i({class:[this.cx("icon"),this.item.icon]},this.ptm("icon",this.ptmOptions)),label:i({class:this.cx("label")},this.ptm("label",this.ptmOptions))}}}},g=["href","aria-current","onClick"],C=["href","target","aria-current"];k.render=function(e,t,n,h,f,x){var y=a("router-link");return x.visible()?(l(),r("li",i({key:0,class:[e.cx("menuitem"),n.item.class]},e.ptm("menuitem",x.ptmOptions)),[n.templates.item?(l(),m(p(n.templates.item),{key:1,item:n.item,label:x.label(),props:x.getMenuItemProps},null,8,["item","label","props"])):(l(),r(s,{key:0},[n.item.to?(l(),m(y,{key:0,to:n.item.to,custom:""},{default:o((function(t){var a=t.navigate;return[c("a",i({href:t.href,class:e.cx("action",{isActive:t.isActive,isExactActive:t.isExactActive}),"aria-current":x.isCurrentUrl(),onClick:function(e){return x.onClick(e,a)}},e.ptm("action",x.ptmOptions)),[n.templates.itemicon?(l(),m(p(n.templates.itemicon),{key:0,item:n.item,class:u(e.cx("icon"))},null,8,["item","class"])):n.item.icon?(l(),r("span",i({key:1,class:[e.cx("icon"),n.item.icon]},e.ptm("icon",x.ptmOptions)),null,16)):d("",!0),n.item.label?(l(),r("span",i({key:2,class:e.cx("label")},e.ptm("label",x.ptmOptions)),b(x.label()),17)):d("",!0)],16,g)]})),_:1},8,["to"])):(l(),r("a",i({key:1,href:n.item.url||"#",class:e.cx("action"),target:n.item.target,"aria-current":x.isCurrentUrl(),onClick:t[0]||(t[0]=function(){return x.onClick&&x.onClick.apply(x,arguments)})},e.ptm("action",x.ptmOptions)),[n.templates&&n.templates.itemicon?(l(),m(p(n.templates.itemicon),{key:0,item:n.item,class:u(e.cx("icon",x.ptmOptions))},null,8,["item","class"])):n.item.icon?(l(),r("span",i({key:1,class:[e.cx("icon"),n.item.icon]},e.ptm("icon",x.ptmOptions)),null,16)):d("",!0),n.item.label?(l(),r("span",i({key:2,class:e.cx("label")},e.ptm("label",x.ptmOptions)),b(x.label()),17)):d("",!0)],16,C))],64))],16)):d("",!0)};var O={name:"Breadcrumb",extends:v,beforeMount:function(){this.$slots.item||console.warn("In future versions, vue-router support will be removed. Item templating should be used.")},components:{BreadcrumbItem:k,ChevronRightIcon:e}};O.render=function(e,t,n,o,p,u){var b=a("BreadcrumbItem"),y=a("ChevronRightIcon");return l(),r("nav",i({class:e.cx("root")},e.ptm("root"),{"data-pc-name":"breadcrumb"}),[c("ol",i({class:e.cx("menu")},e.ptm("menu")),[e.home?(l(),m(b,i({key:0,item:e.home,class:e.cx("home"),templates:e.$slots,exact:e.exact,pt:e.pt,unstyled:e.unstyled},e.ptm("home")),null,16,["item","class","templates","exact","pt","unstyled"])):d("",!0),(l(!0),r(s,null,h(e.model,(function(t,n){return l(),r(s,{key:t.label},[e.home||0!==n?(l(),r("li",i({key:0,class:e.cx("separator")},e.ptm("separator")),[f(e.$slots,"separator",{},(function(){return[x(y,i({"aria-hidden":"true"},e.ptm("separatorIcon")),null,16)]}))],16)):d("",!0),x(b,{item:t,index:n,templates:e.$slots,exact:e.exact,pt:e.pt,unstyled:e.unstyled},null,8,["item","index","templates","exact","pt","unstyled"])],64)})),128))],16)],16)};export{O as default};