Implemented WebSockets for GUI2

Change-Id: I4776ce392b1e8e94ebee938cf7df22791a1e0b8f
diff --git a/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts b/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
index 674cbbf..c6a81e9 100644
--- a/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
+++ b/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
@@ -222,7 +222,7 @@
             'xlink:href': '#' + glyphId,
             width: dim,
             height: dim,
-            transform: this.sus.translate(xlate, xlate),
+            transform: this.sus.translate([xlate], xlate),
         });
         return g;
     }
diff --git a/web/gui2/src/main/webapp/app/fw/svg/svgutil.service.ts b/web/gui2/src/main/webapp/app/fw/svg/svgutil.service.ts
index 51d5d2a..9cba079 100644
--- a/web/gui2/src/main/webapp/app/fw/svg/svgutil.service.ts
+++ b/web/gui2/src/main/webapp/app/fw/svg/svgutil.service.ts
@@ -22,7 +22,9 @@
  *
  * The SVG Util Service provides a miscellany of utility functions.
  */
-@Injectable()
+@Injectable({
+  providedIn: 'root',
+})
 export class SvgUtilService {
 
     constructor(
@@ -32,7 +34,7 @@
         this.log.debug('SvgUtilService constructed');
     }
 
-    translate(x, y) {
+    translate(x: number[], y?: any): string {
         if (this.fs.isA(x) && x.length === 2 && !y) {
             return 'translate(' + x[0] + ',' + x[1] + ')';
         }