ll-package
Version:
2 lines (1 loc) • 2.61 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),c=require("vue"),P=require("../_util/vue-types/index.js"),R=require("../_util/props-util/index.js"),A=require("../_util/warning.js"),O=require("./BreadcrumbItem.js");require("../menu/index.js");const x=require("../config-provider/hooks/useConfigInject.js"),E=require("./style/index.js"),I=require("../menu/src/Menu.js"),q=()=>({prefixCls:String,routes:{type:Array},params:P.default.any,separator:P.default.any,itemRender:{type:Function}});function M(a,o){if(!a.breadcrumbName)return null;const u=Object.keys(o).join("|");return a.breadcrumbName.replace(new RegExp(`:(${u})`,"g"),(d,p)=>o[p]||d)}function _(a){const{route:o,params:u,routes:l,paths:d}=a,p=l.indexOf(o)===l.length-1,g=M(o,u);return p?c.createVNode("span",null,[g]):c.createVNode("a",{href:`#/${d.join("/")}`},[g])}const V=c.defineComponent({compatConfig:{MODE:3},name:"ABreadcrumb",inheritAttrs:!1,props:q(),slots:Object,setup(a,o){let{slots:u,attrs:l}=o;const{prefixCls:d,direction:p}=x.default("breadcrumb",a),[g,C]=E.default(d),v=(e,r)=>(e=(e||"").replace(/^\//,""),Object.keys(r).forEach(t=>{e=e.replace(`:${t}`,r[t])}),e),S=(e,r,t)=>{const m=[...e],n=v(r||"",t);return n&&m.push(n),m},j=e=>{let{routes:r=[],params:t={},separator:m,itemRender:n=_}=e;const f=[];return r.map(s=>{const b=v(s.path,t);b&&f.push(b);const i=[...f];let h=null;s.children&&s.children.length&&(h=c.createVNode(I.default,{items:s.children.map(y=>({key:y.path||y.breadcrumbName,label:n({route:y,params:t,routes:r,paths:S(i,y.path,t)})}))},null));const B={separator:m};return h&&(B.overlay=h),c.createVNode(O.default,N.default(N.default({},B),{},{key:b||s.breadcrumbName}),{default:()=>[n({route:s,params:t,routes:r,paths:i})]})})};return()=>{var e;let r;const{routes:t,params:m={}}=a,n=R.flattenChildren(R.getPropsSlot(u,a)),f=(e=R.getPropsSlot(u,a,"separator"))!==null&&e!==void 0?e:"/",s=a.itemRender||u.itemRender||_;t&&t.length>0?r=j({routes:t,params:m,separator:f,itemRender:s}):n.length&&(r=n.map((i,h)=>(A.default(typeof i.type=="object"&&(i.type.__ANT_BREADCRUMB_ITEM||i.type.__ANT_BREADCRUMB_SEPARATOR),"Breadcrumb","Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children"),c.cloneVNode(i,{separator:f,key:h}))));const b={[d.value]:!0,[`${d.value}-rtl`]:p.value==="rtl",[`${l.class}`]:!!l.class,[C.value]:!0};return g(c.createVNode("nav",N.default(N.default({},l),{},{class:b}),[c.createVNode("ol",null,[r])]))}}});exports.breadcrumbProps=q;exports.default=V;
;