igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
144 lines (143 loc) • 4.71 kB
JavaScript
import { EventEmitter } from '@angular/core';
import { delegateCombine } from "igniteui-angular-core";
import { IgxPropertyUpdatedEventArgs } from "igniteui-angular-core";
import { IgxSeriesLayerPropertyOverlayValueResolvingEventArgs } from "./igx-series-layer-property-overlay-value-resolving-event-args";
import { SeriesLayerPropertyOverlay as SeriesLayerPropertyOverlay_internal } from "./SeriesLayerPropertyOverlay";
import { ensureBool } from "igniteui-angular-core";
/**
* Represents an axis annotation
*/
export class IgxSeriesLayerPropertyOverlay {
constructor() {
this._propertyUpdated = null;
this._valueResolving = null;
this._zoneRunner = null;
this._implementation = this.createImplementation();
this._implementation.externalObject = this;
this.onImplementationCreated();
if (this._initializeAdapters) {
this._initializeAdapters();
}
}
createImplementation() {
return new SeriesLayerPropertyOverlay_internal();
}
/**
* @hidden
*/
get i() {
return this._implementation;
}
onImplementationCreated() {
}
_provideImplementation(i) {
this._implementation = i;
this._implementation.externalObject = this;
this.onImplementationCreated();
}
/**
* Gets or sets whether this property overlay targets the source series instead of the current layer while the layer is present.
*/
get isSourceOverlay() {
return this.i.r;
}
set isSourceOverlay(v) {
this.i.r = ensureBool(v);
}
/**
* Gets or sets whether this property overlay should be applied to the source or target even if the source property wasn't mutated.
*/
get isAlwaysApplied() {
return this.i.p;
}
set isAlwaysApplied(v) {
this.i.p = ensureBool(v);
}
get internalPropertyName() {
return this.i.aa;
}
/**
* Gets or sets the property to overlay on the series or series layer.
*/
get propertyName() {
return this.i.ad;
}
set propertyName(v) {
this.i.ad = v;
}
/**
* Gets or sets the property from which to get the current value, if different from property name.
*/
get currentValuePropertyName() {
return this.i.y;
}
set currentValuePropertyName(v) {
this.i.y = v;
}
/**
* Gets or sets the value to overlay on the series or series layer.
*/
get value() {
return this.i.x;
}
set value(v) {
this.i.x = v;
}
findByName(name) {
if (this.findEphemera) {
if (name && name.indexOf("@@e:") == 0) {
return this.findEphemera(name);
}
}
return null;
}
/**
* Event raised when a property value is changed.
*/
get propertyUpdated() {
if (this._propertyUpdated == null) {
this._propertyUpdated = new EventEmitter();
this.i.propertyUpdated = delegateCombine(this.i.propertyUpdated, (o, e) => {
this._runInZone(() => {
let outerArgs = new IgxPropertyUpdatedEventArgs();
outerArgs._provideImplementation(e);
if (this.beforePropertyUpdated) {
this.beforePropertyUpdated(this, outerArgs);
}
this._propertyUpdated.emit({
sender: this,
args: outerArgs
});
});
});
}
return this._propertyUpdated;
}
get valueResolving() {
if (this._valueResolving == null) {
this._valueResolving = new EventEmitter();
this.i.valueResolving = delegateCombine(this.i.valueResolving, (o, e) => {
this._runInZone(() => {
let outerArgs = new IgxSeriesLayerPropertyOverlayValueResolvingEventArgs();
outerArgs._provideImplementation(e);
if (this.beforeValueResolving) {
this.beforeValueResolving(this, outerArgs);
}
this._valueResolving.emit({
sender: this,
args: outerArgs
});
});
});
}
return this._valueResolving;
}
_runInZone(act) {
if (this._zoneRunner != null) {
this._zoneRunner(act);
}
else {
act();
}
}
}