/*
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 { List$1 } from "igniteui-angular-core";
import { SliceInfo } from "./SliceInfo";
import { markType } from "igniteui-angular-core";
/**
 * @hidden
 */
export let SliceInfoList = /*@__PURE__*/ (() => {
    class SliceInfoList extends List$1 {
        constructor() {
            super(SliceInfo.$, 0);
        }
        ae() {
            this.aa((a, b) => {
                if (a.j < b.j) {
                    return -1;
                }
                if (a.j > b.j) {
                    return 1;
                }
                return 0;
            });
        }
        af() {
            this.aa((a, b) => {
                if (a.b.aq.y < b.b.aq.y) {
                    return -1;
                }
                if (a.b.aq.y > b.b.aq.y) {
                    return 1;
                }
                return 0;
            });
        }
        ad(a) {
            this.af();
            let b = this.ac((c) => {
                if (a < (c.b.ar.y + c.b.aq.y)) {
                    return -1;
                }
                if (a > (c.b.ao.y + c.b.aq.y)) {
                    return 1;
                }
                else {
                    return 0;
                }
            });
            if (b >= 0) {
                b = (this._inner[b]).j;
            }
            else {
                b = -1;
            }
            this.ae();
            if (b >= 0) {
                return b;
            }
            return -1;
        }
        ac(a) {
            let b = 0;
            let c = this.count - 1;
            while (b <= c) {
                let d = (b + ((c - b) >> 1));
                let e = a(this._inner[d]);
                if (e < 0) {
                    c = d - 1;
                }
                else if (e > 0) {
                    b = d + 1;
                }
                else {
                    return d;
                }
            }
            return ~b;
        }
    }
    SliceInfoList.$t = markType(SliceInfoList, 'SliceInfoList', List$1.$.specialize(SliceInfo.$));
    return SliceInfoList;
})();
