UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

3 lines (2 loc) 5.57 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import{b as l}from"./ZAXSD5VD.js";import{a as f}from"./IJ3XVWSG.js";import{a as g}from"./RH6ZIP65.js";import"./YJF4NBEX.js";import"./TQRVWHPS.js";import{a as v}from"./OAOQ5BXS.js";import{G as u,H as i,S as m,g as p,h as n,p as h}from"./C4ZX7VYR.js";var e={container:"container",containerActive:"container--active",contentCenter:"content-center",description:"description",heading:"heading",iconEnd:"icon-end",iconStart:"icon-start",scale:c=>`scale--${c}`},b={contentEnd:"content-end",contentStart:"content-start"},x="autocomplete-item",y={host:c=>`${x}-${c}`},S=p`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}.scale--s{font-size:var(--calcite-font-size-relative-sm);line-height:var(--calcite-font-line-height-sm);--calcite-internal-autocomplete-item-spacing-unit-l: .5rem;--calcite-internal-autocomplete-item-spacing-unit-s: .25rem;--calcite-internal-autocomplete-item-description-font-size: var(--calcite-font-size-xs)}.scale--m{font-size:var(--calcite-font-size-relative-base);line-height:var(--calcite-font-line-height-base);--calcite-internal-autocomplete-item-spacing-unit-l: .75rem;--calcite-internal-autocomplete-item-spacing-unit-s: .375rem;--calcite-internal-autocomplete-item-description-font-size: var(--calcite-font-size-sm)}.scale--l{font-size:var(--calcite-font-size-relative-md);line-height:var(--calcite-font-line-height-md);--calcite-internal-autocomplete-item-spacing-unit-l: 1rem;--calcite-internal-autocomplete-item-spacing-unit-s: var(--calcite-space-sm-plus);--calcite-internal-autocomplete-item-description-font-size: var(--calcite-font-size)}:host{display:flex}.container{position:relative;box-sizing:border-box;display:flex;inline-size:100%;min-inline-size:100%;cursor:pointer;align-items:center;outline-color:transparent;background-color:var(--calcite-autocomplete-background-color, var(--calcite-color-foreground-1));color:var(--calcite-autocomplete-text-color, var(--calcite-color-text-3));gap:var(--calcite-internal-autocomplete-item-spacing-unit-l);padding-inline:var(--calcite-internal-autocomplete-item-spacing-unit-l);padding-block:var(--calcite-internal-autocomplete-item-spacing-unit-s);word-wrap:break-word;word-break:break-word;justify-content:space-around}.description{color:var(--calcite-autocomplete-description-text-color);font-size:var(--calcite-internal-autocomplete-item-description-font-size)}.heading{color:var(--calcite-autocomplete-heading-text-color, var(--calcite-color-text-1))}.heading,.description{line-height:var(--calcite-font-line-height-relative-snug)}:host([selected]) .container{color:var(--calcite-color-text-1);background-color:var(--calcite-color-surface-highlight)}:host([selected]) .container .description{color:var(--calcite-autocomplete-description-text-color, var(--calcite-color-text-2))}:host([selected]) .heading{font-weight:var(--calcite-font-weight-medium)}:host(:hover:not([disabled])) .container{background-color:var(--calcite-autocomplete-background-color, var(--calcite-color-foreground-2))}:host(:hover:not([disabled])) .container .description{color:var(--calcite-autocomplete-description-text-color, var(--calcite-color-text-2))}.container--active{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.content-center{display:flex;flex-direction:column;flex-grow:1;padding-block:0}.text-match{background-color:transparent;color:inherit;font-weight:var(--calcite-font-weight-bold)}:host([hidden]){display:none}[hidden]{display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}`,r=class extends u{constructor(){super(...arguments),this.interactiveContainer=f(this),this.active=!1,this.disabled=!1,this.guid=y.host(v()),this.scale="m",this.selected=!1,this.calciteAutocompleteItemSelect=h({cancelable:!1})}static{this.properties={active:[5,{},{type:Boolean}],description:1,disabled:[7,{},{reflect:!0,type:Boolean}],guid:1,heading:1,iconEnd:[3,{type:String},{reflect:!0}],iconFlipRtl:[3,{},{reflect:!0}],iconStart:[3,{type:String},{reflect:!0}],inputValueMatchPattern:[3,{},{reflect:!0}],label:1,scale:1,selected:[7,{},{reflect:!0,type:Boolean}],value:1}}static{this.styles=S}toggleSelection(){this.selected=!this.selected,this.calciteAutocompleteItemSelect.emit()}handleClick(t){t.preventDefault(),!this.disabled&&this.toggleSelection()}render(){let{active:t,description:a,heading:o,disabled:s,inputValueMatchPattern:d}=this;return this.interactiveContainer({disabled:s,children:n`<div class=${i({[e.container]:!0,[e.containerActive]:t&&!s,[e.scale(this.scale)]:!0})} @click=${this.handleClick}>${this.renderIcon("start")}<slot name=${b.contentStart}></slot><div class=${i(e.contentCenter)}><div class=${i(e.heading)}>${l({text:o,pattern:d})}</div><div class=${i(e.description)}>${l({text:a,pattern:d})}</div></div><slot name=${b.contentEnd}></slot>${this.renderIcon("end")}</div>`})}renderIcon(t){let{iconFlipRtl:a}=this,o=t==="start"?this.iconStart:this.iconEnd;return o?n`<calcite-icon class=${i(t==="start"?e.iconStart:e.iconEnd)} .flipRtl=${a===t||a==="both"} .icon=${o} .scale=${g(this.scale)}></calcite-icon>`:null}};m("calcite-autocomplete-item",r);export{r as AutocompleteItem};