chunk-F2GA7W55.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. import {
  2. e,
  3. l3 as l,
  4. n5 as n,
  5. y3 as y2
  6. } from "./chunk-2Z2TG5CU.js";
  7. import {
  8. N
  9. } from "./chunk-SQOPWYIT.js";
  10. import {
  11. y
  12. } from "./chunk-SPWQ3AWG.js";
  13. import {
  14. r,
  15. t
  16. } from "./chunk-YXWMMD76.js";
  17. // node_modules/@arcgis/core/layers/support/DimensionalDefinition.js
  18. var a;
  19. var n2 = a = class extends l {
  20. constructor(e2) {
  21. super(e2), this.variableName = null, this.dimensionName = null, this.values = [], this.isSlice = false;
  22. }
  23. clone() {
  24. return new a({ variableName: this.variableName, dimensionName: this.dimensionName, values: y(this.values), isSlice: this.isSlice });
  25. }
  26. };
  27. e([y2({ type: String, json: { write: true } })], n2.prototype, "variableName", void 0), e([y2({ type: String, json: { write: true } })], n2.prototype, "dimensionName", void 0), e([y2({ type: N.array(N.oneOf([N.native(Number), N.array(N.native(Number))])), json: { write: true } })], n2.prototype, "values", void 0), e([y2({ type: Boolean, json: { write: true } })], n2.prototype, "isSlice", void 0), n2 = a = e([n("esri.layers.support.DimensionalDefinition")], n2);
  28. var p = n2;
  29. // node_modules/@arcgis/core/layers/support/rasterDatasets/multidimensionalUtils.js
  30. function a2(e2, n3, t2) {
  31. var _a;
  32. const i2 = n3.shift();
  33. if (0 === t2.length) {
  34. const e3 = [];
  35. t2.push({ sliceId: -1, multidimensionalDefinition: e3 });
  36. }
  37. const s2 = t2.length;
  38. for (let a3 = 0; a3 < s2; a3++) {
  39. const n4 = t2.shift().multidimensionalDefinition;
  40. (_a = i2.values) == null ? void 0 : _a.forEach((a4) => {
  41. t2.push({ sliceId: -1, multidimensionalDefinition: [...n4, { variableName: e2, dimensionName: i2.name, values: [a4] }] });
  42. });
  43. }
  44. n3.length && a2(e2, n3, t2);
  45. }
  46. function i(e2, n3) {
  47. const t2 = [];
  48. let i2 = 0;
  49. return (n3 ? e2.variables.filter((e3) => e3.name.toLowerCase() === n3.toLowerCase()) : [...e2.variables].sort((e3, n4) => e3.name > n4.name ? 1 : -1)).forEach((e3) => {
  50. const n4 = [], s2 = [...e3.dimensions].sort((e4, n5) => e4.name > n5.name ? -1 : 1);
  51. a2(e3.name, s2, n4), n4.forEach((e4) => {
  52. t2.push({ ...e4, sliceId: i2++ });
  53. });
  54. }), t2;
  55. }
  56. function s(n3, t2, a3) {
  57. let i2 = n3;
  58. if (t2 && (t2 = [...t2].sort((e2, n4) => e2.dimensionName < n4.dimensionName ? -1 : 1)).forEach(({ dimensionName: e2, values: n4, isSlice: t3 }) => {
  59. n4.length && (i2 = i2.filter((a4) => {
  60. const i3 = a4.multidimensionalDefinition.find((n5) => n5.dimensionName === e2);
  61. if (null == i3)
  62. return false;
  63. const s2 = i3.values[0];
  64. return "number" == typeof s2 ? "number" == typeof n4[0] ? n4.includes(s2) : n4.some((e3) => e3[0] <= s2 && e3[1] >= s2) : "number" == typeof n4[0] ? n4.some((e3) => s2[0] <= e3 && s2[1] >= e3) : t3 ? n4.some((e3) => e3[0] === s2[0] && e3[0] === s2[1]) : n4.some((e3) => e3[0] >= s2[0] && e3[0] <= s2[1] || e3[1] >= s2[0] && e3[1] <= s2[1] || e3[0] < s2[0] && e3[1] > s2[1]);
  65. }));
  66. }), i2.length && a3 && r(a3.start) && r(a3.end)) {
  67. const e2 = a3.start.getTime(), n4 = a3.end.getTime(), t3 = i2[0].multidimensionalDefinition.findIndex((e3) => "StdTime" === e3.dimensionName);
  68. t3 > -1 && (i2 = i2.filter((a4) => {
  69. const i3 = a4.multidimensionalDefinition[t3].values[0];
  70. return e2 <= i3 && n4 >= i3;
  71. }));
  72. }
  73. return i2.map((e2) => e2.sliceId);
  74. }
  75. function r2(e2, n3) {
  76. return Array.isArray(e2) ? n3[0] === n3[1] ? e2[0] === n3[0] || e2[1] === n3[0] : e2[0] >= n3[0] && e2[0] <= n3[1] && e2[1] >= n3[0] && e2[1] <= n3[1] : e2 >= n3[0] && e2 <= n3[1];
  77. }
  78. function l2(e2, n3) {
  79. return e2[0] <= n3[0] && e2[1] >= n3[0] || e2[0] <= n3[1] && e2[1] >= n3[1] || e2[0] >= n3[0] && e2[1] <= n3[1];
  80. }
  81. function o(e2) {
  82. return 1 === e2.length ? [e2[0], e2[0]] : [e2[0], e2[e2.length - 1]];
  83. }
  84. function u(e2, n3, t2) {
  85. var _a, _b, _c;
  86. if (!((_a = n3 == null ? void 0 : n3.subsetDefinitions) == null ? void 0 : _a.length))
  87. return e2;
  88. let a3;
  89. if (t2) {
  90. const { variables: i3 } = n3;
  91. if (i3.length && !i3.includes(t2))
  92. return null;
  93. const s3 = n3.subsetDefinitions.find((n4) => n4.dimensionName === e2.name && n4.variableName === t2);
  94. if (!((_b = s3 == null ? void 0 : s3.values) == null ? void 0 : _b.length))
  95. return e2;
  96. a3 = o(s3.values);
  97. } else {
  98. a3 = (_c = n3.dimensions.find(({ name: n4 }) => n4 === e2.name)) == null ? void 0 : _c.extent;
  99. }
  100. const i2 = a3;
  101. if (!i2 || !(i2 == null ? void 0 : i2.length))
  102. return e2;
  103. const s2 = e2.values.filter((e3) => r2(e3, i2));
  104. return { ...e2, extent: [...i2], values: s2 };
  105. }
  106. function m(e2, n3, t2) {
  107. var _a;
  108. if (!((_a = n3 == null ? void 0 : n3.subsetDefinitions) == null ? void 0 : _a.length))
  109. return false;
  110. const { variables: a3 } = n3;
  111. if (a3.length && e2.some(({ variableName: e3 }) => e3 && !a3.includes(e3)))
  112. return true;
  113. for (let i2 = 0; i2 < e2.length; i2++) {
  114. const a4 = e2[i2], s2 = n3.subsetDefinitions.find((e3) => ("" === a4.variableName || e3.variableName === a4.variableName) && e3.dimensionName === a4.dimensionName);
  115. if (s2 == null ? void 0 : s2.values.length) {
  116. const e3 = o(s2.values);
  117. if (!a4.isSlice && 2 === a4.values.length && !Array.isArray(a4.values[0]) && a4.values[0] !== a4.values[1] && t2) {
  118. if (!l2(a4.values, e3))
  119. return true;
  120. } else if (a4.values.some((n4) => !r2(n4, e3)))
  121. return true;
  122. }
  123. }
  124. return false;
  125. }
  126. function c(e2, a3 = {}) {
  127. var _a, _b, _c;
  128. const { multidimensionalInfo: i2, keyProperties: s2 } = e2;
  129. if (t(i2))
  130. return null;
  131. const r3 = a3.variableName || (s2 == null ? void 0 : s2.DefaultVariable);
  132. let { variables: l3 } = i2;
  133. const { multidimensionalSubset: o2 } = a3;
  134. ((_a = o2 == null ? void 0 : o2.variables) == null ? void 0 : _a.length) && (l3 = l3.filter(({ name: e3 }) => o2.variables.includes(e3)));
  135. const m2 = r3 ? (_b = l3.find(({ name: e3 }) => e3 === r3)) != null ? _b : l3[0] : l3[0];
  136. if (!m2)
  137. return null;
  138. const c2 = [], { dimensions: f2, name: d2 } = m2;
  139. if (0 === f2.length)
  140. return [new p({ variableName: d2, dimensionName: "", values: [], isSlice: true })];
  141. for (let n3 = 0; n3 < f2.length; n3++) {
  142. const e3 = u(f2[n3], o2, d2);
  143. if (!e3)
  144. return null;
  145. const { values: i3, extent: s3 } = e3;
  146. let r4 = (_c = i3 == null ? void 0 : i3[0]) != null ? _c : s3[0];
  147. "stdz" === e3.name.toLowerCase() && !e3.hasRanges && Math.abs(s3[1]) <= Math.abs(s3[0]) && (r4 = (i3 == null ? void 0 : i3.length) ? i3[i3.length - 1] : s3[1]), c2.push(new p({ variableName: d2, dimensionName: e3.name, values: [r4], isSlice: !a3.useRangeForRangedDimensionInfo || !!e3.hasRanges }));
  148. }
  149. return c2;
  150. }
  151. function f(e2) {
  152. return !(t(e2) || !e2.length) && e2.some((e3) => {
  153. if (null == e3.values)
  154. return true;
  155. const n3 = e3.values.length;
  156. return 0 === n3 || n3 > 1 || !e3.isSlice && Array.isArray(e3.values[0]);
  157. });
  158. }
  159. function d(e2, t2) {
  160. var _a;
  161. if (t(t2) || t(e2))
  162. return null;
  163. let a3 = t2.variables.map((e3) => ({ ...e3 }));
  164. return ((_a = e2 == null ? void 0 : e2.variables) == null ? void 0 : _a.length) && (a3 = a3.filter(({ name: n3 }) => e2.variables.includes(n3)), a3.forEach((n3) => {
  165. n3.dimensions = n3.dimensions.map((t3) => u(t3, e2, n3.name));
  166. })), a3;
  167. }
  168. function h(e2, n3) {
  169. var _a;
  170. const { values: t2 } = n3;
  171. if (t2 == null ? void 0 : t2.length)
  172. return Array.isArray(t2[0]) !== Array.isArray(e2) ? -1 : Array.isArray(t2[0]) ? t2.findIndex((n4) => n4[0] === e2[0] && n4[1] === e2[1]) : t2.indexOf(e2);
  173. const { extent: a3 } = n3;
  174. if (Array.isArray(e2) || e2 < a3[0] || e2 > a3[1])
  175. return -1;
  176. const i2 = n3.interval || 1;
  177. if ("ISO8601" !== n3.unit)
  178. return Math.round((e2 - a3[0]) / i2);
  179. const s2 = a3[0];
  180. let r3 = -1;
  181. switch (((_a = n3.intervalUnit) == null ? void 0 : _a.toLowerCase()) || "seconds") {
  182. case "seconds":
  183. r3 = Math.round((e2 - s2) / 1e3 / i2);
  184. break;
  185. case "minutes":
  186. r3 = Math.round((e2 - s2) / 6e4 / i2);
  187. break;
  188. case "hours":
  189. r3 = Math.round((e2 - s2) / 36e5 / i2);
  190. break;
  191. case "days":
  192. r3 = Math.round((e2 - s2) / 864e5 / i2);
  193. break;
  194. case "months":
  195. {
  196. const n4 = new Date(e2).getUTCFullYear() - new Date(s2).getUTCFullYear(), t3 = new Date(s2).getUTCMonth(), a4 = new Date(e2).getUTCMonth();
  197. r3 = 0 === n4 ? a4 - t3 : a4 + 11 - t3 + 12 * (n4 - 1);
  198. }
  199. break;
  200. case "years":
  201. r3 = Math.round((new Date(e2).getUTCFullYear() - new Date(s2).getUTCFullYear()) / i2);
  202. break;
  203. case "decades":
  204. r3 = Math.round((new Date(e2).getUTCFullYear() - new Date(s2).getUTCFullYear()) / 10 / i2);
  205. }
  206. return r3;
  207. }
  208. function v(e2) {
  209. var _a, _b, _c;
  210. let n3 = (_a = e2.values) == null ? void 0 : _a.length;
  211. if (n3)
  212. return n3;
  213. const { extent: t2, unit: a3 } = e2, i2 = e2.interval || 1, s2 = t2 ? t2[1] - t2[0] : 0;
  214. if ("ISO8601" !== a3)
  215. return Math.round(s2 / i2);
  216. switch ((_c = (_b = e2.intervalUnit) == null ? void 0 : _b.toLowerCase()) != null ? _c : "seconds") {
  217. case "seconds":
  218. n3 = Math.round(s2 / 1e3 / i2);
  219. break;
  220. case "minutes":
  221. n3 = Math.round(s2 / 6e4 / i2);
  222. break;
  223. case "hours":
  224. n3 = Math.round(s2 / 36e5 / i2);
  225. break;
  226. case "days":
  227. n3 = Math.round(s2 / 864e5 / i2);
  228. break;
  229. case "months":
  230. {
  231. const e3 = new Date(t2[1]).getUTCFullYear() - new Date(t2[0]).getUTCFullYear(), a4 = new Date(t2[1][0]).getUTCMonth(), i3 = new Date(t2[1][1]).getUTCMonth();
  232. n3 = 0 === e3 ? i3 - a4 + 1 : i3 + 11 - a4 + 12 * (e3 - 1) + 1;
  233. }
  234. break;
  235. case "years":
  236. n3 = Math.round((new Date(t2[1]).getUTCFullYear() - new Date(t2[0]).getUTCFullYear()) / i2);
  237. break;
  238. case "decades":
  239. n3 = Math.round((new Date(t2[1]).getUTCFullYear() - new Date(t2[0]).getUTCFullYear()) / 10 / i2);
  240. break;
  241. default:
  242. n3 = 0;
  243. }
  244. return n3;
  245. }
  246. function g(e2, n3) {
  247. let t2 = 0;
  248. const a3 = e2[0].variableName, i2 = [...n3.variables].sort((e3, n4) => e3.name > n4.name ? 1 : -1);
  249. for (let s2 = 0; s2 < i2.length; s2++) {
  250. const n4 = i2[s2], r3 = [...n4.dimensions].sort((e3, n5) => e3.name > n5.name ? -1 : 1);
  251. if (n4.name !== a3) {
  252. t2 += r3.map((e3) => v(e3)).reduce((e3, n5) => e3 * n5);
  253. continue;
  254. }
  255. const l3 = r3.map((e3) => v(e3)), o2 = r3.length;
  256. for (let a4 = 0; a4 < o2; a4++) {
  257. const n5 = e2.find((e3) => e3.dimensionName === r3[a4].name);
  258. if (null == n5)
  259. return null;
  260. const i3 = h(n5.values[0], r3[a4]);
  261. if (-1 === i3)
  262. return null;
  263. l3.shift(), t2 += a4 === o2 - 1 ? i3 : i3 * l3.reduce((e3, n6) => e3 * n6);
  264. }
  265. break;
  266. }
  267. return t2;
  268. }
  269. export {
  270. p,
  271. i,
  272. s,
  273. m,
  274. c,
  275. f,
  276. d,
  277. g
  278. };
  279. //# sourceMappingURL=chunk-F2GA7W55.js.map