UNPKG

@spectrum-web-components/breadcrumbs

Version:

Web component implementation of a Spectrum design Breadcrumbs

23 lines (22 loc) 2.36 kB
"use strict";var u=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var a=(s,i,e,r)=>{for(var t=r>1?void 0:r?p(i,e):i,l=s.length-1,o;l>=0;l--)(o=s[l])&&(t=(r?o(i,e,t):o(t))||t);return r&&t&&u(i,e,t),t};import{html as n}from"@spectrum-web-components/base";import{ifDefined as d}from"@spectrum-web-components/base/src/directives.js";import{property as c}from"@spectrum-web-components/base/src/decorators.js";import{Focusable as h}from"@spectrum-web-components/shared/src/focusable.js";import{LikeAnchor as m}from"@spectrum-web-components/shared/src/like-anchor.js";import f from"@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js";import b from"./breadcrumb-item.css.js";export class BreadcrumbItem extends m(h){constructor(){super(...arguments);this.value=void 0;this.isLastOfType=!1}static get styles(){return[b,f]}get focusElement(){return this.shadowRoot.querySelector("#item-link")}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","listitem")}announceSelected(e){const r={value:e},t=new CustomEvent("breadcrumb-select",{bubbles:!0,composed:!0,detail:r});this.dispatchEvent(t)}handleClick(e){!this.href&&e&&e.preventDefault(),(!this.href||e!=null&&e.defaultPrevented)&&this.value&&!this.isLastOfType&&this.announceSelected(this.value)}renderLink(){return n` <a id="item-link" href=${d(this.isLastOfType?void 0:this.href)} tabindex=${0} aria-current=${d(this.isLastOfType?"page":void 0)} @click=${this.handleClick} > <slot></slot> </a> `}renderSeparator(){return n` <sp-icon-chevron100 id="separator" size="xs" class="spectrum-UIIcon-ChevronRight100" ></sp-icon-chevron100> `}render(){return n` ${this.renderLink()} <slot name="menu"></slot> ${this.renderSeparator()} `}updated(e){e.has("disabled")&&(this.disabled?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled"))}}a([c()],BreadcrumbItem.prototype,"value",2),a([c({type:Boolean})],BreadcrumbItem.prototype,"isLastOfType",2); //# sourceMappingURL=BreadcrumbItem.js.map