igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
190 lines (189 loc) • 8.3 kB
JavaScript
import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core';
import { IgxSeriesComponent } from "./igx-series-component";
import { CategoryItemHighlightType_$type } from "./CategoryItemHighlightType";
import { MarkerType_$type } from "./MarkerType";
import { IgxAnnotationLayerComponent } from "./igx-annotation-layer-component";
import { CategoryItemHighlightLayer } from "./CategoryItemHighlightLayer";
import { ensureBool, ensureEnum, brushToString, stringToBrush } from "igniteui-angular-core";
import * as i0 from "@angular/core";
/**
* Represents an annotation layer that highlights items in a series that use a category axis
* either by drawing a banded shape at their position, or by rendering a marker at their position.
* Depending on the type of series, the default highlight will be affected. To override
* the type of highlight used, you can set the HighlightType property.
*/
export let IgxCategoryItemHighlightLayerComponent = /*@__PURE__*/ (() => {
class IgxCategoryItemHighlightLayerComponent extends IgxAnnotationLayerComponent {
constructor() {
super();
}
createImplementation() {
return new CategoryItemHighlightLayer();
}
/**
* @hidden
*/
get i() {
return this._implementation;
}
/**
* Gets whether the series is an annotation layer displayed only when hovering over the chart.
*/
get isAnnotationHoverLayer() {
return this.i.eu;
}
/**
* Gets or sets the series to target this annotation to. If null, this annotation targets all series simultaneously.
*/
get targetSeries() {
const r = this.i.aaw;
if (r == null) {
return null;
}
if (!r.externalObject) {
let e = IgxSeriesComponent._createFromInternal(r);
if (e) {
e._implementation = r;
}
r.externalObject = e;
}
return r.externalObject;
}
set targetSeries(v) {
if (v != null && this._stylingContainer && v._styling)
v._styling(this._stylingContainer, this, this);
v == null ? this.i.aaw = null : this.i.aaw = v.i;
}
/**
* Gets or sets the name of the series to target this annotation to. If null, this annotation targets all series simultaneously.
*/
get targetSeriesName() {
return this.i.aba;
}
set targetSeriesName(v) {
this.i.aba = v;
}
/**
* Gets or sets whether to use value interpolation when drawing a line through the best value for the pointer position.
*/
get useInterpolation() {
return this.i.aa0;
}
set useInterpolation(v) {
this.i.aa0 = ensureBool(v);
}
/**
* Gets or sets which type of highlight shape to use when highlighting items.
*/
get highlightType() {
return this.i.aat;
}
set highlightType(v) {
this.i.aat = ensureEnum(CategoryItemHighlightType_$type, v);
}
/**
* Gets or sets which type of marker to use when highlighting items, if appropriate.
*/
get markerType() {
return this.i.aav;
}
set markerType(v) {
this.i.aav = ensureEnum(MarkerType_$type, v);
}
/**
* Gets or sets which color to use for the marker when highlighting items, if appropriate.
*/
get markerBrush() {
return brushToString(this.i.abu);
}
set markerBrush(v) {
this.i.abu = stringToBrush(v);
}
/**
* Gets or sets which outline color to use for the marker when highlighting items, if appropriate.
*/
get markerOutline() {
return brushToString(this.i.abv);
}
set markerOutline(v) {
this.i.abv = stringToBrush(v);
}
/**
* Gets or sets the template to use for marker visuals for the current series object.
*/
get markerTemplate() {
return this.i.abj;
}
set markerTemplate(v) {
this.i.abj = v;
}
/**
* Gets or sets the width to use for the highlight region if highlighting items in a grid aligned series (line, spline, etc), with a banded shape.
*/
get bandHighlightWidth() {
return this.i.aa2;
}
set bandHighlightWidth(v) {
this.i.aa2 = +v;
}
/**
* Gets or sets whether to skip unknown values when searching for series values.
*/
get skipUnknownValues() {
return this.i.aaz;
}
set skipUnknownValues(v) {
this.i.aaz = ensureBool(v);
}
findByName(name) {
var baseResult = super.findByName(name);
if (baseResult) {
return baseResult;
}
if (this.targetSeries && this.targetSeries.name && this.targetSeries.name == name) {
return this.targetSeries;
}
return null;
}
_styling(container, component, parent) {
super._styling(container, component, parent);
this._inStyling = true;
if (this.targetSeries && this.targetSeries._styling) {
this.targetSeries._styling(container, component, this);
}
this._inStyling = false;
}
}
IgxCategoryItemHighlightLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxCategoryItemHighlightLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
IgxCategoryItemHighlightLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxCategoryItemHighlightLayerComponent, selector: "igx-category-item-highlight-layer", inputs: { targetSeries: "targetSeries", targetSeriesName: "targetSeriesName", useInterpolation: "useInterpolation", highlightType: "highlightType", markerType: "markerType", markerBrush: "markerBrush", markerOutline: "markerOutline", markerTemplate: "markerTemplate", bandHighlightWidth: "bandHighlightWidth", skipUnknownValues: "skipUnknownValues" }, providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxCategoryItemHighlightLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxCategoryItemHighlightLayerComponent) }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
return IgxCategoryItemHighlightLayerComponent;
})();
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxCategoryItemHighlightLayerComponent, decorators: [{
type: Component,
args: [{
selector: 'igx-category-item-highlight-layer',
template: ``,
providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxCategoryItemHighlightLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxCategoryItemHighlightLayerComponent) }],
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: function () { return []; }, propDecorators: { targetSeries: [{
type: Input
}], targetSeriesName: [{
type: Input
}], useInterpolation: [{
type: Input
}], highlightType: [{
type: Input
}], markerType: [{
type: Input
}], markerBrush: [{
type: Input
}], markerOutline: [{
type: Input
}], markerTemplate: [{
type: Input
}], bandHighlightWidth: [{
type: Input
}], skipUnknownValues: [{
type: Input
}] } });