/*
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 { Base, runOn, delegateCombine, delegateRemove, markType, INotifyPropertyChanged_$type, PropertyChangedEventArgs, enumGetBox } from "igniteui-react-core/ES2015/type";
import { RenderingContext } from "igniteui-react-core/ES2015/RenderingContext";
import { DefaultTrackThumbVisual } from "./DefaultTrackThumbVisual";
import { DefaultTrackRangeVisual } from "./DefaultTrackRangeVisual";
import { DefaultTrackBarVisual } from "./DefaultTrackBarVisual";
import { DefaultTrackShadeVisual } from "./DefaultTrackShadeVisual";
import { DefaultTrackThumbCalloutVisual } from "./DefaultTrackThumbCalloutVisual";
import { FontInfo } from "igniteui-react-core/ES2015/FontInfo";
import { Rect } from "igniteui-react-core/ES2015/Rect";
import { TranslateTransform } from "igniteui-react-core/ES2015/TranslateTransform";
import { DoubleAnimator } from "igniteui-react-core/ES2015/DoubleAnimator";
import { CanvasViewRenderer } from "igniteui-react-core/ES2015/CanvasViewRenderer";
import { CanvasGestureDOMEventProxy } from "igniteui-react-core/ES2015/CanvasGestureDOMEventProxy";
import { FontUtil } from "igniteui-react-core/ES2015/FontUtil";
import { Size } from "igniteui-react-core/ES2015/Size";
import { truncate, isNaN_ } from "igniteui-react-core/ES2015/number";
import { ITrackOwner_$type } from "./ITrackOwner";
import { TrackThumb } from "./TrackThumb";
import { TrackThumbRange } from "./TrackThumbRange";
import { ZoomSliderOrientation_$type } from "./ZoomSliderOrientation";
import { ZoomSliderResolvingAxisValueEventArgs } from "./ZoomSliderResolvingAxisValueEventArgs";
import { RectChangedEventArgs } from "igniteui-react-core/ES2015/RectChangedEventArgs";
import { Thickness } from "igniteui-react-core/ES2015/Thickness";
import { NotImplementedException } from "igniteui-react-core/ES2015/NotImplementedException";
import { EasingFunctions } from "igniteui-react-core/ES2015/EasingFunctions";
export class ZoomSliderView extends Base {
    constructor(a) {
        super();
        this.p = false;
        this.i = null;
        this.h = null;
        this.c = null;
        this.b = null;
        this.e = null;
        this.d = null;
        this.g = null;
        this.f = null;
        this.j = null;
        this.u = null;
        this.v = null;
        this.o = null;
        this.s = 0;
        this.q = false;
        this.x = 0;
        this.w = 0;
        this.m = null;
        this.a = null;
        this.t = null;
        this.l = null;
        this.y = -1;
        this.r = 10;
        this.k = 0;
        this.j = a;
        this.i = new DefaultTrackThumbVisual();
        this.h = new DefaultTrackThumbVisual();
        this.c = new DefaultTrackRangeVisual();
        this.b = new DefaultTrackBarVisual();
        this.e = new DefaultTrackShadeVisual();
        this.d = new DefaultTrackShadeVisual();
        this.g = new DefaultTrackThumbCalloutVisual();
        this.f = new DefaultTrackThumbCalloutVisual();
        this.m = this.n();
        this.aj();
    }
    ak() {
        if (!this.p) {
            if (this.u != null) {
                this.p = true;
                this.u.setTimeout(runOn(this, this.au), 0);
            }
        }
    }
    ah() {
        this.au();
    }
    au() {
        if (!this.p) {
            return;
        }
        this.p = false;
        this.j.ee();
        this.ap();
    }
    ap() {
        if (this.o == null) {
            return;
        }
        let a = this.j.fr.width;
        let b = this.j.fr.height;
        let c = Math.round(a * this.s);
        let d = Math.round(b * this.s);
        if (this.x != c || this.w != d) {
            this.v.setAttribute("width", c.toString());
            this.v.setAttribute("height", d.toString());
            this.v.setStyleProperty("width", a.toString() + "px");
            this.v.setStyleProperty("height", b.toString() + "px");
            this.x = truncate(Math.round(c));
            this.w = truncate(Math.round(d));
        }
        if (this.o.d && this.s != 1) {
            this.o.z();
            this.o.aa(this.s, this.s);
        }
        this.o.k(this.j.fr.left, this.j.fr.top, this.j.fr.width, this.j.fr.height);
        this.as(this.i.allPaths, this.i.translateX, this.i.translateY);
        this.as(this.h.allPaths, this.h.translateX, this.h.translateY);
        this.as(this.c.allPaths, this.c.translateX, this.c.translateY);
        this.as(this.b.allPaths, this.b.translateX, this.b.translateY);
        this.as(this.e.allPaths, this.e.translateX, this.e.translateY);
        this.as(this.d.allPaths, this.d.translateX, this.d.translateY);
        this.as(this.g.allPaths, this.g.translateX, this.g.translateY);
        this.as(this.f.allPaths, this.f.translateX, this.f.translateY);
        this.at(this.g.calloutText, this.g.textTranslateX, this.g.textTranslateY);
        this.at(this.f.calloutText, this.f.textTranslateX, this.f.textTranslateY);
        this.aq(this.b.allPaths);
        this.aq(this.c.allPaths);
        this.aq(this.e.allPaths);
        this.aq(this.d.allPaths);
        this.aq(this.i.allPaths);
        this.aq(this.h.allPaths);
        this.aq(this.g.allPaths);
        this.aq(this.f.allPaths);
        this.ar(this.g.calloutText);
        this.ar(this.f.calloutText);
        if (this.o.d && this.s != 1) {
            this.o.y();
        }
    }
    ar(a) {
        if (a.j != null) {
            this.o.z();
        }
        this.o.j(a.j);
        this.o.w(a);
        if (a.j != null) {
            this.o.y();
        }
    }
    aq(a) {
        for (let b = 0; b < a.count; b++) {
            let c = a.item(b);
            if (c.j != null) {
                this.o.z();
            }
            this.o.j(c.j);
            this.o.s(c);
            if (c.j != null) {
                this.o.y();
            }
        }
    }
    at(a, b, c) {
        if (a.j == null) {
            a.j = new TranslateTransform();
        }
        let d = a.j;
        d.j = b;
        d.k = c;
    }
    as(a, b, c) {
        for (let d = 0; d < a.count; d++) {
            let e = a.item(d);
            if (e.j == null) {
                e.j = new TranslateTransform();
            }
            let f = e.j;
            f.j = b;
            f.k = c;
        }
    }
    aj() {
        if (this.t == null) {
            this.t = (a) => {
                let b = this.j.bl;
                let c = this.j.a5;
                if (!isNaN_(b) && b != 0) {
                    return;
                }
                if (window.devicePixelRatio != undefined && window.devicePixelRatio != c) {
                    this.j.a5 = window.devicePixelRatio;
                }
            };
            window.addEventListener("resize", this.t, false);
        }
        this.t(null);
    }
    an(a) {
        if (a == null) {
            this.v = null;
            this.u = null;
            this.o = null;
            this.z();
            if (this.t != null) {
                window.removeEventListener("resize", this.t, false);
                this.t = null;
            }
            return;
        }
        this.s = (isNaN_(this.j.bl) ? this.j.a5 : this.j.bl);
        let b = a;
        this.u = b;
        this.j.l.u(this.u);
        this.u.rootWrapper.addClass("ui-zoomslider-container");
        let c = this.s;
        let d = Math.round(b.rootWrapper.width());
        let e = Math.round(b.rootWrapper.height());
        let f = d * c;
        let g = e * c;
        this.u.rootWrapper.setStyleProperty("position", "relative");
        let h = this.u.createElement("canvas");
        h.setStyleProperty("position", "absolute");
        this.u.append(h);
        this.x = truncate(Math.round(f));
        this.w = truncate(Math.round(g));
        h.setAttribute("width", f.toString());
        h.setAttribute("height", g.toString());
        h.setStyleProperty("width", d.toString() + "px");
        h.setStyleProperty("height", e.toString() + "px");
        this.v = h;
        let i = this.u.get2DCanvasContext(this.v);
        this.o = new RenderingContext(new CanvasViewRenderer(), i);
        this.o.ac(this.m);
        this.z();
        this.a = new CanvasGestureDOMEventProxy(this.u.rootWrapper, this.u, false);
        let j = this.a;
        j.onContactStarted = delegateCombine(j.onContactStarted, runOn(this, this.ag));
        let k = this.a;
        k.onContactMoved = delegateCombine(k.onContactMoved, runOn(this, this.af));
        let l = this.a;
        l.onContactCompleted = delegateCombine(l.onContactCompleted, runOn(this, this.ae));
        this.a.ai = (m) => this.j.fp.containsPoint(m);
        this.j.dl(0, 0, d, e);
        this.r = FontUtil.getCurrentFontHeight(this.u, this.m);
        this.j.trackDirty();
    }
    ae(a, b) {
        this.j.df(a);
    }
    af(a, b) {
        this.j.dg(a);
    }
    ag(a, b) {
        this.j.af(a);
    }
    z() {
        if (this.a != null) {
            let a = this.a;
            a.onContactStarted = delegateRemove(a.onContactStarted, runOn(this, this.ag));
            let b = this.a;
            b.onContactMoved = delegateRemove(b.onContactMoved, runOn(this, this.af));
            let c = this.a;
            c.onContactCompleted = delegateRemove(c.onContactCompleted, runOn(this, this.ae));
            this.a.ai = null;
            this.a.an();
        }
    }
    ao() {
    }
    al() {
        let a = Math.round(this.u.rootWrapper.width());
        let b = Math.round(this.u.rootWrapper.height());
        this.j.dl(0, 0, a, b);
        if (this.a != null) {
            this.a.bc = this.j.fr;
        }
    }
    ai() {
    }
    n() {
        return ((() => {
            let $ret = new FontInfo();
            $ret.n = "Verdana";
            $ret.d = 10;
            return $ret;
        })());
    }
    av(a, b, c) {
        if (a.ak != b) {
            a.ak = b;
        }
        if (this.l != c) {
            this.l = c;
            this.m = this.l;
            this.r = FontUtil.getCurrentFontHeight(this.u, this.m);
            this.o.ac(this.l);
            this.j.trackDirty();
        }
    }
    ab() {
        if (this.k != 3) {
            this.k = 3;
            this.u.rootWrapper.setStyleProperty("cursor", "move");
        }
    }
    ad() {
        if (this.k != 2) {
            this.k = 2;
            this.u.rootWrapper.setStyleProperty("cursor", "ns-resize");
        }
    }
    aa() {
        if (this.k != 0) {
            this.k = 0;
            this.u.rootWrapper.setStyleProperty("cursor", "inherit");
        }
    }
    ac() {
        if (this.k != 1) {
            this.k = 1;
            this.u.rootWrapper.setStyleProperty("cursor", "ew-resize");
        }
    }
    aw(a) {
        let b = this.r;
        let c = this.o.f(a.ak);
        return new Size(1, c, b);
    }
    am() {
        this.s = this.j.a5;
        this.ak();
    }
}
ZoomSliderView.$t = markType(ZoomSliderView, 'ZoomSliderView');
export class ZoomSlider extends Base {
    constructor() {
        super();
        this.b = null;
        this.a = null;
        this.c = null;
        this.g = null;
        this.propertyChanged = null;
        this.bq = 500;
        this.ay = 1;
        this.a0 = NaN;
        this.ah = 1;
        this.resolvingAxisValue = null;
        this.fo = new Rect(0, 0, 0, 1, 1);
        this.x = false;
        this.ag = false;
        this.windowRectChanged = null;
        this.i = 0;
        this.h = 0;
        this.fn = null;
        this.fm = null;
        this.ft = new Thickness(1, 5, 5, 5, 5);
        this.fr = null;
        this.fp = null;
        this.fq = null;
        this.az = 1E-05;
        this.a2 = 0;
        this.am = 0;
        this.a4 = 5;
        this.a3 = 5;
        this.ai = 16;
        this.d = 0;
        this.ev = null;
        this.aw = 1;
        this.aq = 1;
        this.en = null;
        this.ew = null;
        this.eo = null;
        this.ex = null;
        this.ep = null;
        this.ax = 10;
        this.ar = 10;
        this.av = 22;
        this.ap = 22;
        this.et = null;
        this.eu = null;
        this.au = 1;
        this.el = null;
        this.em = null;
        this.ao = 1;
        this.eg = null;
        this.eh = null;
        this.aj = 0;
        this.ey = null;
        this.ez = null;
        this.a1 = 1;
        this.e0 = null;
        this.eq = null;
        this.es = null;
        this.er = null;
        this.at = 1;
        this.ei = null;
        this.ek = null;
        this.ej = null;
        this.an = 1;
        this.r = false;
        this.m = null;
        this.o = null;
        this.k = null;
        this.al = 0;
        this.ak = 0;
        this.as = 0;
        this.q = false;
        this.h = 6;
        this.fr = Rect.empty;
        this.fp = Rect.empty;
        this.fq = Rect.empty;
        this.g = new ZoomSliderView(this);
        this.m = this.g.n();
        this.b = new TrackThumb();
        this.b.d = 0;
        this.a = new TrackThumb();
        this.a.d = 1;
        this.c = new TrackThumbRange();
        this.c.f = this.b;
        this.c.e = this.a;
        this.b.i = 0;
        this.a.i = 1;
        this.c.r = 1;
        this.c.n = 0.5;
        this.c.m = 0;
        this.c.l = 1;
        this.b.f = this.c;
        this.a.f = this.c;
        this.c.f = this.b;
        this.c.e = this.a;
        this.b.b = this;
        this.a.b = this;
        this.c.b = this;
        this.k = new DoubleAnimator(0, 1, this.br);
        let a = this.k;
        a.propertyChanged = delegateCombine(a.propertyChanged, runOn(this, this.c3));
        this.k.b = EasingFunctions.exponentialEase;
    }
    get br() {
        return this.bq;
    }
    set br(a) {
        let b = this.bq;
        this.bq = a;
        if (b != this.bq) {
            this.dj("PanTransitionDuration", b, this.bq);
        }
    }
    get bj() {
        return this.ay;
    }
    set bj(a) {
        let b = this.ay;
        this.ay = a;
        if (b != this.ay) {
            this.dj("MaxZoomWidth", b, this.ay);
        }
    }
    get bl() {
        return this.a0;
    }
    set bl(a) {
        let b = this.a0;
        this.a0 = a;
        if (b != this.a0) {
            this.dj("PixelScalingRatio", b, this.a0);
        }
    }
    get a5() {
        return this.ah;
    }
    set a5(a) {
        let b = this.ah;
        this.ah = a;
        if (b != this.ah) {
            this.dj("ActualPixelScalingRatio", b, this.ah);
        }
    }
    dl(a, b, c, d) {
        this.fr = new Rect(0, a, b, c, d);
        if (this.e == 0) {
            let e = Math.max(0, this.fr.width - (this.bn + this.a8));
            this.fp = new Rect(0, this.fr.left + this.bn, this.fr.top, e, this.fr.height);
            let f = Math.max(0, this.fp.width - (this.bp + this.bo));
            this.fq = new Rect(0, this.fp.left + this.bp, this.fp.top, f, this.fp.height - this.a6);
        }
        else {
            this.fp = new Rect(0, this.fr.left, this.fr.top + this.bn, this.fr.width, this.fr.height - (this.bn + this.a8));
            this.fq = new Rect(0, this.fp.left, this.fp.top + this.bp, this.fp.width - this.a6, this.fp.height - (this.bp + this.bo));
        }
        this.trackDirty();
    }
    ee() {
        if (!this.q) {
            return;
        }
        this.q = false;
        let a = this.g.i;
        let b = this.g.h;
        let c = this.g.c;
        let d = this.g.b;
        let e = this.g.e;
        let f = this.g.d;
        if (this.ac) {
            let g = this.bt();
            let h = this.bs();
            this.d0(g, this.b);
            this.dz(h, this.b.i);
            this.d0(h, this.a);
            this.dz(h, this.a.i);
        }
        else {
            this.ed(a, this.b);
            this.ed(b, this.a);
        }
        if (this.aa) {
        }
        else {
            this.eb(c, this.c);
        }
        if (this.z) {
        }
        else {
            this.dx(d);
        }
        if (this.ab) {
        }
        else {
            this.d7(e);
            this.d2(f);
        }
        this.ef();
    }
    get fs() {
        return this.fo;
    }
    set fs(a) {
        let b = this.fo;
        this.fo = a;
        if (Rect.l_op_Inequality(b, this.fo)) {
            this.dj("WindowRect", b, this.fo);
        }
    }
    ef() {
        let a = this.fs.width;
        let b = this.fs.height;
        let c = this.fs.left;
        let d = this.fs.top;
        let e = c;
        let f = d;
        let g = a;
        let h = b;
        if (this.e == 0) {
            e = this.b.i;
            g = this.c.r;
        }
        else {
            f = this.b.i;
            h = this.c.r;
        }
        if (e != c || f != d || g != a || h != b) {
            this.x = true;
            let i = this.fs;
            this.fs = new Rect(0, e, f, g, h);
            this.dn(i, this.fs);
            this.x = false;
        }
    }
    dn(a, b) {
        if (this.ag) {
            return;
        }
        if (this.windowRectChanged != null) {
            this.windowRectChanged(this, new RectChangedEventArgs(a, b));
        }
    }
    df(a) {
        if (this.h != 6) {
            this.g.ao();
        }
        this.i = this.j(a);
        this.h = 6;
        this.c6();
        this.c7();
    }
    c7() {
        this.g.g.isVisible = false;
        this.g.ak();
    }
    c6() {
        this.g.f.isVisible = false;
        this.g.ak();
    }
    dh(a, b) {
        this.i = this.j(a);
    }
    af(a) {
        this.i = this.j(a);
        if (this.i == 6) {
            return false;
        }
        this.c4();
        if (this.ad(this.i)) {
            this.dv(a, this.i);
            this.g.ai();
            return true;
        }
        if (this.y(this.i)) {
            return this.ae(a, this.i);
        }
        return false;
    }
    ae(a, b) {
        switch (b) {
            case 5:
            case 2:
            case 3:
                this.dq(a);
                return true;
        }
        return false;
    }
    dq(a) {
        let b;
        if (this.e == 0) {
            b = (a.x - this.fq.left) / this.fq.width;
        }
        else {
            b = (a.y - this.fq.top) / this.fq.height;
        }
        if (b < 0 || b > 1) {
            return;
        }
        if (b + (this.c.r / 2) > 1) {
            b = 1 - (this.c.r / 2);
        }
        if (b - (this.c.r / 2) < 0) {
            b = (this.c.r / 2);
        }
        if (this.br > 0) {
            this.dw(b);
        }
        else {
            this.c.n = b;
        }
    }
    dv(a, b) {
        this.h = b;
        this.fn = a;
        this.fm = a;
    }
    ad(a) {
        switch (a) {
            case 0:
            case 1:
            case 4: return true;
        }
        return false;
    }
    y(a) {
        switch (a) {
            case 5:
            case 2:
            case 3: return true;
        }
        return false;
    }
    dg(a) {
        this.i = this.j(a);
        if (this.h != 6) {
            if (this.e == 0) {
                this.db(a);
            }
            else {
                this.dk(a);
            }
        }
        else {
            this.c8();
        }
    }
    c8() {
        if (this.i == 4) {
            this.g.ab();
        }
        else if (this.i == 0 || this.i == 1) {
            if (this.e == 1) {
                this.g.ad();
            }
            else {
                this.g.ac();
            }
        }
        else {
            this.g.aa();
        }
    }
    dk(a) {
        let b = a.y - this.fm.y;
        b = b / this.fq.height;
        this.fm = a;
        switch (this.h) {
            case 0:
                this.b.j(b);
                this.d9(this.b);
                this.c9();
                break;
            case 1:
                this.a.j(b);
                this.d4(this.a);
                this.c9();
                break;
            case 4:
                this.c.o(b);
                this.d9(this.b);
                this.d4(this.a);
                this.c9();
                break;
        }
    }
    d4(a) {
        let b;
        let c;
        if (this.e == 0) {
            b = a.i;
            c = a.i * this.fq.width + this.fq.left;
            if (this.r) {
                let d = b;
                if (this.resolvingAxisValue != null) {
                    let e = ((() => {
                        let $ret = new ZoomSliderResolvingAxisValueEventArgs();
                        $ret.position = b;
                        $ret.value = d;
                        return $ret;
                    })());
                    this.resolvingAxisValue(this, e);
                    d = e.value;
                }
                this.dt(c, this.fq.top, d);
            }
        }
        else {
            b = a.i;
            c = a.i * this.fq.height + this.fq.top;
            if (this.r) {
                let f = b;
                if (this.resolvingAxisValue != null) {
                    let g = ((() => {
                        let $ret = new ZoomSliderResolvingAxisValueEventArgs();
                        $ret.position = b;
                        $ret.value = f;
                        return $ret;
                    })());
                    this.resolvingAxisValue(this, g);
                    f = g.value;
                }
                this.dt(c, this.fq.top, f);
            }
        }
    }
    dt(a, b, c) {
        let d = this.g.f;
        d.isVisible = true;
        let e = "";
        if (c != null) {
            e = c.toString();
        }
        this.g.av(d.calloutText, e, this.n());
        let f = this.g.aw(d.calloutText);
        let g = this.fu();
        f = new Size(1, f.width + g.c + g.d, f.height + g.e + g.b);
        let h = this.a.i * this.fq.width + this.fq.left;
        let i = this.b.i * this.fq.width + this.fq.left;
        let j = 0;
        let k = 0;
        if ((this.fr.right - h) <= f.width) {
            j = h - f.width;
        }
        else {
            j = h;
        }
        if (j < i) {
            k = this.fq.top;
        }
        else {
            k = this.fq.bottom - f.height;
        }
        d.width = f.width;
        d.height = f.height;
        d.translateX = j;
        d.translateY = k;
        d.textTranslateX = j + g.c;
        d.textTranslateY = k + g.e;
    }
    d9(a) {
        let b;
        let c;
        if (this.e == 0) {
            b = a.i;
            c = a.i * this.fq.width + this.fq.left;
            if (this.r) {
                let d = b;
                if (this.resolvingAxisValue != null) {
                    let e = ((() => {
                        let $ret = new ZoomSliderResolvingAxisValueEventArgs();
                        $ret.position = b;
                        $ret.value = d;
                        return $ret;
                    })());
                    this.resolvingAxisValue(this, e);
                    d = e.value;
                }
                this.du(c, this.fq.top, d);
            }
        }
        else {
            b = a.i;
            c = a.i * this.fq.height + this.fq.top;
            if (this.r) {
                let f = b;
                if (this.resolvingAxisValue != null) {
                    let g = ((() => {
                        let $ret = new ZoomSliderResolvingAxisValueEventArgs();
                        $ret.position = b;
                        $ret.value = f;
                        return $ret;
                    })());
                    this.resolvingAxisValue(this, g);
                    f = g.value;
                }
                this.du(c, this.fq.top, f);
            }
        }
    }
    fu() {
        return this.ft;
    }
    du(a, b, c) {
        let d = this.g.g;
        d.isVisible = true;
        let e = "";
        if (c != null) {
            e = c.toString();
        }
        this.g.av(d.calloutText, e, this.n());
        let f = this.g.aw(d.calloutText);
        let g = this.fu();
        f = new Size(1, f.width + g.c + g.d, f.height + g.e + g.b);
        let h = this.b.i * this.fq.width + this.fq.left;
        let i = this.a.i * this.fq.width + this.fq.left;
        let j = 0;
        let k = 0;
        if (h >= f.width) {
            j = h - f.width;
        }
        else {
            j = h;
        }
        if (j > i) {
            k = this.fq.top;
        }
        else {
            k = this.fq.bottom - f.height;
        }
        d.width = f.width;
        d.height = f.height;
        d.translateX = j;
        d.translateY = k;
        d.textTranslateX = j + g.c;
        d.textTranslateY = k + g.e;
    }
    n() {
        if (this.o != null) {
            return this.o;
        }
        return this.m;
    }
    db(a) {
        let b = a.x - this.fm.x;
        this.fm = a;
        b = b / this.fq.width;
        switch (this.h) {
            case 0:
                this.b.j(b);
                this.d9(this.b);
                this.c9();
                break;
            case 1:
                this.a.j(b);
                this.d4(this.a);
                this.c9();
                break;
            case 4:
                this.c.o(b);
                this.d9(this.b);
                this.d4(this.a);
                this.c9();
                break;
        }
    }
    dd(a) {
        this.i = this.j(a);
    }
    de(a) {
        this.i = this.j(a);
    }
    j(a) {
        if (this.w(a, this.b, this.g.i)) {
            return 0;
        }
        if (this.w(a, this.a, this.g.h)) {
            return 1;
        }
        if (this.v(a, this.c, this.g.c)) {
            return 4;
        }
        if (this.u(a, this.b)) {
            return 2;
        }
        if (this.t(a, this.a)) {
            return 3;
        }
        if (this.s(a)) {
            return 5;
        }
        return 6;
    }
    s(a) {
        if (this.e == 0) {
            if (a.y > this.fq.bottom && a.x >= this.fq.left && a.x <= this.fq.right && a.y <= this.fp.bottom) {
                return true;
            }
        }
        else {
            if (a.x > this.fq.right && a.y >= this.fq.top && a.y <= this.fq.bottom && a.x <= this.fp.right) {
                return true;
            }
        }
        return false;
    }
    v(a, b, c) {
        if (this.e == 0) {
            let d = (b.n) * this.fq.width + this.fq.left;
            let e = d - c.width / 2;
            let f = d + c.width / 2;
            if (a.y >= this.fp.top && a.y <= this.fp.bottom && a.x >= e && a.x <= f) {
                return true;
            }
        }
        else {
            let g = (b.n) * this.fq.height + this.fq.top;
            let h = g - c.height / 2;
            let i = g + c.height / 2;
            if (a.x >= this.fp.left && a.x <= this.fp.right && a.y >= h && a.y <= i) {
                return true;
            }
        }
        return false;
    }
    u(a, b) {
        if (this.e == 0) {
            let c = b.i * this.fq.width + this.fq.left;
            if (a.y >= this.fp.top && a.x >= this.fp.left && a.x <= this.fp.right && a.x <= c && a.y <= this.fq.bottom) {
                return true;
            }
        }
        else {
            let d = b.i * this.fq.height + this.fq.top;
            if (a.y >= this.fp.top && a.x >= this.fp.left && a.x <= this.fp.right && a.y <= d && a.x <= this.fq.right) {
                return true;
            }
        }
        return false;
    }
    t(a, b) {
        if (this.e == 0) {
            let c = b.i * this.fq.width + this.fq.left;
            if (a.y >= this.fp.top && a.x >= this.fp.left && a.x <= this.fp.right && a.x >= c && a.y <= this.fq.bottom) {
                return true;
            }
        }
        else {
            let d = b.i * this.fq.height + this.fq.top;
            if (a.y >= this.fp.top && a.y <= this.fp.bottom && a.x >= this.fp.left && a.x <= this.fp.right && a.y >= d && a.x <= this.fq.right) {
                return true;
            }
        }
        return false;
    }
    w(a, b, c) {
        if (this.e == 0) {
            let d = b.i * this.fq.width + this.fq.left;
            let e = this.fq.top + this.fq.height / 2;
            let f = new Rect(0, d - c.width / 2, e - c.height / 2, c.width, c.height);
            if (f.containsPoint(a)) {
                return true;
            }
        }
        else {
            let g = b.i * this.fq.height + this.fq.top;
            let h = this.fq.left + this.fq.width / 2;
            let i = new Rect(0, h - c.width / 2, g - c.height / 2, c.width, c.height);
            if (i.containsPoint(a)) {
                return true;
            }
        }
        return false;
    }
    eb(a, b) {
        if (this.e == 0) {
            a.orientation = this.e;
            a.width = Math.max(15, this.fq.width * b.r);
            a.height = this.a6;
            a.translateX = (this.fq.left + this.fq.width * b.n);
            a.translateY = this.fq.bottom + this.a6 / 2;
        }
        else {
            a.orientation = this.e;
            a.height = Math.max(15, this.fq.height * b.r);
            a.width = this.a6;
            a.translateY = (this.fq.top + this.fq.height * b.n);
            a.translateX = this.fq.right + this.a6 / 2;
        }
    }
    d2(a) {
        let b = this.a.i;
        if (this.e == 0) {
            let c = this.fq.left + b * this.fq.width;
            a.height = this.fq.height;
            a.translateX = c + (this.fp.right - c) / 2;
            a.translateY = this.fq.top + this.fq.height / 2;
            a.width = (this.fp.right - c);
            a.orientation = 1;
        }
        else {
            let d = this.fq.top + b * this.fq.height;
            a.width = this.fq.width;
            a.translateY = d + (this.fp.bottom - d) / 2;
            a.translateX = this.fp.left + this.fq.width / 2;
            a.height = (this.fp.bottom - d);
            a.orientation = 3;
        }
    }
    d7(a) {
        let b = this.b.i;
        if (this.e == 0) {
            let c = this.fq.left + b * this.fq.width;
            a.height = this.fq.height;
            a.translateX = c - (c - this.fp.left) / 2;
            a.translateY = this.fq.top + this.fq.height / 2;
            a.width = c - this.fp.left;
            a.orientation = 0;
        }
        else {
            let d = this.fq.top + b * this.fq.height;
            a.width = this.fq.width;
            a.translateY = d - (d - this.fp.top) / 2;
            a.translateX = this.fp.left + this.fq.width / 2;
            a.height = d - this.fp.top;
            a.orientation = 2;
        }
    }
    dx(a) {
        if (this.e == 0) {
            a.height = this.a6;
            a.width = this.fq.width;
            a.translateX = this.fq.left + this.fq.width / 2;
            a.translateY = this.fp.bottom - this.a6 / 2;
        }
        else {
            a.width = this.a6;
            a.height = this.fq.height;
            a.translateY = this.fq.top + this.fq.height / 2;
            a.translateX = this.fp.right - this.a6 / 2;
        }
    }
    ed(a, b) {
        if (this.e == 0) {
            a.orientation = this.e;
            a.translateX = this.fq.left + this.fq.width * b.i;
            a.translateY = this.fq.top + this.fq.height / 2;
        }
        else {
            a.orientation = this.e;
            a.translateY = this.fq.top + this.fq.height * b.i;
            a.translateX = this.fq.left + this.fq.width / 2;
        }
    }
    d0(a, b) {
    }
    dz(a, b) {
    }
    bs() {
        throw new NotImplementedException(0);
    }
    bt() {
        throw new NotImplementedException(0);
    }
    get bk() {
        return this.az;
    }
    set bk(a) {
        let b = this.az;
        this.az = a;
        if (b != this.az) {
            this.dj("MinZoomWidth", b, this.az);
        }
    }
    get bn() {
        return this.a2;
    }
    set bn(a) {
        let b = this.a2;
        this.a2 = a;
        if (b != this.a2) {
            this.dj("StartInset", b, this.a2);
        }
    }
    get a8() {
        return this.am;
    }
    set a8(a) {
        let b = this.am;
        this.am = a;
        if (b != this.am) {
            this.dj("EndInset", b, this.am);
        }
    }
    get bp() {
        return this.a4;
    }
    set bp(a) {
        let b = this.a4;
        this.a4 = a;
        if (b != this.a4) {
            this.dj("TrackStartInset", b, this.a4);
        }
    }
    get bo() {
        return this.a3;
    }
    set bo(a) {
        let b = this.a3;
        this.a3 = a;
        if (b != this.a3) {
            this.dj("TrackEndInset", b, this.a3);
        }
    }
    get a6() {
        return this.ai;
    }
    set a6(a) {
        let b = this.ai;
        this.ai = a;
        if (b != this.ai) {
            this.dj("BarExtent", b, this.ai);
        }
    }
    get e() {
        return this.d;
    }
    set e(a) {
        let b = this.d;
        this.d = a;
        if (b != this.d) {
            this.dj("Orientation", enumGetBox(ZoomSliderOrientation_$type, b), enumGetBox(ZoomSliderOrientation_$type, this.d));
        }
    }
    get fg() {
        return this.ev;
    }
    set fg(a) {
        let b = this.ev;
        this.ev = a;
        if (b != this.ev) {
            this.dj("LowerThumbBrush", b, this.ev);
        }
    }
    get bh() {
        return this.aw;
    }
    set bh(a) {
        let b = this.aw;
        this.aw = a;
        if (b != this.aw) {
            this.dj("LowerThumbStrokeThickness", b, this.aw);
        }
    }
    get bc() {
        return this.aq;
    }
    set bc(a) {
        let b = this.aq;
        this.aq = a;
        if (b != this.aq) {
            this.dj("HigherThumbStrokeThickness", b, this.aq);
        }
    }
    get e8() {
        return this.en;
    }
    set e8(a) {
        let b = this.en;
        this.en = a;
        if (b != this.en) {
            this.dj("HigherThumbBrush", b, this.en);
        }
    }
    get fh() {
        return this.ew;
    }
    set fh(a) {
        let b = this.ew;
        this.ew = a;
        if (b != this.ew) {
            this.dj("LowerThumbOutline", b, this.ew);
        }
    }
    get e9() {
        return this.eo;
    }
    set e9(a) {
        let b = this.eo;
        this.eo = a;
        if (b != this.eo) {
            this.dj("HigherThumbOutline", b, this.eo);
        }
    }
    get fi() {
        return this.ex;
    }
    set fi(a) {
        let b = this.ex;
        this.ex = a;
        if (b != this.ex) {
            this.dj("LowerThumbRidgesBrush", b, this.ex);
        }
    }
    get fa() {
        return this.ep;
    }
    set fa(a) {
        let b = this.ep;
        this.ep = a;
        if (b != this.ep) {
            this.dj("HigherThumbRidgesBrush", b, this.ep);
        }
    }
    get bi() {
        return this.ax;
    }
    set bi(a) {
        let b = this.ax;
        this.ax = a;
        if (b != this.ax) {
            this.dj("LowerThumbWidth", b, this.ax);
        }
    }
    get bd() {
        return this.ar;
    }
    set bd(a) {
        let b = this.ar;
        this.ar = a;
        if (b != this.ar) {
            this.dj("HigherThumbWidth", b, this.ar);
        }
    }
    get bg() {
        return this.av;
    }
    set bg(a) {
        let b = this.av;
        this.av = a;
        if (b != this.av) {
            this.dj("LowerThumbHeight", b, this.av);
        }
    }
    get bb() {
        return this.ap;
    }
    set bb(a) {
        let b = this.ap;
        this.ap = a;
        if (b != this.ap) {
            this.dj("HigherThumbHeight", b, this.ap);
        }
    }
    get fe() {
        return this.et;
    }
    set fe(a) {
        let b = this.et;
        this.et = a;
        if (b != this.et) {
            this.dj("LowerShadeBrush", b, this.et);
        }
    }
    get ff() {
        return this.eu;
    }
    set ff(a) {
        let b = this.eu;
        this.eu = a;
        if (b != this.eu) {
            this.dj("LowerShadeOutline", b, this.eu);
        }
    }
    destroy() {
        this.provideContainer(null);
    }
    get bf() {
        return this.au;
    }
    set bf(a) {
        let b = this.au;
        this.au = a;
        if (b != this.au) {
            this.dj("LowerShadeStrokeThickness", b, this.au);
        }
    }
    get e6() {
        return this.el;
    }
    set e6(a) {
        let b = this.el;
        this.el = a;
        if (b != this.el) {
            this.dj("HigherShadeBrush", b, this.el);
        }
    }
    get e7() {
        return this.em;
    }
    set e7(a) {
        let b = this.em;
        this.em = a;
        if (b != this.em) {
            this.dj("HigherShadeOutline", b, this.em);
        }
    }
    get ba() {
        return this.ao;
    }
    set ba(a) {
        let b = this.ao;
        this.ao = a;
        if (b != this.ao) {
            this.dj("HigherShadeStrokeThickness", b, this.ao);
        }
    }
    get e1() {
        return this.eg;
    }
    set e1(a) {
        let b = this.eg;
        this.eg = a;
        if (b != this.eg) {
            this.dj("BarBrush", b, this.eg);
        }
    }
    get e2() {
        return this.eh;
    }
    set e2(a) {
        let b = this.eh;
        this.eh = a;
        if (b != this.eh) {
            this.dj("BarOutline", b, this.eh);
        }
    }
    get a7() {
        return this.aj;
    }
    set a7(a) {
        let b = this.aj;
        this.aj = a;
        if (b != this.aj) {
            this.dj("BarStrokeThickness", b, this.aj);
        }
    }
    get fj() {
        return this.ey;
    }
    set fj(a) {
        let b = this.ey;
        this.ey = a;
        if (b != this.ey) {
            this.dj("RangeThumbBrush", b, this.ey);
        }
    }
    get fk() {
        return this.ez;
    }
    set fk(a) {
        let b = this.ez;
        this.ez = a;
        if (b != this.ez) {
            this.dj("RangeThumbOutline", b, this.ez);
        }
    }
    get bm() {
        return this.a1;
    }
    set bm(a) {
        let b = this.a1;
        this.a1 = a;
        if (b != this.a1) {
            this.dj("RangeThumbStrokeThickness", b, this.a1);
        }
    }
    get fl() {
        return this.e0;
    }
    set fl(a) {
        let b = this.e0;
        this.e0 = a;
        if (b != this.e0) {
            this.dj("RangeThumbRidgesBrush", b, this.e0);
        }
    }
    get fb() {
        return this.eq;
    }
    set fb(a) {
        let b = this.eq;
        this.eq = a;
        if (b != this.eq) {
            this.dj("LowerCalloutBrush", b, this.eq);
        }
    }
    get fd() {
        return this.es;
    }
    set fd(a) {
        let b = this.es;
        this.es = a;
        if (b != this.es) {
            this.dj("LowerCalloutTextColor", b, this.es);
        }
    }
    get fc() {
        return this.er;
    }
    set fc(a) {
        let b = this.er;
        this.er = a;
        if (b != this.er) {
            this.dj("LowerCalloutOutline", b, this.er);
        }
    }
    get be() {
        return this.at;
    }
    set be(a) {
        let b = this.at;
        this.at = a;
        if (b != this.at) {
            this.dj("LowerCalloutStrokeThickness", b, this.at);
        }
    }
    get e3() {
        return this.ei;
    }
    set e3(a) {
        let b = this.ei;
        this.ei = a;
        if (b != this.ei) {
            this.dj("HigherCalloutBrush", b, this.ei);
        }
    }
    get e5() {
        return this.ek;
    }
    set e5(a) {
        let b = this.ek;
        this.ek = a;
        if (b != this.ek) {
            this.dj("HigherCalloutTextColor", b, this.ek);
        }
    }
    get e4() {
        return this.ej;
    }
    set e4(a) {
        let b = this.ej;
        this.ej = a;
        if (b != this.ej) {
            this.dj("HigherCalloutOutline", b, this.ej);
        }
    }
    get a9() {
        return this.an;
    }
    set a9(a) {
        let b = this.an;
        this.an = a;
        if (b != this.an) {
            this.dj("HigherCalloutStrokeThickness", b, this.an);
        }
    }
    get ac() {
        return false;
    }
    get aa() {
        return false;
    }
    get z() {
        return false;
    }
    get ab() {
        return false;
    }
    dj(a, b, c) {
        this.dr(a, b, c);
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    }
    dr(a, b, c) {
        switch (a) {
            case "PixelScalingRatio":
                this.a5 = this.bl;
                break;
            case "ActualPixelScalingRatio":
                if (this.g != null) {
                    this.g.am();
                }
                break;
            case "Orientation":
                this.di();
                this.trackDirty();
                break;
            case "TrackStartInset":
            case "TrackEndInset":
            case "StartInset":
            case "EndInset":
                this.dc();
                this.trackDirty();
                break;
            case "MaxZoomWidth":
            case "MinZoomWidth":
                this.dp();
                this.trackDirty();
                break;
            case "WindowRect":
                if (!this.x) {
                    this.ag = true;
                    this.dm();
                    this.trackDirty();
                    this.c9();
                    this.ag = false;
                }
                break;
            case "LowerThumbBrush":
            case "LowerThumbOutline":
            case "LowerThumbRidgesBrush":
            case "LowerThumbStrokeThickness":
                this.ea();
                this.g.ak();
                break;
            case "LowerThumbWidth":
            case "LowerThumbHeight":
                this.g.i.width = this.bi;
                this.g.i.height = this.bg;
                this.trackDirty();
                break;
            case "HigherThumbBrush":
            case "HigherThumbOutline":
            case "HigherThumbRidgesBrush":
            case "HigherThumbStrokeThickness":
                this.d5();
                this.g.ak();
                break;
            case "HigherThumbWidth":
            case "HigherThumbHeight":
                this.g.i.width = this.bi;
                this.g.i.height = this.bg;
                this.trackDirty();
                break;
            case "LowerShadeBrush":
            case "LowerShadeOutline":
            case "LowerShadeStrokeThickness":
                this.d8();
                this.g.ak();
                break;
            case "HigherShadeBrush":
            case "HigherShadeOutline":
            case "HigherShadeStrokeThickness":
                this.d3();
                this.g.ak();
                break;
            case "RangeThumbBrush":
            case "RangeThumbOutline":
            case "RangeThumbRidgesBrush":
            case "RangeThumbStrokeThickness":
                this.ec();
                this.g.ak();
                break;
            case "BarBrush":
            case "BarOutline":
            case "BarStrokeThickness":
                this.dy();
                this.g.ak();
                break;
            case "LowerCalloutBrush":
            case "LowerCalloutOutline":
            case "LowerCalloutTextColor":
            case "LowerCalloutStrokeThickness":
                this.d6();
                this.g.ak();
                break;
            case "HigherCalloutBrush":
            case "HigherCalloutOutline":
            case "HigherCalloutTextColor":
            case "HigherCalloutStrokeThickness":
                this.d1();
                this.g.ak();
                break;
        }
    }
    dy() {
        let a = this.g.b;
        if (this.e1 == null) {
            a.barBox._fill = a.getBarBoxDefaultBrush();
        }
        else {
            a.barBox._fill = this.e1;
        }
        if (this.e2 == null) {
            a.barBox._stroke = a.getBarBoxDefaultOutline();
        }
        else {
            a.barBox._stroke = this.e2;
        }
        if (this.a7 == NaN) {
            a.barBox.ac = a.getBarBoxDefaultStrokeThickness();
        }
        else {
            a.barBox.ac = this.a7;
        }
    }
    d6() {
        let a = this.g.g;
        if (this.fb == null) {
            a.calloutBox._fill = a.getCalloutBoxDefaultBrush();
        }
        else {
            a.calloutBox._fill = this.fb;
        }
        if (this.fc == null) {
            a.calloutBox._stroke = a.getCalloutBoxDefaultStroke();
        }
        else {
            a.calloutBox._stroke = this.fc;
        }
        if (this.fd == null) {
            a.calloutText.am = a.getCalloutTextDefaultBrush();
        }
        else {
            a.calloutText.am = this.fd;
        }
        if (this.be == NaN) {
            a.calloutBox.ac = a.getCalloutBoxDefaultStrokeThickness();
        }
        else {
            a.calloutBox.ac = this.be;
        }
    }
    d1() {
        let a = this.g.f;
        if (this.e3 == null) {
            a.calloutBox._fill = a.getCalloutBoxDefaultBrush();
        }
        else {
            a.calloutBox._fill = this.e3;
        }
        if (this.e4 == null) {
            a.calloutBox._stroke = a.getCalloutBoxDefaultStroke();
        }
        else {
            a.calloutBox._stroke = this.e4;
        }
        if (this.e5 == null) {
            a.calloutText.am = a.getCalloutTextDefaultBrush();
        }
        else {
            a.calloutText.am = this.e5;
        }
        if (this.a9 == NaN) {
            a.calloutBox.ac = a.getCalloutBoxDefaultStrokeThickness();
        }
        else {
            a.calloutBox.ac = this.a9;
        }
    }
    ea() {
        let a = this.g.i;
        if (this.fg == null) {
            a.thumbBox._fill = a.getThumbBoxDefaultBrush();
        }
        else {
            a.thumbBox._fill = this.fg;
        }
        if (this.fh == null) {
            a.thumbBox._stroke = a.getThumbBoxDefaultStroke();
        }
        else {
            a.thumbBox._stroke = this.fh;
        }
        if (this.fi == null) {
            a.thumbRidges._stroke = a.getThumbRidgesDefaultStroke();
        }
        else {
            a.thumbRidges._stroke = this.fi;
        }
        if (this.bh == NaN) {
            a.thumbBox.ac = a.getThumbBoxDefaultStrokeThickness();
        }
        else {
            a.thumbBox.ac = this.bh;
        }
    }
    ec() {
        let a = this.g.c;
        if (this.fj == null) {
            a.thumbBox._fill = a.getThumbBoxDefaultBrush();
        }
        else {
            a.thumbBox._fill = this.fj;
        }
        if (this.fk == null) {
            a.thumbBox._stroke = a.getThumbBoxDefaultStroke();
        }
        else {
            a.thumbBox._stroke = this.fk;
        }
        if (this.fl == null) {
            a.thumbRidges._stroke = a.getThumbRidgesDefaultStroke();
        }
        else {
            a.thumbRidges._stroke = this.fl;
        }
        if (this.bm == NaN) {
            a.thumbBox.ac = a.getThumbBoxDefaultStrokeThickness();
        }
        else {
            a.thumbBox.ac = this.bm;
        }
    }
    d8() {
        let a = this.g.e;
        if (this.fe == null) {
            a.shadeBox._fill = a.getShadeBoxDefaultBrush();
        }
        else {
            a.shadeBox._fill = this.fe;
        }
        if (this.ff == null) {
            a.shadeOutline._stroke = a.getShadeOutlineDefaultBrush();
        }
        else {
            a.shadeOutline._stroke = this.ff;
        }
        if (this.bf == NaN) {
            a.shadeOutline.ac = a.getShadeOutlineDefaultStrokeThickness();
        }
        else {
            a.shadeOutline.ac = this.bf;
        }
    }
    d3() {
        let a = this.g.d;
        if (this.e6 == null) {
            a.shadeBox._fill = a.getShadeBoxDefaultBrush();
        }
        else {
            a.shadeBox._fill = this.e6;
        }
        if (this.e7 == null) {
            a.shadeOutline._stroke = a.getShadeOutlineDefaultBrush();
        }
        else {
            a.shadeOutline._stroke = this.e7;
        }
        if (this.ba == NaN) {
            a.shadeOutline.ac = a.getShadeOutlineDefaultStrokeThickness();
        }
        else {
            a.shadeOutline.ac = this.ba;
        }
    }
    d5() {
        let a = this.g.h;
        if (this.e8 == null) {
            a.thumbBox._fill = a.getThumbBoxDefaultBrush();
        }
        else {
            a.thumbBox._fill = this.e8;
        }
        if (this.e9 == null) {
            a.thumbBox._stroke = a.getThumbBoxDefaultStroke();
        }
        else {
            a.thumbBox._stroke = this.e9;
        }
        if (this.fa == null) {
            a.thumbRidges._stroke = a.getThumbRidgesDefaultStroke();
        }
        else {
            a.thumbRidges._stroke = this.fa;
        }
        if (this.bc == NaN) {
            a.thumbBox.ac = a.getThumbBoxDefaultStrokeThickness();
        }
        else {
            a.thumbBox.ac = this.bc;
        }
    }
    dm() {
        if (this.x) {
            return;
        }
        if (this.e == 0) {
            this.b.i = this.fs.left;
            this.a.i = this.fs.right;
            this.c.r = this.fs.width;
            this.c.n = this.fs.left + this.fs.width / 2;
        }
        else {
            this.b.i = this.fs.top;
            this.a.i = this.fs.bottom;
            this.c.r = this.fs.height;
            this.c.n = this.fs.top + this.fs.height / 2;
        }
    }
    dp() {
        this.c.m = this.bk;
        this.c.l = this.bj;
    }
    dc() {
        if (this.fr.isEmpty) {
            return;
        }
        this.dl(this.fr.left, this.fr.top, this.fr.width, this.fr.height);
    }
    di() {
        if (this.e == 0) {
            this.g.i.width = this.bi;
            this.g.i.height = this.bg;
            this.g.h.width = this.bd;
            this.g.h.height = this.bb;
        }
        else {
            this.g.i.height = this.bi;
            this.g.i.width = this.bg;
            this.g.h.height = this.bd;
            this.g.h.width = this.bb;
        }
        if (this.fr.isEmpty) {
            return;
        }
        this.dl(this.fr.left, this.fr.top, this.fr.width, this.fr.height);
    }
    provideContainer(a) {
        this.g.an(a);
    }
    notifySizeChanged() {
        this.g.al();
    }
    get l() {
        return this.k;
    }
    dw(a) {
        this.al = a;
        this.ak = this.c.n;
        this.as = this.ak;
        this.k.v();
    }
    c4() {
        if (this.k.f()) {
            this.k.w();
        }
    }
    c3(a, b) {
        let c = this.k.o;
        let d = this.ak + c * (this.al - this.ak);
        let e = d - this.as;
        this.as = d;
        this.c.o(e);
        if (this.k.f()) {
            this.d9(this.b);
            this.d4(this.a);
            this.c9();
        }
        else {
            this.c7();
            this.c6();
        }
    }
    c9() {
        this.g.ah();
    }
    trackDirty() {
        this.q = true;
        if (this.g == null) {
            return;
        }
        this.g.ak();
    }
}
ZoomSlider.$t = markType(ZoomSlider, 'ZoomSlider', Base.$, [ITrackOwner_$type, INotifyPropertyChanged_$type]);
