@kyndryl-design-system/shidoka-applications 2.58.8 → 2.58.9

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.
@@ -665,8 +665,9 @@ slot[name=icon]::slotted(*) {
665
665
  display: inline-flex;
666
666
  align-items: center;
667
667
  justify-content: space-between;
668
+ gap: 2px;
668
669
  border: none;
669
- width: 24px;
670
+ min-width: 24px;
670
671
  height: 24px;
671
672
  padding: 8px;
672
673
  border-radius: 4px;
@@ -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/16/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 kind. */\n @property({ type: String, attribute: 'kind' })\n accessor kind: 'ai' | 'default' = 'default';\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 private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onChildClick = (e: Event) => this._handleClick(e as any);\n private _onChildRemove = (_e: Event) => this._handleRemoveOption();\n private _onChildBlur = (e: Event) => this._handleBlur(e as any);\n\n override render() {\n const mainDropdownClasses = {\n dropdown: true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(mainDropdownClasses)}\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=${(e: MouseEvent) => this.handleAnchorClick(e)}\n @keydown=${(e: KeyboardEvent) => 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 ? '' : this.searchable ? '-1' : '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;\" class=\"clear-multiple-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 style=\"min-width: ${this.menuMinWidth};\"\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n @focus=${this._handleListFocus}\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.hasSearch && this.open\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;\">${unsafeSVG(clearIcon)}</span>\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(e: MouseEvent) {\n if (this.disabled) return;\n\n const path = (e.composedPath?.() || []) as Array<EventTarget>;\n const isInOptions =\n path.some((t) => (t as HTMLElement)?.classList?.contains('options')) ||\n (e.target as HTMLElement)?.closest?.(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option, .add-option'\n );\n\n if (isInOptions) return;\n\n this.handleClick();\n }\n private handleAnchorKeydown(e: any) {\n if (this.disabled) return;\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 _handleListFocus() {\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\n const firstEnabled = visibleOptions.find((o: any) => !o.disabled) as any;\n if (!firstEnabled) return;\n\n visibleOptions.forEach((o: any) => (o.highlighted = false));\n\n if (!('tabIndex' in firstEnabled) || firstEnabled.tabIndex < 0) {\n firstEnabled.tabIndex = 0;\n }\n firstEnabled.focus();\n firstEnabled.scrollIntoView({ block: 'nearest' });\n this.assistiveText = firstEnabled.text || 'Option';\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 if ((this.searchText ?? '').trim() === '') this.searchText = '';\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) => option.value);\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 this._onConnected();\n\n document.addEventListener('click', this._onDocumentClick);\n\n this.addEventListener('on-click', this._onChildClick);\n this.addEventListener('on-remove-option', this._onChildRemove);\n this.addEventListener('on-blur', this._onChildBlur);\n }\n\n override disconnectedCallback() {\n this._onDisconnected();\n\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-click', this._onChildClick);\n this.removeEventListener('on-remove-option', this._onChildRemove);\n this.removeEventListener('on-blur', this._onChildBlur);\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 if (changedProps.has('kind')) {\n this.dispatchEvent(\n new CustomEvent('kind-changed', {\n detail: this.kind,\n bubbles: true,\n composed: true,\n })\n );\n\n this.classList.toggle('ai-connected-true', this.kind === 'ai');\n }\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?.find(\n (el) => !el.querySelector('.clear-multiple-icon')\n );\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) {\n this.options.forEach((o) => (o.highlighted = false));\n\n if (!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\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 private get hasSearch(): boolean {\n return (this.searchText ?? '').trim().length > 0;\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_kind_accessor_storage","_size_extraInitializers","_kind_initializers","_Dropdown_inline_accessor_storage","_kind_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","_onDocumentClick","e","_handleClickOut","_onChildClick","_handleClick","_onChildRemove","_e","_handleRemoveOption","_onChildBlur","_handleBlur","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","kind","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","mainDropdownClasses","dropdown","html","classMap","name","_a","wrapper","handleAnchorClick","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleListFocus","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","hasSearch","handleClear","renderHelperContent","key","focus","handleKeyboard","isInOptions","composedPath","call","some","t","classList","contains","_c","_b","target","closest","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","visibleOptions","style","display","firstEnabled","find","o","highlighted","tabIndex","scrollIntoView","block","relatedTarget","SPACEBAR_KEY_CODE","highlightedEl","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","setTimeout","updateValue","emitValue","nextIndex","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","origEvent","localName","connectedCallback","super","_onConnected","document","addEventListener","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","bubbles","composed","toggle","root","slot","assigned","btn","el","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","attribute","_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","static","private","access","obj","get","metadata","_metadata","_kind_decorators","_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/16/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 kind. */\n @property({ type: String, attribute: 'kind' })\n accessor kind: 'ai' | 'default' = 'default';\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 private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onChildClick = (e: Event) => this._handleClick(e as any);\n private _onChildRemove = (_e: Event) => this._handleRemoveOption();\n private _onChildBlur = (e: Event) => this._handleBlur(e as any);\n\n override render() {\n const mainDropdownClasses = {\n dropdown: true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(mainDropdownClasses)}\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=${(e: MouseEvent) => this.handleAnchorClick(e)}\n @keydown=${(e: KeyboardEvent) => 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 ? '' : this.searchable ? '-1' : '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;\" class=\"clear-multiple-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 style=\"min-width: ${this.menuMinWidth};\"\n aria-hidden=${!this.open}\n @keydown=${this.handleListKeydown}\n @blur=${this.handleListBlur}\n @focus=${this._handleListFocus}\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.hasSearch && this.open\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;\">${unsafeSVG(clearIcon)}</span>\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(e: MouseEvent) {\n if (this.disabled) return;\n\n const path = (e.composedPath?.() || []) as Array<EventTarget>;\n const isInOptions =\n path.some((t) => (t as HTMLElement)?.classList?.contains('options')) ||\n (e.target as HTMLElement)?.closest?.(\n 'kyn-dropdown-option, kyn-enhanced-dropdown-option, .add-option'\n );\n\n if (isInOptions) return;\n\n this.handleClick();\n }\n private handleAnchorKeydown(e: any) {\n if (this.disabled) return;\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 _handleListFocus() {\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\n const firstEnabled = visibleOptions.find((o: any) => !o.disabled) as any;\n if (!firstEnabled) return;\n\n visibleOptions.forEach((o: any) => (o.highlighted = false));\n\n if (!('tabIndex' in firstEnabled) || firstEnabled.tabIndex < 0) {\n firstEnabled.tabIndex = 0;\n }\n firstEnabled.focus();\n firstEnabled.scrollIntoView({ block: 'nearest' });\n this.assistiveText = firstEnabled.text || 'Option';\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 if ((this.searchText ?? '').trim() === '') this.searchText = '';\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) => option.value);\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 this._onConnected();\n\n document.addEventListener('click', this._onDocumentClick);\n\n this.addEventListener('on-click', this._onChildClick);\n this.addEventListener('on-remove-option', this._onChildRemove);\n this.addEventListener('on-blur', this._onChildBlur);\n }\n\n override disconnectedCallback() {\n this._onDisconnected();\n\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-click', this._onChildClick);\n this.removeEventListener('on-remove-option', this._onChildRemove);\n this.removeEventListener('on-blur', this._onChildBlur);\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 if (changedProps.has('kind')) {\n this.dispatchEvent(\n new CustomEvent('kind-changed', {\n detail: this.kind,\n bubbles: true,\n composed: true,\n })\n );\n\n this.classList.toggle('ai-connected-true', this.kind === 'ai');\n }\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?.find(\n (el) => !el.querySelector('.clear-multiple-icon')\n );\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) {\n this.options.forEach((o) => (o.highlighted = false));\n\n if (!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\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 private get hasSearch(): boolean {\n return (this.searchText ?? '').trim().length > 0;\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_kind_accessor_storage","_size_extraInitializers","_kind_initializers","_Dropdown_inline_accessor_storage","_kind_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","_onDocumentClick","e","_handleClickOut","_onChildClick","_handleClick","_onChildRemove","_e","_handleRemoveOption","_onChildBlur","_handleBlur","label","__classPrivateFieldGet","value","__classPrivateFieldSet","size","kind","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","mainDropdownClasses","dropdown","html","classMap","name","_a","wrapper","handleAnchorClick","handleAnchorKeydown","select","_isInvalid","preventDefault","stopPropagation","length","handleClearMultiple","unsafeSVG","clearIcon","handleSearchKeydown","handleSearchInput","handleSearchClick","downIcon","upwards","handleListKeydown","handleListBlur","_handleListFocus","_handleInputNewOption","_onAddOptionInputKeydown","_onAddOptionInputFocus","_handleAddOption","handleSlotChange","hasSearch","handleClear","renderHelperContent","key","focus","handleKeyboard","isInOptions","composedPath","call","some","t","classList","contains","_c","_b","target","closest","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","visibleOptions","style","display","firstEnabled","find","o","highlighted","tabIndex","scrollIntoView","block","relatedTarget","SPACEBAR_KEY_CODE","highlightedEl","selectedEl","selected","highlightedIndex","indexOf","includes","isListboxElOpened","openDropdown","setTimeout","updateValue","emitValue","nextIndex","DisabledSelectedOptions","_validate","_updateSelectedOptions","event","_emitSearch","findIndex","innerHTML","titleSlot","textContent","displayText","toLowerCase","startsWith","origEvent","localName","connectedCallback","super","_onConnected","document","addEventListener","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","bubbles","composed","toggle","root","slot","assigned","btn","el","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","attribute","_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","static","private","access","obj","get","metadata","_metadata","_kind_decorators","_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.58.8",
3
+ "version": "2.58.9",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "license": "MIT",
6
6
  "main": "index.js",