// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ./componentsUtils ./dom ./floating-ui ./guid ./interactive ./key ./loadable ./observers ./openCloseComponent".split(" "),function(l,d,g,e,v,k,w,m,p,q){function r(){"undefined"!==typeof customElements&&["calcite-dropdown"].forEach(a=>{switch(a){case "calcite-dropdown":customElements.get(a)||customElements.define(a,t)}})}const t=d.proxyCustomElement(class extends d.H{constructor(){super();this.__registerHost();this.__attachShadow();this.calciteDropdownSelect=d.createEvent(this,"calciteDropdownSelect", 6);this.calciteDropdownBeforeClose=d.createEvent(this,"calciteDropdownBeforeClose",6);this.calciteDropdownClose=d.createEvent(this,"calciteDropdownClose",6);this.calciteDropdownBeforeOpen=d.createEvent(this,"calciteDropdownBeforeOpen",6);this.calciteDropdownOpen=d.createEvent(this,"calciteDropdownOpen",6);this.items=[];this.groups=[];this.mutationObserver=p.createObserver("mutation",()=>this.updateItems());this.resizeObserver=p.createObserver("resize",a=>this.resizeObserverCallback(a));this.openTransitionProp= "opacity";this.guid=`calcite-dropdown-${v.guid()}`;this.defaultAssignedElements=[];this.slotChangeHandler=a=>{this.defaultAssignedElements=a.target.assignedElements({flatten:!0});this.updateItems()};this.setFilteredPlacements=()=>{const {el:a,flipPlacements:b}=this;this.filteredFlipPlacements=b?e.filterComputedPlacements(b,a):null};this.updateTriggers=a=>{this.triggers=a.target.assignedElements({flatten:!0});this.reposition(!0)};this.updateItems=()=>{this.items=this.groups.map(a=>Array.from(a?.querySelectorAll("calcite-dropdown-item"))).reduce((a, b)=>[...a,...b],[]);this.updateSelectedItems();this.reposition(!0);this.items.forEach(a=>a.scale=this.scale)};this.updateGroups=a=>{this.groups=a.target.assignedElements({flatten:!0}).filter(b=>b?.matches("calcite-dropdown-group"));this.updateItems()};this.resizeObserverCallback=a=>{a.forEach(b=>{({target:b}=b);b===this.referenceEl?this.setDropdownWidth():b===this.scrollerEl&&this.setMaxScrollerHeight()})};this.setDropdownWidth=()=>{const {referenceEl:a,scrollerEl:b}=this,c=a?.clientWidth;c&&b&&(b.style.minWidth= `${c}px`)};this.setMaxScrollerHeight=()=>{const {scrollerEl:a}=this;if(a){this.reposition(!0);var b=this.getMaxScrollerHeight();a.style.maxHeight=0{this.resizeObserver.observe(a);this.transitionEl=this.scrollerEl=a};this.setReferenceEl=a=>{this.referenceEl=a;e.connectFloatingUI(this,this.referenceEl,this.floatingEl);this.resizeObserver.observe(a)};this.setFloatingEl=a=>{this.floatingEl=a;e.connectFloatingUI(this,this.referenceEl, this.floatingEl)};this.keyDownHandler=a=>{if(a.composedPath().includes(this.referenceEl)){var {defaultPrevented:b,key:c}=a;if(!b){if(this.open){if("Escape"===c){this.closeCalciteDropdown();a.preventDefault();return}if(a.shiftKey&&"Tab"===c){this.closeCalciteDropdown();a.preventDefault();return}}w.isActivationKey(c)?(this.openCalciteDropdown(),a.preventDefault()):"Escape"===c&&(this.closeCalciteDropdown(),a.preventDefault())}}};this.focusOnFirstActiveOrFirstItem=()=>{this.getFocusableElement(this.getTraversableItems().find(a=> a.selected)||this.items[0])};this.toggleOpenEnd=()=>{this.focusOnFirstActiveOrFirstItem();this.el.removeEventListener("calciteDropdownOpen",this.toggleOpenEnd)};this.openCalciteDropdown=()=>{(this.open=!this.open)&&this.el.addEventListener("calciteDropdownOpen",this.toggleOpenEnd)};this.disabled=this.closeOnSelectDisabled=this.open=!1;this.flipPlacements=void 0;this.maxItems=0;this.overlayPositioning="absolute";this.placement=e.defaultMenuPlacement;this.selectedItems=[];this.type="click";this.widthScale= void 0;this.scale="m"}openHandler(){q.onToggleOpenCloseComponent(this);this.disabled?this.open=!1:this.reposition(!0)}handleDisabledChange(a){a||(this.open=!1)}flipPlacementsHandler(){this.setFilteredPlacements();this.reposition(!0)}maxItemsHandler(){this.setMaxScrollerHeight()}overlayPositioningHandler(){this.reposition(!0)}placementHandler(){this.reposition(!0)}handlePropsChange(){this.updateItems()}async setFocus(){await m.componentFocusable(this);this.el.focus()}connectedCallback(){this.mutationObserver?.observe(this.el, {childList:!0,subtree:!0});this.setFilteredPlacements();this.open&&(this.openHandler(),q.onToggleOpenCloseComponent(this));k.connectInteractive(this);this.updateItems();e.connectFloatingUI(this,this.referenceEl,this.floatingEl)}componentWillLoad(){m.setUpLoadableComponent(this)}componentDidLoad(){m.setComponentLoaded(this);e.connectFloatingUI(this,this.referenceEl,this.floatingEl)}componentDidRender(){k.updateHostInteraction(this)}disconnectedCallback(){this.mutationObserver?.disconnect();this.resizeObserver?.disconnect(); k.disconnectInteractive(this);e.disconnectFloatingUI(this,this.referenceEl,this.floatingEl)}render(){const {open:a,guid:b}=this;return d.h(d.Host,{key:"aad82a6a5bce5a29f6c309bb9ff20911b3ec9482"},d.h(k.InteractiveContainer,{key:"b559473528a0142c058c6e6de499e981748e369c",disabled:this.disabled},d.h("div",{key:"089a4a3e39800339c21e50f167c1154dd90f0194",class:"calcite-trigger-container",id:`${b}-menubutton`,onClick:this.openCalciteDropdown,onKeyDown:this.keyDownHandler,ref:this.setReferenceEl},d.h("slot", {key:"1a6ded94e643359a5d9a6168d3abe0db4d96d57e","aria-controls":`${b}-menu`,"aria-expanded":g.toAriaBoolean(a),"aria-haspopup":"menu",name:"trigger",onSlotchange:this.updateTriggers})),d.h("div",{key:"3c8a8fcda5b885baadd1aaaf2b8181b9dfd24ddf","aria-hidden":g.toAriaBoolean(!a),class:"calcite-dropdown-wrapper",ref:this.setFloatingEl},d.h("div",{key:"8c04cadcb38268f20386f9e80f519b99f702054e","aria-labelledby":`${b}-menubutton`,class:{["calcite-dropdown-content"]:!0,[e.FloatingCSS.animation]:!0,[e.FloatingCSS.animationActive]:a}, id:`${b}-menu`,role:"menu",ref:this.setScrollerAndTransitionEl},d.h("slot",{key:"92b1d20e253dc2253aa2f998076bf640e696ff91",onSlotchange:this.updateGroups})))))}async reposition(a=!1){const {floatingEl:b,referenceEl:c,placement:f,overlayPositioning:h,filteredFlipPlacements:n}=this;return e.reposition(this,{floatingEl:b,referenceEl:c,overlayPositioning:h,placement:f,flipPlacements:n,type:"menu"},a)}closeCalciteDropdownOnClick(a){this.disabled||!this.open||a.composedPath().includes(this.el)||this.closeCalciteDropdown(!1)}closeCalciteDropdownOnEvent(a){this.closeCalciteDropdown(); a.stopPropagation()}closeCalciteDropdownOnOpenEvent(a){a.composedPath().includes(this.el)||(this.open=!1)}pointerEnterHandler(){this.disabled||"hover"!==this.type||this.openCalciteDropdown()}pointerLeaveHandler(){this.disabled||"hover"!==this.type||this.closeCalciteDropdown()}getTraversableItems(){return this.items.filter(a=>!a.disabled&&!a.hidden)}calciteInternalDropdownItemKeyEvent(a){const {keyboardEvent:b}=a.detail,c=b.target,f=this.getTraversableItems();switch(b.key){case "Tab":this.open=!1; this.updateTabIndexOfItems(c);break;case "ArrowDown":g.focusElementInGroup(f,c,"next");break;case "ArrowUp":g.focusElementInGroup(f,c,"previous");break;case "Home":g.focusElementInGroup(f,c,"first");break;case "End":g.focusElementInGroup(f,c,"last")}a.stopPropagation()}handleItemSelect(a){this.updateSelectedItems();a.stopPropagation();this.calciteDropdownSelect.emit();this.closeOnSelectDisabled&&"none"!==a.detail.requestedDropdownGroup.selectionMode||this.closeCalciteDropdown();a.stopPropagation()}onBeforeOpen(){this.calciteDropdownBeforeOpen.emit()}onOpen(){this.calciteDropdownOpen.emit()}onBeforeClose(){this.calciteDropdownBeforeClose.emit()}onClose(){this.calciteDropdownClose.emit()}updateSelectedItems(){this.selectedItems= this.items.filter(a=>a.selected)}getMaxScrollerHeight(){const {maxItems:a,items:b}=this;let c=0,f=0,h;this.groups.forEach(n=>{0{0===x&&(isNaN(h)&&(h=u.offsetTop),f+=h);ca?f:0}closeCalciteDropdown(a=!0){this.open=!1;a&&g.focusElement(this.triggers[0])}getFocusableElement(a){a&&g.focusElement(a)}updateTabIndexOfItems(a){this.items.forEach(b=>{b.tabIndex=a!==b?-1:0})}static get delegatesFocus(){return!0}get el(){return this}static get watchers(){return{open:["openHandler"], disabled:["handleDisabledChange"],flipPlacements:["flipPlacementsHandler"],maxItems:["maxItemsHandler"],overlayPositioning:["overlayPositioningHandler"],placement:["placementHandler"],scale:["handlePropsChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:inline-block}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host .calcite-dropdown-wrapper{--calcite-floating-ui-z-index:var(--calcite-z-index-dropdown);display:block;position:absolute;z-index:var(--calcite-floating-ui-z-index);visibility:hidden}.calcite-dropdown-wrapper .calcite-floating-ui-anim{position:relative;transition:var(--calcite-floating-ui-transition);transition-property:transform, visibility, opacity;opacity:0;box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);z-index:var(--calcite-z-index);border-radius:0.25rem}.calcite-dropdown-wrapper[data-placement^\x3dbottom] .calcite-floating-ui-anim{transform:translateY(-5px)}.calcite-dropdown-wrapper[data-placement^\x3dtop] .calcite-floating-ui-anim{transform:translateY(5px)}.calcite-dropdown-wrapper[data-placement^\x3dleft] .calcite-floating-ui-anim{transform:translateX(5px)}.calcite-dropdown-wrapper[data-placement^\x3dright] .calcite-floating-ui-anim{transform:translateX(-5px)}.calcite-dropdown-wrapper[data-placement] .calcite-floating-ui-anim--active{opacity:1;transform:translate(0)}:host([open]) .calcite-dropdown-wrapper{visibility:visible}:host .calcite-dropdown-content{max-block-size:45vh;inline-size:auto;overflow-y:auto;overflow-x:hidden;background-color:var(--calcite-color-foreground-1);inline-size:var(--calcite-dropdown-width)}.calcite-trigger-container{position:relative;display:flex;block-size:100%;flex:1 1 auto;word-wrap:break-word;word-break:break-word}@media (forced-colors: active){:host([open]) .calcite-dropdown-wrapper{border:1px solid canvasText}}:host([width-scale\x3ds]){--calcite-dropdown-width:12rem}:host([width-scale\x3dm]){--calcite-dropdown-width:14rem}:host([width-scale\x3dl]){--calcite-dropdown-width:16rem}:host([hidden]){display:none}[hidden]{display:none}"}}, [17,"calcite-dropdown",{open:[1540],closeOnSelectDisabled:[516,"close-on-select-disabled"],disabled:[516],flipPlacements:[16],maxItems:[514,"max-items"],overlayPositioning:[513,"overlay-positioning"],placement:[513],selectedItems:[1040],type:[513],widthScale:[513,"width-scale"],scale:[513],setFocus:[64],reposition:[64]},[[8,"click","closeCalciteDropdownOnClick"],[0,"calciteInternalDropdownCloseRequest","closeCalciteDropdownOnEvent"],[8,"calciteDropdownOpen","closeCalciteDropdownOnOpenEvent"],[1,"pointerenter", "pointerEnterHandler"],[1,"pointerleave","pointerLeaveHandler"],[0,"calciteInternalDropdownItemKeyEvent","calciteInternalDropdownItemKeyEvent"],[0,"calciteInternalDropdownItemSelect","handleItemSelect"]],{open:["openHandler"],disabled:["handleDisabledChange"],flipPlacements:["flipPlacementsHandler"],maxItems:["maxItemsHandler"],overlayPositioning:["overlayPositioningHandler"],placement:["placementHandler"],scale:["handlePropsChange"]}]);r();l.CalciteDropdown=t;l.defineCustomElement=r;Object.defineProperty(l, Symbol.toStringTag,{value:"Module"})});