@kyndryl-design-system/shidoka-applications 2.55.0 → 2.55.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -970,5 +970,5 @@ kyn-tag-group {
970
970
  ${this.assistiveText}
971
971
  </div>
972
972
  </div>
973
- `}firstUpdated(){""===this.placeholder&&(this.searchable?this.placeholder="Search":this.multiple?this.placeholder="Select items":this.placeholder="Select an option")}handleSlotChange(){this.updateChildOptions(),this._updateOptions(),this._updateSelectedText()}updateChildOptions(){var e;(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("#children")).assignedElements({flatten:!0}).forEach((e=>{"KYN-DROPDOWN-OPTION"!==e.tagName&&"KYN-ENHANCED-DROPDOWN-OPTION"!==e.tagName||(e.allowAddOption=this.allowAddOption)}))}handleClick(){this.disabled||(this.open=!this.open,this.searchable?this.searchEl.focus():this.buttonEl.focus())}handleButtonKeydown(e){this.handleKeyboard(e,e.keyCode,"button")}handleListKeydown(e){9!==e.keyCode&&e.preventDefault(),this.handleKeyboard(e,e.keyCode,"list")}handleListBlur(e){if(this.multiple)return;this.options.forEach((e=>e.highlighted=!1));const t=e.relatedTarget;t&&(t.closest("kyn-dropdown-option")||t.closest("kyn-enhanced-dropdown-option")||t.classList.contains("search")||t.closest(".add-option"))||(this.open=!1,this.assistiveText="Dropdown menu options.")}handleKeyboard(e,t,i){var s;const a=[0,32],l=[...Array.from((null===(s=this.shadowRoot)||void 0===s?void 0:s.querySelectorAll(".select-all"))||[]),...this.options.filter((e=>"none"!==e.style.display))],n=l.find((e=>e.highlighted)),o=l.find((e=>e.selected));let r=n?l.indexOf(n):o?l.indexOf(o):0;a.includes(t)&&e.preventDefault();const d=this.open;if("button"===i||"addOption"===i){let s=a.includes(t)||13===t||40==t||38==t;if(e.target===this.clearMultipleEl&&13===t&&(s=!1,l[r].highlighted=!1,l[r].selected=!l[r].selected,r=0,13!==t))return;s&&(this.open=!0,this.allowAddOption&&"button"===i&&13===t?setTimeout((()=>{var e;null===(e=this.addOptionInputEl)||void 0===e||e.focus()}),100):this.multiple||""===this.value||l[r].scrollIntoView({block:"nearest"}))}switch(t){case 0:case 32:case 13:return l[r].highlighted=!0,void(d&&(this.multiple?(l[r].selected=!l[r].selected,this._handleClick({detail:{value:l[r].value,selected:l[r].selected}})):(l.forEach((e=>e.selected=!1)),l[r].selected=!0,this.updateValue(l[r].value,!0),this.emitValue(),this.open=!1,this.assistiveText=`Selected ${l[r].value}`)));case 40:{let e=n||o?r===l.length-1?0:r+1:0;return l[e].disabled&&(e=e===l.length-1?0:e+1),l[e].focus(),l[r].highlighted=!1,l[e].highlighted=!0,l[e].scrollIntoView({block:"nearest"}),void(this.assistiveText=l[e].text)}case 38:{let e=0===r?l.length-1:r-1;return l[e].disabled&&(e=0===e?l.length-1:e-1),l[e].focus(),l[r].highlighted=!1,l[e].highlighted=!0,l[e].scrollIntoView({block:"nearest"}),void(this.assistiveText=l[e].text)}case 27:return this.open=!1,this.searchable?this.searchEl.focus():this.buttonEl.focus(),void(this.assistiveText="Dropdown menu options.");default:return}}handleClearMultiple(e){var t;if(e.stopPropagation(),this.multiple){const e=(null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("slot#children")).assignedElements().filter((e=>e.selected&&e.disabled)).map((e=>e.value));this.value=e.length?e:[]}else this.value="";this._validate(!0,!1),this._updateSelectedOptions(),this.emitValue();const i=new CustomEvent("on-clear-all",{detail:{value:this.value}});this.dispatchEvent(i)}handleTagClear(e){this.updateValue(e.value,!1),this._updateSelectedOptions(),this.emitValue()}handleClear(e){e.stopPropagation(),this.text="",this.searchText="",this.searchEl.value="",this._emitSearch(),this.filterSearch&&this.options.map((e=>{e.style.display="block"})),this.multiple||(this.value="",this._validate(!0,!1),this._updateSelectedOptions(),this.emitValue())}handleSearchClick(e){e.stopPropagation(),this.open=!0}handleSearchKeydown(e){e.stopPropagation();const t=this.options.find((e=>e.highlighted)),i=this.options.findIndex((e=>e.highlighted));this.searchTextEntered=!1,13===e.keyCode&&(this.searchTextEntered=!0,t?(this.prevSearchKeydownIndex!==i&&(this.multiple?t.selected=!t.selected:(this.options.forEach((e=>e.selected=!1)),t.selected=!0,this.open=!1),this.updateValue(t.value,t.selected)),t.selected?(this.assistiveText=`Selected ${t.innerHTML}`,this.prevSearchKeydownIndex=i):this.assistiveText=`Deselected ${t.innerHTML}`):this.assistiveText="No item matched."),27===e.keyCode&&(this.open=!1,this.buttonEl.focus())}handleSearchInput(e){const t=e.target.value;if(this.searchText=t,this.open=!0,this._emitSearch(),this.filterSearch)this.options.map((e=>{let i=e.text;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}i.toLowerCase().includes(t.toLowerCase())?e.style.display="block":e.style.display="none"}));else{const e=this.options.filter((e=>{let i=e.text;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}return i.toLowerCase().startsWith(t.toLowerCase())}));this.options.forEach((e=>e.highlighted=!1)),""!==t&&e.length&&(e[0].highlighted=!0,e[0].scrollIntoView({block:"nearest"}),this.searchTextEntered&&(this.assistiveText="Option Matched"))}}_updateSelectedOptions(){this.options.forEach((e=>{this.multiple?e.selected=this.value.includes(e.value):e.selected=this.value===e.value}))}_handleClick(e){var t;if("selectAll"===e.detail.value){this.selectAllChecked=e.detail.selected;const i=(null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("slot#children")).assignedElements().filter((e=>e.selected&&e.disabled)).map((e=>e.value));e.detail.selected?(this.value=this.options.filter((e=>!e.disabled||e.disabled&&e.selected)).map((e=>e.value)),this.assistiveText="Selected all items."):(this.value=i.length?i:[],this.assistiveText="Deselected all items."),this._validate(!0,!1)}else this.updateValue(e.detail.value,e.detail.selected),this.assistiveText=e.detail.selected?`Selected ${e.detail.value}`:`Deselected ${e.detail.value}`;this._updateSelectedOptions(),this.multiple&&(this.open=!1),this.emitValue()}_handleBlur(e){const t=e.detail.origEvent.relatedTarget;(!t||"kyn-dropdown-option"!==(null==t?void 0:t.localName)&&"kyn-enhanced-dropdown-option"!==(null==t?void 0:t.localName)&&"kyn-dropdown"!==t.localName)&&(this.open=!1)}_handleClickOut(e){e.composedPath().includes(this)||(this.open=!1)}connectedCallback(){super.connectedCallback(),this._onConnected(),document.addEventListener("click",(e=>this._handleClickOut(e))),this.addEventListener("on-click",(e=>this._handleClick(e))),this.addEventListener("on-remove-option",(()=>this._handleRemoveOption())),this.addEventListener("on-blur",(e=>this._handleBlur(e)))}disconnectedCallback(){this._onDisconnected(),document.removeEventListener("click",(e=>this._handleClickOut(e))),this.removeEventListener("on-click",(e=>this._handleClick(e))),this.removeEventListener("on-remove-option",(()=>this._handleRemoveOption())),this.removeEventListener("on-blur",(e=>this._handleBlur(e))),super.disconnectedCallback()}updateValue(e,t=!1){if(this.multiple){const i=""===this.value?[]:JSON.parse(JSON.stringify(this.value));if(t)i.push(e);else{const t=i.indexOf(e);i.splice(t,1)}this.value=i}else this.value=e;this._validate(!0,!1),this.multiple||(this.searchable?this.searchEl.focus():this.buttonEl.focus())}_validate(e,t){const i={customError:""!==this.invalidText,valueMissing:this.required&&(!this.value||this.multiple&&!this.value.length||!this.multiple&&""===this.value)},s=this.required&&!this.value.length?"Please fill out this field.":"",a=""!==this.invalidText?this.invalidText:s,l=this.buttonEl||this.listboxEl;l?this._internals.setValidity(i,a,l):this._internals.setValidity(i,a),e&&(this._internalValidationMsg=s),t&&this._internals.reportValidity()}emitValue(){const e=new CustomEvent("on-change",{detail:{value:this.value}});this.dispatchEvent(e)}_emitSearch(){const e=new CustomEvent("on-search",{detail:{searchText:this.searchText}});this.dispatchEvent(e)}willUpdate(e){e.has("textStrings")&&(this._textStrings=v(y,this.textStrings))}updated(e){super.updated(e);const t=this.shadowRoot;if(t){if(e.has("open")){const e=t.querySelector('slot[name="button"]'),i=null==e?void 0:e.assignedElements({flatten:!0}),s=null==i?void 0:i[0],a=null==s?void 0:s.querySelector('span[slot="icon"]');a&&(a.style.transition="transform 0.2s ease-in-out",a.style.transform=this.open?"rotate(180deg)":"rotate(0deg)")}if(this._onUpdated(e),e.has("value")){this._updateOptions();const e=t.querySelector("slot#children"),i=e?e.assignedElements().filter((e=>!e.hasAttribute("disabled"))):[],s=i.filter((e=>e.hasAttribute("selected")));this.selectAllChecked=s.length===i.length,this.selectAllIndeterminate=s.length>0&&s.length<i.length,this._updateTags(),this._updateSelectedText()}if(e.has("open")||e.has("openDirection")){if(this.open&&!this.searchable&&this.listboxEl&&(this.listboxEl.focus({preventScroll:!0}),this.assistiveText="Selecting items. Use up and down arrow keys to navigate."),"up"===this.openDirection)this._openUpwards=!0;else if("down"===this.openDirection)this._openUpwards=!1;else if(this.open){const e=this.buttonEl.getBoundingClientRect();this._openUpwards=e.top>.6*window.innerHeight}if(this.open&&!this.multiple){const e=this.options.find((e=>e.selected));null==e||e.scrollIntoView({block:"nearest"})}}e.has("multiple")&&this.options.forEach((e=>e.multiple=this.multiple)),e.has("searchText")&&this.searchEl&&(this.searchEl.value=this.searchText),e.has("allowAddOption")&&this.updateChildOptions()}}_updateTags(){if(this.multiple){const e=Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option")),t=[];e&&(e.forEach((e=>{if(e.selected){let i=e.textContent;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}else i=e.textContent.trim();t.push({value:e.value,text:i,disabled:e.disabled})}})),this._tags=t)}}_updateOptions(){Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option")).forEach((e=>{if(e.multiple=this.multiple,this.multiple){const t=this.value.includes(e.value);e.selected=t}else e.selected=this.value===e.value}))}_handleInputNewOption(e){const t=e.target;this.newOptionValue=t.value}_handleRemoveOption(){this.assistiveText="MY option removed ",setTimeout((()=>{this.open=!1,this.buttonEl.focus()}),100)}_updateSelectedText(){const e=Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option"));if(!this.multiple){if(e.length&&""!==this.value){const t=e.find((e=>e.value===this.value));if(t)if("KYN-ENHANCED-DROPDOWN-OPTION"===t.tagName){const e=t.querySelector('[slot="title"]');e&&e.textContent.trim()?this.text=e.textContent.trim():this.text=t.displayText||this.value}else this.text=t.textContent.trim();else this.text="",console.warn(`No dropdown option found with value: ${this.value}`)}this.searchable&&this.text&&(this.searchText=this.text===this.placeholder?"":this.text,this.searchEl.value=this.searchText)}}},r=new WeakMap,S=new WeakMap,z=new WeakMap,T=new WeakMap,_=new WeakMap,A=new WeakMap,C=new WeakMap,M=new WeakMap,W=new WeakMap,I=new WeakMap,N=new WeakMap,D=new WeakMap,q=new WeakMap,V=new WeakMap,j=new WeakMap,L=new WeakMap,K=new WeakMap,B=new WeakMap,P=new WeakMap,R=new WeakMap,U=new WeakMap,Y=new WeakMap,H=new WeakMap,F=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ie=new WeakMap,se=new WeakMap,ae=new WeakMap,e(ne,"Dropdown"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=Pe[Symbol.metadata])&&void 0!==e?e:null):void 0;oe=[p({type:String})],re=[p({type:String})],de=[p({type:Boolean})],he=[p({type:String})],ce=[p({type:String})],pe=[p({type:Boolean,reflect:!0})],ue=[p({type:Boolean})],me=[p({type:Boolean})],ge=[p({type:Boolean})],ve=[p({type:Boolean})],fe=[p({type:Boolean})],be=[p({type:Boolean})],ke=[p({type:Boolean})],xe=[p({type:Boolean})],ye=[p({type:Boolean})],we=[p({type:String})],Ee=[p({type:String})],Oe=[p({type:String})],$e=[p({type:Boolean})],Se=[p({type:Boolean})],ze=[p({type:Object})],Te=[p({type:Boolean})],_e=[d()],Ae=[d()],Ce=[d()],Me=[p({type:String})],We=[d()],Ie=[u(".search")],Ne=[u(".select")],De=[u(".options")],qe=[u(".clear-multiple")],Ve=[u(".add-option-input")],je=[d()],Le=[d()],t(ne,null,oe,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:e=>"label"in e,get:e=>e.label,set:(e,t)=>{e.label=t}},metadata:i},Re,Ue),t(ne,null,re,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:e=>"size"in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:i},Ye,He),t(ne,null,de,{kind:"accessor",name:"inline",static:!1,private:!1,access:{has:e=>"inline"in e,get:e=>e.inline,set:(e,t)=>{e.inline=t}},metadata:i},Fe,Ge),t(ne,null,he,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:e=>"caption"in e,get:e=>e.caption,set:(e,t)=>{e.caption=t}},metadata:i},Je,Qe),t(ne,null,ce,{kind:"accessor",name:"placeholder",static:!1,private:!1,access:{has:e=>"placeholder"in e,get:e=>e.placeholder,set:(e,t)=>{e.placeholder=t}},metadata:i},Xe,Ze),t(ne,null,pe,{kind:"accessor",name:"open",static:!1,private:!1,access:{has:e=>"open"in e,get:e=>e.open,set:(e,t)=>{e.open=t}},metadata:i},et,tt),t(ne,null,ue,{kind:"accessor",name:"searchable",static:!1,private:!1,access:{has:e=>"searchable"in e,get:e=>e.searchable,set:(e,t)=>{e.searchable=t}},metadata:i},it,st),t(ne,null,me,{kind:"accessor",name:"enhanced",static:!1,private:!1,access:{has:e=>"enhanced"in e,get:e=>e.enhanced,set:(e,t)=>{e.enhanced=t}},metadata:i},at,lt),t(ne,null,ge,{kind:"accessor",name:"filterSearch",static:!1,private:!1,access:{has:e=>"filterSearch"in e,get:e=>e.filterSearch,set:(e,t)=>{e.filterSearch=t}},metadata:i},nt,ot),t(ne,null,ve,{kind:"accessor",name:"multiple",static:!1,private:!1,access:{has:e=>"multiple"in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:i},rt,dt),t(ne,null,fe,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:e=>"required"in e,get:e=>e.required,set:(e,t)=>{e.required=t}},metadata:i},ht,ct),t(ne,null,be,{kind:"accessor",name:"hideLabel",static:!1,private:!1,access:{has:e=>"hideLabel"in e,get:e=>e.hideLabel,set:(e,t)=>{e.hideLabel=t}},metadata:i},pt,ut),t(ne,null,ke,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:i},mt,gt),t(ne,null,xe,{kind:"accessor",name:"hideTags",static:!1,private:!1,access:{has:e=>"hideTags"in e,get:e=>e.hideTags,set:(e,t)=>{e.hideTags=t}},metadata:i},vt,ft),t(ne,null,ye,{kind:"accessor",name:"selectAll",static:!1,private:!1,access:{has:e=>"selectAll"in e,get:e=>e.selectAll,set:(e,t)=>{e.selectAll=t}},metadata:i},bt,kt),t(ne,null,we,{kind:"accessor",name:"selectAllText",static:!1,private:!1,access:{has:e=>"selectAllText"in e,get:e=>e.selectAllText,set:(e,t)=>{e.selectAllText=t}},metadata:i},xt,yt),t(ne,null,Ee,{kind:"accessor",name:"menuMinWidth",static:!1,private:!1,access:{has:e=>"menuMinWidth"in e,get:e=>e.menuMinWidth,set:(e,t)=>{e.menuMinWidth=t}},metadata:i},wt,Et),t(ne,null,Oe,{kind:"accessor",name:"openDirection",static:!1,private:!1,access:{has:e=>"openDirection"in e,get:e=>e.openDirection,set:(e,t)=>{e.openDirection=t}},metadata:i},Ot,$t),t(ne,null,$e,{kind:"accessor",name:"selectAllChecked",static:!1,private:!1,access:{has:e=>"selectAllChecked"in e,get:e=>e.selectAllChecked,set:(e,t)=>{e.selectAllChecked=t}},metadata:i},St,zt),t(ne,null,Se,{kind:"accessor",name:"selectAllIndeterminate",static:!1,private:!1,access:{has:e=>"selectAllIndeterminate"in e,get:e=>e.selectAllIndeterminate,set:(e,t)=>{e.selectAllIndeterminate=t}},metadata:i},Tt,_t),t(ne,null,ze,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},At,Ct),t(ne,null,Te,{kind:"accessor",name:"allowAddOption",static:!1,private:!1,access:{has:e=>"allowAddOption"in e,get:e=>e.allowAddOption,set:(e,t)=>{e.allowAddOption=t}},metadata:i},Mt,Wt),t(ne,null,_e,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},It,Nt),t(ne,null,Ae,{kind:"accessor",name:"newOptionValue",static:!1,private:!1,access:{has:e=>"newOptionValue"in e,get:e=>e.newOptionValue,set:(e,t)=>{e.newOptionValue=t}},metadata:i},Dt,qt),t(ne,null,Ce,{kind:"accessor",name:"text",static:!1,private:!1,access:{has:e=>"text"in e,get:e=>e.text,set:(e,t)=>{e.text=t}},metadata:i},Vt,jt),t(ne,null,Me,{kind:"accessor",name:"searchText",static:!1,private:!1,access:{has:e=>"searchText"in e,get:e=>e.searchText,set:(e,t)=>{e.searchText=t}},metadata:i},Lt,Kt),t(ne,null,We,{kind:"accessor",name:"assistiveText",static:!1,private:!1,access:{has:e=>"assistiveText"in e,get:e=>e.assistiveText,set:(e,t)=>{e.assistiveText=t}},metadata:i},Bt,Pt),t(ne,null,Ie,{kind:"accessor",name:"searchEl",static:!1,private:!1,access:{has:e=>"searchEl"in e,get:e=>e.searchEl,set:(e,t)=>{e.searchEl=t}},metadata:i},Rt,Ut),t(ne,null,Ne,{kind:"accessor",name:"buttonEl",static:!1,private:!1,access:{has:e=>"buttonEl"in e,get:e=>e.buttonEl,set:(e,t)=>{e.buttonEl=t}},metadata:i},Yt,Ht),t(ne,null,De,{kind:"accessor",name:"listboxEl",static:!1,private:!1,access:{has:e=>"listboxEl"in e,get:e=>e.listboxEl,set:(e,t)=>{e.listboxEl=t}},metadata:i},Ft,Gt),t(ne,null,qe,{kind:"accessor",name:"clearMultipleEl",static:!1,private:!1,access:{has:e=>"clearMultipleEl"in e,get:e=>e.clearMultipleEl,set:(e,t)=>{e.clearMultipleEl=t}},metadata:i},Jt,Qt),t(ne,null,Ve,{kind:"accessor",name:"addOptionInputEl",static:!1,private:!1,access:{has:e=>"addOptionInputEl"in e,get:e=>e.addOptionInputEl,set:(e,t)=>{e.addOptionInputEl=t}},metadata:i},Xt,Zt),t(ne,null,je,{kind:"accessor",name:"_openUpwards",static:!1,private:!1,access:{has:e=>"_openUpwards"in e,get:e=>e._openUpwards,set:(e,t)=>{e._openUpwards=t}},metadata:i},ei,ti),t(ne,null,Le,{kind:"accessor",name:"_tags",static:!1,private:!1,access:{has:e=>"_tags"in e,get:e=>e._tags,set:(e,t)=>{e._tags=t}},metadata:i},ii,si),t(null,le={value:ne},Ke,{kind:"class",name:ne.name,metadata:i},null,Be),ne=le.value,i&&Object.defineProperty(ne,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),ne.styles=c(x),i(ne,Be),ne})();export{S as Dropdown};
973
+ `}firstUpdated(){""===this.placeholder&&(this.searchable?this.placeholder="Search":this.multiple?this.placeholder="Select items":this.placeholder="Select an option")}handleSlotChange(){this.updateChildOptions(),this._updateOptions(),this._updateSelectedText()}updateChildOptions(){var e;(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("#children")).assignedElements({flatten:!0}).forEach((e=>{"KYN-DROPDOWN-OPTION"!==e.tagName&&"KYN-ENHANCED-DROPDOWN-OPTION"!==e.tagName||(e.allowAddOption=this.allowAddOption)}))}handleClick(){this.disabled||(this.open=!this.open,this.searchable?this.searchEl.focus():this.buttonEl.focus())}handleButtonKeydown(e){this.handleKeyboard(e,e.keyCode,"button")}handleListKeydown(e){9!==e.keyCode&&e.preventDefault(),this.handleKeyboard(e,e.keyCode,"list")}handleListBlur(e){if(this.multiple)return;this.options.forEach((e=>e.highlighted=!1));const t=e.relatedTarget;t&&(t.closest("kyn-dropdown-option")||t.closest("kyn-enhanced-dropdown-option")||t.classList.contains("search")||t.closest(".add-option"))||(this.open=!1,this.assistiveText="Dropdown menu options.")}handleKeyboard(e,t,i){var s;const a=[0,32],l=[...Array.from((null===(s=this.shadowRoot)||void 0===s?void 0:s.querySelectorAll(".select-all"))||[]),...this.options.filter((e=>"none"!==e.style.display))],n=l.find((e=>e.highlighted)),o=l.find((e=>e.selected));let r=n?l.indexOf(n):o?l.indexOf(o):0;a.includes(t)&&e.preventDefault();const d=this.open;if("button"===i||"addOption"===i){let s=a.includes(t)||13===t||40==t||38==t;if(e.target===this.clearMultipleEl&&13===t&&(s=!1,l[r].highlighted=!1,l[r].selected=!l[r].selected,r=0,13!==t))return;s&&(this.open=!0,this.allowAddOption&&"button"===i&&13===t?setTimeout((()=>{var e;null===(e=this.addOptionInputEl)||void 0===e||e.focus()}),100):this.multiple||""===this.value||l[r].scrollIntoView({block:"nearest"}))}switch(t){case 0:case 32:case 13:return l[r].highlighted=!0,void(d&&(this.multiple?(l[r].selected=!l[r].selected,this._handleClick({detail:{value:l[r].value,selected:l[r].selected}})):(l.forEach((e=>e.selected=!1)),l[r].selected=!0,this.updateValue(l[r].value,!0),this.emitValue(),this.open=!1,this.assistiveText=`Selected ${l[r].value}`)));case 40:{let e=n||o?r===l.length-1?0:r+1:0;return l[e].disabled&&(e=e===l.length-1?0:e+1),l[e].focus(),l[r].highlighted=!1,l[e].highlighted=!0,l[e].scrollIntoView({block:"nearest"}),void(this.assistiveText=l[e].text)}case 38:{let e=0===r?l.length-1:r-1;return l[e].disabled&&(e=0===e?l.length-1:e-1),l[e].focus(),l[r].highlighted=!1,l[e].highlighted=!0,l[e].scrollIntoView({block:"nearest"}),void(this.assistiveText=l[e].text)}case 27:return this.open=!1,this.searchable?this.searchEl.focus():this.buttonEl.focus(),void(this.assistiveText="Dropdown menu options.");default:return}}handleClearMultiple(e){var t;if(e.stopPropagation(),this.multiple){const e=(null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("slot#children")).assignedElements().filter((e=>e.selected&&e.disabled)).map((e=>e.value));this.value=e.length?e:[]}else this.value="";this._validate(!0,!1),this._updateSelectedOptions(),this.emitValue();const i=new CustomEvent("on-clear-all",{detail:{value:this.value}});this.dispatchEvent(i)}handleTagClear(e){this.updateValue(e.value,!1),this._updateSelectedOptions(),this.emitValue()}handleClear(e){e.stopPropagation(),this.text="",this.searchText="",this.searchEl.value="",this._emitSearch(),this.filterSearch&&this.options.map((e=>{e.style.display="block"})),this.multiple||(this.value="",this._validate(!0,!1),this._updateSelectedOptions(),this.emitValue())}handleSearchClick(e){e.stopPropagation(),this.open=!0}handleSearchKeydown(e){e.stopPropagation();const t=this.options.find((e=>e.highlighted)),i=this.options.findIndex((e=>e.highlighted));this.searchTextEntered=!1,13===e.keyCode&&(this.searchTextEntered=!0,t?(this.prevSearchKeydownIndex!==i&&(this.multiple?t.selected=!t.selected:(this.options.forEach((e=>e.selected=!1)),t.selected=!0,this.open=!1),this.updateValue(t.value,t.selected)),t.selected?(this.assistiveText=`Selected ${t.innerHTML}`,this.prevSearchKeydownIndex=i):this.assistiveText=`Deselected ${t.innerHTML}`):this.assistiveText="No item matched."),27===e.keyCode&&(this.open=!1,this.buttonEl.focus())}handleSearchInput(e){const t=e.target.value;if(this.searchText=t,this.open=!0,this._emitSearch(),this.filterSearch)this.options.map((e=>{let i=e.text;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}i.toLowerCase().includes(t.toLowerCase())?e.style.display="block":e.style.display="none"}));else{const e=this.options.filter((e=>{let i=e.text;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}return i.toLowerCase().startsWith(t.toLowerCase())}));this.options.forEach((e=>e.highlighted=!1)),""!==t&&e.length&&(e[0].highlighted=!0,e[0].scrollIntoView({block:"nearest"}),this.searchTextEntered&&(this.assistiveText="Option Matched"))}}_updateSelectedOptions(){this.options.forEach((e=>{this.multiple?e.selected=this.value.includes(e.value):e.selected=this.value===e.value}))}_handleClick(e){var t;if("selectAll"===e.detail.value){this.selectAllChecked=e.detail.selected;const i=(null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("slot#children")).assignedElements().filter((e=>e.selected&&e.disabled)).map((e=>e.value));e.detail.selected?(this.value=this.options.filter((e=>!e.disabled||e.disabled&&e.selected)).map((e=>e.value)),this.assistiveText="Selected all items."):(this.value=i.length?i:[],this.assistiveText="Deselected all items."),this._validate(!0,!1)}else this.updateValue(e.detail.value,e.detail.selected),this.assistiveText=e.detail.selected?`Selected ${e.detail.value}`:`Deselected ${e.detail.value}`;this._updateSelectedOptions(),this.multiple&&(this.open=!1),this.emitValue()}_handleBlur(e){const t=e.detail.origEvent.relatedTarget;(!t||"kyn-dropdown-option"!==(null==t?void 0:t.localName)&&"kyn-enhanced-dropdown-option"!==(null==t?void 0:t.localName)&&"kyn-dropdown"!==t.localName)&&(this.open=!1)}_handleClickOut(e){e.composedPath().includes(this)||(this.open=!1)}connectedCallback(){super.connectedCallback(),this._onConnected(),document.addEventListener("click",(e=>this._handleClickOut(e))),this.addEventListener("on-click",(e=>this._handleClick(e))),this.addEventListener("on-remove-option",(()=>this._handleRemoveOption())),this.addEventListener("on-blur",(e=>this._handleBlur(e)))}disconnectedCallback(){this._onDisconnected(),document.removeEventListener("click",(e=>this._handleClickOut(e))),this.removeEventListener("on-click",(e=>this._handleClick(e))),this.removeEventListener("on-remove-option",(()=>this._handleRemoveOption())),this.removeEventListener("on-blur",(e=>this._handleBlur(e))),super.disconnectedCallback()}updateValue(e,t=!1){if(this.multiple){const i=""===this.value?[]:JSON.parse(JSON.stringify(this.value));if(t)i.push(e);else{const t=i.indexOf(e);i.splice(t,1)}this.value=i}else this.value=e;this._validate(!0,!1),this.multiple||(this.searchable?this.searchEl.focus():this.buttonEl.focus())}_validate(e,t){const i={customError:""!==this.invalidText,valueMissing:this.required&&(!this.value||this.multiple&&!this.value.length||!this.multiple&&""===this.value)},s=this.required&&!this.value.length?"Please fill out this field.":"",a=""!==this.invalidText?this.invalidText:s,l=this.buttonEl||this.listboxEl;l?this._internals.setValidity(i,a,l):this._internals.setValidity(i,a),e&&(this._internalValidationMsg=s),t&&this._internals.reportValidity()}emitValue(){const e=new CustomEvent("on-change",{detail:{value:this.value}});this.dispatchEvent(e)}_emitSearch(){const e=new CustomEvent("on-search",{detail:{searchText:this.searchText}});this.dispatchEvent(e)}willUpdate(e){e.has("textStrings")&&(this._textStrings=v(y,this.textStrings))}updated(e){super.updated(e);const t=this.shadowRoot;if(t){if(e.has("open")){const e=t.querySelector('slot[name="anchor"]'),i=null==e?void 0:e.assignedElements({flatten:!0}),s=null==i?void 0:i[0],a=null==s?void 0:s.querySelector('span[slot="icon"]');a&&(a.style.transition="transform 0.2s ease-in-out",a.style.transform=this.open?"rotate(180deg)":"rotate(0deg)")}if(this._onUpdated(e),e.has("value")){this._updateOptions();const e=t.querySelector("slot#children"),i=e?e.assignedElements().filter((e=>!e.hasAttribute("disabled"))):[],s=i.filter((e=>e.hasAttribute("selected")));this.selectAllChecked=s.length===i.length,this.selectAllIndeterminate=s.length>0&&s.length<i.length,this._updateTags(),this._updateSelectedText()}if(e.has("open")||e.has("openDirection")){if(this.open&&!this.searchable&&this.listboxEl&&(this.listboxEl.focus({preventScroll:!0}),this.assistiveText="Selecting items. Use up and down arrow keys to navigate."),"up"===this.openDirection)this._openUpwards=!0;else if("down"===this.openDirection)this._openUpwards=!1;else if(this.open){const e=this.buttonEl.getBoundingClientRect();this._openUpwards=e.top>.6*window.innerHeight}if(this.open&&!this.multiple){const e=this.options.find((e=>e.selected));null==e||e.scrollIntoView({block:"nearest"})}}e.has("multiple")&&this.options.forEach((e=>e.multiple=this.multiple)),e.has("searchText")&&this.searchEl&&(this.searchEl.value=this.searchText),e.has("allowAddOption")&&this.updateChildOptions()}}_updateTags(){if(this.multiple){const e=Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option")),t=[];e&&(e.forEach((e=>{if(e.selected){let i=e.textContent;if("KYN-ENHANCED-DROPDOWN-OPTION"===e.tagName){const t=e.querySelector('[slot="title"]');i=t&&t.textContent.trim()?t.textContent.trim():e.displayText||e.value}else i=e.textContent.trim();t.push({value:e.value,text:i,disabled:e.disabled})}})),this._tags=t)}}_updateOptions(){Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option")).forEach((e=>{if(e.multiple=this.multiple,this.multiple){const t=this.value.includes(e.value);e.selected=t}else e.selected=this.value===e.value}))}_handleInputNewOption(e){const t=e.target;this.newOptionValue=t.value}_handleRemoveOption(){this.assistiveText="MY option removed ",setTimeout((()=>{this.open=!1,this.buttonEl.focus()}),100)}_updateSelectedText(){const e=Array.from(this.querySelectorAll("kyn-dropdown-option, kyn-enhanced-dropdown-option"));if(!this.multiple){if(e.length&&""!==this.value){const t=e.find((e=>e.value===this.value));if(t)if("KYN-ENHANCED-DROPDOWN-OPTION"===t.tagName){const e=t.querySelector('[slot="title"]');e&&e.textContent.trim()?this.text=e.textContent.trim():this.text=t.displayText||this.value}else this.text=t.textContent.trim();else this.text="",console.warn(`No dropdown option found with value: ${this.value}`)}this.searchable&&this.text&&(this.searchText=this.text===this.placeholder?"":this.text,this.searchEl.value=this.searchText)}}},r=new WeakMap,S=new WeakMap,z=new WeakMap,T=new WeakMap,_=new WeakMap,A=new WeakMap,C=new WeakMap,M=new WeakMap,W=new WeakMap,I=new WeakMap,N=new WeakMap,D=new WeakMap,q=new WeakMap,V=new WeakMap,j=new WeakMap,L=new WeakMap,K=new WeakMap,B=new WeakMap,P=new WeakMap,R=new WeakMap,U=new WeakMap,Y=new WeakMap,H=new WeakMap,F=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ie=new WeakMap,se=new WeakMap,ae=new WeakMap,e(ne,"Dropdown"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=Pe[Symbol.metadata])&&void 0!==e?e:null):void 0;oe=[p({type:String})],re=[p({type:String})],de=[p({type:Boolean})],he=[p({type:String})],ce=[p({type:String})],pe=[p({type:Boolean,reflect:!0})],ue=[p({type:Boolean})],me=[p({type:Boolean})],ge=[p({type:Boolean})],ve=[p({type:Boolean})],fe=[p({type:Boolean})],be=[p({type:Boolean})],ke=[p({type:Boolean})],xe=[p({type:Boolean})],ye=[p({type:Boolean})],we=[p({type:String})],Ee=[p({type:String})],Oe=[p({type:String})],$e=[p({type:Boolean})],Se=[p({type:Boolean})],ze=[p({type:Object})],Te=[p({type:Boolean})],_e=[d()],Ae=[d()],Ce=[d()],Me=[p({type:String})],We=[d()],Ie=[u(".search")],Ne=[u(".select")],De=[u(".options")],qe=[u(".clear-multiple")],Ve=[u(".add-option-input")],je=[d()],Le=[d()],t(ne,null,oe,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:e=>"label"in e,get:e=>e.label,set:(e,t)=>{e.label=t}},metadata:i},Re,Ue),t(ne,null,re,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:e=>"size"in e,get:e=>e.size,set:(e,t)=>{e.size=t}},metadata:i},Ye,He),t(ne,null,de,{kind:"accessor",name:"inline",static:!1,private:!1,access:{has:e=>"inline"in e,get:e=>e.inline,set:(e,t)=>{e.inline=t}},metadata:i},Fe,Ge),t(ne,null,he,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:e=>"caption"in e,get:e=>e.caption,set:(e,t)=>{e.caption=t}},metadata:i},Je,Qe),t(ne,null,ce,{kind:"accessor",name:"placeholder",static:!1,private:!1,access:{has:e=>"placeholder"in e,get:e=>e.placeholder,set:(e,t)=>{e.placeholder=t}},metadata:i},Xe,Ze),t(ne,null,pe,{kind:"accessor",name:"open",static:!1,private:!1,access:{has:e=>"open"in e,get:e=>e.open,set:(e,t)=>{e.open=t}},metadata:i},et,tt),t(ne,null,ue,{kind:"accessor",name:"searchable",static:!1,private:!1,access:{has:e=>"searchable"in e,get:e=>e.searchable,set:(e,t)=>{e.searchable=t}},metadata:i},it,st),t(ne,null,me,{kind:"accessor",name:"enhanced",static:!1,private:!1,access:{has:e=>"enhanced"in e,get:e=>e.enhanced,set:(e,t)=>{e.enhanced=t}},metadata:i},at,lt),t(ne,null,ge,{kind:"accessor",name:"filterSearch",static:!1,private:!1,access:{has:e=>"filterSearch"in e,get:e=>e.filterSearch,set:(e,t)=>{e.filterSearch=t}},metadata:i},nt,ot),t(ne,null,ve,{kind:"accessor",name:"multiple",static:!1,private:!1,access:{has:e=>"multiple"in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:i},rt,dt),t(ne,null,fe,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:e=>"required"in e,get:e=>e.required,set:(e,t)=>{e.required=t}},metadata:i},ht,ct),t(ne,null,be,{kind:"accessor",name:"hideLabel",static:!1,private:!1,access:{has:e=>"hideLabel"in e,get:e=>e.hideLabel,set:(e,t)=>{e.hideLabel=t}},metadata:i},pt,ut),t(ne,null,ke,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:i},mt,gt),t(ne,null,xe,{kind:"accessor",name:"hideTags",static:!1,private:!1,access:{has:e=>"hideTags"in e,get:e=>e.hideTags,set:(e,t)=>{e.hideTags=t}},metadata:i},vt,ft),t(ne,null,ye,{kind:"accessor",name:"selectAll",static:!1,private:!1,access:{has:e=>"selectAll"in e,get:e=>e.selectAll,set:(e,t)=>{e.selectAll=t}},metadata:i},bt,kt),t(ne,null,we,{kind:"accessor",name:"selectAllText",static:!1,private:!1,access:{has:e=>"selectAllText"in e,get:e=>e.selectAllText,set:(e,t)=>{e.selectAllText=t}},metadata:i},xt,yt),t(ne,null,Ee,{kind:"accessor",name:"menuMinWidth",static:!1,private:!1,access:{has:e=>"menuMinWidth"in e,get:e=>e.menuMinWidth,set:(e,t)=>{e.menuMinWidth=t}},metadata:i},wt,Et),t(ne,null,Oe,{kind:"accessor",name:"openDirection",static:!1,private:!1,access:{has:e=>"openDirection"in e,get:e=>e.openDirection,set:(e,t)=>{e.openDirection=t}},metadata:i},Ot,$t),t(ne,null,$e,{kind:"accessor",name:"selectAllChecked",static:!1,private:!1,access:{has:e=>"selectAllChecked"in e,get:e=>e.selectAllChecked,set:(e,t)=>{e.selectAllChecked=t}},metadata:i},St,zt),t(ne,null,Se,{kind:"accessor",name:"selectAllIndeterminate",static:!1,private:!1,access:{has:e=>"selectAllIndeterminate"in e,get:e=>e.selectAllIndeterminate,set:(e,t)=>{e.selectAllIndeterminate=t}},metadata:i},Tt,_t),t(ne,null,ze,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},At,Ct),t(ne,null,Te,{kind:"accessor",name:"allowAddOption",static:!1,private:!1,access:{has:e=>"allowAddOption"in e,get:e=>e.allowAddOption,set:(e,t)=>{e.allowAddOption=t}},metadata:i},Mt,Wt),t(ne,null,_e,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},It,Nt),t(ne,null,Ae,{kind:"accessor",name:"newOptionValue",static:!1,private:!1,access:{has:e=>"newOptionValue"in e,get:e=>e.newOptionValue,set:(e,t)=>{e.newOptionValue=t}},metadata:i},Dt,qt),t(ne,null,Ce,{kind:"accessor",name:"text",static:!1,private:!1,access:{has:e=>"text"in e,get:e=>e.text,set:(e,t)=>{e.text=t}},metadata:i},Vt,jt),t(ne,null,Me,{kind:"accessor",name:"searchText",static:!1,private:!1,access:{has:e=>"searchText"in e,get:e=>e.searchText,set:(e,t)=>{e.searchText=t}},metadata:i},Lt,Kt),t(ne,null,We,{kind:"accessor",name:"assistiveText",static:!1,private:!1,access:{has:e=>"assistiveText"in e,get:e=>e.assistiveText,set:(e,t)=>{e.assistiveText=t}},metadata:i},Bt,Pt),t(ne,null,Ie,{kind:"accessor",name:"searchEl",static:!1,private:!1,access:{has:e=>"searchEl"in e,get:e=>e.searchEl,set:(e,t)=>{e.searchEl=t}},metadata:i},Rt,Ut),t(ne,null,Ne,{kind:"accessor",name:"buttonEl",static:!1,private:!1,access:{has:e=>"buttonEl"in e,get:e=>e.buttonEl,set:(e,t)=>{e.buttonEl=t}},metadata:i},Yt,Ht),t(ne,null,De,{kind:"accessor",name:"listboxEl",static:!1,private:!1,access:{has:e=>"listboxEl"in e,get:e=>e.listboxEl,set:(e,t)=>{e.listboxEl=t}},metadata:i},Ft,Gt),t(ne,null,qe,{kind:"accessor",name:"clearMultipleEl",static:!1,private:!1,access:{has:e=>"clearMultipleEl"in e,get:e=>e.clearMultipleEl,set:(e,t)=>{e.clearMultipleEl=t}},metadata:i},Jt,Qt),t(ne,null,Ve,{kind:"accessor",name:"addOptionInputEl",static:!1,private:!1,access:{has:e=>"addOptionInputEl"in e,get:e=>e.addOptionInputEl,set:(e,t)=>{e.addOptionInputEl=t}},metadata:i},Xt,Zt),t(ne,null,je,{kind:"accessor",name:"_openUpwards",static:!1,private:!1,access:{has:e=>"_openUpwards"in e,get:e=>e._openUpwards,set:(e,t)=>{e._openUpwards=t}},metadata:i},ei,ti),t(ne,null,Le,{kind:"accessor",name:"_tags",static:!1,private:!1,access:{has:e=>"_tags"in e,get:e=>e._tags,set:(e,t)=>{e._tags=t}},metadata:i},ii,si),t(null,le={value:ne},Ke,{kind:"class",name:ne.name,metadata:i},null,Be),ne=le.value,i&&Object.defineProperty(ne,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),ne.styles=c(x),i(ne,Be),ne})();export{S as Dropdown};
974
974
  //# sourceMappingURL=dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, PropertyValues, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss?inline';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport './dropdownOption';\nimport './enhancedDropdownOption';\nimport '../tag';\nimport '../button';\n\nimport { DropdownOption } from './dropdownOption';\nimport { EnhancedDropdownOption } from './enhancedDropdownOption';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n clear: 'Clear',\n addItem: 'Add item...',\n add: 'Add',\n};\n\nconst KEY = {\n Enter: 'Enter',\n Escape: 'Escape',\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n} as const;\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the dropdown change event and emits the selected value and original event details. `detail:{ value: string/array }`\n * @fires on-search - Capture the search input event and emits the search text.`detail:{ searchText: string }`\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value. `detail:{ value: array }`\n * @fires on-add-option - Captures the add button click and emits the newly added option. `detail:{ value: string }`\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n * @slot anchor - Slot for custom dropdown anchor element. If not provided, defaults to standard input-style anchor.\n * @attr {string/array} [value=''/[]] - The selected value(s) of the input. For single select, it is a string. For multi-select, it is an array of strings.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = unsafeCSS(DropdownScss);\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n accessor inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n accessor caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n accessor placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n accessor searchable = false;\n\n /** Makes the dropdown enhanced. */\n @property({ type: Boolean })\n accessor enhanced = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n accessor filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n accessor hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n accessor hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n accessor selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n accessor selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Controls direction that dropdown opens. */\n @property({ type: String })\n accessor openDirection: 'auto' | 'up' | 'down' = 'auto';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Enables the \"Add New Option\" feature. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /**\n * New dropdown option value.\n * @ignore\n */\n @state()\n accessor newOptionValue = '';\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n accessor searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options, default or enhanced.\n * @ignore\n */\n protected get options(): Array<DropdownOption | EnhancedDropdownOption> {\n return Array.from(\n this.querySelectorAll<DropdownOption | EnhancedDropdownOption>(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n }\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n protected get selectedOptions(): Array<\n DropdownOption | EnhancedDropdownOption\n > {\n return this.options.filter(\n (opt): opt is DropdownOption | EnhancedDropdownOption =>\n opt.hasAttribute('selected')\n );\n }\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n accessor searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n accessor listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n accessor clearMultipleEl!: HTMLElement;\n\n /**\n * Queries the .add-option-input DOM element.\n * @ignore\n */\n @query('.add-option-input')\n accessor addOptionInputEl!: HTMLInputElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n accessor _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n override render() {\n return html`\n <div\n class=\"dropdown\"\n ?disabled=${this.disabled}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div\n class=\"custom\"\n @click=${() => this.handleAnchorClick()}\n @keydown=${(e: any) => this.handleAnchorKeydown(e)}\n >\n <slot name=\"anchor\">\n <div\n class=\"${classMap({\n select: true,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : '0'}\n @mousedown=${(e: any) => {\n if (!this.searchable) {\n e.preventDefault();\n }\n }}\n @blur=${(e: any) => e.stopPropagation()}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=\"clear-multiple\"\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled}\n title=${this._textStrings.clear}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => e.stopPropagation()}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span\n class=\"${classMap({\n 'placeholder-text': this.text === '',\n })}\"\n >\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n </slot>\n\n <div\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n >\n ${this.allowAddOption\n ? html`\n <div class=\"add-option\">\n <input\n class=\"add-option-input\"\n type=\"text\"\n placeholder=${this._textStrings.addItem}\n .value=${this.newOptionValue}\n aria-label=\"Add new option\"\n @input=${this._handleInputNewOption}\n @keydown=${this._onAddOptionInputKeydown}\n @focus=${this._onAddOptionInputFocus}\n />\n <kyn-button\n type=\"button\"\n size=\"small\"\n kind=\"secondary\"\n @on-click=${this._handleAddOption}\n >\n ${this._textStrings.add}\n </kyn-button>\n </div>\n `\n : null}\n\n <div role=\"listbox\" aria-labelledby=\"label-${this.name}\">\n ${this.multiple && this.selectAll\n ? html`\n ${this.enhanced\n ? html`\n <kyn-enhanced-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-enhanced-dropdown-option>\n `\n : html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `}\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </div>\n </div>\n </div>\n ${this.searchText !== ''\n ? html`\n <kyn-button\n ?disabled=${this.disabled}\n class=\"clear-button dropdown-clear\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private _onAddOptionInputKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n switch (e.key) {\n case KEY.Enter:\n this._handleAddOption();\n break;\n case KEY.Escape:\n this.newOptionValue = '';\n this.open = false;\n this.buttonEl.focus();\n break;\n case KEY.ArrowDown:\n this.handleKeyboard(e, 40, 'addOption');\n break;\n case KEY.ArrowUp:\n this.handleKeyboard(e, 38, 'addOption');\n break;\n }\n }\n\n private _onAddOptionInputFocus() {\n this.assistiveText = 'Add new option input';\n }\n\n private handleAnchorClick() {\n this.handleClick();\n }\n\n private handleAnchorKeydown(e: any) {\n this.handleButtonKeydown(e);\n }\n\n private _handleAddOption() {\n const v = this.newOptionValue.trim();\n if (!v) return;\n this.dispatchEvent(\n new CustomEvent('on-add-option', { detail: { value: v } })\n );\n this.newOptionValue = '';\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n filter\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n label=${tag.text}\n ?disabled=${this.disabled || tag.disabled}\n @on-close=${() => this.handleTagClear(tag)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this.updateChildOptions();\n this._updateOptions();\n this._updateSelectedText();\n }\n\n private updateChildOptions() {\n // Get all slotted kyn-dropdown-option elements\n const slot = this.shadowRoot?.querySelector('#children') as HTMLSlotElement;\n const options = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n // Pass allowAddOption to each kyn-dropdown-option\n options.forEach((option) => {\n if (\n option.tagName === 'KYN-DROPDOWN-OPTION' ||\n option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION'\n ) {\n (option as any).allowAddOption = this.allowAddOption;\n }\n });\n }\n\n private handleClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n // focus search input if searchable\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleListBlur(e: FocusEvent): void {\n if (this.multiple) {\n return;\n }\n\n this.options.forEach((o) => (o.highlighted = false));\n const target = e.relatedTarget as HTMLElement | null;\n\n if (\n target &&\n (target.closest('kyn-dropdown-option') ||\n target.closest('kyn-enhanced-dropdown-option') ||\n target.classList.contains('search') ||\n target.closest('.add-option'))\n ) {\n return;\n }\n\n this.open = false;\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n // visibleOptions.forEach((e) => (e.tabIndex = 0));\n\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : selectedEl\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button' || target === 'addOption') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl && keyCode === ENTER_KEY_CODE) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n if (\n this.allowAddOption &&\n target === 'button' &&\n keyCode === ENTER_KEY_CODE\n ) {\n setTimeout(() => {\n this.addOptionInputEl?.focus();\n }, 100);\n } else {\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({\n block: 'nearest',\n });\n }\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n this._handleClick({\n detail: {\n value: visibleOptions[highlightedIndex].value,\n selected: visibleOptions[highlightedIndex].selected,\n },\n });\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.updateValue(visibleOptions[highlightedIndex].value, true);\n this.emitValue();\n\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].value}`;\n }\n }\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n\n // restore focus\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(tag: any) {\n // remove value\n this.updateValue(tag.value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: any) {\n e.stopPropagation();\n this.open = true;\n }\n\n private handleSearchKeydown(e: any) {\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n if (searchText.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n return searchText.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (e.detail.value === 'selectAll') {\n this.selectAllChecked = e.detail.selected;\n\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n if (e.detail.selected) {\n this.value = this.options\n .filter(\n (option) => !option.disabled || (option.disabled && option.selected)\n )\n .map((option) => {\n return option.value;\n });\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = e.detail.selected\n ? `Selected ${e.detail.value}`\n : `Deselected ${e.detail.value}`;\n }\n\n this._updateSelectedOptions();\n\n if (this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget?.localName !== 'kyn-dropdown-option' &&\n relatedTarget?.localName !== 'kyn-enhanced-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n document.addEventListener('click', (e) => this._handleClickOut(e));\n\n // capture child options click event\n this.addEventListener('on-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-remove-option', () => this._handleRemoveOption());\n\n // capture child options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.removeEventListener('on-click', (e: any) => this._handleClick(e));\n this.removeEventListener('on-remove-option', () =>\n this._handleRemoveOption()\n );\n this.removeEventListener('on-blur', (e: any) => this._handleBlur(e));\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n const validationAnchor = this.buttonEl || this.listboxEl;\n\n if (validationAnchor) {\n this._internals.setValidity(\n Validity,\n ValidationMessage,\n validationAnchor\n );\n } else {\n this._internals.setValidity(Validity, ValidationMessage);\n }\n\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n const root = this.shadowRoot;\n if (!root) return;\n\n if (changedProps.has('open')) {\n const slot = root.querySelector<HTMLSlotElement>('slot[name=\"button\"]');\n const assigned = slot?.assignedElements({ flatten: true }) as\n | HTMLElement[]\n | undefined;\n const btn = assigned?.[0];\n const icon = btn?.querySelector<HTMLElement>('span[slot=\"icon\"]');\n if (icon) {\n icon.style.transition = 'transform 0.2s ease-in-out';\n icon.style.transform = this.open ? 'rotate(180deg)' : 'rotate(0deg)';\n }\n }\n\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this._updateOptions();\n\n const childrenSlot = root.querySelector<HTMLSlotElement>('slot#children');\n const options = childrenSlot\n ? childrenSlot\n .assignedElements()\n .filter((o): o is HTMLElement => !o.hasAttribute('disabled'))\n : [];\n const selected = options.filter((o) => o.hasAttribute('selected'));\n\n this.selectAllChecked = selected.length === options.length;\n this.selectAllIndeterminate =\n selected.length > 0 && selected.length < options.length;\n\n this._updateTags();\n this._updateSelectedText();\n }\n\n if (changedProps.has('open') || changedProps.has('openDirection')) {\n if (this.open && !this.searchable && this.listboxEl) {\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n\n if (this.openDirection === 'up') {\n this._openUpwards = true;\n } else if (this.openDirection === 'down') {\n this._openUpwards = false;\n } else if (this.open) {\n const rect = this.buttonEl.getBoundingClientRect();\n this._openUpwards = rect.top > window.innerHeight * 0.6;\n }\n\n if (this.open && !this.multiple) {\n const firstSelected = this.options.find((o) => o.selected);\n firstSelected?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n if (changedProps.has('multiple')) {\n this.options.forEach((opt) => (opt.multiple = this.multiple));\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n\n if (changedProps.has('allowAddOption')) {\n this.updateChildOptions();\n }\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n let text = option.textContent;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n text = titleSlot.textContent.trim();\n } else {\n text = option.displayText || option.value;\n }\n } else {\n text = option.textContent.trim();\n }\n\n Tags.push({\n value: option.value,\n text: text,\n disabled: option.disabled,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleInputNewOption(e: Event) {\n const target = e.target as HTMLInputElement;\n this.newOptionValue = target.value;\n }\n\n private _handleRemoveOption() {\n this.assistiveText = 'MY option removed ';\n setTimeout(() => {\n this.open = false;\n this.buttonEl.focus();\n }, 100);\n }\n\n private _updateSelectedText() {\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n if (option) {\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n this.text = titleSlot.textContent.trim();\n } else {\n this.text = option.displayText || this.value;\n }\n } else {\n this.text = option.textContent.trim();\n }\n } else {\n this.text = '';\n console.warn(`No dropdown option found with value: ${this.value}`);\n }\n }\n\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","clear","addItem","add","KEY","Dropdown","customElement","FormMixin","LitElement","_classThis","_classSuper","_Dropdown_label_accessor_storage","set","this","__runInitializers","_label_initializers","_Dropdown_size_accessor_storage","_label_extraInitializers","_size_initializers","_Dropdown_inline_accessor_storage","_size_extraInitializers","_inline_initializers","_Dropdown_caption_accessor_storage","_inline_extraInitializers","_caption_initializers","_Dropdown_placeholder_accessor_storage","_caption_extraInitializers","_placeholder_initializers","_Dropdown_open_accessor_storage","_placeholder_extraInitializers","_open_initializers","_Dropdown_searchable_accessor_storage","_open_extraInitializers","_searchable_initializers","_Dropdown_enhanced_accessor_storage","_searchable_extraInitializers","_enhanced_initializers","_Dropdown_filterSearch_accessor_storage","_enhanced_extraInitializers","_filterSearch_initializers","_Dropdown_multiple_accessor_storage","_filterSearch_extraInitializers","_multiple_initializers","_Dropdown_required_accessor_storage","_multiple_extraInitializers","_required_initializers","_Dropdown_hideLabel_accessor_storage","_required_extraInitializers","_hideLabel_initializers","_Dropdown_disabled_accessor_storage","_hideLabel_extraInitializers","_disabled_initializers","_Dropdown_hideTags_accessor_storage","_disabled_extraInitializers","_hideTags_initializers","_Dropdown_selectAll_accessor_storage","_hideTags_extraInitializers","_selectAll_initializers","_Dropdown_selectAllText_accessor_storage","_selectAll_extraInitializers","_selectAllText_initializers","_Dropdown_menuMinWidth_accessor_storage","_selectAllText_extraInitializers","_menuMinWidth_initializers","_Dropdown_openDirection_accessor_storage","_menuMinWidth_extraInitializers","_openDirection_initializers","_Dropdown_selectAllChecked_accessor_storage","_openDirection_extraInitializers","_selectAllChecked_initializers","_Dropdown_selectAllIndeterminate_accessor_storage","_selectAllChecked_extraInitializers","_selectAllIndeterminate_initializers","_Dropdown_textStrings_accessor_storage","_selectAllIndeterminate_extraInitializers","_textStrings_initializers","_Dropdown_allowAddOption_accessor_storage","_textStrings_extraInitializers","_allowAddOption_initializers","_Dropdown__textStrings_accessor_storage","_allowAddOption_extraInitializers","__textStrings_initializers","_Dropdown_newOptionValue_accessor_storage","__textStrings_extraInitializers","_newOptionValue_initializers","_Dropdown_text_accessor_storage","_newOptionValue_extraInitializers","_text_initializers","_Dropdown_searchText_accessor_storage","_text_extraInitializers","_searchText_initializers","_Dropdown_assistiveText_accessor_storage","_searchText_extraInitializers","_assistiveText_initializers","_Dropdown_searchEl_accessor_storage","_assistiveText_extraInitializers","_searchEl_initializers","_Dropdown_buttonEl_accessor_storage","_searchEl_extraInitializers","_buttonEl_initializers","_Dropdown_listboxEl_accessor_storage","_buttonEl_extraInitializers","_listboxEl_initializers","_Dropdown_clearMultipleEl_accessor_storage","_listboxEl_extraInitializers","_clearMultipleEl_initializers","_Dropdown_addOptionInputEl_accessor_storage","_clearMultipleEl_extraInitializers","_addOptionInputEl_initializers","_Dropdown__openUpwards_accessor_storage","_addOptionInputEl_extraInitializers","__openUpwards_initializers","_Dropdown__tags_accessor_storage","__openUpwards_extraInitializers","__tags_initializers","searchTextEntered","__tags_extraInitializers","prevSearchKeydownIndex","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","inline","caption","placeholder","open","searchable","enhanced","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","openDirection","selectAllChecked","selectAllIndeterminate","textStrings","allowAddOption","_textStrings","newOptionValue","text","searchText","assistiveText","options","Array","from","querySelectorAll","filter","opt","hasAttribute","searchEl","buttonEl","listboxEl","clearMultipleEl","addOptionInputEl","_openUpwards","_tags","render","html","name","_a","classMap","wrapper","handleAnchorClick","e","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","handleClear","renderHelperContent","key","focus","handleKeyboard","handleClick","handleButtonKeydown","v","trim","dispatchEvent","CustomEvent","detail","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","updateChildOptions","_updateOptions","_updateSelectedText","shadowRoot","querySelector","assignedElements","flatten","forEach","option","tagName","keyCode","o","highlighted","target","relatedTarget","closest","classList","contains","SPACEBAR_KEY_CODE","visibleOptions","style","display","highlightedEl","find","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","setTimeout","scrollIntoView","block","_handleClick","updateValue","emitValue","nextIndex","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","_handleBlur","origEvent","localName","_handleClickOut","composedPath","connectedCallback","super","_onConnected","document","addEventListener","_handleRemoveOption","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","validationAnchor","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","root","slot","assigned","btn","icon","transition","transform","_onUpdated","childrenSlot","_updateTags","preventScroll","rect","getBoundingClientRect","top","window","innerHeight","firstSelected","Options","Tags","Selected","AllOptions","console","warn","_label_decorators","property","type","String","_size_decorators","_inline_decorators","Boolean","_caption_decorators","_placeholder_decorators","reflect","_searchable_decorators","_enhanced_decorators","_filterSearch_decorators","_multiple_decorators","_required_decorators","_hideLabel_decorators","_disabled_decorators","_hideTags_decorators","_selectAll_decorators","_selectAllText_decorators","_menuMinWidth_decorators","_openDirection_decorators","_selectAllChecked_decorators","_selectAllIndeterminate_decorators","_textStrings_decorators","Object","_allowAddOption_decorators","__textStrings_decorators","state","_newOptionValue_decorators","_text_decorators","_searchText_decorators","_assistiveText_decorators","query","__openUpwards_decorators","__tags_decorators","__esDecorate","kind","static","private","access","obj","get","metadata","_metadata","_open_decorators","_searchEl_decorators","_buttonEl_decorators","_listboxEl_decorators","_clearMultipleEl_decorators","_addOptionInputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownScss"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../../../src/components/reusable/dropdown/dropdown.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, PropertyValues, html, unsafeCSS } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport DropdownScss from './dropdown.scss?inline';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport './dropdownOption';\nimport './enhancedDropdownOption';\nimport '../tag';\nimport '../button';\n\nimport { DropdownOption } from './dropdownOption';\nimport { EnhancedDropdownOption } from './enhancedDropdownOption';\n\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\nconst _defaultTextStrings = {\n title: 'Dropdown',\n selectedOptions: 'List of selected options',\n requiredText: 'Required',\n errorText: 'Error',\n clearAll: 'Clear all',\n clear: 'Clear',\n addItem: 'Add item...',\n add: 'Add',\n};\n\nconst KEY = {\n Enter: 'Enter',\n Escape: 'Escape',\n ArrowDown: 'ArrowDown',\n ArrowUp: 'ArrowUp',\n} as const;\n\n/**\n * Dropdown, single select.\n * @fires on-change - Captures the dropdown change event and emits the selected value and original event details. `detail:{ value: string/array }`\n * @fires on-search - Capture the search input event and emits the search text.`detail:{ searchText: string }`\n * @fires on-clear-all - Captures the the multi-select clear all button click event and emits the value. `detail:{ value: array }`\n * @fires on-add-option - Captures the add button click and emits the newly added option. `detail:{ value: string }`\n * @slot unnamed - Slot for dropdown options.\n * @slot tooltip - Slot for tooltip.\n * @slot anchor - Slot for custom dropdown anchor element. If not provided, defaults to standard input-style anchor.\n * @attr {string/array} [value=''/[]] - The selected value(s) of the input. For single select, it is a string. For multi-select, it is an array of strings.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-dropdown')\nexport class Dropdown extends FormMixin(LitElement) {\n static override styles = unsafeCSS(DropdownScss);\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Dropdown size/height. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Dropdown inline style type. */\n @property({ type: Boolean })\n accessor inline = false;\n\n /** Optional text beneath the input. */\n @property({ type: String })\n accessor caption = '';\n\n /** Dropdown placeholder. */\n @property({ type: String })\n accessor placeholder = '';\n\n /** Listbox/drawer open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Makes the dropdown searchable. */\n @property({ type: Boolean })\n accessor searchable = false;\n\n /** Makes the dropdown enhanced. */\n @property({ type: Boolean })\n accessor enhanced = false;\n\n /** Searchable variant filters results. */\n @property({ type: Boolean })\n accessor filterSearch = false;\n\n /** Enabled multi-select functionality. */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Makes the dropdown required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Visually hide the label. */\n @property({ type: Boolean })\n accessor hideLabel = false;\n\n /** Dropdown disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Hide the tags below multi-select. */\n @property({ type: Boolean })\n accessor hideTags = false;\n\n /** Adds a \"Select all\" option to the top of a multi-select dropdown. */\n @property({ type: Boolean })\n accessor selectAll = false;\n\n /** \"Select all\" text customization. */\n @property({ type: String })\n accessor selectAllText = 'Select all';\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Controls direction that dropdown opens. */\n @property({ type: String })\n accessor openDirection: 'auto' | 'up' | 'down' = 'auto';\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n accessor selectAllIndeterminate = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Enables the \"Add New Option\" feature. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /**\n * New dropdown option value.\n * @ignore\n */\n @state()\n accessor newOptionValue = '';\n\n /**\n * Selected option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text = '';\n\n /**\n * Search input value.\n */\n @property({ type: String })\n accessor searchText = '';\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Dropdown menu options.';\n\n /**\n * Queries any slotted options, default or enhanced.\n * @ignore\n */\n protected get options(): Array<DropdownOption | EnhancedDropdownOption> {\n return Array.from(\n this.querySelectorAll<DropdownOption | EnhancedDropdownOption>(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n }\n\n /**\n * Queries any slotted selected options.\n * @ignore\n */\n protected get selectedOptions(): Array<\n DropdownOption | EnhancedDropdownOption\n > {\n return this.options.filter(\n (opt): opt is DropdownOption | EnhancedDropdownOption =>\n opt.hasAttribute('selected')\n );\n }\n\n /**\n * Queries the .search DOM element.\n * @ignore\n */\n @query('.search')\n accessor searchEl!: HTMLInputElement;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Queries the .options DOM element.\n * @ignore\n */\n @query('.options')\n accessor listboxEl!: HTMLElement;\n\n /**\n * Queries the .clear-multiple DOM element.\n * @ignore\n */\n @query('.clear-multiple')\n accessor clearMultipleEl!: HTMLElement;\n\n /**\n * Queries the .add-option-input DOM element.\n * @ignore\n */\n @query('.add-option-input')\n accessor addOptionInputEl!: HTMLInputElement;\n\n /**\n * Open drawer upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Tags value/text reference.\n * @ignore\n */\n @state()\n accessor _tags: Array<object> = [];\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n searchTextEntered: any = false;\n\n /** Toggles on clicking enter key in the search input.\n * @internal\n */\n prevSearchKeydownIndex = -1;\n\n override render() {\n return html`\n <div\n class=\"dropdown\"\n ?disabled=${this.disabled}\n ?open=${this.open}\n ?inline=${this.inline}\n ?searchable=${this.searchable}\n >\n <label\n id=\"label-${this.name}\"\n class=\"label-text ${this.hideLabel || this.inline ? 'sr-only' : ''}\"\n for=${this.name}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText || 'Required'}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </label>\n\n <div\n class=${classMap({\n wrapper: true,\n open: this.open,\n })}\n >\n <div\n class=\"custom\"\n @click=${() => this.handleAnchorClick()}\n @keydown=${(e: any) => this.handleAnchorKeydown(e)}\n >\n <slot name=\"anchor\">\n <div\n class=\"${classMap({\n select: true,\n 'input-custom': true,\n 'size--sm': this.size === 'sm',\n 'size--lg': this.size === 'lg',\n inline: this.inline,\n })}\"\n aria-labelledby=\"label-${this.name}\"\n aria-expanded=${this.open}\n aria-controls=\"options\"\n role=\"combobox\"\n id=${this.name}\n name=${this.name}\n title=${this._textStrings.title}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this._isInvalid}\n tabindex=${this.disabled ? '' : '0'}\n @mousedown=${(e: any) => {\n if (!this.searchable) {\n e.preventDefault();\n }\n }}\n @blur=${(e: any) => e.stopPropagation()}\n >\n ${this.multiple && this.value.length\n ? html`\n <button\n class=\"clear-multiple\"\n aria-label=\"${this.value\n .length} items selected. Clear selections\"\n ?disabled=${this.disabled}\n title=${this._textStrings.clear}\n @click=${(e: Event) => this.handleClearMultiple(e)}\n >\n ${this.value.length}\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </button>\n `\n : null}\n ${this.searchable\n ? html`\n <input\n class=\"search\"\n type=\"text\"\n placeholder=${this.placeholder}\n value=${this.searchText}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n @keydown=${(e: any) => this.handleSearchKeydown(e)}\n @input=${(e: any) => this.handleSearchInput(e)}\n @blur=${(e: any) => e.stopPropagation()}\n @click=${(e: any) => this.handleSearchClick(e)}\n />\n `\n : html`\n <span\n class=\"${classMap({\n 'placeholder-text': this.text === '',\n })}\"\n >\n ${this.multiple\n ? this.placeholder\n : this.value === ''\n ? this.placeholder\n : this.text}\n </span>\n `}\n\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </div>\n </slot>\n\n <div\n id=\"options\"\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n >\n ${this.allowAddOption\n ? html`\n <div class=\"add-option\">\n <input\n class=\"add-option-input\"\n type=\"text\"\n placeholder=${this._textStrings.addItem}\n .value=${this.newOptionValue}\n aria-label=\"Add new option\"\n @input=${this._handleInputNewOption}\n @keydown=${this._onAddOptionInputKeydown}\n @focus=${this._onAddOptionInputFocus}\n />\n <kyn-button\n type=\"button\"\n size=\"small\"\n kind=\"secondary\"\n @on-click=${this._handleAddOption}\n >\n ${this._textStrings.add}\n </kyn-button>\n </div>\n `\n : null}\n\n <div role=\"listbox\" aria-labelledby=\"label-${this.name}\">\n ${this.multiple && this.selectAll\n ? html`\n ${this.enhanced\n ? html`\n <kyn-enhanced-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-enhanced-dropdown-option>\n `\n : html`\n <kyn-dropdown-option\n class=\"select-all\"\n value=\"selectAll\"\n multiple\n ?selected=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?disabled=${this.disabled}\n >\n ${this.selectAllText}\n </kyn-dropdown-option>\n `}\n `\n : null}\n\n <slot\n id=\"children\"\n @slotchange=${() => this.handleSlotChange()}\n ></slot>\n </div>\n </div>\n </div>\n ${this.searchText !== ''\n ? html`\n <kyn-button\n ?disabled=${this.disabled}\n class=\"clear-button dropdown-clear\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${(e: Event) => this.handleClear(e)}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n ${this.renderHelperContent()}\n </div>\n `;\n }\n\n private _onAddOptionInputKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n switch (e.key) {\n case KEY.Enter:\n this._handleAddOption();\n break;\n case KEY.Escape:\n this.newOptionValue = '';\n this.open = false;\n this.buttonEl.focus();\n break;\n case KEY.ArrowDown:\n this.handleKeyboard(e, 40, 'addOption');\n break;\n case KEY.ArrowUp:\n this.handleKeyboard(e, 38, 'addOption');\n break;\n }\n }\n\n private _onAddOptionInputFocus() {\n this.assistiveText = 'Add new option input';\n }\n\n private handleAnchorClick() {\n this.handleClick();\n }\n\n private handleAnchorKeydown(e: any) {\n this.handleButtonKeydown(e);\n }\n\n private _handleAddOption() {\n const v = this.newOptionValue.trim();\n if (!v) return;\n this.dispatchEvent(\n new CustomEvent('on-add-option', { detail: { value: v } })\n );\n this.newOptionValue = '';\n }\n\n private renderHelperContent() {\n return html`\n ${\n this.multiple && !this.hideTags && this._tags.length\n ? html`\n <kyn-tag-group\n filter\n role=\"list\"\n aria-label=${this._textStrings.selectedOptions}\n >\n ${this._tags.map((tag: any) => {\n return html`\n <kyn-tag\n role=\"listitem\"\n label=${tag.text}\n ?disabled=${this.disabled || tag.disabled}\n @on-close=${() => this.handleTagClear(tag)}\n ></kyn-tag>\n `;\n })}\n </kyn-tag-group>\n `\n : null\n }\n ${\n this.caption !== ''\n ? html`\n <div class=\"caption\" aria-disabled=${this.disabled}>\n ${this.caption}\n </div>\n `\n : null\n }\n ${\n this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n class=\"error-icon\"\n role=\"img\"\n title=${this._textStrings.errorText}\n aria-label=${this._textStrings.errorText}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null\n }\n\n <div\n class=\"assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\"\n >\n ${this.assistiveText}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // set a default placeholder if none provided\n if (this.placeholder === '') {\n if (this.searchable) {\n this.placeholder = 'Search';\n } else {\n if (this.multiple) {\n this.placeholder = 'Select items';\n } else {\n this.placeholder = 'Select an option';\n }\n }\n }\n }\n\n private handleSlotChange() {\n this.updateChildOptions();\n this._updateOptions();\n this._updateSelectedText();\n }\n\n private updateChildOptions() {\n // Get all slotted kyn-dropdown-option elements\n const slot = this.shadowRoot?.querySelector('#children') as HTMLSlotElement;\n const options = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n // Pass allowAddOption to each kyn-dropdown-option\n options.forEach((option) => {\n if (\n option.tagName === 'KYN-DROPDOWN-OPTION' ||\n option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION'\n ) {\n (option as any).allowAddOption = this.allowAddOption;\n }\n });\n }\n\n private handleClick() {\n if (!this.disabled) {\n this.open = !this.open;\n\n // focus search input if searchable\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleListBlur(e: FocusEvent): void {\n if (this.multiple) {\n return;\n }\n\n this.options.forEach((o) => (o.highlighted = false));\n const target = e.relatedTarget as HTMLElement | null;\n\n if (\n target &&\n (target.closest('kyn-dropdown-option') ||\n target.closest('kyn-enhanced-dropdown-option') ||\n target.classList.contains('search') ||\n target.closest('.add-option'))\n ) {\n return;\n }\n\n this.open = false;\n this.assistiveText = 'Dropdown menu options.';\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const selectAllOptions = Array.from(\n this.shadowRoot?.querySelectorAll('.select-all') || []\n ) as any[];\n const filteredOptions = this.options.filter(\n (option: any) => option.style.display !== 'none'\n );\n const visibleOptions = [...selectAllOptions, ...filteredOptions] as any[];\n // visibleOptions.forEach((e) => (e.tabIndex = 0));\n\n const highlightedEl = visibleOptions.find(\n (option: any) => option.highlighted\n );\n const selectedEl = visibleOptions.find((option: any) => option.selected);\n let highlightedIndex = highlightedEl\n ? visibleOptions.indexOf(highlightedEl)\n : selectedEl\n ? visibleOptions.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n const isListboxElOpened = this.open;\n // open the listbox\n if (target === 'button' || target === 'addOption') {\n let openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (e.target === this.clearMultipleEl && keyCode === ENTER_KEY_CODE) {\n openDropdown = false;\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n highlightedIndex = 0;\n if (keyCode !== ENTER_KEY_CODE) return;\n }\n\n if (openDropdown) {\n this.open = true;\n\n if (\n this.allowAddOption &&\n target === 'button' &&\n keyCode === ENTER_KEY_CODE\n ) {\n setTimeout(() => {\n this.addOptionInputEl?.focus();\n }, 100);\n } else {\n // scroll to highlighted option\n if (!this.multiple && this.value !== '') {\n visibleOptions[highlightedIndex].scrollIntoView({\n block: 'nearest',\n });\n }\n }\n }\n }\n switch (keyCode) {\n case 0:\n case 32:\n case ENTER_KEY_CODE: {\n // select highlighted option\n visibleOptions[highlightedIndex].highlighted = true;\n if (isListboxElOpened) {\n if (this.multiple) {\n visibleOptions[highlightedIndex].selected =\n !visibleOptions[highlightedIndex].selected;\n this._handleClick({\n detail: {\n value: visibleOptions[highlightedIndex].value,\n selected: visibleOptions[highlightedIndex].selected,\n },\n });\n } else {\n visibleOptions.forEach((e) => (e.selected = false));\n visibleOptions[highlightedIndex].selected = true;\n this.updateValue(visibleOptions[highlightedIndex].value, true);\n this.emitValue();\n\n this.open = false;\n this.assistiveText = `Selected ${visibleOptions[highlightedIndex].value}`;\n }\n }\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === visibleOptions.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === visibleOptions.length - 1 ? 0 : nextIndex + 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? visibleOptions.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (visibleOptions[nextIndex].disabled) {\n nextIndex =\n nextIndex === 0 ? visibleOptions.length - 1 : nextIndex - 1;\n }\n\n visibleOptions[nextIndex].focus();\n visibleOptions[highlightedIndex].highlighted = false;\n visibleOptions[nextIndex].highlighted = true;\n\n // scroll to option\n visibleOptions[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = visibleOptions[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n\n // restore focus\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n\n this.assistiveText = 'Dropdown menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private handleClearMultiple(e: any) {\n e.stopPropagation();\n\n // clear values\n if (this.multiple) {\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n } else {\n this.value = '';\n }\n\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n\n const event = new CustomEvent('on-clear-all', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleTagClear(tag: any) {\n // remove value\n this.updateValue(tag.value, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n\n private handleClear(e: any) {\n e.stopPropagation();\n\n // reset search input text\n this.text = '';\n this.searchText = '';\n this.searchEl.value = '';\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // reveal all options\n this.options.map((option: any) => {\n option.style.display = 'block';\n });\n }\n\n // clear selection for single select\n if (!this.multiple) {\n this.value = '';\n this._validate(true, false);\n this._updateSelectedOptions();\n this.emitValue();\n }\n }\n\n private handleSearchClick(e: any) {\n e.stopPropagation();\n this.open = true;\n }\n\n private handleSearchKeydown(e: any) {\n e.stopPropagation();\n\n const ENTER_KEY_CODE = 13;\n const ESCAPE_KEY_CODE = 27;\n const option = this.options.find((option) => option.highlighted);\n const highlightedIndex = this.options.findIndex(\n (option) => option.highlighted\n );\n this.searchTextEntered = false;\n // select option\n if (e.keyCode === ENTER_KEY_CODE) {\n this.searchTextEntered = true;\n if (option) {\n if (this.prevSearchKeydownIndex !== highlightedIndex) {\n if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.options.forEach((e) => (e.selected = false));\n option.selected = true;\n this.open = false;\n }\n this.updateValue(option.value, option.selected);\n }\n\n if (option.selected) {\n this.assistiveText = `Selected ${option.innerHTML}`;\n this.prevSearchKeydownIndex = highlightedIndex;\n } else {\n this.assistiveText = `Deselected ${option.innerHTML}`;\n }\n } else {\n this.assistiveText = 'No item matched.';\n }\n }\n\n // close listbox\n if (e.keyCode === ESCAPE_KEY_CODE) {\n this.open = false;\n this.buttonEl.focus();\n }\n }\n\n private handleSearchInput(e: any) {\n const value = e.target.value;\n this.searchText = value;\n this.open = true;\n\n this._emitSearch();\n\n if (this.filterSearch) {\n // hide items that don't match\n this.options.map((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n if (searchText.toLowerCase().includes(value.toLowerCase())) {\n option.style.display = 'block';\n } else {\n option.style.display = 'none';\n }\n });\n } else {\n // find matches\n const options = this.options.filter((option: any) => {\n let searchText = option.text;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n searchText = titleSlot.textContent.trim();\n } else {\n searchText = option.displayText || option.value;\n }\n }\n\n return searchText.toLowerCase().startsWith(value.toLowerCase());\n });\n\n // reset options highlighted state\n this.options.forEach((option) => (option.highlighted = false));\n\n // option highlight and scroll\n if (value !== '' && options.length) {\n options[0].highlighted = true;\n options[0].scrollIntoView({ block: 'nearest' });\n if (this.searchTextEntered) this.assistiveText = 'Option Matched';\n }\n }\n }\n\n private _updateSelectedOptions() {\n // set selected state for each option\n this.options.forEach((option: any) => {\n if (this.multiple) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleClick(e: any) {\n if (e.detail.value === 'selectAll') {\n this.selectAllChecked = e.detail.selected;\n\n const Slot: any = this.shadowRoot?.querySelector('slot#children');\n const Options: Array<any> = Slot.assignedElements();\n const DisabledSelectedOptions: Array<any> = Options.filter(\n (option: any) => option.selected && option.disabled\n ).map((option: any) => option.value);\n\n if (e.detail.selected) {\n this.value = this.options\n .filter(\n (option) => !option.disabled || (option.disabled && option.selected)\n )\n .map((option) => {\n return option.value;\n });\n this.assistiveText = 'Selected all items.';\n } else {\n this.value = DisabledSelectedOptions.length\n ? DisabledSelectedOptions\n : [];\n this.assistiveText = 'Deselected all items.';\n }\n\n this._validate(true, false);\n } else {\n this.updateValue(e.detail.value, e.detail.selected);\n this.assistiveText = e.detail.selected\n ? `Selected ${e.detail.value}`\n : `Deselected ${e.detail.value}`;\n }\n\n this._updateSelectedOptions();\n\n if (this.multiple) {\n this.open = false;\n }\n\n // emit selected value\n this.emitValue();\n }\n\n private _handleBlur(e: any) {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget?.localName !== 'kyn-dropdown-option' &&\n relatedTarget?.localName !== 'kyn-enhanced-dropdown-option' &&\n relatedTarget.localName !== 'kyn-dropdown')\n ) {\n this.open = false;\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n document.addEventListener('click', (e) => this._handleClickOut(e));\n\n // capture child options click event\n this.addEventListener('on-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-remove-option', () => this._handleRemoveOption());\n\n // capture child options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.removeEventListener('on-click', (e: any) => this._handleClick(e));\n this.removeEventListener('on-remove-option', () =>\n this._handleRemoveOption()\n );\n this.removeEventListener('on-blur', (e: any) => this._handleBlur(e));\n\n super.disconnectedCallback();\n }\n\n private updateValue(value: string, selected = false) {\n // set value\n if (this.multiple) {\n const values =\n this.value === '' ? [] : JSON.parse(JSON.stringify(this.value));\n\n // update array\n if (selected) {\n values.push(value);\n } else {\n const index = values.indexOf(value);\n values.splice(index, 1);\n }\n\n this.value = values;\n } else {\n this.value = value;\n }\n\n this._validate(true, false);\n\n // reset focus\n if (!this.multiple) {\n if (this.searchable) {\n this.searchEl.focus();\n } else {\n this.buttonEl.focus();\n }\n }\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n // set validity flags\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing:\n this.required &&\n (!this.value ||\n (this.multiple && !this.value.length) ||\n (!this.multiple && this.value === '')),\n };\n\n // set validationMessage\n const InternalMsg =\n this.required && !this.value.length ? 'Please fill out this field.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n const validationAnchor = this.buttonEl || this.listboxEl;\n\n if (validationAnchor) {\n this._internals.setValidity(\n Validity,\n ValidationMessage,\n validationAnchor\n );\n } else {\n this._internals.setValidity(Validity, ValidationMessage);\n }\n\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private emitValue() {\n const event = new CustomEvent('on-change', {\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _emitSearch() {\n const event = new CustomEvent('on-search', {\n detail: {\n searchText: this.searchText,\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n const root = this.shadowRoot;\n if (!root) return;\n\n if (changedProps.has('open')) {\n const slot = root.querySelector<HTMLSlotElement>('slot[name=\"anchor\"]');\n const assigned = slot?.assignedElements({ flatten: true }) as\n | HTMLElement[]\n | undefined;\n const btn = assigned?.[0];\n const icon = btn?.querySelector<HTMLElement>('span[slot=\"icon\"]');\n if (icon) {\n icon.style.transition = 'transform 0.2s ease-in-out';\n icon.style.transform = this.open ? 'rotate(180deg)' : 'rotate(0deg)';\n }\n }\n\n this._onUpdated(changedProps);\n\n if (changedProps.has('value')) {\n this._updateOptions();\n\n const childrenSlot = root.querySelector<HTMLSlotElement>('slot#children');\n const options = childrenSlot\n ? childrenSlot\n .assignedElements()\n .filter((o): o is HTMLElement => !o.hasAttribute('disabled'))\n : [];\n const selected = options.filter((o) => o.hasAttribute('selected'));\n\n this.selectAllChecked = selected.length === options.length;\n this.selectAllIndeterminate =\n selected.length > 0 && selected.length < options.length;\n\n this._updateTags();\n this._updateSelectedText();\n }\n\n if (changedProps.has('open') || changedProps.has('openDirection')) {\n if (this.open && !this.searchable && this.listboxEl) {\n this.listboxEl.focus({ preventScroll: true });\n this.assistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n }\n\n if (this.openDirection === 'up') {\n this._openUpwards = true;\n } else if (this.openDirection === 'down') {\n this._openUpwards = false;\n } else if (this.open) {\n const rect = this.buttonEl.getBoundingClientRect();\n this._openUpwards = rect.top > window.innerHeight * 0.6;\n }\n\n if (this.open && !this.multiple) {\n const firstSelected = this.options.find((o) => o.selected);\n firstSelected?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n if (changedProps.has('multiple')) {\n this.options.forEach((opt) => (opt.multiple = this.multiple));\n }\n\n if (changedProps.has('searchText') && this.searchEl) {\n this.searchEl.value = this.searchText;\n }\n\n if (changedProps.has('allowAddOption')) {\n this.updateChildOptions();\n }\n }\n\n // add selected options to Tags array\n private _updateTags() {\n if (this.multiple) {\n const Options: any = Array.from(\n this.querySelectorAll(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option'\n )\n );\n const Tags: Array<object> = [];\n\n if (Options) {\n Options.forEach((option: any) => {\n if (option.selected) {\n let text = option.textContent;\n\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n text = titleSlot.textContent.trim();\n } else {\n text = option.displayText || option.value;\n }\n } else {\n text = option.textContent.trim();\n }\n\n Tags.push({\n value: option.value,\n text: text,\n disabled: option.disabled,\n });\n }\n });\n\n this._tags = Tags;\n }\n }\n }\n\n private _updateOptions() {\n const Options: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n Options.forEach((option: any) => {\n // set option multiple state\n option.multiple = this.multiple;\n\n if (this.multiple) {\n const Selected = this.value.includes(option.value);\n // set option selected state\n option.selected = Selected;\n } else {\n option.selected = this.value === option.value;\n }\n });\n }\n\n private _handleInputNewOption(e: Event) {\n const target = e.target as HTMLInputElement;\n this.newOptionValue = target.value;\n }\n\n private _handleRemoveOption() {\n this.assistiveText = 'MY option removed ';\n setTimeout(() => {\n this.open = false;\n this.buttonEl.focus();\n }, 100);\n }\n\n private _updateSelectedText() {\n // update selected option text\n const AllOptions: any = Array.from(\n this.querySelectorAll('kyn-dropdown-option, kyn-enhanced-dropdown-option')\n );\n\n if (!this.multiple) {\n if (AllOptions.length && this.value !== '') {\n const option = AllOptions.find(\n (option: any) => option.value === this.value\n );\n if (option) {\n if (option.tagName === 'KYN-ENHANCED-DROPDOWN-OPTION') {\n const titleSlot = option.querySelector('[slot=\"title\"]');\n if (titleSlot && titleSlot.textContent.trim()) {\n this.text = titleSlot.textContent.trim();\n } else {\n this.text = option.displayText || this.value;\n }\n } else {\n this.text = option.textContent.trim();\n }\n } else {\n this.text = '';\n console.warn(`No dropdown option found with value: ${this.value}`);\n }\n }\n\n if (this.searchable && this.text) {\n this.searchText = this.text === this.placeholder ? '' : this.text;\n this.searchEl.value = this.searchText;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown': Dropdown;\n }\n}\n"],"names":["_defaultTextStrings","title","selectedOptions","requiredText","errorText","clearAll","clear","addItem","add","KEY","Dropdown","customElement","FormMixin","LitElement","_classThis","_classSuper","_Dropdown_label_accessor_storage","set","this","__runInitializers","_label_initializers","_Dropdown_size_accessor_storage","_label_extraInitializers","_size_initializers","_Dropdown_inline_accessor_storage","_size_extraInitializers","_inline_initializers","_Dropdown_caption_accessor_storage","_inline_extraInitializers","_caption_initializers","_Dropdown_placeholder_accessor_storage","_caption_extraInitializers","_placeholder_initializers","_Dropdown_open_accessor_storage","_placeholder_extraInitializers","_open_initializers","_Dropdown_searchable_accessor_storage","_open_extraInitializers","_searchable_initializers","_Dropdown_enhanced_accessor_storage","_searchable_extraInitializers","_enhanced_initializers","_Dropdown_filterSearch_accessor_storage","_enhanced_extraInitializers","_filterSearch_initializers","_Dropdown_multiple_accessor_storage","_filterSearch_extraInitializers","_multiple_initializers","_Dropdown_required_accessor_storage","_multiple_extraInitializers","_required_initializers","_Dropdown_hideLabel_accessor_storage","_required_extraInitializers","_hideLabel_initializers","_Dropdown_disabled_accessor_storage","_hideLabel_extraInitializers","_disabled_initializers","_Dropdown_hideTags_accessor_storage","_disabled_extraInitializers","_hideTags_initializers","_Dropdown_selectAll_accessor_storage","_hideTags_extraInitializers","_selectAll_initializers","_Dropdown_selectAllText_accessor_storage","_selectAll_extraInitializers","_selectAllText_initializers","_Dropdown_menuMinWidth_accessor_storage","_selectAllText_extraInitializers","_menuMinWidth_initializers","_Dropdown_openDirection_accessor_storage","_menuMinWidth_extraInitializers","_openDirection_initializers","_Dropdown_selectAllChecked_accessor_storage","_openDirection_extraInitializers","_selectAllChecked_initializers","_Dropdown_selectAllIndeterminate_accessor_storage","_selectAllChecked_extraInitializers","_selectAllIndeterminate_initializers","_Dropdown_textStrings_accessor_storage","_selectAllIndeterminate_extraInitializers","_textStrings_initializers","_Dropdown_allowAddOption_accessor_storage","_textStrings_extraInitializers","_allowAddOption_initializers","_Dropdown__textStrings_accessor_storage","_allowAddOption_extraInitializers","__textStrings_initializers","_Dropdown_newOptionValue_accessor_storage","__textStrings_extraInitializers","_newOptionValue_initializers","_Dropdown_text_accessor_storage","_newOptionValue_extraInitializers","_text_initializers","_Dropdown_searchText_accessor_storage","_text_extraInitializers","_searchText_initializers","_Dropdown_assistiveText_accessor_storage","_searchText_extraInitializers","_assistiveText_initializers","_Dropdown_searchEl_accessor_storage","_assistiveText_extraInitializers","_searchEl_initializers","_Dropdown_buttonEl_accessor_storage","_searchEl_extraInitializers","_buttonEl_initializers","_Dropdown_listboxEl_accessor_storage","_buttonEl_extraInitializers","_listboxEl_initializers","_Dropdown_clearMultipleEl_accessor_storage","_listboxEl_extraInitializers","_clearMultipleEl_initializers","_Dropdown_addOptionInputEl_accessor_storage","_clearMultipleEl_extraInitializers","_addOptionInputEl_initializers","_Dropdown__openUpwards_accessor_storage","_addOptionInputEl_extraInitializers","__openUpwards_initializers","_Dropdown__tags_accessor_storage","__openUpwards_extraInitializers","__tags_initializers","searchTextEntered","__tags_extraInitializers","prevSearchKeydownIndex","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","inline","caption","placeholder","open","searchable","enhanced","filterSearch","multiple","required","hideLabel","disabled","hideTags","selectAll","selectAllText","menuMinWidth","openDirection","selectAllChecked","selectAllIndeterminate","textStrings","allowAddOption","_textStrings","newOptionValue","text","searchText","assistiveText","options","Array","from","querySelectorAll","filter","opt","hasAttribute","searchEl","buttonEl","listboxEl","clearMultipleEl","addOptionInputEl","_openUpwards","_tags","render","html","name","_a","classMap","wrapper","handleAnchorClick","e","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","handleClear","renderHelperContent","key","focus","handleKeyboard","handleClick","handleButtonKeydown","v","trim","dispatchEvent","CustomEvent","detail","map","tag","handleTagClear","errorIcon","invalidText","_internalValidationMsg","firstUpdated","updateChildOptions","_updateOptions","_updateSelectedText","shadowRoot","querySelector","assignedElements","flatten","forEach","option","tagName","keyCode","o","highlighted","target","relatedTarget","closest","classList","contains","SPACEBAR_KEY_CODE","visibleOptions","style","display","highlightedEl","find","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","setTimeout","scrollIntoView","block","_handleClick","updateValue","emitValue","nextIndex","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","_handleBlur","origEvent","localName","_handleClickOut","composedPath","connectedCallback","super","_onConnected","document","addEventListener","_handleRemoveOption","disconnectedCallback","_onDisconnected","removeEventListener","values","JSON","parse","stringify","push","index","splice","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","validationAnchor","_internals","setValidity","reportValidity","willUpdate","changedProps","has","deepmerge","updated","root","slot","assigned","btn","icon","transition","transform","_onUpdated","childrenSlot","_updateTags","preventScroll","rect","getBoundingClientRect","top","window","innerHeight","firstSelected","Options","Tags","Selected","AllOptions","console","warn","_label_decorators","property","type","String","_size_decorators","_inline_decorators","Boolean","_caption_decorators","_placeholder_decorators","reflect","_searchable_decorators","_enhanced_decorators","_filterSearch_decorators","_multiple_decorators","_required_decorators","_hideLabel_decorators","_disabled_decorators","_hideTags_decorators","_selectAll_decorators","_selectAllText_decorators","_menuMinWidth_decorators","_openDirection_decorators","_selectAllChecked_decorators","_selectAllIndeterminate_decorators","_textStrings_decorators","Object","_allowAddOption_decorators","__textStrings_decorators","state","_newOptionValue_decorators","_text_decorators","_searchText_decorators","_assistiveText_decorators","query","__openUpwards_decorators","__tags_decorators","__esDecorate","kind","static","private","access","obj","get","metadata","_metadata","_open_decorators","_searchEl_decorators","_buttonEl_decorators","_listboxEl_decorators","_clearMultipleEl_decorators","_addOptionInputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownScss"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.55.0",
3
+ "version": "2.55.1",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "license": "MIT",
6
6
  "main": "index.js",