chunk-PZ7XDUL6.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. import {
  2. a,
  3. l
  4. } from "./chunk-ULSPZIPE.js";
  5. // node_modules/@arcgis/core/statistics/utils.js
  6. var t = "<Null>";
  7. var i = "equal-interval";
  8. var l2 = 1;
  9. var a2 = 5;
  10. var o = 10;
  11. var r = /\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*/gi;
  12. var u = /* @__PURE__ */ new Set(["esriFieldTypeInteger", "esriFieldTypeSmallInteger", "esriFieldTypeSingle", "esriFieldTypeDouble"]);
  13. var s = ["min", "max", "avg", "stddev", "count", "sum", "variance", "nullcount", "median"];
  14. function c(n) {
  15. return null == n || "string" == typeof n && !n ? t : n;
  16. }
  17. function m(n) {
  18. const e = null != n.normalizationField || null != n.normalizationType, t2 = null != n.minValue || null != n.maxValue, i2 = !!n.sqlExpression && n.supportsSQLExpression;
  19. return !e && !t2 && !i2;
  20. }
  21. function f(n) {
  22. const e = n.returnDistinct ? [...new Set(n.values)] : n.values, t2 = e.filter((n2) => null != n2).length, i2 = { count: t2 };
  23. return n.supportsNullCount && (i2.nullcount = e.length - t2), n.percentileParams && (i2.median = p(e, n.percentileParams)), i2;
  24. }
  25. function d(n) {
  26. const { values: e, useSampleStdDev: t2, supportsNullCount: i2 } = n;
  27. let l3 = Number.POSITIVE_INFINITY, a3 = Number.NEGATIVE_INFINITY, o2 = null, r2 = null, u2 = null, s2 = null, c2 = 0;
  28. const m2 = null == n.minValue ? -1 / 0 : n.minValue, f2 = null == n.maxValue ? 1 / 0 : n.maxValue;
  29. for (const p2 of e)
  30. Number.isFinite(p2) ? p2 >= m2 && p2 <= f2 && (o2 += p2, l3 = Math.min(l3, p2), a3 = Math.max(a3, p2), c2++) : "string" == typeof p2 && c2++;
  31. if (c2 && null != o2) {
  32. r2 = o2 / c2;
  33. let n2 = 0;
  34. for (const t3 of e)
  35. Number.isFinite(t3) && t3 >= m2 && t3 <= f2 && (n2 += (t3 - r2) ** 2);
  36. s2 = t2 ? c2 > 1 ? n2 / (c2 - 1) : 0 : c2 > 0 ? n2 / c2 : 0, u2 = Math.sqrt(s2);
  37. } else
  38. l3 = null, a3 = null;
  39. const d2 = { avg: r2, count: c2, max: a3, min: l3, stddev: u2, sum: o2, variance: s2 };
  40. return i2 && (d2.nullcount = e.length - c2), n.percentileParams && (d2.median = p(e, n.percentileParams)), d2;
  41. }
  42. function p(n, e) {
  43. const { fieldType: t2, value: i2, orderBy: l3, isDiscrete: a3 } = e, o2 = v(t2, "desc" === l3);
  44. if (0 === (n = [...n].filter((n2) => null != n2).sort((n2, e2) => o2(n2, e2))).length)
  45. return null;
  46. if (i2 <= 0)
  47. return n[0];
  48. if (i2 >= 1)
  49. return n[n.length - 1];
  50. const r2 = (n.length - 1) * i2, u2 = Math.floor(r2), s2 = u2 + 1, c2 = r2 % 1, m2 = n[u2], f2 = n[s2];
  51. return s2 >= n.length || a3 || "string" == typeof m2 || "string" == typeof f2 ? m2 : m2 * (1 - c2) + f2 * c2;
  52. }
  53. function v(n, e) {
  54. const t2 = e ? 1 : -1, i2 = h(e), l3 = b(e);
  55. if (!(!!n && ["esriFieldTypeDate", "esriFieldTypeString", "esriFieldTypeGUID", "esriFieldTypeGlobalID", ...u].includes(n)))
  56. return (n2, e2) => "number" == typeof n2 && "number" == typeof e2 ? i2(n2, e2) : "string" == typeof n2 && "string" == typeof e2 ? l3(n2, e2) : t2;
  57. if ("esriFieldTypeDate" === n)
  58. return (n2, e2) => {
  59. const l4 = new Date(n2).getTime(), a3 = new Date(e2).getTime();
  60. return isNaN(l4) || isNaN(a3) ? t2 : i2(l4, a3);
  61. };
  62. if (u.has(n))
  63. return (n2, e2) => i2(n2, e2);
  64. if ("esriFieldTypeString" === n)
  65. return (n2, e2) => l3(n2, e2);
  66. if ("esriFieldTypeGUID" === n || "esriFieldTypeGlobalID" === n) {
  67. const n2 = b(e);
  68. return (e2, t3) => n2(g(e2), g(t3));
  69. }
  70. return e ? (n2, e2) => 1 : (n2, e2) => -1;
  71. }
  72. function b(n) {
  73. return n ? (n2, e) => (n2 = n2 == null ? void 0 : n2.toUpperCase(), e = e == null ? void 0 : e.toUpperCase(), n2 > e ? -1 : n2 < e ? 1 : 0) : (n2, e) => (n2 = n2 == null ? void 0 : n2.toUpperCase(), e = e == null ? void 0 : e.toUpperCase(), n2 < e ? -1 : n2 > e ? 1 : 0);
  74. }
  75. function h(n) {
  76. return n ? (n2, e) => e - n2 : (n2, e) => n2 - e;
  77. }
  78. function g(n) {
  79. return n.substr(24, 12) + n.substr(19, 4) + n.substr(16, 2) + n.substr(14, 2) + n.substr(11, 2) + n.substr(9, 2) + n.substr(6, 2) + n.substr(4, 2) + n.substr(2, 2) + n.substr(0, 2);
  80. }
  81. function V(n, e) {
  82. let t2;
  83. for (t2 in n)
  84. s.includes(t2) && (Number.isFinite(n[t2]) || (n[t2] = null));
  85. return e ? (["avg", "stddev", "variance"].forEach((e2) => {
  86. null != n[e2] && (n[e2] = Math.ceil(n[e2]));
  87. }), n) : n;
  88. }
  89. function T(n) {
  90. const e = {};
  91. for (let t2 of n)
  92. (null == t2 || "string" == typeof t2 && "" === t2.trim()) && (t2 = null), null == e[t2] ? e[t2] = { count: 1, data: t2 } : e[t2].count++;
  93. return { count: e };
  94. }
  95. function y(n) {
  96. return "coded-value" !== (n == null ? void 0 : n.type) ? [] : n.codedValues.map((n2) => n2.code);
  97. }
  98. function F(n, e, t2, i2) {
  99. const l3 = n.count, a3 = [];
  100. if (t2 && e) {
  101. const n2 = [], t3 = y(e[0]);
  102. for (const l4 of t3)
  103. if (e[1]) {
  104. const t4 = y(e[1]);
  105. for (const a4 of t4)
  106. if (e[2]) {
  107. const t5 = y(e[2]);
  108. for (const e2 of t5)
  109. n2.push(`${c(l4)}${i2}${c(a4)}${i2}${c(e2)}`);
  110. } else
  111. n2.push(`${c(l4)}${i2}${c(a4)}`);
  112. } else
  113. n2.push(l4);
  114. for (const e2 of n2)
  115. l3.hasOwnProperty(e2) || (l3[e2] = { data: e2, count: 0 });
  116. }
  117. for (const o2 in l3) {
  118. const n2 = l3[o2];
  119. a3.push({ value: n2.data, count: n2.count, label: n2.label });
  120. }
  121. return { uniqueValueInfos: a3 };
  122. }
  123. function x(n, e, t2, i2) {
  124. let l3 = null;
  125. switch (e) {
  126. case "log":
  127. 0 !== n && (l3 = Math.log(n) * Math.LOG10E);
  128. break;
  129. case "percent-of-total":
  130. Number.isFinite(i2) && 0 !== i2 && (l3 = n / i2 * 100);
  131. break;
  132. case "field":
  133. Number.isFinite(t2) && 0 !== t2 && (l3 = n / t2);
  134. break;
  135. case "natural-log":
  136. n > 0 && (l3 = Math.log(n));
  137. break;
  138. case "square-root":
  139. n > 0 && (l3 = n ** 0.5);
  140. }
  141. return l3;
  142. }
  143. function D(n, t2) {
  144. const i2 = I({ field: t2.field, normalizationType: t2.normalizationType, normalizationField: t2.normalizationField, classificationMethod: t2.classificationMethod, standardDeviationInterval: t2.standardDeviationInterval, breakCount: t2.numClasses || a2 });
  145. return n = z(n, t2.minValue, t2.maxValue), a({ definition: i2, values: n, normalizationTotal: t2.normalizationTotal });
  146. }
  147. function z(n, e, t2) {
  148. return e = e != null ? e : -1 / 0, t2 = t2 != null ? t2 : 1 / 0, n.filter((n2) => Number.isFinite(n2) && n2 >= e && n2 <= t2);
  149. }
  150. function I(e) {
  151. const t2 = e.field, a3 = e.classificationMethod || i, o2 = e.normalizationType, r2 = e.normalizationField, u2 = new l();
  152. return u2.classificationField = t2, u2.breakCount = e.breakCount, u2.classificationMethod = a3, u2.standardDeviationInterval = "standard-deviation" === a3 ? e.standardDeviationInterval || l2 : void 0, u2.normalizationType = o2, u2.normalizationField = "field" === o2 ? r2 : void 0, u2;
  153. }
  154. function N(n, e) {
  155. let t2 = n.classBreaks;
  156. const i2 = t2.length, l3 = t2[0].minValue, a3 = t2[i2 - 1].maxValue, o2 = "standard-deviation" === e, u2 = r;
  157. return t2 = t2.map((n2) => {
  158. const e2 = n2.label, t3 = { minValue: n2.minValue, maxValue: n2.maxValue, label: e2 };
  159. if (o2 && e2) {
  160. const n3 = e2.match(u2).map((n4) => +n4.trim());
  161. 2 === n3.length ? (t3.minStdDev = n3[0], t3.maxStdDev = n3[1], n3[0] < 0 && n3[1] > 0 && (t3.hasAvg = true)) : 1 === n3.length && (e2.includes("<") ? (t3.minStdDev = null, t3.maxStdDev = n3[0]) : e2.includes(">") && (t3.minStdDev = n3[0], t3.maxStdDev = null));
  162. }
  163. return t3;
  164. }), { minValue: l3, maxValue: a3, classBreakInfos: t2, normalizationTotal: n.normalizationTotal };
  165. }
  166. function S(n, e) {
  167. const { min: t2, max: i2, intervals: l3 } = M(n, e), a3 = l3.map((n2, e2) => ({ minValue: l3[e2][0], maxValue: l3[e2][1], count: 0 }));
  168. for (const o2 of n)
  169. if (null != o2 && o2 >= t2 && o2 <= i2) {
  170. const n2 = C(l3, o2);
  171. n2 > -1 && a3[n2].count++;
  172. }
  173. return { bins: a3, minValue: t2, maxValue: i2, normalizationTotal: e.normalizationTotal };
  174. }
  175. function M(n, e) {
  176. const { field: t2, classificationMethod: i2, standardDeviationInterval: l3, normalizationType: a3, normalizationField: r2, normalizationTotal: u2, minValue: s2, maxValue: c2 } = e, f2 = e.numBins || o;
  177. let p2 = null, v2 = null, b2 = null;
  178. if ((!i2 || "equal-interval" === i2) && !a3) {
  179. if (null != s2 && null != c2)
  180. p2 = s2, v2 = c2;
  181. else {
  182. const e2 = d({ values: n, minValue: s2, maxValue: c2, useSampleStdDev: !a3, supportsNullCount: m({ normalizationType: a3, normalizationField: r2, minValue: s2, maxValue: c2 }) });
  183. p2 = e2.min, v2 = e2.max;
  184. }
  185. b2 = k(p2, v2, f2);
  186. } else {
  187. const { classBreaks: e2 } = D(n, { field: t2, normalizationType: a3, normalizationField: r2, normalizationTotal: u2, classificationMethod: i2, standardDeviationInterval: l3, minValue: s2, maxValue: c2, numClasses: f2 });
  188. p2 = e2[0].minValue, v2 = e2[e2.length - 1].maxValue, b2 = e2.map((n2) => [n2.minValue, n2.maxValue]);
  189. }
  190. return { min: p2, max: v2, intervals: b2 };
  191. }
  192. function C(n, e) {
  193. let t2 = -1;
  194. for (let i2 = n.length - 1; i2 >= 0; i2--) {
  195. if (e >= n[i2][0]) {
  196. t2 = i2;
  197. break;
  198. }
  199. }
  200. return t2;
  201. }
  202. function k(n, e, t2) {
  203. const i2 = (e - n) / t2, l3 = [];
  204. let a3, o2 = n;
  205. for (let r2 = 1; r2 <= t2; r2++)
  206. a3 = o2 + i2, a3 = Number(a3.toFixed(16)), l3.push([o2, r2 === t2 ? e : a3]), o2 = a3;
  207. return l3;
  208. }
  209. export {
  210. c,
  211. m,
  212. f,
  213. d,
  214. p,
  215. v,
  216. V,
  217. T,
  218. F,
  219. x,
  220. D,
  221. N,
  222. S
  223. };
  224. //# sourceMappingURL=chunk-PZ7XDUL6.js.map