{"version":3,"sources":["jsdelivr-header.js","/npm/grid-index@1.1.0/grid-index.js"],"names":[],"mappings":"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","file":"/npm/grid-index@1.1.0/grid-index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/grid-index@1.1.0/grid-index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nmodule.exports = GridIndex;\n\nvar NUM_PARAMS = 3;\n\nfunction GridIndex(extent, n, padding) {\n    var cells = this.cells = [];\n\n    if (extent instanceof ArrayBuffer) {\n        this.arrayBuffer = extent;\n        var array = new Int32Array(this.arrayBuffer);\n        extent = array[0];\n        n = array[1];\n        padding = array[2];\n\n        this.d = n + 2 * padding;\n        for (var k = 0; k < this.d * this.d; k++) {\n            var start = array[NUM_PARAMS + k];\n            var end = array[NUM_PARAMS + k + 1];\n            cells.push(start === end ?\n                    null :\n                    array.subarray(start, end));\n        }\n        var keysOffset = array[NUM_PARAMS + cells.length];\n        var bboxesOffset = array[NUM_PARAMS + cells.length + 1];\n        this.keys = array.subarray(keysOffset, bboxesOffset);\n        this.bboxes = array.subarray(bboxesOffset);\n\n        this.insert = this._insertReadonly;\n\n    } else {\n        this.d = n + 2 * padding;\n        for (var i = 0; i < this.d * this.d; i++) {\n            cells.push([]);\n        }\n        this.keys = [];\n        this.bboxes = [];\n    }\n\n    this.n = n;\n    this.extent = extent;\n    this.padding = padding;\n    this.scale = n / extent;\n    this.uid = 0;\n\n    var p = (padding / n) * extent;\n    this.min = -p;\n    this.max = extent + p;\n}\n\n\nGridIndex.prototype.insert = function(key, x1, y1, x2, y2) {\n    this._forEachCell(x1, y1, x2, y2, this._insertCell, this.uid++);\n    this.keys.push(key);\n    this.bboxes.push(x1);\n    this.bboxes.push(y1);\n    this.bboxes.push(x2);\n    this.bboxes.push(y2);\n};\n\nGridIndex.prototype._insertReadonly = function() {\n    throw 'Cannot insert into a GridIndex created from an ArrayBuffer.';\n};\n\nGridIndex.prototype._insertCell = function(x1, y1, x2, y2, cellIndex, uid) {\n    this.cells[cellIndex].push(uid);\n};\n\nGridIndex.prototype.query = function(x1, y1, x2, y2, intersectionTest) {\n    var min = this.min;\n    var max = this.max;\n    if (x1 <= min && y1 <= min && max <= x2 && max <= y2 && !intersectionTest) {\n        // We use `Array#slice` because `this.keys` may be a `Int32Array` and\n        // some browsers (Safari and IE) do not support `TypedArray#slice`\n        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice#Browser_compatibility\n        return Array.prototype.slice.call(this.keys);\n\n    } else {\n        var result = [];\n        var seenUids = {};\n        this._forEachCell(x1, y1, x2, y2, this._queryCell, result, seenUids, intersectionTest);\n        return result;\n    }\n};\n\nGridIndex.prototype._queryCell = function(x1, y1, x2, y2, cellIndex, result, seenUids, intersectionTest) {\n    var cell = this.cells[cellIndex];\n    if (cell !== null) {\n        var keys = this.keys;\n        var bboxes = this.bboxes;\n        for (var u = 0; u < cell.length; u++) {\n            var uid = cell[u];\n            if (seenUids[uid] === undefined) {\n                var offset = uid * 4;\n                if (intersectionTest ?\n                    intersectionTest(bboxes[offset + 0], bboxes[offset + 1], bboxes[offset + 2], bboxes[offset + 3]) :\n                    ((x1 <= bboxes[offset + 2]) &&\n                    (y1 <= bboxes[offset + 3]) &&\n                    (x2 >= bboxes[offset + 0]) &&\n                    (y2 >= bboxes[offset + 1]))) {\n                    seenUids[uid] = true;\n                    result.push(keys[uid]);\n                } else {\n                    seenUids[uid] = false;\n                }\n            }\n        }\n    }\n};\n\nGridIndex.prototype._forEachCell = function(x1, y1, x2, y2, fn, arg1, arg2, intersectionTest) {\n    var cx1 = this._convertToCellCoord(x1);\n    var cy1 = this._convertToCellCoord(y1);\n    var cx2 = this._convertToCellCoord(x2);\n    var cy2 = this._convertToCellCoord(y2);\n    for (var x = cx1; x <= cx2; x++) {\n        for (var y = cy1; y <= cy2; y++) {\n            var cellIndex = this.d * y + x;\n            if (intersectionTest && !intersectionTest(\n                        this._convertFromCellCoord(x),\n                        this._convertFromCellCoord(y),\n                        this._convertFromCellCoord(x + 1),\n                        this._convertFromCellCoord(y + 1))) continue;\n            if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, intersectionTest)) return;\n        }\n    }\n};\n\nGridIndex.prototype._convertFromCellCoord = function(x) {\n    return (x - this.padding) / this.scale;\n};\n\nGridIndex.prototype._convertToCellCoord = function(x) {\n    return Math.max(0, Math.min(this.d - 1, Math.floor(x * this.scale) + this.padding));\n};\n\nGridIndex.prototype.toArrayBuffer = function() {\n    if (this.arrayBuffer) return this.arrayBuffer;\n\n    var cells = this.cells;\n\n    var metadataLength = NUM_PARAMS + this.cells.length + 1 + 1;\n    var totalCellLength = 0;\n    for (var i = 0; i < this.cells.length; i++) {\n        totalCellLength += this.cells[i].length;\n    }\n\n    var array = new Int32Array(metadataLength + totalCellLength + this.keys.length + this.bboxes.length);\n    array[0] = this.extent;\n    array[1] = this.n;\n    array[2] = this.padding;\n\n    var offset = metadataLength;\n    for (var k = 0; k < cells.length; k++) {\n        var cell = cells[k];\n        array[NUM_PARAMS + k] = offset;\n        array.set(cell, offset);\n        offset += cell.length;\n    }\n\n    array[NUM_PARAMS + cells.length] = offset;\n    array.set(this.keys, offset);\n    offset += this.keys.length;\n\n    array[NUM_PARAMS + cells.length + 1] = offset;\n    array.set(this.bboxes, offset);\n    offset += this.bboxes.length;\n\n    return array.buffer;\n};\n"]}