chunk-D5GG5NVO.js 8.5 KB

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