UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

1 lines 30.7 kB
import{r as t,c as i,h as e,F as s,g as a,H as o}from"./p-c5b7f45e.js";import{a as n,S as r,d as c}from"./p-58421494.js";import{i as l,f as p}from"./p-caf80cd7.js";import{n as h,g as m,c as b,C as d}from"./p-6b4b7af1.js";import{g as u}from"./p-cebd4de5.js";import{u as f,c as x,C as g}from"./p-87dd2d7d.js";import{g as v}from"./p-a4e6e35b.js";var w=r?r.prototype:void 0,y=w?w.toString:void 0;function k(t){if("string"==typeof t)return t;if(l(t))return function(t,i){for(var e=-1,s=null==t?0:t.length,a=Array(s);++e<s;)a[e]=i(t[e],e,t);return a}(t,k)+"";if(n(t))return y?y.call(t):"";var i=t+"";return"0"==i&&1/t==-1/0?"-0":i}var D=/[\\^$.*+?()[\]{}|]/g,C=RegExp(D.source);const I="CALCITE-COMBOBOX-ITEM, CALCITE-COMBOBOX-ITEM-GROUP";function z(t){var i,e;const s=null===(i=t.parentElement)||void 0===i?void 0:i.closest(I);return[s,null===(e=null==s?void 0:s.parentElement)||void 0===e?void 0:e.closest(I)].filter((t=>t))}function E(t){var i;return(null===(i=t.ancestors)||void 0===i?void 0:i.filter((t=>"CALCITE-COMBOBOX-ITEM"===t.nodeName)))||[]}function O(t){return h(t.querySelectorAll("calcite-combobox-item")).filter((t=>t.selected)).length>0}function M(t){return document.evaluate("ancestor::calcite-combobox-item | ancestor::calcite-combobox-item-group",t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength}const A=class{constructor(e){t(this,e),this.calciteLookupChange=i(this,"calciteLookupChange",7),this.calciteComboboxFilterChange=i(this,"calciteComboboxFilterChange",7),this.calciteComboboxChipDismiss=i(this,"calciteComboboxChipDismiss",7),this.active=!1,this.disabled=!1,this.maxItems=0,this.overlayPositioning="absolute",this.selectionMode="multi",this.scale="m",this.items=[],this.groupItems=[],this.selectedItems=[],this.visibleItems=[],this.hideList=!this.active,this.activeItemIndex=-1,this.activeChipIndex=-1,this.activeDescendant="",this.text="",this.open=this.active,this.maxScrollerHeight=0,this.textInput=null,this.observer=null,this.guid=v(),this.inputHeight=0,this.setMaxScrollerHeight=()=>{this.active&&(this.maxScrollerHeight=this.getMaxScrollerHeight(this.getCombinedItems()))},this.calciteChipDismissHandler=(t,i)=>{this.active=!1;const e=this.items.find((t=>t===i));e&&this.toggleSelection(e,!1),this.calciteComboboxChipDismiss.emit(t.detail)},this.setFocusClick=()=>{this.setFocus()},this.setInactiveIfNotContained=t=>{const i=t.composedPath();!this.active||i.includes(this.el)||i.includes(this.referenceEl)||(this.allowCustomValues&&this.text&&this.addCustomChip(this.text),"single"===this.selectionMode&&(this.textInput&&(this.textInput.value=""),this.text="",this.filterItems(""),this.updateActiveItemIndex(-1)),this.active=!1)},this.setMenuEl=t=>{this.menuEl=t},this.setListContainerEl=t=>{this.listContainerEl=t},this.setReferenceEl=t=>{this.referenceEl=t},this.inputHandler=t=>{const i=t.target.value;this.text=i,this.filterItems(i),i&&(this.activeChipIndex=-1)},this.filterItems=(()=>{const t=(t,i)=>t&&i.some((({label:i,value:e})=>"CALCITE-COMBOBOX-ITEM-GROUP"===t.tagName?e===t.label||e===t.label:e===t.textLabel||e===t.value||i===t.textLabel||i===t.value));return c((i=>{const e=((t,i)=>{const e=function(t){var i;return(t=null==(i=t)?"":k(i))&&C.test(t)?t.replace(D,"\\$&"):t}(i),s=new RegExp(e,"ig");0===t.length&&console.warn("No data was passed to the filter function.\n The data argument should be an array of objects");const a=(t,i)=>{var e;if(null===(e=t)||void 0===e?void 0:e.constant)return!0;let s=!1;return p(t,(t=>{"function"!=typeof t&&(Array.isArray(t)||"object"==typeof t&&null!==t?a(t,i)&&(s=!0):i.test(t)&&(s=!0))})),s};return t.filter((t=>a(t,s)))})(this.data,i);this.getCombinedItems().forEach((i=>{const s=!t(i,e);i.hidden=s;const[a,o]=i.ancestors;(t(a,e)||t(o,e))&&(i.hidden=!1),s||i.ancestors.forEach((t=>t.hidden=!1))})),this.visibleItems=this.getVisibleItems(),this.calciteComboboxFilterChange.emit({visibleItems:[...this.visibleItems],text:i})}),100)})(),this.internalCalciteLookupChangeEvent=()=>{this.calciteLookupChange.emit(this.selectedItems)},this.emitCalciteLookupChange=c(this.internalCalciteLookupChangeEvent,0),this.updateItems=()=>{this.items=this.getItems(),this.groupItems=this.getGroupItems(),this.data=this.getData(),this.selectedItems=this.getSelectedItems(),this.visibleItems=this.getVisibleItems(),this.needsIcon=this.getNeedsIcon(),"single"===this.selectionMode&&this.selectedItems.length&&(this.selectedItem=this.selectedItems[0]),this.allowCustomValues||this.setMaxScrollerHeight()},this.comboboxFocusHandler=()=>{this.active=!0,this.textInput.focus()},this.comboboxBlurHandler=t=>{this.setInactiveIfNotContained(t)}}activeHandler(t,i){clearTimeout(this.hideListTimeout),i&&!t?(this.open=!1,this.hideListTimeout=window.setTimeout((()=>{this.hideList=!0}),150)):!i&&t&&(this.hideList=!1,requestAnimationFrame((()=>{this.reposition(),this.setMaxScrollerHeight(),this.open=!0}))),this.reposition(),this.setMaxScrollerHeight()}maxItemsHandler(){this.setMaxScrollerHeight()}documentClickHandler(t){this.setInactiveIfNotContained(t)}calciteComboboxItemChangeHandler(t){const i=t.target;this.toggleSelection(i,i.selected)}keydownHandler(t){switch(u(t.key,m(this.el))){case"Tab":this.activeChipIndex=-1,this.activeItemIndex=-1,this.allowCustomValues&&this.text?(this.addCustomChip(this.text,!0),t.preventDefault()):this.active=!1;break;case"ArrowLeft":this.previousChip();break;case"ArrowRight":this.nextChip();break;case"ArrowUp":t.preventDefault(),this.active=!0,this.shiftActiveItemIndex(-1);break;case"ArrowDown":t.preventDefault(),this.active=!0,this.shiftActiveItemIndex(1);break;case"Home":this.active=!0,this.updateActiveItemIndex(0);break;case"End":this.active=!0,this.updateActiveItemIndex(this.visibleItems.length-1);break;case"Escape":this.active=!1;break;case"Enter":this.activeItemIndex>-1?this.toggleSelection(this.visibleItems[this.activeItemIndex]):this.activeChipIndex>-1?this.removeActiveChip():this.allowCustomValues&&this.text&&this.addCustomChip(this.text,!0);break;case"Delete":case"Backspace":this.activeChipIndex>-1?this.removeActiveChip():!this.text&&this.isMulti()&&this.removeLastChip();break;default:this.active||this.setFocus()}}async reposition(){const{popper:t,menuEl:i}=this,e=this.getModifiers();t?f({el:i,modifiers:e,placement:"bottom-leading",popper:t}):this.createPopper()}async setFocus(){var t;this.active=!0,null===(t=this.textInput)||void 0===t||t.focus(),this.activeChipIndex=-1,this.activeItemIndex=-1}connectedCallback(){this.observer=new MutationObserver(this.updateItems),this.createPopper()}componentWillLoad(){this.updateItems()}componentDidLoad(){var t;null===(t=this.observer)||void 0===t||t.observe(this.el,{childList:!0,subtree:!0})}componentDidRender(){this.el.offsetHeight!==this.inputHeight&&(this.reposition(),this.inputHeight=this.el.offsetHeight)}disconnectedCallback(){var t;null===(t=this.observer)||void 0===t||t.disconnect(),this.destroyPopper()}textHandler(){this.updateActiveItemIndex(-1)}getModifiers(){return[{name:"flip",enabled:!0,options:{fallbackPlacements:["top-start","top","top-end","bottom-start","bottom","bottom-end"]}}]}createPopper(){this.destroyPopper();const{menuEl:t,referenceEl:i,overlayPositioning:e}=this,s=this.getModifiers();this.popper=x({el:t,modifiers:s,overlayPositioning:e,placement:"bottom-leading",referenceEl:i})}destroyPopper(){const{popper:t}=this;t&&t.destroy(),this.popper=null}getMaxScrollerHeight(t){const{maxItems:i}=this;let e=0,s=0;return t.forEach((t=>{if(e<i&&i>0){const i=this.calculateSingleItemHeight(t);i>0&&(s+=i,e++)}})),s}calculateSingleItemHeight(t){let i=t.offsetHeight;return t.querySelectorAll(I).forEach((t=>{i-=t.offsetHeight})),i}getCombinedItems(){return[...this.groupItems,...this.items]}toggleSelection(t,i=!t.selected){t&&(t.selected=i,this.isMulti()?(this.updateAncestors(t),this.selectedItems=this.getSelectedItems(),this.emitCalciteLookupChange(),this.resetText(),this.textInput.focus(),this.filterItems("")):(this.items.filter((i=>i!==t)).forEach((t=>t.selected=!1)),this.selectedItem=t,this.textInput.value=t.textLabel,this.active=!1,this.updateActiveItemIndex(-1),this.resetText(),this.filterItems("")))}updateAncestors(t){if("ancestors"!==this.selectionMode)return;const i=E(t),e=function(t){return h(t.querySelectorAll("calcite-combobox-item"))}(t);t.selected?i.forEach((t=>{t.selected=!0})):(e.forEach((t=>t.selected=!1)),[...i].forEach((t=>{O(t)||(t.selected=!1)})))}getVisibleItems(){return this.items.filter((t=>!t.hidden))}getSelectedItems(){return this.items.filter((t=>t.selected&&("ancestors"!==this.selectionMode||!O(t)))).sort(((t,i)=>{const e=this.selectedItems.indexOf(t),s=this.selectedItems.indexOf(i);return e>-1&&s>-1?e-s:s-e}))}getData(){return this.items.map((t=>({constant:t.constant,value:t.value,label:t.textLabel,guid:t.guid})))}getNeedsIcon(){return"single"===this.selectionMode&&this.items.some((t=>t.icon))}resetText(){this.textInput.value="",this.text=""}getItems(){return Array.from(this.el.querySelectorAll("CALCITE-COMBOBOX-ITEM")).filter((t=>!t.disabled))}getGroupItems(){return Array.from(this.el.querySelectorAll("CALCITE-COMBOBOX-ITEM-GROUP"))}addCustomChip(t,i){const e=this.items.find((i=>i.textLabel===t));if(e)this.toggleSelection(e,!0);else{const e=document.createElement("CALCITE-COMBOBOX-ITEM");e.value=t,e.textLabel=t,e.guid=v(),e.selected=!0,this.el.appendChild(e),this.resetText(),i&&this.setFocus(),this.updateItems(),this.filterItems(""),this.emitCalciteLookupChange()}}removeActiveChip(){this.toggleSelection(this.selectedItems[this.activeChipIndex],!1),this.setFocus()}removeLastChip(){this.toggleSelection(this.selectedItems[this.selectedItems.length-1],!1),this.setFocus()}previousChip(){if(this.text)return;const t=this.activeChipIndex;this.activeChipIndex=-1===t?this.selectedItems.length-1:Math.max(t-1,0),this.updateActiveItemIndex(-1),this.focusChip()}nextChip(){if(this.text||-1===this.activeChipIndex)return;const t=this.activeChipIndex+1;t>this.selectedItems.length-1?(this.activeChipIndex=-1,this.setFocus()):(this.activeChipIndex=t,this.focusChip()),this.updateActiveItemIndex(-1)}focusChip(){var t;const i=null===(t=this.selectedItems[this.activeChipIndex])||void 0===t?void 0:t.guid,e=this.referenceEl.querySelector(`#chip-${i}`);null==e||e.setFocus()}shiftActiveItemIndex(t){const i=this.visibleItems.length;this.updateActiveItemIndex((this.activeItemIndex+i+t)%i);const e=this.visibleItems[this.activeItemIndex],s=this.calculateSingleItemHeight(e),{offsetHeight:a,scrollTop:o}=this.listContainerEl;a+o<e.offsetTop+s?this.listContainerEl.scrollTop=e.offsetTop-a+s:e.offsetTop<o&&(this.listContainerEl.scrollTop=e.offsetTop)}updateActiveItemIndex(t){this.activeItemIndex=t;let i=null;this.visibleItems.forEach(((e,s)=>{s===t?(e.active=!0,i=e.guid):e.active=!1})),this.activeDescendant=i,this.activeItemIndex>-1&&(this.activeChipIndex=-1,this.textInput.focus())}isMulti(){return"multi"===this.selectionMode||"ancestors"===this.selectionMode}renderChips(){const{activeChipIndex:t,scale:i,selectionMode:s,el:a}=this,o=m(a);return this.selectedItems.map(((a,n)=>{const r={chip:!0,"chip--active":t===n,"chip--rtl":"rtl"===o},c=[...[...E(a)].reverse(),a].map((t=>t.textLabel)),l="ancestors"!==s?a.textLabel:c.join(" / ");return e("calcite-chip",{"aria-label":l,class:r,dismissLabel:"remove tag",dismissible:!0,icon:a.icon,id:`chip-${a.guid}`,key:a.textLabel,onCalciteChipDismiss:t=>this.calciteChipDismissHandler(t,a),scale:i,title:l,value:a.value},l)}))}renderInput(){const{active:t,disabled:i,placeholder:s,selectionMode:a,needsIcon:o,label:n}=this,r="single"===a,c=!t&&r&&!!this.selectedItem;return e("span",{class:{"input-wrap":!0,"input-wrap--single":r}},c&&e("span",{class:{label:!0,"label--spaced":o},key:"label",onFocus:this.comboboxFocusHandler,tabindex:"0"},this.selectedItem.textLabel),e("input",{"aria-activedescendant":this.activeDescendant,"aria-autocomplete":"list","aria-controls":v,"aria-label":n,class:{input:!0,"input--transparent":this.activeChipIndex>-1,"input--single":r,"input--hidden":c,"input--icon":r&&o},disabled:i,id:`${v}-input`,key:"input",onBlur:this.comboboxBlurHandler,onFocus:this.comboboxFocusHandler,onInput:this.inputHandler,placeholder:s,ref:t=>this.textInput=t,type:"text"}))}renderListBoxOptions(){return this.visibleItems.map((t=>e("li",{"aria-selected":(!!t.selected).toString(),id:t.guid,role:"option",tabindex:"-1"},t.textLabel)))}renderPopperContainer(){const{active:t,maxScrollerHeight:i,setMenuEl:s,setListContainerEl:a,hideList:o,open:n}=this;return e("div",{"aria-hidden":"true",class:{"popper-container":!0,"popper-container--active":n},ref:s},e("div",{class:{"list-container":!0,[g.animation]:!0,[g.animationActive]:t},ref:a,style:{maxHeight:i>0?`${i}px`:""}},e("ul",{class:{list:!0,"list--hide":o}},e("slot",null))))}renderIconStart(){const{selectionMode:t,needsIcon:i,selectedItem:s}=this;return"single"===t&&i&&e("span",{class:"icon-start"},(null==s?void 0:s.icon)&&e("calcite-icon",{class:"selected-icon",icon:null==s?void 0:s.icon,scale:"s"}))}renderIconEnd(){return"single"===this.selectionMode&&e("span",{class:"icon-end"},e("calcite-icon",{icon:"chevron-down",scale:"s"}))}render(){const{guid:t,open:i,label:a}=this,o="single"===this.selectionMode,n=`${t}-label`;return e(s,null,e("div",{"aria-autocomplete":"list","aria-expanded":i.toString(),"aria-haspopup":"listbox","aria-labelledby":n,"aria-owns":t,class:{wrapper:!0,"wrapper--active":i,"wrapper--single":o},onClick:this.setFocusClick,ref:this.setReferenceEl,role:"combobox"},this.renderIconStart(),!o&&this.renderChips(),e("label",{class:"screen-readers-only",htmlFor:`${t}-input`,id:n},a),this.renderInput(),this.renderIconEnd()),e("ul",{"aria-labelledby":n,"aria-multiselectable":"true",class:"screen-readers-only",id:t,role:"listbox",tabIndex:-1},this.renderListBoxOptions()),this.renderPopperContainer())}get el(){return a(this)}static get watchers(){return{active:["activeHandler"],maxItems:["maxItemsHandler"],text:["textHandler"]}}};A.style="@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-popper-transition:150ms ease-in-out}:host([hidden]){display:none}:host{display:block;position:relative}:host([disabled]){pointer-events:none;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;opacity:0.5}:host([scale=s]){font-size:var(--calcite-font-size--2);--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-input-height:1.5rem}:host([scale=m]){font-size:var(--calcite-font-size--1);--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-input-height:2rem}:host([scale=l]){font-size:var(--calcite-font-size-0);--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.75rem;--calcite-combobox-input-height:2.75rem}.wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-1);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;-webkit-box-shadow:inset 0 0 0 1px var(--calcite-ui-border-input);box-shadow:inset 0 0 0 1px var(--calcite-ui-border-input);padding:var(--calcite-combobox-item-spacing-unit-s) var(--calcite-combobox-item-spacing-unit-l) 0 var(--calcite-combobox-item-spacing-unit-l)}.wrapper--active{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.wrapper--single{padding:0 var(--calcite-combobox-item-spacing-unit-l);cursor:pointer;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.input{-ms-flex-positive:1;flex-grow:1;font-family:inherit;padding:0;background-color:transparent;border-style:none;color:var(--calcite-ui-text-1);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:inherit;height:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);min-width:120px;margin-bottom:var(--calcite-combobox-item-spacing-unit-s)}.input:focus{outline:2px solid transparent;outline-offset:2px}.input--transparent{opacity:0}.input--single{margin-bottom:0;margin-top:0;padding:0}.wrapper--active .input-single{cursor:text}.input--hidden{width:0;min-width:0;opacity:0;pointer-events:none}.input--icon{padding:0 var(--calcite-combobox-item-spacing-unit-l)}.input-wrap{display:-ms-flexbox;display:flex}.input-wrap--single{-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden}.label{padding:0;display:block;-ms-flex:1 1 auto;flex:1 1 auto;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;height:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--spaced{padding-top:0;padding-bottom:0;padding-left:var(--calcite-combobox-item-spacing-unit-l);padding-right:var(--calcite-combobox-item-spacing-unit-l)}.icon-end,.icon-start{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:1rem}.popper-container{width:100%;display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0);visibility:hidden;pointer-events:none}.popper-container .calcite-popper-anim{position:relative;z-index:1;-webkit-transition:var(--calcite-popper-transition);transition:var(--calcite-popper-transition);visibility:hidden;-webkit-transition-property:visibility, opacity, -webkit-transform;transition-property:visibility, opacity, -webkit-transform;transition-property:transform, visibility, opacity;transition-property:transform, visibility, opacity, -webkit-transform;opacity:0;-webkit-box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);border-radius:0.25rem}.popper-container[data-popper-placement^=bottom] .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.popper-container[data-popper-placement^=top] .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}.popper-container[data-popper-placement^=left] .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}.popper-container[data-popper-placement^=right] .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}.popper-container[data-popper-placement] .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}.popper-container--active{pointer-events:initial;visibility:visible}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.list-container{overflow-y:auto;max-height:100vh;background-color:var(--calcite-ui-foreground-1);width:var(--calcite-dropdown-width)}.list{display:block;margin:0;padding:0}.list--hide{height:0;overflow:hidden}.chip{margin-right:var(--calcite-combobox-item-spacing-unit-s);margin-bottom:var(--calcite-combobox-item-spacing-unit-s);max-width:100%}.chip--active{background-color:var(--calcite-ui-foreground-3)}.chip:last-child{margin-right:0}.chip--rtl{margin-right:unset;margin-left:var(--calcite-combobox-item-spacing-unit-l)}.chip--rtl:last-child{margin-left:0}.item{display:block}";const T=class{constructor(e){t(this,e),this.calciteComboboxItemChange=i(this,"calciteComboboxItemChange",7),this.disabled=!1,this.selected=!1,this.active=!1,this.guid=v(),this.scale="m",this.itemClickHandler=t=>{t.preventDefault(),this.disabled||(this.selected=!this.selected)}}selectedWatchHandler(){this.calciteComboboxItemChange.emit(this.el)}connectedCallback(){this.ancestors=z(this.el),this.scale=b(this.el,"scale",this.scale)}componentWillLoad(){this.hasDefaultSlot=null!==this.el.querySelector(":not([slot])")}async toggleSelected(t){this.disabled||(this.selected="boolean"==typeof t?t:!this.selected)}renderIcon(t){const{icon:i,disabled:s,selected:a}=this,o="icon--indent";return!t||i||s?e("calcite-icon",{class:{icon:!i,"icon--custom":!!i,"icon--active":i&&a,[o]:!0},icon:i||(s?"circle-disallowed":t?"dot":"check"),scale:"s"}):e("span",{class:{icon:!0,"icon--dot":!0,[o]:!0}})}renderChildren(){return this.hasDefaultSlot?e("ul",null,e("slot",null)):null}render(){const t="single"===b(this.el,"selection-mode","multi"),i=m(this.el),s={[d.rtl]:"rtl"===i,label:!0,"label--selected":this.selected,"label--active":this.active,"label--single":t},a=M(this.el);return e(o,{"aria-hidden":"true"},e("div",{class:`scale--${this.scale}`,style:{"--calcite-combobox-item-spacing-indent-multiplier":`${a}`}},e("li",{class:s,id:this.guid,onClick:this.itemClickHandler},this.renderIcon(t),e("span",{class:"title"},this.textLabel)),this.renderChildren()))}get el(){return a(this)}static get watchers(){return{selected:["selectedWatchHandler"]}}};T.style='@charset "UTF-8";@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-popper-transition:150ms ease-in-out}:host([hidden]){display:none}:host{--calcite-combobox-item-indent-value:calc(\n var(--calcite-combobox-item-spacing-indent) * var(--calcite-combobox-item-spacing-indent-multiplier)\n );--calcite-combobox-item-indent-start:var(--calcite-combobox-item-indent-value);--calcite-combobox-item-indent-end:unset}.scale--s{font-size:var(--calcite-font-size--2);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-item-spacing-indent:0.5rem}.scale--m{font-size:var(--calcite-font-size--1);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-item-spacing-indent:0.75rem}.scale--l{font-size:var(--calcite-font-size-0);line-height:1.25rem;--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.75rem;--calcite-combobox-item-spacing-indent:1rem}.calcite--rtl{--calcite-combobox-item-indent-start:unset;--calcite-combobox-item-indent-end:var(--calcite-combobox-item-indent-value)}:host(:focus){-webkit-box-shadow:none;box-shadow:none}:host,ul{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:0;padding:0;outline:2px solid transparent;outline-offset:2px}.label{display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;min-width:100%;-ms-flex-align:center;align-items:center;color:var(--calcite-ui-text-3);cursor:pointer;position:relative;-webkit-transition-duration:150ms;transition-duration:150ms;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;text-decoration:none;padding:var(--calcite-combobox-item-spacing-unit-l)}:host([disabled]) .label{cursor:default}.label--selected{color:var(--calcite-ui-text-1);font-weight:var(--calcite-font-weight-medium)}.label--active{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.label:hover,.label:active{color:var(--calcite-ui-text-1);background-color:var(--calcite-ui-foreground-2);-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.title{padding:0 var(--calcite-combobox-item-spacing-unit-l)}.icon{display:-ms-inline-flexbox;display:inline-flex;opacity:0;-webkit-transition-duration:150ms;transition-duration:150ms;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);color:var(--calcite-ui-border-1)}.icon--indent{padding-left:var(--calcite-combobox-item-indent-start);padding-right:var(--calcite-combobox-item-indent-end)}.icon--custom{margin-top:-1px;color:var(--calcite-ui-text-3)}.icon--active{color:var(--calcite-ui-text-1)}.icon--dot{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;width:var(--calcite-combobox-item-spacing-unit-l)}.icon--dot:before{content:"•"}.calcite--rtl .icon--dot:before{text-align:right}.label--active .icon{opacity:1}.label--selected .icon{opacity:1;color:var(--calcite-ui-brand)}:host(:hover[disabled]) .icon{opacity:1}';const H=class{constructor(i){t(this,i),this.guid=v(),this.scale="m"}connectedCallback(){this.ancestors=z(this.el),this.scale=b(this.el,"scale",this.scale)}render(){const{el:t,scale:i}=this,s=m(t),a=`label--indent-${M(t)}`;return e("ul",{"aria-labelledby":this.guid,class:{list:!0,[d.rtl]:"rtl"===s,[`scale--${i}`]:!0},role:"group"},e("li",{class:{label:!0,[a]:!0},id:this.guid,role:"presentation"},e("span",{class:"title"},this.label)),e("slot",null))}get el(){return a(this)}};H.style="@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-popper-transition:150ms ease-in-out}:host([hidden]){display:none}:host{--calcite-combobox-item-indent-start-1:var(--calcite-combobox-item-spacing-indent-1);--calcite-combobox-item-indent-end-1:unset;--calcite-combobox-item-indent-start-2:var(--calcite-combobox-item-spacing-indent-2);--calcite-combobox-item-indent-end-2:unset}.scale--s{font-size:var(--calcite-font-size--2);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-item-spacing-indent-1:0.5rem;--calcite-combobox-item-spacing-indent-2:1rem}.scale--m{font-size:var(--calcite-font-size--1);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-item-spacing-indent-1:0.75rem;--calcite-combobox-item-spacing-indent-2:1.5rem}.scale--l{font-size:var(--calcite-font-size-0);line-height:1.25rem;--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.75rem;--calcite-combobox-item-spacing-indent-1:1rem;--calcite-combobox-item-spacing-indent-2:2rem}.calcite--rtl{--calcite-combobox-item-indent-start-1:unset;--calcite-combobox-item-indent-end-1:var(--calcite-combobox-item-spacing-indent-1);--calcite-combobox-item-indent-start-2:unset;--calcite-combobox-item-indent-end-2:var(--calcite-combobox-item-spacing-indent-2)}:host,.list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:0;padding:0;outline:2px solid transparent;outline-offset:2px}.label{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;min-width:0;color:var(--calcite-ui-text-3);display:-ms-flexbox;display:flex}.label--indent-1{padding-left:var(--calcite-combobox-item-indent-start-1);padding-right:var(--calcite-combobox-item-indent-end-1)}.label--indent-2{padding-left:var(--calcite-combobox-item-indent-start-2);padding-right:var(--calcite-combobox-item-indent-end-2)}.title{border:0 solid;display:block;-ms-flex:1 1 0%;flex:1 1 0%;border-bottom-color:var(--calcite-ui-border-3);border-bottom-width:1px;color:var(--calcite-ui-text-2);font-weight:var(--calcite-font-weight-bold);word-wrap:break-word;word-break:break-word;padding:var(--calcite-combobox-item-spacing-unit-l) 0;margin-left:var(--calcite-combobox-item-spacing-unit-s);margin-right:var(--calcite-combobox-item-spacing-unit-s)}";export{A as calcite_combobox,T as calcite_combobox_item,H as calcite_combobox_item_group}