diff --git a/addons/web/static/src/core/autocomplete/autocomplete.js b/addons/web/static/src/core/autocomplete/autocomplete.js index d215658c6de..58133ee3f7b 100644 --- a/addons/web/static/src/core/autocomplete/autocomplete.js +++ b/addons/web/static/src/core/autocomplete/autocomplete.js @@ -64,7 +64,7 @@ export class AutoComplete extends Component { // position and size if (this.props.dropdown) { - usePosition("sourcesList", () => this.inputRef.el, { + usePosition("sourcesList", () => this.targetDropdown, { position: "bottom-start", }); } else { @@ -72,6 +72,10 @@ export class AutoComplete extends Component { } } + get targetDropdown() { + return this.inputRef.el; + } + get isOpened() { return this.state.open; } @@ -263,6 +267,7 @@ export class AutoComplete extends Component { this.inputRef.el.setSelectionRange(0, this.inputRef.el.value.length); this.props.onFocus(ev); } + get autoCompleteRootClass() { let classList = ""; if (this.props.class) { @@ -274,6 +279,16 @@ export class AutoComplete extends Component { return classList; } + get ulDropdownClass() { + let classList = ""; + if (this.props.dropdown) { + classList += " dropdown-menu ui-autocomplete"; + } else { + classList += " list-group"; + } + return classList; + } + async onInputKeydown(ev) { const hotkey = getActiveHotkey(ev); const isSelectKey = hotkey === "enter" || hotkey === "tab"; diff --git a/addons/web/static/src/core/autocomplete/autocomplete.xml b/addons/web/static/src/core/autocomplete/autocomplete.xml index 7ba18a2da44..0bfd797e18d 100644 --- a/addons/web/static/src/core/autocomplete/autocomplete.xml +++ b/addons/web/static/src/core/autocomplete/autocomplete.xml @@ -20,10 +20,7 @@ />