-
Notifications
You must be signed in to change notification settings - Fork 129
/
Copy pathautocomplete-events.component.ts
125 lines (106 loc) · 3.86 KB
/
autocomplete-events.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import { Component } from "@angular/core";
import { ObservableArray } from "tns-core-modules/data/observable-array";
import { TokenModel } from "nativescript-ui-autocomplete";
import { RadAutoCompleteTextViewComponent } from "nativescript-ui-autocomplete/angular";
@Component({
moduleId: module.id,
selector: "tk-autocomplete-events.component",
templateUrl: "autocomplete-events.component.html"
})
export class AutoCompleteEventsComponent {
private _items: ObservableArray<TokenModel>;
private countries = ["Australia", "Albania", "Austria", "Argentina", "Maldives", "Bulgaria", "Belgium", "Cyprus", "Italy", "Japan",
"Denmark", "Finland", "France", "Germany", "Greece", "Hungary", "Ireland",
"Latvia", "Luxembourg", "Macedonia", "Moldova", "Monaco", "Netherlands", "Norway",
"Poland", "Romania", "Russia", "Sweden", "Slovenia", "Slovakia", "Turkey", "Ukraine",
"Vatican City", "Chad", "China", "Chile"];
private _currentEventNumber: number;
private _eventsText: string;
private _eventName1: string;
private _eventName2: string;
private _eventName3: string;
private _eventName4: string;
private _eventName5: string;
constructor() {
this.initDataItems();
this._currentEventNumber = 0;
this.updateEventsText();
}
get dataItems(): ObservableArray<TokenModel> {
return this._items;
}
private initDataItems() {
this._items = new ObservableArray<TokenModel>();
for (var i = 0; i < this.countries.length; i++) {
this._items.push(new TokenModel(this.countries[i], undefined));
}
}
get eventsText(): string {
return this._eventsText;
}
get eventName1(): string {
return this._eventName1;
}
get eventName2(): string {
return this._eventName2;
}
get eventName3(): string {
return this._eventName3;
}
get eventName4(): string {
return this._eventName4;
}
get eventName5(): string {
return this._eventName5;
}
// >> angular-autocomplete-events
public onTokenAdded(args) {
this.logEvent("Added Token: " + args.token.text);
}
public onTokenRemoved(args) {
this.logEvent("Removed Token: " + args.token.text);
}
public onTokenSelected(args) {
this.logEvent("Selected Token: " + args.token.text);
}
public onTokenDeselected(args) {
this.logEvent("Deselected Token: " + args.token.text);
}
public onDidAutoComplete(args) {
this.logEvent("DidAutoComplete with text: " + args.text);
}
public onSuggestionViewBecameVisible(args) {
this.logEvent("Suggestion View Became Visible");
}
// << angular-autocomplete-events
private updateEventsText(): void {
var text;
if (this._currentEventNumber > 5) {
text = "Latest 5 fired events:";
} else if (this._currentEventNumber == 0) {
text = "Events will appear here:";
} else if (this._currentEventNumber == 1) {
text = "Fired event:";
} else {
text = "Fired events:";
}
this._eventsText = text;
}
private logEvent(eventText: string) {
this._currentEventNumber++;
this.updateEventsText();
switch (this._currentEventNumber) {
case 1: this._eventName1 = eventText; return;
case 2: this._eventName2 = eventText; return;
case 3: this._eventName3 = eventText; return;
case 4: this._eventName4 = eventText; return;
case 5: this._eventName5 = eventText; return;
default:
this._eventName1 = this.eventName2;
this._eventName2 = this.eventName3;
this._eventName3 = this.eventName4;
this._eventName4 = this.eventName5;
this._eventName5 = eventText;
}
}
}