open-consul/ui/packages/consul-ui/app/components/popover-menu/menu-item/index.hbs

51 lines
1.2 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: MPL-2.0
}}
{{yield}}
<li role="none" ...attributes>
{{#if hasConfirmation}}
<label for={{concat menu.confirm guid}} role="menuitem" tabindex="-1" onkeypress={{menu.keypressClick}}>
<YieldSlot @name="label">{{yield}}</YieldSlot>
</label>
<div role="menu">
<YieldSlot @name="confirmation" @params={{
block-params (component 'confirmation-alert'
onclick=(queue (action menu.clickTrigger) (action onclick))
name=(concat menu.confirm guid)
)
}}>{{yield}}</YieldSlot>
</div>
{{else if href}}
{{#let (string-includes href '://') as |external|}}
<a
role="menuitem" tabindex="-1"
onclick={{action menu.clickTrigger}}
href={{href}}
target={{if external '_blank'}}
rel={{if external 'noopener noreferrer'}}
>
<YieldSlot @name="label">
{{yield}}
</YieldSlot>
</a>
{{/let}}
{{else}}
<button
type="button"
role="menuitem"
aria-selected={{if selected 'true'}}
tabindex="-1"
onclick={{queue
(action (or this.onclick (noop)))
(action (if this.close menu.clickTrigger (noop)))
}}>
<YieldSlot @name="label">
{{yield}}
</YieldSlot>
</button>
{{/if}}
</li>