Visão geral da barra de ferramentas do Web Components
O componente Barra de ferramentas do Web Components é um contêiner complementar para operações de interface do usuário a serem usadas principalmente com nossos componentes de gráficos. A barra de ferramentas será atualizada dinamicamente com uma predefinição de propriedades e itens de ferramenta quando vinculada aos nossos IgcDataChartComponent
componentes ou IgcCategoryChartComponent
componentes. Você poderá criar ferramentas personalizadas para o seu projeto, permitindo que os usuários finais forneçam alterações, oferecendo uma quantidade infinita de personalização.
Web Components Toolbar Example
Dependencies
Instale os Ignite UI for Web Components layouts, entradas, gráficos e pacotes principais:
npm install igniteui-webcomponents-layouts
npm install igniteui-webcomponents-inputs
npm install igniteui-webcomponents-charts
npm install igniteui-webcomponents-core
Os módulos a seguir são necessários ao usar o IgcToolbarComponent
com o IgcDataChartComponent
componente e seus recursos.
import { ModuleManager } from 'igniteui-webcomponents-core';
import { IgcToolbarModule } from 'igniteui-webcomponents-layouts';
import { IgcDataChartToolbarModule, IgcDataChartCoreModule, IgcDataChartCategoryModule, IgcDataChartAnnotationModule, IgcDataChartInteractivityModule, IgcDataChartCategoryTrendLineModule } from 'igniteui-webcomponents-charts';
ModuleManager.register(
IgcToolbarModule,
IgcToolActionLabelModule,
IgcDataChartToolbarModule,
IgcDataChartCategoryModule,
IgcDataChartCoreModule,
IgcDataChartInteractivityModule,
IgcDataChartAnnotationModule,
IgcDataChartCategoryTrendLineModule
);
Usage
Tool Actions
Veja a seguir uma lista dos diferentes IgcToolActionComponent
itens que você pode adicionar à barra de ferramentas.
IgcToolActionButtonComponent
IgcToolActionCheckboxComponent
IgcToolActionIconButtonComponent
IgcToolActionIconMenuComponent
IgcToolActionLabelComponent
IgcToolActionNumberInputComponent
IgcToolActionRadioComponent
IgcToolActionSubPanelComponent
Cada uma dessas ferramentas expõe um OnCommand
evento que é acionado pelo clique do mouse. Observe que o IgcToolActionIconMenuComponent
é um invólucro para outras ferramentas que também podem ser agrupadas dentro de um IgcToolActionIconMenuComponent
.
Ferramentas novas e existentes podem ser reposicionadas e marcadas como ocultas usando as overlayId
propriedades , beforeId
and afterId
no IgcToolActionComponent
objeto. ToolActions também expõem uma visibility
propriedade.
O exemplo a seguir demonstra alguns recursos. Primeiro, IgcToolActionSubPanelComponent
você pode agrupar ferramentas no incluindo ocultação de ferramentas internas, como as ações de ferramenta de menu ZoomReset e AnalyzeMenu. Neste exemplo, uma nova instância da ação da ferramenta ZoomReset é adicionada e colocada no ZoomMenu usando a propriedade the e atribuindo-a afterId
a ZoomOut. Também é destacado por meio da isHighlighted
propriedade na ferramenta. Isso garantirá que a nova ferramenta Redefinir seja exibida imediatamente na parte inferior do ZoomMenu.
Web Components Data Chart Integration
A barra de ferramentas Web Components contém uma Target
propriedade. Isso é usado para vincular um componente, como o IgcDataChartComponent
mostrado no código abaixo:
<div>
<igc-toolbar
name="Toolbar"
id="Toolbar">
</igc-toolbar>
</div>
<div class="container fill">
<igc-data-chart
is-horizontal-zoom-enabled="true"
name="chart"
id="chart">
</igc-data-chart>
</div>
private _bind: () => void;
constructor() {
var toolbar = this.toolbar = document.getElementById('Toolbar') as IgcToolbarComponent;
var chart = this.chart = document.getElementById('chart') as IgcDataChartComponent;
this._bind = () => {
toolbar.target = this.chart;
}
this._bind();
}
Vários itens e menus pré-existentes IgcToolActionComponent
ficam disponíveis quando o IgcDataChartComponent
está vinculado à barra de ferramentas. Aqui está uma lista das ações internas da ferramenta Web Components IgcDataChartComponent
e suas associadas overlayId
:
Ações de zoom
ZoomReset
: UmIgcToolActionLabelComponent
que invoca oresetZoom
método no gráfico para redefinir o nível de zoom para sua posição padrão.ZoomMenu
: AIgcToolActionIconMenuComponent
que expõe doisIgcToolActionLabelComponent
itens para invocar oszoomIn
métodos ezoomOut
no gráfico para aumentar/diminuir o nível de zoom do gráfico.
Ações de tendência
AnalyzeMenu
: UmIgcToolActionIconMenuComponent
que contém várias opções para configurar diferentes opções do gráfico.AnalyzeHeader
: Um cabeçalho de subseção.LinesMenu
: Um submenu contendo várias ferramentas para mostrar diferentes linhas horizontais tracejadas no gráfico.LinesHeader
: Um cabeçalho de seção de submenu para as três ferramentas a seguir:MaxValue
: AIgcToolActionCheckboxComponent
que exibe uma linha horizontal tracejada ao longo do eixo y no valor máximo da série.MinValue
: AIgcToolActionCheckboxComponent
que exibe uma linha horizontal tracejada ao longo do eixo y no valor mínimo da série.Average
: AIgcToolActionCheckboxComponent
que exibe uma linha horizontal tracejada ao longo do eixo y no valor médio da série.
TrendsMenu
: Um submenu contendo ferramentas para aplicar várias linhas de tendência à área deIgcDataChartComponent
plotagem.TrendsHeader
: Um cabeçalho de seção de submenu para as três ferramentas a seguir:- Exponencial: Um
IgcToolActionRadioComponent
que define otrendLineType
em cada série no gráfico como ExponentialFit. - Linear: Um
IgcToolActionRadioComponent
que define otrendLineType
em cada série no gráfico como LinearFit. - Logarítmico: Um
IgcToolActionRadioComponent
que define otrendLineType
em cada série no gráfico como LogarithmicFit.
- Exponencial: Um
HelpersHeader
: Um cabeçalho de subseção.SeriesAvg
: AIgcToolActionCheckboxComponent
que adiciona ou remove aIgcValueLayerComponent
à coleção de séries do gráfico usando oValueLayerValueMode
tipoAverage
of.ValueLabelsMenu
: Um submenu contendo várias ferramentas para mostrar diferentes anotações naIgcDataChartComponent
área de plotagem.ValueLabelsHeader
: Um cabeçalho de seção de submenu para as seguintes ferramentas:ShowValueLabels
: AIgcToolActionCheckboxComponent
que alterna valores de ponto de dados usando aIgcCalloutLayerComponent
.ShowLastValueLabel
: AIgcToolActionCheckboxComponent
que alterna as anotações do eixo do valor final usando aIgcFinalValueLayerComponent
.
ShowCrosshairs
: UmIgcToolActionCheckboxComponent
que alterna as anotações de mira do mouse por meio da propriedade docrosshairsDisplayMode
gráfico.ShowGridlines
: AIgcToolActionCheckboxComponent
que alterna linhas de grade extras aplicando aMajorStroke
ao eixo X.
Ação Salvar na imagem
CopyAsImage
: AIgcToolActionLabelComponent
que expõe uma opção para copiar o gráfico para a área de transferência.CopyHeader
: Um cabeçalho de subseção.
SVG Icons
Ao adicionar ferramentas manualmente, os ícones podem ser atribuídos usando o RenderIconFromText
método. Existem três parâmetros a serem aprovados neste método. O primeiro é o nome da coleção de ícones definido na ferramenta, por exemplo. iconCollectionName
O segundo é o nome do ícone definido na ferramenta, por exemplo iconName
, seguido pela adição da string SVG.
Data URL Icons
Da mesma forma que adicionar svg, você também pode adicionar uma imagem de ícone de um URL por meio do RegisterIconFromDataURL
. O terceiro parâmetro do método seria usado para inserir uma URL de cadeia de caracteres.
O snippet a seguir mostra os dois métodos de adição de um ícone.
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 {
toolbar.registerIconFromDataURL("CustomCollection", "CustomIcon", "https://www.svgrepo.com/show/678/calculator.svg");
}
<igc-tool-action-label
title="Custom Icon"
icon-name="CustomIcon"
icon-collection-name="CustomCollection">
</igc-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 {
toolbar.registerIconFromDataURL("CustomCollection", "CustomIcon", "https://www.svgrepo.com/show/678/calculator.svg");
}
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
var toolbar = this.toolbar;
if (firstRender) {
this.ToolbarCustomIconOnViewInit();
}
}
private IgbToolbar toolbar;
public void ToolbarCustomIconOnViewInit()
{
this.toolbar.EnsureReady().ContinueWith(new Action<Task>((e) =>
{
this.toolbar.RegisterIconFromDataURLAsync("CustomCollection", "CustomIcon", "https://www.svgrepo.com/show/678/calculator.svg");
}));
}
}
```tsx
<IgrToolbar orientation="Vertical" />
Vertical Orientation
Por padrão, a barra de ferramentas Web Components é mostrada horizontalmente, mas também tem a capacidade de ser mostrada verticalmente definindo a orientation
propriedade.
<igc-toolbar orientation="Vertical" />
O exemplo a seguir demonstra a orientação vertical da barra de ferramentas Web Components.
Editor de cores
Você pode adicionar uma ferramenta de edição de cores personalizada à barra de ferramentas Web Components, que também funcionará com o evento Command para executar um estilo personalizado em seu aplicativo.
<igc-toolbar
name="toolbar"
id="toolbar">
<igc-tool-action-color-editor
title="Series Brush Color"
name="colorEditorTool"
id="colorEditorTool">
</igc-tool-action-color-editor>
</igc-toolbar>
O exemplo a seguir demonstra o estilo do pincel da série Gráfico de Dados do Web Components com a ferramenta Editor de Cores.