aboutsummaryrefslogtreecommitdiffstats
path: root/src/angular/tag-cloud/tag-cloud.component.ts
diff options
context:
space:
mode:
authorIsrael Lavi <israel.lavi@intl.att.com>2018-05-21 17:42:00 +0300
committerIsrael Lavi <il0695@att.com>2018-05-21 17:52:01 +0300
commit1994c98063c27a41797dec01f2ca9fcbe33ceab0 (patch)
treef30beeaf15a8358f6da78fdd74bcbda74bd334f8 /src/angular/tag-cloud/tag-cloud.component.ts
parent4749f4631426fcbe29ed98cef8f24cab18b501d0 (diff)
init commit onap ui
Change-Id: I1dace78817dbba752c550c182dfea118b4a38646 Issue-ID: SDC-1350 Signed-off-by: Israel Lavi <il0695@att.com>
Diffstat (limited to 'src/angular/tag-cloud/tag-cloud.component.ts')
-rw-r--r--src/angular/tag-cloud/tag-cloud.component.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/angular/tag-cloud/tag-cloud.component.ts b/src/angular/tag-cloud/tag-cloud.component.ts
new file mode 100644
index 0000000..1635b8d
--- /dev/null
+++ b/src/angular/tag-cloud/tag-cloud.component.ts
@@ -0,0 +1,46 @@
+import { Component, EventEmitter, Input, Output } from "@angular/core";
+import template from "./tag-cloud.component.html";
+
+@Component({
+ selector: 'sdc-tag-cloud',
+ template: template,
+})
+export class TagCloudComponent {
+ @Input() public list: string[];
+ @Input() public isViewOnly: boolean|number[]; // get a boolean parameter or array of specific items indexes.
+ @Input() public isUniqueList: boolean;
+ @Input() public uniqueErrorMessage: string = "Unique error";
+ @Input() public label: string;
+ @Input() public placeholder: string;
+ @Output() public listChanged: EventEmitter<string[]> = new EventEmitter<string[]>();
+ private newTagItem: string;
+ private uniqueError: boolean;
+
+ private onKeyup = (e): void => {
+ if (e.keyCode === 13) {
+ this.insertItemToList();
+ }
+ }
+
+ private insertItemToList = (): void => {
+ this.validateTag();
+ if (!this.uniqueError && this.newTagItem.length) {
+ this.list.push(this.newTagItem);
+ this.newTagItem = "";
+ this.listChanged.emit(this.list);
+ }
+ }
+
+ private deleteItemFromList = (index: number): void => {
+ this.list.splice(index, 1);
+ if (Array.isArray(this.isViewOnly)) {
+ this.isViewOnly = this.isViewOnly.map((i: number) => {
+ return i > index ? i - 1 : i;
+ });
+ }
+ }
+
+ private validateTag = (): void => {
+ this.uniqueError = this.list && this.list.indexOf(this.newTagItem) > -1;
+ }
+}