UNPKG

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