From ed64b5edff15e702493df21aa3230b81593e6133 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Fri, 9 Jun 2017 03:19:04 +0300 Subject: [SDC-29] catalog 1707 rebase commit. Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando --- .../app/directives/ellipsis/ellipsis-directive.ts | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 catalog-ui/src/app/directives/ellipsis/ellipsis-directive.ts (limited to 'catalog-ui/src/app/directives/ellipsis/ellipsis-directive.ts') diff --git a/catalog-ui/src/app/directives/ellipsis/ellipsis-directive.ts b/catalog-ui/src/app/directives/ellipsis/ellipsis-directive.ts new file mode 100644 index 0000000000..8fbbd4d486 --- /dev/null +++ b/catalog-ui/src/app/directives/ellipsis/ellipsis-directive.ts @@ -0,0 +1,57 @@ +'use strict'; +export interface IEllipsisScope extends ng.IScope { + ellipsis:string; + maxChars:number; + toggleText():void; + collapsed:boolean; + actualText:string; + +} + +export class EllipsisDirective implements ng.IDirective { + + constructor() { + } + + scope = { + ellipsis: '=', + moreClass: '@', + maxChars: '=' + }; + + replace = false; + restrict = 'A'; + template = ():string => { + return require('./ellipsis-directive.html'); + }; + + link = (scope:IEllipsisScope, $elem:any) => { + + + scope.collapsed = true; + + scope.toggleText = ():void => { + if (scope.ellipsis && scope.collapsed) { + scope.actualText = scope.ellipsis.substr(0, scope.maxChars); + scope.actualText += scope.ellipsis.length > scope.maxChars ? '...' : ''; + } + else { + scope.actualText = scope.ellipsis; + } + }; + + scope.$watch("ellipsis", function () { + scope.collapsed = true; + scope.toggleText(); + }); + + + }; + + public static factory = ()=> { + return new EllipsisDirective(); + }; + +} + +EllipsisDirective.factory.$inject = []; -- cgit 1.2.3-korg