UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

1 lines 27.7 kB
var __awaiter=this&&this.__awaiter||function(t,e,i,r){function o(t){return t instanceof i?t:new i((function(e){e(t)}))}return new(i||(i=Promise))((function(i,n){function a(t){try{s(r.next(t))}catch(e){n(e)}}function c(t){try{s(r["throw"](t))}catch(e){n(e)}}function s(t){t.done?i(t.value):o(t.value).then(a,c)}s((r=r.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var i={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},r,o,n,a;return a={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(t){return function(e){return s([t,e])}}function s(a){if(r)throw new TypeError("Generator is already executing.");while(i)try{if(r=1,o&&(n=a[0]&2?o["return"]:a[0]?o["throw"]||((n=o["return"])&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;if(o=0,n)a=[a[0]&2,n.value];switch(a[0]){case 0:case 1:n=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;o=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(n=i.trys,n=n.length>0&&n[n.length-1])&&(a[0]===6||a[0]===2)){i=0;continue}if(a[0]===3&&(!n||a[1]>n[0]&&a[1]<n[3])){i.label=a[1];break}if(a[0]===6&&i.label<n[1]){i.label=n[1];n=a;break}if(n&&i.label<n[2]){i.label=n[2];i.ops.push(a);break}if(n[2])i.ops.pop();i.trys.pop();continue}a=e.call(t,i)}catch(c){a=[6,c];o=0}finally{r=n=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,H as Host,g as getElement}from"./index-aa8afca4.js";import{g as getKey}from"./key-ec82f942.js";import{g as getElementDir,C as CSS_UTILITY,f as focusElement,c as getElementProp,d as getAttributes}from"./dom-466af3c7.js";import{C as CSS$2,u as updatePopper,c as createPopper}from"./popper-d89fb7b0.js";import"./guid-09142681.js";var DefaultDropdownPlacement="bottom-leading";var calciteDropdownCss="@-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{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-positive:1;flex-grow:1}:host([disabled]){pointer-events:none;opacity:var(--calcite-ui-opacity-disabled)}:host .calcite-dropdown-wrapper{display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0);visibility:hidden;pointer-events:none}.calcite-dropdown-wrapper .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}.calcite-dropdown-wrapper[data-popper-placement^=bottom] .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.calcite-dropdown-wrapper[data-popper-placement^=top] .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}.calcite-dropdown-wrapper[data-popper-placement^=left] .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}.calcite-dropdown-wrapper[data-popper-placement^=right] .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}.calcite-dropdown-wrapper[data-popper-placement] .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}:host([active]) .calcite-dropdown-wrapper{pointer-events:initial;visibility:visible}:host .calcite-dropdown-content{background-color:var(--calcite-ui-foreground-1);overflow:hidden;overflow-y:auto;width:auto;max-height:90vh;width:var(--calcite-dropdown-width)}.calcite-dropdown-trigger-container{position:relative;width:100%}:host([width=s]){--calcite-dropdown-width:12rem}:host([width=m]){--calcite-dropdown-width:14rem}:host([width=l]){--calcite-dropdown-width:16rem}:host([scale=s]){--calcite-dropdown-group-padding:0.5rem 0;--calcite-dropdown-item-padding:0.25rem 0.75rem 0.25rem 1.5rem}:host([scale=m]){--calcite-dropdown-group-padding:0.5rem 0;--calcite-dropdown-item-padding:0.5rem 0.75rem 0.5rem 1.5rem}:host([scale=l]){--calcite-dropdown-group-padding:0.75rem 0;--calcite-dropdown-item-padding:0.5rem 0.75rem 0.5rem 1.5rem}:host([scale=s]) .calcite--rtl{--calcite-dropdown-item-padding:0.25rem 1.5rem 0.25rem 0.75rem}:host([scale=m]) .calcite--rtl{--calcite-dropdown-item-padding:0.5rem 1.5rem 0.5rem 0.75rem}:host([scale=l]) .calcite--rtl{--calcite-dropdown-item-padding:0.5rem 1.5rem 0.5rem 0.75rem}";var CalciteDropdown=function(){function t(t){var e=this;registerInstance(this,t);this.calciteDropdownSelect=createEvent(this,"calciteDropdownSelect",7);this.calciteDropdownOpen=createEvent(this,"calciteDropdownOpen",7);this.calciteDropdownClose=createEvent(this,"calciteDropdownClose",7);this.active=false;this.disableCloseOnSelect=false;this.maxItems=0;this.overlayPositioning="absolute";this.placement=DefaultDropdownPlacement;this.scale="m";this.selectedItems=[];this.type="click";this.width="m";this.items=[];this.maxScrollerHeight=0;this.setReferenceEl=function(t){e.referenceEl=t};this.setMenuEl=function(t){e.menuEl=t};this.openDropdown=function(t){var i=t.target;if(e.triggers.includes(i)||e.triggers.some((function(t){return t.contains(i)}))){t.preventDefault();t.stopPropagation();e.openCalciteDropdown()}};this.keyDownHandler=function(t){var i=t.target;var r=getKey(t.key);if(e.triggers.includes(i)||e.triggers.some((function(t){return t.contains(i)}))){if(i.nodeName!=="BUTTON"&&i.nodeName!=="CALCITE-BUTTON"){switch(r){case" ":case"Enter":e.openCalciteDropdown();break;case"Escape":e.closeCalciteDropdown();break}}else if(e.active&&(r==="Escape"||t.shiftKey&&r==="Tab")){e.closeCalciteDropdown()}}}}t.prototype.activeHandler=function(){this.reposition()};t.prototype.placementHandler=function(){this.reposition()};t.prototype.connectedCallback=function(){this.createPopper()};t.prototype.componentWillLoad=function(){this.updateSelectedItems()};t.prototype.componentDidLoad=function(){this.triggers=Array.from(this.el.querySelectorAll("[slot=dropdown-trigger]"));var t=Array.from(this.el.querySelectorAll("calcite-dropdown-group"));this.maxScrollerHeight=this.getMaxScrollerHeight(t);this.items=Array.from(this.el.querySelectorAll("calcite-dropdown-item"))};t.prototype.disconnectedCallback=function(){this.destroyPopper()};t.prototype.render=function(){var t,e;var i=this,r=i.active,o=i.maxScrollerHeight;var n=getElementDir(this.el);return h(Host,{tabIndex:this.disabled?-1:null},h("div",{class:(t={},t["calcite-dropdown-trigger-container"]=true,t[CSS_UTILITY.rtl]=n==="rtl",t),onClick:this.openDropdown,onKeyDown:this.keyDownHandler,ref:this.setReferenceEl},h("slot",{"aria-expanded":r.toString(),"aria-haspopup":"true",name:"dropdown-trigger"})),h("div",{"aria-hidden":(!r).toString(),class:"calcite-dropdown-wrapper",ref:this.setMenuEl},h("div",{class:(e={},e["calcite-dropdown-content"]=true,e[CSS$2.animation]=true,e[CSS$2.animationActive]=r,e),style:{maxHeight:o>0?o+"px":""}},h("slot",null))))};t.prototype.reposition=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,i,r,o;return __generator(this,(function(n){t=this,e=t.popper,i=t.menuEl,r=t.placement;o=this.getModifiers();e?updatePopper({el:i,modifiers:o,placement:r,popper:e}):this.createPopper();return[2]}))}))};t.prototype.closeCalciteDropdownOnClick=function(t){var e=t.target;if(this.active&&e.nodeName!=="CALCITE-DROPDOWN-ITEM"&&e.nodeName!=="CALCITE-DROPDOWN-GROUP"){this.closeCalciteDropdown()}};t.prototype.closeCalciteDropdownOnEvent=function(){this.closeCalciteDropdown()};t.prototype.closeCalciteDropdownOnOpenEvent=function(t){if(t.target!==this.el){this.active=false}};t.prototype.mouseEnterHandler=function(){if(this.type==="hover"){this.openCalciteDropdown()}};t.prototype.mouseLeaveHandler=function(){if(this.type==="hover"){this.closeCalciteDropdown()}};t.prototype.calciteDropdownItemKeyEvent=function(t){var e=t.detail.keyboardEvent;var i=e.target;var r=i.nodeName!=="A"?i:i.parentNode;var o=this.itemIndex(r)===0;var n=this.itemIndex(r)===this.items.length-1;switch(getKey(e.key)){case"Tab":if(n&&!e.shiftKey){this.closeCalciteDropdown()}else if(o&&e.shiftKey){this.closeCalciteDropdown()}else if(e.shiftKey){this.focusPrevItem(r)}else{this.focusNextItem(r)}break;case"ArrowDown":this.focusNextItem(r);break;case"ArrowUp":this.focusPrevItem(r);break;case"Home":this.focusFirstItem();break;case"End":this.focusLastItem();break}t.stopPropagation()};t.prototype.handleItemSelect=function(t){this.updateSelectedItems();t.stopPropagation();this.calciteDropdownSelect.emit();if(!this.disableCloseOnSelect||t.detail.requestedDropdownGroup.selectionMode==="none"){this.closeCalciteDropdown()}};t.prototype.getModifiers=function(){var t={name:"flip",enabled:true};t.options={fallbackPlacements:["top-start","top","top-end","bottom-start","bottom","bottom-end"]};return[t]};t.prototype.createPopper=function(){this.destroyPopper();var t=this,e=t.menuEl,i=t.referenceEl,r=t.placement,o=t.overlayPositioning;var n=this.getModifiers();this.popper=createPopper({el:e,modifiers:n,overlayPositioning:o,placement:r,referenceEl:i})};t.prototype.destroyPopper=function(){var t=this.popper;if(t){t.destroy()}this.popper=null};t.prototype.updateSelectedItems=function(){var t=Array.from(this.el.querySelectorAll("calcite-dropdown-item"));this.selectedItems=t.filter((function(t){return t.active}))};t.prototype.getMaxScrollerHeight=function(t){var e=this.maxItems;var i=0;var r=0;var o;t.forEach((function(t){if(e>0&&i<e){Array.from(t.children).forEach((function(t,n){if(n===0){if(isNaN(o)){o=t.offsetTop}r+=o}if(i<e){r+=t.offsetHeight;i+=1}}))}}));return r};t.prototype.closeCalciteDropdown=function(){this.calciteDropdownClose.emit();this.active=false;focusElement(this.triggers[0])};t.prototype.focusOnFirstActiveOrFirstItem=function(){this.getFocusableElement(this.items.find((function(t){return t.active}))||this.items[0])};t.prototype.focusFirstItem=function(){var t=this.items[0];this.getFocusableElement(t)};t.prototype.focusLastItem=function(){var t=this.items[this.items.length-1];this.getFocusableElement(t)};t.prototype.focusNextItem=function(t){var e=this.itemIndex(t);var i=this.items[e+1]||this.items[0];this.getFocusableElement(i)};t.prototype.focusPrevItem=function(t){var e=this.itemIndex(t);var i=this.items[e-1]||this.items[this.items.length-1];this.getFocusableElement(i)};t.prototype.itemIndex=function(t){return this.items.indexOf(t)};t.prototype.getFocusableElement=function(t){if(!t){return}var e=t.attributes.isLink?t.shadowRoot.querySelector("a"):t;focusElement(e)};t.prototype.openCalciteDropdown=function(){var t=this;this.calciteDropdownOpen.emit();this.active=!this.active;var e=50;clearTimeout(this.dropdownFocusTimeout);if(this.active){this.dropdownFocusTimeout=window.setTimeout((function(){return t.focusOnFirstActiveOrFirstItem()}),e)}else{this.calciteDropdownClose.emit()}};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{active:["activeHandler"],placement:["placementHandler"]}},enumerable:false,configurable:true});return t}();CalciteDropdown.style=calciteDropdownCss;var CSS$1={containerSmall:"container--s",containerMedium:"container--m",containerLarge:"container--l"};var calciteDropdownGroupCss="@-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}.container--s{font-size:var(--calcite-font-size--2);line-height:1rem}.container--s .dropdown-title{padding:0.5rem}.container--m{font-size:var(--calcite-font-size--1);line-height:1rem}.container--m .dropdown-title{padding:0.75rem}.container--l{font-size:var(--calcite-font-size-1);line-height:1.5rem}.container--l .dropdown-title{padding:1rem}.dropdown-title{display:block;border-width:0;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);color:var(--calcite-ui-text-2);font-weight:var(--calcite-font-weight-bold);word-wrap:break-word;overflow-wrap:break-word;cursor:default;margin-bottom:-1px}.dropdown-separator{display:block;height:1px;background-color:var(--calcite-ui-border-3)}";var CalciteDropdownGroup=function(){function t(t){registerInstance(this,t);this.calciteDropdownItemChange=createEvent(this,"calciteDropdownItemChange",7);this.selectionMode="single"}t.prototype.componentWillLoad=function(){this.groupPosition=this.getGroupPosition()};t.prototype.render=function(){var t;var e=getElementDir(this.el);var i=this.scale||getElementProp(this.el,"scale","m");var r=this.groupTitle?h("span",{"aria-hidden":"true",class:"dropdown-title"},this.groupTitle):null;var o=this.groupPosition>0?h("div",{class:"dropdown-separator",role:"separator"}):null;return h(Host,{role:"menu"},h("div",{class:(t={container:true},t[CSS$1.containerSmall]=i==="s",t[CSS$1.containerMedium]=i==="m",t[CSS$1.containerLarge]=i==="l",t),dir:e,title:this.groupTitle},o,r,h("slot",null)))};t.prototype.updateActiveItemOnChange=function(t){this.requestedDropdownGroup=t.detail.requestedDropdownGroup;this.requestedDropdownItem=t.detail.requestedDropdownItem;this.calciteDropdownItemChange.emit({requestedDropdownGroup:this.requestedDropdownGroup,requestedDropdownItem:this.requestedDropdownItem})};t.prototype.getGroupPosition=function(){return Array.prototype.indexOf.call(this.el.parentElement.querySelectorAll("calcite-dropdown-group"),this.el)};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();CalciteDropdownGroup.style=calciteDropdownGroupCss;var CSS={containerLink:"container--link",containerSmall:"container--s",containerMedium:"container--m",containerLarge:"container--l",containerMulti:"container--multi-selection",containerSingle:"container--single-selection",containerNone:"container--none-selection"};var calciteDropdownItemCss='@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}.container--s{font-size:var(--calcite-font-size--2);line-height:1rem;padding-right:0.5rem;padding-left:1.5rem;padding-top:0.25rem;padding-bottom:0.25rem}.container--m{font-size:var(--calcite-font-size--1);line-height:1rem;padding-right:0.75rem;padding-left:2rem;padding-top:0.5rem;padding-bottom:0.5rem}.container--l{font-size:var(--calcite-font-size-1);line-height:1.5rem;padding-right:1rem;padding-left:2.5rem;padding-top:0.75rem;padding-bottom:0.75rem}.container--s.calcite--rtl{padding-right:1.5rem;padding-left:0.5rem}.container--m.calcite--rtl{padding-right:2rem;padding-left:0.75rem}.container--l.calcite--rtl{padding-right:2.5rem;padding-left:1rem}:host{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;position:relative}.container{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;color:var(--calcite-ui-text-3);-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);cursor:pointer;text-decoration:none;outline:2px solid transparent;outline-offset:2px;position:relative}.container:before{content:"•";position:absolute;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)}.dropdown-item-content{margin-right:auto}.calcite--rtl .dropdown-item-content{margin-left:auto;margin-right:0}:host,.container--link a{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}:host(:focus),.container--link a:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.container--link{padding:0}.container--link a{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;color:var(--calcite-ui-text-3);-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);cursor:pointer;text-decoration:none;outline:2px solid transparent;outline-offset:2px;position:relative}.container--link a:before{content:"•";position:absolute;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)}.container--s .dropdown-link{padding-left:0.75rem;padding-right:0.75rem;padding-top:0.5rem;padding-bottom:0.5rem}.container--m .dropdown-link{padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem}.container--l .dropdown-link{padding-left:1.25rem;padding-right:1.25rem;padding-top:1rem;padding-bottom:1rem}:host(:hover) .container,:host(:active) .container{background-color:var(--calcite-ui-foreground-2);color:var(--calcite-ui-text-1);text-decoration:none}:host(:focus) .container{color:var(--calcite-ui-text-1);text-decoration:none}:host(:active) .container{background-color:var(--calcite-ui-foreground-3)}:host(:hover) .container:before,:host(:active) .container:before,:host(:focus) .container:before{opacity:1}.calcite--rtl:before{left:unset;right:1rem}:host([active]) .container:not(.container--none-selection){color:var(--calcite-ui-text-1);font-weight:var(--calcite-font-weight-medium)}:host([active]) .container:not(.container--none-selection):before{opacity:1;color:var(--calcite-ui-brand)}:host([active]) .container:not(.container--none-selection) calcite-icon{color:var(--calcite-ui-brand)}.container--multi-selection:before,.container--none-selection:before{display:none}.container--s:before{left:0.5rem}.container--m:before{left:0.75rem}.container--l:before{left:1rem}.calcite--rtl:before{left:unset}.container--s.calcite--rtl:before{right:0.5rem}.container--m.calcite--rtl:before{right:0.75rem}.container--l.calcite--rtl:before{right:1rem}.dropdown-item-check-icon{position:absolute;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);-webkit-transform:scale(0.9);transform:scale(0.9)}.container--s .dropdown-item-check-icon{left:0.25rem}.container--m .dropdown-item-check-icon{left:0.5rem}.container--l .dropdown-item-check-icon{left:0.75rem}.calcite--rtl .dropdown-item-check-icon{left:unset;margin-left:0}.container--s.calcite--rtl .dropdown-item-check-icon{right:0.25rem}.container--m.calcite--rtl .dropdown-item-check-icon{right:0.5rem}.container--l.calcite--rtl .dropdown-item-check-icon{right:0.75rem}:host(:hover) .dropdown-item-check-icon{color:var(--calcite-ui-border-1);opacity:1}:host([active]) .dropdown-item-check-icon{color:var(--calcite-ui-brand);opacity:1}.container--s .dropdown-item-icon-start{margin-right:0.5rem}.container--s .dropdown-item-icon-end{margin-left:0.5rem}.container--m .dropdown-item-icon-start{margin-right:0.75rem}.container--m .dropdown-item-icon-end{margin-left:0.75rem}.container--l .dropdown-item-icon-start{margin-right:1rem}.container--l .dropdown-item-icon-end{margin-left:1rem}.calcite--rtl .dropdown-item-icon-start{margin-right:0}.calcite--rtl .dropdown-item-icon-end{margin-left:0}.container--s.calcite--rtl .dropdown-item-icon-start{margin-left:0.5rem}.container--s.calcite--rtl .dropdown-item-icon-end{margin-right:0.5rem}.container--m.calcite--rtl .dropdown-item-icon-start{margin-left:0.75rem}.container--m.calcite--rtl .dropdown-item-icon-end{margin-right:0.75rem}.container--l.calcite--rtl .dropdown-item-icon-start{margin-left:1rem}.container--l.calcite--rtl .dropdown-item-icon-end{margin-right:1rem}.calcite--rtl calcite-icon{margin-right:0;margin-left:0.75rem}';var CalciteDropdownItem=function(){function t(t){registerInstance(this,t);this.calciteDropdownItemSelect=createEvent(this,"calciteDropdownItemSelect",7);this.calciteDropdownItemKeyEvent=createEvent(this,"calciteDropdownItemKeyEvent",7);this.calciteDropdownCloseRequest=createEvent(this,"calciteDropdownCloseRequest",7);this.active=false}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.el.focus();return[2]}))}))};t.prototype.connectedCallback=function(){this.selectionMode=getElementProp(this.el,"selection-mode","single");this.parentDropdownGroupEl=this.el.closest("calcite-dropdown-group");if(this.selectionMode==="none"){this.active=false}};t.prototype.render=function(){var t;var e=this;var i=getAttributes(this.el,["icon-start","icon-end","active","has-text","is-link","dir","id"]);var r=getElementDir(this.el);var o=getElementProp(this.el,"scale","m");var n=o==="l"?"m":"s";var a=h("calcite-icon",{class:"dropdown-item-icon-start",dir:r,flipRtl:this.iconFlipRtl==="start"||this.iconFlipRtl==="both",icon:this.iconStart,scale:n});var c=h("span",{class:"dropdown-item-content"},h("slot",null));var s=h("calcite-icon",{class:"dropdown-item-icon-end",dir:r,flipRtl:this.iconFlipRtl==="end"||this.iconFlipRtl==="both",icon:this.iconEnd,scale:n});var l=this.iconStart&&this.iconEnd?[a,c,s]:this.iconStart?[a,h("slot",null)]:this.iconEnd?[c,s]:c;var p=!this.href?l:h("a",Object.assign({},i,{class:"dropdown-link",ref:function(t){return e.childLink=t}}),l);var d=this.href?null:this.selectionMode==="single"?"menuitemradio":this.selectionMode==="multi"?"menuitemcheckbox":"menuitem";var m=this.selectionMode!=="none"?this.active.toString():null;return h(Host,{"aria-checked":m,role:d,tabindex:"0"},h("div",{class:(t={container:true},t[CSS_UTILITY.rtl]=r==="rtl",t[CSS.containerLink]=!!this.href,t[CSS.containerSmall]=o==="s",t[CSS.containerMedium]=o==="m",t[CSS.containerLarge]=o==="l",t[CSS.containerMulti]=this.selectionMode==="multi",t[CSS.containerSingle]=this.selectionMode==="single",t[CSS.containerNone]=this.selectionMode==="none",t)},this.selectionMode==="multi"?h("calcite-icon",{class:"dropdown-item-check-icon",icon:"check",scale:"s"}):null,p))};t.prototype.onClick=function(){this.emitRequestedItem()};t.prototype.keyDownHandler=function(t){switch(getKey(t.key)){case" ":this.emitRequestedItem();if(this.href){t.preventDefault();this.childLink.click()}break;case"Enter":this.emitRequestedItem();if(this.href){this.childLink.click()}break;case"Escape":this.calciteDropdownCloseRequest.emit();break;case"Tab":case"ArrowUp":case"ArrowDown":case"Home":case"End":this.calciteDropdownItemKeyEvent.emit({keyboardEvent:t});break}t.preventDefault()};t.prototype.updateActiveItemOnChange=function(t){var e=t.composedPath().includes(this.parentDropdownGroupEl);if(e){this.requestedDropdownGroup=t.detail.requestedDropdownGroup;this.requestedDropdownItem=t.detail.requestedDropdownItem;this.determineActiveItem()}};t.prototype.determineActiveItem=function(){switch(this.selectionMode){case"multi":if(this.el===this.requestedDropdownItem){this.active=!this.active}break;case"single":if(this.el===this.requestedDropdownItem){this.active=true}else if(this.requestedDropdownGroup===this.parentDropdownGroupEl){this.active=false}break;case"none":this.active=false;break}};t.prototype.emitRequestedItem=function(){this.calciteDropdownItemSelect.emit({requestedDropdownItem:this.el,requestedDropdownGroup:this.parentDropdownGroupEl})};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();CalciteDropdownItem.style=calciteDropdownItemCss;export{CalciteDropdown as calcite_dropdown,CalciteDropdownGroup as calcite_dropdown_group,CalciteDropdownItem as calcite_dropdown_item};