Skip to main content
5.1.0Next5.1.05.0.35.0.25.0.15.0.04.0.94.0.84.0.73.2.03.1.03.0.13.0.02.1.12.0.101.0.0
Version: 5.1.0

Angular

This is a guide for using Triton Component Library in an Angular project.

The Triton Component Library is distributed via JFrog. To install it the project must be configured to use KDI JFrog.

Installation

First setup

Install the package with the following npm command:

npm install @kognifai/triton-cl-angular

or with yarn:

yarn add @kognifai/triton-cl-angular

Add theme to your Angular project.

Add a theme attribute to the body of the src/index.html file, located in the root of the project.

<body data-theme="day"></body>

Add fonts

To render the default font include the font assets into assets in angular.json

assets: [
...
{
"glob": "**/*",
"input": "node_modules/@kognifai/triton-cl-core/dist/assets/fonts/",
"output": "./fonts/"
},
...
]

Update Angular configuration

Add a global style to the Angular project. Go to angular.json (found in root)

styles: [
...
"node_modules/@kognifai/triton-cl-core/dist/assets/css/design-system.css",
...
]

PNext Update

Before the full release of Triton 2.0.0, a work-around is required for PNext to load the correct theme-setting on page reload. Add the following lines to App-Component.ts:

this.themeService.getSelectedTheme().then((theme) => {
this.document.body.setAttribute('data-theme', theme.value.name.toLowerCase());
});

this.themeService.themeChanged.subscribe((changes: any) => {
this.document.body.setAttribute('data-theme', changes.toLowerCase());
});

Add Legacy style

To render the legacy style include the old file into styles in angular.json

styles: [
...
{
"inject": true,
"input": "node_modules/@kognifai/triton-cl-core/legacy/css/legacy-design-system.min.css",
"bundleName": "legecy-design-system"
},
...
]

Usage

To use the components in your Angular app, you have to import the TritonCLCoreModule to the module in which you want to use any Triton components. It must also be imported as a depenency. This can be done like this:

import { TritonClCoreModule } from '@kognifai/triton-cl-angular';
...
imports: [
TritonClCoreModule,
...
]
...

Optimalization

Angular uses a library called zone.js which helps it determine when to run change detection. Certain APIs for Web Components also cause change detection to run. This can have the undesirable side effect in the app slowing down when a large number of components are initializing. To prevent this from happening, the zone.js flag that manages this portion of change detection can be disabled.

(window as any).__Zone_disable_customElements = true;

The line needs to be imported into your application's polyfills.ts file. Be sure to import it before zone.js is imported.

Read more about this from the Ionic team