Visão geral da barra de ferramentas do React
O componente Barra de ferramentas do React é 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 IgrDataChart
componentes ou IgrCategoryChart
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.
React Toolbar Example
Dependencies
Instale os Ignite UI for React layouts, entradas, gráficos e pacotes principais:
npm install igniteui-react-layouts
npm install igniteui-react-inputs
npm install igniteui-react-charts
npm install igniteui-react-core
Os módulos a seguir são necessários ao usar o IgrToolbar
com o IgrDataChart
componente e seus recursos.
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
Veja a seguir uma lista dos diferentes IgrToolAction
itens que você pode adicionar à barra de ferramentas.
IgrToolActionButton
IgrToolActionCheckbox
IgrToolActionIconButton
IgrToolActionIconMenu
IgrToolActionLabel
IgrToolActionNumberInput
IgrToolActionRadio
IgrToolActionSubPanel
Cada uma dessas ferramentas expõe um OnCommand
evento que é acionado pelo clique do mouse. Observe que o IgrToolActionIconMenu
é um invólucro para outras ferramentas que também podem ser agrupadas dentro de um IgrToolActionIconMenu
.
Ferramentas novas e existentes podem ser reposicionadas e marcadas como ocultas usando as overlayId
propriedades , beforeId
and afterId
no IgrToolAction
objeto. ToolActions também expõem uma visibility
propriedade.
O exemplo a seguir demonstra alguns recursos. Primeiro, IgrToolActionSubPanel
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.
React Data Chart Integration
A barra de ferramentas React contém uma Target
propriedade. Isso é usado para vincular um componente, como o IgrDataChart
mostrado no código abaixo:
private toolbar: IgrToolbar
private toolbarRef(r: IgrToolbar) {
this.toolbar = r;
this.setState({});
}
private chart: IgrDataChart
private chartRef(r: IgrDataChart) {
this.chart = r;
this.toolbar.target = this.chart;
this.setState({});
}
public render(): JSX.Element {
return (
<div>
<IgrToolbar
ref={this.toolbarRef}>
</IgrToolbar>
</div>
<div>
<IgrDataChart
ref={this.chartRef}>
</IgrDataChart>
</div>
);
}
Vários itens e menus pré-existentes IgrToolAction
ficam disponíveis quando o IgrDataChart
está vinculado à barra de ferramentas. Aqui está uma lista das ações internas da ferramenta React IgrDataChart
e suas associadas overlayId
:
Ações de zoom
ZoomReset
: UmIgrToolActionLabel
que invoca oresetZoom
método no gráfico para redefinir o nível de zoom para sua posição padrão.ZoomMenu
: AIgrToolActionIconMenu
that exposes twoIgrToolActionLabel
items to invoke thezoomIn
andzoomOut
methods on the chart for increasing/decreasing the chart's zoom level.
Ações de tendência
AnalyzeMenu
: UmIgrToolActionIconMenu
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
: AIgrToolActionCheckbox
que exibe uma linha horizontal tracejada ao longo do eixo y no valor máximo da série.MinValue
: AIgrToolActionCheckbox
que exibe uma linha horizontal tracejada ao longo do eixo y no valor mínimo da série.Average
: AIgrToolActionCheckbox
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 deIgrDataChart
plotagem.TrendsHeader
: Um cabeçalho de seção de submenu para as três ferramentas a seguir:- Exponencial: Um
IgrToolActionRadio
que define otrendLineType
em cada série no gráfico como ExponentialFit. - Linear: Um
IgrToolActionRadio
que define otrendLineType
em cada série no gráfico como LinearFit. - Logarítmico: Um
IgrToolActionRadio
que define otrendLineType
em cada série no gráfico como LogarithmicFit.
- Exponencial: Um
HelpersHeader
: Um cabeçalho de subseção.SeriesAvg
: AIgrToolActionCheckbox
que adiciona ou remove aIgrValueLayer
à coleção de séries do gráfico usando oValueLayerValueMode
tipoAverage
of.ValueLabelsMenu
: Um submenu contendo várias ferramentas para mostrar diferentes anotações naIgrDataChart
área de plotagem.ValueLabelsHeader
: Um cabeçalho de seção de submenu para as seguintes ferramentas:ShowValueLabels
: AIgrToolActionCheckbox
que alterna valores de ponto de dados usando aIgrCalloutLayer
.ShowLastValueLabel
: AIgrToolActionCheckbox
que alterna as anotações do eixo do valor final usando aIgrFinalValueLayer
.
ShowCrosshairs
: UmIgrToolActionCheckbox
que alterna as anotações de mira do mouse por meio da propriedade docrosshairsDisplayMode
gráfico.ShowGridlines
: AIgrToolActionCheckbox
que alterna linhas de grade extras aplicando aMajorStroke
ao eixo X.
Ação Salvar na imagem
CopyAsImage
: AIgrToolActionLabel
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");
}
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 React é mostrada horizontalmente, mas também tem a capacidade de ser mostrada verticalmente definindo a orientation
propriedade.
<IgrToolbar orientation="Vertical" />
O exemplo a seguir demonstra a orientação vertical da barra de ferramentas React.
Editor de cores
Você pode adicionar uma ferramenta de edição de cores personalizada à barra de ferramentas React, 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>
<IgrToolbar
ref={this.toolbarRef}
target={this.chart}>
<IgrToolActionColorEditor
title="Series Brush Color"
name="colorEditorTool">
</IgrToolActionColorEditor>
</IgrToolbar>
O exemplo a seguir demonstra o estilo do pincel da série Gráfico de Dados do React com a ferramenta Editor de Cores.