define("metaserver/static/js/prod_assets_web_modules/dig-components/breadcrumb",["exports","../classnames","react","./icons","./typography","./hooks","./buttons","./menu","./icons/src","focus-visible","../resize-observer-polyfill","./progress_indicators","../react-transition-group/CSSTransition","../common/extends","../common/Transition","react-dom","./motion","./overlay","../@popperjs/core","./layer","./click_outside"],(function(e,r,n,a,t,i,o,l,s,c,d,m,u,g,v,f,h,b,p,E,w){"use strict";var D=n.createContext({size:"standard",inverse:!1,updateSegment:()=>{}}),k=n.createContext(0),C={small:24,standard:32},B={small:18.875,standard:20.016},y="digBreadcrumbLink--hidden",I=e=>e.every(e=>!e.linkProps.children||0!==e.width),N=e=>e.current?e.current.getBoundingClientRect().width:0,O=(e,r,n)=>{let a=0;return I(e)?(e.forEach(e=>{a+=e.width}),0===a?0:(a+=(e.length-1)*B[n],r.length>0&&(a+=C[n]+B[n]),a)):0},L=e=>{const r=[];return n.Children.forEach(e,e=>{n.isValidElement(e)&&r.push({item:e,width:0,linkProps:{}})}),r},R=({availableWidth:e,breadcrumbSegments:r,size:n,isRootOverflow:a,alwaysShowRoot:t})=>{let i=r,o=[],l=O(i,o,n);if(0===l)return{inline:[],overflow:[]};if(i.length>4){const e=a?0:1,r=[...i.slice(e,i.length-4+e)];i=[...i.slice(0,e),...i.slice(i.length-4+e)],o=o.concat(r),l=O(i,o,n)}for(;;)if(e>l){if(4===i.length||0===o.length)break;let r=o.length-1;1!==i.length||a||(r=0);const t=o[r];if(1===o.length){if(t.width>e-(l-C[n]))break}else if(t.width+B[n]>e-l)break;i=1===i.length||a?[t,...i]:[...i.slice(0,1),t,...i.slice(1)],o=[...o.slice(0,r),...o.slice(r+1)],l=O(i,o,n)}else{const e=!a&&t?2:1;if(i.length<=e)break;let r=1;(2===i.length||a)&&(r=0);const s=i[r];i=[...i.slice(0,r),...i.slice(r+1)],o=0!==r||a?o.concat(s):[s].concat(o),l=O(i,o,n)}return{inline:i,overflow:o}},S=n.forwardRef(({id:e,className:i,children:o,withLeftIcon:l,withMenuItemIcon:s,isCurrentPath:c=!1,href:d,onClick:m,onDrop:u,onDragEnter:g,onDragOver:v,onDragLeave:f,_originalId:h="",...b},p)=>{const{size:E,updateSegment:w,inverse:C}=n.useContext(D),B=n.useContext(k),I=c?"span":"a",O=c?void 0:0,L="standard"===E?t.Title:t.Text,R=n.useRef(null),S=b["aria-label"],[z,M]=n.useState(!1),T=r("dig-Breadcrumb-link",{"dig-Breadcrumb-link--current":c},{"dig-Breadcrumb-link--dragged-over":z&&!c},{"dig-Breadcrumb-link--inverse":C},i);n.useEffect(()=>{e&&e.startsWith(y)&&w(B,{id:e,children:o,withLeftIcon:l,withMenuItemIcon:s,href:d,onClick:m,onDrop:u,onDragEnter:g,onDragOver:v,onDragLeave:f,"aria-label":S,_originalId:h},N(R))},[e,o,l,s,d,m,u,g,v,f,B,w,R,S,h]);const x={onClick:m};if(!c)switch(typeof d){case"string":x.href=d;break;case"function":x.href="#",x.onClick=e=>{e.preventDefault(),d(e),m&&m(e)}}const P=n.useCallback(e=>{M(!0),v&&v(e)},[v]),_=n.useCallback(e=>{M(!0),g&&g(e)},[g]),H=n.useCallback(e=>{M(!1),f&&f(e)},[f]),W=n.useCallback(e=>{M(!1),u&&u(e)},[u]);return n.createElement(I,{id:e,className:T,tabIndex:O,ref:p,"aria-current":c?"page":void 0,...x,onDrop:W,onDragEnter:_,onDragOver:P,onDragLeave:H,...b},n.createElement(L,{size:"small",className:"dig-Breadcrumb-link-content",color:c?"standard":"faint",inverse:C},n.createElement("span",{ref:R,className:"dig-Breadcrumb-link-inner"},l&&n.createElement(a.UIIcon,{className:"dig-Breadcrumb-link-icon",src:l,size:E}),n.createElement("span",{className:"dig-Breadcrumb-link-text"},o))))});S.displayName="Link";var z=({className:e})=>{const{size:a,inverse:i}=n.useContext(D),o=r("dig-Breadcrumb-divider",e);return n.createElement(t.Text,{className:o,size:a,inverse:i,color:"faint","aria-hidden":"true"},"/")};z.displayName="BreadcrumbDivider";var M=({className:e,onDragOver:a,onDragEnter:t,onDragLeave:i,onDrop:o,...s})=>{const[c,d]=n.useState(!1),m=r({"dig-Breadcrumb-overlfow-item--dragged-over":c},e),u=n.useCallback(e=>{d(!0),a&&a(e)},[a]),g=n.useCallback(e=>{d(!0),t&&t(e)},[t]),v=n.useCallback(e=>{d(!1),i&&i(e)},[i]),f=n.useCallback(e=>{d(!1),o&&o(e)},[o]);return n.createElement(l.Menu.ActionItem,{tagName:"a",className:m,"aria-label":s["aria-label"],onDrop:f,onDragOver:u,onDragEnter:g,onDragLeave:v,role:"menuitem",...s})};M.displayName="BreadcrumbOverflowMenuItem";var T=({className:e,overflowItemsProps:t,overflowEventHandlers:i,...c})=>{const{size:d,inverse:m}=n.useContext(D),u=r("dig-Breadcrumb-overflow",{"dig-Breadcrumb-overflow--inverse":m},e),g=n.useCallback((e,r)=>i?{onDragOver:i.onDragOverTrigger?i.onDragOverTrigger(e):void 0,onDragEnter:i.onDragEnterTrigger?i.onDragEnterTrigger(e):void 0,onDragLeave:i.onDragLeaveTrigger?i.onDragLeaveTrigger(r):void 0}:{},[i]),v=n.useCallback((e,r)=>i?{onDragOver:i.onDragOverContent?i.onDragOverContent(e):void 0,onDragEnter:i.onDragEnterContent?i.onDragEnterContent(e):void 0,onDragLeave:i.onDragLeaveContent?i.onDragLeaveContent(r):void 0}:{},[i]);return n.createElement(l.Menu.Wrapper,{className:u,onSelection:(e,r)=>{"function"==typeof e&&e(r)},inverse:m,shouldPropagateClickOutsideMouseEvents:!0},({getContentProps:e,getTriggerProps:r,openMenu:i,closeMenu:u})=>n.createElement(n.Fragment,null,n.createElement(o.IconButton,{variant:"transparent",className:"dig-Breadcrumb-overflow-button","data-testid":"digBreadcrumbOverflowButton",size:"small",inverse:m,...r(),...g(i,u),...c},n.createElement(a.UIIcon,{src:s.MoreHorizontalLine,size:d})),n.createElement(l.Menu.Content,{...e(),...v(i,u)},n.createElement(l.Menu.Segment,null,t.map((e,r)=>{const{id:t,children:i,withMenuItemIcon:o,href:l,onClick:s,onDragOver:c,onDragEnter:d,onDragLeave:m,onDrop:u}=e;return e&&n.createElement(M,{id:t,"aria-label":e["aria-label"],value:l,href:"string"==typeof l?l:void 0,onClick:s,onDragOver:c,onDragEnter:d,onDragLeave:m,onDrop:u,children:i,withLeftAccessory:o?n.createElement(a.UIIcon,{src:o}):void 0,key:`overflow-item-${r}`})})))))};T.displayName="BreadcrumbOverflow";var x=({segments:e,isRootOverflow:r,overflowEventHandlers:a})=>{const t=[];if(e.inline.forEach((a,i)=>{t.push(a.item),i!==e.inline.length-1&&(e.overflow.length>0&&!r&&0===i?t.push(n.createElement(z,{key:`divider-${i}`,className:"dig-Breadcrumb-divider--overflowLeft"})):t.push(n.createElement(z,{key:`divider-${i}`})))}),e.overflow.length>0){let i=2;(1===e.inline.length||r)&&(i=0),t.splice(i,0,n.createElement(z,{key:"divider--1",className:"dig-Breadcrumb-divider--overflowRight"})),t.splice(i,0,n.createElement(T,{overflowItemsProps:e.overflow.map(e=>e.linkProps),overflowEventHandlers:a,key:"overflow"}))}return n.createElement(n.Fragment,null,t)};x.displayName="BreadcrumbRenderer";var P=n.forwardRef(({className:e,children:a,size:o="standard",overflowEventHandlers:l,isRootOverflow:s=!1,alwaysShowRoot:c=!1,inverse:d=!1,...m},u)=>{const{nodeRef:g,observerEntry:v}=i.useResizeObserver(),[f,h]=n.useState(!0),[b,p]=n.useState(!0),[E,w]=n.useState([]),C=n.useRef(null),B=r("dig-Breadcrumb",{"dig-Breadcrumb--small":"small"===o},{"dig-Breadcrumb--inverse":d},e),I={size:o,inverse:d,updateSegment:n.useCallback((e,r,n)=>{w(a=>a.map((a,t)=>t===e?{...a,width:Math.ceil(n),linkProps:{...r,id:r._originalId,_originalId:void 0}}:a))},[])},N="standard"===o?t.Title:t.Text;return n.useImperativeHandle(u,()=>{return e=C,{getBoundingClientRect:()=>e.current?e.current.getBoundingClientRect():new DOMRect};var e}),n.useEffect(()=>{document.fonts?document.fonts.ready.then(()=>{p(!1)}):p(!1)},[]),n.useEffect(()=>{h(!0)},[a]),n.useEffect(()=>{f&&(w(L(a)),h(!1))},[a,f]),n.createElement(D.Provider,{value:I},!f&&n.createElement(N,{size:"small",className:"dig-Breadcrumb--widthCalcUtil","aria-hidden":"true"},n.Children.map(a,(e,r)=>{if(n.isValidElement(e))return n.createElement(k.Provider,{value:r,key:`hidden-link-${r}`},n.cloneElement(e,{id:`${y}-${r}`,_originalId:e.props.id}))})),n.createElement("nav",{className:B,...m,ref:g},n.createElement("div",{className:"dig-Breadcrumb-inner",ref:C},!b&&n.createElement(x,{segments:R({availableWidth:v?v.contentRect.width:0,breadcrumbSegments:E,size:o,isRootOverflow:s,alwaysShowRoot:c}),isRootOverflow:s,overflowEventHandlers:l}))))});P.Link=S,P.displayName="Breadcrumb",e.Breadcrumb=P,e.Link=S,e.buildBreadcrumb=R,e.calcBreadcrumbWidth=O,e.calcItemWidth=N,e.initSegments=L,e.isAllUpdated=I,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=pkg-dig-l.min.js-vflWTqOCV.map