UNPKG

igniteui-angular-charts

Version:

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

410 lines (409 loc) 14.4 kB
import { Component, Input } from '@angular/core'; import { MarkerType, MarkerType_$type } from "./MarkerType"; import { MarkerOutlineMode, MarkerOutlineMode_$type } from "./MarkerOutlineMode"; import { MarkerFillMode, MarkerFillMode_$type } from "./MarkerFillMode"; import { LegendItemBadgeMarkerSizeScaling, LegendItemBadgeMarkerSizeScaling_$type } from "igniteui-angular-core"; import { IgxSeriesComponent } from "./igx-series-component"; import { ensureBool, ensureEnum, brushToString, stringToBrush } from "igniteui-angular-core"; import * as i0 from "@angular/core"; /** * Represents the base class for series containing markers. * * MarkerSeries represents the base class for series containing markers. * * Example: * * ```html * <igx-data-chart * [dataSource]="data"> * <igx-category-x-axis * label="label" * #xAxis * > * </igx-category-x-axis> * <igx-numeric-y-axis * minimumValue="0" * #yAxis> * </igx-numeric-y-axis> * <igx-column-series * #series * [xAxis]="xAxis" * [yAxis]="yAxis" * valueMemberPath="value"> * </igx-column-series> * </igx-data-chart> * ``` * * ```ts * let series: IgxMarkerSeriesComponent = new IgxMarkerSeriesComponent(); * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * this.chart.series.add(series); * ``` */ export class IgxMarkerSeriesComponent extends IgxSeriesComponent { /** * @hidden */ get i() { return this._implementation; } constructor() { super(); } /** * Returns whether the current series supports visual markers. * * `HasMarkers` property is overriden, it returns whether the current series supports visual markers. You can use it like this: * * ```ts * let gotMarkers: boolean = this.series.hasMarkers; * ``` */ get hasMarkers() { return this.i.hasMarkers; } get hasVisibleMarkers() { return this.i.en; } /** * Gets or sets the marker type for the current series object. * This property is ignored when the MarkerTemplate property is set * * `MarkerType` property gets or sets the marker type for the current series object. For example, you can set it like this: * * ```html * <igx-data-chart * [dataSource]="data"> * <igx-category-x-axis * label="label" * #xAxis> * </igx-category-x-axis> * <igx-numeric-y-axis * #yAxis> * </igx-numeric-y-axis> * <igx-column-series * #series * [xAxis]="xAxis" * [yAxis]="yAxis" * valueMemberPath="value" * markerType = "circle"> * </igx-column-series> * </igx-data-chart> * ``` * * ```ts * this.series.markerType = "circle"; * ``` */ get markerType() { return this.i.xy; } set markerType(v) { this.i.xy = ensureEnum(MarkerType_$type, v); } /** * Represents the resolved marker type for the series. */ get actualMarkerType() { return this.i.xw; } set actualMarkerType(v) { this.i.xw = ensureEnum(MarkerType_$type, v); } /** * Gets or sets whether the marker for the current series object should be treated as circular. */ get isCustomMarkerCircular() { return this.i.x1; } set isCustomMarkerCircular(v) { this.i.x1 = ensureBool(v); } /** * Gets whether the markers for the current series are in circular shape */ get effectiveIsMarkerCircular() { return this.i.x0; } /** * Gets or sets whether the marker outline is based on the marker brush of the series rather than the marker outlines collection. */ get markerOutlineMode() { return this.i.xs; } set markerOutlineMode(v) { this.i.xs = ensureEnum(MarkerOutlineMode_$type, v); } /** * Gets or sets whether the marker fill is based on the marker outline of the series rather than the marker brushes collection. */ get markerFillMode() { return this.i.xo; } set markerFillMode(v) { this.i.xo = ensureEnum(MarkerFillMode_$type, v); } /** * Gets or sets the MarkerTemplate for the current series object. * * `MarkerTemplate` property gets or sets the MarkerTemplate for the current series object. For example, you can use it like this: * * ```html * <igx-data-chart * [dataSource]="data"> * <igx-category-x-axis * label="label" * #xAxis> * </igx-category-x-axis> * <igx-numeric-y-axis #yAxis> * </igx-numeric-y-axis> * <igx-column-series * #series * [xAxis]="xAxis" * [yAxis]="yAxis" * valueMemberPath="value" * markerTemplate="circleMarkerTemplate"> * </igx-column-series> * </igx-data-chart> * ``` */ get markerTemplate() { return this.i.y8; } set markerTemplate(v) { this.i.y8 = v; } /** * Gets or sets thickness of the marker outline */ get markerThickness() { return this.i.yi; } set markerThickness(v) { this.i.yi = +v; } /** * Gets or sets the size in device-independent pixels (dp) of the data point markers. Set to NaN to use the template's default size. */ get markerSize() { return this.i.yh; } set markerSize(v) { this.i.yh = +v; } /** * Gets or sets how the legend badge size scales with the series' MarkerSize. Applies when the * resolved badge shape draws a marker — that's Marker (always) and Line/LineWithMarker when * LegendItemBadgeMode is MatchSeries (the overlaid-marker variant). No effect on shape-only * badges (Circle, Square, Bar, Column) or on Line in Simplified mode. * Scaling only takes effect when MarkerSize is set to a non-default value. */ get legendItemBadgeMarkerSizeScaling() { return this.i.xl; } set legendItemBadgeMarkerSizeScaling(v) { this.i.xl = ensureEnum(LegendItemBadgeMarkerSizeScaling_$type, v); } /** * Gets the actual width (in device-independent pixels) of the marker drawn in the legend badge for this series. Reflects scaling * applied via LegendItemBadgeMarkerSizeScaling when MarkerSize is non-default; otherwise equals the platform default. */ get actualLegendItemBadgeMarkerWidth() { return this.i.x8; } set actualLegendItemBadgeMarkerWidth(v) { this.i.x8 = +v; } /** * Gets the actual height (in device-independent pixels) of the marker drawn in the legend badge for this series. Reflects scaling * applied via LegendItemBadgeMarkerSizeScaling when MarkerSize is non-default; otherwise equals the platform default. */ get actualLegendItemBadgeMarkerHeight() { return this.i.x7; } set actualLegendItemBadgeMarkerHeight(v) { this.i.x7 = +v; } /** * Gets the actual width (in device-independent pixels) of the marker overlay used inside a line-with-marker legend badge. * Defaults to the platform's inset marker size and scales with MarkerSize and LegendItemBadgeMarkerSizeScaling. * Kept smaller than the cell so the underlying line stays visible behind the marker. */ get actualLegendItemBadgeOverlaidMarkerWidth() { return this.i.ya; } set actualLegendItemBadgeOverlaidMarkerWidth(v) { this.i.ya = +v; } /** * Gets the actual height (in device-independent pixels) of the marker overlay used inside a line-with-marker legend badge. * Defaults to the platform's inset marker size and scales with MarkerSize and LegendItemBadgeMarkerSizeScaling. */ get actualLegendItemBadgeOverlaidMarkerHeight() { return this.i.x9; } set actualLegendItemBadgeOverlaidMarkerHeight(v) { this.i.x9 = +v; } /** * Gets the effective marker template for the current series object. * * `ActualMarkerTemplate` property gets the effective marker template for the current series object. You can use it like this: * * ```ts * let effectiveMarkerTemplate: IgxDataTemplate = this.series.actualMarkerTemplate; * ``` */ get actualMarkerTemplate() { return this.i.y6; } set actualMarkerTemplate(v) { this.i.y6 = v; } /** * Gets or sets the brush that specifies how the current series object's marker interiors are painted. * * `MarkerBrush` property gets or sets the brush that specifies how the current series object's marker interiors are painted. You can use it like this: * * ```html * <igx-data-chart * [dataSource]="data"> * <igx-category-x-axis * label="label" * #xAxis> * </igx-category-x-axis> * <igx-numeric-y-axis #yAxis> * </igx-numeric-y-axis> * <igx-column-series * #series * [xAxis]="xAxis" * [yAxis]="yAxis" * valueMemberPath="value" * markerBrush = "blue"> * </igx-column-series> * </igx-data-chart> * ``` * * ```ts * this.series.markerBrush = "red"; * ``` */ get markerBrush() { return brushToString(this.i.zv); } set markerBrush(v) { this.i.zv = stringToBrush(v); } /** * Gets the effective marker brush for the current series object. * * `ActualMarkerBrush` property gets the effective marker brush for the current series object. For example, you can use it like this: * * ```ts * let effectiveMarkerBrush: string = this.series.actualMarkerBrush; * * ``` */ get actualMarkerBrush() { return brushToString(this.i.zt); } set actualMarkerBrush(v) { this.i.zt = stringToBrush(v); } /** * Gets or sets the brush that specifies how the current series object's marker outlines are painted. * * `MarkerOutline` property gets or sets the brush that specifies how the current series object's marker outlines are painted. You can use it like this: * * ```html * <igx-data-chart * [dataSource]="data"> * <igx-category-x-axis * label="label" * #xAxis> * </igx-category-x-axis> * <igx-numeric-y-axis #yAxis> * </igx-numeric-y-axis> * <igx-column-series * #series * [xAxis]="xAxis" * [yAxis]="yAxis" * valueMemberPath="value" * markerOutline = "blue"> * </igx-column-series> * </igx-data-chart> * ``` * * ```ts * this.series.markerOutline = "red"; * ``` */ get markerOutline() { return brushToString(this.i.zw); } set markerOutline(v) { this.i.zw = stringToBrush(v); } /** * Gets the effective marker outline for the current series object. * * `ActualMarkerOutline` property gets the effective marker outline for the current series object. You can use it like this: * * ```ts * let effectiveMarkerOutline: string = this.series.actualMarkerOutline; * * ``` */ get actualMarkerOutline() { return brushToString(this.i.zu); } set actualMarkerOutline(v) { this.i.zu = stringToBrush(v); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0-rc.1", ngImport: i0, type: IgxMarkerSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0-rc.1", type: IgxMarkerSeriesComponent, isStandalone: true, selector: "ng-component", inputs: { markerType: "markerType", actualMarkerType: "actualMarkerType", isCustomMarkerCircular: "isCustomMarkerCircular", markerOutlineMode: "markerOutlineMode", markerFillMode: "markerFillMode", markerTemplate: "markerTemplate", markerThickness: "markerThickness", markerSize: "markerSize", legendItemBadgeMarkerSizeScaling: "legendItemBadgeMarkerSizeScaling", actualLegendItemBadgeMarkerWidth: "actualLegendItemBadgeMarkerWidth", actualLegendItemBadgeMarkerHeight: "actualLegendItemBadgeMarkerHeight", actualLegendItemBadgeOverlaidMarkerWidth: "actualLegendItemBadgeOverlaidMarkerWidth", actualLegendItemBadgeOverlaidMarkerHeight: "actualLegendItemBadgeOverlaidMarkerHeight", actualMarkerTemplate: "actualMarkerTemplate", markerBrush: "markerBrush", actualMarkerBrush: "actualMarkerBrush", markerOutline: "markerOutline", actualMarkerOutline: "actualMarkerOutline" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0-rc.1", ngImport: i0, type: IgxMarkerSeriesComponent, decorators: [{ type: Component, args: [{ template: ``, }] }], ctorParameters: () => [], propDecorators: { markerType: [{ type: Input }], actualMarkerType: [{ type: Input }], isCustomMarkerCircular: [{ type: Input }], markerOutlineMode: [{ type: Input }], markerFillMode: [{ type: Input }], markerTemplate: [{ type: Input }], markerThickness: [{ type: Input }], markerSize: [{ type: Input }], legendItemBadgeMarkerSizeScaling: [{ type: Input }], actualLegendItemBadgeMarkerWidth: [{ type: Input }], actualLegendItemBadgeMarkerHeight: [{ type: Input }], actualLegendItemBadgeOverlaidMarkerWidth: [{ type: Input }], actualLegendItemBadgeOverlaidMarkerHeight: [{ type: Input }], actualMarkerTemplate: [{ type: Input }], markerBrush: [{ type: Input }], actualMarkerBrush: [{ type: Input }], markerOutline: [{ type: Input }], actualMarkerOutline: [{ type: Input }] } });