UNPKG

igniteui-angular-charts

Version:

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

582 lines (580 loc) 22.2 kB
import { Component, Input } from '@angular/core'; import { PieChartSweepDirection_$type } from "./PieChartSweepDirection"; import { CalloutCollisionMode_$type } from "igniteui-angular-core"; import { LegendEmptyValuesMode_$type } from "igniteui-angular-core"; import { OthersCategoryType_$type } from "igniteui-angular-core"; import { AxisRangeBufferMode_$type } from "./AxisRangeBufferMode"; import { RadialLabelMode_$type } from "igniteui-angular-core"; import { CollisionAvoidanceType_$type } from "./CollisionAvoidanceType"; import { IgxOthersCategoryContextComponent } from "./igx-others-category-context-component"; import { IgxRadialBaseChartComponent } from "./igx-radial-base-chart-component"; import { ensureEnum, brushToString, stringToBrush, ensureBool, arrayFindByName } from "igniteui-angular-core"; import * as i0 from "@angular/core"; /** * Represents a base class for PieBase chart control that can plot scatter data */ export let IgxDataPieBaseChartComponent = /*@__PURE__*/ (() => { class IgxDataPieBaseChartComponent extends IgxRadialBaseChartComponent { constructor() { super(); } /** * @hidden */ get i() { return this._implementation; } /** * Gets or sets the label format for the slices. */ get sliceLabelFormat() { return this.i.al0; } set sliceLabelFormat(v) { this.i.al0 = v; } /** * Gets or sets the format specifiers to use with the labels for the slices. */ get sliceLabelFormatSpecifiers() { return this.i.aiz; } set sliceLabelFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.aiz = v; } /** * Gets or sets the label format for the LegendSlices. */ get legendSliceLabelFormat() { return this.i.alh; } set legendSliceLabelFormat(v) { this.i.alh = v; } /** * Gets or sets the format specifiers to use with the labels for the LegendSlices. */ get legendSliceLabelFormatSpecifiers() { return this.i.aix; } set legendSliceLabelFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.aix = v; } /** * Gets or sets the label format for the OthersSlices. */ get othersSliceLabelFormat() { return this.i.alq; } set othersSliceLabelFormat(v) { this.i.alq = v; } /** * Gets or sets the format specifiers to use with the labels for the OthersSlices. */ get othersSliceLabelFormatSpecifiers() { return this.i.aiy; } set othersSliceLabelFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.aiy = v; } /** * Gets or sets the label format for the LegendOthersSlices. */ get legendOthersSliceLabelFormat() { return this.i.ald; } set legendOthersSliceLabelFormat(v) { this.i.ald = v; } /** * Gets or sets the format specifiers to use with the labels for the LegendOthersSlices. */ get legendOthersSliceLabelFormatSpecifiers() { return this.i.aiw; } set legendOthersSliceLabelFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.aiw = v; } /** * Defines the percentage of the maximum radius extent to leave blank at the center of the chart. Should be * a value between 0.0 and 1.0. */ get innerExtent() { return this.i.ake; } set innerExtent(v) { this.i.ake = +v; } /** * Defines the percentage of the maximum radius extent to leave blank at the center of the chart. Should be * a value between 0.0 and 1.0. */ get sweepDirection() { return this.i.aje; } set sweepDirection(v) { this.i.aje = ensureEnum(PieChartSweepDirection_$type, v); } /** * Defines the positioning mode of the slice labels for the pie chart. */ get sliceLabelPositionMode() { return this.i.ai3; } set sliceLabelPositionMode(v) { this.i.ai3 = ensureEnum(CalloutCollisionMode_$type, v); } /** * Gets or sets the light color to use for slice labels. */ get lightSliceLabelColor() { return brushToString(this.i.amt); } set lightSliceLabelColor(v) { this.i.amt = stringToBrush(v); } /** * Gets or sets the Dark color to use for slice labels. */ get darkSliceLabelColor() { return brushToString(this.i.ams); } set darkSliceLabelColor(v) { this.i.ams = stringToBrush(v); } /** * Gets or sets the overridden value member path to use. */ get valueMemberPath() { return this.i.amh; } set valueMemberPath(v) { this.i.amh = v; } /** * Gets or sets the legend label member path to use. */ get legendLabelMemberPath() { return this.i.alb; } set legendLabelMemberPath(v) { this.i.alb = v; } get legendEmptyValuesMode() { return this.i.ai7; } set legendEmptyValuesMode(v) { this.i.ai7 = ensureEnum(LegendEmptyValuesMode_$type, v); } /** * Gets or sets whether to use numeric or percent-based threshold value. */ get othersCategoryType() { return this.i.ajc; } set othersCategoryType(v) { this.i.ajc = ensureEnum(OthersCategoryType_$type, v); } /** * Gets or sets the threshold value that determines if slices are grouped into the Others slice. */ get othersCategoryThreshold() { return this.i.akf; } set othersCategoryThreshold(v) { this.i.akf = +v; } /** * Gets or sets the label of the Others slice. */ get othersCategoryText() { return this.i.alm; } set othersCategoryText(v) { this.i.alm = v; } /** * Gets or sets the overridden value member path to use. */ get labelMemberPath() { return this.i.ak8; } set labelMemberPath(v) { this.i.ak8 = v; } /** * Gets or sets whether the axis should favor emitting a label at the end of the scale. */ get valueAxisFavorLabellingScaleEnd() { return this.i.ajx; } set valueAxisFavorLabellingScaleEnd(v) { this.i.ajx = ensureBool(v); } /** * Gets or sets how the numeric axis will adjust its range buffer to less closely fix the data from the series. */ get valueAxisAutoRangeBufferMode() { return this.i.ai1; } set valueAxisAutoRangeBufferMode(v) { this.i.ai1 = ensureEnum(AxisRangeBufferMode_$type, v); } /** * Gets or sets the frequency of displayed labels along the X-axis. * Gets or sets the set value is a factor that determines which labels will be hidden. For example, an interval of 2 will display every other label. */ get angleAxisInterval() { return this.i.akc; } set angleAxisInterval(v) { this.i.akc = +v; } /** * Gets or sets the frequency of displayed minor lines along the X-axis. * Gets or sets the set value is a factor that determines how the minor lines will be displayed. */ get angleAxisMinorInterval() { return this.i.akd; } set angleAxisMinorInterval(v) { this.i.akd = +v; } /** * Gets or sets the distance between each label and grid line along the Y-axis. */ get valueAxisInterval() { return this.i.akn; } set valueAxisInterval(v) { this.i.akn = +v; } /** * Gets or sets whether the Y-axis should use a logarithmic scale instead of a linear one. * Since log(-1) is imaginary and log(0) is undefined, it is recommended to enable this property only when the Y-axis minimum is greater than zero. */ get valueAxisIsLogarithmic() { return this.i.ajy; } set valueAxisIsLogarithmic(v) { this.i.ajy = ensureBool(v); } /** * Gets or sets the base value to use in the log function when mapping the position of data items along the Y-axis. * This property is effective only when ValueAxisIsLogarithmic is true. */ get valueAxisLogarithmBase() { return this.i.aks; } set valueAxisLogarithmBase(v) { this.i.aks = +v; } /** * Gets or sets the data value corresponding to the minimum value of the Y-axis. */ get valueAxisMinimumValue() { return this.i.akp; } set valueAxisMinimumValue(v) { this.i.akp = +v; } /** * Gets or sets the data value corresponding to the maximum value of the Y-axis. */ get valueAxisMaximumValue() { return this.i.ako; } set valueAxisMaximumValue(v) { this.i.ako = +v; } /** * Gets or sets the frequency of displayed minor lines along the Y-axis. */ get valueAxisMinorInterval() { return this.i.akq; } set valueAxisMinorInterval(v) { this.i.akq = +v; } /** * Gets the current minimum value for the Y-axis. */ get valueAxisActualMinimum() { return this.i.akm; } /** * Gets the current maximum value for the Y-axis. */ get valueAxisActualMaximum() { return this.i.akl; } /** * Gets or sets the extent of the chart's radius. Value between 0 and 1. */ get radiusExtent() { return this.i.akg; } set radiusExtent(v) { this.i.akg = +v; } /** * Gets or sets the start angle to use for the pie chart measured in degrees from the positive x axis. */ get startAngle() { return this.i.akk; } set startAngle(v) { this.i.akk = +v; } /** * Gets or sets the label of the Others slice. */ get sliceLabelContentSeparator() { return this.i.aly; } set sliceLabelContentSeparator(v) { this.i.aly = v; } /** * Gets or sets the label of the Others slice. */ get sliceLabelContentMode() { return this.i.ajk; } set sliceLabelContentMode(v) { this.i.ajk = ensureEnum(RadialLabelMode_$type, v); } /** * Gets or sets the label of the Others slice. */ get legendSliceLabelContentMode() { return this.i.ajj; } set legendSliceLabelContentMode(v) { this.i.ajj = ensureEnum(RadialLabelMode_$type, v); } /** * Gets or sets the x-radius of the ellipse that is used to round the corners of the slice. */ get radiusX() { return this.i.akh; } set radiusX(v) { this.i.akh = +v; } /** * Gets or sets the y-radius of the ellipse that is used to round the corners of the slice. */ get radiusY() { return this.i.aki; } set radiusY(v) { this.i.aki = +v; } /** * Gets or sets line thickness when the series is selected. */ get selectionThickness() { return this.i.akj; } set selectionThickness(v) { this.i.akj = +v; } /** * Specifies that slice outlines should be drawn inside the slice rather than halfway * in and halfway out. */ get useInsetOutlines() { return this.i.ajv; } set useInsetOutlines(v) { this.i.ajv = ensureBool(v); } /** * Gets or sets whether to favor labelling the end of the scale. */ get angleAxisFavorLabellingScaleEnd() { return this.i.ajs; } set angleAxisFavorLabellingScaleEnd(v) { this.i.ajs = ensureBool(v); } /** * Gets or sets whether the large numbers on the Y-axis labels are abbreviated. */ get valueAxisAbbreviateLargeNumbers() { return this.i.ajw; } set valueAxisAbbreviateLargeNumbers(v) { this.i.ajw = ensureBool(v); } /** * Gets or sets collision avoidance between markers on series that support this behaviour. */ get markerCollision() { return this.i.ai5; } set markerCollision(v) { this.i.ai5 = ensureEnum(CollisionAvoidanceType_$type, v); } /** * Gets or sets whether the mouse leave event should fire when a manipulation is starting. */ get fireMouseLeaveOnManipulationStart() { return this.i.ajt; } set fireMouseLeaveOnManipulationStart(v) { this.i.ajt = ensureBool(v); } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.sliceLabelFormatSpecifiers != null && arrayFindByName(this.sliceLabelFormatSpecifiers, name)) { return arrayFindByName(this.sliceLabelFormatSpecifiers, name); } if (this.legendSliceLabelFormatSpecifiers != null && arrayFindByName(this.legendSliceLabelFormatSpecifiers, name)) { return arrayFindByName(this.legendSliceLabelFormatSpecifiers, name); } if (this.othersSliceLabelFormatSpecifiers != null && arrayFindByName(this.othersSliceLabelFormatSpecifiers, name)) { return arrayFindByName(this.othersSliceLabelFormatSpecifiers, name); } if (this.legendOthersSliceLabelFormatSpecifiers != null && arrayFindByName(this.legendOthersSliceLabelFormatSpecifiers, name)) { return arrayFindByName(this.legendOthersSliceLabelFormatSpecifiers, name); } return null; } /** * Gets the Others context which provides a current list of items in Others slice. */ getOthersContext() { let iv = this.i.aja(); let ret = null; if (iv && iv.externalObject) { ret = iv.externalObject; } else { if (iv) { let e = IgxOthersCategoryContextComponent._createFromInternal(iv); e._implementation = iv; iv.externalObject = e; ret = e; } } return ret; } } IgxDataPieBaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataPieBaseChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); IgxDataPieBaseChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxDataPieBaseChartComponent, selector: "ng-component", inputs: { sliceLabelFormat: "sliceLabelFormat", sliceLabelFormatSpecifiers: "sliceLabelFormatSpecifiers", legendSliceLabelFormat: "legendSliceLabelFormat", legendSliceLabelFormatSpecifiers: "legendSliceLabelFormatSpecifiers", othersSliceLabelFormat: "othersSliceLabelFormat", othersSliceLabelFormatSpecifiers: "othersSliceLabelFormatSpecifiers", legendOthersSliceLabelFormat: "legendOthersSliceLabelFormat", legendOthersSliceLabelFormatSpecifiers: "legendOthersSliceLabelFormatSpecifiers", innerExtent: "innerExtent", sweepDirection: "sweepDirection", sliceLabelPositionMode: "sliceLabelPositionMode", lightSliceLabelColor: "lightSliceLabelColor", darkSliceLabelColor: "darkSliceLabelColor", valueMemberPath: "valueMemberPath", legendLabelMemberPath: "legendLabelMemberPath", legendEmptyValuesMode: "legendEmptyValuesMode", othersCategoryType: "othersCategoryType", othersCategoryThreshold: "othersCategoryThreshold", othersCategoryText: "othersCategoryText", labelMemberPath: "labelMemberPath", valueAxisFavorLabellingScaleEnd: "valueAxisFavorLabellingScaleEnd", valueAxisAutoRangeBufferMode: "valueAxisAutoRangeBufferMode", angleAxisInterval: "angleAxisInterval", angleAxisMinorInterval: "angleAxisMinorInterval", valueAxisInterval: "valueAxisInterval", valueAxisIsLogarithmic: "valueAxisIsLogarithmic", valueAxisLogarithmBase: "valueAxisLogarithmBase", valueAxisMinimumValue: "valueAxisMinimumValue", valueAxisMaximumValue: "valueAxisMaximumValue", valueAxisMinorInterval: "valueAxisMinorInterval", radiusExtent: "radiusExtent", startAngle: "startAngle", sliceLabelContentSeparator: "sliceLabelContentSeparator", sliceLabelContentMode: "sliceLabelContentMode", legendSliceLabelContentMode: "legendSliceLabelContentMode", radiusX: "radiusX", radiusY: "radiusY", selectionThickness: "selectionThickness", useInsetOutlines: "useInsetOutlines", angleAxisFavorLabellingScaleEnd: "angleAxisFavorLabellingScaleEnd", valueAxisAbbreviateLargeNumbers: "valueAxisAbbreviateLargeNumbers", markerCollision: "markerCollision", fireMouseLeaveOnManipulationStart: "fireMouseLeaveOnManipulationStart" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true }); return IgxDataPieBaseChartComponent; })(); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataPieBaseChartComponent, decorators: [{ type: Component, args: [{ template: ``, }] }], ctorParameters: function () { return []; }, propDecorators: { sliceLabelFormat: [{ type: Input }], sliceLabelFormatSpecifiers: [{ type: Input }], legendSliceLabelFormat: [{ type: Input }], legendSliceLabelFormatSpecifiers: [{ type: Input }], othersSliceLabelFormat: [{ type: Input }], othersSliceLabelFormatSpecifiers: [{ type: Input }], legendOthersSliceLabelFormat: [{ type: Input }], legendOthersSliceLabelFormatSpecifiers: [{ type: Input }], innerExtent: [{ type: Input }], sweepDirection: [{ type: Input }], sliceLabelPositionMode: [{ type: Input }], lightSliceLabelColor: [{ type: Input }], darkSliceLabelColor: [{ type: Input }], valueMemberPath: [{ type: Input }], legendLabelMemberPath: [{ type: Input }], legendEmptyValuesMode: [{ type: Input }], othersCategoryType: [{ type: Input }], othersCategoryThreshold: [{ type: Input }], othersCategoryText: [{ type: Input }], labelMemberPath: [{ type: Input }], valueAxisFavorLabellingScaleEnd: [{ type: Input }], valueAxisAutoRangeBufferMode: [{ type: Input }], angleAxisInterval: [{ type: Input }], angleAxisMinorInterval: [{ type: Input }], valueAxisInterval: [{ type: Input }], valueAxisIsLogarithmic: [{ type: Input }], valueAxisLogarithmBase: [{ type: Input }], valueAxisMinimumValue: [{ type: Input }], valueAxisMaximumValue: [{ type: Input }], valueAxisMinorInterval: [{ type: Input }], radiusExtent: [{ type: Input }], startAngle: [{ type: Input }], sliceLabelContentSeparator: [{ type: Input }], sliceLabelContentMode: [{ type: Input }], legendSliceLabelContentMode: [{ type: Input }], radiusX: [{ type: Input }], radiusY: [{ type: Input }], selectionThickness: [{ type: Input }], useInsetOutlines: [{ type: Input }], angleAxisFavorLabellingScaleEnd: [{ type: Input }], valueAxisAbbreviateLargeNumbers: [{ type: Input }], markerCollision: [{ type: Input }], fireMouseLeaveOnManipulationStart: [{ type: Input }] } });