{"version":3,"sources":["util/vector.ts"],"names":[],"mappings":"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","file":"vector.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { MapRow, StructRow } from '../vector/row';\nimport { compareArrayLike } from '../util/buffer';\nimport { BigInt, BigIntAvailable } from './compat';\n\n/** @ignore */\ntype RangeLike = { length: number; stride?: number };\n/** @ignore */\ntype ClampThen<T extends RangeLike> = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen<T extends RangeLike> = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex<T extends RangeLike>(source: T, index: number): number;\nexport function clampIndex<T extends RangeLike, N extends ClampThen<T> = ClampThen<T>>(source: T, index: number, then: N): ReturnType<N>;\n/** @ignore */\nexport function clampIndex<T extends RangeLike, N extends ClampThen<T> = ClampThen<T>>(source: T, index: number, then?: N) {\n    const length = source.length;\n    const adjust = index > -1 ? index : (length + (index % length));\n    return then ? then(source, adjust) : adjust;\n}\n\n/** @ignore */\nlet tmp: number;\nexport function clampRange<T extends RangeLike>(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange<T extends RangeLike, N extends ClampRangeThen<T> = ClampRangeThen<T>>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType<N>;\n/** @ignore */\nexport function clampRange<T extends RangeLike, N extends ClampRangeThen<T> = ClampRangeThen<T>>(source: T, begin: number | undefined, end: number | undefined, then?: N) {\n\n    // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n    // clamp between 0 and length, and wrap around on negative indices, e.g.\n    // slice(-1, 5) or slice(5, -1)\n    let { length: len = 0 } = source;\n    let lhs = typeof begin !== 'number' ? 0 : begin;\n    let rhs = typeof end !== 'number' ? len : end;\n    // wrap around on negative start/end positions\n    (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n    (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n    // ensure lhs <= rhs\n    (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n     // ensure rhs <= length\n    (rhs > len) && (rhs = len);\n\n    return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\n\nconst big0 = BigIntAvailable ? BigInt(0) : 0;\nconst isNaNFast = (value: any) => value !== value;\n\n/** @ignore */\nexport function createElementComparator(search: any) {\n    let typeofSearch = typeof search;\n    // Compare primitives\n    if (typeofSearch !== 'object' || search === null) {\n        // Compare NaN\n        if (isNaNFast(search)) {\n            return isNaNFast;\n        }\n        return typeofSearch !== 'bigint'\n            ? (value: any) => value === search\n            : (value: any) => (big0 + value) === search;\n    }\n    // Compare Dates\n    if (search instanceof Date) {\n        const valueOfSearch = search.valueOf();\n        return (value: any) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n    }\n    // Compare TypedArrays\n    if (ArrayBuffer.isView(search)) {\n        return (value: any) => value ? compareArrayLike(search, value) : false;\n    }\n    // Compare Maps and Rows\n    if (search instanceof Map) { return creatMapComparator(search); }\n    // Compare Array-likes\n    if (Array.isArray(search)) { return createArrayLikeComparator(search); }\n    // Compare Vectors\n    if (search instanceof Vector) { return createVectorComparator(search); }\n    // Compare non-empty Objects\n    return createObjectComparator(search);\n}\n\n/** @ignore */\nfunction createArrayLikeComparator(lhs: ArrayLike<any>) {\n    const comparators = [] as ((x: any) => boolean)[];\n    for (let i = -1, n = lhs.length; ++i < n;) {\n        comparators[i] = createElementComparator(lhs[i]);\n    }\n    return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction creatMapComparator(lhs: Map<any, any>) {\n    let i = -1;\n    const comparators = [] as ((x: any) => boolean)[];\n    lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n    return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createVectorComparator(lhs: Vector<any>) {\n    const comparators = [] as ((x: any) => boolean)[];\n    for (let i = -1, n = lhs.length; ++i < n;) {\n        comparators[i] = createElementComparator(lhs.get(i));\n    }\n    return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createObjectComparator(lhs: any) {\n    const keys = Object.keys(lhs);\n    // Only compare non-empty Objects\n    if (keys.length === 0) { return () => false; }\n    const comparators = [] as ((x: any) => boolean)[];\n    for (let i = -1, n = keys.length; ++i < n;) {\n        comparators[i] = createElementComparator(lhs[keys[i]]);\n    }\n    return createSubElementsComparator(comparators, keys);\n}\n\nfunction createSubElementsComparator(comparators: ((x: any) => boolean)[], keys?: Iterable<string>) {\n    return (rhs: any) => {\n        if (!rhs || typeof rhs !== 'object') {\n            return false;\n        }\n        switch (rhs.constructor) {\n            case Array: return compareArray(comparators, rhs);\n            case Map:\n            case MapRow:\n            case StructRow:\n                return compareObject(comparators, rhs, rhs.keys());\n            case Object:\n            case undefined: // support `Object.create(null)` objects\n                return compareObject(comparators, rhs, keys || Object.keys(rhs));\n        }\n        return rhs instanceof Vector ? compareVector(comparators, rhs) : false;\n    };\n}\n\nfunction compareArray(comparators: ((x: any) => boolean)[], arr: any[]) {\n    const n = comparators.length;\n    if (arr.length !== n) { return false; }\n    for (let i = -1; ++i < n;) {\n        if (!(comparators[i](arr[i]))) { return false; }\n    }\n    return true;\n}\n\nfunction compareVector(comparators: ((x: any) => boolean)[], vec: Vector) {\n    const n = comparators.length;\n    if (vec.length !== n) { return false; }\n    for (let i = -1; ++i < n;) {\n        if (!(comparators[i](vec.get(i)))) { return false; }\n    }\n    return true;\n}\n\nfunction compareObject(comparators: ((x: any) => boolean)[], obj: Map<any, any>, keys: Iterable<string>) {\n\n    const lKeyItr = keys[Symbol.iterator]();\n    const rKeyItr = obj instanceof Map ? obj.keys() : Object.keys(obj)[Symbol.iterator]();\n    const rValItr = obj instanceof Map ? obj.values() : Object.values(obj)[Symbol.iterator]();\n\n    let i = 0;\n    let n = comparators.length;\n    let rVal = rValItr.next();\n    let lKey = lKeyItr.next();\n    let rKey = rKeyItr.next();\n\n    for (; i < n && !lKey.done && !rKey.done && !rVal.done;\n         ++i, lKey = lKeyItr.next(), rKey = rKeyItr.next(), rVal = rValItr.next()) {\n        if (lKey.value !== rKey.value || !comparators[i](rVal.value)) {\n            break;\n        }\n    }\n    if (i === n && lKey.done && rKey.done && rVal.done) {\n        return true;\n    }\n    lKeyItr.return && lKeyItr.return();\n    rKeyItr.return && rKeyItr.return();\n    rValItr.return && rValItr.return();\n    return false;\n}\n"]}