igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
1,101 lines (1,098 loc) • 45 kB
JavaScript
import { __extends } from "tslib";
/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { Component, ViewChild, ContentChildren, Input, forwardRef, ChangeDetectionStrategy, ViewContainerRef } from '@angular/core';
import { IgxAxisComponent } from './igx-axis-component';
import { IgxSeriesComponent } from './igx-series-component';
import { GridMode_$type } from './GridMode';
import { IgxSeriesViewerComponent } from './igx-series-viewer-component';
import { AngularRenderer, AngularWrapper } from "igniteui-angular-core";
import { TypeRegistrar } from "igniteui-angular-core";
import { XamDataChart } from './XamDataChart';
import { CollectionAdapter, brushToString, stringToBrush, ensureBool, ensureEnum } from "igniteui-angular-core";
import { DataChartStylingDefaults } from './DataChartStylingDefaults';
import { IgxDataContext } from "igniteui-angular-core";
import { IgxSeriesCollection } from './igx-series-collection';
import { NotifyCollectionChangedAction } from "igniteui-angular-core";
import { IgxAxisCollection } from './igx-axis-collection';
import { SyncLinkManager } from './SyncLinkManager';
import { SyncLink } from './SyncLink';
import { ComputedPlotAreaMarginMode_$type } from './ComputedPlotAreaMarginMode';
import { AutoMarginsAndAngleUpdateMode_$type } from './AutoMarginsAndAngleUpdateMode';
import { SeriesPlotAreaMarginHorizontalMode_$type } from './SeriesPlotAreaMarginHorizontalMode';
import { SeriesPlotAreaMarginVerticalMode_$type } from './SeriesPlotAreaMarginVerticalMode';
import * as i0 from "@angular/core";
/**
* Represents a chart area containing axes, series, an optional legend and other hosted content.
*/
var IgxDataChartComponent = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(IgxDataChartComponent, _super);
function IgxDataChartComponent(_renderer, _elRef, _ngZone, _componentFactoryResolver, _injector) {
var _this = _super.call(this) || this;
_this._renderer = _renderer;
_this._elRef = _elRef;
_this._ngZone = _ngZone;
_this._componentFactoryResolver = _componentFactoryResolver;
_this._injector = _injector;
/**
* The series actually present in the chart. Do not directly modify this array.
* This array's contents can be modified by causing Angular to reproject the child content.
* Or adding and removing series from the manual series collection on the series property.
*/
_this.actualSeries = [];
/**
* The axes actually present in the chart. Do not directly modify this array.
* This array's contents can be modified by causing Angular to reproject the child content.
* Or adding and removing axes from the manual axes collection on the axes property.
*/
_this.actualAxes = [];
_this._series = null;
_this._axes = null;
_this._root = null;
_this._dataSource = null;
_this._highlightedDataSource = null;
_this._axesAdapter = null;
_this._seriesAdapter = null;
_this._defaultTooltips = null;
_this._zoneRunner = function (act) { return _this._ngZone.run(act); };
_this._container = _renderer.createElement("div");
_renderer.appendChild(_elRef.element.nativeElement, _this._container);
_renderer.setStyle(_this._container, "display", "block");
_renderer.setStyle(_this._container, "width", "100%");
_renderer.setStyle(_this._container, "height", "100%");
var root;
root = _this._container;
if (_this._container.nativeElement != null) {
root = _this._container.nativeElement;
}
_this._root = root;
var ren = new AngularRenderer(root, _this._renderer, window.document, _this._ngZone, true, DataChartStylingDefaults);
_this._wrapper = ren;
var chart = _this.i;
_this._chart = chart;
_this._axesAdapter = new CollectionAdapter([], _this.i.axes, _this.actualAxes, function (c) { return c.i; }, function (i) {
i._provideRenderer(_this._wrapper);
i.provideData(_this._dataSource);
if (_this._container && _this._container.parentElement) {
i._styling(_this._root, _this, _this);
}
}, function (i) { i._provideRenderer(null); i.provideData(null); });
_this._seriesAdapter = new CollectionAdapter([], _this.i.series, _this.actualSeries, function (c) { return c.i; }, function (i) {
i.owner = _this;
i._provideRenderer(_this._dataSource);
i.provideData(_this._dataSource);
i.provideHighlightedData(_this._highlightedDataSource);
if (_this._container && _this._container.parentElement) {
i._styling(_this._root, _this, _this);
}
i.bindAxes(_this.actualAxes);
_this._ensureDefaultTooltip(i);
_this._ensureTooltipCreated(i);
}, function (i) { i._provideRenderer(null); i.provideData(null); });
chart.provideContainer(ren);
ren.addSizeWatcher(function () {
_this._chart.notifyContainerResized();
});
return _this;
}
Object.defineProperty(IgxDataChartComponent.prototype, "height", {
get: function () {
return this._height;
},
set: function (value) {
this._height = value;
this._renderer.setStyle(this._elRef.element.nativeElement, "height", value);
this._chart.notifyContainerResized();
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "width", {
get: function () {
return this._width;
},
set: function (value) {
this._width = value;
this._renderer.setStyle(this._elRef.element.nativeElement, "width", value);
this._chart.notifyContainerResized();
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "legend", {
/**
* Gets or sets the legend used for the current chart.
*/
get: function () {
if (this.i.legend != null)
return this.i.legend.externalObject;
},
set: function (v) {
if (v != undefined && v != null)
this.i.legend = v.i;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "series", {
/**
* A collection or manually added series for the chart.
*/
get: function () {
var _this = this;
if (this._series === null) {
var coll = new IgxSeriesCollection();
var inner = coll._innerColl;
inner.addListener(function (sender, e) {
switch (e.action) {
case NotifyCollectionChangedAction.Add:
_this._seriesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
break;
case NotifyCollectionChangedAction.Remove:
_this._seriesAdapter.removeManualItemAt(e.oldStartingIndex);
break;
case NotifyCollectionChangedAction.Replace:
_this._seriesAdapter.removeManualItemAt(e.oldStartingIndex);
_this._seriesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
break;
case NotifyCollectionChangedAction.Reset:
_this._seriesAdapter.clearManualItems();
break;
}
});
this._series = coll;
}
return this._series;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "axes", {
/**
* A collection or manually added axes for the chart.
*/
get: function () {
var _this = this;
if (this._axes === null) {
var coll = new IgxAxisCollection();
var inner = coll._innerColl;
inner.addListener(function (sender, e) {
switch (e.action) {
case NotifyCollectionChangedAction.Add:
_this._axesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
break;
case NotifyCollectionChangedAction.Remove:
_this._axesAdapter.removeManualItemAt(e.oldStartingIndex);
break;
case NotifyCollectionChangedAction.Replace:
_this._axesAdapter.removeManualItemAt(e.oldStartingIndex);
_this._axesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
break;
case NotifyCollectionChangedAction.Reset:
_this._axesAdapter.clearManualItems();
break;
}
});
this._axes = coll;
}
return this._axes;
},
enumerable: false,
configurable: true
});
IgxDataChartComponent.prototype.ngOnDestroy = function () {
this._chart.destroy();
this._wrapper.destroy();
};
IgxDataChartComponent.prototype.createImplementation = function () {
return new XamDataChart();
};
Object.defineProperty(IgxDataChartComponent.prototype, "dataSource", {
get: function () {
return this._dataSource;
},
set: function (value) {
this._dataSource = value;
this.bindData();
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "highlightedDataSource", {
get: function () {
return this._highlightedDataSource;
},
set: function (value) {
this._highlightedDataSource = value;
this.bindHighlightedData();
},
enumerable: false,
configurable: true
});
IgxDataChartComponent.prototype.bindData = function () {
//console.log("binding data: " + this._dataSource);
if (this.actualAxes && this.actualAxes.length > 0) {
var currAxes = this.actualAxes;
for (var i = 0; i < currAxes.length; i++) {
currAxes[i].provideData(this._dataSource);
}
}
if (this.actualSeries && this.actualSeries.length > 0) {
var currSeries = this.actualSeries;
for (var i = 0; i < currSeries.length; i++) {
currSeries[i].provideData(this._dataSource);
}
}
};
IgxDataChartComponent.prototype.bindHighlightedData = function () {
if (this.actualSeries && this.actualSeries.length > 0) {
var currSeries = this.actualSeries;
for (var i = 0; i < currSeries.length; i++) {
currSeries[i].provideHighlightedData(this._highlightedDataSource);
}
}
};
IgxDataChartComponent.prototype.ngAfterContentInit = function () {
var _this = this;
if (TypeRegistrar.isRegistered("IgxDataChartDefaultTooltipsComponent")) {
var c = TypeRegistrar.get("IgxDataChartDefaultTooltipsComponent");
var cf = this._componentFactoryResolver.resolveComponentFactory(c);
var cr_1 = this._dynamicContent.createComponent(cf);
//let cr = cf.create(this._injector);
this._defaultTooltips = cr_1;
cr_1.instance.onContentReady.subscribe(function () {
_this._onDefaultTooltipsReady(cr_1);
});
//this._container.appendChild(cr.location.nativeElement);
}
this._axesAdapter.updateQuery(this.contentAxes);
this._seriesAdapter.updateQuery(this.contentSeries);
if (this.actualAxes && this.actualAxes.length > 0) {
var currAxes = this.actualAxes;
for (var i = 0; i < currAxes.length; i++) {
currAxes[i].provideData(this._dataSource);
}
}
if (this.actualSeries && this.actualSeries.length > 0) {
var currSeries = this.actualSeries;
for (var i = 0; i < currSeries.length; i++) {
currSeries[i].provideData(this._dataSource);
}
}
};
IgxDataChartComponent.prototype.ngAfterViewInit = function () {
this.updateStyle();
this.i.notifyContainerResized();
};
IgxDataChartComponent.prototype.updateStyle = function () {
this._styling(this._root, this);
};
IgxDataChartComponent.prototype._ensureTooltipCreated = function (series) {
var _this = this;
series._ensureTooltipCreated(function () { return _this.createTooltip(); }, function (ele) {
var wrapper = new AngularWrapper(ele, _this._renderer, _this._ngZone);
wrapper.updateToolTip = ele.updateToolTip;
wrapper.hideToolTip = ele.hideToolTip;
return wrapper;
});
};
IgxDataChartComponent.prototype._ensureDefaultTooltip = function (series) {
if (this._defaultTooltips == null) {
return;
}
this._defaultTooltips.instance["ensureDefaultTooltip"](series);
};
IgxDataChartComponent.prototype._onDefaultTooltipsReady = function (cr) {
if (this.actualSeries && this.actualSeries.length > 0) {
var currSeries = this.actualSeries;
for (var i = 0; i < currSeries.length; i++) {
if (currSeries[i].showDefaultTooltip) {
this._ensureDefaultTooltip(currSeries[i]);
}
}
}
};
IgxDataChartComponent.prototype.createTooltip = function () {
if (!TypeRegistrar.isRegistered("IgxTooltipContainerComponent")) {
return null;
}
var t = TypeRegistrar.get("IgxTooltipContainerComponent");
var cf = this._componentFactoryResolver.resolveComponentFactory(t);
//let cr = cf.create(this._injector);
var cr = this._dynamicContent.createComponent(cf);
var ele = cr.location.nativeElement;
var self = this;
ele.updateToolTip = function (c, isSubContent) {
if (c.externalObject) {
c = c.externalObject;
}
else {
var ext = new IgxDataContext();
ext._implementation = c;
c = ext;
}
if (!isSubContent) {
if (ele.parentElement != self._container) {
if (ele.parentElement != null) {
ele.parentElement.removeChild(ele);
}
self._container.appendChild(ele);
}
}
else {
c.isSubContent = true;
}
cr.instance.context = c;
ele.style.display = "block";
return true;
};
ele.hideToolTip = function () {
ele.style.display = "none";
};
ele.style.display = "none";
return cr;
};
Object.defineProperty(IgxDataChartComponent.prototype, "syncChannel", {
/**
* Gets or sets the channel with which to synchronize.
*
* Synchronization is the coordination of zooming, panning and crosshairs events between multiple charts. Multiple chart controls can be synchronized horizontally (along X-Axis), vertically (along Y-Axis), or both. If you want to synchronize a set of charts, assign them the same name to the `syncChannel` and then specify whether or not synchronize chart horizontally and/or vertically.
*/
get: function () {
return this.i.syncChannel;
},
set: function (v) {
var newLink = null;
if (v && v.length > 0) {
newLink = SyncLinkManager.instance().getLink(v);
}
var oldLink = this.i.actualSyncLink;
if (oldLink) {
SyncLinkManager.instance().releaseLink(oldLink);
}
if (newLink) {
this.i.actualSyncLink = newLink;
}
else {
this.i.actualSyncLink = new SyncLink();
}
this.i.syncChannel = v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "synchronizeVertically", {
/**
* Gets or sets the bool used to display the window preview shadow.
*
* Synchronization is the coordination of zooming, panning and crosshairs events between multiple charts. Multiple chart controls can be synchronized horizontally (along X-Axis), vertically (along Y-Axis), or both. If you want to synchronize a set of charts, assign them the same name to the `syncChannel` and then specify whether or not synchronize chart horizontally and/or vertically.
*/
get: function () {
return this.i.syncSettings ? this.i.syncSettings.synchronizeVertically : false;
},
set: function (v) {
this.i.syncSettings.synchronizeVertically = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "synchronizeHorizontally", {
/**
* Gets or sets the bool used to display the window preview shadow.
*
* Synchronization is the coordination of zooming, panning and crosshairs events between multiple charts. Multiple chart controls can be synchronized horizontally (along X-Axis), vertically (along Y-Axis), or both. If you want to synchronize a set of charts, assign them the same name to the `syncChannel` and then specify whether or not synchronize chart horizontally and/or vertically.
*/
get: function () {
return this.i.syncSettings ? this.i.syncSettings.synchronizeHorizontally : false;
},
set: function (v) {
this.i.syncSettings.synchronizeHorizontally = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "i", {
/**
* @hidden
*/
get: function () {
return this._implementation;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "isSquare", {
/**
* Gets or sets whether to use a square aspect ratio for the chart. This is locked to true for polar and radial charts.
*
* Set `IsSquare` to true to constrain the chart to a square, using the minimum of its height and width.
*
* ```html
* <igx-data-chart [dataSource]="data"
* isSquare="true"
* width="800px"
* height="400px">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis
* majorStroke="green">
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*
* ```ts
* this.chart.isSquare="True";
* ```
*/
get: function () {
return this.i.xi;
},
set: function (v) {
this.i.xi = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "windowScaleHorizontal", {
/**
* A number between 0 and 1 determining the scale of the horizontal zoom.
* This property is effectively a shortcut to the Width of the WindowRect property.
*
* To programmatically change the horizontal zoom level, set `WindowScaleHorizontal` to a value between 0 and 1.
*
* ```html
* <igx-data-chart [dataSource]="data"
* windowScaleHorizontal="0.75">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis>
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*
* ```ts
* this.chart.windowScaleHorizontal="0.75";
* ```
*/
get: function () {
return this.i.yp;
},
set: function (v) {
this.i.yp = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "windowScaleVertical", {
/**
* A number between 0 and 1 determining the scale of the vertical zoom.
* This property is effectively a shortcut to the Height of the WindowRect property.
*
* To programmatically change the vertical zoom level, set `WindowScaleVertical` to a value between 0 and 1.
*
* ```html
* <igx-data-chart [dataSource]="data"
* windowScaleVertical="0.75">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis>
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*
* ```ts
* this.chart.windowScaleVertical="0.75";
* ```
*/
get: function () {
return this.i.yq;
},
set: function (v) {
this.i.yq = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualWindowScaleHorizontal", {
/**
* A number between 0 and 1 determining the scale of the horizontal zoom.
* This property is effectively a shortcut to the Width of the ActualWindowRect property.
*/
get: function () {
return this.i.ya;
},
set: function (v) {
this.i.ya = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualWindowScaleVertical", {
/**
* A number between 0 and 1 determining the scale of the vertical zoom.
* This property is effectively a shortcut to the Height of the ActualWindowRect property.
*/
get: function () {
return this.i.yb;
},
set: function (v) {
this.i.yb = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "isHorizontalZoomEnabled", {
/**
* Gets or sets horizontal zoomability of the current control
*
* Set `IsHorizontalZoomEnabled` to enable or disable horizontal zooming.
*
* ```html
* <igx-data-chart [dataSource]="data"
* isHorizontalZoomEnabled="true">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis>
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*
* ```ts
* this.chart.IsHorizontalZoomEnabled= true;
* ```
*/
get: function () {
return this.i.xg;
},
set: function (v) {
this.i.xg = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "isVerticalZoomEnabled", {
/**
* Gets or sets vertical zoomability of the current control
*
* Set `IsVerticalZoomEnabled` to enable or disable vertical zooming.
*
* ```html
* <igx-data-chart [dataSource]="data"
* isVerticalZoomEnabled="true">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis>
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*
* ```ts
* this.chart.isVerticalZoomEnabled="True";
* ```
*/
get: function () {
return this.i.xj;
},
set: function (v) {
this.i.xj = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "gridMode", {
/**
* Gets or sets how grid lines are rendered in relation to series.
*
* Try setting the `GridMode` property to bring your grid lines in front of the data series.
*
* ```html
* <igx-data-chart [dataSource]="data"
* gridMode="beforeSeries">
* <igx-category-x-axis #xAxis
* label="label">
* </igx-category-x-axis>
* <igx-numeric-y-axis #yAxis
* majorStroke="green">
* </igx-numeric-y-axis>
*
* <igx-column-series
* [xAxis]="xAxis"
* [yAxis]="yAxis"
* valueMemberPath="value">
* </igx-column-series>
* </igx-data-chart>
* ```
*/
get: function () {
return this.i.ww;
},
set: function (v) {
this.i.ww = ensureEnum(GridMode_$type, v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "alignsGridLinesToPixels", {
/**
* Gets or sets a value indicating whether grid and tick lines are aligned to device pixels.
*/
get: function () {
return this.i.xc;
},
set: function (v) {
this.i.xc = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "autoExpandMarginMaximumValue", {
/**
* Gets or sets the maximum amount the series viewer should auto expand margins to accomodate the initial horizontal axis labels.
*/
get: function () {
return this.i.yd;
},
set: function (v) {
this.i.yd = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "autoExpandMarginExtraPadding", {
/**
* Gets or sets the extra amount the series viewer should auto expand margins to accomodate the initial horizontal axis labels.
*/
get: function () {
return this.i.yc;
},
set: function (v) {
this.i.yc = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "shouldSuppressAxisLabelTruncation", {
/**
* Gets or sets a whether the series viewer should suppress truncation of axis labels.
*/
get: function () {
return this.i.xq;
},
set: function (v) {
this.i.xq = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "shouldAutoExpandMarginForInitialLabels", {
/**
* Gets or sets a whether the series viewer should auto expand margins to accomodate the initial horizontal axis labels.
*/
get: function () {
return this.i.xm;
},
set: function (v) {
this.i.xm = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "shouldConsiderAutoRotationForInitialLabels", {
/**
* Gets or sets a whether the series viewer should consider auto rotating labels to fit them in the initial view. This implies that ShouldAutoExpandMarginForInitialLabels is true.
*/
get: function () {
return this.i.xp;
},
set: function (v) {
this.i.xp = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "suppressAutoMarginAndAngleRecalculation", {
/**
* Gets or sets a whether the series viewer should suppress auto recalculating margin and axis label angles.
*/
get: function () {
return this.i.xr;
},
set: function (v) {
this.i.xr = ensureBool(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "autoMarginAndAngleUpdateMode", {
/**
* Gets or sets a whether the series viewer should consider auto rotating labels to fit them in the initial view. This implies that ShouldAutoExpandMarginForInitialLabels is true.
*/
get: function () {
return this.i.wr;
},
set: function (v) {
this.i.wr = ensureEnum(AutoMarginsAndAngleUpdateMode_$type, v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "defaultAxisStroke", {
/**
* Gets or sets the DefaultAxisStroke property.
* The DefaultAxisStroke property defines the brush which is used by the axes when no
* Axis.Stroke is set.
*/
get: function () {
return brushToString(this.i.aas);
},
set: function (v) {
this.i.aas = stringToBrush(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "defaultAxisMajorStroke", {
/**
* Gets or sets the DefaultAxisMajorStroke property.
* The DefaultAxisMajorStroke property defines the brush which is used by the axes when no
* Axis.MajorStroke is set.
*/
get: function () {
return brushToString(this.i.aaq);
},
set: function (v) {
this.i.aaq = stringToBrush(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "defaultAxisMinorStroke", {
/**
* Gets or sets the DefaultAxisMinorStroke property.
* The DefaultAxisMinorStroke property defines the brush which is used by the axes when no
* Axis.MinorStroke is set.
*/
get: function () {
return brushToString(this.i.aar);
},
set: function (v) {
this.i.aar = stringToBrush(v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualPlotAreaMarginLeft", {
/**
* Gets the actual resolved left plot area margin;
*/
get: function () {
return this.i.x7;
},
set: function (v) {
this.i.x7 = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualPlotAreaMarginTop", {
/**
* Gets the actual resolved top plot area margin;
*/
get: function () {
return this.i.x9;
},
set: function (v) {
this.i.x9 = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualPlotAreaMarginRight", {
/**
* Gets the actual resolved right plot area margin;
*/
get: function () {
return this.i.x8;
},
set: function (v) {
this.i.x8 = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "actualPlotAreaMarginBottom", {
/**
* Gets the actual resolved bottom plot area margin;
*/
get: function () {
return this.i.x6;
},
set: function (v) {
this.i.x6 = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "computedPlotAreaMarginMode", {
/**
* Gets or sets mode to use for automatically calculating the plot area margin.
*/
get: function () {
return this.i.wu;
},
set: function (v) {
this.i.wu = ensureEnum(ComputedPlotAreaMarginMode_$type, v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "seriesPlotAreaMarginHorizontalMode", {
/**
* Gets or sets horizontal mode to use for automatically calculating the plot area margin based ont the series.
*/
get: function () {
return this.i.w1;
},
set: function (v) {
this.i.w1 = ensureEnum(SeriesPlotAreaMarginHorizontalMode_$type, v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "seriesPlotAreaMarginVerticalMode", {
/**
* Gets or sets vertical mode to use for automatically calculating the plot area margin based ont the series.
*/
get: function () {
return this.i.w4;
},
set: function (v) {
this.i.w4 = ensureEnum(SeriesPlotAreaMarginVerticalMode_$type, v);
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "plotAreaMarginLeft", {
/**
* Margin applied to the left of the plot area.
*/
get: function () {
return this.i.yl;
},
set: function (v) {
this.i.yl = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "plotAreaMarginTop", {
/**
* Margin applied above the plot area.
*/
get: function () {
return this.i.yn;
},
set: function (v) {
this.i.yn = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "plotAreaMarginRight", {
/**
* Margin applied to the right of the plot area.
*/
get: function () {
return this.i.ym;
},
set: function (v) {
this.i.ym = +v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(IgxDataChartComponent.prototype, "plotAreaMarginBottom", {
/**
* Margin applied below the plot area.
*/
get: function () {
return this.i.yk;
},
set: function (v) {
this.i.yk = +v;
},
enumerable: false,
configurable: true
});
IgxDataChartComponent.prototype.findByName = function (name) {
var baseResult = _super.prototype.findByName.call(this, name);
if (baseResult) {
return baseResult;
}
if (this.axes != null && this.axes.findByName && this.axes.findByName(name)) {
return this.axes.findByName(name);
}
return null;
};
IgxDataChartComponent.prototype.refreshComputedPlotAreaMargin = function () {
this.i.zy();
};
IgxDataChartComponent.prototype.recalculateMarginAutoExpansion = function () {
this.i.zx();
};
IgxDataChartComponent.prototype.recalculateAutoLabelsAngle = function () {
this.i.zw();
};
/**
* Notifies the chart that the CSS styles in effect have been updated.
*/
IgxDataChartComponent.prototype.styleUpdated = function () {
this.i.zz();
};
/**
* Export serialized visual data.
*/
IgxDataChartComponent.prototype.exportSerializedVisualData = function () {
var iv = this.i.y7();
return (iv);
};
IgxDataChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataChartComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
IgxDataChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxDataChartComponent, selector: "igx-data-chart", inputs: { height: "height", width: "width", legend: "legend", dataSource: "dataSource", highlightedDataSource: "highlightedDataSource", syncChannel: "syncChannel", synchronizeVertically: "synchronizeVertically", synchronizeHorizontally: "synchronizeHorizontally", isSquare: "isSquare", windowScaleHorizontal: "windowScaleHorizontal", windowScaleVertical: "windowScaleVertical", actualWindowScaleHorizontal: "actualWindowScaleHorizontal", actualWindowScaleVertical: "actualWindowScaleVertical", isHorizontalZoomEnabled: "isHorizontalZoomEnabled", isVerticalZoomEnabled: "isVerticalZoomEnabled", gridMode: "gridMode", alignsGridLinesToPixels: "alignsGridLinesToPixels", autoExpandMarginMaximumValue: "autoExpandMarginMaximumValue", autoExpandMarginExtraPadding: "autoExpandMarginExtraPadding", shouldSuppressAxisLabelTruncation: "shouldSuppressAxisLabelTruncation", shouldAutoExpandMarginForInitialLabels: "shouldAutoExpandMarginForInitialLabels", shouldConsiderAutoRotationForInitialLabels: "shouldConsiderAutoRotationForInitialLabels", suppressAutoMarginAndAngleRecalculation: "suppressAutoMarginAndAngleRecalculation", autoMarginAndAngleUpdateMode: "autoMarginAndAngleUpdateMode", defaultAxisStroke: "defaultAxisStroke", defaultAxisMajorStroke: "defaultAxisMajorStroke", defaultAxisMinorStroke: "defaultAxisMinorStroke", actualPlotAreaMarginLeft: "actualPlotAreaMarginLeft", actualPlotAreaMarginTop: "actualPlotAreaMarginTop", actualPlotAreaMarginRight: "actualPlotAreaMarginRight", actualPlotAreaMarginBottom: "actualPlotAreaMarginBottom", computedPlotAreaMarginMode: "computedPlotAreaMarginMode", seriesPlotAreaMarginHorizontalMode: "seriesPlotAreaMarginHorizontalMode", seriesPlotAreaMarginVerticalMode: "seriesPlotAreaMarginVerticalMode", plotAreaMarginLeft: "plotAreaMarginLeft", plotAreaMarginTop: "plotAreaMarginTop", plotAreaMarginRight: "plotAreaMarginRight", plotAreaMarginBottom: "plotAreaMarginBottom" }, host: { classAttribute: "igx-data-chart ig-data-chart" }, providers: [{ provide: IgxSeriesViewerComponent, useExisting: forwardRef(function () { return IgxDataChartComponent; }) }], queries: [{ propertyName: "contentAxes", predicate: IgxAxisComponent }, { propertyName: "contentSeries", predicate: IgxSeriesComponent }], viewQueries: [{ propertyName: "_dynamicContent", first: true, predicate: ["dynamicContent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #dynamicContent></ng-container>", isInline: true, styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
return IgxDataChartComponent;
}(IgxSeriesViewerComponent));
export { IgxDataChartComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataChartComponent, decorators: [{
type: Component,
args: [{
selector: 'igx-data-chart',
template: "<ng-container #dynamicContent></ng-container>",
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [{ provide: IgxSeriesViewerComponent, useExisting: forwardRef(function () { return IgxDataChartComponent; }) }],
host: { 'class': 'igx-data-chart ig-data-chart' },
styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"]
}]
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { contentAxes: [{
type: ContentChildren,
args: [IgxAxisComponent]
}], contentSeries: [{
type: ContentChildren,
args: [IgxSeriesComponent]
}], _dynamicContent: [{
type: ViewChild,
args: ["dynamicContent", { read: ViewContainerRef, static: true }]
}], height: [{
type: Input
}], width: [{
type: Input
}], legend: [{
type: Input
}], dataSource: [{
type: Input
}], highlightedDataSource: [{
type: Input
}], syncChannel: [{
type: Input
}], synchronizeVertically: [{
type: Input
}], synchronizeHorizontally: [{
type: Input
}], isSquare: [{
type: Input
}], windowScaleHorizontal: [{
type: Input
}], windowScaleVertical: [{
type: Input
}], actualWindowScaleHorizontal: [{
type: Input
}], actualWindowScaleVertical: [{
type: Input
}], isHorizontalZoomEnabled: [{
type: Input
}], isVerticalZoomEnabled: [{
type: Input
}], gridMode: [{
type: Input
}], alignsGridLinesToPixels: [{
type: Input
}], autoExpandMarginMaximumValue: [{
type: Input
}], autoExpandMarginExtraPadding: [{
type: Input
}], shouldSuppressAxisLabelTruncation: [{
type: Input
}], shouldAutoExpandMarginForInitialLabels: [{
type: Input
}], shouldConsiderAutoRotationForInitialLabels: [{
type: Input
}], suppressAutoMarginAndAngleRecalculation: [{
type: Input
}], autoMarginAndAngleUpdateMode: [{
type: Input
}], defaultAxisStroke: [{
type: Input
}], defaultAxisMajorStroke: [{
type: Input
}], defaultAxisMinorStroke: [{
type: Input
}], actualPlotAreaMarginLeft: [{
type: Input
}], actualPlotAreaMarginTop: [{
type: Input
}], actualPlotAreaMarginRight: [{
type: Input
}], actualPlotAreaMarginBottom: [{
type: Input
}], computedPlotAreaMarginMode: [{
type: Input
}], seriesPlotAreaMarginHorizontalMode: [{
type: Input
}], seriesPlotAreaMarginVerticalMode: [{
type: Input
}], plotAreaMarginLeft: [{
type: Input
}], plotAreaMarginTop: [{
type: Input
}], plotAreaMarginRight: [{
type: Input
}], plotAreaMarginBottom: [{
type: Input
}] } });