Initial OpenECOMP SDC commit
[sdc.git] / catalog-ui / app / scripts / directives / tag / tag-directive.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 /// <reference path="../../references"/>
21 module Sdc.Directives {
22     'use strict';
23
24     export class TagData {
25         tag:string;
26         tooltip:string;
27         id: string;
28     }
29
30     export interface ITagScope extends ng.IScope {
31         tagData: TagData;
32         onDelete: Function;
33         delete:Function;
34         hideTooltip:boolean;
35         hideDelete:boolean;
36         sdcDisable: boolean;
37     }
38
39     export class TagDirective implements ng.IDirective {
40
41         constructor(private $templateCache:ng.ITemplateCacheService) {
42         }
43
44         scope = {
45             tagData: '=',
46             onDelete: '&',
47             hideTooltip: '=',
48             hideDelete: '=',
49             sdcDisable: '='
50         };
51
52         replace = true;
53         restrict = 'EA';
54         template = ():string => {
55             return this.$templateCache.get('/app/scripts/directives/tag/tag-directive.html');
56         };
57
58         link = (scope:ITagScope) => {
59             scope.delete = ()=>{
60                 scope.onDelete({'uniqueId':scope.tagData.id});
61             }
62         };
63
64         public static factory = ($templateCache:ng.ITemplateCacheService)=> {
65             return new TagDirective($templateCache);
66         };
67
68     }
69
70     TagDirective.factory.$inject = ['$templateCache'];
71 }