igniteui-angular-inputs
Version:
Ignite UI Angular input components for building rich data visualizations for modern web apps.
112 lines (111 loc) • 3.51 kB
JavaScript
import { EventEmitter } from '@angular/core';
import { delegateCombine } from "igniteui-angular-core";
import { MultiSliderThumbRangePosition_$type } from "./MultiSliderThumbRangePosition";
import { IgxMultiSliderTrackThumbRange } from "./igx-multi-slider-track-thumb-range";
import { IgxPropertyUpdatedEventArgs } from "igniteui-angular-core";
import { MultiSliderThumb as MultiSliderThumb_internal } from "./MultiSliderThumb";
import { ensureEnum } from "igniteui-angular-core";
export class IgxMultiSliderThumb {
constructor() {
this._propertyUpdated = null;
this._zoneRunner = null;
this._implementation = this.createImplementation();
this._implementation.externalObject = this;
this.onImplementationCreated();
if (this._initializeAdapters) {
this._initializeAdapters();
}
}
createImplementation() {
return new MultiSliderThumb_internal();
}
/**
* @hidden
*/
get i() {
return this._implementation;
}
onImplementationCreated() {
}
_provideImplementation(i) {
this._implementation = i;
this._implementation.externalObject = this;
this.onImplementationCreated();
}
get value() {
return this.i.s;
}
set value(v) {
this.i.s = +v;
}
get rangePosition() {
return this.i.g;
}
set rangePosition(v) {
this.i.g = ensureEnum(MultiSliderThumbRangePosition_$type, v);
}
get range() {
const r = this.i.i;
if (r == null) {
return null;
}
if (!r.externalObject) {
let e = new IgxMultiSliderTrackThumbRange();
if (r.$type) {
e._implementation = r;
}
else {
if (e.i.setNativeElement) {
e.i.setNativeElement(r);
}
}
r.externalObject = e;
}
return r.externalObject;
}
set range(v) {
v == null ? this.i.i = null : this.i.i = v.i;
}
findByName(name) {
if (this.findEphemera) {
if (name && name.indexOf("@@e:") == 0) {
return this.findEphemera(name);
}
}
if (this.range && this.range.name && this.range.name == name) {
return this.range;
}
return null;
}
push(amount) {
let iv = this.i.r(amount);
return (iv);
}
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;
}
_runInZone(act) {
if (this._zoneRunner != null) {
this._zoneRunner(act);
}
else {
act();
}
}
}