51 lines
1.2 KiB
Handlebars
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>
|
|
|