UNPKG

siegel

Version:

Web application development ecosystem

1 lines 1.46 kB
import e,{useMemo as t,useState as r,useLayoutEffect as n}from"react";import o from"../_internals/resolve_tag_attributes.js";import l from"../../../common/is/exists/index.js";import i from"../_internals/component.js";import s from"../_internals/ref_apply.js";import m from"./styles.sass";let a="-ui-breadcrumbs";function f(e){e.preventDefault()}let c=e=>{for(let t in e){let{children:r,dynamicCrumb:n}=e[t];if(n)return!0;if(r)return c(r)}},u=i(a,{className:m.root,separator:"",theme:{root:"",crumb:""}},i=>{let m,{dynamicCrumbsID:u=a,className:p,rootTagAttributes:d,config:b}=i,h=t(()=>c(b),[]);if(h){let[e,t]=r({});m=e,n(()=>{let r=function({detail:r}){let{crumbs:n,componentDynamicCrumbsID:o=a}=r;u==o&&t({...e,...n})};return addEventListener(a,r),()=>{removeEventListener(a,r)}},[])}let v={className:p,children:function(t,r,n){let{theme:o,separator:i,config:s,onChange:m}=t,{pathname:a}=location,c="/"==a?[""]:a.split("/");""==c.at(-1)&&(c[c.length-1]="/");let u=[],p=s,d="";for(let t=0,s=c.length;t<s;t++){let s=c[t],a=p[s]||p["*"];if(l(a)){let{crumb:c,dynamicCrumb:b,children:h}=a,v=`${d}${s?"/":""}${s}`;if(l(h)&&(p=h),c||b){let l=b&&n?r[b]||b:"function"==typeof c?c(v,s):c;u.push(e.createElement("a",{key:v,className:o.crumb,href:v||"/",onClick:f,onMouseDown:e=>{m(v,s,e)}},t?e.createElement(e.Fragment,null,i," ",l):l))}d=v}else break}return u}(i,m,h)};return s(v,i),v=o(v,d),e.createElement("div",{...v})});export default u;export{a as componentID};