{"version":3,"sources":["node_modules/@arcgis/core/geometry/support/TileClipper.js","node_modules/@arcgis/core/views/2d/engine/vectorTiles/GeometryUtils.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.31/esri/copyright.txt for details.\n*/\nconst t = 512;\nvar i, s;\n!function (t) {\n t[t.Unknown = 0] = \"Unknown\", t[t.Point = 1] = \"Point\", t[t.LineString = 2] = \"LineString\", t[t.Polygon = 3] = \"Polygon\";\n}(i || (i = {}));\nclass h {\n constructor(t, i) {\n this.x = t, this.y = i;\n }\n clone() {\n return new h(this.x, this.y);\n }\n equals(t, i) {\n return t === this.x && i === this.y;\n }\n isEqual(t) {\n return t.x === this.x && t.y === this.y;\n }\n setCoords(t, i) {\n return this.x = t, this.y = i, this;\n }\n normalize() {\n const t = this.x,\n i = this.y,\n s = Math.sqrt(t * t + i * i);\n return this.x /= s, this.y /= s, this;\n }\n rightPerpendicular() {\n const t = this.x;\n return this.x = this.y, this.y = -t, this;\n }\n leftPerpendicular() {\n const t = this.x;\n return this.x = -this.y, this.y = t, this;\n }\n move(t, i) {\n return this.x += t, this.y += i, this;\n }\n assign(t) {\n return this.x = t.x, this.y = t.y, this;\n }\n assignAdd(t, i) {\n return this.x = t.x + i.x, this.y = t.y + i.y, this;\n }\n assignSub(t, i) {\n return this.x = t.x - i.x, this.y = t.y - i.y, this;\n }\n rotate(t, i) {\n const s = this.x,\n h = this.y;\n return this.x = s * t - h * i, this.y = s * i + h * t, this;\n }\n scale(t) {\n return this.x *= t, this.y *= t, this;\n }\n length() {\n const t = this.x,\n i = this.y;\n return Math.sqrt(t * t + i * i);\n }\n sub(t) {\n return this.x -= t.x, this.y -= t.y, this;\n }\n add(t) {\n return this.x += t.x, this.y += t.y, this;\n }\n static distance(t, i) {\n const s = i.x - t.x,\n h = i.y - t.y;\n return Math.sqrt(s * s + h * h);\n }\n static add(t, i) {\n return new h(t.x + i.x, t.y + i.y);\n }\n static sub(t, i) {\n return new h(t.x - i.x, t.y - i.y);\n }\n}\nclass n {\n constructor(t, i, s) {\n this.ratio = t, this.x = i, this.y = s;\n }\n}\nclass e {\n constructor(i, s, h, n = 8, e = 8) {\n this._lines = [], this._starts = [], this.validateTessellation = !0, this._pixelRatio = n, this._pixelMargin = e, this._tileSize = t * n, this._dz = i, this._yPos = s, this._xPos = h;\n }\n setPixelMargin(t) {\n t !== this._pixelMargin && (this._pixelMargin = t, this.setExtent(this._extent));\n }\n setExtent(t) {\n this._extent = t, this._finalRatio = this._tileSize / t * (1 << this._dz);\n let i = this._pixelRatio * this._pixelMargin;\n i /= this._finalRatio;\n const s = t >> this._dz;\n i > s && (i = s), this._margin = i, this._xmin = s * this._xPos - i, this._ymin = s * this._yPos - i, this._xmax = this._xmin + s + 2 * i, this._ymax = this._ymin + s + 2 * i;\n }\n reset(t) {\n this._type = t, this._lines = [], this._starts = [], this._line = null, this._start = 0;\n }\n moveTo(t, i) {\n this._pushLine(), this._prevIsIn = this._isIn(t, i), this._moveTo(t, i, this._prevIsIn), this._prevPt = new h(t, i), this._firstPt = new h(t, i), this._dist = 0;\n }\n lineTo(t, i) {\n const s = this._isIn(t, i),\n e = new h(t, i),\n _ = h.distance(this._prevPt, e);\n let x, l, y, a, r, o, u, m;\n if (s) this._prevIsIn ? this._lineTo(t, i, !0) : (x = this._prevPt, l = e, y = this._intersect(l, x), this._start = this._dist + _ * (1 - this._r), this._lineTo(y.x, y.y, !0), this._lineTo(l.x, l.y, !0));else if (this._prevIsIn) l = this._prevPt, x = e, y = this._intersect(l, x), this._lineTo(y.x, y.y, !0), this._lineTo(x.x, x.y, !1);else {\n const t = this._prevPt,\n i = e;\n if (t.x <= this._xmin && i.x <= this._xmin || t.x >= this._xmax && i.x >= this._xmax || t.y <= this._ymin && i.y <= this._ymin || t.y >= this._ymax && i.y >= this._ymax) this._lineTo(i.x, i.y, !1);else {\n const s = [];\n if ((t.x < this._xmin && i.x > this._xmin || t.x > this._xmin && i.x < this._xmin) && (a = (this._xmin - t.x) / (i.x - t.x), m = t.y + a * (i.y - t.y), m <= this._ymin ? o = !1 : m >= this._ymax ? o = !0 : s.push(new n(a, this._xmin, m))), (t.x < this._xmax && i.x > this._xmax || t.x > this._xmax && i.x < this._xmax) && (a = (this._xmax - t.x) / (i.x - t.x), m = t.y + a * (i.y - t.y), m <= this._ymin ? o = !1 : m >= this._ymax ? o = !0 : s.push(new n(a, this._xmax, m))), (t.y < this._ymin && i.y > this._ymin || t.y > this._ymin && i.y < this._ymin) && (a = (this._ymin - t.y) / (i.y - t.y), u = t.x + a * (i.x - t.x), u <= this._xmin ? r = !1 : u >= this._xmax ? r = !0 : s.push(new n(a, u, this._ymin))), (t.y < this._ymax && i.y > this._ymax || t.y > this._ymax && i.y < this._ymax) && (a = (this._ymax - t.y) / (i.y - t.y), u = t.x + a * (i.x - t.x), u <= this._xmin ? r = !1 : u >= this._xmax ? r = !0 : s.push(new n(a, u, this._ymax))), 0 === s.length) r ? o ? this._lineTo(this._xmax, this._ymax, !0) : this._lineTo(this._xmax, this._ymin, !0) : o ? this._lineTo(this._xmin, this._ymax, !0) : this._lineTo(this._xmin, this._ymin, !0);else if (s.length > 1 && s[0].ratio > s[1].ratio) this._start = this._dist + _ * s[1].ratio, this._lineTo(s[1].x, s[1].y, !0), this._lineTo(s[0].x, s[0].y, !0);else {\n this._start = this._dist + _ * s[0].ratio;\n for (let t = 0; t < s.length; t++) this._lineTo(s[t].x, s[t].y, !0);\n }\n this._lineTo(i.x, i.y, !1);\n }\n }\n this._dist += _, this._prevIsIn = s, this._prevPt = e;\n }\n close() {\n if (this._line.length > 2) {\n const t = this._firstPt,\n i = this._prevPt;\n t.x === i.x && t.y === i.y || this.lineTo(t.x, t.y);\n const s = this._line;\n let h = s.length;\n for (; h >= 4 && (s[0].x === s[1].x && s[0].x === s[h - 2].x || s[0].y === s[1].y && s[0].y === s[h - 2].y);) s.pop(), s[0].x = s[h - 2].x, s[0].y = s[h - 2].y, --h;\n }\n }\n result(t = !0) {\n return this._pushLine(), 0 === this._lines.length ? null : (this._type === i.Polygon && t && x.simplify(this._tileSize, this._margin * this._finalRatio, this._lines), this._lines);\n }\n resultWithStarts() {\n if (this._type !== i.LineString) throw new Error(\"Only valid for lines\");\n this._pushLine();\n const t = this._lines,\n s = t.length;\n if (0 === s) return null;\n const h = [];\n for (let i = 0; i < s; i++) h.push({\n line: t[i],\n start: this._starts[i] || 0\n });\n return h;\n }\n _isIn(t, i) {\n return t >= this._xmin && t <= this._xmax && i >= this._ymin && i <= this._ymax;\n }\n _intersect(t, i) {\n let s, n, e;\n if (i.x >= this._xmin && i.x <= this._xmax) n = i.y <= this._ymin ? this._ymin : this._ymax, e = (n - t.y) / (i.y - t.y), s = t.x + e * (i.x - t.x);else if (i.y >= this._ymin && i.y <= this._ymax) s = i.x <= this._xmin ? this._xmin : this._xmax, e = (s - t.x) / (i.x - t.x), n = t.y + e * (i.y - t.y);else {\n n = i.y <= this._ymin ? this._ymin : this._ymax, s = i.x <= this._xmin ? this._xmin : this._xmax;\n const h = (s - t.x) / (i.x - t.x),\n _ = (n - t.y) / (i.y - t.y);\n h < _ ? (e = h, n = t.y + h * (i.y - t.y)) : (e = _, s = t.x + _ * (i.x - t.x));\n }\n return this._r = e, new h(s, n);\n }\n _pushLine() {\n this._line && (this._type === i.Point ? this._line.length > 0 && (this._lines.push(this._line), this._starts.push(this._start)) : this._type === i.LineString ? this._line.length > 1 && (this._lines.push(this._line), this._starts.push(this._start)) : this._type === i.Polygon && this._line.length > 3 && (this._lines.push(this._line), this._starts.push(this._start))), this._line = [], this._start = 0;\n }\n _moveTo(t, s, n) {\n this._type !== i.Polygon ? n && (t = Math.round((t - (this._xmin + this._margin)) * this._finalRatio), s = Math.round((s - (this._ymin + this._margin)) * this._finalRatio), this._line.push(new h(t, s))) : (n || (t < this._xmin && (t = this._xmin), t > this._xmax && (t = this._xmax), s < this._ymin && (s = this._ymin), s > this._ymax && (s = this._ymax)), t = Math.round((t - (this._xmin + this._margin)) * this._finalRatio), s = Math.round((s - (this._ymin + this._margin)) * this._finalRatio), this._line.push(new h(t, s)), this._isH = !1, this._isV = !1);\n }\n _lineTo(t, s, n) {\n let e, _;\n if (this._type !== i.Polygon) {\n if (n) {\n if (t = Math.round((t - (this._xmin + this._margin)) * this._finalRatio), s = Math.round((s - (this._ymin + this._margin)) * this._finalRatio), this._line.length > 0 && (e = this._line[this._line.length - 1], e.equals(t, s))) return;\n this._line.push(new h(t, s));\n } else this._line && this._line.length > 0 && this._pushLine();\n } else if (n || (t < this._xmin && (t = this._xmin), t > this._xmax && (t = this._xmax), s < this._ymin && (s = this._ymin), s > this._ymax && (s = this._ymax)), t = Math.round((t - (this._xmin + this._margin)) * this._finalRatio), s = Math.round((s - (this._ymin + this._margin)) * this._finalRatio), this._line && this._line.length > 0) {\n e = this._line[this._line.length - 1];\n const i = e.x === t,\n n = e.y === s;\n if (i && n) return;\n this._isH && i || this._isV && n ? (e.x = t, e.y = s, _ = this._line[this._line.length - 2], _.x === t && _.y === s ? (this._line.pop(), this._line.length <= 1 ? (this._isH = !1, this._isV = !1) : (_ = this._line[this._line.length - 2], this._isH = _.x === t, this._isV = _.y === s)) : (this._isH = _.x === t, this._isV = _.y === s)) : (this._line.push(new h(t, s)), this._isH = i, this._isV = n);\n } else this._line.push(new h(t, s));\n }\n}\nclass _ {\n setExtent(t) {\n this._ratio = 4096 === t ? 1 : 4096 / t;\n }\n get validateTessellation() {\n return this._ratio < 1;\n }\n reset(t) {\n this._lines = [], this._line = null;\n }\n moveTo(t, i) {\n this._line && this._lines.push(this._line), this._line = [];\n const s = this._ratio;\n this._line.push(new h(t * s, i * s));\n }\n lineTo(t, i) {\n const s = this._ratio;\n this._line.push(new h(t * s, i * s));\n }\n close() {\n const t = this._line;\n t && !t[0].isEqual(t[t.length - 1]) && t.push(t[0]);\n }\n result() {\n return this._line && this._lines.push(this._line), 0 === this._lines.length ? null : this._lines;\n }\n}\n!function (t) {\n t[t.sideLeft = 0] = \"sideLeft\", t[t.sideRight = 1] = \"sideRight\", t[t.sideTop = 2] = \"sideTop\", t[t.sideBottom = 3] = \"sideBottom\";\n}(s || (s = {}));\nclass x {\n static simplify(t, i, h) {\n if (!h) return;\n const n = -i,\n e = t + i,\n _ = -i,\n l = t + i,\n y = [],\n a = [],\n r = h.length;\n for (let x = 0; x < r; ++x) {\n const t = h[x];\n if (!t || t.length < 2) continue;\n let i,\n r = t[0];\n const o = t.length;\n for (let h = 1; h < o; ++h) i = t[h], r.x === i.x && (r.x <= n && (r.y > i.y ? (y.push(x), y.push(h), y.push(s.sideLeft), y.push(-1)) : (a.push(x), a.push(h), a.push(s.sideLeft), a.push(-1))), r.x >= e && (r.y < i.y ? (y.push(x), y.push(h), y.push(s.sideRight), y.push(-1)) : (a.push(x), a.push(h), a.push(s.sideRight), a.push(-1)))), r.y === i.y && (r.y <= _ && (r.x < i.x ? (y.push(x), y.push(h), y.push(s.sideTop), y.push(-1)) : (a.push(x), a.push(h), a.push(s.sideTop), a.push(-1))), r.y >= l && (r.x > i.x ? (y.push(x), y.push(h), y.push(s.sideBottom), y.push(-1)) : (a.push(x), a.push(h), a.push(s.sideBottom), a.push(-1)))), r = i;\n }\n if (0 === y.length || 0 === a.length) return;\n x.fillParent(h, a, y), x.fillParent(h, y, a);\n const o = [];\n x.calcDeltas(o, a, y), x.calcDeltas(o, y, a), x.addDeltas(o, h);\n }\n static fillParent(t, i, h) {\n const n = h.length,\n e = i.length;\n for (let _ = 0; _ < e; _ += 4) {\n const e = i[_],\n x = i[_ + 1],\n y = i[_ + 2],\n a = t[e][x - 1],\n r = t[e][x];\n let o = 8092,\n u = -1;\n for (let i = 0; i < n; i += 4) {\n if (h[i + 2] !== y) continue;\n const n = h[i],\n e = h[i + 1],\n _ = t[n][e - 1],\n x = t[n][e];\n switch (y) {\n case s.sideLeft:\n case s.sideRight:\n if (l(a.y, _.y, x.y) && l(r.y, _.y, x.y)) {\n const t = Math.abs(x.y - _.y);\n t < o && (o = t, u = i);\n }\n break;\n case s.sideTop:\n case s.sideBottom:\n if (l(a.x, _.x, x.x) && l(r.x, _.x, x.x)) {\n const t = Math.abs(x.x - _.x);\n t < o && (o = t, u = i);\n }\n }\n }\n i[_ + 3] = u;\n }\n }\n static calcDeltas(t, i, s) {\n const h = i.length;\n for (let n = 0; n < h; n += 4) {\n const h = [],\n e = x.calcDelta(n, i, s, h);\n t.push(i[n]), t.push(i[n + 1]), t.push(i[n + 2]), t.push(e);\n }\n }\n static calcDelta(t, i, s, h) {\n const n = i[t + 3];\n if (-1 === n) return 0;\n const e = h.length;\n return e > 1 && h[e - 2] === n ? 0 : (h.push(n), x.calcDelta(n, s, i, h) + 1);\n }\n static addDeltas(t, i) {\n const h = t.length;\n let n = 0;\n for (let s = 0; s < h; s += 4) {\n const i = t[s + 3];\n i > n && (n = i);\n }\n for (let e = 0; e < h; e += 4) {\n const h = i[t[e]],\n _ = t[e + 1],\n x = n - t[e + 3];\n switch (t[e + 2]) {\n case s.sideLeft:\n h[_ - 1].x -= x, h[_].x -= x, 1 === _ && (h[h.length - 1].x -= x), _ === h.length - 1 && (h[0].x -= x);\n break;\n case s.sideRight:\n h[_ - 1].x += x, h[_].x += x, 1 === _ && (h[h.length - 1].x += x), _ === h.length - 1 && (h[0].x += x);\n break;\n case s.sideTop:\n h[_ - 1].y -= x, h[_].y -= x, 1 === _ && (h[h.length - 1].y -= x), _ === h.length - 1 && (h[0].y -= x);\n break;\n case s.sideBottom:\n h[_ - 1].y += x, h[_].y += x, 1 === _ && (h[h.length - 1].y += x), _ === h.length - 1 && (h[0].y += x);\n }\n }\n }\n}\nconst l = (t, i, s) => t >= i && t <= s || t >= s && t <= i;\nexport { i as GeometryType, h as Point, _ as SimpleBuilder, e as TileClipper };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.31/esri/copyright.txt for details.\n*/\nimport { distanceToSegmentSquared as t } from \"../../../../geometry/support/coordsUtils.js\";\nimport { Point as n } from \"../../../../geometry/support/TileClipper.js\";\nconst r = Number.POSITIVE_INFINITY,\n o = Math.PI,\n e = 2 * o,\n i = 128 / o,\n u = 256 / 360,\n s = o / 180,\n c = 1 / Math.LN2;\nfunction a(t, n) {\n return (t %= n) >= 0 ? t : t + n;\n}\nfunction f(t) {\n return a(t * i, 256);\n}\nfunction l(t) {\n return a(t * u, 256);\n}\nfunction h(t) {\n return Math.log(t) * c;\n}\nfunction m(t) {\n return t * t;\n}\nfunction p(t, n, r) {\n return t * (1 - r) + n * r;\n}\nfunction g(t, n, r) {\n return t >= n && t <= r || t >= r && t <= n;\n}\nconst x = 8,\n y = 14,\n M = 16;\nfunction d(t) {\n return x + Math.max((t - y) * M, 0);\n}\nfunction I(t, n, r) {\n let o,\n e,\n i,\n u = 0;\n for (const s of r) {\n o = s.length;\n for (let r = 1; r < o; ++r) {\n if (e = s[r - 1], i = s[r], e.y > n == i.y > n) continue;\n (i.x - e.x) * (n - e.y) - (i.y - e.y) * (t - e.x) > 0 ? u++ : u--;\n }\n }\n return 0 !== u;\n}\nfunction N(n, r, o, e) {\n let i, u, s, c;\n const a = e * e;\n for (const f of o) {\n const o = f.length;\n if (!(o < 2)) {\n i = f[0].x, u = f[0].y;\n for (let e = 1; e < o; ++e) {\n if (s = f[e].x, c = f[e].y, t(n, r, i, u, s, c) < a) return !0;\n i = s, u = c;\n }\n }\n }\n return !1;\n}\nfunction w(t, n, r, o, e, i, u) {\n const s = Math.max(o, Math.min(n, i)) - n,\n c = Math.max(e, Math.min(r, u)) - r;\n return s * s + c * c <= t * t;\n}\nfunction P(t, r) {\n if (0 === r || Number.isNaN(r)) return t;\n const o = [],\n e = new n(0, 0),\n i = new n(0, 0),\n u = new n(0, 0);\n for (let s = 0; s < t.length; s++) {\n const c = t[s],\n a = [];\n for (let t = 0; t < c.length; t++) {\n const o = c[t - 1],\n s = c[t],\n f = c[t + 1];\n 0 === t ? e.setCoords(0, 0) : e.assignSub(s, o).normalize().rightPerpendicular(), t === c.length - 1 ? i.setCoords(0, 0) : i.assignSub(f, s).normalize().rightPerpendicular(), u.assignAdd(e, i).normalize();\n const l = u.x * i.x + u.y * i.y;\n 0 !== l && u.scale(1 / l), a.push(n.add(s, u.scale(r)));\n }\n o.push(a);\n }\n return o;\n}\nfunction b(t, r, o, e) {\n const i = new n(t[0], t[1]);\n if (i.scale(e), \"viewport\" === r) {\n const t = -o * (Math.PI / 180),\n n = Math.cos(t),\n r = Math.sin(t);\n i.rotate(n, r);\n }\n return i;\n}\nexport { g as between, e as c2pi, u as cDegTo256, s as cDegToRad, r as cInfinity, o as cPi, i as cRadTo256, l as degToByte, N as distanceFromToPolylineWithinThreshold, d as getTileMargins, p as interpolate, w as isCircleOverlapingRect, h as log2, P as offsetLine, I as pointInPolygon, a as positiveMod, f as radToByte, m as sqr, b as translateAnchor };"],"mappings":"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","names":["i","s","t","h","_h","n","e","_","x","l","y","a","r","o","u","m","_x","r","o","e","i","u","s","c","a","t","n","f","l","h","p","t","n","r","x","y","M","d","t","I","n","r","o","e","i","u","s","N","c","a","f","l","w","P","h","b"],"x_google_ignoreList":[0,1]}