(e: InputEvent)
| 751 | } |
| 752 | |
| 753 | _inputLiveChange(e: InputEvent) { |
| 754 | // This ensures proper input clearing after Enter-based token creation during composition |
| 755 | if (this._suppressNextLiveChange) { |
| 756 | this._suppressNextLiveChange = false; |
| 757 | return; |
| 758 | } |
| 759 | |
| 760 | const input = e.target as HTMLInputElement; |
| 761 | const value: string = input.value; |
| 762 | const filteredItems: Array<IMultiComboBoxItem> = this._filterItems(value); |
| 763 | |
| 764 | this._shouldFilterItems = true; |
| 765 | |
| 766 | if (this.filterSelected) { |
| 767 | this.filterSelected = false; |
| 768 | } |
| 769 | |
| 770 | if (this._validationTimeout) { |
| 771 | if (this._filterItems(value).length) { |
| 772 | this._updateValueState(this._effectiveValueState); |
| 773 | this._validationTimeout = null; |
| 774 | } else { |
| 775 | return; |
| 776 | } |
| 777 | } |
| 778 | |
| 779 | // Save the original value state before setting validation error |
| 780 | if (this.valueState !== ValueState.Negative) { |
| 781 | this._effectiveValueState = this.valueState; |
| 782 | } |
| 783 | |
| 784 | if (!this._isComposing && !filteredItems.length && value && !this.noValidation) { |
| 785 | this._updateValueState(ValueState.Negative); |
| 786 | this._shouldAutocomplete = false; |
| 787 | } else if ((filteredItems.length || !value) && this.valueState === ValueState.Negative) { |
| 788 | this._updateValueState(this._effectiveValueState); |
| 789 | } |
| 790 | |
| 791 | if (!this._isComposing) { |
| 792 | this._inputLastValue = input.value; |
| 793 | } |
| 794 | |
| 795 | this.value = input.value; |
| 796 | this._filteredItems = filteredItems; |
| 797 | |
| 798 | if (!isPhone()) { |
| 799 | if (filteredItems.length === 0) { |
| 800 | this.open = false; |
| 801 | } else { |
| 802 | this.open = true; |
| 803 | } |
| 804 | } |
| 805 | |
| 806 | this.fireDecoratorEvent("input"); |
| 807 | } |
| 808 | |
| 809 | _updateValueState(newValueState: `${ValueState}`) { |
| 810 | const oldValueState = this.valueState; |
nothing calls this directly
no test coverage detected