@aquera/nile-elements 1.4.1 → 1.4.2
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.
- package/README.md +5 -2
- package/demo/variables.css +1 -0
- package/dist/index.js +3 -3
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.esm.js +9 -9
- package/dist/src/nile-auto-complete/nile-auto-complete.js +4 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.js +4 -1
- package/dist/src/nile-chip/nile-chip.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-auto-complete/nile-auto-complete.ts +4 -1
- package/src/nile-chip/nile-chip.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-chip.cjs.js","sources":["../../../src/nile-chip/nile-chip.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValues,\n} from 'lit';\nimport { customElement, query, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-chip.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HasSlotController } from '../internal/slot';\nimport NileElement, { NileFormControl } from '../internal/nile-element';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\ninterface CustomEventDetail {\n value: string;\n}\n\n@customElement('nile-chip')\nexport class NileChip extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @state() tags: string[] = [];\n\n @state() inputValue: string = '';\n\n @state() isDropdownOpen: boolean = false;\n @state() tooltips: (string | null)[] = [];\n @state() private chipFocusIndex: number | null = null;\n\n\n @query('nile-auto-complete') autoComplete!: any;\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n@property({ type: Boolean }) noAutoComplete = false;\n\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /** Disables the duplicate entries. */\n @property({ type: Boolean }) noDuplicates = false;\n\n /** The input's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n @property({ type: String }) tagVariant: string = ''; // can be '', 'normal', 'success', etc.\n\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) acceptUserInput = false;\n\n /** When true, adds a chip when the input loses focus or when clicking outside the component. Only works when acceptUserInput is true. */\n @property({ type: Boolean }) addOnBlur = false;\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /** Placeholder text to show as a hint when the input is empty. */\n @property() placeholder = 'type here...';\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When true, the dropdown menu will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n // AUTO-COMPLETE-OPTIONS\n\n /** Virtual scroll in dropdown options. */\n @property({ type: Boolean }) enableVirtualScroll = false;\n\n @property({ type: Array }) autoCompleteOptions: any[] = [];\n\n @property({ type: Array }) filteredAutoCompleteOptions: any[] = [];\n\n @property({ type: Array }) value: any[] = [];\n\n @property({ type: Boolean }) noWrap: boolean = false;\n\n @property({ type: Boolean }) loading: boolean = false;\n\n @property({ type: Array }) errorIndexes: number[] = [];\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n @property({ attribute:false}) filterFunction: (item:string,searchedValue:string)=>boolean = (item:string,searchedValue:string)=>item.toLowerCase().includes(searchedValue.toLowerCase());\n\n @property({ attribute:false}) renderItemFunction: (item:any)=>string = (item:any)=>item;\n\n private visibilityManager?: VisibilityManager;\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n @property({ type: Boolean }) showTooltip: boolean = false;\n\n @property({ type: Boolean }) enableTagDelete = false;\n\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('autoCompleteOptions')) {\n let options = this.autoCompleteOptions;\n if (typeof options === 'string') {\n try {\n options = JSON.parse(options);\n } catch (e) {\n options = [];\n }\n }\n this.filteredAutoCompleteOptions = Array.isArray(options) ? [...options] : [];\n if (this.noDuplicates) {\n this.filteredAutoCompleteOptions =\n this.filteredAutoCompleteOptions.filter(\n option => !this.value.includes(option)\n );\n }\n }\n if (changedProperties.has('value')){\n this.tags = [...this.value];\n this.onTagsChanged();\n }\n if (changedProperties.has('tags')){\n this.onTagsChanged();\n }\n }\n \n protected async firstUpdated(_changed: PropertyValues) {\n await this.updateComplete;\n \n const inputTarget =\n this.noAutoComplete\n ? this.renderRoot.querySelector('nile-input')?.input\n : this.autoComplete?.inputElement?.input || this.autoComplete?.inputElement;\n \n this.visibilityManager = new VisibilityManager({\n host: this,\n target: inputTarget,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.isDropdownOpen,\n onAnchorOutOfView: () => {\n this.isDropdownOpen = false;\n if (this.autoComplete) {\n this.autoComplete.isDropdownOpen = false;\n } \n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this.isDropdownOpen = false;\n if (this.autoComplete) {\n this.autoComplete.isDropdownOpen = false;\n }\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n\n \n private handleDocumentClick = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n if (this.addOnBlur && this.acceptUserInput && this.inputValue) {\n this.addChipFromInputValue();\n }\n this.isDropdownOpen = false; \n }\n };\n \n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.handleDocumentClick);\n if (this.noDuplicates) {\n this.filteredAutoCompleteOptions =\n this.filteredAutoCompleteOptions.filter(\n option => !this.value.includes(option)\n );\n }\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.visibilityManager?.cleanup();\n document.removeEventListener('click', this.handleDocumentClick);\n this.emit('nile-destroy');\n }\n\n render() {\n // Check if slots are present\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n\n // Check if label and help text are present\n const hasLabel = this.label ? true : !!hasLabelSlot;\n\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n 'nile-chip--disabled': this.disabled,\n })}\n >\n <label\n part=\"form-control-label\"\n class=\"form-control__label\"\n for=\"input\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n <div\n part='base' \n class=${classMap({\n 'nile-chip': true,\n 'nile-chip--warning': this.warning,\n 'nile-chip--error': this.error,\n 'nile-chip--success': this.success,\n 'nile-chip--no-wrap': this.noWrap,\n 'nile-chip--open': this.isDropdownOpen, \n })}\n >\n ${this.tags.map((tag, index) => {\n const tooltipContent = this.tooltips[index];\n const isFocused = this.enableTagDelete && this.chipFocusIndex === index;\n const tagText = tag ? tag.toString() : \"\";\n const tagTemplate = html`\n <nile-tag\n class=${classMap({\n 'nile-chip__tags': true,\n 'nile-chip__tags--focused': isFocused,\n })}\n aria-selected=${isFocused ? 'true' : 'false'}\n .variant=${this.errorIndexes.includes(index)\n ? 'error'\n : 'normal'}\n @nile-remove=${() => this.handleRemove(tag)}\n removable\n ?pill=${this.tagVariant !== 'normal'}\n ?disabled=${this.disabled}\n >\n ${unsafeHTML(tagText)}\n </nile-tag>\n `;\n\n if (this.showTooltip && tooltipContent) {\n return html`\n <nile-lite-tooltip allowHTML .content=${tooltipContent}>\n ${tagTemplate}\n </nile-lite-tooltip>\n `;\n }\n\n return tagTemplate;\n })}\n\n <div class=\"nile-chip__auto-complete\">\n ${this.noAutoComplete\n ? html`\n <nile-input\n .value=${this.inputValue}\n .placeholder=${this.placeholder}\n .disabled=${this.disabled}\n ?no-border=${true}\n ?no-outline=${true}\n ?no-padding=${true}\n @nile-input=${this.handleInputChange}\n @keydown=${this.handleInputKeydown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n exportparts=\"input\"\n ></nile-input>\n `\n : html`\n <nile-auto-complete\n .enableVirtualScroll=${this.enableVirtualScroll}\n .allMenuItems=${this.filteredAutoCompleteOptions}\n .filterFunction=${this.filterFunction}\n .renderItemFunction=${this.renderItemFunction}\n .showTooltips=${this.showTooltip}\n .loading=\"${this.loading}\"\n .value=${this.inputValue}\n ?isDropdownOpen=${this.isDropdownOpen}\n .noBorder=${true}\n .noOutline=${true}\n .noPadding=${true}\n .disabled=${this.disabled}\n .readonly=${this.readonly}\n .portal=${this.portal}\n openOnFocus\n exportparts=\"options__wrapper, input, base\"\n .placeholder=${this.placeholder}\n @nile-input=${this.handleInputChange}\n @keydown=${this.handleInputKeydown}\n @nile-focus=${this.handleFocus}\n @nile-blur=${this.handleBlur}\n @nile-complete=${this.handleSelect}\n ></nile-auto-complete>\n `}\n </div>\n </div>\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n </div>\n `;\n }\n\n private handleSelect(event: CustomEvent<CustomEventDetail>) {\n // Add the selected value to the tags array only if it doesn't already exist\n const selectedValue = event.detail.value;\n const selectedOption = this.autoCompleteOptions.find(\n (opt) => opt.name === selectedValue || opt.id === selectedValue\n );\n\n let tooltipContent: string | null = null;\n \n if (this.showTooltip) {\n if (selectedOption?.tooltip?.content) {\n const { content, for: showFor } = selectedOption.tooltip;\n if (!showFor || showFor === 'tag') {\n if (content instanceof Promise) {\n this.tooltips = [...this.tooltips, 'Loading...'];\n \n const currentIndex = this.tooltips.length - 1;\n content.then((resolved) => {\n this.tooltips[currentIndex] = resolved;\n this.requestUpdate();\n });\n } else {\n tooltipContent = content;\n }\n }\n } else {\n tooltipContent = selectedOption?.name || selectedValue;\n }\n }\n\n if (!this.noDuplicates || !this.tags.includes(selectedValue)) {\n this.tags = [...this.tags, selectedValue];\n \n\n if (!(selectedOption?.tooltip?.content instanceof Promise)) {\n this.tooltips = [...this.tooltips, tooltipContent];\n }\n \n this.emit('nile-chip-change', { value: this.tags });\n this.resetInput();\n }\n }\n\n private handleRemove(value: string) {\n // Remove the tag from the tags array\n this.tags = this.tags.filter(tag => tag !== value);\n\n if (this.noDuplicates && this.autoCompleteOptions.includes(value)) {\n this.filteredAutoCompleteOptions = [\n ...this.filteredAutoCompleteOptions,\n value,\n ];\n }\n this.emit('nile-chip-change', { value: this.tags });\n }\n\n private handleInputChange(event: CustomEvent<CustomEventDetail>) {\n // Update the input value\n this.inputValue = event.detail.value;\n }\n\n private addChipFromInputValue(): boolean {\n if (this.noDuplicates && this.tags.includes(this.inputValue)) {\n this.emit('nile-duplicates-blocked');\n return false;\n }\n\n this.tags = [...this.tags, this.inputValue];\n if (this.showTooltip) {\n this.tooltips = [...this.tooltips, this.inputValue];\n } else {\n this.tooltips = [...this.tooltips, null];\n }\n\n this.inputValue = '';\n this.visibilityManager?.cleanup();\n this.emit('nile-chip-change', { value: this.tags });\n return true;\n }\n\n private handleInputKeydown(event: KeyboardEvent) {\n if (\n this.enableTagDelete &&\n (event.key === 'Backspace' || event.key === 'Delete') &&\n !this.inputValue &&\n !this.readonly &&\n !this.disabled\n ) {\n if (this.tags.length === 0) {\n this.chipFocusIndex = null;\n return;\n }\n\n event.preventDefault();\n if (this.chipFocusIndex === null) {\n this.chipFocusIndex = this.tags.length - 1;\n this.requestUpdate();\n return;\n }\n const index = this.chipFocusIndex;\n const removedTag = this.tags[index];\n\n this.tags = this.tags.filter((_, i) => i !== index);\n this.tooltips = this.tooltips.filter((_, i) => i !== index);\n\n this.emit('nile-chip-change', { value: this.tags });\n if (this.tags.length > 0) {\n this.chipFocusIndex = Math.max(0, index - 1);\n } else {\n this.chipFocusIndex = null;\n }\n\n return;\n }\n\n if (this.readonly) {\n const allowedKeys = ['ArrowUp', 'ArrowDown', 'Enter', 'Tab'];\n if (!allowedKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n }\n\n if (!this.acceptUserInput) {\n return;\n }\n\n if(event.key === 'Tab'){\n event.preventDefault()\n }\n \n if (\n (event.key === 'Enter' || event.key === 'Tab' ) \n && this.inputValue \n && (!this.noDuplicates || !this.tags.includes(this.inputValue))\n ) {\n event.preventDefault()\n this.tags = [...this.tags, this.inputValue];\n if (this.showTooltip) {\n this.tooltips = [...this.tooltips, this.inputValue];\n } else {\n this.tooltips = [...this.tooltips, null];\n }\n \n this.resetInput();\n this.emit('nile-chip-change', { value: this.tags });\n }\n\n if(\n (event.key === 'Enter'|| event.key === 'Tab' ) \n && this.inputValue \n && (this.noDuplicates || this.tags.includes(this.inputValue))\n ){\n this.emit('nile-duplicates-blocked');\n }\n }\n\n private handleFocus() {\n if (this.noAutoComplete) {\n return;\n }\n this.visibilityManager?.setup();\n this.isDropdownOpen = true;\n }\n\n private handleBlur() {\n if (this.addOnBlur && this.acceptUserInput && this.inputValue) {\n this.addChipFromInputValue();\n }\n }\n\n onTagsChanged() {\n if (this.noDuplicates)\n this.filteredAutoCompleteOptions = this.filteredAutoCompleteOptions.filter(option => !this.tags.includes(option));\n }\n\n\n private resetInput() {\n // Reset the input-related properties\n this.inputValue = '';\n this.isDropdownOpen = false;\n this.visibilityManager?.cleanup();\n if (!this.noAutoComplete && this.autoComplete) {\n this.autoComplete.value = '';\n this.autoComplete.handleFocus();\n }\n } \n}\n\nexport default NileChip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-chip': NileChip;\n }\n}\n"],"names":["NileChip","d","this","hasSlotController","HasSlotController","tags","inputValue","isDropdownOpen","tooltips","chipFocusIndex","warning","noAutoComplete","error","success","noDuplicates","label","tagVariant","acceptUserInput","addOnBlur","clearable","placeholder","readonly","disabled","portal","enableVirtualScroll","autoCompleteOptions","filteredAutoCompleteOptions","value","noWrap","loading","errorIndexes","helpText","errorMessage","filterFunction","item","searchedValue","toLowerCase","includes","renderItemFunction","enableVisibilityEffect","enableTabClose","showTooltip","enableTagDelete","handleDocumentClick","event","composedPath","addChipFromInputValue","_this","_inherits","_r","_createClass","key","updated","changedProperties","super","has","options","JSON","parse","e","Array","isArray","filter","option","onTagsChanged","_firstUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_changed","updateComplete","inputTarget","renderRoot","querySelector","input","autoComplete","inputElement","visibilityManager","VisibilityManager","host","target","isOpen","onAnchorOutOfView","emit","visible","reason","onDocumentHidden","detail","_context2","stop","firstUpdated","connectedCallback","document","addEventListener","disconnectedCallback","cleanup","removeEventListener","render","hasLabelSlot","test","hasLabel","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","map","tag","index","tooltipContent","isFocused","tagText","toString","tagTemplate","_templateObject2","handleRemove","unsafeHTML","_templateObject3","_templateObject4","handleInputChange","handleInputKeydown","handleFocus","handleBlur","_templateObject5","handleSelect","_templateObject6","_templateObject7","_s$tooltip","_this6","_s$tooltip3","selectedValue","selectedOption","find","opt","name","id","tooltip","content","_s$tooltip2","for","showFor","Promise","currentIndex","length","then","resolved","requestUpdate","concat","_toConsumableArray","resetInput","_this$visibilityManag2","preventDefault","_","i","Math","max","setup","_this$visibilityManag4","__decorate","get","styles","NileElement","state","prototype","query","property","type","Boolean","String","reflect","attribute","_export","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nile-chip.cjs.js","sources":["../../../src/nile-chip/nile-chip.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValues,\n} from 'lit';\nimport { customElement, query, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-chip.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HasSlotController } from '../internal/slot';\nimport NileElement, { NileFormControl } from '../internal/nile-element';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\ninterface CustomEventDetail {\n value: string;\n}\n\n@customElement('nile-chip')\nexport class NileChip extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @state() tags: string[] = [];\n\n @state() inputValue: string = '';\n\n @state() isDropdownOpen: boolean = false;\n @state() tooltips: (string | null)[] = [];\n @state() private chipFocusIndex: number | null = null;\n\n\n @query('nile-auto-complete') autoComplete!: any;\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n@property({ type: Boolean }) noAutoComplete = false;\n\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /** Disables the duplicate entries. */\n @property({ type: Boolean }) noDuplicates = false;\n\n /** The input's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n @property({ type: String }) tagVariant: string = ''; // can be '', 'normal', 'success', etc.\n\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) acceptUserInput = false;\n\n /** When true, adds a chip when the input loses focus or when clicking outside the component. Only works when acceptUserInput is true. */\n @property({ type: Boolean }) addOnBlur = false;\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /** Placeholder text to show as a hint when the input is empty. */\n @property() placeholder = 'type here...';\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When true, the dropdown menu will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n // AUTO-COMPLETE-OPTIONS\n\n /** Virtual scroll in dropdown options. */\n @property({ type: Boolean }) enableVirtualScroll = false;\n\n @property({ type: Array }) autoCompleteOptions: any[] = [];\n\n @property({ type: Array }) filteredAutoCompleteOptions: any[] = [];\n\n @property({ type: Array }) value: any[] = [];\n\n @property({ type: Boolean }) noWrap: boolean = false;\n\n @property({ type: Boolean }) loading: boolean = false;\n\n @property({ type: Array }) errorIndexes: number[] = [];\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n @property({ attribute:false}) filterFunction: (item:string,searchedValue:string)=>boolean = (item:string,searchedValue:string)=>item.toLowerCase().includes(searchedValue.toLowerCase());\n\n @property({ attribute:false}) renderItemFunction: (item:any)=>string = (item:any)=>item;\n\n private visibilityManager?: VisibilityManager;\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n @property({ type: Boolean }) showTooltip: boolean = false;\n\n @property({ type: Boolean }) enableTagDelete = false;\n\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('autoCompleteOptions')) {\n let options = this.autoCompleteOptions;\n if (typeof options === 'string') {\n try {\n options = JSON.parse(options);\n } catch (e) {\n options = [];\n }\n }\n this.filteredAutoCompleteOptions = Array.isArray(options) ? [...options] : [];\n if (this.noDuplicates) {\n this.filteredAutoCompleteOptions =\n this.filteredAutoCompleteOptions.filter(\n option => !this.value.includes(option)\n );\n }\n }\n if (changedProperties.has('value')){\n this.tags = [...this.value];\n this.onTagsChanged();\n }\n if (changedProperties.has('tags')){\n this.onTagsChanged();\n }\n }\n \n protected async firstUpdated(_changed: PropertyValues) {\n await this.updateComplete;\n \n const inputTarget =\n this.noAutoComplete\n ? this.renderRoot.querySelector('nile-input')?.input\n : this.autoComplete?.inputElement?.input || this.autoComplete?.inputElement;\n \n this.visibilityManager = new VisibilityManager({\n host: this,\n target: inputTarget,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.isDropdownOpen,\n onAnchorOutOfView: () => {\n this.isDropdownOpen = false;\n if (this.autoComplete) {\n this.autoComplete.isDropdownOpen = false;\n } \n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this.isDropdownOpen = false;\n if (this.autoComplete) {\n this.autoComplete.isDropdownOpen = false;\n }\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n\n \n private handleDocumentClick = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n if (this.addOnBlur && this.acceptUserInput && this.inputValue) {\n this.addChipFromInputValue();\n }\n this.isDropdownOpen = false; \n }\n };\n \n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.handleDocumentClick);\n if (this.noDuplicates) {\n this.filteredAutoCompleteOptions =\n this.filteredAutoCompleteOptions.filter(\n option => !this.value.includes(option)\n );\n }\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.visibilityManager?.cleanup();\n document.removeEventListener('click', this.handleDocumentClick);\n this.emit('nile-destroy');\n }\n\n render() {\n // Check if slots are present\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n\n // Check if label and help text are present\n const hasLabel = this.label ? true : !!hasLabelSlot;\n\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n 'nile-chip--disabled': this.disabled,\n })}\n >\n <label\n part=\"form-control-label\"\n class=\"form-control__label\"\n for=\"input\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n <div\n part='base' \n class=${classMap({\n 'nile-chip': true,\n 'nile-chip--warning': this.warning,\n 'nile-chip--error': this.error,\n 'nile-chip--success': this.success,\n 'nile-chip--no-wrap': this.noWrap,\n 'nile-chip--open': this.isDropdownOpen, \n })}\n >\n ${this.tags.map((tag, index) => {\n const tooltipContent = this.tooltips[index];\n const isFocused = this.enableTagDelete && this.chipFocusIndex === index;\n let tagText = \"\";\n if(tag || typeof tag === \"number\") {\n tagText = tag.toString();\n }\n const tagTemplate = html`\n <nile-tag\n class=${classMap({\n 'nile-chip__tags': true,\n 'nile-chip__tags--focused': isFocused,\n })}\n aria-selected=${isFocused ? 'true' : 'false'}\n .variant=${this.errorIndexes.includes(index)\n ? 'error'\n : 'normal'}\n @nile-remove=${() => this.handleRemove(tag)}\n removable\n ?pill=${this.tagVariant !== 'normal'}\n ?disabled=${this.disabled}\n >\n ${unsafeHTML(tagText)}\n </nile-tag>\n `;\n\n if (this.showTooltip && tooltipContent) {\n return html`\n <nile-lite-tooltip allowHTML .content=${tooltipContent}>\n ${tagTemplate}\n </nile-lite-tooltip>\n `;\n }\n\n return tagTemplate;\n })}\n\n <div class=\"nile-chip__auto-complete\">\n ${this.noAutoComplete\n ? html`\n <nile-input\n .value=${this.inputValue}\n .placeholder=${this.placeholder}\n .disabled=${this.disabled}\n ?no-border=${true}\n ?no-outline=${true}\n ?no-padding=${true}\n @nile-input=${this.handleInputChange}\n @keydown=${this.handleInputKeydown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n exportparts=\"input\"\n ></nile-input>\n `\n : html`\n <nile-auto-complete\n .enableVirtualScroll=${this.enableVirtualScroll}\n .allMenuItems=${this.filteredAutoCompleteOptions}\n .filterFunction=${this.filterFunction}\n .renderItemFunction=${this.renderItemFunction}\n .showTooltips=${this.showTooltip}\n .loading=\"${this.loading}\"\n .value=${this.inputValue}\n ?isDropdownOpen=${this.isDropdownOpen}\n .noBorder=${true}\n .noOutline=${true}\n .noPadding=${true}\n .disabled=${this.disabled}\n .readonly=${this.readonly}\n .portal=${this.portal}\n openOnFocus\n exportparts=\"options__wrapper, input, base\"\n .placeholder=${this.placeholder}\n @nile-input=${this.handleInputChange}\n @keydown=${this.handleInputKeydown}\n @nile-focus=${this.handleFocus}\n @nile-blur=${this.handleBlur}\n @nile-complete=${this.handleSelect}\n ></nile-auto-complete>\n `}\n </div>\n </div>\n ${hasHelpText\n ? html` <nile-form-help-text>${this.helpText}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n </div>\n `;\n }\n\n private handleSelect(event: CustomEvent<CustomEventDetail>) {\n // Add the selected value to the tags array only if it doesn't already exist\n const selectedValue = event.detail.value;\n const selectedOption = this.autoCompleteOptions.find(\n (opt) => opt.name === selectedValue || opt.id === selectedValue\n );\n\n let tooltipContent: string | null = null;\n \n if (this.showTooltip) {\n if (selectedOption?.tooltip?.content) {\n const { content, for: showFor } = selectedOption.tooltip;\n if (!showFor || showFor === 'tag') {\n if (content instanceof Promise) {\n this.tooltips = [...this.tooltips, 'Loading...'];\n \n const currentIndex = this.tooltips.length - 1;\n content.then((resolved) => {\n this.tooltips[currentIndex] = resolved;\n this.requestUpdate();\n });\n } else {\n tooltipContent = content;\n }\n }\n } else {\n tooltipContent = selectedOption?.name || selectedValue;\n }\n }\n\n if (!this.noDuplicates || !this.tags.includes(selectedValue)) {\n this.tags = [...this.tags, selectedValue];\n \n\n if (!(selectedOption?.tooltip?.content instanceof Promise)) {\n this.tooltips = [...this.tooltips, tooltipContent];\n }\n \n this.emit('nile-chip-change', { value: this.tags });\n this.resetInput();\n }\n }\n\n private handleRemove(value: string) {\n // Remove the tag from the tags array\n this.tags = this.tags.filter(tag => tag !== value);\n\n if (this.noDuplicates && this.autoCompleteOptions.includes(value)) {\n this.filteredAutoCompleteOptions = [\n ...this.filteredAutoCompleteOptions,\n value,\n ];\n }\n this.emit('nile-chip-change', { value: this.tags });\n }\n\n private handleInputChange(event: CustomEvent<CustomEventDetail>) {\n // Update the input value\n this.inputValue = event.detail.value;\n }\n\n private addChipFromInputValue(): boolean {\n if (this.noDuplicates && this.tags.includes(this.inputValue)) {\n this.emit('nile-duplicates-blocked');\n return false;\n }\n\n this.tags = [...this.tags, this.inputValue];\n if (this.showTooltip) {\n this.tooltips = [...this.tooltips, this.inputValue];\n } else {\n this.tooltips = [...this.tooltips, null];\n }\n\n this.inputValue = '';\n this.visibilityManager?.cleanup();\n this.emit('nile-chip-change', { value: this.tags });\n return true;\n }\n\n private handleInputKeydown(event: KeyboardEvent) {\n if (\n this.enableTagDelete &&\n (event.key === 'Backspace' || event.key === 'Delete') &&\n !this.inputValue &&\n !this.readonly &&\n !this.disabled\n ) {\n if (this.tags.length === 0) {\n this.chipFocusIndex = null;\n return;\n }\n\n event.preventDefault();\n if (this.chipFocusIndex === null) {\n this.chipFocusIndex = this.tags.length - 1;\n this.requestUpdate();\n return;\n }\n const index = this.chipFocusIndex;\n const removedTag = this.tags[index];\n\n this.tags = this.tags.filter((_, i) => i !== index);\n this.tooltips = this.tooltips.filter((_, i) => i !== index);\n\n this.emit('nile-chip-change', { value: this.tags });\n if (this.tags.length > 0) {\n this.chipFocusIndex = Math.max(0, index - 1);\n } else {\n this.chipFocusIndex = null;\n }\n\n return;\n }\n\n if (this.readonly) {\n const allowedKeys = ['ArrowUp', 'ArrowDown', 'Enter', 'Tab'];\n if (!allowedKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n }\n\n if (!this.acceptUserInput) {\n return;\n }\n\n if(event.key === 'Tab'){\n event.preventDefault()\n }\n \n if (\n (event.key === 'Enter' || event.key === 'Tab' ) \n && this.inputValue \n && (!this.noDuplicates || !this.tags.includes(this.inputValue))\n ) {\n event.preventDefault()\n this.tags = [...this.tags, this.inputValue];\n if (this.showTooltip) {\n this.tooltips = [...this.tooltips, this.inputValue];\n } else {\n this.tooltips = [...this.tooltips, null];\n }\n \n this.resetInput();\n this.emit('nile-chip-change', { value: this.tags });\n }\n\n if(\n (event.key === 'Enter'|| event.key === 'Tab' ) \n && this.inputValue \n && (this.noDuplicates || this.tags.includes(this.inputValue))\n ){\n this.emit('nile-duplicates-blocked');\n }\n }\n\n private handleFocus() {\n if (this.noAutoComplete) {\n return;\n }\n this.visibilityManager?.setup();\n this.isDropdownOpen = true;\n }\n\n private handleBlur() {\n if (this.addOnBlur && this.acceptUserInput && this.inputValue) {\n this.addChipFromInputValue();\n }\n }\n\n onTagsChanged() {\n if (this.noDuplicates)\n this.filteredAutoCompleteOptions = this.filteredAutoCompleteOptions.filter(option => !this.tags.includes(option));\n }\n\n\n private resetInput() {\n // Reset the input-related properties\n this.inputValue = '';\n this.isDropdownOpen = false;\n this.visibilityManager?.cleanup();\n if (!this.noAutoComplete && this.autoComplete) {\n this.autoComplete.value = '';\n this.autoComplete.handleFocus();\n }\n } \n}\n\nexport default NileChip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-chip': NileChip;\n }\n}\n"],"names":["NileChip","d","this","hasSlotController","HasSlotController","tags","inputValue","isDropdownOpen","tooltips","chipFocusIndex","warning","noAutoComplete","error","success","noDuplicates","label","tagVariant","acceptUserInput","addOnBlur","clearable","placeholder","readonly","disabled","portal","enableVirtualScroll","autoCompleteOptions","filteredAutoCompleteOptions","value","noWrap","loading","errorIndexes","helpText","errorMessage","filterFunction","item","searchedValue","toLowerCase","includes","renderItemFunction","enableVisibilityEffect","enableTabClose","showTooltip","enableTagDelete","handleDocumentClick","event","composedPath","addChipFromInputValue","_this","_inherits","_r","_createClass","key","updated","changedProperties","super","has","options","JSON","parse","e","Array","isArray","filter","option","onTagsChanged","_firstUpdated","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_changed","updateComplete","inputTarget","renderRoot","querySelector","input","autoComplete","inputElement","visibilityManager","VisibilityManager","host","target","isOpen","onAnchorOutOfView","emit","visible","reason","onDocumentHidden","detail","_context2","stop","firstUpdated","connectedCallback","document","addEventListener","disconnectedCallback","cleanup","removeEventListener","render","hasLabelSlot","test","hasLabel","hasHelpText","hasErrorMessage","html","_templateObject","_taggedTemplateLiteral","classMap","map","tag","index","tooltipContent","isFocused","tagText","toString","tagTemplate","_templateObject2","handleRemove","unsafeHTML","_templateObject3","_templateObject4","handleInputChange","handleInputKeydown","handleFocus","handleBlur","_templateObject5","handleSelect","_templateObject6","_templateObject7","_s$tooltip","_this6","_s$tooltip3","selectedValue","selectedOption","find","opt","name","id","tooltip","content","_s$tooltip2","for","showFor","Promise","currentIndex","length","then","resolved","requestUpdate","concat","_toConsumableArray","resetInput","_this$visibilityManag2","preventDefault","_","i","Math","max","setup","_this$visibilityManag4","__decorate","get","styles","NileElement","state","prototype","query","property","type","Boolean","String","reflect","attribute","_export","customElement"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{__decorate as t}from"tslib";import{html as i}from"lit";import{state as
|
|
1
|
+
import{__decorate as t}from"tslib";import{html as i}from"lit";import{state as e,query as s,property as h,customElement as o}from"lit/decorators.js";import{s as l}from"./nile-chip.css.esm.js";import{classMap as n}from"lit/directives/class-map.js";import{H as a}from"../internal/slot.esm.js";import{N as r}from"../internal/nile-element.esm.js";import{unsafeHTML as p}from"lit/directives/unsafe-html.js";import{V as c}from"../utilities/visibility-manager.esm.js";let d=class extends r{constructor(){super(...arguments),this.hasSlotController=new a(this,"help-text","label"),this.tags=[],this.inputValue="",this.isDropdownOpen=!1,this.tooltips=[],this.chipFocusIndex=null,this.warning=!1,this.noAutoComplete=!1,this.error=!1,this.success=!1,this.noDuplicates=!1,this.label="",this.tagVariant="",this.acceptUserInput=!1,this.addOnBlur=!1,this.clearable=!1,this.placeholder="type here...",this.readonly=!1,this.disabled=!1,this.portal=!1,this.enableVirtualScroll=!1,this.autoCompleteOptions=[],this.filteredAutoCompleteOptions=[],this.value=[],this.noWrap=!1,this.loading=!1,this.errorIndexes=[],this.helpText="",this.errorMessage="",this.filterFunction=(t,i)=>t.toLowerCase().includes(i.toLowerCase()),this.renderItemFunction=t=>t,this.enableVisibilityEffect=!1,this.enableTabClose=!1,this.showTooltip=!1,this.enableTagDelete=!1,this.handleDocumentClick=t=>{t.composedPath().includes(this)||(this.addOnBlur&&this.acceptUserInput&&this.inputValue&&this.addChipFromInputValue(),this.isDropdownOpen=!1)}}static get styles(){return[l]}updated(t){if(super.updated(t),t.has("autoCompleteOptions")){let t=this.autoCompleteOptions;if("string"==typeof t)try{t=JSON.parse(t)}catch(i){t=[]}this.filteredAutoCompleteOptions=Array.isArray(t)?[...t]:[],this.noDuplicates&&(this.filteredAutoCompleteOptions=this.filteredAutoCompleteOptions.filter((t=>!this.value.includes(t))))}t.has("value")&&(this.tags=[...this.value],this.onTagsChanged()),t.has("tags")&&this.onTagsChanged()}async firstUpdated(t){await this.updateComplete;const i=this.noAutoComplete?this.renderRoot.querySelector("nile-input")?.input:this.autoComplete?.inputElement?.input||this.autoComplete?.inputElement;this.visibilityManager=new c({host:this,target:i,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:()=>this.isDropdownOpen,onAnchorOutOfView:()=>{this.isDropdownOpen=!1,this.autoComplete&&(this.autoComplete.isDropdownOpen=!1),this.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view"})},onDocumentHidden:()=>{this.isDropdownOpen=!1,this.autoComplete&&(this.autoComplete.isDropdownOpen=!1),this.emit("nile-visibility-change",{visible:!1,reason:"document-hidden"})},emit:(t,i)=>this.emit(`nile-${t}`,i)})}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick),this.noDuplicates&&(this.filteredAutoCompleteOptions=this.filteredAutoCompleteOptions.filter((t=>!this.value.includes(t)))),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.visibilityManager?.cleanup(),document.removeEventListener("click",this.handleDocumentClick),this.emit("nile-destroy")}render(){const t=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const e=!!this.label||!!t,s=!!this.helpText,h=!!this.errorMessage;return i`
|
|
2
2
|
<div
|
|
3
3
|
part="form-control"
|
|
4
|
-
class=${n({"form-control":!0,"form-control--medium":!0,"form-control--has-label":
|
|
4
|
+
class=${n({"form-control":!0,"form-control--medium":!0,"form-control--has-label":e,"form-control--has-help-text":s,"nile-chip--disabled":this.disabled})}
|
|
5
5
|
>
|
|
6
6
|
<label
|
|
7
7
|
part="form-control-label"
|
|
8
8
|
class="form-control__label"
|
|
9
9
|
for="input"
|
|
10
|
-
aria-hidden=${
|
|
10
|
+
aria-hidden=${e?"false":"true"}
|
|
11
11
|
>
|
|
12
12
|
<slot name="label">${this.label}</slot>
|
|
13
13
|
</label>
|
|
@@ -16,11 +16,11 @@ import{__decorate as t}from"tslib";import{html as i}from"lit";import{state as s,
|
|
|
16
16
|
part='base'
|
|
17
17
|
class=${n({"nile-chip":!0,"nile-chip--warning":this.warning,"nile-chip--error":this.error,"nile-chip--success":this.success,"nile-chip--no-wrap":this.noWrap,"nile-chip--open":this.isDropdownOpen})}
|
|
18
18
|
>
|
|
19
|
-
${this.tags.map(((t,
|
|
19
|
+
${this.tags.map(((t,e)=>{const s=this.tooltips[e],h=this.enableTagDelete&&this.chipFocusIndex===e;let o="";(t||"number"==typeof t)&&(o=t.toString());const l=i`
|
|
20
20
|
<nile-tag
|
|
21
21
|
class=${n({"nile-chip__tags":!0,"nile-chip__tags--focused":h})}
|
|
22
22
|
aria-selected=${h?"true":"false"}
|
|
23
|
-
.variant=${this.errorIndexes.includes(
|
|
23
|
+
.variant=${this.errorIndexes.includes(e)?"error":"normal"}
|
|
24
24
|
@nile-remove=${()=>this.handleRemove(t)}
|
|
25
25
|
removable
|
|
26
26
|
?pill=${"normal"!==this.tagVariant}
|
|
@@ -28,8 +28,8 @@ import{__decorate as t}from"tslib";import{html as i}from"lit";import{state as s,
|
|
|
28
28
|
>
|
|
29
29
|
${p(o)}
|
|
30
30
|
</nile-tag>
|
|
31
|
-
`;return this.showTooltip&&
|
|
32
|
-
<nile-lite-tooltip allowHTML .content=${
|
|
31
|
+
`;return this.showTooltip&&s?i`
|
|
32
|
+
<nile-lite-tooltip allowHTML .content=${s}>
|
|
33
33
|
${l}
|
|
34
34
|
</nile-lite-tooltip>
|
|
35
35
|
`:l}))}
|
|
@@ -77,11 +77,11 @@ import{__decorate as t}from"tslib";import{html as i}from"lit";import{state as s,
|
|
|
77
77
|
`}
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
|
-
${
|
|
80
|
+
${s?i` <nile-form-help-text>${this.helpText}</nile-form-help-text> `:""}
|
|
81
81
|
${h?i`
|
|
82
82
|
<nile-form-error-message
|
|
83
83
|
>${this.errorMessage}</nile-form-error-message
|
|
84
84
|
>
|
|
85
85
|
`:""}
|
|
86
86
|
</div>
|
|
87
|
-
`}handleSelect(t){const i=t.detail.value,
|
|
87
|
+
`}handleSelect(t){const i=t.detail.value,e=this.autoCompleteOptions.find((t=>t.name===i||t.id===i));let s=null;if(this.showTooltip)if(e?.tooltip?.content){const{content:t,for:i}=e.tooltip;if(!i||"tag"===i)if(t instanceof Promise){this.tooltips=[...this.tooltips,"Loading..."];const i=this.tooltips.length-1;t.then((t=>{this.tooltips[i]=t,this.requestUpdate()}))}else s=t}else s=e?.name||i;this.noDuplicates&&this.tags.includes(i)||(this.tags=[...this.tags,i],e?.tooltip?.content instanceof Promise||(this.tooltips=[...this.tooltips,s]),this.emit("nile-chip-change",{value:this.tags}),this.resetInput())}handleRemove(t){this.tags=this.tags.filter((i=>i!==t)),this.noDuplicates&&this.autoCompleteOptions.includes(t)&&(this.filteredAutoCompleteOptions=[...this.filteredAutoCompleteOptions,t]),this.emit("nile-chip-change",{value:this.tags})}handleInputChange(t){this.inputValue=t.detail.value}addChipFromInputValue(){return this.noDuplicates&&this.tags.includes(this.inputValue)?(this.emit("nile-duplicates-blocked"),!1):(this.tags=[...this.tags,this.inputValue],this.showTooltip?this.tooltips=[...this.tooltips,this.inputValue]:this.tooltips=[...this.tooltips,null],this.inputValue="",this.visibilityManager?.cleanup(),this.emit("nile-chip-change",{value:this.tags}),!0)}handleInputKeydown(t){if(this.enableTagDelete&&("Backspace"===t.key||"Delete"===t.key)&&!this.inputValue&&!this.readonly&&!this.disabled){if(0===this.tags.length)return void(this.chipFocusIndex=null);if(t.preventDefault(),null===this.chipFocusIndex)return this.chipFocusIndex=this.tags.length-1,void this.requestUpdate();const i=this.chipFocusIndex;return this.tags[i],this.tags=this.tags.filter(((t,e)=>e!==i)),this.tooltips=this.tooltips.filter(((t,e)=>e!==i)),this.emit("nile-chip-change",{value:this.tags}),void(this.tags.length>0?this.chipFocusIndex=Math.max(0,i-1):this.chipFocusIndex=null)}if(this.readonly){if(!["ArrowUp","ArrowDown","Enter","Tab"].includes(t.key))return void t.preventDefault()}this.acceptUserInput&&("Tab"===t.key&&t.preventDefault(),"Enter"!==t.key&&"Tab"!==t.key||!this.inputValue||this.noDuplicates&&this.tags.includes(this.inputValue)||(t.preventDefault(),this.tags=[...this.tags,this.inputValue],this.showTooltip?this.tooltips=[...this.tooltips,this.inputValue]:this.tooltips=[...this.tooltips,null],this.resetInput(),this.emit("nile-chip-change",{value:this.tags})),"Enter"!==t.key&&"Tab"!==t.key||!this.inputValue||!this.noDuplicates&&!this.tags.includes(this.inputValue)||this.emit("nile-duplicates-blocked"))}handleFocus(){this.noAutoComplete||(this.visibilityManager?.setup(),this.isDropdownOpen=!0)}handleBlur(){this.addOnBlur&&this.acceptUserInput&&this.inputValue&&this.addChipFromInputValue()}onTagsChanged(){this.noDuplicates&&(this.filteredAutoCompleteOptions=this.filteredAutoCompleteOptions.filter((t=>!this.tags.includes(t))))}resetInput(){this.inputValue="",this.isDropdownOpen=!1,this.visibilityManager?.cleanup(),!this.noAutoComplete&&this.autoComplete&&(this.autoComplete.value="",this.autoComplete.handleFocus())}};t([e()],d.prototype,"tags",void 0),t([e()],d.prototype,"inputValue",void 0),t([e()],d.prototype,"isDropdownOpen",void 0),t([e()],d.prototype,"tooltips",void 0),t([e()],d.prototype,"chipFocusIndex",void 0),t([s("nile-auto-complete")],d.prototype,"autoComplete",void 0),t([h({type:Boolean})],d.prototype,"warning",void 0),t([h({type:Boolean})],d.prototype,"noAutoComplete",void 0),t([h({type:Boolean})],d.prototype,"error",void 0),t([h({type:Boolean})],d.prototype,"success",void 0),t([h({type:Boolean})],d.prototype,"noDuplicates",void 0),t([h()],d.prototype,"label",void 0),t([h({type:String})],d.prototype,"tagVariant",void 0),t([h({type:Boolean})],d.prototype,"acceptUserInput",void 0),t([h({type:Boolean})],d.prototype,"addOnBlur",void 0),t([h({type:Boolean})],d.prototype,"clearable",void 0),t([h()],d.prototype,"placeholder",void 0),t([h({type:Boolean,reflect:!0})],d.prototype,"readonly",void 0),t([h({type:Boolean,reflect:!0})],d.prototype,"disabled",void 0),t([h({type:Boolean,reflect:!0})],d.prototype,"portal",void 0),t([h({type:Boolean})],d.prototype,"enableVirtualScroll",void 0),t([h({type:Array})],d.prototype,"autoCompleteOptions",void 0),t([h({type:Array})],d.prototype,"filteredAutoCompleteOptions",void 0),t([h({type:Array})],d.prototype,"value",void 0),t([h({type:Boolean})],d.prototype,"noWrap",void 0),t([h({type:Boolean})],d.prototype,"loading",void 0),t([h({type:Array})],d.prototype,"errorIndexes",void 0),t([h({attribute:"help-text",reflect:!0})],d.prototype,"helpText",void 0),t([h({attribute:"error-message",reflect:!0})],d.prototype,"errorMessage",void 0),t([h({attribute:!1})],d.prototype,"filterFunction",void 0),t([h({attribute:!1})],d.prototype,"renderItemFunction",void 0),t([h({type:Boolean,reflect:!0})],d.prototype,"enableVisibilityEffect",void 0),t([h({type:Boolean,reflect:!0})],d.prototype,"enableTabClose",void 0),t([h({type:Boolean})],d.prototype,"showTooltip",void 0),t([h({type:Boolean})],d.prototype,"enableTagDelete",void 0),d=t([o("nile-chip")],d);export{d as N};
|
|
@@ -214,7 +214,10 @@ let NileAutoComplete = class NileAutoComplete extends NileElement {
|
|
|
214
214
|
}
|
|
215
215
|
getItemRenderFunction(item) {
|
|
216
216
|
const value = this.renderItemFunction(item);
|
|
217
|
-
|
|
217
|
+
let strValue = "";
|
|
218
|
+
if (value || typeof value === "number") {
|
|
219
|
+
strValue = value.toString();
|
|
220
|
+
}
|
|
218
221
|
const hasTooltip = !!item.tooltip;
|
|
219
222
|
const shouldShowTooltip = hasTooltip && (!item.tooltip.for || item.tooltip.for === 'menu');
|
|
220
223
|
if (!shouldShowTooltip) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-auto-complete.js","sourceRoot":"","sources":["../../../src/nile-auto-complete/nile-auto-complete.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n nothing,\n} from 'lit';\nimport { customElement, query, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-auto-complete.css';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport { NileDropdown } from '../nile-dropdown';\nimport { watch } from '../internal/watch';\nimport { AutoCompletePortalManager } from './portal-manager';\nimport { NileInput } from '../nile-input';\n\nimport { virtualize } from '@lit-labs/virtualizer/virtualize.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n\n// Define the custom element 'nile-auto-complete'\n@customElement('nile-auto-complete')\nexport class NileAutoComplete extends NileElement {\n\n static styles: CSSResultGroup = styles;\n private visibilityManager?: VisibilityManager;\n\n\n @query('nile-dropdown') dropdownElement: NileDropdown;\n\n @query('nile-input') inputElement: NileInput;\n\n // Define component properties\n\n @property({ type: Boolean }) disabled: boolean = false;\n\n @property({ type: Boolean }) isDropdownOpen: boolean = false;\n\n /** \n * When true, the dropdown menu will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n private readonly portalManager = new AutoCompletePortalManager(this);\n\n @property({ type: Boolean }) enableVirtualScroll: boolean = false;\n\n @property({ type: Boolean }) openOnFocus: boolean = false;\n\n @property({ type: String }) value: string = '';\n\n @property({ type: String }) placeholder: string = 'Type here ..';\n\n @property({ type: Boolean }) noBorder: boolean = false;\n \n @property({ type: Boolean }) noOutline: boolean = false;\n\n @property({ type: Boolean }) noPadding: boolean = false;\n\n @property({ type: Boolean }) loading: boolean = false;\n\n @property({ attribute:false}) filterFunction: (item:string,searchedValue:string)=>boolean=(item:string,searchedValue:string)=>item.toLowerCase().includes(searchedValue.toLowerCase());\n\n @property({ attribute:false}) renderItemFunction: (item:any)=>string = (item:any)=>item;\n\n @property({ type: Array }) allMenuItems: any = [];\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n\n @state() menuItems: any = [];\n\n\n protected async firstUpdated(_changed: PropertyValues) {\n await this.updateComplete;\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.inputElement.input, \n enableVisibilityEffect: this.enableVisibilityEffect,\nenableTabClose: this.enableTabClose,\n isOpen: () => this.isDropdownOpen,\n onAnchorOutOfView: () => {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n connectedCallback() {\n super.connectedCallback();\n this.renderItemFunction=(item:any)=>item;\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('allMenuItems')){\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n this.setVirtualMenuWidth();\n if (this.portal && this.isDropdownOpen) {\n this.portalManager.updatePortalOptions();\n }\n }\n if (changedProperties.has('isDropdownOpen')) {\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n this.handleDropdownOpenChange();\n }\n if (changedProperties.has('value')){\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n if (this.portal && this.isDropdownOpen) {\n this.portalManager.updatePortalOptions();\n }\n }\n if (changedProperties.has('portal')) {\n this.handlePortalChange();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalChange(): void {\n if (this.isDropdownOpen) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private handleDropdownOpenChange(): void {\n if (this.isDropdownOpen) {\n this.addOpenListeners();\n this.visibilityManager?.setup();\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n if (!this.isDropdownOpen) return;\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitDropdown = this.dropdownElement && path.includes(this.dropdownElement);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitDropdown && !hitPortalAppend) {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n if (!this.isDropdownOpen) return;\n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitDropdown = this.dropdownElement && path.includes(this.dropdownElement);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitDropdown && !hitPortalAppend) {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n }\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n public render(): TemplateResult {\n const content=this.enableVirtualScroll?this.getVirtualizedContent():this.getContent();\n return html`\n <nile-dropdown class=\"nile-dropdown--input\" ?open=${this.isDropdownOpen} noOpenOnCLick exportparts=\"input, base\">\n <nile-input class=\"nile-auto-complete--input\"\n ?no-border=${this.noBorder}\n ?no-outline=${this.noOutline}\n ?no-padding=${this.noPadding}\n .disabled=${this.disabled}\n .value=${this.value}\n @nile-input=${this.handleSearch}\n @focus=${this.handleFocus}\n @click=${this.handleClick}\n slot=\"trigger\"\n placeholder=${this.placeholder}\n exportparts=\"input, base\"\n >\n ${this.loading?html`<nile-icon slot=\"suffix\" color=\"var(--nile-colors-primary-600)\" name=\"var(--nile-icon-button-loading-blue-animated, var(--ng-icon-button-loading-blue-animated))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>`:nothing}\n </nile-input>\n ${this.menuItems.length > 0 && !this.loading\n ? content\n : nothing}\n </nile-dropdown>\n `;\n } \n \n getVirtualizedContent():TemplateResult{\n return html`\n <nile-menu class=\"virtualized__menu\" @nile-select=${this.handleSelect} id=\"content-menu\" exportparts=\"menu__items-wrapper:options__wrapper\" style=${this.portal ? 'display: none;' : ''}>\n ${virtualize({\n items: this.menuItems,\n renderItem: (item:any):TemplateResult=>this.getItemRenderFunction(item),\n\t\t\t\t\tscroller:true\n })}\n </nile-menu>\n `\n }\n\n getContent():TemplateResult{\n return html`\n <nile-menu id=\"content-menu\" @nile-select=${this.handleSelect} exportparts=\"menu__items-wrapper:options__wrapper\" style=${this.portal ? 'display: none;' : ''}>\n ${this.menuItems.map((item: any) => this.getItemRenderFunction(item))}\n </nile-menu>`\n }\n\n getItemRenderFunction(item: any): TemplateResult {\n const value = this.renderItemFunction(item);\n const strValue = value ? value.toString() : \"\";\n const hasTooltip = !!item.tooltip;\n const shouldShowTooltip =\n hasTooltip && (!item.tooltip.for || item.tooltip.for === 'menu');\n \n if (!shouldShowTooltip) {\n return html`\n <nile-menu-item value=${value}>${unsafeHTML(strValue)}</nile-menu-item>\n `;\n }\n \n let tooltipContent: string | null = null;\n \n const content = item.tooltip.content;\n if (content instanceof Promise) {\n tooltipContent = 'Loading...'; \n content.then((resolved: string) => {\n item.tooltip.content = resolved;\n this.requestUpdate(); \n });\n } else {\n tooltipContent = content;\n }\n \n return html`\n <nile-menu-item value=${value}>\n <nile-lite-tooltip allowHTML .content=${tooltipContent ?? \"\"}>\n <span class=\"menu-item-text\">${unsafeHTML(strValue)}</span>\n </nile-lite-tooltip>\n </nile-menu-item>\n `;\n }\n\n handleSelect(event: CustomEvent) {\n this.value = event.detail.value;\n this.emit('nile-complete', { value: event.detail.value });\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n\n private setVirtualMenuWidth() {\n const maxLengthOption = this.menuItems\n .reduce((acc: number, curr: any) => {\n const currLength = this.renderItemFunction(curr).length\n return acc > currLength ? acc : currLength\n }, 0)\n const defaultWith = 110;\n const pixelMultiplier = 9.5;\n const menuWidth = maxLengthOption * pixelMultiplier < defaultWith ? defaultWith : maxLengthOption * pixelMultiplier;\n this.style.setProperty(\"--virtual-scroll-container-width\", menuWidth + \"px\");\n }\n\n private handleSearch(event: CustomEvent) {\n this.value = event.detail.value.toLowerCase();\n\n // Filter menu items based on the search value\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n\n this.isDropdownOpen = this.menuItems.length > 0;\n if (this.isDropdownOpen) {\n this.dropdownElement?.show();\n if (this.portal) {\n this.portalManager.updatePortalOptions();\n }\n }\n }\n\n public handleFocus() {\n if (!this.openOnFocus) {\n return;\n }\n\n if(this.portal) {\n this.inputElement?.focus();\n }\n\n // Delay opening the dropdown to allow focus to take effect\n setTimeout(() => {\n this.isDropdownOpen = true;\n this.dropdownElement?.show();\n }, 300);\n }\n\n private handleClick() {\n this.isDropdownOpen = true;\n this.dropdownElement?.show();\n }\n\n applyFilter<T>(list: T[], filterFn: (item: T,searchValue?:string) => boolean): T[] {\n if(typeof(list)!=='object') return []\n const res:T[]=[]\n list.forEach( el=> filterFn(el,this.value) && res.push(el) )\n return res\n }\n\n}\n\nexport default NileAutoComplete;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-auto-complete': NileAutoComplete;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-auto-complete.js","sourceRoot":"","sources":["../../../src/nile-auto-complete/nile-auto-complete.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,IAAI,EAGJ,OAAO,GACR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,iDAAiD;AAE1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAW;IAA1C;;QAUL,8BAA8B;QAED,aAAQ,GAAY,KAAK,CAAC;QAE1B,mBAAc,GAAY,KAAK,CAAC;QAE7D;;;WAGG;QACyC,WAAM,GAAG,KAAK,CAAC;QAE1C,kBAAa,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAExC,wBAAmB,GAAY,KAAK,CAAC;QAErC,gBAAW,GAAY,KAAK,CAAC;QAE9B,UAAK,GAAW,EAAE,CAAC;QAEnB,gBAAW,GAAW,cAAc,CAAC;QAEpC,aAAQ,GAAY,KAAK,CAAC;QAE1B,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS,GAAY,KAAK,CAAC;QAE3B,YAAO,GAAY,KAAK,CAAC;QAExB,mBAAc,GAA8C,CAAC,IAAW,EAAC,aAAoB,EAAC,EAAE,CAAA,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QAEzJ,uBAAkB,GAAuB,CAAC,IAAQ,EAAC,EAAE,CAAA,IAAI,CAAC;QAE7D,iBAAY,GAAQ,EAAE,CAAC;QAEN,2BAAsB,GAAG,KAAK,CAAC;QAE/B,mBAAc,GAAG,KAAK,CAAC;QAG1D,cAAS,GAAQ,EAAE,CAAC;QA8IrB,uBAAkB,GAAG,GAAS,EAAE;YACtC,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC;QAClD,CAAC,CAAC;QAEM,uBAAkB,GAAG,GAAS,EAAE;YACtC,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC;QAClD,CAAC,CAAC;IAmJJ,CAAC;IApSW,KAAK,CAAC,YAAY,CAAC,QAAwB;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC;QAE1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACzD,cAAc,EAAE,IAAI,CAAC,cAAc;YAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;YACjC,iBAAiB,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAClC,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,oBAAoB;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBAClC,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAC,CAAC,IAAQ,EAAC,EAAE,CAAA,IAAI,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;IAC3C,CAAC;IAES,OAAO,CAAC,iBAAiC;QACjD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAC,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;QACC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAGD,kBAAkB;QAChB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpE,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAEO,qBAAqB,CAAC,KAAiB;QAC7C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAE7I,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,KAAiB;QAC/C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAE7I,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAUM,MAAM;QACX,MAAM,OAAO,GAAC,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAA,IAAI,CAAC,qBAAqB,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,UAAU,EAAE,CAAC;QACtF,OAAO,IAAI,CAAA;0DAC2C,IAAI,CAAC,cAAc;;uBAEtD,IAAI,CAAC,QAAQ;wBACZ,IAAI,CAAC,SAAS;wBACd,IAAI,CAAC,SAAS;sBAChB,IAAI,CAAC,QAAQ;mBAChB,IAAI,CAAC,KAAK;wBACL,IAAI,CAAC,YAAY;mBACtB,IAAI,CAAC,WAAW;mBAChB,IAAI,CAAC,WAAW;;wBAEX,IAAI,CAAC,WAAW;;;YAG5B,IAAI,CAAC,OAAO,CAAA,CAAC,CAAA,IAAI,CAAA,mQAAmQ,CAAA,CAAC,CAAA,OAAO;;UAE9R,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAA;0DAC2C,IAAI,CAAC,YAAY,+EAA+E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;UACnL,UAAU,CAAC;YACX,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,UAAU,EAAE,CAAC,IAAQ,EAAgB,EAAE,CAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC5E,QAAQ,EAAC,IAAI;SACT,CAAC;;KAEL,CAAA;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;kDACmC,IAAI,CAAC,YAAY,6DAA6D,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;UACzJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAS,EAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;mBAC3D,CAAA;IACjB,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,iBAAiB,GACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;gCACe,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC;OACtD,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,cAAc,GAAG,YAAY,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,QAAgB,EAAE,EAAE;gBAChC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,OAAO,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAA;8BACe,KAAK;gDACa,cAAc,IAAI,EAAE;yCAC3B,UAAU,CAAC,QAAQ,CAAC;;;KAGxD,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEO,mBAAmB;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS;aACnC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;YACvD,OAAO,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;QAC5C,CAAC,EAAE,CAAC,CAAC,CAAA;QACP,MAAM,WAAW,GAAG,GAAG,CAAC;QACxB,MAAM,eAAe,GAAG,GAAG,CAAC;QAC5B,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,GAAG,eAAe,CAAC;QACpH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kCAAkC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;IAC/E,CAAC;IAEO,YAAY,CAAC,KAAkB;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAE9C,8CAA8C;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,2DAA2D;QAC3D,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,WAAW,CAAI,IAAS,EAAE,QAAkD;QAC1E,IAAG,OAAM,CAAC,IAAI,CAAC,KAAG,QAAQ;YAAE,OAAO,EAAE,CAAA;QACrC,MAAM,GAAG,GAAK,EAAE,CAAA;QAChB,IAAI,CAAC,OAAO,CAAE,EAAE,CAAA,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAA;QAC5D,OAAO,GAAG,CAAA;IACZ,CAAC;;AAtVM,uBAAM,GAAmB,MAAM,AAAzB,CAA0B;AAIf;IAAvB,KAAK,CAAC,eAAe,CAAC;yDAA+B;AAEjC;IAApB,KAAK,CAAC,YAAY,CAAC;sDAAyB;AAIhB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAA2B;AAE1B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDAAiC;AAMjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAgB;AAI9B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6DAAsC;AAErC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDAA8B;AAE9B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAoB;AAEnB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDAAsC;AAEpC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAA2B;AAE1B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAA4B;AAE3B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAA4B;AAE3B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAA0B;AAExB;IAA7B,QAAQ,CAAC,EAAE,SAAS,EAAC,KAAK,EAAC,CAAC;wDAA0J;AAEzJ;IAA7B,QAAQ,CAAC,EAAE,SAAS,EAAC,KAAK,EAAC,CAAC;4DAA2D;AAE7D;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;sDAAwB;AAEN;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gEAAgC;AAE/B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDAAwB;AAG1D;IAAR,KAAK,EAAE;mDAAqB;AAwE7B;IADC,KAAK,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;0DAS/C;AAnIU,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CA0V5B;;AAED,eAAe,gBAAgB,CAAC","sourcesContent":["import {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n nothing,\n} from 'lit';\nimport { customElement, query, state, property } from 'lit/decorators.js';\nimport { styles } from './nile-auto-complete.css';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport { NileDropdown } from '../nile-dropdown';\nimport { watch } from '../internal/watch';\nimport { AutoCompletePortalManager } from './portal-manager';\nimport { NileInput } from '../nile-input';\n\nimport { virtualize } from '@lit-labs/virtualizer/virtualize.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n\n// Define the custom element 'nile-auto-complete'\n@customElement('nile-auto-complete')\nexport class NileAutoComplete extends NileElement {\n\n static styles: CSSResultGroup = styles;\n private visibilityManager?: VisibilityManager;\n\n\n @query('nile-dropdown') dropdownElement: NileDropdown;\n\n @query('nile-input') inputElement: NileInput;\n\n // Define component properties\n\n @property({ type: Boolean }) disabled: boolean = false;\n\n @property({ type: Boolean }) isDropdownOpen: boolean = false;\n\n /** \n * When true, the dropdown menu will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n private readonly portalManager = new AutoCompletePortalManager(this);\n\n @property({ type: Boolean }) enableVirtualScroll: boolean = false;\n\n @property({ type: Boolean }) openOnFocus: boolean = false;\n\n @property({ type: String }) value: string = '';\n\n @property({ type: String }) placeholder: string = 'Type here ..';\n\n @property({ type: Boolean }) noBorder: boolean = false;\n \n @property({ type: Boolean }) noOutline: boolean = false;\n\n @property({ type: Boolean }) noPadding: boolean = false;\n\n @property({ type: Boolean }) loading: boolean = false;\n\n @property({ attribute:false}) filterFunction: (item:string,searchedValue:string)=>boolean=(item:string,searchedValue:string)=>item.toLowerCase().includes(searchedValue.toLowerCase());\n\n @property({ attribute:false}) renderItemFunction: (item:any)=>string = (item:any)=>item;\n\n @property({ type: Array }) allMenuItems: any = [];\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n\n @state() menuItems: any = [];\n\n\n protected async firstUpdated(_changed: PropertyValues) {\n await this.updateComplete;\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.inputElement.input, \n enableVisibilityEffect: this.enableVisibilityEffect,\nenableTabClose: this.enableTabClose,\n isOpen: () => this.isDropdownOpen,\n onAnchorOutOfView: () => {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n }\n connectedCallback() {\n super.connectedCallback();\n this.renderItemFunction=(item:any)=>item;\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n this.portalManager.cleanupPortalAppend();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n if (changedProperties.has('allMenuItems')){\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n this.setVirtualMenuWidth();\n if (this.portal && this.isDropdownOpen) {\n this.portalManager.updatePortalOptions();\n }\n }\n if (changedProperties.has('isDropdownOpen')) {\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n this.handleDropdownOpenChange();\n }\n if (changedProperties.has('value')){\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n if (this.portal && this.isDropdownOpen) {\n this.portalManager.updatePortalOptions();\n }\n }\n if (changedProperties.has('portal')) {\n this.handlePortalChange();\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalChange(): void {\n if (this.isDropdownOpen) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private handleDropdownOpenChange(): void {\n if (this.isDropdownOpen) {\n this.addOpenListeners();\n this.visibilityManager?.setup();\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n } else {\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n private addOpenListeners(): void {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners(): void {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n if (!this.isDropdownOpen) return;\n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitDropdown = this.dropdownElement && path.includes(this.dropdownElement);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitDropdown && !hitPortalAppend) {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n if (!this.isDropdownOpen) return;\n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitDropdown = this.dropdownElement && path.includes(this.dropdownElement);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitDropdown && !hitPortalAppend) {\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n }\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n public render(): TemplateResult {\n const content=this.enableVirtualScroll?this.getVirtualizedContent():this.getContent();\n return html`\n <nile-dropdown class=\"nile-dropdown--input\" ?open=${this.isDropdownOpen} noOpenOnCLick exportparts=\"input, base\">\n <nile-input class=\"nile-auto-complete--input\"\n ?no-border=${this.noBorder}\n ?no-outline=${this.noOutline}\n ?no-padding=${this.noPadding}\n .disabled=${this.disabled}\n .value=${this.value}\n @nile-input=${this.handleSearch}\n @focus=${this.handleFocus}\n @click=${this.handleClick}\n slot=\"trigger\"\n placeholder=${this.placeholder}\n exportparts=\"input, base\"\n >\n ${this.loading?html`<nile-icon slot=\"suffix\" color=\"var(--nile-colors-primary-600)\" name=\"var(--nile-icon-button-loading-blue-animated, var(--ng-icon-button-loading-blue-animated))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>`:nothing}\n </nile-input>\n ${this.menuItems.length > 0 && !this.loading\n ? content\n : nothing}\n </nile-dropdown>\n `;\n } \n \n getVirtualizedContent():TemplateResult{\n return html`\n <nile-menu class=\"virtualized__menu\" @nile-select=${this.handleSelect} id=\"content-menu\" exportparts=\"menu__items-wrapper:options__wrapper\" style=${this.portal ? 'display: none;' : ''}>\n ${virtualize({\n items: this.menuItems,\n renderItem: (item:any):TemplateResult=>this.getItemRenderFunction(item),\n\t\t\t\t\tscroller:true\n })}\n </nile-menu>\n `\n }\n\n getContent():TemplateResult{\n return html`\n <nile-menu id=\"content-menu\" @nile-select=${this.handleSelect} exportparts=\"menu__items-wrapper:options__wrapper\" style=${this.portal ? 'display: none;' : ''}>\n ${this.menuItems.map((item: any) => this.getItemRenderFunction(item))}\n </nile-menu>`\n }\n\n getItemRenderFunction(item: any): TemplateResult {\n const value = this.renderItemFunction(item);\n let strValue = \"\";\n if(value || typeof value === \"number\") {\n strValue = value.toString();\n }\n const hasTooltip = !!item.tooltip;\n const shouldShowTooltip =\n hasTooltip && (!item.tooltip.for || item.tooltip.for === 'menu');\n \n if (!shouldShowTooltip) {\n return html`\n <nile-menu-item value=${value}>${unsafeHTML(strValue)}</nile-menu-item>\n `;\n }\n \n let tooltipContent: string | null = null;\n \n const content = item.tooltip.content;\n if (content instanceof Promise) {\n tooltipContent = 'Loading...'; \n content.then((resolved: string) => {\n item.tooltip.content = resolved;\n this.requestUpdate(); \n });\n } else {\n tooltipContent = content;\n }\n \n return html`\n <nile-menu-item value=${value}>\n <nile-lite-tooltip allowHTML .content=${tooltipContent ?? \"\"}>\n <span class=\"menu-item-text\">${unsafeHTML(strValue)}</span>\n </nile-lite-tooltip>\n </nile-menu-item>\n `;\n }\n\n handleSelect(event: CustomEvent) {\n this.value = event.detail.value;\n this.emit('nile-complete', { value: event.detail.value });\n this.isDropdownOpen = false;\n this.dropdownElement?.hide();\n }\n\n private setVirtualMenuWidth() {\n const maxLengthOption = this.menuItems\n .reduce((acc: number, curr: any) => {\n const currLength = this.renderItemFunction(curr).length\n return acc > currLength ? acc : currLength\n }, 0)\n const defaultWith = 110;\n const pixelMultiplier = 9.5;\n const menuWidth = maxLengthOption * pixelMultiplier < defaultWith ? defaultWith : maxLengthOption * pixelMultiplier;\n this.style.setProperty(\"--virtual-scroll-container-width\", menuWidth + \"px\");\n }\n\n private handleSearch(event: CustomEvent) {\n this.value = event.detail.value.toLowerCase();\n\n // Filter menu items based on the search value\n this.menuItems = this.applyFilter(this.allMenuItems,this.filterFunction);\n\n this.isDropdownOpen = this.menuItems.length > 0;\n if (this.isDropdownOpen) {\n this.dropdownElement?.show();\n if (this.portal) {\n this.portalManager.updatePortalOptions();\n }\n }\n }\n\n public handleFocus() {\n if (!this.openOnFocus) {\n return;\n }\n\n if(this.portal) {\n this.inputElement?.focus();\n }\n\n // Delay opening the dropdown to allow focus to take effect\n setTimeout(() => {\n this.isDropdownOpen = true;\n this.dropdownElement?.show();\n }, 300);\n }\n\n private handleClick() {\n this.isDropdownOpen = true;\n this.dropdownElement?.show();\n }\n\n applyFilter<T>(list: T[], filterFn: (item: T,searchValue?:string) => boolean): T[] {\n if(typeof(list)!=='object') return []\n const res:T[]=[]\n list.forEach( el=> filterFn(el,this.value) && res.push(el) )\n return res\n }\n\n}\n\nexport default NileAutoComplete;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-auto-complete': NileAutoComplete;\n }\n}\n"]}
|
|
@@ -198,7 +198,10 @@ let NileChip = class NileChip extends NileElement {
|
|
|
198
198
|
${this.tags.map((tag, index) => {
|
|
199
199
|
const tooltipContent = this.tooltips[index];
|
|
200
200
|
const isFocused = this.enableTagDelete && this.chipFocusIndex === index;
|
|
201
|
-
|
|
201
|
+
let tagText = "";
|
|
202
|
+
if (tag || typeof tag === "number") {
|
|
203
|
+
tagText = tag.toString();
|
|
204
|
+
}
|
|
202
205
|
const tagTemplate = html `
|
|
203
206
|
<nile-tag
|
|
204
207
|
class=${classMap({
|