UNPKG

igniteui-angular-charts

Version:

Ignite UI Angular charting components for building rich data visualizations for modern web apps.

112 lines (111 loc) 5.59 kB
import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core'; import { IgxCategoryAxisBaseComponent } from "./igx-category-axis-base-component"; import { IgxAnnotationLayerComponent } from "./igx-annotation-layer-component"; import { IgxSeriesComponent } from "./igx-series-component"; import { CategoryHighlightLayer } from "./CategoryHighlightLayer"; import { ensureBool } from "igniteui-angular-core"; import * as i0 from "@angular/core"; /** * Represents an annotation layer that targets a category axis, or all category axes in the chart. * If the axis contains any series that are aligned between major gridlines of the axis (column, waterfall, etc) this will render a shape that fills the current category. * Otherwise it will render a band with an adjustable thickness at the closest gridline to the pointer position. * Setting UseIterpolation to true will cause the x position in the latter case to become affixed to the x position of the pointer. */ export let IgxCategoryHighlightLayerComponent = /*@__PURE__*/ (() => { class IgxCategoryHighlightLayerComponent extends IgxAnnotationLayerComponent { constructor() { super(); } createImplementation() { return new CategoryHighlightLayer(); } /** * @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 axis to target this annotation to. If null, this annotation targets all category axes simultaneously. */ get targetAxis() { const r = this.i.aas; if (r == null) { return null; } if (!r.externalObject) { let e = IgxCategoryAxisBaseComponent._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set targetAxis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.aas = null : this.i.aas = v.i; } /** * 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.aav; } set useInterpolation(v) { this.i.aav = ensureBool(v); } /** * Gets or sets the width to use for the highlight region if drawing a band rather than filling a category. */ get bandHighlightWidth() { return this.i.aaw; } set bandHighlightWidth(v) { this.i.aaw = +v; } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.targetAxis && this.targetAxis.name && this.targetAxis.name == name) { return this.targetAxis; } return null; } _styling(container, component, parent) { super._styling(container, component, parent); this._inStyling = true; if (this.targetAxis && this.targetAxis._styling) { this.targetAxis._styling(container, component, this); } this._inStyling = false; } } IgxCategoryHighlightLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxCategoryHighlightLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); IgxCategoryHighlightLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxCategoryHighlightLayerComponent, selector: "igx-category-highlight-layer", inputs: { targetAxis: "targetAxis", useInterpolation: "useInterpolation", bandHighlightWidth: "bandHighlightWidth" }, providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxCategoryHighlightLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxCategoryHighlightLayerComponent) }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); return IgxCategoryHighlightLayerComponent; })(); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxCategoryHighlightLayerComponent, decorators: [{ type: Component, args: [{ selector: 'igx-category-highlight-layer', template: ``, providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxCategoryHighlightLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxCategoryHighlightLayerComponent) }], changeDetection: ChangeDetectionStrategy.OnPush }] }], ctorParameters: function () { return []; }, propDecorators: { targetAxis: [{ type: Input }], useInterpolation: [{ type: Input }], bandHighlightWidth: [{ type: Input }] } });