UNPKG

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
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(); } } }