| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 | import {  I,  L,  T} from "./chunk-JK76NUHI.js";import {  o} from "./chunk-A6WD5XTM.js";import {  nt,  rt,  ut} from "./chunk-JKFWEHNK.js";import {  e} from "./chunk-EDHROVWI.js";import {  r as r2} from "./chunk-JLSNMUQJ.js";import {  i as i2} from "./chunk-QEWF7QPH.js";import {  U} from "./chunk-DVUG3KID.js";import {  M} from "./chunk-6T6G6LCQ.js";import {  c,  k2 as k} from "./chunk-PQFTYGF5.js";import {  s2 as s,  s3 as s2} from "./chunk-E5O6P5I2.js";import {  i,  r,  t} from "./chunk-YXWMMD76.js";// node_modules/@arcgis/core/layers/ogc/ogcFeatureUtils.jsvar h = s.getLogger("esri.layers.graphics.sources.ogcfeature");var j = "http://www.opengis.net/def/crs/";var F = `${j}OGC/1.3/CRS84`;async function I2(n, r3, a = {}, o2 = 5) {  const { links: s3 } = n, l = D(s3, "items", "application/geo+json") || D(s3, "http://www.opengis.net/def/rel/ogc/1.0/items", "application/geo+json");  if (t(l))    throw new s2("ogc-feature-layer:missing-items-page", "Missing items url");  const { data: c2 } = await U(l.href, { signal: a.signal, query: { limit: o2, ...a.customParameters, token: a.apiKey }, headers: { accept: "application/geo+json" } });  await T(c2);  const d = L(c2, { geometryType: r3.geometryType }), u = r3.fields || d.fields || [], f = null != r3.hasZ ? r3.hasZ : d.hasZ, b = d.geometryType, j2 = r3.objectIdField || d.objectIdFieldName || "OBJECTID";  let F2 = r3.timeInfo;  const I3 = u.find(({ name: e2 }) => e2 === j2);  if (I3)    I3.editable = false, I3.nullable = false;  else {    if (!d.objectIdFieldType)      throw new s2("ogc-feature-layer:missing-feature-id", "Collection geojson require a feature id as a unique identifier");    u.unshift({ name: j2, alias: j2, type: "number" === d.objectIdFieldType ? "esriFieldTypeOID" : "esriFieldTypeString", editable: false, nullable: false });  }  if (j2 !== d.objectIdFieldName) {    const e2 = u.find(({ name: e3 }) => e3 === d.objectIdFieldName);    e2 && (e2.type = "esriFieldTypeInteger");  }  u === d.fields && d.unknownFields.length > 0 && h.warn({ name: "ogc-feature-layer:unknown-field-types", message: "Some fields types couldn't be inferred from the features and were dropped", details: { unknownFields: d.unknownFields } });  for (const e2 of u) {    if (null == e2.name && (e2.name = e2.alias), null == e2.alias && (e2.alias = e2.name), "esriFieldTypeOID" !== e2.type && "esriFieldTypeGlobalID" !== e2.type && (e2.editable = null == e2.editable || !!e2.editable, e2.nullable = null == e2.nullable || !!e2.nullable), !e2.name)      throw new s2("ogc-feature-layer:invalid-field-name", "field name is missing", { field: e2 });    if (!i2.jsonValues.includes(e2.type))      throw new s2("ogc-feature-layer:invalid-field-type", `invalid type for field "${e2.name}"`, { field: e2 });  }  if (F2) {    const e2 = new r2(u);    if (F2.startTimeField) {      const t2 = e2.get(F2.startTimeField);      t2 ? (F2.startTimeField = t2.name, t2.type = "esriFieldTypeDate") : F2.startTimeField = null;    }    if (F2.endTimeField) {      const t2 = e2.get(F2.endTimeField);      t2 ? (F2.endTimeField = t2.name, t2.type = "esriFieldTypeDate") : F2.endTimeField = null;    }    if (F2.trackIdField) {      const t2 = e2.get(F2.trackIdField);      t2 ? F2.trackIdField = t2.name : (F2.trackIdField = null, h.warn({ name: "ogc-feature-layer:invalid-timeInfo-trackIdField", message: "trackIdField is missing", details: { timeInfo: F2 } }));    }    F2.startTimeField || F2.endTimeField || (h.warn({ name: "ogc-feature-layer:invalid-timeInfo", message: "startTimeField and endTimeField are missing", details: { timeInfo: F2 } }), F2 = null);  }  return { drawingInfo: b ? o(b) : null, extent: W(n), geometryType: b, fields: u, hasZ: !!f, objectIdField: j2, timeInfo: F2 };}async function T2(n, r3 = {}) {  const { links: a } = n, o2 = D(a, "data", "application/json") || D(a, "http://www.opengis.net/def/rel/ogc/1.0/data", "application/json");  if (t(o2))    throw new s2("ogc-feature-layer:missing-collections-page", "Missing collections url");  const { apiKey: s3, customParameters: l, signal: c2 } = r3, { data: d } = await U(o2.href, { signal: c2, headers: { accept: "application/json" }, query: { ...l, token: s3 } });  return d;}async function k2(n, r3 = {}) {  const { links: a } = n, o2 = D(a, "conformance", "application/json") || D(a, "http://www.opengis.net/def/rel/ogc/1.0/conformance", "application/json");  if (t(o2))    throw new s2("ogc-feature-layer:missing-conformance-page", "Missing conformance url");  const { apiKey: s3, customParameters: l, signal: c2 } = r3, { data: d } = await U(o2.href, { signal: c2, headers: { accept: "application/json" }, query: { ...l, token: s3 } });  return d;}async function x(t2, n = {}) {  const { apiKey: i3, customParameters: r3, signal: a } = n, { data: o2 } = await U(t2, { signal: a, headers: { accept: "application/json" }, query: { ...r3, token: i3 } });  return o2;}async function S(t2, n = {}) {  const r3 = "application/vnd.oai.openapi+json;version=3.0", a = D(t2.links, "service-desc", r3);  if (t(a))    return h.warn("ogc-feature-layer:missing-openapi-page", "The OGC API-Features server does not have an OpenAPI page."), null;  const { apiKey: o2, customParameters: s3, signal: l } = n, { data: c2 } = await U(a.href, { signal: l, headers: { accept: r3 }, query: { ...s3, token: o2 } });  return c2;}function v(e2) {  var _a;  const t2 = (_a = /^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e2)) == null ? void 0 : _a.groups;  if (!t2)    return null;  const { authority: n, code: i3 } = t2;  switch (n.toLowerCase()) {    case "ogc":      switch (i3.toLowerCase()) {        case "crs27":          return k.GCS_NAD_1927.wkid;        case "crs83":          return 4269;        case "crs84":        case "crs84h":          return k.WGS84.wkid;        default:          return null;      }    case "esri":    case "epsg": {      const e3 = Number.parseInt(i3, 10);      return Number.isNaN(e3) ? null : e3;    }    default:      return null;  }}async function N(e2, t2, n) {  const i3 = await q(e2, t2, n);  return ut(i3);}async function q(n, l, m) {  const { collection: p, layerDefinition: g, maxRecordCount: y, queryParameters: { apiKey: w, customParameters: h2 }, spatialReference: j2, supportedCrs: F2 } = n, { links: I3 } = p, T3 = D(I3, "items", "application/geo+json") || D(I3, "http://www.opengis.net/def/rel/ogc/1.0/items", "application/geo+json");  if (t(T3))    throw new s2("ogc-feature-layer:missing-items-page", "Missing items url");  const { geometry: k3, num: x2, start: S2, timeExtent: v2, where: N2 } = l;  if (l.objectIds)    throw new s2("ogc-feature-layer:query-by-objectids-not-supported", "Queries with objectids are not supported");  const q2 = k.fromJSON(j2), O2 = i(l.outSpatialReference, q2), C2 = O2.isWGS84 ? null : R(O2, F2), W2 = G(k3, F2), P = M2(v2), Z = $(N2), K = x2 != null ? x2 : null != S2 && void 0 !== S2 ? 10 : y, { data: L2 } = await U(T3.href, { ...m, query: { ...h2, ...W2, crs: C2, datetime: P, query: Z, limit: K, startindex: S2, token: w }, headers: { accept: "application/geo+json" } });  let J = false;  if (L2.links) {    const e2 = L2.links.find((e3) => "next" === e3.rel);    J = !!e2;  }  !J && Number.isInteger(L2.numberMatched) && Number.isInteger(L2.numberReturned) && (J = L2.numberReturned < L2.numberMatched);  const { fields: z, geometryType: A, hasZ: E, objectIdField: U2 } = g, _ = I(L2, { geometryType: A, hasZ: E, objectIdField: U2 });  if (!C2 && O2.isWebMercator) {    for (const e2 of _)      if (r(e2.geometry)) {        const t2 = rt(e2.geometry, A, E, false);        t2.spatialReference = k.WGS84, e2.geometry = nt(M(t2, O2));      }  }  for (const e2 of _)    e2.objectId = e2.attributes[U2];  const B = C2 || !C2 && O2.isWebMercator ? O2.toJSON() : c, Q = new e();  return Q.exceededTransferLimit = J, Q.features = _, Q.fields = z, Q.geometryType = A, Q.hasZ = E, Q.objectIdFieldName = U2, Q.spatialReference = B, Q;}function O(e2) {  return r(e2) && "extent" === e2.type;}function R(e2, t2) {  var _a, _b, _c;  const { isWebMercator: n, wkid: i3 } = e2;  if (!i3)    return null;  const r3 = n ? (_c = (_b = (_a = t2[3857]) != null ? _a : t2[102100]) != null ? _b : t2[102113]) != null ? _c : t2[900913] : t2[e2.wkid];  return r3 ? `${j}${r3}` : null;}function C(e2) {  if (t(e2))    return "";  const { xmin: t2, ymin: n, xmax: r3, ymax: a } = e2;  return `${t2},${n},${r3},${a}`;}function M2(e2) {  if (t(e2))    return null;  const { start: t2, end: n } = e2;  return `${r(t2) ? t2.toISOString() : ".."}/${r(n) ? n.toISOString() : ".."}`;}function $(e2) {  return t(e2) || !e2 || "1=1" === e2 ? null : e2;}function G(e2, t2) {  if (!O(e2))    return null;  const { spatialReference: n } = e2;  if (!n || n.isWGS84)    return { bbox: C(e2) };  const i3 = R(n, t2);  return r(i3) ? { bbox: C(e2), "bbox-crs": i3 } : n.isWebMercator ? { bbox: C(M(e2, k.WGS84)) } : null;}function W(e2) {  var _a;  const t2 = (_a = e2.extent) == null ? void 0 : _a.spatial;  if (!t2)    return null;  const n = t2.bbox[0], i3 = 4 === n.length, r3 = n[0], a = n[1], o2 = i3 ? void 0 : n[2];  return { xmin: r3, ymin: a, xmax: i3 ? n[2] : n[3], ymax: i3 ? n[3] : n[4], zmin: o2, zmax: i3 ? void 0 : n[5], spatialReference: k.WGS84.toJSON() };}function D(e2, t2, n) {  return e2.find((e3) => e3.rel === t2 && e3.type === n) || e2.find((e3) => e3.rel === t2 && !e3.type);}export {  j,  F,  I2 as I,  T2 as T,  k2 as k,  x,  S,  v,  N,  q};//# sourceMappingURL=chunk-C4RSV5VB.js.map
 |