{"version":3,"sources":["node_modules/@arcgis/core/views/2d/tiling/TileQueue.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { _ as e } from \"../../../chunks/tslib.es6.js\";\nimport t from \"../../../core/Accessor.js\";\nimport { destroyMaybe as s } from \"../../../core/maybe.js\";\nimport { property as r } from \"../../../core/accessorSupport/decorators/property.js\";\nimport \"../../../core/accessorSupport/ensureType.js\";\nimport \"../../../core/arrayUtils.js\";\nimport \"../../../core/has.js\";\nimport { subclass as o } from \"../../../core/accessorSupport/decorators/subclass.js\";\nimport { d as i } from \"../../../chunks/vec2.js\";\nimport { QueueProcessor as n } from \"../../support/QueueProcessor.js\";\nfunction c(e, t) {\n return e.length = 0, t.forEach(t => e.push(t)), e;\n}\nconst u = new Set(),\n a = [],\n h = new Map(),\n l = [0, 0];\nlet p = class extends t {\n constructor(e) {\n super(e), this._keyToItem = new Map(), this.concurrency = 6, this.strategy = \"scale-first\", this.tileInfoView = null;\n }\n initialize() {\n const {\n concurrency: e,\n process: t,\n strategy: s\n } = this;\n this._queue = new n({\n concurrency: e,\n process: (e, s) => {\n const r = this._keyToItem.get(e);\n return t(r, {\n signal: s\n });\n },\n peeker: \"scale-first\" === s ? e => this._peekByScaleFirst(e) : e => this._peekByCenterFirst(e)\n });\n }\n destroy() {\n this.clear(), this._queue = s(this._queue);\n }\n get length() {\n return this._queue ? this._queue.length : 0;\n }\n get onGoingCount() {\n return this._keyToItem.size;\n }\n abort(e) {\n const t = \"string\" == typeof e ? e : e.id;\n this._queue.abort(t);\n }\n clear() {\n this._queue.clear(), this._keyToItem.clear();\n }\n has(e) {\n return \"string\" == typeof e ? this._keyToItem.has(e) : this._keyToItem.has(e.id);\n }\n isOngoing(e) {\n const t = \"string\" == typeof e ? e : e.id;\n return this.has(t) && this._queue.isOngoing(t);\n }\n pause() {\n this._queue.pause();\n }\n push(e) {\n const t = e.key.id;\n if (this._queue.has(t)) return this._queue.get(t);\n const s = this._queue.push(t),\n r = () => {\n this._keyToItem.delete(t);\n };\n return this._keyToItem.set(t, e), s.then(r, r), s;\n }\n reset() {\n this._queue.reset();\n }\n resume() {\n this._queue.resume();\n }\n _peekByScaleFirst(e) {\n if (!this.state) return e.values().next().value;\n const t = this.tileInfoView;\n let s = Number.NEGATIVE_INFINITY,\n r = Number.POSITIVE_INFINITY;\n e.forEach(e => {\n const t = this._keyToItem.get(e),\n o = this.tileInfoView.getTileScale(t.key);\n h.has(o) || (h.set(o, []), s = Math.max(o, s), r = Math.min(o, r)), h.get(o).push(t.key), u.add(o);\n });\n let o = this.state.scale;\n h.has(o) || (c(a, u), a.sort((e, t) => e - t), o = a.reduce((e, t) => Math.abs(t - o) < Math.abs(e - o) ? t : e, a[0])), o = Math.min(o, s), o = Math.max(o, r);\n const i = h.get(o),\n n = t.getClosestInfoForScale(o),\n l = n.getColumnForX(this.state.center[0]),\n p = n.getRowForY(this.state.center[1]);\n return i.sort((e, t) => {\n const s = n.denormalizeCol(e.col, e.world),\n r = n.denormalizeCol(t.col, t.world);\n return Math.sqrt((l - s) * (l - s) + (p - e.row) * (p - e.row)) - Math.sqrt((l - r) * (l - r) + (p - t.row) * (p - t.row));\n }), u.clear(), h.clear(), i[0].id;\n }\n _peekByCenterFirst(e) {\n if (!this.state) return e.values().next().value;\n const t = this.tileInfoView,\n s = this.state.center;\n let r,\n o = Number.POSITIVE_INFINITY;\n return e.forEach(e => {\n const n = this._keyToItem.get(e);\n t.getTileCoords(l, n.key);\n const c = i(l, s);\n c < o && (o = c, r = n.key);\n }), r.id;\n }\n};\ne([r({\n constructOnly: !0\n})], p.prototype, \"concurrency\", void 0), e([r({\n constructOnly: !0\n})], p.prototype, \"process\", void 0), e([r()], p.prototype, \"state\", void 0), e([r({\n constructOnly: !0\n})], p.prototype, \"strategy\", void 0), e([r({\n constructOnly: !0\n})], p.prototype, \"tileInfoView\", void 0), p = e([o(\"esri.views.2d.tiling.TileQueue\")], p);\nconst y = p;\nexport { y as default };"],"mappings":"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","names":["c","e","t","u","s","o","l","p","r","y"],"x_google_ignoreList":[0]}