Angular Toolbar Overview
The Angular Toolbar component is a companion container for UI operations to be used primarily with our charting components. The toolbar will dynamically update with a preset of properties and tool items when linked to our IgxDataChartComponent
or IgxCategoryChartComponent
components. You'll be able to create custom tools for your project allowing end users to provide changes, offering an endless amount of customization.
Angular Toolbar Example
Dependencies
Install the Ignite UI for Angular layouts, inputs, charts and core packages:
npm install igniteui-angular-layouts
npm install igniteui-angular-inputs
npm install igniteui-angular-charts
npm install igniteui-angular-core
The following modules are required when using the IgxToolbarComponent
with the IgxDataChartComponent
component and it's features.
import { IgxToolbarModule } from 'igniteui-angular-layouts';
import { IgxDataChartToolbarModule, IgxDataChartCoreModule, IgxDataChartCategoryModule, IgxDataChartAnnotationModule, IgxDataChartInteractivityModule, IgxDataChartCategoryTrendLineModule } from 'igniteui-angular-charts';
@NgModule({
imports: [
// ...
IgxToolbarModule,
IgxDataChartToolbarModule,
IgxDataChartCoreModule,
IgxDataChartCategoryModule,
IgxDataChartAnnotationModule,
IgxDataChartInteractivityModule,
IgxDataChartCategoryTrendLineModule
// ...
]
})
export class AppModule {}
import { IgxToolbarModule } from 'igniteui-react-layouts';
import { IgrDataChartToolbarModule, IgrDataChartCoreModule, IgrDataChartCategoryModule, IgrDataChartAnnotationModule, IgrDataChartInteractivityModule, IgrDataChartCategoryTrendLineModule } from 'igniteui-react-charts';
IgxToolbarModule.register();
IgrDataChartToolbarModule.register();
IgrDataChartCoreModule.register();
IgrDataChartCategoryModule.register();
IgrDataChartAnnotationModule.register();
IgrDataChartInteractivityModule.register();
IgrDataChartCategoryTrendLineModule.register();
Usage
Tool Actions
The following is a list of the different IgxToolActionComponent
items that you can add to the Toolbar.
IgxToolActionButtonComponent
IgxToolActionCheckboxComponent
IgxToolActionIconButtonComponent
IgxToolActionIconMenuComponent
IgxToolActionLabelComponent
IgxToolActionNumberInputComponent
IgxToolActionRadioComponent
Each of these tools exposes an OnCommand
event that is triggered by mouse click.
New and existing tools can be repositioned and marked hidden using the overlayId
, beforeId
and afterId
properties on the IgxToolActionComponent
object. ToolActions also expose a visibility
property.
The following example demonstrates hiding both the built-in ZoomReset and AnalyzeMenu menu tool actions. A new instance of the ZoomReset tool action is added and placed within the ZoomMenu by using the the afterId
property and assigning that to ZoomOut. This will ensure the new Reset tool is displayed at the bottom of the ZoomMenu.
Angular Data Chart Integration
The Angular Toolbar contains a Target
property. This is used to link a component, such as the IgxDataChartComponent
as shown in the code below:
<div class="legend">
<igx-toolbar
name="toolbar"
[target]="chart"
#toolbar>
</igx-toolbar>
</div>
<div class="container fill">
<igx-data-chart
name="chart"
#chart>
</igx-data-chart>
Several pre-existing IgxToolActionComponent
items and menus become available when the IgxDataChartComponent
is linked with the Toolbar. Here is a list of the built-in Angular IgxDataChartComponent
Tool Actions and their associated overlayId
:
Zooming Actions
ZoomReset
: AIgxToolActionLabelComponent
that invokes theresetZoom
method on the chart to reset the zoom level to it's default position.ZoomMenu
: AIgxToolActionIconMenuComponent
that exposes twoIgxToolActionLabelComponent
items to invoke thezoomIn
andzoomOut
methods on the chart for increasing/decreasing the chart's zoom level.
Trend Actions
AnalyzeMenu
: AIgxToolActionIconMenuComponent
that contains several options for configuring different options of the chart.AnalyzeHeader
: A sub section header.LinesMenu
: A sub menu containing various tools for showing different dashed horizontal lines on the chart.LinesHeader
: A sub menu section header for the following three tools:MaxValue
: AIgxToolActionCheckboxComponent
that displays a dashed horizontal line along the yAxis at the maximum value of the series.MinValue
: AIgxToolActionCheckboxComponent
that displays a dashed horizontal line along the yAxis at the minimum value of the series.Average
: AIgxToolActionCheckboxComponent
that displays a dashed horizontal line along the yAxis at the average value of the series.
TrendsMenu
: A sub menu containing tools for applying various trendlines to theIgxDataChartComponent
plot area.TrendsHeader
: A sub menu section header for the following three tools:- Exponential: A
IgxToolActionRadioComponent
that sets thetrendLineType
on each series in the chart to ExponentialFit. - Linear: A
IgxToolActionRadioComponent
that sets thetrendLineType
on each series in the chart to LinearFit. - Logarithmic: A
IgxToolActionRadioComponent
that sets thetrendLineType
on each series in the the chart to LogarithmicFit.
- Exponential: A
HelpersHeader
: A sub section header.SeriesAvg
: AIgxToolActionCheckboxComponent
that adds or removes aIgxValueLayerComponent
to the chart's series collection using theValueLayerValueMode
of typeAverage
.ValueLabelsMenu
: A sub menu containing various tools for showing different annotations on theIgxDataChartComponent
's plot area.ValueLabelsHeader
: A sub menu section header for the following tools:ShowValueLabels
: AIgxToolActionCheckboxComponent
that toggles data point values by using aIgxCalloutLayerComponent
.ShowLastValueLabel
: AIgxToolActionCheckboxComponent
that toggles final value axis annotations by using aIgxFinalValueLayerComponent
.
ShowCrosshairs
: AIgxToolActionCheckboxComponent
that toggles mouse-over crosshair annotations via the chart'scrosshairsDisplayMode
property.ShowGridlines
: AIgxToolActionCheckboxComponent
that toggles extra gridlines by applying aMajorStroke
to the X-Axis.
Save to Image Action
CopyAsImage
: AIgxToolActionLabelComponent
that exposes an option to copy the chart to the clipboard.CopyHeader
: A sub section header.
SVG Icons
When adding tools manually, icons can be assigned using the RenderIconFromText
method. There are three paramters to pass in this method. The first is the icon collection name defined on the tool eg. iconCollectionName
. The second is the name of the icon defined on the tool eg. iconName
, followed by adding the SVG string.
<igx-tool-action-label
title="Custom Icon"
iconName="CustomIcon"
iconCollectionName="CustomCollection">
</igx-tool-action-label>
public toolbarCustomIconOnViewInit(): void {
const icon = '<svg width="28px" height="28px" stroke="none" viewBox="0 0 3.5 3.5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--gis" preserveAspectRatio="xMidYMid meet"><path d="M0.436 0.178a0.073 0.073 0 0 0 -0.062 0.036L0.01 0.846a0.073 0.073 0 0 0 0.063 0.109h0.729a0.073 0.073 0 0 0 0.063 -0.109L0.501 0.214a0.073 0.073 0 0 0 -0.064 -0.036zm0.001 0.219 0.238 0.413H0.199zM1.4 0.507v0.245h0.525v-0.245zm0.77 0v0.245h1.33v-0.245zM0.073 1.388A0.073 0.073 0 0 0 0 1.461v0.583a0.073 0.073 0 0 0 0.073 0.073h0.729A0.073 0.073 0 0 0 0.875 2.045V1.461a0.073 0.073 0 0 0 -0.073 -0.073zm0.073 0.146h0.583v0.438H0.146zM1.4 1.674v0.245h0.945v-0.245zm1.19 0v0.245h0.91v-0.245zM0.438 2.447c-0.241 0 -0.438 0.197 -0.438 0.438 0 0.241 0.197 0.438 0.438 0.438s0.438 -0.197 0.438 -0.438c0 -0.241 -0.197 -0.438 -0.438 -0.438zm0 0.146a0.291 0.291 0 0 1 0.292 0.292 0.291 0.291 0 0 1 -0.292 0.292 0.291 0.291 0 0 1 -0.292 -0.292A0.291 0.291 0 0 1 0.438 2.593zM1.4 2.842v0.245h0.525v-0.245zm0.77 0v0.245h1.33v-0.245z" fill="#000000" fill-rule="evenodd"/></svg>';
this.toolbar.registerIconFromText("CustomCollection", "CustomIcon", icon);
}
public toolbarCustomIconOnViewInit(): void {
const icon = '<svg width="28px" height="28px" stroke="none" viewBox="0 0 3.5 3.5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--gis" preserveAspectRatio="xMidYMid meet"><path d="M0.436 0.178a0.073 0.073 0 0 0 -0.062 0.036L0.01 0.846a0.073 0.073 0 0 0 0.063 0.109h0.729a0.073 0.073 0 0 0 0.063 -0.109L0.501 0.214a0.073 0.073 0 0 0 -0.064 -0.036zm0.001 0.219 0.238 0.413H0.199zM1.4 0.507v0.245h0.525v-0.245zm0.77 0v0.245h1.33v-0.245zM0.073 1.388A0.073 0.073 0 0 0 0 1.461v0.583a0.073 0.073 0 0 0 0.073 0.073h0.729A0.073 0.073 0 0 0 0.875 2.045V1.461a0.073 0.073 0 0 0 -0.073 -0.073zm0.073 0.146h0.583v0.438H0.146zM1.4 1.674v0.245h0.945v-0.245zm1.19 0v0.245h0.91v-0.245zM0.438 2.447c-0.241 0 -0.438 0.197 -0.438 0.438 0 0.241 0.197 0.438 0.438 0.438s0.438 -0.197 0.438 -0.438c0 -0.241 -0.197 -0.438 -0.438 -0.438zm0 0.146a0.291 0.291 0 0 1 0.292 0.292 0.291 0.291 0 0 1 -0.292 0.292 0.291 0.291 0 0 1 -0.292 -0.292A0.291 0.291 0 0 1 0.438 2.593zM1.4 2.842v0.245h0.525v-0.245zm0.77 0v0.245h1.33v-0.245z" fill="#000000" fill-rule="evenodd"/></svg>';
this.toolbar.registerIconFromText("CustomCollection", "CustomIcon", icon);
}
Vertical Orientation
By default the Angular Toolbar is shown horizontally, but it also has the ability to shown vertically by setting the orientation
property.
<igx-toolbar orientation="Vertical" />
The following example demonstrates the vertical orientation of the Angular Toolbar.