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.
The following example demonstrates a couple of features. First you can group tools together in the IgrToolActionSubPanel
including hiding built in tools such as the ZoomReset and AnalyzeMenu menu tool actions. In this example a new instance of the ZoomReset tool action within the ZoomMenu by using the the afterId
property and assigning that to ZoomOut to be precise with it's placement. It is also highlighted via the isHighlighted
property on the tool.
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
ZoomMenu
: AIgrToolActionIconMenu
that exposes threeIgrToolActionLabel
items to invoke thezoomIn
andzoomOut
methods on the chart for increasing/decreasing the chart's zoom level includingZoomReset
, aIgrToolActionLabel
that invokes theresetZoom
method on the chart to reset the zoom level to it's default position.
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.