# Class DashboardService Fusion Embed

Service for working with Sisense Fusion dashboards.

Note: Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.

# Constructors

# constructor

new DashboardService(sisenseContextService): DashboardService

# Parameters

Parameter Type
sisenseContextService SisenseContextService

# Returns

DashboardService

# Methods

# createComposedDashboard

createComposedDashboard<D>(initialDashboard, options = {}): object

Сomposes dashboard or separate dashboard elements into a coordinated dashboard with cross filtering, and change detection.

# Type parameters

Parameter
D extends ComposableDashboardProps | DashboardProps

# Parameters

Parameter Type Description
initialDashboard D Initial dashboard
options UseComposedDashboardOptions Configuration options

# Returns

Reactive composed dashboard object and API methods for interacting with it

# dashboard$

dashboard$: BehaviorSubject< D >

# setFilters

setFilters: (filters) => Promise< void >

# Parameters
Parameter Type
filters FilterRelations | Filter[]
# Returns

Promise< void >

# setWidgetsLayout

setWidgetsLayout: (newLayout) => Promise< void >

# Parameters
Parameter Type
newLayout WidgetsPanelColumnLayout
# Returns

Promise< void >

# Example

An example of using the createComposedDashboard to construct a composed dashboard and render it:

 <!--Component HTML template in example.component.html-->
 <div *ngIf="dashboard$ | async as dashboard">
   <csdk-filter-tile
     *ngFor="let filter of getDashboardFilters(dashboard); trackBy: trackByIndex"
     [filter]="filter"
   />
   <csdk-widget
     *ngFor="let widget of dashboard.widgets; trackBy: trackByIndex"
     [id]="widget.id"
     [widgetType]="widget.widgetType"
     [chartType]="widget.chartType"
     [pluginType]="widget.pluginType"
     [dataSource]="widget.dataSource"
     [dataOptions]="widget.dataOptions"
     [filters]="widget.filters"
     [highlights]="widget.highlights"
     [styleOptions]="widget.styleOptions"
     [drilldownOptions]="widget.drilldownOptions"
     [title]="widget.title"
     [description]="widget.description"
     [beforeMenuOpen]="widget.beforeMenuOpen"
     (dataPointClick)="widget.dataPointClick?.($event)"
     (dataPointContextMenu)="widget.dataPointContextMenu?.($event)"
     (dataPointsSelect)="widget.dataPointsSelect?.($event)"
   />
 </div>
 // Component behavior in example.component.ts
 import { Component } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
 import { DashboardService, type DashboardProps } from '@sisense/sdk-ui-angular';

 @Component({
   selector: 'example',
   templateUrl: './example.component.html',
   styleUrls: ['./example.component.scss'],
 })
 export class ExampleComponent {
   dashboard$: BehaviorSubject<DashboardProps> | undefined;

   constructor(private dashboardService: DashboardService) {}

   ngOnInit() {
     const initialDashboard: DashboardProps = { ... };
     const composedDashboard = this.dashboardService.createComposedDashboard(initialDashboard);
     this.dashboard$ = composedDashboard.dashboard$;
   }

   trackByIndex = (index: number) => index;

   getDashboardFilters = ({ filters }: DashboardProps) => Array.isArray(filters) ? filters : [];
 }

# getDashboardModel

getDashboardModel(dashboardOid, options?): Promise< DashboardModel >

Retrieves an existing dashboard model from the Sisense instance.

# Parameters

Parameter Type Description
dashboardOid string Identifier of the dashboard
options? GetDashboardModelOptions Advanced configuration options

# Returns

Promise< DashboardModel >

Dashboard model


# getDashboardModels

getDashboardModels(options?): Promise< DashboardModel[] >

Retrieves existing dashboard models from the Sisense instance.

# Parameters

Parameter Type Description
options? GetDashboardModelsOptions Advanced configuration options

# Returns

Promise< DashboardModel[] >

Dashboard models array