Getting Started with Analytics SDK for Angular

    Step 1 - Create the Angular App

    1 - Open your favorite terminal

    2 - Create a new Angular application using the Angular CLI

    > ng new getting-started
    

    3 - Change directories into the newly created app directory and open the project in your favorite Editor. In this example, we are using Visual Studio Code.

    > cd getting-started
    > code .
    

    Step 2 - Add Analytics JavaScript API

    1 - Create a new folder called reveal under the assets folder.

    2 - Copy all the JavaScript files located at %public%/Documents/Infragistics/Analytics/SDK/Web/JS/Client into the assets/reveal folder you created previously.

    3 - Open and modify the index.html file to include the infragistics.reveal.js script at the bottom of the page just before the closing </body> tag.

    <script src="assets/reveal/infragistics.reveal.js"></script>
    

    4 - Install the remaining Analytics JavaScript API dependencies:

    • Jquery 2.2 or greater
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
    
    • Day.js 1.8.15 or greater
    <script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
    
    • Quill RTE 1.3.6 or greater
    <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet" type="text/css">    
    <script src="https://cdn.quilljs.com/1.3.6/quill.min.js"></script>
    
    • Spectrum v 1.8.0 or newer (Optional) - this is only needed if you enable the UI for the end user to set the background color for a particular visualization.
    <link href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.css" rel="stylesheet" type="text/css" >
    <script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script>
    

    The final index.html files should look similar to this:

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>GettingStarted</title>
      <base href="/">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="favicon.ico">
      <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet" type="text/css">    
    </head>
    <body>
      <app-root></app-root>
    
      <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
      <script src="https://cdn.quilljs.com/1.3.6/quill.min.js"></script>
      <script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
      <script src="assets/reveal/infragistics.reveal.js"></script>
    </body>
    </html>
    

    Step 3 - Initialize the Analytics view

    1 - Open and modify the src/app/app.component.html file. Delete all the contents of the file and add a new <div> tag and set the reference to revealView.

    <div #revealView style="height: 100vh; width: 100%; position:relative;"></div>
    

    2 - Open and modify the src/app/app.component.ts file. First, we need to make sure that we can use jQuery by declaring a new variable named $, of type any, at the top of the file just under the import statements. This will make sure TypeScript will compile our JavaScript.

    declare let $: any;
    

    Next, we need access to the revalView that we defined in HTML as a ViewChild. Add a property to hold this reference.

    export class AppComponent {
    
      @ViewChild('revealView') el!: ElementRef;
    
    }
    

    Now, we need to implement the AfterViewInit interface on our component.

    export class AppComponent implements AfterViewInit {
    
      @ViewChild('revealView') el!: ElementRef;
    
      ngAfterViewInit(): void {
    
      }
    
    }
    

    Once that is complete, we can now initialize the AnalyticsView.

    export class AppComponent implements AfterViewInit {
    
      @ViewChild('revealView') el!: ElementRef;
    
      ngAfterViewInit(): void {
        $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync().then(() => {
          var revealView = new $.ig.AnalyticsView(this.el.nativeElement);
        }); 
      }
    
    }
    

    This code first calls the $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync to ensure that all fonts have been properly loaded. Next, we instantiate a new instance of the AnalyticsView by creating a new $.ig.AnalyticsView and passing in the revealView element that has been stored in the ViewChild property.

    The final app.component.ts file should look like this:

    import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';
    
    declare let $: any;
    
    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.scss']
    })
    export class AppComponent implements AfterViewInit {
    
      @ViewChild('revealView') el!: ElementRef;
    
      ngAfterViewInit(): void {
        $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync().then(() => {
          var revealView = new $.ig.AnalyticsView(this.el.nativeElement);
        }); 
      }
    
    }
    
    Important

    Clients apps must set the $.ig.AnalyticsSdkSettings.setBaseUrl("url-to-server"); to the server address hosting the dashboards if the client is being hosting on a different URL.

    Step 4 - Run the Application

    In the Visual Studio Code terminal, type the npm start command

    > npm start
    

    Congratulations! You have written your first Analytics SDK Angular application.

    Next Steps:

    Note

    The source code to this sample can be found on GitHub.