1 |
|
2 | import { Autocomplete, AutocompleteConfig, AutocompleteUI} from '../Autocomplete';
|
3 | import { createSvgUse } from "../utils/svg";
|
4 | import { Spinner } from '../Spinner';
|
5 |
|
6 | Object.assign(AutocompleteConfig, {
|
7 | iconSearch: 'search',
|
8 | });
|
9 |
|
10 | Object.assign(AutocompleteUI, {
|
11 | getIcon(autocomplete) {
|
12 | return autocomplete.getElementsByTagName('svg')[0];
|
13 | },
|
14 | createIcon() {
|
15 | return createSvgUse(this.Config.iconSearch);
|
16 | },
|
17 | insertIcon(autocomplete, icon) {
|
18 | autocomplete.appendChild(icon);
|
19 | },
|
20 | });
|
21 |
|
22 | Object.assign(Autocomplete, {
|
23 | initIcons(autocomplete) {
|
24 | const icon = this.UI.createIcon();
|
25 | this.UI.insertIcon(autocomplete, icon);
|
26 | this.onBeforeUpdate(autocomplete, () => {
|
27 | this.showSpinner(autocomplete);
|
28 | });
|
29 | this.onUpdate(autocomplete, (res, err) => {
|
30 | this.hideSpinner(autocomplete);
|
31 | });
|
32 | },
|
33 |
|
34 | showSpinner(autocomplete) {
|
35 | Spinner.toggle(this.UI.getIcon(autocomplete));
|
36 | },
|
37 | hideSpinner(autocomplete) {
|
38 | Spinner.toggle(this.UI.getIcon(autocomplete));
|
39 | }
|
40 | });
|