1import{_ as M}from"./BwPBsSi1.js";import{S as K,_ as I,a as P,n as R,v as L,i as T,h as z}from"./UzqiWE2U.js";import{H as h,o as r,c as b,a as _,D as y,d as A,t as O,A as C,y as s,z as g,w as j,f as w,b as F,aa as B,ac as W,F as U,C as J,a8 as E,r as q,aJ as G,ag as Q,ah as X,K as Y,B as Z}from"./_HPkvqzU.js";import{_ as v}from"./DlAUqK2U.js";import{_ as x}from"./ujMDm_T_.js";import{u as ee,m as ne,a as te}from"./yM8Qgiwq.js";const S={...K,AVATAR:"avatar"},oe=h({name:"bb-label",props:{value:{type:String},size:{type:[String,Number],validator:e=>Object.values(S).includes(isNaN(+e)?e:+e),default:S.FONT}},computed:{labelClasses(){const e=this.$slots.default?.()?.[0].children?.trim().length;return{[`bb-label--${this.size}`]:this.size,"bb-label--full-word":this.value&&this.value.length>1||e>1}}}});function se(e,o,n,t,i,u){return r(),b("span",{class:C([e.labelClasses,"bb-label"]),"data-testid":"bb-label"},[_("span",null,[y(e.$slots,"default",{},()=>[A(O(e.value),1)])])],2)}const V=Object.assign(v(oe,[["render",se]]),{__name:"BbLabel"}),ie=h({name:"bb-menu-item",components:{BbRouterLink:x,BbButton:P,BbIcon:I,BbIconFrame:M,BbLabel:V},inheritAttrs:!1,props:{active:Boolean,hasChildren:Boolean,arrow:{type:String,validator:e=>["hidden","hover","visible"].includes(e),default:"hover"},disabled:Boolean,label:String,tag:String,icon:{type:[Object,String]},type:{type:String,default:"link",validator:e=>["link","button"].includes(e)},to:{type:[String,Object]},target:{type:String,validator:e=>L.includes(e)}},setup(e){const o=s(()=>({"bb-menu-item--active":e.active,"bb-menu-item--disabled":e.disabled,[`bb-menu-item--arrow-${e.arrow}`]:e.arrow})),n=s(()=>e.type==="link"),t=s(()=>n.value?"bb-router-link":"bb-button"),i=s(()=>n.value&&(!e.disabled||!e.hasChildren)?e.to:null),u=s(()=>e.disabled?-1:0),l=s(()=>!n.value&&{noBackground:!0,noPaddings:!0,color:"gray"}),a=s(()=>typeof e.icon=="object"?e.icon.name:e.icon);return{classes:o,typeIsLink:n,computedComponent:t,computedTo:i,computedTabindex:u,computedButtonProps:l,computedIcon:a,notEmpty:R}}}),ae=["data-label"];function le(e,o,n,t,i,u){const l=M,a=V,c=I;return r(),b("li",{role:"none",class:C(["bb-menu-item",e.classes]),"data-testid":"bb-menu-item"},[(r(),g(W(e.computedComponent),B({to:e.computedTo,target:e.target,tabindex:e.computedTabindex,"no-underline":"",class:"bb-menu-item__link","data-testid":"bb-menu-item__link"},{...e.$attrs,...e.computedButtonProps}),{default:j(()=>[e.icon&&e.notEmpty(e.icon)?(r(),g(l,{key:0,icon:e.computedIcon,"icon-color":"gray","background-color":"gray-20","icon-size":"18",size:"small",shape:"circle",class:"bb-menu-item__icon"},null,8,["icon"])):w("",!0),_("span",{"data-label":e.label,class:"bb-menu-item__label","data-testid":"bb-menu-item__label"},O(e.label),9,ae),e.tag?(r(),g(a,{key:1,class:"bb-menu-item__tag",size:18,value:e.tag},null,8,["value"])):w("",!0),F(c,{name:"ui-chevron-right",fill:"gray-70",size:24,class:"bb-menu-item__indicator"})]),_:1},16,["to","target","tabindex"]))],2)}const H=Object.assign(v(ie,[["render",le]]),{__name:"BbMenuItem"}),re=h({name:"bb-navbar-dropdown",components:{BbMenuItem:H},props:{links:Array,currentRoute:String},emits:["redirect"],methods:{linkIsActive(e){return e.active||T(this.currentRoute)&&this.currentRoute===e.to},onMenuItemClick(e){this.$emit("redirect",e)}}}),ue={role:"menu",class:"bb-navbar-dropdown","data-testid":"bb-navbar-dropdown"};function de(e,o,n,t,i,u){const l=H;return r(),b("ul",ue,[(r(!0),b(U,null,J(e.links,(a,c)=>(r(),g(l,B({key:c},{ref_for:!0},a,{active:e.linkIsActive(a),role:"menuitem",class:"bb-navbar-dropdown__link",onClick:$=>e.onMenuItemClick(a)}),null,16,["active","onClick"]))),128))])}const we=Object.assign(v(re,[["render",de]]),{__name:"BbNavbarDropdown"});function ce(e){return{all:e=e||new Map,on:function(o,n){var t=e.get(o);t?t.push(n):e.set(o,[n])},off:function(o,n){var t=e.get(o);t&&(n?t.splice(t.indexOf(n)>>>0,1):e.set(o,[]))},emit:function(o,n){var t=e.get(o);t&&t.slice().map(function(i){i(n)}),(t=e.get("*"))&&t.slice().map(function(i){i(o,n)})}}}const p={SHOW:"show",HIDE:"hide"},m={SHOWN:"bb::dropdown::shown",HIDDEN:"bb::dropdown::hidden",ITEM_CLICKED:"bb::dropdown-item::clicked"},k={SPACE:"Space",ENTER:"Enter"},d={CLICK:"click",HOVER:"hover"},f=ce(),me=h({name:"bb-functional-dropdown",props:{id:[String,Number],menuClasses:[String,Object,Array],customFloatingUiOptions:{type:Object,default:()=>({})},menuPositionRef:null,triggerEvent:{type:String,default:d.CLICK,validator:e=>[d.CLICK,d.HOVER].includes(e)}},emits:[p.SHOW,m.SHOWN,p.HIDE,m.HIDDEN],setup(e){const o=q(!1),n=E("toggle"),t=E("menu");G("bus",f);const i=s(()=>`functional-dropdown-menu-${e.id??z()}`),u=s(()=>ne({placement:"bottom-start",whileElementsMounted:te},e.customFloatingUiOptions)),l=s(()=>e.menuPositionRef?.$el||e.menuPositionRef||a.value),a=s(()=>n.value?.firstElementChild),c=s(()=>e.id?.toString()),{floatingStyles:$,placement:D}=ee(l,t,u.value);return{menuId:i,isMenuVisible:o,toggle:n,menu:t,toggleButton:a,normalizedId:c,bubblePlacement:D,menuPositionStyles:$}},watch:{isMenuVisible(e){e?(this.$emit(p.SHOW),f.emit(m.SHOWN,this)):(this.$emit(p.HIDE),f.emit(m.HIDDEN,this))}},mounted(){typeof document<"u"&&document.documentElement.addEventListener(d.CLICK,this.onClickOutside),f.on(m.SHOWN,this.rootCloseHandler)},deactivated(){this.isMenuVisible=!1},beforeUnmount(){typeof document<"u"&&document.removeEventListener(d.CLICK,this.onClickOutside)},methods:{rootCloseHandler(e){e!==this&&(this.isMenuVisible=!1)},toggleMenu(){this.isMenuVisible=!this.isMenuVisible},onClick(e){e?.stopPropagation(),this.toggleMenu()}
1,onKeydown(e){[k.ENTER,k.SPACE].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),this.toggleMenu())},onEsc(e){this.isMenuVisible&&(this.isMenuVisible=!1,e.stopPropagation(),this.toggleButton?.focus())},onClickOutside(e){this.$el.contains(e.target)||(this.isMenuVisible=!1)},onMouseenter(){this.triggerEvent===d.HOVER&&(this.isMenuVisible=!0)},onMouseleave(e){this.triggerEvent===d.HOVER&&!this.menu.contains(e.relatedTarget)&&!this.toggle.contains(e.relatedTarget)&&(this.isMenuVisible=!1)}}}),be=["id"],pe={ref:"toggle"},fe=["id"];function ge(e,o,n,t,i,u){return r(),b("div",{id:e.normalizedId,class:"bb-functional-dropdown","data-testid":"bb-functional-dropdown"},[_("div",pe,[y(e.$slots,"trigger",{isOpen:e.isMenuVisible,attrs:{"aria-haspopup":!0,"aria-expanded":e.isMenuVisible,"aria-controls":e.menuId,role:"button",tabindex:0},eventHandlers:{onKeydown:e.onKeydown,onClick:e.onClick,onMouseenter:e.onMouseenter,onMouseleave:e.onMouseleave}})],512),Q(_("div",{id:e.menuId,ref:"menu",style:Z(e.menuPositionStyles),class:C([e.menuClasses,"bb-functional-dropdown__menu"]),"data-testid":"bb-functional-dropdown__menu",onKeydown:o[0]||(o[0]=Y((...l)=>e.onEsc&&e.onEsc(...l),["esc"]))},[y(e.$slots,"default",{attrs:{role:"menu"},eventHandlers:{onKeydown:e.onKeydown,onClick:e.onClick,onMouseleave:e.onMouseleave}})],46,fe),[[X,e.isMenuVisible]])],8,be)}const Ee=Object.assign(v(me,[["render",ge]]),{__name:"BbFunctionalDropdown"});export{m as D,Ee as _,H as a,we as b,V as c,p as d,ce as m};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.