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
JavaScript
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
}] } });